@qoretechnologies/reqraft 0.10.55-pr.124.g77dd26c → 0.10.55

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 (375) hide show
  1. package/.claude/CLAUDE.md +25 -0
  2. package/.tasks/INDEX.md +1 -0
  3. package/.tasks/STORY_NETWORK_ISOLATION.md +98 -0
  4. package/README.md +1 -1
  5. package/design/FORM_ENGINE_COMPACT.md +34 -0
  6. package/design/FORM_ENGINE_EXPRESSIONS.md +110 -0
  7. package/design/FORM_ENGINE_FIELD_MIGRATION.md +155 -1
  8. package/design/IDE_INTEGRATION.md +13 -0
  9. package/design/RENDER_EXPRESSION_TRANSPORT.md +76 -10
  10. package/design/SELECT_DIALOG_FLOOR.md +86 -0
  11. package/design/SMART_EDITOR_UX.md +21 -0
  12. package/design/UNAVAILABLE_ALLOWED_VALUES.md +226 -0
  13. package/dist/components/composer/Composer.d.ts +8 -3
  14. package/dist/components/composer/Composer.d.ts.map +1 -1
  15. package/dist/components/composer/Composer.js.map +1 -1
  16. package/dist/components/dpqlEditor/DpqlEditor.d.ts.map +1 -1
  17. package/dist/components/dpqlEditor/DpqlEditor.js +3 -3
  18. package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
  19. package/dist/components/dpqlEditor/dpqlHelpers.d.ts +6 -0
  20. package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
  21. package/dist/components/dpqlEditor/dpqlHelpers.js +21 -2
  22. package/dist/components/dpqlEditor/dpqlHelpers.js.map +1 -1
  23. package/dist/components/dpqlEditor/dpqlProbe.d.ts +37 -0
  24. package/dist/components/dpqlEditor/dpqlProbe.d.ts.map +1 -0
  25. package/dist/components/dpqlEditor/dpqlProbe.js +203 -0
  26. package/dist/components/dpqlEditor/dpqlProbe.js.map +1 -0
  27. package/dist/components/dpqlEditor/dpqlTags.d.ts +8 -0
  28. package/dist/components/dpqlEditor/dpqlTags.d.ts.map +1 -1
  29. package/dist/components/dpqlEditor/dpqlTags.js +5 -1
  30. package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
  31. package/dist/components/dpqlEditor/index.d.ts +4 -0
  32. package/dist/components/dpqlEditor/index.d.ts.map +1 -1
  33. package/dist/components/dpqlEditor/index.js +5 -1
  34. package/dist/components/dpqlEditor/index.js.map +1 -1
  35. package/dist/components/dpqlEditor/types.d.ts +42 -2
  36. package/dist/components/dpqlEditor/types.d.ts.map +1 -1
  37. package/dist/components/dpqlEditor/types.js +0 -4
  38. package/dist/components/dpqlEditor/types.js.map +1 -1
  39. package/dist/components/dpqlEditor/useDpqlProbe.d.ts +4 -0
  40. package/dist/components/dpqlEditor/useDpqlProbe.d.ts.map +1 -0
  41. package/dist/components/dpqlEditor/useDpqlProbe.js +29 -0
  42. package/dist/components/dpqlEditor/useDpqlProbe.js.map +1 -0
  43. package/dist/components/dpqlEditor/useDpqlSession.d.ts +5 -2
  44. package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
  45. package/dist/components/dpqlEditor/useDpqlSession.js +8 -2
  46. package/dist/components/dpqlEditor/useDpqlSession.js.map +1 -1
  47. package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
  48. package/dist/components/form/engine/CompactRow.js +414 -128
  49. package/dist/components/form/engine/CompactRow.js.map +1 -1
  50. package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
  51. package/dist/components/form/engine/CompactToolbar.js +5 -2
  52. package/dist/components/form/engine/CompactToolbar.js.map +1 -1
  53. package/dist/components/form/engine/FormEngine.d.ts +273 -22
  54. package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
  55. package/dist/components/form/engine/FormEngine.js +669 -192
  56. package/dist/components/form/engine/FormEngine.js.map +1 -1
  57. package/dist/components/form/engine/FormFieldsSkeleton.d.ts +48 -0
  58. package/dist/components/form/engine/FormFieldsSkeleton.d.ts.map +1 -0
  59. package/dist/components/form/engine/FormFieldsSkeleton.js +41 -0
  60. package/dist/components/form/engine/FormFieldsSkeleton.js.map +1 -0
  61. package/dist/components/form/engine/OptionFieldMessages.d.ts +108 -2
  62. package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
  63. package/dist/components/form/engine/OptionFieldMessages.js +203 -13
  64. package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
  65. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts.map +1 -1
  66. package/dist/components/form/engine/_structuredData/SchemaDataView.js +68 -5
  67. package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
  68. package/dist/components/form/engine/compactRowContext.d.ts +15 -1
  69. package/dist/components/form/engine/compactRowContext.d.ts.map +1 -1
  70. package/dist/components/form/engine/compactRowContext.js.map +1 -1
  71. package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
  72. package/dist/components/form/engine/compactRowStyles.js +55 -29
  73. package/dist/components/form/engine/compactRowStyles.js.map +1 -1
  74. package/dist/components/form/engine/compactToolbarContext.d.ts +1 -0
  75. package/dist/components/form/engine/compactToolbarContext.d.ts.map +1 -1
  76. package/dist/components/form/engine/optionActions.d.ts +37 -1
  77. package/dist/components/form/engine/optionActions.d.ts.map +1 -1
  78. package/dist/components/form/engine/optionActions.js +71 -1
  79. package/dist/components/form/engine/optionActions.js.map +1 -1
  80. package/dist/components/form/engine/optionsContext.d.ts +22 -0
  81. package/dist/components/form/engine/optionsContext.d.ts.map +1 -0
  82. package/dist/components/form/engine/optionsContext.js +20 -0
  83. package/dist/components/form/engine/optionsContext.js.map +1 -0
  84. package/dist/components/form/engine/readFirst.d.ts +42 -1
  85. package/dist/components/form/engine/readFirst.d.ts.map +1 -1
  86. package/dist/components/form/engine/readFirst.js +76 -8
  87. package/dist/components/form/engine/readFirst.js.map +1 -1
  88. package/dist/components/form/engine/rendererTypes.d.ts +42 -3
  89. package/dist/components/form/engine/rendererTypes.d.ts.map +1 -1
  90. package/dist/components/form/engine/rendererTypes.js +3 -1
  91. package/dist/components/form/engine/rendererTypes.js.map +1 -1
  92. package/dist/components/form/engine/rowFocus.d.ts +30 -0
  93. package/dist/components/form/engine/rowFocus.d.ts.map +1 -0
  94. package/dist/components/form/engine/rowFocus.js +93 -0
  95. package/dist/components/form/engine/rowFocus.js.map +1 -0
  96. package/dist/components/form/engine/rowMenuContext.d.ts +78 -0
  97. package/dist/components/form/engine/rowMenuContext.d.ts.map +1 -0
  98. package/dist/components/form/engine/rowMenuContext.js +103 -0
  99. package/dist/components/form/engine/rowMenuContext.js.map +1 -0
  100. package/dist/components/form/engine/rowOpenPicker.d.ts +27 -0
  101. package/dist/components/form/engine/rowOpenPicker.d.ts.map +1 -0
  102. package/dist/components/form/engine/rowOpenPicker.js +30 -0
  103. package/dist/components/form/engine/rowOpenPicker.js.map +1 -0
  104. package/dist/components/form/engine/typeChoices.d.ts +42 -0
  105. package/dist/components/form/engine/typeChoices.d.ts.map +1 -0
  106. package/dist/components/form/engine/typeChoices.js +33 -0
  107. package/dist/components/form/engine/typeChoices.js.map +1 -0
  108. package/dist/components/form/expressions/DpqlRendering.d.ts +26 -0
  109. package/dist/components/form/expressions/DpqlRendering.d.ts.map +1 -0
  110. package/dist/components/form/expressions/DpqlRendering.js +53 -0
  111. package/dist/components/form/expressions/DpqlRendering.js.map +1 -0
  112. package/dist/components/form/expressions/ExpressionField.d.ts +7 -1
  113. package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
  114. package/dist/components/form/expressions/ExpressionField.js +203 -45
  115. package/dist/components/form/expressions/ExpressionField.js.map +1 -1
  116. package/dist/components/form/expressions/argumentPresence.d.ts +84 -0
  117. package/dist/components/form/expressions/argumentPresence.d.ts.map +1 -0
  118. package/dist/components/form/expressions/argumentPresence.js +217 -0
  119. package/dist/components/form/expressions/argumentPresence.js.map +1 -0
  120. package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
  121. package/dist/components/form/expressions/builder/argumentLabel.js +9 -4
  122. package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
  123. package/dist/components/form/expressions/builder/index.d.ts +15 -2
  124. package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
  125. package/dist/components/form/expressions/builder/index.js +21 -65
  126. package/dist/components/form/expressions/builder/index.js.map +1 -1
  127. package/dist/components/form/expressions/builder/renderTemplate.d.ts +4 -1
  128. package/dist/components/form/expressions/builder/renderTemplate.d.ts.map +1 -1
  129. package/dist/components/form/expressions/builder/renderTemplate.js +10 -67
  130. package/dist/components/form/expressions/builder/renderTemplate.js.map +1 -1
  131. package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
  132. package/dist/components/form/expressions/mockExpressions.js +8 -4
  133. package/dist/components/form/expressions/mockExpressions.js.map +1 -1
  134. package/dist/components/form/expressions/renderExpressionToText.d.ts +1 -1
  135. package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
  136. package/dist/components/form/expressions/renderExpressionToText.js +95 -19
  137. package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
  138. package/dist/components/form/expressions/types.d.ts +17 -2
  139. package/dist/components/form/expressions/types.d.ts.map +1 -1
  140. package/dist/components/form/expressions/useExpressions.d.ts.map +1 -1
  141. package/dist/components/form/expressions/useExpressions.js +5 -2
  142. package/dist/components/form/expressions/useExpressions.js.map +1 -1
  143. package/dist/components/form/expressions/useRenderExpression.d.ts +7 -16
  144. package/dist/components/form/expressions/useRenderExpression.d.ts.map +1 -1
  145. package/dist/components/form/expressions/useRenderExpression.js +50 -126
  146. package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
  147. package/dist/components/form/fields/Field.d.ts +21 -0
  148. package/dist/components/form/fields/Field.d.ts.map +1 -1
  149. package/dist/components/form/fields/Field.js +54 -8
  150. package/dist/components/form/fields/Field.js.map +1 -1
  151. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts +11 -1
  152. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
  153. package/dist/components/form/fields/allowed-values/AllowedValues.js +52 -8
  154. package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
  155. package/dist/components/form/fields/auto/AutoFormField.d.ts +7 -1
  156. package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
  157. package/dist/components/form/fields/auto/AutoFormField.js +91 -28
  158. package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
  159. package/dist/components/form/fields/date/Date.d.ts +1 -1
  160. package/dist/components/form/fields/date/Date.d.ts.map +1 -1
  161. package/dist/components/form/fields/date/Date.js +16 -2
  162. package/dist/components/form/fields/date/Date.js.map +1 -1
  163. package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
  164. package/dist/components/form/fields/long-string/LongString.js +14 -2
  165. package/dist/components/form/fields/long-string/LongString.js.map +1 -1
  166. package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
  167. package/dist/components/form/fields/multi-select/MultiSelectFormField.js +50 -4
  168. package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
  169. package/dist/components/form/fields/number/Number.d.ts +12 -1
  170. package/dist/components/form/fields/number/Number.d.ts.map +1 -1
  171. package/dist/components/form/fields/number/Number.js +6 -3
  172. package/dist/components/form/fields/number/Number.js.map +1 -1
  173. package/dist/components/form/fields/rich-text/RichText.d.ts +47 -2
  174. package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
  175. package/dist/components/form/fields/rich-text/RichText.js +153 -12
  176. package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
  177. package/dist/components/form/fields/select/Select.d.ts.map +1 -1
  178. package/dist/components/form/fields/select/Select.js +120 -20
  179. package/dist/components/form/fields/select/Select.js.map +1 -1
  180. package/dist/components/form/fields/select/SelectCollection.d.ts +166 -9
  181. package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
  182. package/dist/components/form/fields/select/SelectCollection.js +200 -7
  183. package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
  184. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +2 -1
  185. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
  186. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +3 -2
  187. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
  188. package/dist/components/form/fields/template/TemplateField.d.ts +34 -2
  189. package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
  190. package/dist/components/form/fields/template/TemplateField.js +606 -58
  191. package/dist/components/form/fields/template/TemplateField.js.map +1 -1
  192. package/dist/components/form/fields/template/TemplateText.d.ts +36 -0
  193. package/dist/components/form/fields/template/TemplateText.d.ts.map +1 -0
  194. package/dist/components/form/fields/template/TemplateText.js +80 -0
  195. package/dist/components/form/fields/template/TemplateText.js.map +1 -0
  196. package/dist/components/form/index.d.ts +2 -0
  197. package/dist/components/form/index.d.ts.map +1 -1
  198. package/dist/components/form/index.js +4 -0
  199. package/dist/components/form/index.js.map +1 -1
  200. package/dist/components/smartEditor/SmartEditor.d.ts.map +1 -1
  201. package/dist/components/smartEditor/SmartEditor.js +29 -8
  202. package/dist/components/smartEditor/SmartEditor.js.map +1 -1
  203. package/dist/components/smartEditor/useLspSession.d.ts +5 -1
  204. package/dist/components/smartEditor/useLspSession.d.ts.map +1 -1
  205. package/dist/components/smartEditor/useLspSession.js +16 -2
  206. package/dist/components/smartEditor/useLspSession.js.map +1 -1
  207. package/dist/components/supportTicket/TicketReplyBox.d.ts +8 -4
  208. package/dist/components/supportTicket/TicketReplyBox.d.ts.map +1 -1
  209. package/dist/components/supportTicket/TicketReplyBox.js.map +1 -1
  210. package/dist/helpers/common.d.ts.map +1 -1
  211. package/dist/helpers/common.js +7 -3
  212. package/dist/helpers/common.js.map +1 -1
  213. package/dist/helpers/dpqlDetection.d.ts +58 -0
  214. package/dist/helpers/dpqlDetection.d.ts.map +1 -0
  215. package/dist/helpers/dpqlDetection.js +164 -0
  216. package/dist/helpers/dpqlDetection.js.map +1 -0
  217. package/dist/helpers/optionUiTypes.d.ts +31 -3
  218. package/dist/helpers/optionUiTypes.d.ts.map +1 -1
  219. package/dist/helpers/optionUiTypes.js +36 -1
  220. package/dist/helpers/optionUiTypes.js.map +1 -1
  221. package/dist/helpers/options.d.ts +57 -0
  222. package/dist/helpers/options.d.ts.map +1 -1
  223. package/dist/helpers/options.js +97 -1
  224. package/dist/helpers/options.js.map +1 -1
  225. package/dist/helpers/templateItems.d.ts +47 -0
  226. package/dist/helpers/templateItems.d.ts.map +1 -0
  227. package/dist/helpers/templateItems.js +88 -0
  228. package/dist/helpers/templateItems.js.map +1 -0
  229. package/dist/helpers/templateText.d.ts +80 -0
  230. package/dist/helpers/templateText.d.ts.map +1 -0
  231. package/dist/helpers/templateText.js +291 -0
  232. package/dist/helpers/templateText.js.map +1 -0
  233. package/dist/helpers/templates.d.ts +30 -12
  234. package/dist/helpers/templates.d.ts.map +1 -1
  235. package/dist/helpers/templates.js +91 -33
  236. package/dist/helpers/templates.js.map +1 -1
  237. package/dist/helpers/validations.d.ts +35 -8
  238. package/dist/helpers/validations.d.ts.map +1 -1
  239. package/dist/helpers/validations.js +162 -25
  240. package/dist/helpers/validations.js.map +1 -1
  241. package/dist/hooks/useArgSchema.d.ts +2 -1
  242. package/dist/hooks/useArgSchema.d.ts.map +1 -1
  243. package/dist/hooks/useFetch/useFetch.d.ts +3 -1
  244. package/dist/hooks/useFetch/useFetch.d.ts.map +1 -1
  245. package/dist/hooks/useFetch/useFetch.js +47 -9
  246. package/dist/hooks/useFetch/useFetch.js.map +1 -1
  247. package/dist/hooks/useTemplates.d.ts +20 -0
  248. package/dist/hooks/useTemplates.d.ts.map +1 -1
  249. package/dist/hooks/useTemplates.js +34 -2
  250. package/dist/hooks/useTemplates.js.map +1 -1
  251. package/dist/index.d.ts +2 -1
  252. package/dist/index.d.ts.map +1 -1
  253. package/dist/index.js +5 -1
  254. package/dist/index.js.map +1 -1
  255. package/dist/utils/fetch.d.ts +151 -1
  256. package/dist/utils/fetch.d.ts.map +1 -1
  257. package/dist/utils/fetch.js +256 -44
  258. package/dist/utils/fetch.js.map +1 -1
  259. package/dist/utils/lspClient.d.ts +6 -0
  260. package/dist/utils/lspClient.d.ts.map +1 -1
  261. package/dist/utils/lspClient.js +62 -11
  262. package/dist/utils/lspClient.js.map +1 -1
  263. package/dist/utils/websocket.d.ts +6 -0
  264. package/dist/utils/websocket.d.ts.map +1 -1
  265. package/dist/utils/websocket.js +15 -7
  266. package/dist/utils/websocket.js.map +1 -1
  267. package/package.json +10 -6
  268. package/src/components/composer/Composer.tsx +7 -2
  269. package/src/components/dpqlEditor/DpqlEditor.stories.tsx +3 -119
  270. package/src/components/dpqlEditor/DpqlEditor.tsx +5 -2
  271. package/src/components/dpqlEditor/dpqlHelpers.ts +20 -1
  272. package/src/components/dpqlEditor/dpqlProbe.ts +165 -0
  273. package/src/components/dpqlEditor/dpqlTags.ts +13 -0
  274. package/src/components/dpqlEditor/index.ts +4 -0
  275. package/src/components/dpqlEditor/types.ts +38 -2
  276. package/src/components/dpqlEditor/useDpqlProbe.ts +33 -0
  277. package/src/components/dpqlEditor/useDpqlSession.ts +20 -4
  278. package/src/components/form/engine/CompactRow.tsx +487 -160
  279. package/src/components/form/engine/CompactToolbar.tsx +10 -3
  280. package/src/components/form/engine/FormEngine.stories.tsx +1269 -211
  281. package/src/components/form/engine/FormEngine.tsx +922 -270
  282. package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +331 -0
  283. package/src/components/form/engine/FormFieldsSkeleton.tsx +77 -0
  284. package/src/components/form/engine/OptionFieldMessages.tsx +300 -14
  285. package/src/components/form/engine/_structuredData/SchemaDataView.tsx +94 -3
  286. package/src/components/form/engine/compactRowContext.ts +15 -6
  287. package/src/components/form/engine/compactRowStyles.ts +56 -2
  288. package/src/components/form/engine/compactToolbarContext.ts +1 -1
  289. package/src/components/form/engine/optionActions.ts +89 -1
  290. package/src/components/form/engine/optionsContext.ts +24 -0
  291. package/src/components/form/engine/readFirst.ts +88 -8
  292. package/src/components/form/engine/rendererTypes.ts +48 -4
  293. package/src/components/form/engine/rowFocus.ts +101 -0
  294. package/src/components/form/engine/rowMenuContext.ts +159 -0
  295. package/src/components/form/engine/rowOpenPicker.ts +27 -0
  296. package/src/components/form/engine/typeChoices.ts +63 -0
  297. package/src/components/form/expressions/DpqlRendering.tsx +85 -0
  298. package/src/components/form/expressions/ExpressionField.stories.tsx +826 -48
  299. package/src/components/form/expressions/ExpressionField.tsx +269 -55
  300. package/src/components/form/expressions/argumentPresence.ts +213 -0
  301. package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +38 -21
  302. package/src/components/form/expressions/builder/argumentLabel.tsx +10 -4
  303. package/src/components/form/expressions/builder/index.tsx +39 -81
  304. package/src/components/form/expressions/builder/renderTemplate.tsx +23 -56
  305. package/src/components/form/expressions/dpqlMockLanguage.ts +565 -0
  306. package/src/components/form/expressions/dpqlMockLsp.ts +109 -83
  307. package/src/components/form/expressions/mockExpressions.ts +8 -4
  308. package/src/components/form/expressions/renderExpressionToText.ts +112 -22
  309. package/src/components/form/expressions/types.ts +17 -2
  310. package/src/components/form/expressions/useExpressions.ts +5 -1
  311. package/src/components/form/expressions/useRenderExpression.ts +43 -127
  312. package/src/components/form/fields/Field.tsx +102 -20
  313. package/src/components/form/fields/allowed-values/AllowedValues.tsx +106 -44
  314. package/src/components/form/fields/auto/AutoFormField.stories.tsx +85 -18
  315. package/src/components/form/fields/auto/AutoFormField.tsx +97 -21
  316. package/src/components/form/fields/date/Date.tsx +17 -1
  317. package/src/components/form/fields/long-string/LongString.tsx +15 -3
  318. package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +65 -6
  319. package/src/components/form/fields/number/Number.tsx +25 -0
  320. package/src/components/form/fields/rich-text/RichText.tsx +248 -30
  321. package/src/components/form/fields/select/Select.stories.tsx +392 -0
  322. package/src/components/form/fields/select/Select.tsx +164 -27
  323. package/src/components/form/fields/select/SelectCollection.tsx +350 -6
  324. package/src/components/form/fields/template/ReadOnlyTemplateTag.tsx +4 -2
  325. package/src/components/form/fields/template/TemplateField.stories.tsx +93 -14
  326. package/src/components/form/fields/template/TemplateField.tsx +825 -131
  327. package/src/components/form/fields/template/TemplateText.tsx +115 -0
  328. package/src/components/form/index.tsx +4 -0
  329. package/src/components/log/Log.stories.tsx +2 -1
  330. package/src/components/searchFilterBar/SearchFilterBar.stories.tsx +3 -3
  331. package/src/components/smartEditor/SmartEditor.tsx +41 -9
  332. package/src/components/smartEditor/__fixtures__/mockLspServer.ts +52 -3
  333. package/src/components/smartEditor/useLspSession.ts +21 -3
  334. package/src/components/supportTicket/TicketReplyBox.tsx +8 -4
  335. package/src/components/ticketThread/TicketThread.stories.tsx +1 -0
  336. package/src/helpers/common.ts +7 -3
  337. package/src/helpers/dpqlDetection.ts +209 -0
  338. package/src/helpers/optionUiTypes.ts +38 -0
  339. package/src/helpers/options.ts +96 -0
  340. package/src/helpers/templateItems.ts +81 -0
  341. package/src/helpers/templateText.ts +350 -0
  342. package/src/helpers/templates.ts +94 -41
  343. package/src/helpers/validations.ts +203 -51
  344. package/src/hooks/useFetch/useFetch.stories.tsx +6 -5
  345. package/src/hooks/useFetch/useFetch.tsx +53 -7
  346. package/src/hooks/useStorage/useStorage.stories.tsx +2 -1
  347. package/src/hooks/useTemplates.ts +41 -0
  348. package/src/hooks/useWebSocket/useWebsocket.stories.tsx +2 -1
  349. package/src/index.tsx +14 -1
  350. package/src/stores/currentUser/currentUser.stories.tsx +2 -1
  351. package/src/stories/storyNetwork.ts +92 -0
  352. package/src/utils/fetch.ts +311 -21
  353. package/src/utils/lspClient.ts +68 -11
  354. package/src/utils/websocket.ts +20 -9
  355. package/dist/components/form/engine/__fixtures__/basicFormOptions.d.ts +0 -73
  356. package/dist/components/form/engine/__fixtures__/basicFormOptions.d.ts.map +0 -1
  357. package/dist/components/form/engine/__fixtures__/basicFormOptions.js +0 -317
  358. package/dist/components/form/engine/__fixtures__/basicFormOptions.js.map +0 -1
  359. package/dist/components/form/engine/__fixtures__/fieldChromeOptions.d.ts +0 -41
  360. package/dist/components/form/engine/__fixtures__/fieldChromeOptions.d.ts.map +0 -1
  361. package/dist/components/form/engine/__fixtures__/fieldChromeOptions.js +0 -45
  362. package/dist/components/form/engine/__fixtures__/fieldChromeOptions.js.map +0 -1
  363. package/dist/components/form/expressions/dpqlMockLsp.d.ts +0 -3
  364. package/dist/components/form/expressions/dpqlMockLsp.d.ts.map +0 -1
  365. package/dist/components/form/expressions/dpqlMockLsp.js +0 -91
  366. package/dist/components/form/expressions/dpqlMockLsp.js.map +0 -1
  367. package/dist/components/form/fields/template/__fixtures__/longExampleValue.d.ts +0 -2
  368. package/dist/components/form/fields/template/__fixtures__/longExampleValue.d.ts.map +0 -1
  369. package/dist/components/form/fields/template/__fixtures__/longExampleValue.js +0 -9
  370. package/dist/components/form/fields/template/__fixtures__/longExampleValue.js.map +0 -1
  371. package/dist/components/smartEditor/__fixtures__/mockLspServer.d.ts +0 -55
  372. package/dist/components/smartEditor/__fixtures__/mockLspServer.d.ts.map +0 -1
  373. package/dist/components/smartEditor/__fixtures__/mockLspServer.js +0 -126
  374. package/dist/components/smartEditor/__fixtures__/mockLspServer.js.map +0 -1
  375. package/dist/stories/Data/fileFieldArgSchema.json +0 -86
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+ // Copyright 2026 Qore Technologies, s.r.o.
3
+ /**
4
+ * Is this expression argument SUPPLIED, or is it still missing?
5
+ *
6
+ * DPQL has a null literal: `null` parses to `{exp: "value", args: [null]}` and
7
+ * round-trips, and an author writing it in the text editor means *"this is the
8
+ * value — nothing"*. It is the only way to assert that a call returned no
9
+ * value, which is how it was reported.
10
+ *
11
+ * The rule, stated once here because three different places had drawn it
12
+ * differently: **an argument that is explicitly null is supplied; one that is
13
+ * absent or `undefined` is still missing.**
14
+ *
15
+ * The builder used to ask `size(arg) === 0`, and lodash answers `0` for `null`
16
+ * as readily as for `{}`. So an explicit null was read as a missing argument
17
+ * and reset from the catalogue's declaration — which is how a saved draft ended
18
+ * up holding `{"type": "any", "required": true}`, an argument DEFINITION where
19
+ * its value should be, with the author's `null` gone and `required` (a schema
20
+ * key, never a value key) left behind to give it away.
21
+ */
22
+ var __assign = (this && this.__assign) || function () {
23
+ __assign = Object.assign || function(t) {
24
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
25
+ s = arguments[i];
26
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
27
+ t[p] = s[p];
28
+ }
29
+ return t;
30
+ };
31
+ return __assign.apply(this, arguments);
32
+ };
33
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
34
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
35
+ if (ar || !(i in from)) {
36
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
37
+ ar[i] = from[i];
38
+ }
39
+ }
40
+ return to.concat(ar || Array.prototype.slice.call(from));
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.addMissingExpressionArgs = exports.shouldMarkAsExpression = exports.looksLikeExpressionAst = exports.asExpressionArgumentEnvelope = exports.isExpressionArgumentMissing = void 0;
44
+ /**
45
+ * True when `arg` carries no value yet — `undefined`, the `{}` the builder
46
+ * writes when a type change resets an argument, or any envelope with no
47
+ * `value` in it.
48
+ *
49
+ * `null` is NOT missing: it is the null literal.
50
+ *
51
+ * The rule used to be "an object with no keys at all", which let an envelope
52
+ * holding nothing but SCHEMA keys pass as a supplied value. That is how a saved
53
+ * draft kept `{type: 'any', required: true}` — an argument DEFINITION where the
54
+ * author's value belonged — and why re-opening the expression never repaired
55
+ * it: the builder looked at those two keys, concluded the argument was already
56
+ * supplied, and left the definition in place as data. `required` is a schema
57
+ * key; nothing ever reads it back off a stored value.
58
+ *
59
+ * Asking for the `value` instead makes the question the one that was always
60
+ * meant: has the author put something here?
61
+ *
62
+ * @param arg one entry of an expression's `args`
63
+ */
64
+ var isExpressionArgumentMissing = function (arg) {
65
+ if (arg === null) {
66
+ return false;
67
+ }
68
+ if (arg === undefined) {
69
+ return true;
70
+ }
71
+ if (typeof arg !== 'object') {
72
+ // a raw scalar argument — `0`, `false` and `''` are values too
73
+ return false;
74
+ }
75
+ return arg.value === undefined;
76
+ };
77
+ exports.isExpressionArgumentMissing = isExpressionArgumentMissing;
78
+ /**
79
+ * The shape the builder stores an argument in: `{type, value}`.
80
+ *
81
+ * A parse result carries its arguments RAW — `args: [null]`, `args: [3]` —
82
+ * because that is what the grammar produced. The builder's editors read
83
+ * `arg.value`, so a raw argument has to be widened before it is stored, and
84
+ * widening `null` is the whole point: dropped instead, the author's null
85
+ * becomes an argument with no `value` key at all, which every later reader
86
+ * treats as an empty field.
87
+ *
88
+ * An argument that is already an envelope is returned untouched.
89
+ *
90
+ * @param arg one entry of an expression's `args`
91
+ * @param uiType the type the catalogue declares for that position
92
+ */
93
+ var asExpressionArgumentEnvelope = function (arg, uiType) {
94
+ if (arg !== null && (arg === undefined || typeof arg === 'object')) {
95
+ return arg;
96
+ }
97
+ return __assign({ value: arg }, (uiType ? { type: uiType } : {}));
98
+ };
99
+ exports.asExpressionArgumentEnvelope = asExpressionArgumentEnvelope;
100
+ /**
101
+ * Does this value still look like an expression AST?
102
+ *
103
+ * `{exp, args}` is the shape the builder and `dpql/parse` both produce. The
104
+ * check is structural on purpose: the flag that marks an option as holding an
105
+ * expression describes its VALUE, so the value is what should decide whether
106
+ * the flag survives a change that said nothing about it.
107
+ */
108
+ var looksLikeExpressionAst = function (value) {
109
+ return !!value &&
110
+ typeof value === 'object' &&
111
+ !Array.isArray(value) &&
112
+ typeof value.exp === 'string';
113
+ };
114
+ exports.looksLikeExpressionAst = looksLikeExpressionAst;
115
+ /**
116
+ * Whether an option should still be marked as holding an expression.
117
+ *
118
+ * The form engine used to delete the flag on ANY change that did not re-assert
119
+ * it, and most changes do not: an editor re-mounting, a revert, a validation
120
+ * pass. The value stayed the AST while the flag went, so the option degraded
121
+ * into a plain hash — which is how an assertion's Expected Value came back
122
+ * from a saved draft as a two-field object showing `exp` and `args`, and why
123
+ * `encodeTestValue` then stored it with `source: "literal"`.
124
+ *
125
+ * @param isFunction what the caller said: `true` sets the flag, `false` clears
126
+ * it deliberately (choosing a concrete type does this), `undefined` is no
127
+ * opinion at all
128
+ * @param value the option's new value
129
+ * @param wasExpression whether the option was marked before this change
130
+ */
131
+ var shouldMarkAsExpression = function (isFunction, value, wasExpression) {
132
+ if (isFunction === true) {
133
+ return true;
134
+ }
135
+ if (isFunction === false) {
136
+ return false;
137
+ }
138
+ // No opinion: the flag belongs to the value, so it survives exactly as long
139
+ // as the value is still an expression.
140
+ return !!wasExpression && (0, exports.looksLikeExpressionAst)(value);
141
+ };
142
+ exports.shouldMarkAsExpression = shouldMarkAsExpression;
143
+ /**
144
+ * Fill in an expression's missing arguments, leaving the supplied ones alone.
145
+ *
146
+ * Extracted from the builder so the decision it makes can be tested directly:
147
+ * a component test of the same behaviour passed just as happily with the defect
148
+ * in place, because the builder normalises on an interaction the harness never
149
+ * performed. A test that cannot fail is worse than none.
150
+ *
151
+ * @param expressions the served expression catalogue
152
+ * @param expression the chosen expression's `name`
153
+ * @param args the arguments so far — raw from a parse, or envelopes from the
154
+ * builder's own editors
155
+ */
156
+ /**
157
+ * An argument slot with nothing in it yet: the catalogue's default when it has
158
+ * one, otherwise an envelope typed for the editors that need a type to mount.
159
+ * `false`, `0` and `''` are defaults too — a truthiness test dropped them.
160
+ */
161
+ var emptyArgumentSlot = function (arg) {
162
+ return (arg === null || arg === void 0 ? void 0 : arg.default_value) != null ?
163
+ { value: arg.default_value, type: arg.ui_type }
164
+ : {
165
+ type: (arg === null || arg === void 0 ? void 0 : arg.ui_type) === 'richtext' || (arg === null || arg === void 0 ? void 0 : arg.ui_type) === 'number' || (arg === null || arg === void 0 ? void 0 : arg.ui_type) === 'bool' ?
166
+ arg.ui_type
167
+ : undefined,
168
+ };
169
+ };
170
+ var addMissingExpressionArgs = function (expressions, expression, args) {
171
+ var _a, _b;
172
+ if (args === void 0) { args = []; }
173
+ var newArgs = __spreadArray([], args, true);
174
+ var selected = expressions === null || expressions === void 0 ? void 0 : expressions.find(function (exp) { return (exp === null || exp === void 0 ? void 0 : exp.name) === expression; });
175
+ if (!selected) {
176
+ return newArgs;
177
+ }
178
+ if (selected.varargs) {
179
+ if (selected.subtype === 2) {
180
+ newArgs.push({ is_expression: true, value: { args: [] } });
181
+ return newArgs;
182
+ }
183
+ /* Every operand follows the one schema argument. Slots are added up to
184
+ `min_args`, and EVERY missing one is filled, not only the new ones: the
185
+ builder leaves an empty slot behind for each argument the previous value
186
+ had no operand for (a fresh builder has none), and an operand editor or
187
+ the validator reading such a slot for its `type` crashed the builder. A
188
+ raw operand from a parse is a value, so it is left alone. */
189
+ var schema_1 = ((_a = selected.args) !== null && _a !== void 0 ? _a : [])[0];
190
+ newArgs.push.apply(newArgs, Array.from({ length: ((_b = selected.min_args) !== null && _b !== void 0 ? _b : 1) - 1 }, function () { return undefined; }));
191
+ newArgs.forEach(function (slot, index) {
192
+ if ((0, exports.isExpressionArgumentMissing)(slot)) {
193
+ newArgs[index] = emptyArgumentSlot(schema_1);
194
+ }
195
+ });
196
+ return newArgs;
197
+ }
198
+ selected.args.forEach(function (arg, index) {
199
+ /* A RAW argument, as `dpql/parse` produces it — `args: [null]`, `args: [3]`
200
+ — is widened into the `{type, value}` envelope the editors read. Widening
201
+ the null is the point: dropped instead, the author's `null` became an
202
+ argument with no `value` key, and the branch below then filled the gap
203
+ from the catalogue's DECLARATION, which is how a saved draft came back
204
+ holding `{type: "any", required: true}` where its value belonged. */
205
+ newArgs[index] = (0, exports.asExpressionArgumentEnvelope)(newArgs[index], arg.ui_type);
206
+ /* "Missing" already means "carries no value", so an argument waiting for
207
+ its catalogue default is simply a missing one — it needs no separate
208
+ test. */
209
+ if (!(0, exports.isExpressionArgumentMissing)(newArgs[index])) {
210
+ return;
211
+ }
212
+ newArgs[index] = emptyArgumentSlot(arg);
213
+ });
214
+ return newArgs;
215
+ };
216
+ exports.addMissingExpressionArgs = addMissingExpressionArgs;
217
+ //# sourceMappingURL=argumentPresence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"argumentPresence.js","sourceRoot":"","sources":["../../../../src/components/form/expressions/argumentPresence.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"argumentLabel.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/expressions/builder/argumentLabel.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhF,MAAM,WAAW,oCAAoC;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,8BAA8B,+CAMxC,oCAAoC,4CAsHtC,CAAC"}
1
+ {"version":3,"file":"argumentLabel.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/expressions/builder/argumentLabel.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhF,MAAM,WAAW,oCAAoC;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,MAAM,CAAC,EAAE,oBAAoB,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,8BAA8B,+CAMxC,oCAAoC,4CA4HtC,CAAC"}
@@ -34,9 +34,14 @@ var ExpressionBuilderArgumentLabel = function (_a) {
34
34
  types.getExactMatches(schema.ui_type).includes('any') ||
35
35
  type === 'any';
36
36
  var acceptedTypes = (0, lodash_1.uniq)(__spreadArray(__spreadArray([], types.getExactMatches(schema.ui_type), true), types.getAcceptedTypes(schema.ui_type), true));
37
- var _c = arg.is_expression
38
- ? (0, validations_1.validateFieldWithResult)('expression', arg, { expressions: expressions })
39
- : (0, validations_1.validateFieldWithResult)(argumentType, arg.value, schema, !schema.required), isValid = _c.isValid, reason = _c.reason;
37
+ /* `arg` is optional — an operand the author has not filled in yet has no
38
+ entry at all, and a literal carried straight from a parse can be the null
39
+ literal itself. Both were dereferenced unguarded here, which took the whole
40
+ expression editor down to its error boundary rather than drawing an empty
41
+ argument. */
42
+ var _c = (arg === null || arg === void 0 ? void 0 : arg.is_expression) ?
43
+ (0, validations_1.validateFieldWithResult)('expression', arg, { expressions: expressions })
44
+ : (0, validations_1.validateFieldWithResult)(argumentType, arg === null || arg === void 0 ? void 0 : arg.value, schema, !schema.required), isValid = _c.isValid, reason = _c.reason;
40
45
  return ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreP, { size: 'tiny', effect: {
41
46
  uppercase: true,
42
47
  spaced: 1,
@@ -52,7 +57,7 @@ var ExpressionBuilderArgumentLabel = function (_a) {
52
57
  italic: true,
53
58
  weight: 'light',
54
59
  opacity: 0.5,
55
- }, children: ['[', types.getTypeDisplayName(schema.ui_type)] }), !matchesType ? ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'ErrorWarningLine', color: 'warning', size: '10px', margin: 'both' })) : null, (argumentType || (arg.is_expression && ((_b = arg.value) === null || _b === void 0 ? void 0 : _b.exp))) &&
60
+ }, children: ['[', types.getTypeDisplayName(schema.ui_type)] }), !matchesType ? ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'ErrorWarningLine', color: 'warning', size: '10px', margin: 'both' })) : null, (argumentType || ((arg === null || arg === void 0 ? void 0 : arg.is_expression) && ((_b = arg.value) === null || _b === void 0 ? void 0 : _b.exp))) &&
56
61
  types.getTypeDisplayName(argumentType) !== types.getTypeDisplayName(schema.ui_type) &&
