@storybook/components 6.5.0-alpha.3 → 6.5.0-alpha.30

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 (496) hide show
  1. package/dist/cjs/ActionBar/ActionBar.js +4 -2
  2. package/dist/cjs/ActionBar/ActionBar.stories.js +1 -1
  3. package/dist/cjs/Button/Button.js +8 -6
  4. package/dist/cjs/Loader/Loader.js +12 -8
  5. package/dist/cjs/Loader/Loader.stories.js +1 -1
  6. package/dist/cjs/ScrollArea/GlobalScrollAreaStyles.js +1 -1
  7. package/dist/cjs/ScrollArea/OverlayScrollbars.js +33 -14
  8. package/dist/cjs/ScrollArea/ScrollArea.js +12 -11
  9. package/dist/cjs/ScrollArea/ScrollArea.stories.js +6 -6
  10. package/dist/cjs/Zoom/Zoom.js +1 -1
  11. package/dist/cjs/Zoom/Zoom.stories.js +9 -7
  12. package/dist/cjs/Zoom/ZoomElement.js +9 -8
  13. package/dist/cjs/Zoom/ZoomIFrame.js +8 -8
  14. package/dist/cjs/addon-panel/addon-panel.js +5 -5
  15. package/dist/cjs/bar/bar.js +16 -10
  16. package/dist/cjs/bar/button.js +6 -4
  17. package/dist/cjs/bar/button.stories.js +1 -1
  18. package/dist/cjs/bar/separator.js +7 -7
  19. package/dist/cjs/blocks/ArgsTable/ArgControl.js +8 -6
  20. package/dist/cjs/blocks/ArgsTable/ArgJsDoc.js +5 -3
  21. package/dist/cjs/blocks/ArgsTable/ArgRow.js +2 -2
  22. package/dist/cjs/blocks/ArgsTable/ArgRow.stories.js +3 -3
  23. package/dist/cjs/blocks/ArgsTable/ArgValue.js +12 -12
  24. package/dist/cjs/blocks/ArgsTable/ArgsTable.js +12 -8
  25. package/dist/cjs/blocks/ArgsTable/ArgsTable.stories.js +6 -6
  26. package/dist/cjs/blocks/ArgsTable/SectionRow.js +8 -6
  27. package/dist/cjs/blocks/ArgsTable/SectionRow.stories.js +3 -3
  28. package/dist/cjs/blocks/ArgsTable/TabbedArgsTable.js +10 -6
  29. package/dist/cjs/blocks/ArgsTable/TabbedArgsTable.stories.js +1 -1
  30. package/dist/cjs/blocks/ArgsTable/index.js +2 -0
  31. package/dist/cjs/blocks/ColorPalette.js +5 -3
  32. package/dist/cjs/blocks/ColorPalette.stories.js +1 -1
  33. package/dist/cjs/blocks/Description.js +4 -4
  34. package/dist/cjs/blocks/Description.stories.js +1 -1
  35. package/dist/cjs/blocks/DocsPage.js +4 -4
  36. package/dist/cjs/blocks/DocsPage.stories.js +6 -6
  37. package/dist/cjs/blocks/EmptyBlock.js +2 -2
  38. package/dist/cjs/blocks/EmptyBlock.stories.js +1 -1
  39. package/dist/cjs/blocks/IFrame.js +13 -11
  40. package/dist/cjs/blocks/IconGallery.js +6 -4
  41. package/dist/cjs/blocks/IconGallery.stories.js +1 -1
  42. package/dist/cjs/blocks/Preview.js +16 -12
  43. package/dist/cjs/blocks/Preview.stories.js +6 -6
  44. package/dist/cjs/blocks/Source.js +6 -4
  45. package/dist/cjs/blocks/Source.stories.js +1 -1
  46. package/dist/cjs/blocks/Story.js +16 -10
  47. package/dist/cjs/blocks/Story.stories.js +9 -7
  48. package/dist/cjs/blocks/Toolbar.js +11 -9
  49. package/dist/cjs/blocks/Typeset.js +5 -3
  50. package/dist/cjs/blocks/Typeset.stories.js +1 -1
  51. package/dist/cjs/blocks/index.js +2 -0
  52. package/dist/cjs/brand/StorybookLogo.js +5 -3
  53. package/dist/cjs/brand/StorybookLogo.stories.js +1 -1
  54. package/dist/cjs/controls/Boolean.js +5 -5
  55. package/dist/cjs/controls/Boolean.stories.js +9 -7
  56. package/dist/cjs/controls/Color.js +13 -11
  57. package/dist/cjs/controls/Color.stories.js +9 -7
  58. package/dist/cjs/controls/Date.js +8 -8
  59. package/dist/cjs/controls/Date.stories.js +9 -7
  60. package/dist/cjs/controls/Files.js +7 -5
  61. package/dist/cjs/controls/Number.js +17 -8
  62. package/dist/cjs/controls/Number.stories.js +9 -7
  63. package/dist/cjs/controls/Object.js +8 -6
  64. package/dist/cjs/controls/Object.stories.js +9 -7
  65. package/dist/cjs/controls/Range.js +7 -7
  66. package/dist/cjs/controls/Range.stories.js +9 -7
  67. package/dist/cjs/controls/Text.js +8 -6
  68. package/dist/cjs/controls/Text.stories.js +9 -7
  69. package/dist/cjs/controls/helpers.js +2 -2
  70. package/dist/cjs/controls/index.js +8 -8
  71. package/dist/cjs/controls/options/Checkbox.js +9 -7
  72. package/dist/cjs/controls/options/Options.js +2 -0
  73. package/dist/cjs/controls/options/Options.stories.js +9 -7
  74. package/dist/cjs/controls/options/Select.js +2 -0
  75. package/dist/cjs/controls/options/helpers.js +7 -5
  76. package/dist/cjs/controls/options/index.js +2 -0
  77. package/dist/cjs/controls/react-editable-json-tree/JsonNodes.js +1748 -0
  78. package/dist/cjs/controls/react-editable-json-tree/index.js +36 -83
  79. package/dist/cjs/controls/react-editable-json-tree/types/dataTypes.js +12 -15
  80. package/dist/cjs/controls/react-editable-json-tree/types/inputUsageTypes.js +3 -6
  81. package/dist/cjs/controls/react-editable-json-tree/utils/objectTypes.js +3 -3
  82. package/dist/cjs/controls/react-editable-json-tree/utils/parse.js +2 -5
  83. package/dist/cjs/controls/react-editable-json-tree/utils/styles.js +1 -1
  84. package/dist/cjs/controls/types.js +5 -1
  85. package/dist/cjs/form/field/field.js +3 -1
  86. package/dist/cjs/form/form.stories.js +5 -3
  87. package/dist/cjs/form/input/input.js +15 -10
  88. package/dist/cjs/html.js +2 -0
  89. package/dist/cjs/icon/icon.js +28 -7
  90. package/dist/cjs/icon/icon.stories.js +2 -0
  91. package/dist/cjs/icon/icons.js +1 -1
  92. package/dist/cjs/index.js +296 -73
  93. package/dist/cjs/placeholder/placeholder.js +15 -9
  94. package/dist/cjs/placeholder/placeholder.stories.js +6 -6
  95. package/dist/cjs/spaced/Spaced.js +3 -1
  96. package/dist/cjs/syntaxhighlighter/lazy-syntaxhighlighter.js +8 -8
  97. package/dist/cjs/syntaxhighlighter/syntaxhighlighter-types.js +5 -1
  98. package/dist/cjs/syntaxhighlighter/syntaxhighlighter.js +15 -10
  99. package/dist/cjs/syntaxhighlighter/syntaxhighlighter.stories.js +5 -5
  100. package/dist/cjs/tabs/tabs.js +13 -11
  101. package/dist/cjs/tabs/tabs.stories.js +6 -4
  102. package/dist/cjs/tooltip/ListItem.js +7 -4
  103. package/dist/cjs/tooltip/Tooltip.js +5 -3
  104. package/dist/cjs/tooltip/TooltipLinkList.js +12 -9
  105. package/dist/cjs/tooltip/TooltipLinkList.stories.js +5 -5
  106. package/dist/cjs/tooltip/TooltipMessage.js +3 -1
  107. package/dist/cjs/tooltip/TooltipNote.js +3 -1
  108. package/dist/cjs/tooltip/WithTooltip.js +14 -9
  109. package/dist/cjs/tooltip/lazy-WithTooltip.js +9 -10
  110. package/dist/cjs/typography/DocumentFormatting.js +6 -555
  111. package/dist/cjs/typography/DocumentWrapper.stories.js +1 -1
  112. package/dist/cjs/typography/ResetWrapper.js +21 -0
  113. package/dist/cjs/typography/components.js +126 -0
  114. package/dist/cjs/typography/elements/A.js +36 -0
  115. package/dist/cjs/typography/elements/Blockquote.js +27 -0
  116. package/dist/cjs/typography/elements/Code.js +109 -0
  117. package/dist/cjs/typography/elements/DL.js +44 -0
  118. package/dist/cjs/typography/elements/Div.js +14 -0
  119. package/dist/cjs/typography/elements/H1.js +20 -0
  120. package/dist/cjs/typography/elements/H2.js +21 -0
  121. package/dist/cjs/typography/elements/H3.js +19 -0
  122. package/dist/cjs/typography/elements/H4.js +19 -0
  123. package/dist/cjs/typography/elements/H5.js +19 -0
  124. package/dist/cjs/typography/elements/H6.js +20 -0
  125. package/dist/cjs/typography/elements/HR.js +20 -0
  126. package/dist/cjs/typography/elements/Img.js +14 -0
  127. package/dist/cjs/typography/elements/LI.js +31 -0
  128. package/dist/cjs/typography/elements/Link.js +44 -0
  129. package/dist/cjs/typography/elements/OL.js +28 -0
  130. package/dist/cjs/typography/elements/P.js +24 -0
  131. package/dist/cjs/typography/elements/Pre.js +53 -0
  132. package/dist/cjs/typography/elements/Span.js +92 -0
  133. package/dist/cjs/typography/elements/TT.js +14 -0
  134. package/dist/cjs/typography/elements/Table.js +50 -0
  135. package/dist/cjs/typography/elements/UL.js +28 -0
  136. package/dist/cjs/typography/{shared.js → lib/common.js} +1 -1
  137. package/dist/cjs/typography/lib/isReactChildString.js +12 -0
  138. package/dist/cjs/typography/link/link.js +5 -3
  139. package/dist/cjs/utils/getStoryHref.js +71 -0
  140. package/dist/esm/ActionBar/ActionBar.js +5 -3
  141. package/dist/esm/Button/Button.js +3 -1
  142. package/dist/esm/Loader/Loader.js +5 -3
  143. package/dist/esm/ScrollArea/OverlayScrollbars.js +12 -10
  144. package/dist/esm/ScrollArea/ScrollArea.js +7 -5
  145. package/dist/esm/Zoom/Zoom.js +4 -4
  146. package/dist/esm/Zoom/Zoom.stories.js +3 -2
  147. package/dist/esm/Zoom/ZoomElement.js +5 -4
  148. package/dist/esm/Zoom/ZoomIFrame.js +6 -6
  149. package/dist/esm/bar/bar.js +7 -4
  150. package/dist/esm/bar/button.js +2 -1
  151. package/dist/esm/bar/separator.js +1 -0
  152. package/dist/esm/blocks/ArgsTable/ArgControl.js +3 -2
  153. package/dist/esm/blocks/ArgsTable/ArgJsDoc.js +2 -1
  154. package/dist/esm/blocks/ArgsTable/ArgRow.js +1 -1
  155. package/dist/esm/blocks/ArgsTable/ArgRow.stories.js +1 -1
  156. package/dist/esm/blocks/ArgsTable/ArgValue.js +5 -5
  157. package/dist/esm/blocks/ArgsTable/ArgsTable.js +6 -4
  158. package/dist/esm/blocks/ArgsTable/SectionRow.js +3 -2
  159. package/dist/esm/blocks/ArgsTable/SectionRow.stories.js +1 -1
  160. package/dist/esm/blocks/ArgsTable/TabbedArgsTable.js +17 -14
  161. package/dist/esm/blocks/ColorPalette.js +4 -2
  162. package/dist/esm/blocks/Description.js +2 -2
  163. package/dist/esm/blocks/DocsPage.js +1 -1
  164. package/dist/esm/blocks/EmptyBlock.js +1 -1
  165. package/dist/esm/blocks/IFrame.js +16 -14
  166. package/dist/esm/blocks/IconGallery.js +4 -2
  167. package/dist/esm/blocks/Preview.js +17 -15
  168. package/dist/esm/blocks/Source.js +2 -1
  169. package/dist/esm/blocks/Story.js +10 -5
  170. package/dist/esm/blocks/Story.stories.js +3 -2
  171. package/dist/esm/blocks/Toolbar.js +8 -6
  172. package/dist/esm/blocks/Typeset.js +6 -4
  173. package/dist/esm/brand/StorybookLogo.js +2 -1
  174. package/dist/esm/controls/Boolean.stories.js +3 -2
  175. package/dist/esm/controls/Color.js +7 -5
  176. package/dist/esm/controls/Color.stories.js +3 -2
  177. package/dist/esm/controls/Date.js +3 -3
  178. package/dist/esm/controls/Date.stories.js +3 -2
  179. package/dist/esm/controls/Files.js +4 -3
  180. package/dist/esm/controls/Number.js +11 -3
  181. package/dist/esm/controls/Number.stories.js +3 -2
  182. package/dist/esm/controls/Object.js +4 -4
  183. package/dist/esm/controls/Object.stories.js +3 -2
  184. package/dist/esm/controls/Range.js +1 -1
  185. package/dist/esm/controls/Range.stories.js +3 -2
  186. package/dist/esm/controls/Text.js +3 -2
  187. package/dist/esm/controls/Text.stories.js +3 -2
  188. package/dist/esm/controls/helpers.js +1 -1
  189. package/dist/esm/controls/index.js +3 -3
  190. package/dist/esm/controls/options/Checkbox.js +4 -3
  191. package/dist/esm/controls/options/Options.js +1 -0
  192. package/dist/esm/controls/options/Options.stories.js +3 -2
  193. package/dist/esm/controls/options/Select.js +1 -0
  194. package/dist/esm/controls/options/helpers.js +4 -3
  195. package/dist/esm/controls/react-editable-json-tree/JsonNodes.js +1703 -0
  196. package/dist/esm/controls/react-editable-json-tree/index.js +29 -73
  197. package/dist/esm/controls/react-editable-json-tree/types/dataTypes.js +1 -13
  198. package/dist/esm/controls/react-editable-json-tree/types/deltaTypes.js +1 -3
  199. package/dist/esm/controls/react-editable-json-tree/types/inputUsageTypes.js +1 -4
  200. package/dist/esm/controls/react-editable-json-tree/utils/objectTypes.js +5 -9
  201. package/dist/esm/controls/react-editable-json-tree/utils/parse.js +2 -4
  202. package/dist/esm/controls/react-editable-json-tree/utils/styles.js +4 -7
  203. package/dist/esm/controls/types.js +1 -0
  204. package/dist/esm/form/field/field.js +5 -3
  205. package/dist/esm/form/form.stories.js +3 -2
  206. package/dist/esm/form/input/input.js +11 -6
  207. package/dist/esm/icon/icon.js +7 -6
  208. package/dist/esm/icon/icon.stories.js +1 -0
  209. package/dist/esm/index.js +30 -5
  210. package/dist/esm/placeholder/placeholder.js +16 -12
  211. package/dist/esm/spaced/Spaced.js +6 -4
  212. package/dist/esm/syntaxhighlighter/lazy-syntaxhighlighter.js +3 -3
  213. package/dist/esm/syntaxhighlighter/syntaxhighlighter-types.js +1 -0
  214. package/dist/esm/syntaxhighlighter/syntaxhighlighter.js +17 -14
  215. package/dist/esm/tabs/tabs.js +7 -6
  216. package/dist/esm/tabs/tabs.stories.js +2 -1
  217. package/dist/esm/tooltip/ListItem.js +7 -4
  218. package/dist/esm/tooltip/Tooltip.js +4 -2
  219. package/dist/esm/tooltip/TooltipLinkList.js +5 -3
  220. package/dist/esm/tooltip/TooltipMessage.js +6 -4
  221. package/dist/esm/tooltip/TooltipNote.js +5 -3
  222. package/dist/esm/tooltip/WithTooltip.js +7 -4
  223. package/dist/esm/tooltip/lazy-WithTooltip.js +4 -4
  224. package/dist/esm/typography/DocumentFormatting.js +4 -480
  225. package/dist/esm/typography/ResetWrapper.js +11 -0
  226. package/dist/esm/typography/components.js +92 -0
  227. package/dist/esm/typography/elements/A.js +25 -0
  228. package/dist/esm/typography/elements/Blockquote.js +16 -0
  229. package/dist/esm/typography/elements/Code.js +64 -0
  230. package/dist/esm/typography/elements/DL.js +32 -0
  231. package/dist/esm/typography/elements/Div.js +3 -0
  232. package/dist/esm/typography/elements/H1.js +9 -0
  233. package/dist/esm/typography/elements/H2.js +10 -0
  234. package/dist/esm/typography/elements/H3.js +8 -0
  235. package/dist/esm/typography/elements/H4.js +8 -0
  236. package/dist/esm/typography/elements/H5.js +8 -0
  237. package/dist/esm/typography/elements/H6.js +9 -0
  238. package/dist/esm/typography/elements/HR.js +10 -0
  239. package/dist/esm/typography/elements/Img.js +4 -0
  240. package/dist/esm/typography/elements/LI.js +20 -0
  241. package/dist/esm/typography/elements/Link.js +29 -0
  242. package/dist/esm/typography/elements/OL.js +15 -0
  243. package/dist/esm/typography/elements/P.js +13 -0
  244. package/dist/esm/typography/elements/Pre.js +42 -0
  245. package/dist/esm/typography/elements/Span.js +81 -0
  246. package/dist/esm/typography/elements/TT.js +3 -0
  247. package/dist/esm/typography/elements/Table.js +39 -0
  248. package/dist/esm/typography/elements/UL.js +15 -0
  249. package/dist/esm/typography/{shared.js → lib/common.js} +0 -0
  250. package/dist/esm/typography/lib/isReactChildString.js +3 -0
  251. package/dist/esm/typography/link/link.js +2 -1
  252. package/dist/esm/utils/getStoryHref.js +46 -0
  253. package/dist/modern/ActionBar/ActionBar.js +4 -2
  254. package/dist/modern/Badge/Badge.js +1 -1
  255. package/dist/modern/Button/Button.js +3 -1
  256. package/dist/modern/Loader/Loader.js +4 -2
  257. package/dist/modern/ScrollArea/OverlayScrollbars.js +10 -8
  258. package/dist/modern/ScrollArea/ScrollArea.js +7 -5
  259. package/dist/modern/Zoom/Zoom.js +4 -4
  260. package/dist/modern/Zoom/ZoomElement.js +2 -2
  261. package/dist/modern/bar/bar.js +4 -2
  262. package/dist/modern/bar/button.js +4 -2
  263. package/dist/modern/blocks/ArgsTable/ArgJsDoc.js +1 -1
  264. package/dist/modern/blocks/ArgsTable/ArgRow.js +1 -1
  265. package/dist/modern/blocks/ArgsTable/ArgRow.stories.js +1 -1
  266. package/dist/modern/blocks/ArgsTable/ArgValue.js +1 -1
  267. package/dist/modern/blocks/ArgsTable/ArgsTable.js +1 -1
  268. package/dist/modern/blocks/ArgsTable/SectionRow.stories.js +1 -1
  269. package/dist/modern/blocks/ArgsTable/TabbedArgsTable.js +4 -2
  270. package/dist/modern/blocks/ColorPalette.js +5 -3
  271. package/dist/modern/blocks/Description.js +2 -2
  272. package/dist/modern/blocks/DocsPage.js +1 -1
  273. package/dist/modern/blocks/EmptyBlock.js +1 -1
  274. package/dist/modern/blocks/IFrame.js +3 -1
  275. package/dist/modern/blocks/IconGallery.js +5 -3
  276. package/dist/modern/blocks/Preview.js +5 -3
  277. package/dist/modern/blocks/Source.js +3 -1
  278. package/dist/modern/blocks/Story.js +9 -4
  279. package/dist/modern/blocks/Toolbar.js +6 -3
  280. package/dist/modern/blocks/Typeset.js +5 -3
  281. package/dist/modern/brand/StorybookIcon.js +1 -1
  282. package/dist/modern/brand/StorybookLogo.js +4 -2
  283. package/dist/modern/controls/Color.js +4 -2
  284. package/dist/modern/controls/Number.js +7 -0
  285. package/dist/modern/controls/Object.js +1 -2
  286. package/dist/modern/controls/index.js +2 -2
  287. package/dist/modern/controls/react-editable-json-tree/JsonNodes.js +1539 -0
  288. package/dist/modern/controls/react-editable-json-tree/index.js +18 -57
  289. package/dist/modern/controls/react-editable-json-tree/types/dataTypes.js +1 -13
  290. package/dist/modern/controls/react-editable-json-tree/types/deltaTypes.js +1 -3
  291. package/dist/modern/controls/react-editable-json-tree/types/inputUsageTypes.js +1 -4
  292. package/dist/modern/controls/react-editable-json-tree/utils/objectTypes.js +3 -7
  293. package/dist/modern/controls/react-editable-json-tree/utils/parse.js +2 -4
  294. package/dist/modern/controls/react-editable-json-tree/utils/styles.js +4 -7
  295. package/dist/modern/controls/types.js +1 -0
  296. package/dist/modern/form/field/field.js +4 -2
  297. package/dist/modern/form/input/input.js +9 -4
  298. package/dist/modern/icon/icon.js +6 -4
  299. package/dist/modern/index.js +29 -5
  300. package/dist/modern/placeholder/placeholder.js +4 -2
  301. package/dist/modern/spaced/Spaced.js +4 -2
  302. package/dist/modern/syntaxhighlighter/lazy-syntaxhighlighter.js +2 -2
  303. package/dist/modern/syntaxhighlighter/syntaxhighlighter-types.js +1 -0
  304. package/dist/modern/syntaxhighlighter/syntaxhighlighter.js +4 -2
  305. package/dist/modern/tooltip/ListItem.js +7 -4
  306. package/dist/modern/tooltip/Tooltip.js +4 -2
  307. package/dist/modern/tooltip/TooltipLinkList.js +6 -3
  308. package/dist/modern/tooltip/TooltipMessage.js +4 -2
  309. package/dist/modern/tooltip/TooltipNote.js +4 -2
  310. package/dist/modern/tooltip/WithTooltip.js +7 -4
  311. package/dist/modern/tooltip/lazy-WithTooltip.js +3 -3
  312. package/dist/modern/typography/DocumentFormatting.js +2 -413
  313. package/dist/modern/typography/ResetWrapper.js +11 -0
  314. package/dist/modern/typography/components.js +48 -0
  315. package/dist/modern/typography/elements/A.js +24 -0
  316. package/dist/modern/typography/elements/Blockquote.js +15 -0
  317. package/dist/modern/typography/elements/Code.js +52 -0
  318. package/dist/modern/typography/elements/DL.js +31 -0
  319. package/dist/modern/typography/elements/Div.js +3 -0
  320. package/dist/modern/typography/elements/H1.js +8 -0
  321. package/dist/modern/typography/elements/H2.js +9 -0
  322. package/dist/modern/typography/elements/H3.js +7 -0
  323. package/dist/modern/typography/elements/H4.js +7 -0
  324. package/dist/modern/typography/elements/H5.js +7 -0
  325. package/dist/modern/typography/elements/H6.js +8 -0
  326. package/dist/modern/typography/elements/HR.js +9 -0
  327. package/dist/modern/typography/elements/Img.js +4 -0
  328. package/dist/modern/typography/elements/LI.js +19 -0
  329. package/dist/modern/typography/elements/Link.js +24 -0
  330. package/dist/modern/typography/elements/OL.js +14 -0
  331. package/dist/modern/typography/elements/P.js +12 -0
  332. package/dist/modern/typography/elements/Pre.js +41 -0
  333. package/dist/modern/typography/elements/Span.js +80 -0
  334. package/dist/modern/typography/elements/TT.js +3 -0
  335. package/dist/modern/typography/elements/Table.js +38 -0
  336. package/dist/modern/typography/elements/UL.js +14 -0
  337. package/dist/modern/typography/{shared.js → lib/common.js} +0 -0
  338. package/dist/modern/typography/lib/isReactChildString.js +1 -0
  339. package/dist/modern/typography/link/link.js +4 -2
  340. package/dist/modern/utils/getStoryHref.js +13 -0
  341. package/dist/ts3.4/Button/Button.d.ts +2 -2
  342. package/dist/ts3.4/Colors/SideBySide.d.ts +1 -1
  343. package/dist/ts3.4/Loader/Loader.d.ts +1 -1
  344. package/dist/ts3.4/ScrollArea/OverlayScrollbars.d.ts +3 -3
  345. package/dist/ts3.4/Zoom/Zoom.d.ts +4 -4
  346. package/dist/ts3.4/Zoom/ZoomIFrame.d.ts +2 -2
  347. package/dist/ts3.4/bar/button.d.ts +6 -6
  348. package/dist/ts3.4/blocks/ArgsTable/ArgJsDoc.d.ts +1 -1
  349. package/dist/ts3.4/blocks/ColorPalette.d.ts +2 -2
  350. package/dist/ts3.4/blocks/DocsPage.d.ts +1 -1
  351. package/dist/ts3.4/blocks/Story.d.ts +1 -1
  352. package/dist/ts3.4/controls/Color.d.ts +2 -2
  353. package/dist/ts3.4/controls/Object.d.ts +2 -2
  354. package/dist/ts3.4/controls/index.d.ts +5 -4
  355. package/dist/ts3.4/controls/react-editable-json-tree/JsonNodes.d.ts +247 -0
  356. package/dist/ts3.4/controls/react-editable-json-tree/index.d.ts +42 -0
  357. package/dist/ts3.4/controls/react-editable-json-tree/types/dataTypes.d.ts +12 -0
  358. package/dist/ts3.4/controls/react-editable-json-tree/types/deltaTypes.d.ts +4 -0
  359. package/dist/ts3.4/controls/react-editable-json-tree/types/inputUsageTypes.d.ts +3 -0
  360. package/dist/ts3.4/controls/react-editable-json-tree/utils/objectTypes.d.ts +13 -0
  361. package/dist/ts3.4/controls/react-editable-json-tree/utils/parse.d.ts +6 -0
  362. package/dist/ts3.4/controls/react-editable-json-tree/utils/styles.d.ts +59 -0
  363. package/dist/ts3.4/form/index.d.ts +4 -4
  364. package/dist/ts3.4/form/input/input.d.ts +3 -3
  365. package/dist/ts3.4/index.d.ts +46 -2
  366. package/dist/ts3.4/syntaxhighlighter/lazy-syntaxhighlighter.d.ts +2 -2
  367. package/dist/ts3.4/syntaxhighlighter/syntaxhighlighter-types.d.ts +2 -2
  368. package/dist/ts3.4/tabs/tabs.d.ts +1 -1
  369. package/dist/ts3.4/tooltip/ListItem.d.ts +1 -1
  370. package/dist/ts3.4/tooltip/lazy-WithTooltip.d.ts +3 -3
  371. package/dist/ts3.4/typography/DocumentFormatting.d.ts +4 -55
  372. package/dist/ts3.4/typography/ResetWrapper.d.ts +9 -0
  373. package/dist/ts3.4/typography/components.d.ts +25 -0
  374. package/dist/ts3.4/typography/elements/A.d.ts +6 -0
  375. package/dist/ts3.4/typography/elements/Blockquote.d.ts +6 -0
  376. package/dist/ts3.4/typography/elements/Code.d.ts +6 -0
  377. package/dist/ts3.4/typography/elements/DL.d.ts +4 -0
  378. package/dist/ts3.4/typography/elements/Div.d.ts +4 -0
  379. package/dist/ts3.4/typography/elements/H1.d.ts +6 -0
  380. package/dist/ts3.4/typography/elements/H2.d.ts +6 -0
  381. package/dist/ts3.4/typography/elements/H3.d.ts +6 -0
  382. package/dist/ts3.4/typography/elements/H4.d.ts +6 -0
  383. package/dist/ts3.4/typography/elements/H5.d.ts +6 -0
  384. package/dist/ts3.4/typography/elements/H6.d.ts +6 -0
  385. package/dist/ts3.4/typography/elements/HR.d.ts +2 -0
  386. package/dist/ts3.4/typography/elements/Img.d.ts +2 -0
  387. package/dist/ts3.4/typography/elements/LI.d.ts +6 -0
  388. package/dist/ts3.4/typography/elements/Link.d.ts +2 -0
  389. package/dist/ts3.4/typography/elements/OL.d.ts +4 -0
  390. package/dist/ts3.4/typography/elements/P.d.ts +6 -0
  391. package/dist/ts3.4/typography/elements/Pre.d.ts +6 -0
  392. package/dist/ts3.4/typography/elements/Span.d.ts +6 -0
  393. package/dist/ts3.4/typography/elements/TT.d.ts +4 -0
  394. package/dist/ts3.4/typography/elements/Table.d.ts +6 -0
  395. package/dist/ts3.4/typography/elements/UL.d.ts +4 -0
  396. package/dist/ts3.4/typography/{shared.d.ts → lib/common.d.ts} +0 -0
  397. package/dist/ts3.4/typography/lib/isReactChildString.d.ts +2 -0
  398. package/dist/ts3.4/utils/getStoryHref.d.ts +1 -0
  399. package/dist/ts3.9/Button/Button.d.ts +2 -2
  400. package/dist/ts3.9/Colors/SideBySide.d.ts +1 -1
  401. package/dist/ts3.9/Loader/Loader.d.ts +1 -1
  402. package/dist/ts3.9/ScrollArea/OverlayScrollbars.d.ts +3 -3
  403. package/dist/ts3.9/Zoom/Zoom.d.ts +4 -4
  404. package/dist/ts3.9/Zoom/ZoomIFrame.d.ts +2 -2
  405. package/dist/ts3.9/bar/button.d.ts +6 -6
  406. package/dist/ts3.9/blocks/ArgsTable/ArgJsDoc.d.ts +1 -1
  407. package/dist/ts3.9/blocks/ColorPalette.d.ts +2 -2
  408. package/dist/ts3.9/blocks/DocsPage.d.ts +1 -1
  409. package/dist/ts3.9/blocks/Story.d.ts +1 -1
  410. package/dist/ts3.9/controls/Color.d.ts +2 -2
  411. package/dist/ts3.9/controls/Object.d.ts +2 -2
  412. package/dist/ts3.9/controls/index.d.ts +5 -4
  413. package/dist/ts3.9/controls/react-editable-json-tree/JsonNodes.d.ts +247 -0
  414. package/dist/ts3.9/controls/react-editable-json-tree/index.d.ts +42 -0
  415. package/dist/ts3.9/controls/react-editable-json-tree/types/dataTypes.d.ts +12 -0
  416. package/dist/ts3.9/controls/react-editable-json-tree/types/deltaTypes.d.ts +4 -0
  417. package/dist/ts3.9/controls/react-editable-json-tree/types/inputUsageTypes.d.ts +3 -0
  418. package/dist/ts3.9/controls/react-editable-json-tree/utils/objectTypes.d.ts +13 -0
  419. package/dist/ts3.9/controls/react-editable-json-tree/utils/parse.d.ts +6 -0
  420. package/dist/ts3.9/controls/react-editable-json-tree/utils/styles.d.ts +59 -0
  421. package/dist/ts3.9/form/index.d.ts +4 -4
  422. package/dist/ts3.9/form/input/input.d.ts +3 -3
  423. package/dist/ts3.9/index.d.ts +46 -2
  424. package/dist/ts3.9/syntaxhighlighter/lazy-syntaxhighlighter.d.ts +2 -2
  425. package/dist/ts3.9/syntaxhighlighter/syntaxhighlighter-types.d.ts +2 -2
  426. package/dist/ts3.9/tabs/tabs.d.ts +1 -1
  427. package/dist/ts3.9/tooltip/ListItem.d.ts +1 -1
  428. package/dist/ts3.9/tooltip/lazy-WithTooltip.d.ts +3 -3
  429. package/dist/ts3.9/typography/DocumentFormatting.d.ts +4 -55
  430. package/dist/ts3.9/typography/ResetWrapper.d.ts +9 -0
  431. package/dist/ts3.9/typography/components.d.ts +25 -0
  432. package/dist/ts3.9/typography/elements/A.d.ts +6 -0
  433. package/dist/ts3.9/typography/elements/Blockquote.d.ts +6 -0
  434. package/dist/ts3.9/typography/elements/Code.d.ts +6 -0
  435. package/dist/ts3.9/typography/elements/DL.d.ts +4 -0
  436. package/dist/ts3.9/typography/elements/Div.d.ts +4 -0
  437. package/dist/ts3.9/typography/elements/H1.d.ts +6 -0
  438. package/dist/ts3.9/typography/elements/H2.d.ts +6 -0
  439. package/dist/ts3.9/typography/elements/H3.d.ts +6 -0
  440. package/dist/ts3.9/typography/elements/H4.d.ts +6 -0
  441. package/dist/ts3.9/typography/elements/H5.d.ts +6 -0
  442. package/dist/ts3.9/typography/elements/H6.d.ts +6 -0
  443. package/dist/ts3.9/typography/elements/HR.d.ts +2 -0
  444. package/dist/ts3.9/typography/elements/Img.d.ts +2 -0
  445. package/dist/ts3.9/typography/elements/LI.d.ts +6 -0
  446. package/dist/ts3.9/typography/elements/Link.d.ts +2 -0
  447. package/dist/ts3.9/typography/elements/OL.d.ts +4 -0
  448. package/dist/ts3.9/typography/elements/P.d.ts +6 -0
  449. package/dist/ts3.9/typography/elements/Pre.d.ts +6 -0
  450. package/dist/ts3.9/typography/elements/Span.d.ts +6 -0
  451. package/dist/ts3.9/typography/elements/TT.d.ts +4 -0
  452. package/dist/ts3.9/typography/elements/Table.d.ts +6 -0
  453. package/dist/ts3.9/typography/elements/UL.d.ts +4 -0
  454. package/dist/ts3.9/typography/{shared.d.ts → lib/common.d.ts} +1 -1
  455. package/dist/ts3.9/typography/lib/isReactChildString.d.ts +2 -0
  456. package/dist/ts3.9/utils/getStoryHref.d.ts +1 -0
  457. package/package.json +6 -5
  458. package/dist/cjs/Colors/colorpalette.stories.mdx +0 -125
  459. package/dist/cjs/blocks/DocsPageExampleCaption.md +0 -92
  460. package/dist/cjs/blocks/DocsPageExampleCaption.mdx +0 -92
  461. package/dist/cjs/controls/react-editable-json-tree/LICENSE.md +0 -14
  462. package/dist/cjs/controls/react-editable-json-tree/components/JsonAddValue.js +0 -228
  463. package/dist/cjs/controls/react-editable-json-tree/components/JsonArray.js +0 -507
  464. package/dist/cjs/controls/react-editable-json-tree/components/JsonFunctionValue.js +0 -321
  465. package/dist/cjs/controls/react-editable-json-tree/components/JsonNode.js +0 -422
  466. package/dist/cjs/controls/react-editable-json-tree/components/JsonObject.js +0 -509
  467. package/dist/cjs/controls/react-editable-json-tree/components/JsonValue.js +0 -312
  468. package/dist/cjs/typings.d.js +0 -1
  469. package/dist/cjs/typography/DocumentFormattingSample.md +0 -141
  470. package/dist/cjs/typography/typography.stories.mdx +0 -75
  471. package/dist/esm/Colors/colorpalette.stories.mdx +0 -125
  472. package/dist/esm/blocks/DocsPageExampleCaption.md +0 -92
  473. package/dist/esm/blocks/DocsPageExampleCaption.mdx +0 -92
  474. package/dist/esm/controls/react-editable-json-tree/LICENSE.md +0 -14
  475. package/dist/esm/controls/react-editable-json-tree/components/JsonAddValue.js +0 -194
  476. package/dist/esm/controls/react-editable-json-tree/components/JsonArray.js +0 -465
  477. package/dist/esm/controls/react-editable-json-tree/components/JsonFunctionValue.js +0 -282
  478. package/dist/esm/controls/react-editable-json-tree/components/JsonNode.js +0 -387
  479. package/dist/esm/controls/react-editable-json-tree/components/JsonObject.js +0 -467
  480. package/dist/esm/controls/react-editable-json-tree/components/JsonValue.js +0 -272
  481. package/dist/esm/typings.d.js +0 -0
  482. package/dist/esm/typography/DocumentFormattingSample.md +0 -141
  483. package/dist/esm/typography/typography.stories.mdx +0 -75
  484. package/dist/modern/Colors/colorpalette.stories.mdx +0 -125
  485. package/dist/modern/blocks/DocsPageExampleCaption.md +0 -92
  486. package/dist/modern/blocks/DocsPageExampleCaption.mdx +0 -92
  487. package/dist/modern/controls/react-editable-json-tree/LICENSE.md +0 -14
  488. package/dist/modern/controls/react-editable-json-tree/components/JsonAddValue.js +0 -148
  489. package/dist/modern/controls/react-editable-json-tree/components/JsonArray.js +0 -392
  490. package/dist/modern/controls/react-editable-json-tree/components/JsonFunctionValue.js +0 -215
  491. package/dist/modern/controls/react-editable-json-tree/components/JsonNode.js +0 -339
  492. package/dist/modern/controls/react-editable-json-tree/components/JsonObject.js +0 -394
  493. package/dist/modern/controls/react-editable-json-tree/components/JsonValue.js +0 -202
  494. package/dist/modern/typings.d.js +0 -0
  495. package/dist/modern/typography/DocumentFormattingSample.md +0 -141
  496. package/dist/modern/typography/typography.stories.mdx +0 -75