57
62
  !matchesTypeExactly ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [matchesType ? ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'CheckLine', color: 'pending', size: '10px', margin: 'both', tooltip: 'Type matches, but a transformation may be applied' })) : null, (0, jsx_runtime_1.jsx)(reqore_1.ReqoreSpan, { effect: {
58
63
  italic: true,
@@ -1 +1 @@
1
- {"version":3,"file":"argumentLabel.js","sourceRoot":"","sources":["../../../../../src/components/form/expressions/builder/argumentLabel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"argumentLabel.js","sourceRoot":"","sources":["../../../../../src/components/form/expressions/builder/argumentLabel.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { IReqorePanelAction } from '@qoretechnologies/reqore/dist/components/Panel';
2
2
  import { IReqoreFormTemplates } from '@qoretechnologies/reqore/dist/components/Textarea';
3
3
  import { TQorusType } from '@qoretechnologies/ts-toolkit';
4
+ import React from 'react';
4
5
  import { IExpression, IExpressionSchema, TExpressionReorder } from '../types';
5
6
  export interface IExpressionBuilderProps {
6
7
  localTemplates?: IReqoreFormTemplates;
@@ -21,6 +22,18 @@ export interface IExpressionBuilderProps {
21
22
  expressions?: IExpressionSchema[];
22
23
  expressionsUrl?: string;
23
24
  serverHandled?: boolean;
25
+ /**
26
+ * SEAM (reqraft): the host's per-`ui_type` editors, forwarded to the operand
27
+ * fields below.
28
+ *
29
+ * Without them an operand whose type is one of the CONSUMER's own ui_types
30
+ * falls through `AutoFormField`'s switch to the literal "Unknown type!" tag.
31
+ * That is what an assertion's `Value` did the moment it was turned into an
32
+ * expression: the field is `test-reference`, an IDE ui_type whose editor the
33
+ * IDE registers through `componentOverrides`, and the builder rendered its
34
+ * operands without them.
35
+ */
36
+ componentOverrides?: Record<string, React.FC<any>>;
24
37
  size?: string;
25
38
  /**
26
39
  * SEAM (reqraft): extra hover actions prepended to each expression card —
@@ -40,6 +53,6 @@ export interface IExpressionBuilderProps {
40
53
  }
41
54
  export interface IExpressionProps extends IExpressionBuilderProps {
42
55
  }
43
- export declare const Expression: ({ localTemplates, value, isChild, index, type, level, path, onValueChange, group, returnType, readOnly, id, expressionsUrl, serverHandled, extraActions, ...props }: IExpressionProps) => import("react/jsx-runtime").JSX.Element;
44
- export declare const ExpressionBuilder: ({ localTemplates, value, isChild, level, index, path, type, returnType, group, onChange, onValueChange, readOnly, expressions, expressionsUrl, serverHandled, extraActions, reorder, }: IExpressionBuilderProps) => import("react/jsx-runtime").JSX.Element;
56
+ export declare const Expression: ({ localTemplates, value, isChild, index, type, level, path, onValueChange, group, returnType, readOnly, id, expressionsUrl, serverHandled, extraActions, componentOverrides, ...props }: IExpressionProps) => import("react/jsx-runtime").JSX.Element;
57
+ export declare const ExpressionBuilder: ({ localTemplates, value, isChild, level, index, path, type, returnType, group, onChange, onValueChange, readOnly, expressions, expressionsUrl, serverHandled, extraActions, componentOverrides, reorder, }: IExpressionBuilderProps) => import("react/jsx-runtime").JSX.Element;
45
58
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/expressions/builder/index.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAGpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAoB1D,OAAO,EAEL,WAAW,EACX,iBAAiB,EAEjB,kBAAkB,EAEnB,MAAM,UAAU,CAAC;AAelB,MAAM,WAAW,uBAAuB;IACtC,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IACvC,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7E,6FAA6F;IAC7F,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EACT,kBAAkB,EAAE,GACpB,CAAC,CAAC,OAAO,EAAE;QACT,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;QACvC,KAAK,CAAC,EAAE,WAAW,CAAC;KACrB,KAAK,kBAAkB,EAAE,CAAC,CAAC;CACjC;AAiBD,MAAM,WAAW,gBAAiB,SAAQ,uBAAuB;CAAG;AAEpE,eAAO,MAAM,UAAU,wKAiBpB,gBAAgB,4CA+qClB,CAAC;AAEF,eAAO,MAAM,iBAAiB,2LAkB3B,uBAAuB,4CA2LzB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/expressions/builder/index.tsx"],"names":[],"mappings":"AAgBA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AAGpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG1D,OAAO,KAA4D,MAAM,OAAO,CAAC;AAkBjF,OAAO,EAEL,WAAW,EACX,iBAAiB,EAEjB,kBAAkB,EAEnB,MAAM,UAAU,CAAC;AAelB,MAAM,WAAW,uBAAuB;IACtC,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,GAAG,UAAU,EAAE,CAAC;IACvC,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7E,6FAA6F;IAC7F,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;;;;OAUG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;;;;;OAUG;IACH,YAAY,CAAC,EACT,kBAAkB,EAAE,GACpB,CAAC,CAAC,OAAO,EAAE;QACT,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;QACvC,KAAK,CAAC,EAAE,WAAW,CAAC;KACrB,KAAK,kBAAkB,EAAE,CAAC,CAAC;CACjC;AAiBD,MAAM,WAAW,gBAAiB,SAAQ,uBAAuB;CAAG;AAEpE,eAAO,MAAM,UAAU,4LAkBpB,gBAAgB,4CAinClB,CAAC;AAEF,eAAO,MAAM,iBAAiB,+MAmB3B,uBAAuB,4CAgMzB,CAAC"}
@@ -70,6 +70,7 @@ var react_1 = __importStar(require("react"));
70
70
  var styled_components_1 = __importDefault(require("styled-components"));
71
71
  var common_1 = require("../../../../helpers/common");
72
72
  var expressions_1 = require("../../../../helpers/expressions");
73
+ var argumentPresence_1 = require("../argumentPresence");
73
74
  var templates_1 = require("../../../../helpers/templates");
74
75
  var validations_1 = require("../../../../helpers/validations");
75
76
  var useQorusTypes_1 = require("../../../../hooks/useQorusTypes");
@@ -99,7 +100,7 @@ var noopUseRegisterHintView = function () {
99
100
  var StyledExpressionItemLabel = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: absolute;\n text-orientation: upright;\n writing-mode: vertical-rl;\n top: calc(50%);\n transform: translateY(-50%);\n white-space: nowrap;\n height: calc(100% - 24px);\n // Centered flex\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid ", ";\n"], ["\n position: absolute;\n text-orientation: upright;\n writing-mode: vertical-rl;\n top: calc(50%);\n transform: translateY(-50%);\n white-space: nowrap;\n height: calc(100% - 24px);\n // Centered flex\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 1px solid ", ";\n"])), function () { return (0, polished_1.rgba)('#fff', 0.3); });
100
101
  var Expression = function (_a) {
101
102
  var _b, _c, _d, _f, _g, _h, _j, _k, _l, _m, _o;
102
- var localTemplates = _a.localTemplates, _p = _a.value, value = _p === void 0 ? types_1.ExpressionDefaultValue : _p, isChild = _a.isChild, index = _a.index, type = _a.type, level = _a.level, path = _a.path, onValueChange = _a.onValueChange, group = _a.group, returnType = _a.returnType, readOnly = _a.readOnly, id = _a.id, expressionsUrl = _a.expressionsUrl, serverHandled = _a.serverHandled, extraActions = _a.extraActions, props = __rest(_a, ["localTemplates", "value", "isChild", "index", "type", "level", "path", "onValueChange", "group", "returnType", "readOnly", "id", "expressionsUrl", "serverHandled", "extraActions"]);
103
+ var localTemplates = _a.localTemplates, _p = _a.value, value = _p === void 0 ? types_1.ExpressionDefaultValue : _p, isChild = _a.isChild, index = _a.index, type = _a.type, level = _a.level, path = _a.path, onValueChange = _a.onValueChange, group = _a.group, returnType = _a.returnType, readOnly = _a.readOnly, id = _a.id, expressionsUrl = _a.expressionsUrl, serverHandled = _a.serverHandled, extraActions = _a.extraActions, componentOverrides = _a.componentOverrides, props = __rest(_a, ["localTemplates", "value", "isChild", "index", "type", "level", "path", "onValueChange", "group", "returnType", "readOnly", "id", "expressionsUrl", "serverHandled", "extraActions", "componentOverrides"]);
103
104
  var types = (0, useQorusTypes_1.useQorusTypes)();
104
105
  var _q = (0, react_1.useState)(false), showSummary = _q[0], setShowSummary = _q[1];
105
106
  var _r = (0, react_1.useState)(undefined), confirmDialogData = _r[0], setConfirmDialogData = _r[1];
@@ -172,59 +173,8 @@ var Expression = function (_a) {
172
173
  }, path);
173
174
  }, [onValueChange, JSON.stringify(value), path]);
174
175
  var addMissingArgs = (0, react_1.useCallback)(function (expression, args) {
175
- var _a;
176
176
  if (args === void 0) { args = []; }
177
- var newArgs = __spreadArray([], args, true);
178
- // Check if this expression has variable arguments
179
- var selectedExpression = (_a = expressions.value) === null || _a === void 0 ? void 0 : _a.find(function (exp) { return exp.name === expression; });
180
- // An operand slot with nothing in it yet: the schema's default value
181
- // when it has one, otherwise an envelope typed after the schema for
182
- // the editors that need a type to mount. `updateExp` leaves such a
183
- // slot behind for every catalogue argument the previous value had no
184
- // operand for (a fresh builder has none), so every branch below has
185
- // to fill them — an `undefined` operand that reaches the validator or
186
- // an operand editor is read for its `type` and crashes the builder.
187
- var isEmptySlot = function (slot, arg) {
188
- return slot === undefined || (0, lodash_1.size)(slot) === 0 || (arg.default_value && !('value' in slot));
189
- };
190
- var emptySlot = function (arg) {
191
- return arg.default_value
192
- ? { value: arg.default_value, type: arg.ui_type }
193
- : {
194
- type: arg.ui_type === 'richtext' || arg.ui_type === 'number' || arg.ui_type === 'bool'
195
- ? arg.ui_type
196
- : undefined,
197
- };
198
- };
199
- if (selectedExpression.varargs) {
200
- if (selectedExpression.subtype === 2) {
201
- newArgs.push({
202
- is_expression: true,
203
- value: {
204
- args: [],
205
- },
206
- });
207
- }
208
- else {
209
- // Every operand follows the one schema argument; add slots up to
210
- // min_args and fill the empty ones.
211
- var schema_1 = selectedExpression.args[0];
212
- newArgs.push.apply(newArgs, Array.from({ length: selectedExpression.min_args - 1 }, function () { return emptySlot(schema_1); }));
213
- newArgs.forEach(function (slot, index) {
214
- if (isEmptySlot(slot, schema_1)) {
215
- newArgs[index] = emptySlot(schema_1);
216
- }
217
- });
218
- }
219
- }
220
- else {
221
- selectedExpression.args.forEach(function (arg, index) {
222
- if (isEmptySlot(newArgs[index], arg)) {
223
- newArgs[index] = emptySlot(arg);
224
- }
225
- });
226
- }
227
- return newArgs;
177
+ return (0, argumentPresence_1.addMissingExpressionArgs)(expressions.value, expression, args);
228
178
  }, [JSON.stringify(expressions.value)]);
229
179
  var updateExp = (0, react_1.useCallback)(function (val) {
230
180
  var _a;
@@ -331,7 +281,7 @@ var Expression = function (_a) {
331
281
  var updateMultipleArgs = (0, react_1.useCallback)(function (args) {
332
282
  onValueChange(__assign(__assign({}, value), { value: __assign(__assign({}, value.value), { args: addMissingArgs(value.value.exp, args) }) }), path);
333
283
  }, [onValueChange, JSON.stringify(value), path, addMissingArgs]);
334
- var updateArg = (0, react_1.useCallback)(function (val, index, type, isFunction, isRequired) {
284
+ var updateArg = (0, react_1.useCallback)(function (val, index, type, isFunction) {
335
285
  var _a;
336
286
  if (index === void 0) { index = 0; }
337
287
  var args = (0, lodash_1.clone)(value.value.args);
@@ -339,7 +289,14 @@ var Expression = function (_a) {
339
289
  if (newVal === null || newVal === void 0 ? void 0 : newVal.exp) {
340
290
  newVal.args = addMissingArgs(newVal.exp, newVal.args);
341
291
  }
342
- args[index] = __assign(__assign({}, args[index]), { value: newVal, type: !isFunction ? type || ((_a = args[index]) === null || _a === void 0 ? void 0 : _a.type) : undefined, is_expression: isFunction, required: isRequired });
292
+ /* `required` is NOT written here. It is a schema key — it describes the
293
+ catalogue's declaration of the argument, not the author's value, and
294
+ nothing reads it back off a stored argument (validation takes it from
295
+ the schema). Persisting it made a cleared argument indistinguishable
296
+ from real data: the value dropped out as `undefined`, `required: true`
297
+ stayed, and what was saved to the draft was `{type, required}` — an
298
+ argument DEFINITION sitting where its value should be. */
299
+ args[index] = __assign(__assign({}, args[index]), { value: newVal, type: !isFunction ? type || ((_a = args[index]) === null || _a === void 0 ? void 0 : _a.type) : undefined, is_expression: isFunction });
343
300
  onValueChange(__assign(__assign({}, value), { value: __assign(__assign({}, value.value), { args: args }) }), path);
344
301
  }, [addMissingArgs, onValueChange, JSON.stringify(value), path]);
345
302
  var handleRemoveClick = (0, react_1.useCallback)(function () {
@@ -511,11 +468,10 @@ var Expression = function (_a) {
511
468
  updateType(value === 'context' ? undefined : value, true);
512
469
  }, [updateType]);
513
470
  var handleFirstParamChange = (0, react_1.useCallback)(function (_name, value, type, isFunction) {
514
- var _a, _b;
515
471
  if (isFunction || (type !== 'any' && type !== 'auto')) {
516
- updateArg(value, 0, isFunction ? undefined : type, isFunction, (_b = (_a = selectedExpression === null || selectedExpression === void 0 ? void 0 : selectedExpression.args) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.required);
472
+ updateArg(value, 0, isFunction ? undefined : type, isFunction);
517
473
  }
518
- }, [updateArg, JSON.stringify(selectedExpression)]);
474
+ }, [updateArg]);
519
475
  var buildCustomTemplateItems = (0, react_1.useCallback)(function (arg, onClick) {
520
476
  var _a, _b;
521
477
  // If the argument has allowed values or element allowed values, do not allow type changing
@@ -713,13 +669,13 @@ var Expression = function (_a) {
713
669
  setConfirmDialogData(undefined);
714
670
  },
715
671
  },
716
- ], children: confirmDialogData.children })), showSummary && (0, jsx_runtime_1.jsx)(renderTemplate_1.ExpressionRenderTemplate, { exp: value, expressions: expressions.value }), !selectedExpression && !serverExpression && !(firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.value) && level === 0 ? ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreMessage, { size: 'small', opaque: false, intent: 'info', children: "Select an operation to start building your expression" })) : ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup
672
+ ], children: confirmDialogData.children })), showSummary && ((0, jsx_runtime_1.jsx)(renderTemplate_1.ExpressionRenderTemplate, { exp: value, expressions: expressions.value, templates: localTemplates })), !selectedExpression && !serverExpression && !(firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.value) && level === 0 ? ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreMessage, { size: 'small', opaque: false, intent: 'info', children: "Select an operation to start building your expression" })) : ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup
717
673
  // On a phone every operand is a full-width row, so the group spans
718
674
  // the panel; on desktop it hugs its content and wraps.
719
675
  , {
720
676
  // On a phone every operand is a full-width row, so the group spans
721
677
  // the panel; on desktop it hugs its content and wraps.
722
- fluid: phone, style: { maxWidth: '100%' }, wrap: true, verticalAlign: 'flex-start', size: 'normal', gapSize: 'big', children: [(firstArgSchema === null || firstArgSchema === void 0 ? void 0 : firstArgSchema.label_before) && ((0, jsx_runtime_1.jsx)(argumentDetail_1.ExpressionArgumentDetail, { label: firstArgSchema.label_before })), (0, jsx_runtime_1.jsx)(argumentWrapper_1.ExpressionBuilderArgumentWrapper, { expressions: expressions.value, arg: firstArgument, schema: firstArgSchema, onTypeChange: handleUpdateTypeChange, onRemoveArgClick: handleRemoveFirstArg, hasMultipleArgs: removeArgInline, fluid: phone, readOnly: readOnly, reorder: argReorderSurfaces, argIndex: 0, argCount: argCount, dragOver: isDragOverArg(0), onMoveArg: moveVarArg, onArgDragStart: handleArgDragStart, onArgDragOver: handleArgDragOver, onArgDrop: handleArgDrop, onArgDragEnd: handleArgDragEnd, children: (0, jsx_runtime_1.jsx)(TemplateField_1.TemplateField, { component: AutoFormField_1.AutoFormField,
678
+ fluid: phone, style: { maxWidth: '100%' }, wrap: true, verticalAlign: 'flex-start', size: 'normal', gapSize: 'big', children: [(firstArgSchema === null || firstArgSchema === void 0 ? void 0 : firstArgSchema.label_before) && ((0, jsx_runtime_1.jsx)(argumentDetail_1.ExpressionArgumentDetail, { label: firstArgSchema.label_before })), (0, jsx_runtime_1.jsx)(argumentWrapper_1.ExpressionBuilderArgumentWrapper, { expressions: expressions.value, arg: firstArgument, schema: firstArgSchema, onTypeChange: handleUpdateTypeChange, onRemoveArgClick: handleRemoveFirstArg, hasMultipleArgs: removeArgInline, fluid: phone, readOnly: readOnly, reorder: argReorderSurfaces, argIndex: 0, argCount: argCount, dragOver: isDragOverArg(0), onMoveArg: moveVarArg, onArgDragStart: handleArgDragStart, onArgDragOver: handleArgDragOver, onArgDrop: handleArgDrop, onArgDragEnd: handleArgDragEnd, children: (0, jsx_runtime_1.jsx)(TemplateField_1.TemplateField, { component: AutoFormField_1.AutoFormField, componentOverrides: componentOverrides,
723
679
  // SEAM (reqraft): an operand that becomes an expression mounts
724
680
  // its own builder through this TemplateField — hand the host's
725
681
  // actions on, or nesting silently drops them (the group
@@ -759,7 +715,7 @@ var Expression = function (_a) {
759
715
  updateArg(undefined, index + 1, value === 'context' ? undefined : value);
760
716
  }, onRemoveArgClick: function () {
761
717
  removeVarArg(index + 1);
762
- }, hasMultipleArgs: removeArgInline, fluid: phone, reorder: argReorderSurfaces, argIndex: index + 1, argCount: argCount, dragOver: isDragOverArg(index + 1), onMoveArg: moveVarArg, onArgDragStart: handleArgDragStart, onArgDragOver: handleArgDragOver, onArgDrop: handleArgDrop, onArgDragEnd: handleArgDragEnd, children: (0, jsx_runtime_1.jsx)(TemplateField_1.TemplateField, { minimal: true, component: AutoFormField_1.AutoFormField,
718
+ }, hasMultipleArgs: removeArgInline, fluid: phone, reorder: argReorderSurfaces, argIndex: index + 1, argCount: argCount, dragOver: isDragOverArg(index + 1), onMoveArg: moveVarArg, onArgDragStart: handleArgDragStart, onArgDragOver: handleArgDragOver, onArgDrop: handleArgDrop, onArgDragEnd: handleArgDragEnd, children: (0, jsx_runtime_1.jsx)(TemplateField_1.TemplateField, { minimal: true, component: AutoFormField_1.AutoFormField, componentOverrides: componentOverrides,
763
719
  // SEAM (reqraft): same as the first operand above.
764
720
  extraActions: extraActions, noSoft: true, level: level + 1, allowFunctions: !(arg === null || arg === void 0 ? void 0 : arg.allowed_values) && !(arg === null || arg === void 0 ? void 0 : arg.element_allowed_values), isFunction: (_a = rest[index]) === null || _a === void 0 ? void 0 : _a.is_expression,
765
721
  // An empty argument has no value to take a type from; fall
@@ -776,7 +732,7 @@ var Expression = function (_a) {
776
732
  !!arg.element_allowed_values ||
777
733
  !!((_h = rest[index]) === null || _h === void 0 ? void 0 : _h.type) ||
778
734
  !!arg.default_value, onChange: (function (_name, value, type, isFunction) {
779
- updateArg(value, index + 1, isFunction ? undefined : type, isFunction, arg.required);
735
+ updateArg(value, index + 1, isFunction ? undefined : type, isFunction);
780
736
  }), fluid: phone, fixed: !phone, disableManagement: true, disabled: readOnly, menuItems: buildCustomTemplateItems(arg, function (type, removeTemplate) {
781
737
  removeTemplate === null || removeTemplate === void 0 ? void 0 : removeTemplate();
782
738
  updateArg(undefined, index + 1, type.name === 'context' ? undefined : type.name);
@@ -787,7 +743,7 @@ var Expression = function (_a) {
787
743
  exports.Expression = Expression;
788
744
  var ExpressionBuilder = function (_a) {
789
745
  var _b, _c, _d;
790
- var localTemplates = _a.localTemplates, _f = _a.value, value = _f === void 0 ? types_1.ExpressionDefaultValue : _f, isChild = _a.isChild, _g = _a.level, level = _g === void 0 ? 0 : _g, _h = _a.index, index = _h === void 0 ? 0 : _h, path = _a.path, type = _a.type, returnType = _a.returnType, group = _a.group, onChange = _a.onChange, onValueChange = _a.onValueChange, readOnly = _a.readOnly, expressions = _a.expressions, expressionsUrl = _a.expressionsUrl, serverHandled = _a.serverHandled, extraActions = _a.extraActions, reorder = _a.reorder;
746
+ var localTemplates = _a.localTemplates, _f = _a.value, value = _f === void 0 ? types_1.ExpressionDefaultValue : _f, isChild = _a.isChild, _g = _a.level, level = _g === void 0 ? 0 : _g, _h = _a.index, index = _h === void 0 ? 0 : _h, path = _a.path, type = _a.type, returnType = _a.returnType, group = _a.group, onChange = _a.onChange, onValueChange = _a.onValueChange, readOnly = _a.readOnly, expressions = _a.expressions, expressionsUrl = _a.expressionsUrl, serverHandled = _a.serverHandled, extraActions = _a.extraActions, componentOverrides = _a.componentOverrides, reorder = _a.reorder;
791
747
  var templates = (0, useTemplates_1.useTemplates)(!isChild, localTemplates);
792
748
  var theme = (0, reqore_1.useReqoreTheme)();
793
749
  var _j = (0, react_1.useState)(false), showSummary = _j[0], setShowSummary = _j[1];
@@ -866,11 +822,11 @@ var ExpressionBuilder = function (_a) {
866
822
  : 'Show explanation of this expression',
867
823
  fixed: true,
868
824
  },
869
- ], children: (0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { vertical: true, fluid: true, size: 'normal', style: { position: 'relative' }, wrap: true, children: [showSummary && ((0, jsx_runtime_1.jsx)(renderTemplate_1.ExpressionRenderTemplate, { exp: value, expressions: _expressions.expressions })), (0, jsx_runtime_1.jsx)(StyledExpressionItemLabel, { as: reqore_1.ReqoreP, color: 'transparent', className: 'expression-operator' }), (_d = value.value.args) === null || _d === void 0 ? void 0 : _d.map(function (arg, index) { return ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [(0, jsx_runtime_1.jsx)(exports.ExpressionBuilder, { value: arg, localTemplates: templates.value, isChild: true, path: "".concat(path ? "".concat(path, ".") : '', "value.args.").concat(index), level: level + 1, index: index, type: type, onValueChange: handleChange, returnType: 'bool', group: value.value.exp, readOnly: readOnly, expressions: expressions, expressionsUrl: expressionsUrl, serverHandled: serverHandled, extraActions: extraActions, reorder: reorder }), index < (0, lodash_1.size)(value.value.args) - 1 && ((0, jsx_runtime_1.jsx)(argumentDetail_1.ExpressionArgumentDetail, { label: value.value.exp === '||' ? 'OR' : 'AND', align: 'left', style: {
825
+ ], children: (0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { vertical: true, fluid: true, size: 'normal', style: { position: 'relative' }, wrap: true, children: [showSummary && ((0, jsx_runtime_1.jsx)(renderTemplate_1.ExpressionRenderTemplate, { exp: value, expressions: _expressions.expressions, templates: localTemplates })), (0, jsx_runtime_1.jsx)(StyledExpressionItemLabel, { as: reqore_1.ReqoreP, color: 'transparent', className: 'expression-operator' }), (_d = value.value.args) === null || _d === void 0 ? void 0 : _d.map(function (arg, index) { return ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [(0, jsx_runtime_1.jsx)(exports.ExpressionBuilder, { value: arg, localTemplates: templates.value, isChild: true, path: "".concat(path ? "".concat(path, ".") : '', "value.args.").concat(index), level: level + 1, index: index, type: type, onValueChange: handleChange, returnType: 'bool', group: value.value.exp, readOnly: readOnly, expressions: expressions, expressionsUrl: expressionsUrl, serverHandled: serverHandled, extraActions: extraActions, reorder: reorder }), index < (0, lodash_1.size)(value.value.args) - 1 && ((0, jsx_runtime_1.jsx)(argumentDetail_1.ExpressionArgumentDetail, { label: value.value.exp === '||' ? 'OR' : 'AND', align: 'left', style: {
870
826
  marginLeft: 10,
871
827
  } }))] }, index)); })] }) }) }));
872
828
  }
873
- return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreErrorBoundary, { children: (0, jsx_runtime_1.jsx)(exports.Expression, { localTemplates: templates.value, value: value, isChild: isChild, type: type, returnType: returnType, level: level, path: path, index: index, onValueChange: handleChange, group: group, readOnly: readOnly, expressions: expressions, expressionsUrl: expressionsUrl, id: level === 0 && index === 0 ? 'expression-builder' : undefined, serverHandled: serverHandled, extraActions: extraActions, reorder: reorder }) }));
829
+ return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreErrorBoundary, { children: (0, jsx_runtime_1.jsx)(exports.Expression, { localTemplates: templates.value, value: value, isChild: isChild, type: type, returnType: returnType, level: level, path: path, index: index, onValueChange: handleChange, group: group, readOnly: readOnly, expressions: expressions, expressionsUrl: expressionsUrl, id: level === 0 && index === 0 ? 'expression-builder' : undefined, serverHandled: serverHandled, extraActions: extraActions, componentOverrides: componentOverrides, reorder: reorder }) }));
874
830
  };
875
831
  exports.ExpressionBuilder = ExpressionBuilder;
876
832
  var templateObject_1;