@@ -0,0 +1,1703 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+
3
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
4
+
5
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6
+
7
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
8
+
9
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
10
+
11
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
12
+
13
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
14
+
15
+ import "core-js/modules/es.string.repeat.js";
16
+ import "core-js/modules/es.array.concat.js";
17
+ import "core-js/modules/es.function.name.js";
18
+ import "core-js/modules/es.array.splice.js";
19
+ import "core-js/modules/es.object.to-string.js";
20
+ import "core-js/modules/es.promise.js";
21
+ import "core-js/modules/es.array.map.js";
22
+ import "core-js/modules/es.regexp.to-string.js";
23
+ import "core-js/modules/es.object.get-own-property-names.js";
24
+ import "core-js/modules/es.object.get-prototype-of.js";
25
+ import "core-js/modules/es.reflect.construct.js";
26
+ import "core-js/modules/es.symbol.js";
27
+ import "core-js/modules/es.symbol.description.js";
28
+ import "core-js/modules/es.symbol.iterator.js";
29
+ import "core-js/modules/es.array.iterator.js";
30
+ import "core-js/modules/es.string.iterator.js";
31
+ import "core-js/modules/web.dom-collections.iterator.js";
32
+ import "core-js/modules/es.array.from.js";
33
+ import "core-js/modules/es.array.slice.js";
34
+ import "core-js/modules/es.regexp.exec.js";
35
+
36
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
37
+
38
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
39
+
40
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
41
+
42
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
43
+
44
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
45
+
46
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
47
+
48
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
49
+
50
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
51
+
52
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
53
+
54
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
55
+
56
+ /* eslint-disable jsx-a11y/no-static-element-interactions */
57
+
58
+ /* eslint-disable react/sort-comp */
59
+
60
+ /* eslint-disable react/no-array-index-key */
61
+
62
+ /* eslint-disable no-undef */
63
+
64
+ /* eslint-disable jsx-a11y/click-events-have-key-events */
65
+
66
+ /* eslint-disable react/button-has-type */
67
+ import React, { cloneElement, Component } from 'react';
68
+ import * as inputUsageTypes from './types/inputUsageTypes';
69
+ import * as dataTypes from './types/dataTypes';
70
+ import * as deltaTypes from './types/deltaTypes';
71
+ import { getObjectType, isComponentWillChange } from './utils/objectTypes';
72
+ export var JsonAddValue = /*#__PURE__*/function (_Component) {
73
+ _inherits(JsonAddValue, _Component);
74
+
75
+ var _super = _createSuper(JsonAddValue);
76
+
77
+ function JsonAddValue(props) {
78
+ var _this;
79
+
80
+ _classCallCheck(this, JsonAddValue);
81
+
82
+ _this = _super.call(this, props);
83
+ _this.state = {
84
+ inputRefKey: null,
85
+ inputRefValue: null
86
+ }; // Bind
87
+
88
+ _this.refInputValue = _this.refInputValue.bind(_assertThisInitialized(_this));
89
+ _this.refInputKey = _this.refInputKey.bind(_assertThisInitialized(_this));
90
+ _this.onKeydown = _this.onKeydown.bind(_assertThisInitialized(_this));
91
+ _this.onSubmit = _this.onSubmit.bind(_assertThisInitialized(_this));
92
+ return _this;
93
+ }
94
+
95
+ _createClass(JsonAddValue, [{
96
+ key: "componentDidMount",
97
+ value: function componentDidMount() {
98
+ var _this$state = this.state,
99
+ inputRefKey = _this$state.inputRefKey,
100
+ inputRefValue = _this$state.inputRefValue;
101
+ var onlyValue = this.props.onlyValue;
102
+
103
+ if (inputRefKey && typeof inputRefKey.focus === 'function') {
104
+ inputRefKey.focus();
105
+ }
106
+
107
+ if (onlyValue && inputRefValue && typeof inputRefValue.focus === 'function') {
108
+ inputRefValue.focus();
109
+ }
110
+
111
+ document.addEventListener('keydown', this.onKeydown);
112
+ }
113
+ }, {
114
+ key: "componentWillUnmount",
115
+ value: function componentWillUnmount() {
116
+ document.removeEventListener('keydown', this.onKeydown);
117
+ }
118
+ }, {
119
+ key: "onKeydown",
120
+ value: function onKeydown(event) {
121
+ if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey || event.repeat) return;
122
+
123
+ if (event.code === 'Enter' || event.key === 'Enter') {
124
+ event.preventDefault();
125
+ this.onSubmit();
126
+ }
127
+
128
+ if (event.code === 'Escape' || event.key === 'Escape') {
129
+ event.preventDefault();
130
+ this.props.handleCancel();
131
+ }
132
+ }
133
+ }, {
134
+ key: "onSubmit",
135
+ value: function onSubmit() {
136
+ var _this$props = this.props,
137
+ handleAdd = _this$props.handleAdd,
138
+ onlyValue = _this$props.onlyValue,
139
+ onSubmitValueParser = _this$props.onSubmitValueParser,
140
+ keyPath = _this$props.keyPath,
141
+ deep = _this$props.deep;
142
+ var _this$state2 = this.state,
143
+ inputRefKey = _this$state2.inputRefKey,
144
+ inputRefValue = _this$state2.inputRefValue;
145
+ var result = {}; // Check if we have the key
146
+
147
+ if (!onlyValue) {
148
+ // Check that there is a key
149
+ if (!inputRefKey.value) {
150
+ // Empty key => Not authorized
151
+ return;
152
+ }
153
+
154
+ result.key = inputRefKey.value;
155
+ }
156
+
157
+ result.newValue = onSubmitValueParser(false, keyPath, deep, result.key, inputRefValue.value);
158
+ handleAdd(result);
159
+ }
160
+ }, {
161
+ key: "refInputKey",
162
+ value: function refInputKey(node) {
163
+ // @ts-ignore
164
+ this.state.inputRefKey = node;
165
+ }
166
+ }, {
167
+ key: "refInputValue",
168
+ value: function refInputValue(node) {
169
+ // @ts-ignore
170
+ this.state.inputRefValue = node;
171
+ }
172
+ }, {
173
+ key: "render",
174
+ value: function render() {
175
+ var _this$props2 = this.props,
176
+ handleCancel = _this$props2.handleCancel,
177
+ onlyValue = _this$props2.onlyValue,
178
+ addButtonElement = _this$props2.addButtonElement,
179
+ cancelButtonElement = _this$props2.cancelButtonElement,
180
+ inputElementGenerator = _this$props2.inputElementGenerator,
181
+ keyPath = _this$props2.keyPath,
182
+ deep = _this$props2.deep;
183
+ var addButtonElementLayout = /*#__PURE__*/cloneElement(addButtonElement, {
184
+ onClick: this.onSubmit
185
+ });
186
+ var cancelButtonElementLayout = /*#__PURE__*/cloneElement(cancelButtonElement, {
187
+ onClick: handleCancel
188
+ });
189
+ var inputElementValue = inputElementGenerator(inputUsageTypes.VALUE, keyPath, deep);
190
+ var inputElementValueLayout = /*#__PURE__*/cloneElement(inputElementValue, {
191
+ placeholder: 'Value',
192
+ ref: this.refInputValue
193
+ });
194
+ var inputElementKeyLayout = null;
195
+
196
+ if (!onlyValue) {
197
+ var inputElementKey = inputElementGenerator(inputUsageTypes.KEY, keyPath, deep);
198
+ inputElementKeyLayout = /*#__PURE__*/cloneElement(inputElementKey, {
199
+ placeholder: 'Key',
200
+ ref: this.refInputKey
201
+ });
202
+ }
203
+
204
+ return /*#__PURE__*/React.createElement("span", {
205
+ className: "rejt-add-value-node"
206
+ }, inputElementKeyLayout, inputElementValueLayout, cancelButtonElementLayout, addButtonElementLayout);
207
+ }
208
+ }]);
209
+
210
+ return JsonAddValue;
211
+ }(Component);
212
+ JsonAddValue.displayName = "JsonAddValue";
213
+ // @ts-ignore
214
+ JsonAddValue.defaultProps = {
215
+ onlyValue: false,
216
+ addButtonElement: /*#__PURE__*/React.createElement("button", null, "+"),
217
+ cancelButtonElement: /*#__PURE__*/React.createElement("button", null, "c")
218
+ };
219
+ export var JsonArray = /*#__PURE__*/function (_Component2) {
220
+ _inherits(JsonArray, _Component2);
221
+
222
+ var _super2 = _createSuper(JsonArray);
223
+
224
+ function JsonArray(props) {
225
+ var _this2;
226
+
227
+ _classCallCheck(this, JsonArray);
228
+
229
+ _this2 = _super2.call(this, props);
230
+ var keyPath = [].concat(_toConsumableArray(props.keyPath), [props.name]);
231
+ _this2.state = {
232
+ data: props.data,
233
+ name: props.name,
234
+ keyPath: keyPath,
235
+ deep: props.deep,
236
+ nextDeep: props.deep + 1,
237
+ collapsed: props.isCollapsed(keyPath, props.deep, props.data),
238
+ addFormVisible: false
239
+ }; // Bind
240
+
241
+ _this2.handleCollapseMode = _this2.handleCollapseMode.bind(_assertThisInitialized(_this2));
242
+ _this2.handleRemoveItem = _this2.handleRemoveItem.bind(_assertThisInitialized(_this2));
243
+ _this2.handleAddMode = _this2.handleAddMode.bind(_assertThisInitialized(_this2));
244
+ _this2.handleAddValueAdd = _this2.handleAddValueAdd.bind(_assertThisInitialized(_this2));
245
+ _this2.handleAddValueCancel = _this2.handleAddValueCancel.bind(_assertThisInitialized(_this2));
246
+ _this2.handleEditValue = _this2.handleEditValue.bind(_assertThisInitialized(_this2));
247
+ _this2.onChildUpdate = _this2.onChildUpdate.bind(_assertThisInitialized(_this2));
248
+ _this2.renderCollapsed = _this2.renderCollapsed.bind(_assertThisInitialized(_this2));
249
+ _this2.renderNotCollapsed = _this2.renderNotCollapsed.bind(_assertThisInitialized(_this2));
250
+ return _this2;
251
+ }
252
+
253
+ _createClass(JsonArray, [{
254
+ key: "onChildUpdate",
255
+ value: function onChildUpdate(childKey, childData) {
256
+ var _this$state3 = this.state,
257
+ data = _this$state3.data,
258
+ keyPath = _this$state3.keyPath; // Update data
259
+ // @ts-ignore
260
+
261
+ data[childKey] = childData; // Put new data
262
+
263
+ this.setState({
264
+ data: data
265
+ }); // Spread
266
+
267
+ var onUpdate = this.props.onUpdate;
268
+ var size = keyPath.length;
269
+ onUpdate(keyPath[size - 1], data);
270
+ }
271
+ }, {
272
+ key: "handleAddMode",
273
+ value: function handleAddMode() {
274
+ this.setState({
275
+ addFormVisible: true
276
+ });
277
+ }
278
+ }, {
279
+ key: "handleCollapseMode",
280
+ value: function handleCollapseMode() {
281
+ this.setState(function (state) {
282
+ return {
283
+ collapsed: !state.collapsed
284
+ };
285
+ });
286
+ }
287
+ }, {
288
+ key: "handleRemoveItem",
289
+ value: function handleRemoveItem(index) {
290
+ var _this3 = this;
291
+
292
+ return function () {
293
+ var _this3$props = _this3.props,
294
+ beforeRemoveAction = _this3$props.beforeRemoveAction,
295
+ logger = _this3$props.logger;
296
+ var _this3$state = _this3.state,
297
+ data = _this3$state.data,
298
+ keyPath = _this3$state.keyPath,
299
+ deep = _this3$state.nextDeep;
300
+ var oldValue = data[index]; // Before Remove Action
301
+
302
+ beforeRemoveAction(index, keyPath, deep, oldValue).then(function () {
303
+ var deltaUpdateResult = {
304
+ keyPath: keyPath,
305
+ deep: deep,
306
+ key: index,
307
+ oldValue: oldValue,
308
+ type: deltaTypes.REMOVE_DELTA_TYPE
309
+ };
310
+ data.splice(index, 1);
311
+
312
+ _this3.setState({
313
+ data: data
314
+ }); // Spread new update
315
+
316
+
317
+ var _this3$props2 = _this3.props,
318
+ onUpdate = _this3$props2.onUpdate,
319
+ onDeltaUpdate = _this3$props2.onDeltaUpdate;
320
+ onUpdate(keyPath[keyPath.length - 1], data); // Spread delta update
321
+
322
+ onDeltaUpdate(deltaUpdateResult);
323
+ }).catch(logger.error);
324
+ };
325
+ }
326
+ }, {
327
+ key: "handleAddValueAdd",
328
+ value: function handleAddValueAdd(_ref) {
329
+ var _this4 = this;
330
+
331
+ var newValue = _ref.newValue;
332
+ var _this$state4 = this.state,
333
+ data = _this$state4.data,
334
+ keyPath = _this$state4.keyPath,
335
+ deep = _this$state4.nextDeep;
336
+ var _this$props3 = this.props,
337
+ beforeAddAction = _this$props3.beforeAddAction,
338
+ logger = _this$props3.logger;
339
+ beforeAddAction(data.length, keyPath, deep, newValue).then(function () {
340
+ // Update data
341
+ var newData = [].concat(_toConsumableArray(data), [newValue]);
342
+
343
+ _this4.setState({
344
+ data: newData
345
+ }); // Cancel add to close
346
+
347
+
348
+ _this4.handleAddValueCancel(); // Spread new update
349
+
350
+
351
+ var _this4$props = _this4.props,
352
+ onUpdate = _this4$props.onUpdate,
353
+ onDeltaUpdate = _this4$props.onDeltaUpdate;
354
+ onUpdate(keyPath[keyPath.length - 1], newData); // Spread delta update
355
+
356
+ onDeltaUpdate({
357
+ type: deltaTypes.ADD_DELTA_TYPE,
358
+ keyPath: keyPath,
359
+ deep: deep,
360
+ key: newData.length - 1,
361
+ newValue: newValue
362
+ });
363
+ }).catch(logger.error);
364
+ }
365
+ }, {
366
+ key: "handleAddValueCancel",
367
+ value: function handleAddValueCancel() {
368
+ this.setState({
369
+ addFormVisible: false
370
+ });
371
+ }
372
+ }, {
373
+ key: "handleEditValue",
374
+ value: function handleEditValue(_ref2) {
375
+ var _this5 = this;
376
+
377
+ var key = _ref2.key,
378
+ value = _ref2.value;
379
+ return new Promise(function (resolve, reject) {
380
+ var beforeUpdateAction = _this5.props.beforeUpdateAction;
381
+ var _this5$state = _this5.state,
382
+ data = _this5$state.data,
383
+ keyPath = _this5$state.keyPath,
384
+ deep = _this5$state.nextDeep; // Old value
385
+
386
+ var oldValue = data[key]; // Before update action
387
+
388
+ beforeUpdateAction(key, keyPath, deep, oldValue, value).then(function () {
389
+ // Update value
390
+ data[key] = value; // Set state
391
+
392
+ _this5.setState({
393
+ data: data
394
+ }); // Spread new update
395
+
396
+
397
+ var _this5$props = _this5.props,
398
+ onUpdate = _this5$props.onUpdate,
399
+ onDeltaUpdate = _this5$props.onDeltaUpdate;
400
+ onUpdate(keyPath[keyPath.length - 1], data); // Spread delta update
401
+
402
+ onDeltaUpdate({
403
+ type: deltaTypes.UPDATE_DELTA_TYPE,
404
+ keyPath: keyPath,
405
+ deep: deep,
406
+ key: key,
407
+ newValue: value,
408
+ oldValue: oldValue
409
+ }); // Resolve
410
+
411
+ resolve(undefined);
412
+ }).catch(reject);
413
+ });
414
+ }
415
+ }, {
416
+ key: "renderCollapsed",
417
+ value: function renderCollapsed() {
418
+ var _this$state5 = this.state,
419
+ name = _this$state5.name,
420
+ data = _this$state5.data,
421
+ keyPath = _this$state5.keyPath,
422
+ deep = _this$state5.deep;
423
+ var _this$props4 = this.props,
424
+ handleRemove = _this$props4.handleRemove,
425
+ readOnly = _this$props4.readOnly,
426
+ getStyle = _this$props4.getStyle,
427
+ dataType = _this$props4.dataType,
428
+ minusMenuElement = _this$props4.minusMenuElement;
429
+
430
+ var _getStyle = getStyle(name, data, keyPath, deep, dataType),
431
+ minus = _getStyle.minus,
432
+ collapsed = _getStyle.collapsed;
433
+
434
+ var isReadOnly = readOnly(name, data, keyPath, deep, dataType);
435
+ var removeItemButton = /*#__PURE__*/cloneElement(minusMenuElement, {
436
+ onClick: handleRemove,
437
+ className: 'rejt-minus-menu',
438
+ style: minus
439
+ });
440
+ return /*#__PURE__*/React.createElement("span", {
441
+ className: "rejt-collapsed"
442
+ }, /*#__PURE__*/React.createElement("span", {
443
+ className: "rejt-collapsed-text",
444
+ style: collapsed,
445
+ onClick: this.handleCollapseMode
446
+ }, "[...] ", data.length, " ", data.length === 1 ? 'item' : 'items'), !isReadOnly && removeItemButton);
447
+ }
448
+ }, {
449
+ key: "renderNotCollapsed",
450
+ value: function renderNotCollapsed() {
451
+ var _this6 = this;
452
+
453
+ var _this$state6 = this.state,
454
+ name = _this$state6.name,
455
+ data = _this$state6.data,
456
+ keyPath = _this$state6.keyPath,
457
+ deep = _this$state6.deep,
458
+ addFormVisible = _this$state6.addFormVisible,
459
+ nextDeep = _this$state6.nextDeep;
460
+ var _this$props5 = this.props,
461
+ isCollapsed = _this$props5.isCollapsed,
462
+ handleRemove = _this$props5.handleRemove,
463
+ onDeltaUpdate = _this$props5.onDeltaUpdate,
464
+ readOnly = _this$props5.readOnly,
465
+ getStyle = _this$props5.getStyle,
466
+ dataType = _this$props5.dataType,
467
+ addButtonElement = _this$props5.addButtonElement,
468
+ cancelButtonElement = _this$props5.cancelButtonElement,
469
+ editButtonElement = _this$props5.editButtonElement,
470
+ inputElementGenerator = _this$props5.inputElementGenerator,
471
+ textareaElementGenerator = _this$props5.textareaElementGenerator,
472
+ minusMenuElement = _this$props5.minusMenuElement,
473
+ plusMenuElement = _this$props5.plusMenuElement,
474
+ beforeRemoveAction = _this$props5.beforeRemoveAction,
475
+ beforeAddAction = _this$props5.beforeAddAction,
476
+ beforeUpdateAction = _this$props5.beforeUpdateAction,
477
+ logger = _this$props5.logger,
478
+ onSubmitValueParser = _this$props5.onSubmitValueParser;
479
+
480
+ var _getStyle2 = getStyle(name, data, keyPath, deep, dataType),
481
+ minus = _getStyle2.minus,
482
+ plus = _getStyle2.plus,
483
+ delimiter = _getStyle2.delimiter,
484
+ ul = _getStyle2.ul,
485
+ addForm = _getStyle2.addForm;
486
+
487
+ var isReadOnly = readOnly(name, data, keyPath, deep, dataType);
488
+ var addItemButton = /*#__PURE__*/cloneElement(plusMenuElement, {
489
+ onClick: this.handleAddMode,
490
+ className: 'rejt-plus-menu',
491
+ style: plus
492
+ });
493
+ var removeItemButton = /*#__PURE__*/cloneElement(minusMenuElement, {
494
+ onClick: handleRemove,
495
+ className: 'rejt-minus-menu',
496
+ style: minus
497
+ });
498
+ var onlyValue = true;
499
+ var startObject = '[';
500
+ var endObject = ']';
501
+ return /*#__PURE__*/React.createElement("span", {
502
+ className: "rejt-not-collapsed"
503
+ }, /*#__PURE__*/React.createElement("span", {
504
+ className: "rejt-not-collapsed-delimiter",
505
+ style: delimiter
506
+ }, startObject), !addFormVisible && addItemButton, /*#__PURE__*/React.createElement("ul", {
507
+ className: "rejt-not-collapsed-list",
508
+ style: ul
509
+ }, data.map(function (item, index) {
510
+ return /*#__PURE__*/React.createElement(JsonNode, {
511
+ key: index,
512
+ name: "".concat(index),
513
+ data: item,
514
+ keyPath: keyPath,
515
+ deep: nextDeep,
516
+ isCollapsed: isCollapsed,
517
+ handleRemove: _this6.handleRemoveItem(index),
518
+ handleUpdateValue: _this6.handleEditValue,
519
+ onUpdate: _this6.onChildUpdate,
520
+ onDeltaUpdate: onDeltaUpdate,
521
+ readOnly: readOnly,
522
+ getStyle: getStyle,
523
+ addButtonElement: addButtonElement,
524
+ cancelButtonElement: cancelButtonElement,
525
+ editButtonElement: editButtonElement,
526
+ inputElementGenerator: inputElementGenerator,
527
+ textareaElementGenerator: textareaElementGenerator,
528
+ minusMenuElement: minusMenuElement,
529
+ plusMenuElement: plusMenuElement,
530
+ beforeRemoveAction: beforeRemoveAction,
531
+ beforeAddAction: beforeAddAction,
532
+ beforeUpdateAction: beforeUpdateAction,
533
+ logger: logger,
534
+ onSubmitValueParser: onSubmitValueParser
535
+ });
536
+ })), !isReadOnly && addFormVisible && /*#__PURE__*/React.createElement("div", {
537
+ className: "rejt-add-form",
538
+ style: addForm
539
+ }, /*#__PURE__*/React.createElement(JsonAddValue, {
540
+ handleAdd: this.handleAddValueAdd,
541
+ handleCancel: this.handleAddValueCancel,
542
+ onlyValue: onlyValue,
543
+ addButtonElement: addButtonElement,
544
+ cancelButtonElement: cancelButtonElement,
545
+ inputElementGenerator: inputElementGenerator,
546
+ keyPath: keyPath,
547
+ deep: deep,
548
+ onSubmitValueParser: onSubmitValueParser
549
+ })), /*#__PURE__*/React.createElement("span", {
550
+ className: "rejt-not-collapsed-delimiter",
551
+ style: delimiter
552
+ }, endObject), !isReadOnly && removeItemButton);
553
+ }
554
+ }, {
555
+ key: "render",
556
+ value: function render() {
557
+ var _this$state7 = this.state,
558
+ name = _this$state7.name,
559
+ collapsed = _this$state7.collapsed,
560
+ data = _this$state7.data,
561
+ keyPath = _this$state7.keyPath,
562
+ deep = _this$state7.deep;
563
+ var _this$props6 = this.props,
564
+ dataType = _this$props6.dataType,
565
+ getStyle = _this$props6.getStyle;
566
+ var value = collapsed ? this.renderCollapsed() : this.renderNotCollapsed();
567
+ var style = getStyle(name, data, keyPath, deep, dataType);
568
+ return /*#__PURE__*/React.createElement("div", {
569
+ className: "rejt-array-node"
570
+ }, /*#__PURE__*/React.createElement("span", {
571
+ onClick: this.handleCollapseMode
572
+ }, /*#__PURE__*/React.createElement("span", {
573
+ className: "rejt-name",
574
+ style: style.name
575
+ }, name, " :", ' ')), value);
576
+ }
577
+ }], [{
578
+ key: "getDerivedStateFromProps",
579
+ value: function getDerivedStateFromProps(props, state) {
580
+ return props.data !== state.data ? {
581
+ data: props.data
582
+ } : null;
583
+ }
584
+ }]);
585
+
586
+ return JsonArray;
587
+ }(Component);
588
+ JsonArray.displayName = "JsonArray";
589
+ // @ts-ignore
590
+ JsonArray.defaultProps = {
591
+ keyPath: [],
592
+ deep: 0,
593
+ minusMenuElement: /*#__PURE__*/React.createElement("span", null, " - "),
594
+ plusMenuElement: /*#__PURE__*/React.createElement("span", null, " + ")
595
+ };
596
+ export var JsonFunctionValue = /*#__PURE__*/function (_Component3) {
597
+ _inherits(JsonFunctionValue, _Component3);
598
+
599
+ var _super3 = _createSuper(JsonFunctionValue);
600
+
601
+ function JsonFunctionValue(props) {
602
+ var _this7;
603
+
604
+ _classCallCheck(this, JsonFunctionValue);
605
+
606
+ _this7 = _super3.call(this, props);
607
+ var keyPath = [].concat(_toConsumableArray(props.keyPath), [props.name]);
608
+ _this7.state = {
609
+ value: props.value,
610
+ name: props.name,
611
+ keyPath: keyPath,
612
+ deep: props.deep,
613
+ editEnabled: false,
614
+ inputRef: null
615
+ }; // Bind
616
+
617
+ _this7.handleEditMode = _this7.handleEditMode.bind(_assertThisInitialized(_this7));
618
+ _this7.refInput = _this7.refInput.bind(_assertThisInitialized(_this7));
619
+ _this7.handleCancelEdit = _this7.handleCancelEdit.bind(_assertThisInitialized(_this7));
620
+ _this7.handleEdit = _this7.handleEdit.bind(_assertThisInitialized(_this7));
621
+ _this7.onKeydown = _this7.onKeydown.bind(_assertThisInitialized(_this7));
622
+ return _this7;
623
+ }
624
+
625
+ _createClass(JsonFunctionValue, [{
626
+ key: "componentDidUpdate",
627
+ value: function componentDidUpdate() {
628
+ var _this$state8 = this.state,
629
+ editEnabled = _this$state8.editEnabled,
630
+ inputRef = _this$state8.inputRef,
631
+ name = _this$state8.name,
632
+ value = _this$state8.value,
633
+ keyPath = _this$state8.keyPath,
634
+ deep = _this$state8.deep;
635
+ var _this$props7 = this.props,
636
+ readOnly = _this$props7.readOnly,
637
+ dataType = _this$props7.dataType;
638
+ var readOnlyResult = readOnly(name, value, keyPath, deep, dataType);
639
+
640
+ if (editEnabled && !readOnlyResult && typeof inputRef.focus === 'function') {
641
+ inputRef.focus();
642
+ }
643
+ }
644
+ }, {
645
+ key: "componentDidMount",
646
+ value: function componentDidMount() {
647
+ document.addEventListener('keydown', this.onKeydown);
648
+ }
649
+ }, {
650
+ key: "componentWillUnmount",
651
+ value: function componentWillUnmount() {
652
+ document.removeEventListener('keydown', this.onKeydown);
653
+ }
654
+ }, {
655
+ key: "onKeydown",
656
+ value: function onKeydown(event) {
657
+ if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey || event.repeat) return;
658
+
659
+ if (event.code === 'Enter' || event.key === 'Enter') {
660
+ event.preventDefault();
661
+ this.handleEdit();
662
+ }
663
+
664
+ if (event.code === 'Escape' || event.key === 'Escape') {
665
+ event.preventDefault();
666
+ this.handleCancelEdit();
667
+ }
668
+ }
669
+ }, {
670
+ key: "handleEdit",
671
+ value: function handleEdit() {
672
+ var _this8 = this;
673
+
674
+ var _this$props8 = this.props,
675
+ handleUpdateValue = _this$props8.handleUpdateValue,
676
+ originalValue = _this$props8.originalValue,
677
+ logger = _this$props8.logger,
678
+ onSubmitValueParser = _this$props8.onSubmitValueParser,
679
+ keyPath = _this$props8.keyPath;
680
+ var _this$state9 = this.state,
681
+ inputRef = _this$state9.inputRef,
682
+ name = _this$state9.name,
683
+ deep = _this$state9.deep;
684
+ if (!inputRef) return;
685
+ var newValue = onSubmitValueParser(true, keyPath, deep, name, inputRef.value);
686
+ var result = {
687
+ value: newValue,
688
+ key: name
689
+ }; // Run update
690
+
691
+ handleUpdateValue(result).then(function () {
692
+ // Cancel edit mode if necessary
693
+ if (!isComponentWillChange(originalValue, newValue)) {
694
+ _this8.handleCancelEdit();
695
+ }
696
+ }).catch(logger.error);
697
+ }
698
+ }, {
699
+ key: "handleEditMode",
700
+ value: function handleEditMode() {
701
+ this.setState({
702
+ editEnabled: true
703
+ });
704
+ }
705
+ }, {
706
+ key: "refInput",
707
+ value: function refInput(node) {
708
+ // @ts-ignore
709
+ this.state.inputRef = node;
710
+ }
711
+ }, {
712
+ key: "handleCancelEdit",
713
+ value: function handleCancelEdit() {
714
+ this.setState({
715
+ editEnabled: false
716
+ });
717
+ }
718
+ }, {
719
+ key: "render",
720
+ value: function render() {
721
+ var _this$state10 = this.state,
722
+ name = _this$state10.name,
723
+ value = _this$state10.value,
724
+ editEnabled = _this$state10.editEnabled,
725
+ keyPath = _this$state10.keyPath,
726
+ deep = _this$state10.deep;
727
+ var _this$props9 = this.props,
728
+ handleRemove = _this$props9.handleRemove,
729
+ originalValue = _this$props9.originalValue,
730
+ readOnly = _this$props9.readOnly,
731
+ dataType = _this$props9.dataType,
732
+ getStyle = _this$props9.getStyle,
733
+ editButtonElement = _this$props9.editButtonElement,
734
+ cancelButtonElement = _this$props9.cancelButtonElement,
735
+ textareaElementGenerator = _this$props9.textareaElementGenerator,
736
+ minusMenuElement = _this$props9.minusMenuElement,
737
+ comeFromKeyPath = _this$props9.keyPath;
738
+ var style = getStyle(name, originalValue, keyPath, deep, dataType);
739
+ var result = null;
740
+ var minusElement = null;
741
+ var resultOnlyResult = readOnly(name, originalValue, keyPath, deep, dataType);
742
+
743
+ if (editEnabled && !resultOnlyResult) {
744
+ var textareaElement = textareaElementGenerator(inputUsageTypes.VALUE, comeFromKeyPath, deep, name, originalValue, dataType);
745
+ var editButtonElementLayout = /*#__PURE__*/cloneElement(editButtonElement, {
746
+ onClick: this.handleEdit
747
+ });
748
+ var cancelButtonElementLayout = /*#__PURE__*/cloneElement(cancelButtonElement, {
749
+ onClick: this.handleCancelEdit
750
+ });
751
+ var textareaElementLayout = /*#__PURE__*/cloneElement(textareaElement, {
752
+ ref: this.refInput,
753
+ defaultValue: originalValue
754
+ });
755
+ result = /*#__PURE__*/React.createElement("span", {
756
+ className: "rejt-edit-form",
757
+ style: style.editForm
758
+ }, textareaElementLayout, " ", cancelButtonElementLayout, editButtonElementLayout);
759
+ minusElement = null;
760
+ } else {
761
+ result = /*#__PURE__*/React.createElement("span", {
762
+ className: "rejt-value",
763
+ style: style.value,
764
+ onClick: resultOnlyResult ? null : this.handleEditMode
765
+ }, value);
766
+ var minusMenuLayout = /*#__PURE__*/cloneElement(minusMenuElement, {
767
+ onClick: handleRemove,
768
+ className: 'rejt-minus-menu',
769
+ style: style.minus
770
+ });
771
+ minusElement = resultOnlyResult ? null : minusMenuLayout;
772
+ }
773
+
774
+ return /*#__PURE__*/React.createElement("li", {
775
+ className: "rejt-function-value-node",
776
+ style: style.li
777
+ }, /*#__PURE__*/React.createElement("span", {
778
+ className: "rejt-name",
779
+ style: style.name
780
+ }, name, " :", ' '), result, minusElement);
781
+ }
782
+ }], [{
783
+ key: "getDerivedStateFromProps",
784
+ value: function getDerivedStateFromProps(props, state) {
785
+ return props.value !== state.value ? {
786
+ value: props.value
787
+ } : null;
788
+ }
789
+ }]);
790
+
791
+ return JsonFunctionValue;
792
+ }(Component);
793
+ JsonFunctionValue.displayName = "JsonFunctionValue";
794
+ // @ts-ignore
795
+ JsonFunctionValue.defaultProps = {
796
+ keyPath: [],
797
+ deep: 0,
798
+ handleUpdateValue: function handleUpdateValue() {},
799
+ editButtonElement: /*#__PURE__*/React.createElement("button", null, "e"),
800
+ cancelButtonElement: /*#__PURE__*/React.createElement("button", null, "c"),
801
+ minusMenuElement: /*#__PURE__*/React.createElement("span", null, " - ")
802
+ };
803
+ export var JsonNode = /*#__PURE__*/function (_Component4) {
804
+ _inherits(JsonNode, _Component4);
805
+
806
+ var _super4 = _createSuper(JsonNode);
807
+
808
+ function JsonNode(props) {
809
+ var _this9;
810
+
811
+ _classCallCheck(this, JsonNode);
812
+
813
+ _this9 = _super4.call(this, props);
814
+ _this9.state = {
815
+ data: props.data,
816
+ name: props.name,
817
+ keyPath: props.keyPath,
818
+ deep: props.deep
819
+ };
820
+ return _this9;
821
+ }
822
+
823
+ _createClass(JsonNode, [{
824
+ key: "render",
825
+ value: function render() {
826
+ var _this$state11 = this.state,
827
+ data = _this$state11.data,
828
+ name = _this$state11.name,
829
+ keyPath = _this$state11.keyPath,
830
+ deep = _this$state11.deep;
831
+ var _this$props10 = this.props,
832
+ isCollapsed = _this$props10.isCollapsed,
833
+ handleRemove = _this$props10.handleRemove,
834
+ handleUpdateValue = _this$props10.handleUpdateValue,
835
+ onUpdate = _this$props10.onUpdate,
836
+ onDeltaUpdate = _this$props10.onDeltaUpdate,
837
+ readOnly = _this$props10.readOnly,
838
+ getStyle = _this$props10.getStyle,
839
+ addButtonElement = _this$props10.addButtonElement,
840
+ cancelButtonElement = _this$props10.cancelButtonElement,
841
+ editButtonElement = _this$props10.editButtonElement,
842
+ inputElementGenerator = _this$props10.inputElementGenerator,
843
+ textareaElementGenerator = _this$props10.textareaElementGenerator,
844
+ minusMenuElement = _this$props10.minusMenuElement,
845
+ plusMenuElement = _this$props10.plusMenuElement,
846
+ beforeRemoveAction = _this$props10.beforeRemoveAction,
847
+ beforeAddAction = _this$props10.beforeAddAction,
848
+ beforeUpdateAction = _this$props10.beforeUpdateAction,
849
+ logger = _this$props10.logger,
850
+ onSubmitValueParser = _this$props10.onSubmitValueParser;
851
+
852
+ var readOnlyTrue = function readOnlyTrue() {
853
+ return true;
854
+ };
855
+
856
+ var dataType = getObjectType(data);
857
+
858
+ switch (dataType) {
859
+ case dataTypes.ERROR:
860
+ return /*#__PURE__*/React.createElement(JsonObject, {
861
+ data: data,
862
+ name: name,
863
+ isCollapsed: isCollapsed,
864
+ keyPath: keyPath,
865
+ deep: deep,
866
+ handleRemove: handleRemove,
867
+ onUpdate: onUpdate,
868
+ onDeltaUpdate: onDeltaUpdate,
869
+ readOnly: readOnlyTrue,
870
+ dataType: dataType,
871
+ getStyle: getStyle,
872
+ addButtonElement: addButtonElement,
873
+ cancelButtonElement: cancelButtonElement,
874
+ editButtonElement: editButtonElement,
875
+ inputElementGenerator: inputElementGenerator,
876
+ textareaElementGenerator: textareaElementGenerator,
877
+ minusMenuElement: minusMenuElement,
878
+ plusMenuElement: plusMenuElement,
879
+ beforeRemoveAction: beforeRemoveAction,
880
+ beforeAddAction: beforeAddAction,
881
+ beforeUpdateAction: beforeUpdateAction,
882
+ logger: logger,
883
+ onSubmitValueParser: onSubmitValueParser
884
+ });
885
+
886
+ case dataTypes.OBJECT:
887
+ return /*#__PURE__*/React.createElement(JsonObject, {
888
+ data: data,
889
+ name: name,
890
+ isCollapsed: isCollapsed,
891
+ keyPath: keyPath,
892
+ deep: deep,
893
+ handleRemove: handleRemove,
894
+ onUpdate: onUpdate,
895
+ onDeltaUpdate: onDeltaUpdate,
896
+ readOnly: readOnly,
897
+ dataType: dataType,
898
+ getStyle: getStyle,
899
+ addButtonElement: addButtonElement,
900
+ cancelButtonElement: cancelButtonElement,
901
+ editButtonElement: editButtonElement,
902
+ inputElementGenerator: inputElementGenerator,
903
+ textareaElementGenerator: textareaElementGenerator,
904
+ minusMenuElement: minusMenuElement,
905
+ plusMenuElement: plusMenuElement,
906
+ beforeRemoveAction: beforeRemoveAction,
907
+ beforeAddAction: beforeAddAction,
908
+ beforeUpdateAction: beforeUpdateAction,
909
+ logger: logger,
910
+ onSubmitValueParser: onSubmitValueParser
911
+ });
912
+
913
+ case dataTypes.ARRAY:
914
+ return /*#__PURE__*/React.createElement(JsonArray, {
915
+ data: data,
916
+ name: name,
917
+ isCollapsed: isCollapsed,
918
+ keyPath: keyPath,
919
+ deep: deep,
920
+ handleRemove: handleRemove,
921
+ onUpdate: onUpdate,
922
+ onDeltaUpdate: onDeltaUpdate,
923
+ readOnly: readOnly,
924
+ dataType: dataType,
925
+ getStyle: getStyle,
926
+ addButtonElement: addButtonElement,
927
+ cancelButtonElement: cancelButtonElement,
928
+ editButtonElement: editButtonElement,
929
+ inputElementGenerator: inputElementGenerator,
930
+ textareaElementGenerator: textareaElementGenerator,
931
+ minusMenuElement: minusMenuElement,
932
+ plusMenuElement: plusMenuElement,
933
+ beforeRemoveAction: beforeRemoveAction,
934
+ beforeAddAction: beforeAddAction,
935
+ beforeUpdateAction: beforeUpdateAction,
936
+ logger: logger,
937
+ onSubmitValueParser: onSubmitValueParser
938
+ });
939
+
940
+ case dataTypes.STRING:
941
+ return /*#__PURE__*/React.createElement(JsonValue, {
942
+ name: name,
943
+ value: "\"".concat(data, "\""),
944
+ originalValue: data,
945
+ keyPath: keyPath,
946
+ deep: deep,
947
+ handleRemove: handleRemove,
948
+ handleUpdateValue: handleUpdateValue,
949
+ readOnly: readOnly,
950
+ dataType: dataType,
951
+ getStyle: getStyle,
952
+ cancelButtonElement: cancelButtonElement,
953
+ editButtonElement: editButtonElement,
954
+ inputElementGenerator: inputElementGenerator,
955
+ minusMenuElement: minusMenuElement,
956
+ logger: logger,
957
+ onSubmitValueParser: onSubmitValueParser
958
+ });
959
+
960
+ case dataTypes.NUMBER:
961
+ return /*#__PURE__*/React.createElement(JsonValue, {
962
+ name: name,
963
+ value: data,
964
+ originalValue: data,
965
+ keyPath: keyPath,
966
+ deep: deep,
967
+ handleRemove: handleRemove,
968
+ handleUpdateValue: handleUpdateValue,
969
+ readOnly: readOnly,
970
+ dataType: dataType,
971
+ getStyle: getStyle,
972
+ cancelButtonElement: cancelButtonElement,
973
+ editButtonElement: editButtonElement,
974
+ inputElementGenerator: inputElementGenerator,
975
+ minusMenuElement: minusMenuElement,
976
+ logger: logger,
977
+ onSubmitValueParser: onSubmitValueParser
978
+ });
979
+
980
+ case dataTypes.BOOLEAN:
981
+ return /*#__PURE__*/React.createElement(JsonValue, {
982
+ name: name,
983
+ value: data ? 'true' : 'false',
984
+ originalValue: data,
985
+ keyPath: keyPath,
986
+ deep: deep,
987
+ handleRemove: handleRemove,
988
+ handleUpdateValue: handleUpdateValue,
989
+ readOnly: readOnly,
990
+ dataType: dataType,
991
+ getStyle: getStyle,
992
+ cancelButtonElement: cancelButtonElement,
993
+ editButtonElement: editButtonElement,
994
+ inputElementGenerator: inputElementGenerator,
995
+ minusMenuElement: minusMenuElement,
996
+ logger: logger,
997
+ onSubmitValueParser: onSubmitValueParser
998
+ });
999
+
1000
+ case dataTypes.DATE:
1001
+ return /*#__PURE__*/React.createElement(JsonValue, {
1002
+ name: name,
1003
+ value: data.toISOString(),
1004
+ originalValue: data,
1005
+ keyPath: keyPath,
1006
+ deep: deep,
1007
+ handleRemove: handleRemove,
1008
+ handleUpdateValue: handleUpdateValue,
1009
+ readOnly: readOnlyTrue,
1010
+ dataType: dataType,
1011
+ getStyle: getStyle,
1012
+ cancelButtonElement: cancelButtonElement,
1013
+ editButtonElement: editButtonElement,
1014
+ inputElementGenerator: inputElementGenerator,
1015
+ minusMenuElement: minusMenuElement,
1016
+ logger: logger,
1017
+ onSubmitValueParser: onSubmitValueParser
1018
+ });
1019
+
1020
+ case dataTypes.NULL:
1021
+ return /*#__PURE__*/React.createElement(JsonValue, {
1022
+ name: name,
1023
+ value: "null",
1024
+ originalValue: "null",
1025
+ keyPath: keyPath,
1026
+ deep: deep,
1027
+ handleRemove: handleRemove,
1028
+ handleUpdateValue: handleUpdateValue,
1029
+ readOnly: readOnly,
1030
+ dataType: dataType,
1031
+ getStyle: getStyle,
1032
+ cancelButtonElement: cancelButtonElement,
1033
+ editButtonElement: editButtonElement,
1034
+ inputElementGenerator: inputElementGenerator,
1035
+ minusMenuElement: minusMenuElement,
1036
+ logger: logger,
1037
+ onSubmitValueParser: onSubmitValueParser
1038
+ });
1039
+
1040
+ case dataTypes.UNDEFINED:
1041
+ return /*#__PURE__*/React.createElement(JsonValue, {
1042
+ name: name,
1043
+ value: "undefined",
1044
+ originalValue: "undefined",
1045
+ keyPath: keyPath,
1046
+ deep: deep,
1047
+ handleRemove: handleRemove,
1048
+ handleUpdateValue: handleUpdateValue,
1049
+ readOnly: readOnly,
1050
+ dataType: dataType,
1051
+ getStyle: getStyle,
1052
+ cancelButtonElement: cancelButtonElement,
1053
+ editButtonElement: editButtonElement,
1054
+ inputElementGenerator: inputElementGenerator,
1055
+ minusMenuElement: minusMenuElement,
1056
+ logger: logger,
1057
+ onSubmitValueParser: onSubmitValueParser
1058
+ });
1059
+
1060
+ case dataTypes.FUNCTION:
1061
+ return /*#__PURE__*/React.createElement(JsonFunctionValue, {
1062
+ name: name,
1063
+ value: data.toString(),
1064
+ originalValue: data,
1065
+ keyPath: keyPath,
1066
+ deep: deep,
1067
+ handleRemove: handleRemove,
1068
+ handleUpdateValue: handleUpdateValue,
1069
+ readOnly: readOnly,
1070
+ dataType: dataType,
1071
+ getStyle: getStyle,
1072
+ cancelButtonElement: cancelButtonElement,
1073
+ editButtonElement: editButtonElement,
1074
+ textareaElementGenerator: textareaElementGenerator,
1075
+ minusMenuElement: minusMenuElement,
1076
+ logger: logger,
1077
+ onSubmitValueParser: onSubmitValueParser
1078
+ });
1079
+
1080
+ case dataTypes.SYMBOL:
1081
+ return /*#__PURE__*/React.createElement(JsonValue, {
1082
+ name: name,
1083
+ value: data.toString(),
1084
+ originalValue: data,
1085
+ keyPath: keyPath,
1086
+ deep: deep,
1087
+ handleRemove: handleRemove,
1088
+ handleUpdateValue: handleUpdateValue,
1089
+ readOnly: readOnlyTrue,
1090
+ dataType: dataType,
1091
+ getStyle: getStyle,
1092
+ cancelButtonElement: cancelButtonElement,
1093
+ editButtonElement: editButtonElement,
1094
+ inputElementGenerator: inputElementGenerator,
1095
+ minusMenuElement: minusMenuElement,
1096
+ logger: logger,
1097
+ onSubmitValueParser: onSubmitValueParser
1098
+ });
1099
+
1100
+ default:
1101
+ return null;
1102
+ }
1103
+ }
1104
+ }], [{
1105
+ key: "getDerivedStateFromProps",
1106
+ value: function getDerivedStateFromProps(props, state) {
1107
+ return props.data !== state.data ? {
1108
+ data: props.data
1109
+ } : null;
1110
+ }
1111
+ }]);
1112
+
1113
+ return JsonNode;
1114
+ }(Component);
1115
+ JsonNode.displayName = "JsonNode";
1116
+ /// @ts-ignore
1117
+ JsonNode.defaultProps = {
1118
+ keyPath: [],
1119
+ deep: 0
1120
+ };
1121
+ export var JsonObject = /*#__PURE__*/function (_Component5) {
1122
+ _inherits(JsonObject, _Component5);
1123
+
1124
+ var _super5 = _createSuper(JsonObject);
1125
+
1126
+ function JsonObject(props) {
1127
+ var _this10;
1128
+
1129
+ _classCallCheck(this, JsonObject);
1130
+
1131
+ _this10 = _super5.call(this, props);
1132
+ var keyPath = props.deep === -1 ? [] : [].concat(_toConsumableArray(props.keyPath), [props.name]);
1133
+ _this10.state = {
1134
+ name: props.name,
1135
+ data: props.data,
1136
+ keyPath: keyPath,
1137
+ deep: props.deep,
1138
+ nextDeep: props.deep + 1,
1139
+ collapsed: props.isCollapsed(keyPath, props.deep, props.data),
1140
+ addFormVisible: false
1141
+ }; // Bind
1142
+
1143
+ _this10.handleCollapseMode = _this10.handleCollapseMode.bind(_assertThisInitialized(_this10));
1144
+ _this10.handleRemoveValue = _this10.handleRemoveValue.bind(_assertThisInitialized(_this10));
1145
+ _this10.handleAddMode = _this10.handleAddMode.bind(_assertThisInitialized(_this10));
1146
+ _this10.handleAddValueAdd = _this10.handleAddValueAdd.bind(_assertThisInitialized(_this10));
1147
+ _this10.handleAddValueCancel = _this10.handleAddValueCancel.bind(_assertThisInitialized(_this10));
1148
+ _this10.handleEditValue = _this10.handleEditValue.bind(_assertThisInitialized(_this10));
1149
+ _this10.onChildUpdate = _this10.onChildUpdate.bind(_assertThisInitialized(_this10));
1150
+ _this10.renderCollapsed = _this10.renderCollapsed.bind(_assertThisInitialized(_this10));
1151
+ _this10.renderNotCollapsed = _this10.renderNotCollapsed.bind(_assertThisInitialized(_this10));
1152
+ return _this10;
1153
+ }
1154
+
1155
+ _createClass(JsonObject, [{
1156
+ key: "onChildUpdate",
1157
+ value: function onChildUpdate(childKey, childData) {
1158
+ var _this$state12 = this.state,
1159
+ data = _this$state12.data,
1160
+ keyPath = _this$state12.keyPath; // Update data
1161
+ // @ts-ignore
1162
+
1163
+ data[childKey] = childData; // Put new data
1164
+
1165
+ this.setState({
1166
+ data: data
1167
+ }); // Spread
1168
+
1169
+ var onUpdate = this.props.onUpdate;
1170
+ var size = keyPath.length;
1171
+ onUpdate(keyPath[size - 1], data);
1172
+ }
1173
+ }, {
1174
+ key: "handleAddMode",
1175
+ value: function handleAddMode() {
1176
+ this.setState({
1177
+ addFormVisible: true
1178
+ });
1179
+ }
1180
+ }, {
1181
+ key: "handleAddValueCancel",
1182
+ value: function handleAddValueCancel() {
1183
+ this.setState({
1184
+ addFormVisible: false
1185
+ });
1186
+ }
1187
+ }, {
1188
+ key: "handleAddValueAdd",
1189
+ value: function handleAddValueAdd(_ref3) {
1190
+ var _this11 = this;
1191
+
1192
+ var key = _ref3.key,
1193
+ newValue = _ref3.newValue;
1194
+ var _this$state13 = this.state,
1195
+ data = _this$state13.data,
1196
+ keyPath = _this$state13.keyPath,
1197
+ deep = _this$state13.nextDeep;
1198
+ var _this$props11 = this.props,
1199
+ beforeAddAction = _this$props11.beforeAddAction,
1200
+ logger = _this$props11.logger;
1201
+ beforeAddAction(key, keyPath, deep, newValue).then(function () {
1202
+ // Update data
1203
+ // @ts-ignore
1204
+ data[key] = newValue;
1205
+
1206
+ _this11.setState({
1207
+ data: data
1208
+ }); // Cancel add to close
1209
+
1210
+
1211
+ _this11.handleAddValueCancel(); // Spread new update
1212
+
1213
+
1214
+ var _this11$props = _this11.props,
1215
+ onUpdate = _this11$props.onUpdate,
1216
+ onDeltaUpdate = _this11$props.onDeltaUpdate;
1217
+ onUpdate(keyPath[keyPath.length - 1], data); // Spread delta update
1218
+
1219
+ onDeltaUpdate({
1220
+ type: deltaTypes.ADD_DELTA_TYPE,
1221
+ keyPath: keyPath,
1222
+ deep: deep,
1223
+ key: key,
1224
+ newValue: newValue
1225
+ });
1226
+ }).catch(logger.error);
1227
+ }
1228
+ }, {
1229
+ key: "handleRemoveValue",
1230
+ value: function handleRemoveValue(key) {
1231
+ var _this12 = this;
1232
+
1233
+ return function () {
1234
+ var _this12$props = _this12.props,
1235
+ beforeRemoveAction = _this12$props.beforeRemoveAction,
1236
+ logger = _this12$props.logger;
1237
+ var _this12$state = _this12.state,
1238
+ data = _this12$state.data,
1239
+ keyPath = _this12$state.keyPath,
1240
+ deep = _this12$state.nextDeep; // @ts-ignore
1241
+
1242
+ var oldValue = data[key]; // Before Remove Action
1243
+
1244
+ beforeRemoveAction(key, keyPath, deep, oldValue).then(function () {
1245
+ var deltaUpdateResult = {
1246
+ keyPath: keyPath,
1247
+ deep: deep,
1248
+ key: key,
1249
+ oldValue: oldValue,
1250
+ type: deltaTypes.REMOVE_DELTA_TYPE
1251
+ }; // @ts-ignore
1252
+
1253
+ delete data[key];
1254
+
1255
+ _this12.setState({
1256
+ data: data
1257
+ }); // Spread new update
1258
+
1259
+
1260
+ var _this12$props2 = _this12.props,
1261
+ onUpdate = _this12$props2.onUpdate,
1262
+ onDeltaUpdate = _this12$props2.onDeltaUpdate;
1263
+ onUpdate(keyPath[keyPath.length - 1], data); // Spread delta update
1264
+
1265
+ onDeltaUpdate(deltaUpdateResult);
1266
+ }).catch(logger.error);
1267
+ };
1268
+ }
1269
+ }, {
1270
+ key: "handleCollapseMode",
1271
+ value: function handleCollapseMode() {
1272
+ this.setState(function (state) {
1273
+ return {
1274
+ collapsed: !state.collapsed
1275
+ };
1276
+ });
1277
+ }
1278
+ }, {
1279
+ key: "handleEditValue",
1280
+ value: function handleEditValue(_ref4) {
1281
+ var _this13 = this;
1282
+
1283
+ var key = _ref4.key,
1284
+ value = _ref4.value;
1285
+ return new Promise(function (resolve, reject) {
1286
+ var beforeUpdateAction = _this13.props.beforeUpdateAction;
1287
+ var _this13$state = _this13.state,
1288
+ data = _this13$state.data,
1289
+ keyPath = _this13$state.keyPath,
1290
+ deep = _this13$state.nextDeep; // Old value
1291
+ // @ts-ignore
1292
+
1293
+ var oldValue = data[key]; // Before update action
1294
+
1295
+ beforeUpdateAction(key, keyPath, deep, oldValue, value).then(function () {
1296
+ // Update value
1297
+ // @ts-ignore
1298
+ data[key] = value; // Set state
1299
+
1300
+ _this13.setState({
1301
+ data: data
1302
+ }); // Spread new update
1303
+
1304
+
1305
+ var _this13$props = _this13.props,
1306
+ onUpdate = _this13$props.onUpdate,
1307
+ onDeltaUpdate = _this13$props.onDeltaUpdate;
1308
+ onUpdate(keyPath[keyPath.length - 1], data); // Spread delta update
1309
+
1310
+ onDeltaUpdate({
1311
+ type: deltaTypes.UPDATE_DELTA_TYPE,
1312
+ keyPath: keyPath,
1313
+ deep: deep,
1314
+ key: key,
1315
+ newValue: value,
1316
+ oldValue: oldValue
1317
+ }); // Resolve
1318
+
1319
+ resolve();
1320
+ }).catch(reject);
1321
+ });
1322
+ }
1323
+ }, {
1324
+ key: "renderCollapsed",
1325
+ value: function renderCollapsed() {
1326
+ var _this$state14 = this.state,
1327
+ name = _this$state14.name,
1328
+ keyPath = _this$state14.keyPath,
1329
+ deep = _this$state14.deep,
1330
+ data = _this$state14.data;
1331
+ var _this$props12 = this.props,
1332
+ handleRemove = _this$props12.handleRemove,
1333
+ readOnly = _this$props12.readOnly,
1334
+ dataType = _this$props12.dataType,
1335
+ getStyle = _this$props12.getStyle,
1336
+ minusMenuElement = _this$props12.minusMenuElement;
1337
+
1338
+ var _getStyle3 = getStyle(name, data, keyPath, deep, dataType),
1339
+ minus = _getStyle3.minus,
1340
+ collapsed = _getStyle3.collapsed;
1341
+
1342
+ var keyList = Object.getOwnPropertyNames(data);
1343
+ var isReadOnly = readOnly(name, data, keyPath, deep, dataType);
1344
+ var removeItemButton = /*#__PURE__*/cloneElement(minusMenuElement, {
1345
+ onClick: handleRemove,
1346
+ className: 'rejt-minus-menu',
1347
+ style: minus
1348
+ });
1349
+ return /*#__PURE__*/React.createElement("span", {
1350
+ className: "rejt-collapsed"
1351
+ }, /*#__PURE__*/React.createElement("span", {
1352
+ className: "rejt-collapsed-text",
1353
+ style: collapsed,
1354
+ onClick: this.handleCollapseMode
1355
+ }, '{...}', " ", keyList.length, " ", keyList.length === 1 ? 'key' : 'keys'), !isReadOnly && removeItemButton);
1356
+ }
1357
+ }, {
1358
+ key: "renderNotCollapsed",
1359
+ value: function renderNotCollapsed() {
1360
+ var _this14 = this;
1361
+
1362
+ var _this$state15 = this.state,
1363
+ name = _this$state15.name,
1364
+ data = _this$state15.data,
1365
+ keyPath = _this$state15.keyPath,
1366
+ deep = _this$state15.deep,
1367
+ nextDeep = _this$state15.nextDeep,
1368
+ addFormVisible = _this$state15.addFormVisible;
1369
+ var _this$props13 = this.props,
1370
+ isCollapsed = _this$props13.isCollapsed,
1371
+ handleRemove = _this$props13.handleRemove,
1372
+ onDeltaUpdate = _this$props13.onDeltaUpdate,
1373
+ readOnly = _this$props13.readOnly,
1374
+ getStyle = _this$props13.getStyle,
1375
+ dataType = _this$props13.dataType,
1376
+ addButtonElement = _this$props13.addButtonElement,
1377
+ cancelButtonElement = _this$props13.cancelButtonElement,
1378
+ editButtonElement = _this$props13.editButtonElement,
1379
+ inputElementGenerator = _this$props13.inputElementGenerator,
1380
+ textareaElementGenerator = _this$props13.textareaElementGenerator,
1381
+ minusMenuElement = _this$props13.minusMenuElement,
1382
+ plusMenuElement = _this$props13.plusMenuElement,
1383
+ beforeRemoveAction = _this$props13.beforeRemoveAction,
1384
+ beforeAddAction = _this$props13.beforeAddAction,
1385
+ beforeUpdateAction = _this$props13.beforeUpdateAction,
1386
+ logger = _this$props13.logger,
1387
+ onSubmitValueParser = _this$props13.onSubmitValueParser;
1388
+
1389
+ var _getStyle4 = getStyle(name, data, keyPath, deep, dataType),
1390
+ minus = _getStyle4.minus,
1391
+ plus = _getStyle4.plus,
1392
+ addForm = _getStyle4.addForm,
1393
+ ul = _getStyle4.ul,
1394
+ delimiter = _getStyle4.delimiter;
1395
+
1396
+ var keyList = Object.getOwnPropertyNames(data);
1397
+ var isReadOnly = readOnly(name, data, keyPath, deep, dataType);
1398
+ var addItemButton = /*#__PURE__*/cloneElement(plusMenuElement, {
1399
+ onClick: this.handleAddMode,
1400
+ className: 'rejt-plus-menu',
1401
+ style: plus
1402
+ });
1403
+ var removeItemButton = /*#__PURE__*/cloneElement(minusMenuElement, {
1404
+ onClick: handleRemove,
1405
+ className: 'rejt-minus-menu',
1406
+ style: minus
1407
+ });
1408
+ var list = keyList.map(function (key) {
1409
+ return /*#__PURE__*/React.createElement(JsonNode, {
1410
+ key: key,
1411
+ name: key,
1412
+ data: data[key],
1413
+ keyPath: keyPath,
1414
+ deep: nextDeep,
1415
+ isCollapsed: isCollapsed,
1416
+ handleRemove: _this14.handleRemoveValue(key),
1417
+ handleUpdateValue: _this14.handleEditValue,
1418
+ onUpdate: _this14.onChildUpdate,
1419
+ onDeltaUpdate: onDeltaUpdate,
1420
+ readOnly: readOnly,
1421
+ getStyle: getStyle,
1422
+ addButtonElement: addButtonElement,
1423
+ cancelButtonElement: cancelButtonElement,
1424
+ editButtonElement: editButtonElement,
1425
+ inputElementGenerator: inputElementGenerator,
1426
+ textareaElementGenerator: textareaElementGenerator,
1427
+ minusMenuElement: minusMenuElement,
1428
+ plusMenuElement: plusMenuElement,
1429
+ beforeRemoveAction: beforeRemoveAction,
1430
+ beforeAddAction: beforeAddAction,
1431
+ beforeUpdateAction: beforeUpdateAction,
1432
+ logger: logger,
1433
+ onSubmitValueParser: onSubmitValueParser
1434
+ });
1435
+ });
1436
+ var startObject = '{';
1437
+ var endObject = '}';
1438
+ return /*#__PURE__*/React.createElement("span", {
1439
+ className: "rejt-not-collapsed"
1440
+ }, /*#__PURE__*/React.createElement("span", {
1441
+ className: "rejt-not-collapsed-delimiter",
1442
+ style: delimiter
1443
+ }, startObject), !isReadOnly && addItemButton, /*#__PURE__*/React.createElement("ul", {
1444
+ className: "rejt-not-collapsed-list",
1445
+ style: ul
1446
+ }, list), !isReadOnly && addFormVisible && /*#__PURE__*/React.createElement("div", {
1447
+ className: "rejt-add-form",
1448
+ style: addForm
1449
+ }, /*#__PURE__*/React.createElement(JsonAddValue, {
1450
+ handleAdd: this.handleAddValueAdd,
1451
+ handleCancel: this.handleAddValueCancel,
1452
+ addButtonElement: addButtonElement,
1453
+ cancelButtonElement: cancelButtonElement,
1454
+ inputElementGenerator: inputElementGenerator,
1455
+ keyPath: keyPath,
1456
+ deep: deep,
1457
+ onSubmitValueParser: onSubmitValueParser
1458
+ })), /*#__PURE__*/React.createElement("span", {
1459
+ className: "rejt-not-collapsed-delimiter",
1460
+ style: delimiter
1461
+ }, endObject), !isReadOnly && removeItemButton);
1462
+ }
1463
+ }, {
1464
+ key: "render",
1465
+ value: function render() {
1466
+ var _this$state16 = this.state,
1467
+ name = _this$state16.name,
1468
+ collapsed = _this$state16.collapsed,
1469
+ data = _this$state16.data,
1470
+ keyPath = _this$state16.keyPath,
1471
+ deep = _this$state16.deep;
1472
+ var _this$props14 = this.props,
1473
+ getStyle = _this$props14.getStyle,
1474
+ dataType = _this$props14.dataType;
1475
+ var value = collapsed ? this.renderCollapsed() : this.renderNotCollapsed();
1476
+ var style = getStyle(name, data, keyPath, deep, dataType);
1477
+ return /*#__PURE__*/React.createElement("div", {
1478
+ className: "rejt-object-node"
1479
+ }, /*#__PURE__*/React.createElement("span", {
1480
+ onClick: this.handleCollapseMode
1481
+ }, /*#__PURE__*/React.createElement("span", {
1482
+ className: "rejt-name",
1483
+ style: style.name
1484
+ }, name, " :", ' ')), value);
1485
+ }
1486
+ }], [{
1487
+ key: "getDerivedStateFromProps",
1488
+ value: function getDerivedStateFromProps(props, state) {
1489
+ return props.data !== state.data ? {
1490
+ data: props.data
1491
+ } : null;
1492
+ }
1493
+ }]);
1494
+
1495
+ return JsonObject;
1496
+ }(Component);
1497
+ JsonObject.displayName = "JsonObject";
1498
+ // @ts-ignore
1499
+ JsonObject.defaultProps = {
1500
+ keyPath: [],
1501
+ deep: 0,
1502
+ minusMenuElement: /*#__PURE__*/React.createElement("span", null, " - "),
1503
+ plusMenuElement: /*#__PURE__*/React.createElement("span", null, " + ")
1504
+ };
1505
+ export var JsonValue = /*#__PURE__*/function (_Component6) {
1506
+ _inherits(JsonValue, _Component6);
1507
+
1508
+ var _super6 = _createSuper(JsonValue);
1509
+
1510
+ function JsonValue(props) {
1511
+ var _this15;
1512
+
1513
+ _classCallCheck(this, JsonValue);
1514
+
1515
+ _this15 = _super6.call(this, props);
1516
+ var keyPath = [].concat(_toConsumableArray(props.keyPath), [props.name]);
1517
+ _this15.state = {
1518
+ value: props.value,
1519
+ name: props.name,
1520
+ keyPath: keyPath,
1521
+ deep: props.deep,
1522
+ editEnabled: false,
1523
+ inputRef: null
1524
+ }; // Bind
1525
+
1526
+ _this15.handleEditMode = _this15.handleEditMode.bind(_assertThisInitialized(_this15));
1527
+ _this15.refInput = _this15.refInput.bind(_assertThisInitialized(_this15));
1528
+ _this15.handleCancelEdit = _this15.handleCancelEdit.bind(_assertThisInitialized(_this15));
1529
+ _this15.handleEdit = _this15.handleEdit.bind(_assertThisInitialized(_this15));
1530
+ _this15.onKeydown = _this15.onKeydown.bind(_assertThisInitialized(_this15));
1531
+ return _this15;
1532
+ }
1533
+
1534
+ _createClass(JsonValue, [{
1535
+ key: "componentDidUpdate",
1536
+ value: function componentDidUpdate() {
1537
+ var _this$state17 = this.state,
1538
+ editEnabled = _this$state17.editEnabled,
1539
+ inputRef = _this$state17.inputRef,
1540
+ name = _this$state17.name,
1541
+ value = _this$state17.value,
1542
+ keyPath = _this$state17.keyPath,
1543
+ deep = _this$state17.deep;
1544
+ var _this$props15 = this.props,
1545
+ readOnly = _this$props15.readOnly,
1546
+ dataType = _this$props15.dataType;
1547
+ var isReadOnly = readOnly(name, value, keyPath, deep, dataType);
1548
+
1549
+ if (editEnabled && !isReadOnly && typeof inputRef.focus === 'function') {
1550
+ inputRef.focus();
1551
+ }
1552
+ }
1553
+ }, {
1554
+ key: "componentDidMount",
1555
+ value: function componentDidMount() {
1556
+ document.addEventListener('keydown', this.onKeydown);
1557
+ }
1558
+ }, {
1559
+ key: "componentWillUnmount",
1560
+ value: function componentWillUnmount() {
1561
+ document.removeEventListener('keydown', this.onKeydown);
1562
+ }
1563
+ }, {
1564
+ key: "onKeydown",
1565
+ value: function onKeydown(event) {
1566
+ if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey || event.repeat) return;
1567
+
1568
+ if (event.code === 'Enter' || event.key === 'Enter') {
1569
+ event.preventDefault();
1570
+ this.handleEdit();
1571
+ }
1572
+
1573
+ if (event.code === 'Escape' || event.key === 'Escape') {
1574
+ event.preventDefault();
1575
+ this.handleCancelEdit();
1576
+ }
1577
+ }
1578
+ }, {
1579
+ key: "handleEdit",
1580
+ value: function handleEdit() {
1581
+ var _this16 = this;
1582
+
1583
+ var _this$props16 = this.props,
1584
+ handleUpdateValue = _this$props16.handleUpdateValue,
1585
+ originalValue = _this$props16.originalValue,
1586
+ logger = _this$props16.logger,
1587
+ onSubmitValueParser = _this$props16.onSubmitValueParser,
1588
+ keyPath = _this$props16.keyPath;
1589
+ var _this$state18 = this.state,
1590
+ inputRef = _this$state18.inputRef,
1591
+ name = _this$state18.name,
1592
+ deep = _this$state18.deep;
1593
+ if (!inputRef) return;
1594
+ var newValue = onSubmitValueParser(true, keyPath, deep, name, inputRef.value);
1595
+ var result = {
1596
+ value: newValue,
1597
+ key: name
1598
+ }; // Run update
1599
+
1600
+ handleUpdateValue(result).then(function () {
1601
+ // Cancel edit mode if necessary
1602
+ if (!isComponentWillChange(originalValue, newValue)) {
1603
+ _this16.handleCancelEdit();
1604
+ }
1605
+ }).catch(logger.error);
1606
+ }
1607
+ }, {
1608
+ key: "handleEditMode",
1609
+ value: function handleEditMode() {
1610
+ this.setState({
1611
+ editEnabled: true
1612
+ });
1613
+ }
1614
+ }, {
1615
+ key: "refInput",
1616
+ value: function refInput(node) {
1617
+ // @ts-ignore
1618
+ this.state.inputRef = node;
1619
+ }
1620
+ }, {
1621
+ key: "handleCancelEdit",
1622
+ value: function handleCancelEdit() {
1623
+ this.setState({
1624
+ editEnabled: false
1625
+ });
1626
+ }
1627
+ }, {
1628
+ key: "render",
1629
+ value: function render() {
1630
+ var _this$state19 = this.state,
1631
+ name = _this$state19.name,
1632
+ value = _this$state19.value,
1633
+ editEnabled = _this$state19.editEnabled,
1634
+ keyPath = _this$state19.keyPath,
1635
+ deep = _this$state19.deep;
1636
+ var _this$props17 = this.props,
1637
+ handleRemove = _this$props17.handleRemove,
1638
+ originalValue = _this$props17.originalValue,
1639
+ readOnly = _this$props17.readOnly,
1640
+ dataType = _this$props17.dataType,
1641
+ getStyle = _this$props17.getStyle,
1642
+ editButtonElement = _this$props17.editButtonElement,
1643
+ cancelButtonElement = _this$props17.cancelButtonElement,
1644
+ inputElementGenerator = _this$props17.inputElementGenerator,
1645
+ minusMenuElement = _this$props17.minusMenuElement,
1646
+ comeFromKeyPath = _this$props17.keyPath;
1647
+ var style = getStyle(name, originalValue, keyPath, deep, dataType);
1648
+ var isReadOnly = readOnly(name, originalValue, keyPath, deep, dataType);
1649
+ var isEditing = editEnabled && !isReadOnly;
1650
+ var inputElement = inputElementGenerator(inputUsageTypes.VALUE, comeFromKeyPath, deep, name, originalValue, dataType);
1651
+ var editButtonElementLayout = /*#__PURE__*/cloneElement(editButtonElement, {
1652
+ onClick: this.handleEdit
1653
+ });
1654
+ var cancelButtonElementLayout = /*#__PURE__*/cloneElement(cancelButtonElement, {
1655
+ onClick: this.handleCancelEdit
1656
+ });
1657
+ var inputElementLayout = /*#__PURE__*/cloneElement(inputElement, {
1658
+ ref: this.refInput,
1659
+ defaultValue: JSON.stringify(originalValue)
1660
+ });
1661
+ var minusMenuLayout = /*#__PURE__*/cloneElement(minusMenuElement, {
1662
+ onClick: handleRemove,
1663
+ className: 'rejt-minus-menu',
1664
+ style: style.minus
1665
+ });
1666
+ return /*#__PURE__*/React.createElement("li", {
1667
+ className: "rejt-value-node",
1668
+ style: style.li
1669
+ }, /*#__PURE__*/React.createElement("span", {
1670
+ className: "rejt-name",
1671
+ style: style.name
1672
+ }, name, ' : '), isEditing ? /*#__PURE__*/React.createElement("span", {
1673
+ className: "rejt-edit-form",
1674
+ style: style.editForm
1675
+ }, inputElementLayout, " ", cancelButtonElementLayout, editButtonElementLayout) : /*#__PURE__*/React.createElement("span", {
1676
+ className: "rejt-value",
1677
+ style: style.value,
1678
+ onClick: isReadOnly ? null : this.handleEditMode
1679
+ }, String(value)), !isReadOnly && !isEditing && minusMenuLayout);
1680
+ }
1681
+ }], [{
1682
+ key: "getDerivedStateFromProps",
1683
+ value: function getDerivedStateFromProps(props, state) {
1684
+ return props.value !== state.value ? {
1685
+ value: props.value
1686
+ } : null;
1687
+ }
1688
+ }]);
1689
+
1690
+ return JsonValue;
1691
+ }(Component);
1692
+ JsonValue.displayName = "JsonValue";
1693
+ // @ts-ignore
1694
+ JsonValue.defaultProps = {
1695
+ keyPath: [],
1696
+ deep: 0,
1697
+ handleUpdateValue: function handleUpdateValue() {
1698
+ return Promise.resolve();
1699
+ },
1700
+ editButtonElement: /*#__PURE__*/React.createElement("button", null, "e"),
1701
+ cancelButtonElement: /*#__PURE__*/React.createElement("button", null, "c"),
1702
+ minusMenuElement: /*#__PURE__*/React.createElement("span", null, " - ")
1703
+ };