@qoretechnologies/reqraft 0.10.65 → 0.10.66-pr.137.ga1983bf

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 (873) hide show
  1. package/README.md +53 -1
  2. package/dist/components/Description/AllowedValuesHelp.d.ts +20 -0
  3. package/dist/components/Description/AllowedValuesHelp.d.ts.map +1 -0
  4. package/dist/components/Description/AllowedValuesHelp.js +86 -0
  5. package/dist/components/Description/AllowedValuesHelp.js.map +1 -0
  6. package/dist/components/Description/describedControl.d.ts +54 -0
  7. package/dist/components/Description/describedControl.d.ts.map +1 -0
  8. package/dist/components/Description/describedControl.js +81 -0
  9. package/dist/components/Description/describedControl.js.map +1 -0
  10. package/dist/components/Description/index.d.ts.map +1 -1
  11. package/dist/components/Description/index.js +3 -2
  12. package/dist/components/Description/index.js.map +1 -1
  13. package/dist/components/colorValue/colorValue.d.ts +59 -0
  14. package/dist/components/colorValue/colorValue.d.ts.map +1 -0
  15. package/dist/components/colorValue/colorValue.js +245 -0
  16. package/dist/components/colorValue/colorValue.js.map +1 -0
  17. package/dist/components/colorValue/index.d.ts +34 -0
  18. package/dist/components/colorValue/index.d.ts.map +1 -0
  19. package/dist/components/colorValue/index.js +136 -0
  20. package/dist/components/colorValue/index.js.map +1 -0
  21. package/dist/components/colorValue/labels.d.ts +12 -0
  22. package/dist/components/colorValue/labels.d.ts.map +1 -0
  23. package/dist/components/colorValue/labels.js +11 -0
  24. package/dist/components/colorValue/labels.js.map +1 -0
  25. package/dist/components/composer/Composer.d.ts +1 -1
  26. package/dist/components/composer/Composer.d.ts.map +1 -1
  27. package/dist/components/composer/Composer.js +2 -2
  28. package/dist/components/composer/Composer.js.map +1 -1
  29. package/dist/components/dpqlEditor/DpqlEditor.d.ts.map +1 -1
  30. package/dist/components/dpqlEditor/DpqlEditor.js +156 -10
  31. package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
  32. package/dist/components/dpqlEditor/dpqlCompletions.d.ts +39 -0
  33. package/dist/components/dpqlEditor/dpqlCompletions.d.ts.map +1 -0
  34. package/dist/components/dpqlEditor/dpqlCompletions.js +294 -0
  35. package/dist/components/dpqlEditor/dpqlCompletions.js.map +1 -0
  36. package/dist/components/dpqlEditor/dpqlHelpers.d.ts +54 -5
  37. package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
  38. package/dist/components/dpqlEditor/dpqlHelpers.js +413 -63
  39. package/dist/components/dpqlEditor/dpqlHelpers.js.map +1 -1
  40. package/dist/components/dpqlEditor/dpqlInserter.d.ts.map +1 -1
  41. package/dist/components/dpqlEditor/dpqlInserter.js +67 -29
  42. package/dist/components/dpqlEditor/dpqlInserter.js.map +1 -1
  43. package/dist/components/dpqlEditor/dpqlTags.d.ts +17 -7
  44. package/dist/components/dpqlEditor/dpqlTags.d.ts.map +1 -1
  45. package/dist/components/dpqlEditor/dpqlTags.js +44 -17
  46. package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
  47. package/dist/components/dpqlEditor/types.d.ts +94 -8
  48. package/dist/components/dpqlEditor/types.d.ts.map +1 -1
  49. package/dist/components/dpqlEditor/useDpqlSession.d.ts +7 -2
  50. package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
  51. package/dist/components/dpqlEditor/useDpqlSession.js +49 -17
  52. package/dist/components/dpqlEditor/useDpqlSession.js.map +1 -1
  53. package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
  54. package/dist/components/form/engine/CompactRow.js +322 -124
  55. package/dist/components/form/engine/CompactRow.js.map +1 -1
  56. package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
  57. package/dist/components/form/engine/CompactToolbar.js +29 -3
  58. package/dist/components/form/engine/CompactToolbar.js.map +1 -1
  59. package/dist/components/form/engine/FormEngine.d.ts +66 -11
  60. package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
  61. package/dist/components/form/engine/FormEngine.js +570 -176
  62. package/dist/components/form/engine/FormEngine.js.map +1 -1
  63. package/dist/components/form/engine/HiddenFieldsNote.d.ts +28 -0
  64. package/dist/components/form/engine/HiddenFieldsNote.d.ts.map +1 -0
  65. package/dist/components/form/engine/HiddenFieldsNote.js +32 -0
  66. package/dist/components/form/engine/HiddenFieldsNote.js.map +1 -0
  67. package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
  68. package/dist/components/form/engine/OptionFieldMessages.js +25 -3
  69. package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
  70. package/dist/components/form/engine/OptionsHelpDialog.d.ts.map +1 -1
  71. package/dist/components/form/engine/OptionsHelpDialog.js +19 -2
  72. package/dist/components/form/engine/OptionsHelpDialog.js.map +1 -1
  73. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts +2 -2
  74. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts.map +1 -1
  75. package/dist/components/form/engine/_structuredData/SchemaDataView.js +12 -6
  76. package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
  77. package/dist/components/form/engine/compactRowContext.d.ts +30 -1
  78. package/dist/components/form/engine/compactRowContext.d.ts.map +1 -1
  79. package/dist/components/form/engine/compactRowContext.js.map +1 -1
  80. package/dist/components/form/engine/compactRowStyles.d.ts +59 -22
  81. package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
  82. package/dist/components/form/engine/compactRowStyles.js +102 -55
  83. package/dist/components/form/engine/compactRowStyles.js.map +1 -1
  84. package/dist/components/form/engine/compactToolbarColors.d.ts +16 -0
  85. package/dist/components/form/engine/compactToolbarColors.d.ts.map +1 -0
  86. package/dist/components/form/engine/compactToolbarColors.js +21 -0
  87. package/dist/components/form/engine/compactToolbarColors.js.map +1 -0
  88. package/dist/components/form/engine/inheritProps.d.ts +29 -0
  89. package/dist/components/form/engine/inheritProps.d.ts.map +1 -0
  90. package/dist/components/form/engine/inheritProps.js +43 -0
  91. package/dist/components/form/engine/inheritProps.js.map +1 -0
  92. package/dist/components/form/engine/operatorSummary.d.ts +26 -0
  93. package/dist/components/form/engine/operatorSummary.d.ts.map +1 -0
  94. package/dist/components/form/engine/operatorSummary.js +35 -0
  95. package/dist/components/form/engine/operatorSummary.js.map +1 -0
  96. package/dist/components/form/engine/readFirst.d.ts +24 -8
  97. package/dist/components/form/engine/readFirst.d.ts.map +1 -1
  98. package/dist/components/form/engine/readFirst.js +77 -109
  99. package/dist/components/form/engine/readFirst.js.map +1 -1
  100. package/dist/components/form/engine/readFirstColors.d.ts +30 -0
  101. package/dist/components/form/engine/readFirstColors.d.ts.map +1 -0
  102. package/dist/components/form/engine/readFirstColors.js +51 -0
  103. package/dist/components/form/engine/readFirstColors.js.map +1 -0
  104. package/dist/components/form/engine/rowFocus.d.ts +2 -0
  105. package/dist/components/form/engine/rowFocus.d.ts.map +1 -1
  106. package/dist/components/form/engine/rowFocus.js +26 -3
  107. package/dist/components/form/engine/rowFocus.js.map +1 -1
  108. package/dist/components/form/engine/typeChoices.d.ts +1 -1
  109. package/dist/components/form/engine/variants/VariantCalmTable.d.ts.map +1 -1
  110. package/dist/components/form/engine/variants/VariantCalmTable.js +2 -1
  111. package/dist/components/form/engine/variants/VariantCalmTable.js.map +1 -1
  112. package/dist/components/form/engine/variants/VariantCards.d.ts.map +1 -1
  113. package/dist/components/form/engine/variants/VariantCards.js +2 -1
  114. package/dist/components/form/engine/variants/VariantCards.js.map +1 -1
  115. package/dist/components/form/engine/variants/VariantFocus.js +1 -1
  116. package/dist/components/form/engine/variants/VariantFocus.js.map +1 -1
  117. package/dist/components/form/engine/variants/VariantMinimal.d.ts.map +1 -1
  118. package/dist/components/form/engine/variants/VariantMinimal.js +2 -1
  119. package/dist/components/form/engine/variants/VariantMinimal.js.map +1 -1
  120. package/dist/components/form/engine/variants/variantParts.d.ts +1 -1
  121. package/dist/components/form/engine/variants/variantParts.d.ts.map +1 -1
  122. package/dist/components/form/engine/variants/variantParts.js +25 -17
  123. package/dist/components/form/engine/variants/variantParts.js.map +1 -1
  124. package/dist/components/form/expressions/DpqlRendering.d.ts +1 -1
  125. package/dist/components/form/expressions/DpqlRendering.d.ts.map +1 -1
  126. package/dist/components/form/expressions/DpqlRendering.js +7 -6
  127. package/dist/components/form/expressions/DpqlRendering.js.map +1 -1
  128. package/dist/components/form/expressions/ExpressionField.d.ts +67 -3
  129. package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
  130. package/dist/components/form/expressions/ExpressionField.js +536 -114
  131. package/dist/components/form/expressions/ExpressionField.js.map +1 -1
  132. package/dist/components/form/expressions/argumentPresence.d.ts +14 -0
  133. package/dist/components/form/expressions/argumentPresence.d.ts.map +1 -1
  134. package/dist/components/form/expressions/argumentPresence.js +16 -1
  135. package/dist/components/form/expressions/argumentPresence.js.map +1 -1
  136. package/dist/components/form/expressions/builder/argumentDetail.d.ts.map +1 -1
  137. package/dist/components/form/expressions/builder/argumentDetail.js +4 -1
  138. package/dist/components/form/expressions/builder/argumentDetail.js.map +1 -1
  139. package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
  140. package/dist/components/form/expressions/builder/argumentLabel.js +30 -11
  141. package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
  142. package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
  143. package/dist/components/form/expressions/builder/argumentWrapper.js +3 -1
  144. package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
  145. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts +9 -0
  146. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts.map +1 -1
  147. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js +30 -27
  148. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js.map +1 -1
  149. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts +1 -1
  150. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts.map +1 -1
  151. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js +7 -5
  152. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js.map +1 -1
  153. package/dist/components/form/expressions/builder/index.d.ts +34 -2
  154. package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
  155. package/dist/components/form/expressions/builder/index.js +170 -80
  156. package/dist/components/form/expressions/builder/index.js.map +1 -1
  157. package/dist/components/form/expressions/builder/item.d.ts +6 -2
  158. package/dist/components/form/expressions/builder/item.d.ts.map +1 -1
  159. package/dist/components/form/expressions/builder/item.js +19 -5
  160. package/dist/components/form/expressions/builder/item.js.map +1 -1
  161. package/dist/components/form/expressions/builder/renderTemplate.js +1 -1
  162. package/dist/components/form/expressions/builder/renderTemplate.js.map +1 -1
  163. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts +11 -0
  164. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts.map +1 -0
  165. package/dist/components/form/expressions/dpqlMockRecordPath.js +254 -0
  166. package/dist/components/form/expressions/dpqlMockRecordPath.js.map +1 -0
  167. package/dist/components/form/expressions/expressionOperands.d.ts +16 -0
  168. package/dist/components/form/expressions/expressionOperands.d.ts.map +1 -0
  169. package/dist/components/form/expressions/expressionOperands.js +97 -0
  170. package/dist/components/form/expressions/expressionOperands.js.map +1 -0
  171. package/dist/components/form/expressions/fieldPath.d.ts +24 -0
  172. package/dist/components/form/expressions/fieldPath.d.ts.map +1 -0
  173. package/dist/components/form/expressions/fieldPath.js +152 -0
  174. package/dist/components/form/expressions/fieldPath.js.map +1 -0
  175. package/dist/components/form/expressions/loneValue.d.ts +17 -0
  176. package/dist/components/form/expressions/loneValue.d.ts.map +1 -0
  177. package/dist/components/form/expressions/loneValue.js +33 -0
  178. package/dist/components/form/expressions/loneValue.js.map +1 -0
  179. package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
  180. package/dist/components/form/expressions/mockExpressions.js +22 -5
  181. package/dist/components/form/expressions/mockExpressions.js.map +1 -1
  182. package/dist/components/form/expressions/renderExpressionToText.d.ts +2 -0
  183. package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
  184. package/dist/components/form/expressions/renderExpressionToText.js +43 -10
  185. package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
  186. package/dist/components/form/expressions/textOfExpression.d.ts +18 -0
  187. package/dist/components/form/expressions/textOfExpression.d.ts.map +1 -0
  188. package/dist/components/form/expressions/textOfExpression.js +49 -0
  189. package/dist/components/form/expressions/textOfExpression.js.map +1 -0
  190. package/dist/components/form/expressions/types.d.ts +12 -0
  191. package/dist/components/form/expressions/types.d.ts.map +1 -1
  192. package/dist/components/form/expressions/types.js +6 -1
  193. package/dist/components/form/expressions/types.js.map +1 -1
  194. package/dist/components/form/expressions/useExpressionType.d.ts +26 -0
  195. package/dist/components/form/expressions/useExpressionType.d.ts.map +1 -0
  196. package/dist/components/form/expressions/useExpressionType.js +181 -0
  197. package/dist/components/form/expressions/useExpressionType.js.map +1 -0
  198. package/dist/components/form/expressions/useRenderExpression.d.ts.map +1 -1
  199. package/dist/components/form/expressions/useRenderExpression.js +13 -9
  200. package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
  201. package/dist/components/form/expressions/wildcardExpressions.d.ts +27 -0
  202. package/dist/components/form/expressions/wildcardExpressions.d.ts.map +1 -0
  203. package/dist/components/form/expressions/wildcardExpressions.js +101 -0
  204. package/dist/components/form/expressions/wildcardExpressions.js.map +1 -0
  205. package/dist/components/form/fields/Field.d.ts.map +1 -1
  206. package/dist/components/form/fields/Field.js +43 -20
  207. package/dist/components/form/fields/Field.js.map +1 -1
  208. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
  209. package/dist/components/form/fields/allowed-values/AllowedValues.js +39 -6
  210. package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
  211. package/dist/components/form/fields/allowed-values/choicePicture.d.ts +37 -0
  212. package/dist/components/form/fields/allowed-values/choicePicture.d.ts.map +1 -0
  213. package/dist/components/form/fields/allowed-values/choicePicture.js +64 -0
  214. package/dist/components/form/fields/allowed-values/choicePicture.js.map +1 -0
  215. package/dist/components/form/fields/array/ArrayAuto.d.ts.map +1 -1
  216. package/dist/components/form/fields/array/ArrayAuto.js +24 -0
  217. package/dist/components/form/fields/array/ArrayAuto.js.map +1 -1
  218. package/dist/components/form/fields/array/ArrayAutoField.d.ts.map +1 -1
  219. package/dist/components/form/fields/array/ArrayAutoField.js +36 -13
  220. package/dist/components/form/fields/array/ArrayAutoField.js.map +1 -1
  221. package/dist/components/form/fields/auto/AutoFormField.d.ts +30 -1
  222. package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
  223. package/dist/components/form/fields/auto/AutoFormField.js +119 -62
  224. package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
  225. package/dist/components/form/fields/auto/hostEditorValue.d.ts +30 -0
  226. package/dist/components/form/fields/auto/hostEditorValue.d.ts.map +1 -0
  227. package/dist/components/form/fields/auto/hostEditorValue.js +53 -0
  228. package/dist/components/form/fields/auto/hostEditorValue.js.map +1 -0
  229. package/dist/components/form/fields/binary/Binary.d.ts.map +1 -1
  230. package/dist/components/form/fields/binary/Binary.js +23 -3
  231. package/dist/components/form/fields/binary/Binary.js.map +1 -1
  232. package/dist/components/form/fields/boolean/Boolean.d.ts +5 -0
  233. package/dist/components/form/fields/boolean/Boolean.d.ts.map +1 -1
  234. package/dist/components/form/fields/boolean/Boolean.js +9 -1
  235. package/dist/components/form/fields/boolean/Boolean.js.map +1 -1
  236. package/dist/components/form/fields/color/Color.d.ts +103 -16
  237. package/dist/components/form/fields/color/Color.d.ts.map +1 -1
  238. package/dist/components/form/fields/color/Color.js +616 -16
  239. package/dist/components/form/fields/color/Color.js.map +1 -1
  240. package/dist/components/form/fields/emittedValues.d.ts +34 -3
  241. package/dist/components/form/fields/emittedValues.d.ts.map +1 -1
  242. package/dist/components/form/fields/emittedValues.js +24 -1
  243. package/dist/components/form/fields/emittedValues.js.map +1 -1
  244. package/dist/components/form/fields/file/File.d.ts +1 -1
  245. package/dist/components/form/fields/file/File.d.ts.map +1 -1
  246. package/dist/components/form/fields/file/File.js +4 -2
  247. package/dist/components/form/fields/file/File.js.map +1 -1
  248. package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
  249. package/dist/components/form/fields/long-string/LongString.js +29 -8
  250. package/dist/components/form/fields/long-string/LongString.js.map +1 -1
  251. package/dist/components/form/fields/markdown/MarkdownView.js +1 -1
  252. package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
  253. package/dist/components/form/fields/multi-select/MultiSelectFormField.js +13 -9
  254. package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
  255. package/dist/components/form/fields/number/Number.d.ts +6 -0
  256. package/dist/components/form/fields/number/Number.d.ts.map +1 -1
  257. package/dist/components/form/fields/number/Number.js +41 -6
  258. package/dist/components/form/fields/number/Number.js.map +1 -1
  259. package/dist/components/form/fields/object/Object.d.ts +1 -1
  260. package/dist/components/form/fields/object/Object.d.ts.map +1 -1
  261. package/dist/components/form/fields/object/Object.js +4 -2
  262. package/dist/components/form/fields/object/Object.js.map +1 -1
  263. package/dist/components/form/fields/pendingEdit.d.ts +52 -0
  264. package/dist/components/form/fields/pendingEdit.d.ts.map +1 -0
  265. package/dist/components/form/fields/pendingEdit.js +79 -0
  266. package/dist/components/form/fields/pendingEdit.js.map +1 -0
  267. package/dist/components/form/fields/radio-group/RadioGroup.d.ts.map +1 -1
  268. package/dist/components/form/fields/radio-group/RadioGroup.js +4 -3
  269. package/dist/components/form/fields/radio-group/RadioGroup.js.map +1 -1
  270. package/dist/components/form/fields/rich-text/RichText.d.ts +20 -1
  271. package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
  272. package/dist/components/form/fields/rich-text/RichText.js +382 -91
  273. package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
  274. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts +18 -0
  275. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts.map +1 -0
  276. package/dist/components/form/fields/rich-text/useTemplateTags.js +80 -0
  277. package/dist/components/form/fields/rich-text/useTemplateTags.js.map +1 -0
  278. package/dist/components/form/fields/schema-definition/CatalogLeafForm.d.ts.map +1 -1
  279. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js +4 -1
  280. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js.map +1 -1
  281. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.d.ts.map +1 -1
  282. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js +20 -5
  283. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js.map +1 -1
  284. package/dist/components/form/fields/schema-definition/TableEditor.d.ts.map +1 -1
  285. package/dist/components/form/fields/schema-definition/TableEditor.js +10 -2
  286. package/dist/components/form/fields/schema-definition/TableEditor.js.map +1 -1
  287. package/dist/components/form/fields/schema-definition/index.d.ts.map +1 -1
  288. package/dist/components/form/fields/schema-definition/index.js +8 -4
  289. package/dist/components/form/fields/schema-definition/index.js.map +1 -1
  290. package/dist/components/form/fields/select/Select.d.ts +10 -1
  291. package/dist/components/form/fields/select/Select.d.ts.map +1 -1
  292. package/dist/components/form/fields/select/Select.js +28 -14
  293. package/dist/components/form/fields/select/Select.js.map +1 -1
  294. package/dist/components/form/fields/select/SelectCollection.d.ts +5 -0
  295. package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
  296. package/dist/components/form/fields/select/SelectCollection.js +25 -12
  297. package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
  298. package/dist/components/form/fields/select/unavailableRow.d.ts +23 -0
  299. package/dist/components/form/fields/select/unavailableRow.d.ts.map +1 -0
  300. package/dist/components/form/fields/select/unavailableRow.js +55 -0
  301. package/dist/components/form/fields/select/unavailableRow.js.map +1 -0
  302. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +11 -5
  303. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
  304. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +21 -5
  305. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
  306. package/dist/components/form/fields/template/TemplateBrowser.d.ts +16 -0
  307. package/dist/components/form/fields/template/TemplateBrowser.d.ts.map +1 -0
  308. package/dist/components/form/fields/template/TemplateBrowser.js +89 -0
  309. package/dist/components/form/fields/template/TemplateBrowser.js.map +1 -0
  310. package/dist/components/form/fields/template/TemplateField.d.ts +105 -1
  311. package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
  312. package/dist/components/form/fields/template/TemplateField.js +678 -107
  313. package/dist/components/form/fields/template/TemplateField.js.map +1 -1
  314. package/dist/components/form/fields/template/TemplatePicker.d.ts +54 -0
  315. package/dist/components/form/fields/template/TemplatePicker.d.ts.map +1 -0
  316. package/dist/components/form/fields/template/TemplatePicker.js +451 -0
  317. package/dist/components/form/fields/template/TemplatePicker.js.map +1 -0
  318. package/dist/components/form/fields/template/TemplateText.d.ts +0 -17
  319. package/dist/components/form/fields/template/TemplateText.d.ts.map +1 -1
  320. package/dist/components/form/fields/template/TemplateText.js +22 -16
  321. package/dist/components/form/fields/template/TemplateText.js.map +1 -1
  322. package/dist/components/form/fields/template/referenceNames.d.ts +63 -0
  323. package/dist/components/form/fields/template/referenceNames.d.ts.map +1 -0
  324. package/dist/components/form/fields/template/referenceNames.js +69 -0
  325. package/dist/components/form/fields/template/referenceNames.js.map +1 -0
  326. package/dist/components/form/fields/template/writtenAsText.d.ts +61 -0
  327. package/dist/components/form/fields/template/writtenAsText.d.ts.map +1 -0
  328. package/dist/components/form/fields/template/writtenAsText.js +204 -0
  329. package/dist/components/form/fields/template/writtenAsText.js.map +1 -0
  330. package/dist/components/form/index.d.ts +12 -0
  331. package/dist/components/form/index.d.ts.map +1 -1
  332. package/dist/components/form/index.js +25 -1
  333. package/dist/components/form/index.js.map +1 -1
  334. package/dist/components/form/typeSentenceForm.d.ts +17 -0
  335. package/dist/components/form/typeSentenceForm.d.ts.map +1 -0
  336. package/dist/components/form/typeSentenceForm.js +54 -0
  337. package/dist/components/form/typeSentenceForm.js.map +1 -0
  338. package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -1
  339. package/dist/components/imageLightbox/ImageLightbox.js +19 -7
  340. package/dist/components/imageLightbox/ImageLightbox.js.map +1 -1
  341. package/dist/components/log/Log.d.ts.map +1 -1
  342. package/dist/components/log/Log.js +20 -8
  343. package/dist/components/log/Log.js.map +1 -1
  344. package/dist/components/menu/Menu.d.ts.map +1 -1
  345. package/dist/components/menu/Menu.js +19 -10
  346. package/dist/components/menu/Menu.js.map +1 -1
  347. package/dist/components/smartEditor/CompletionMenu.d.ts +53 -0
  348. package/dist/components/smartEditor/CompletionMenu.d.ts.map +1 -0
  349. package/dist/components/smartEditor/CompletionMenu.js +302 -0
  350. package/dist/components/smartEditor/CompletionMenu.js.map +1 -0
  351. package/dist/components/smartEditor/MarkdownDoc.d.ts +1 -1
  352. package/dist/components/smartEditor/MarkdownDoc.js +3 -3
  353. package/dist/components/smartEditor/MarkdownDoc.js.map +1 -1
  354. package/dist/components/smartEditor/SmartEditor.d.ts.map +1 -1
  355. package/dist/components/smartEditor/SmartEditor.js +584 -190
  356. package/dist/components/smartEditor/SmartEditor.js.map +1 -1
  357. package/dist/components/smartEditor/completionStyle.d.ts +28 -0
  358. package/dist/components/smartEditor/completionStyle.d.ts.map +1 -0
  359. package/dist/components/smartEditor/completionStyle.js +79 -0
  360. package/dist/components/smartEditor/completionStyle.js.map +1 -0
  361. package/dist/components/smartEditor/contextTitle.d.ts +10 -0
  362. package/dist/components/smartEditor/contextTitle.d.ts.map +1 -0
  363. package/dist/components/smartEditor/contextTitle.js +21 -0
  364. package/dist/components/smartEditor/contextTitle.js.map +1 -0
  365. package/dist/components/smartEditor/editingAids.d.ts +64 -0
  366. package/dist/components/smartEditor/editingAids.d.ts.map +1 -0
  367. package/dist/components/smartEditor/editingAids.js +213 -0
  368. package/dist/components/smartEditor/editingAids.js.map +1 -0
  369. package/dist/components/smartEditor/index.d.ts +6 -1
  370. package/dist/components/smartEditor/index.d.ts.map +1 -1
  371. package/dist/components/smartEditor/index.js +19 -1
  372. package/dist/components/smartEditor/index.js.map +1 -1
  373. package/dist/components/smartEditor/templateCompletions.d.ts +98 -0
  374. package/dist/components/smartEditor/templateCompletions.d.ts.map +1 -0
  375. package/dist/components/smartEditor/templateCompletions.js +380 -0
  376. package/dist/components/smartEditor/templateCompletions.js.map +1 -0
  377. package/dist/components/smartEditor/typedReferences.d.ts +34 -0
  378. package/dist/components/smartEditor/typedReferences.d.ts.map +1 -0
  379. package/dist/components/smartEditor/typedReferences.js +179 -0
  380. package/dist/components/smartEditor/typedReferences.js.map +1 -0
  381. package/dist/components/smartEditor/types.d.ts +116 -2
  382. package/dist/components/smartEditor/types.d.ts.map +1 -1
  383. package/dist/components/smartEditor/useEditingAids.d.ts +38 -0
  384. package/dist/components/smartEditor/useEditingAids.d.ts.map +1 -0
  385. package/dist/components/smartEditor/useEditingAids.js +336 -0
  386. package/dist/components/smartEditor/useEditingAids.js.map +1 -0
  387. package/dist/components/smartEditor/useLspAutocomplete.d.ts +106 -3
  388. package/dist/components/smartEditor/useLspAutocomplete.d.ts.map +1 -1
  389. package/dist/components/smartEditor/useLspAutocomplete.js +562 -151
  390. package/dist/components/smartEditor/useLspAutocomplete.js.map +1 -1
  391. package/dist/components/smartEditor/useLspHover.d.ts +33 -7
  392. package/dist/components/smartEditor/useLspHover.d.ts.map +1 -1
  393. package/dist/components/smartEditor/useLspHover.js +364 -35
  394. package/dist/components/smartEditor/useLspHover.js.map +1 -1
  395. package/dist/components/smartEditor/useLspSemanticTokens.js +1 -1
  396. package/dist/components/smartEditor/useLspSemanticTokens.js.map +1 -1
  397. package/dist/components/smartEditor/useLspSession.d.ts +6 -0
  398. package/dist/components/smartEditor/useLspSession.d.ts.map +1 -1
  399. package/dist/components/smartEditor/useLspSession.js +7 -6
  400. package/dist/components/smartEditor/useLspSession.js.map +1 -1
  401. package/dist/components/smartEditor/useLspSignatureHelp.d.ts.map +1 -1
  402. package/dist/components/smartEditor/useLspSignatureHelp.js +6 -11
  403. package/dist/components/smartEditor/useLspSignatureHelp.js.map +1 -1
  404. package/dist/components/smartEditor/useTabCameIn.d.ts +10 -0
  405. package/dist/components/smartEditor/useTabCameIn.d.ts.map +1 -0
  406. package/dist/components/smartEditor/useTabCameIn.js +42 -0
  407. package/dist/components/smartEditor/useTabCameIn.js.map +1 -0
  408. package/dist/components/supportTicket/AttachmentChips.d.ts.map +1 -1
  409. package/dist/components/supportTicket/AttachmentChips.js +15 -5
  410. package/dist/components/supportTicket/AttachmentChips.js.map +1 -1
  411. package/dist/components/supportTicket/ReferencePicker.d.ts +9 -2
  412. package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
  413. package/dist/components/supportTicket/ReferencePicker.js +27 -6
  414. package/dist/components/supportTicket/ReferencePicker.js.map +1 -1
  415. package/dist/components/supportTicket/TicketHeader.d.ts +3 -4
  416. package/dist/components/supportTicket/TicketHeader.d.ts.map +1 -1
  417. package/dist/components/supportTicket/TicketHeader.js +20 -2
  418. package/dist/components/supportTicket/TicketHeader.js.map +1 -1
  419. package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
  420. package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
  421. package/dist/components/ticketReferences/TicketReferences.js +9 -4
  422. package/dist/components/ticketReferences/TicketReferences.js.map +1 -1
  423. package/dist/components/ticketThread/TicketThread.d.ts.map +1 -1
  424. package/dist/components/ticketThread/TicketThread.js +38 -13
  425. package/dist/components/ticketThread/TicketThread.js.map +1 -1
  426. package/dist/helpers/allowedValues.d.ts +21 -0
  427. package/dist/helpers/allowedValues.d.ts.map +1 -1
  428. package/dist/helpers/allowedValues.js +40 -1
  429. package/dist/helpers/allowedValues.js.map +1 -1
  430. package/dist/helpers/descriptionTooltip.d.ts +46 -0
  431. package/dist/helpers/descriptionTooltip.d.ts.map +1 -0
  432. package/dist/helpers/descriptionTooltip.js +76 -0
  433. package/dist/helpers/descriptionTooltip.js.map +1 -0
  434. package/dist/helpers/domProps.d.ts +5 -0
  435. package/dist/helpers/domProps.d.ts.map +1 -0
  436. package/dist/helpers/domProps.js +47 -0
  437. package/dist/helpers/domProps.js.map +1 -0
  438. package/dist/helpers/expressions.d.ts +115 -4
  439. package/dist/helpers/expressions.d.ts.map +1 -1
  440. package/dist/helpers/expressions.js +247 -29
  441. package/dist/helpers/expressions.js.map +1 -1
  442. package/dist/helpers/hoveringPointer.d.ts +26 -0
  443. package/dist/helpers/hoveringPointer.d.ts.map +1 -0
  444. package/dist/helpers/hoveringPointer.js +29 -0
  445. package/dist/helpers/hoveringPointer.js.map +1 -0
  446. package/dist/helpers/markdownText.d.ts +14 -0
  447. package/dist/helpers/markdownText.d.ts.map +1 -0
  448. package/dist/helpers/markdownText.js +160 -0
  449. package/dist/helpers/markdownText.js.map +1 -0
  450. package/dist/helpers/noDescription.d.ts +9 -0
  451. package/dist/helpers/noDescription.d.ts.map +1 -0
  452. package/dist/helpers/noDescription.js +13 -0
  453. package/dist/helpers/noDescription.js.map +1 -0
  454. package/dist/helpers/optionUiTypes.d.ts +2 -2
  455. package/dist/helpers/qorusTypeCatalogue.d.ts +147 -0
  456. package/dist/helpers/qorusTypeCatalogue.d.ts.map +1 -0
  457. package/dist/helpers/qorusTypeCatalogue.js +505 -0
  458. package/dist/helpers/qorusTypeCatalogue.js.map +1 -0
  459. package/dist/helpers/readableColors.d.ts +36 -0
  460. package/dist/helpers/readableColors.d.ts.map +1 -0
  461. package/dist/helpers/readableColors.js +116 -0
  462. package/dist/helpers/readableColors.js.map +1 -0
  463. package/dist/helpers/recordFieldReference.d.ts +15 -0
  464. package/dist/helpers/recordFieldReference.d.ts.map +1 -0
  465. package/dist/helpers/recordFieldReference.js +89 -0
  466. package/dist/helpers/recordFieldReference.js.map +1 -0
  467. package/dist/helpers/templateCatalogue.d.ts +104 -0
  468. package/dist/helpers/templateCatalogue.d.ts.map +1 -0
  469. package/dist/helpers/templateCatalogue.js +116 -0
  470. package/dist/helpers/templateCatalogue.js.map +1 -0
  471. package/dist/helpers/templateCatalogueContext.d.ts +19 -0
  472. package/dist/helpers/templateCatalogueContext.d.ts.map +1 -0
  473. package/dist/helpers/templateCatalogueContext.js +31 -0
  474. package/dist/helpers/templateCatalogueContext.js.map +1 -0
  475. package/dist/helpers/templateItems.d.ts +2 -2
  476. package/dist/helpers/templateItems.d.ts.map +1 -1
  477. package/dist/helpers/templateItems.js +6 -4
  478. package/dist/helpers/templateItems.js.map +1 -1
  479. package/dist/helpers/templateText.d.ts +1 -0
  480. package/dist/helpers/templateText.d.ts.map +1 -1
  481. package/dist/helpers/templateText.js +7 -3
  482. package/dist/helpers/templateText.js.map +1 -1
  483. package/dist/helpers/templateTree.d.ts +248 -0
  484. package/dist/helpers/templateTree.d.ts.map +1 -0
  485. package/dist/helpers/templateTree.js +892 -0
  486. package/dist/helpers/templateTree.js.map +1 -0
  487. package/dist/helpers/templateType.d.ts +28 -0
  488. package/dist/helpers/templateType.d.ts.map +1 -0
  489. package/dist/helpers/templateType.js +30 -0
  490. package/dist/helpers/templateType.js.map +1 -0
  491. package/dist/helpers/templates.d.ts +86 -16
  492. package/dist/helpers/templates.d.ts.map +1 -1
  493. package/dist/helpers/templates.js +305 -45
  494. package/dist/helpers/templates.js.map +1 -1
  495. package/dist/helpers/validations.d.ts +27 -0
  496. package/dist/helpers/validations.d.ts.map +1 -1
  497. package/dist/helpers/validations.js +169 -39
  498. package/dist/helpers/validations.js.map +1 -1
  499. package/dist/helpers/webLink.d.ts +8 -0
  500. package/dist/helpers/webLink.d.ts.map +1 -0
  501. package/dist/helpers/webLink.js +29 -0
  502. package/dist/helpers/webLink.js.map +1 -0
  503. package/dist/hooks/useQorusTypes.d.ts +12 -17
  504. package/dist/hooks/useQorusTypes.d.ts.map +1 -1
  505. package/dist/hooks/useQorusTypes.js +44 -172
  506. package/dist/hooks/useQorusTypes.js.map +1 -1
  507. package/dist/hooks/useReadableIntentShade.d.ts +9 -0
  508. package/dist/hooks/useReadableIntentShade.d.ts.map +1 -0
  509. package/dist/hooks/useReadableIntentShade.js +23 -0
  510. package/dist/hooks/useReadableIntentShade.js.map +1 -0
  511. package/dist/hooks/useReadableOpacity.d.ts +6 -0
  512. package/dist/hooks/useReadableOpacity.d.ts.map +1 -0
  513. package/dist/hooks/useReadableOpacity.js +17 -0
  514. package/dist/hooks/useReadableOpacity.js.map +1 -0
  515. package/dist/index.d.ts +8 -0
  516. package/dist/index.d.ts.map +1 -1
  517. package/dist/index.js +24 -1
  518. package/dist/index.js.map +1 -1
  519. package/dist/tracking/ui/ExperimentCard.d.ts +1 -1
  520. package/dist/tracking/ui/ExperimentCard.d.ts.map +1 -1
  521. package/dist/tracking/ui/ExperimentCard.js +26 -10
  522. package/dist/tracking/ui/ExperimentCard.js.map +1 -1
  523. package/dist/tracking/ui/card.d.ts +2 -2
  524. package/dist/tracking/ui/card.d.ts.map +1 -1
  525. package/dist/tracking/ui/card.js +2 -2
  526. package/dist/tracking/ui/card.js.map +1 -1
  527. package/dist/tracking/ui/readable.d.ts +14 -0
  528. package/dist/tracking/ui/readable.d.ts.map +1 -0
  529. package/dist/tracking/ui/readable.js +60 -0
  530. package/dist/tracking/ui/readable.js.map +1 -0
  531. package/dist/utils/fetch.d.ts +9 -2
  532. package/dist/utils/fetch.d.ts.map +1 -1
  533. package/dist/utils/fetch.js +6 -5
  534. package/dist/utils/fetch.js.map +1 -1
  535. package/dist/utils/lspClient.types.d.ts +2 -0
  536. package/dist/utils/lspClient.types.d.ts.map +1 -1
  537. package/dist/utils/websocket.d.ts +65 -2
  538. package/dist/utils/websocket.d.ts.map +1 -1
  539. package/dist/utils/websocket.js +276 -44
  540. package/dist/utils/websocket.js.map +1 -1
  541. package/package.json +14 -6
  542. package/.claude/CLAUDE.md +0 -317
  543. package/.tasks/EXPORT_EXPRESSION_BUILDER.md +0 -38
  544. package/.tasks/EXPRESSION_BUILDER_REPORT.md +0 -149
  545. package/.tasks/EXPRESSION_FIELD_SEAMS.md +0 -66
  546. package/.tasks/FIELD_STACK_REPORT.md +0 -234
  547. package/.tasks/FORM_ENGINE_COMPACT_READ_FIRST.md +0 -558
  548. package/.tasks/FORM_ENGINE_EXPRESSIONS.md +0 -197
  549. package/.tasks/FORM_ENGINE_OPTIONS_SYNC.md +0 -95
  550. package/.tasks/FORM_FIELD_EXTRAS.md +0 -72
  551. package/.tasks/INDEX.md +0 -111
  552. package/.tasks/LSP_SHARED_CONNECTION.md +0 -75
  553. package/.tasks/QONSOLE_ASSIST_FEATURES.md +0 -306
  554. package/.tasks/RENDER_EXPRESSION_LSP.md +0 -159
  555. package/.tasks/REQRAFT_AUTO_FIELD.md +0 -176
  556. package/.tasks/SCHEMA_DEFINITION_FIELD.md +0 -250
  557. package/.tasks/SMART_EDITOR_CONTEXT_AND_POLISH.md +0 -340
  558. package/.tasks/SMART_EDITOR_LSP_FEATURES.md +0 -299
  559. package/.tasks/SMART_EDITOR_REVIEW_FOLLOWUPS.md +0 -280
  560. package/.tasks/SMART_EDITOR_UX_POLISH.md +0 -383
  561. package/.tasks/SMART_EDITOR_VISUAL_POLISH.md +0 -246
  562. package/.tasks/STORY_NETWORK_ISOLATION.md +0 -98
  563. package/.tasks/TEMPLATE_TOKEN_GRAMMAR.md +0 -72
  564. package/CODE_OF_CONDUCT.md +0 -105
  565. package/CONTRIBUTING.MD +0 -78
  566. package/SECURITY.md +0 -3
  567. package/chromatic.config.json +0 -5
  568. package/design/COMPACT_ENGINE_REDESIGN.md +0 -156
  569. package/design/COMPACT_INFO_DISPLAY.md +0 -87
  570. package/design/COMPACT_PARITY.md +0 -85
  571. package/design/EXPRESSION_BUILDER_REPORT_STRATEGY.md +0 -92
  572. package/design/FORM_ENGINE_COMPACT.md +0 -300
  573. package/design/FORM_ENGINE_COMPACT_UX_PLAN.md +0 -353
  574. package/design/FORM_ENGINE_EXPRESSIONS.md +0 -257
  575. package/design/FORM_ENGINE_FIELD_MIGRATION.md +0 -419
  576. package/design/IDE_INTEGRATION.md +0 -64
  577. package/design/RENDER_EXPRESSION_TRANSPORT.md +0 -156
  578. package/design/SELECT_DIALOG_FLOOR.md +0 -86
  579. package/design/SMART_EDITOR_UX.md +0 -438
  580. package/design/TRACKING.md +0 -290
  581. package/design/UNAVAILABLE_ALLOWED_VALUES.md +0 -226
  582. package/src/components/Description/index.tsx +0 -254
  583. package/src/components/Description/markdownRendererContext.tsx +0 -29
  584. package/src/components/FocusedEditing/index.tsx +0 -50
  585. package/src/components/codeSize/index.tsx +0 -79
  586. package/src/components/composer/Composer.stories.tsx +0 -238
  587. package/src/components/composer/Composer.tsx +0 -554
  588. package/src/components/composer/helpers.ts +0 -74
  589. package/src/components/composer/index.ts +0 -2
  590. package/src/components/dpqlEditor/DpqlEditor.stories.tsx +0 -1183
  591. package/src/components/dpqlEditor/DpqlEditor.tsx +0 -219
  592. package/src/components/dpqlEditor/dpqlHelpers.ts +0 -287
  593. package/src/components/dpqlEditor/dpqlInserter.ts +0 -121
  594. package/src/components/dpqlEditor/dpqlProbe.ts +0 -165
  595. package/src/components/dpqlEditor/dpqlTags.ts +0 -114
  596. package/src/components/dpqlEditor/index.ts +0 -41
  597. package/src/components/dpqlEditor/types.ts +0 -203
  598. package/src/components/dpqlEditor/useDpqlProbe.ts +0 -33
  599. package/src/components/dpqlEditor/useDpqlSession.ts +0 -411
  600. package/src/components/form/engine/CompactRow.tsx +0 -2620
  601. package/src/components/form/engine/CompactToolbar.tsx +0 -330
  602. package/src/components/form/engine/FormEngine.stories.tsx +0 -9920
  603. package/src/components/form/engine/FormEngine.tsx +0 -4569
  604. package/src/components/form/engine/FormEngineRemote.stories.tsx +0 -679
  605. package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +0 -331
  606. package/src/components/form/engine/FormFieldsSkeleton.tsx +0 -82
  607. package/src/components/form/engine/OptionFieldMessages.tsx +0 -477
  608. package/src/components/form/engine/OptionsHelpDialog.tsx +0 -29
  609. package/src/components/form/engine/__fixtures__/basicFormOptions.ts +0 -309
  610. package/src/components/form/engine/__fixtures__/fieldChromeOptions.ts +0 -45
  611. package/src/components/form/engine/_structuredData/SchemaDataView.stories.tsx +0 -233
  612. package/src/components/form/engine/_structuredData/SchemaDataView.tsx +0 -742
  613. package/src/components/form/engine/_structuredData/StructuredDataView.stories.tsx +0 -85
  614. package/src/components/form/engine/_structuredData/StructuredDataView.tsx +0 -75
  615. package/src/components/form/engine/_structuredData/structuredData.ts +0 -145
  616. package/src/components/form/engine/compactRowContext.ts +0 -148
  617. package/src/components/form/engine/compactRowStyles.ts +0 -898
  618. package/src/components/form/engine/compactToolbarContext.ts +0 -69
  619. package/src/components/form/engine/optionActions.ts +0 -128
  620. package/src/components/form/engine/optionsContext.ts +0 -24
  621. package/src/components/form/engine/readFirst.ts +0 -1077
  622. package/src/components/form/engine/rendererTypes.ts +0 -107
  623. package/src/components/form/engine/revealRow.ts +0 -123
  624. package/src/components/form/engine/rowFocus.ts +0 -101
  625. package/src/components/form/engine/rowMenuContext.ts +0 -159
  626. package/src/components/form/engine/rowOpenPicker.ts +0 -27
  627. package/src/components/form/engine/typeChoices.ts +0 -63
  628. package/src/components/form/engine/variants/FormEngineVariants.stories.tsx +0 -159
  629. package/src/components/form/engine/variants/VariantCalmTable.tsx +0 -244
  630. package/src/components/form/engine/variants/VariantCards.tsx +0 -212
  631. package/src/components/form/engine/variants/VariantFocus.tsx +0 -382
  632. package/src/components/form/engine/variants/VariantMinimal.tsx +0 -170
  633. package/src/components/form/engine/variants/focusDemo.ts +0 -145
  634. package/src/components/form/engine/variants/variantModel.ts +0 -223
  635. package/src/components/form/engine/variants/variantParts.tsx +0 -313
  636. package/src/components/form/expressions/DpqlRendering.tsx +0 -85
  637. package/src/components/form/expressions/ExpressionField.stories.tsx +0 -1395
  638. package/src/components/form/expressions/ExpressionField.tsx +0 -503
  639. package/src/components/form/expressions/argumentPresence.ts +0 -213
  640. package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +0 -1683
  641. package/src/components/form/expressions/builder/argumentDetail.tsx +0 -17
  642. package/src/components/form/expressions/builder/argumentLabel.tsx +0 -146
  643. package/src/components/form/expressions/builder/argumentSlot.tsx +0 -101
  644. package/src/components/form/expressions/builder/argumentWrapper.tsx +0 -243
  645. package/src/components/form/expressions/builder/confirmMismatchedTypesModal.tsx +0 -120
  646. package/src/components/form/expressions/builder/confirmUnsupportedTypeModal.tsx +0 -69
  647. package/src/components/form/expressions/builder/index.tsx +0 -1545
  648. package/src/components/form/expressions/builder/item.tsx +0 -89
  649. package/src/components/form/expressions/builder/moveToPositionStrip.tsx +0 -156
  650. package/src/components/form/expressions/builder/renderTemplate.tsx +0 -42
  651. package/src/components/form/expressions/dpqlMockLanguage.ts +0 -566
  652. package/src/components/form/expressions/dpqlMockLsp.ts +0 -126
  653. package/src/components/form/expressions/mockExpressions.ts +0 -317
  654. package/src/components/form/expressions/renderExpressionToText.ts +0 -137
  655. package/src/components/form/expressions/types.ts +0 -110
  656. package/src/components/form/expressions/useExpressions.ts +0 -101
  657. package/src/components/form/expressions/useRenderExpression.ts +0 -165
  658. package/src/components/form/fields/Field.stories.tsx +0 -143
  659. package/src/components/form/fields/Field.tsx +0 -732
  660. package/src/components/form/fields/allowed-values/AllowedValues.tsx +0 -297
  661. package/src/components/form/fields/array/ArrayAuto.tsx +0 -237
  662. package/src/components/form/fields/array/ArrayAutoField.stories.tsx +0 -475
  663. package/src/components/form/fields/array/ArrayAutoField.tsx +0 -367
  664. package/src/components/form/fields/auto/AutoFormField.stories.tsx +0 -825
  665. package/src/components/form/fields/auto/AutoFormField.tsx +0 -1164
  666. package/src/components/form/fields/binary/Binary.stories.tsx +0 -122
  667. package/src/components/form/fields/binary/Binary.tsx +0 -91
  668. package/src/components/form/fields/boolean/Boolean.stories.tsx +0 -125
  669. package/src/components/form/fields/boolean/Boolean.tsx +0 -34
  670. package/src/components/form/fields/byte-size/ByteSize.stories.tsx +0 -87
  671. package/src/components/form/fields/byte-size/ByteSize.tsx +0 -58
  672. package/src/components/form/fields/color/Color.stories.tsx +0 -99
  673. package/src/components/form/fields/color/Color.tsx +0 -46
  674. package/src/components/form/fields/cron/Cron.stories.tsx +0 -68
  675. package/src/components/form/fields/cron/Cron.tsx +0 -80
  676. package/src/components/form/fields/date/Date.stories.tsx +0 -77
  677. package/src/components/form/fields/date/Date.tsx +0 -55
  678. package/src/components/form/fields/emittedValues.ts +0 -70
  679. package/src/components/form/fields/file/File.stories.tsx +0 -161
  680. package/src/components/form/fields/file/File.tsx +0 -227
  681. package/src/components/form/fields/long-string/LongString.stories.tsx +0 -120
  682. package/src/components/form/fields/long-string/LongString.tsx +0 -130
  683. package/src/components/form/fields/markdown/Markdown.stories.tsx +0 -76
  684. package/src/components/form/fields/markdown/Markdown.tsx +0 -81
  685. package/src/components/form/fields/markdown/MarkdownView.tsx +0 -222
  686. package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +0 -139
  687. package/src/components/form/fields/number/Number.stories.tsx +0 -159
  688. package/src/components/form/fields/number/Number.tsx +0 -160
  689. package/src/components/form/fields/object/Object.stories.tsx +0 -398
  690. package/src/components/form/fields/object/Object.tsx +0 -255
  691. package/src/components/form/fields/radio-group/RadioGroup.stories.tsx +0 -95
  692. package/src/components/form/fields/radio-group/RadioGroup.tsx +0 -46
  693. package/src/components/form/fields/radio-group/images/java-96x128.png +0 -0
  694. package/src/components/form/fields/radio-group/images/python-129x128.png +0 -0
  695. package/src/components/form/fields/radio-group/images/qore-106x128.png +0 -0
  696. package/src/components/form/fields/rich-text/RichText.stories.tsx +0 -260
  697. package/src/components/form/fields/rich-text/RichText.tsx +0 -537
  698. package/src/components/form/fields/schema-definition/CatalogLeafForm.tsx +0 -242
  699. package/src/components/form/fields/schema-definition/CatalogNodeEditor.tsx +0 -758
  700. package/src/components/form/fields/schema-definition/Hint.tsx +0 -22
  701. package/src/components/form/fields/schema-definition/InlineValidationBanner.tsx +0 -138
  702. package/src/components/form/fields/schema-definition/Loader.tsx +0 -20
  703. package/src/components/form/fields/schema-definition/MigrationsTab.tsx +0 -187
  704. package/src/components/form/fields/schema-definition/SchemaDefinitionField.stories.tsx +0 -286
  705. package/src/components/form/fields/schema-definition/TableEditor.tsx +0 -155
  706. package/src/components/form/fields/schema-definition/TablesTab.tsx +0 -138
  707. package/src/components/form/fields/schema-definition/catalog.ts +0 -237
  708. package/src/components/form/fields/schema-definition/helpers.ts +0 -90
  709. package/src/components/form/fields/schema-definition/index.tsx +0 -418
  710. package/src/components/form/fields/schema-definition/mockCatalog.ts +0 -325
  711. package/src/components/form/fields/schema-definition/mockDefinition.ts +0 -111
  712. package/src/components/form/fields/schema-definition/referenceSuggestions.tsx +0 -152
  713. package/src/components/form/fields/schema-definition/starterTemplate.ts +0 -68
  714. package/src/components/form/fields/schema-definition/types.ts +0 -185
  715. package/src/components/form/fields/schema-definition/useSchemaOptionCatalog.ts +0 -49
  716. package/src/components/form/fields/select/Select.stories.tsx +0 -872
  717. package/src/components/form/fields/select/Select.tsx +0 -624
  718. package/src/components/form/fields/select/SelectCollection.tsx +0 -594
  719. package/src/components/form/fields/string/String.stories.tsx +0 -86
  720. package/src/components/form/fields/string/String.tsx +0 -43
  721. package/src/components/form/fields/template/ExampleValueModal.stories.tsx +0 -114
  722. package/src/components/form/fields/template/ExampleValueModal.tsx +0 -99
  723. package/src/components/form/fields/template/ReadOnlyTemplateTag.tsx +0 -47
  724. package/src/components/form/fields/template/TemplateField.stories.tsx +0 -1121
  725. package/src/components/form/fields/template/TemplateField.tsx +0 -1717
  726. package/src/components/form/fields/template/TemplateText.tsx +0 -115
  727. package/src/components/form/fields/template/__fixtures__/longExampleValue.ts +0 -7
  728. package/src/components/form/fields/template/__fixtures__/multiLevelTemplates.json +0 -147
  729. package/src/components/form/fields/template/__fixtures__/templates.json +0 -83
  730. package/src/components/form/fields/timeout/Timeout.stories.tsx +0 -228
  731. package/src/components/form/fields/timeout/Timeout.tsx +0 -87
  732. package/src/components/form/fields/url/Url.stories.tsx +0 -94
  733. package/src/components/form/fields/url/Url.tsx +0 -85
  734. package/src/components/form/index.tsx +0 -47
  735. package/src/components/imageLightbox/ImageLightbox.stories.tsx +0 -238
  736. package/src/components/imageLightbox/ImageLightbox.tsx +0 -236
  737. package/src/components/imageLightbox/index.ts +0 -1
  738. package/src/components/log/Log.stories.tsx +0 -333
  739. package/src/components/log/Log.tsx +0 -285
  740. package/src/components/menu/Menu.stories.tsx +0 -155
  741. package/src/components/menu/Menu.tsx +0 -312
  742. package/src/components/qonsoleSmartInput/QonsoleSmartInput.stories.tsx +0 -797
  743. package/src/components/qonsoleSmartInput/QonsoleSmartInput.tsx +0 -105
  744. package/src/components/qonsoleSmartInput/index.ts +0 -16
  745. package/src/components/qonsoleSmartInput/qonsoleInserter.ts +0 -77
  746. package/src/components/qonsoleSmartInput/types.ts +0 -133
  747. package/src/components/qonsoleSmartInput/useQonsoleSession.ts +0 -124
  748. package/src/components/searchFilterBar/SearchFilterBar.stories.tsx +0 -62
  749. package/src/components/searchFilterBar/SearchFilterBar.tsx +0 -144
  750. package/src/components/searchFilterBar/index.ts +0 -1
  751. package/src/components/smartEditor/MarkdownDoc.tsx +0 -190
  752. package/src/components/smartEditor/SmartEditor.stories.tsx +0 -475
  753. package/src/components/smartEditor/SmartEditor.tsx +0 -808
  754. package/src/components/smartEditor/__fixtures__/mockLspServer.ts +0 -205
  755. package/src/components/smartEditor/helpers.ts +0 -217
  756. package/src/components/smartEditor/index.ts +0 -35
  757. package/src/components/smartEditor/styling.ts +0 -45
  758. package/src/components/smartEditor/types.ts +0 -211
  759. package/src/components/smartEditor/useLspAutocomplete.ts +0 -758
  760. package/src/components/smartEditor/useLspDiagnosticDecorations.ts +0 -125
  761. package/src/components/smartEditor/useLspHover.ts +0 -230
  762. package/src/components/smartEditor/useLspSemanticTokens.ts +0 -298
  763. package/src/components/smartEditor/useLspSession.ts +0 -231
  764. package/src/components/smartEditor/useLspSignatureHelp.ts +0 -198
  765. package/src/components/supportTicket/AttachmentChips.stories.tsx +0 -171
  766. package/src/components/supportTicket/AttachmentChips.tsx +0 -147
  767. package/src/components/supportTicket/InterfaceReferenceTags.stories.tsx +0 -257
  768. package/src/components/supportTicket/InterfaceReferenceTags.tsx +0 -129
  769. package/src/components/supportTicket/ReferencePicker.stories.tsx +0 -584
  770. package/src/components/supportTicket/ReferencePicker.tsx +0 -563
  771. package/src/components/supportTicket/TicketConversation.stories.tsx +0 -121
  772. package/src/components/supportTicket/TicketHeader.stories.tsx +0 -183
  773. package/src/components/supportTicket/TicketHeader.tsx +0 -247
  774. package/src/components/supportTicket/TicketMetaTags.stories.tsx +0 -103
  775. package/src/components/supportTicket/TicketMetaTags.tsx +0 -85
  776. package/src/components/supportTicket/TicketReplyBox.stories.tsx +0 -354
  777. package/src/components/supportTicket/TicketReplyBox.tsx +0 -150
  778. package/src/components/supportTicket/__fixtures__/kindMarks.ts +0 -28
  779. package/src/components/supportTicket/attachmentAccess.ts +0 -97
  780. package/src/components/supportTicket/fileToAttachment.ts +0 -24
  781. package/src/components/supportTicket/index.ts +0 -10
  782. package/src/components/supportTicket/meta.ts +0 -206
  783. package/src/components/supportTicket/ticketModel.ts +0 -131
  784. package/src/components/supportTicket/useLoadedImages.ts +0 -73
  785. package/src/components/ticketReferences/TicketReferences.stories.tsx +0 -315
  786. package/src/components/ticketReferences/TicketReferences.tsx +0 -906
  787. package/src/components/ticketReferences/index.ts +0 -2
  788. package/src/components/ticketThread/TicketThread.stories.tsx +0 -829
  789. package/src/components/ticketThread/TicketThread.tsx +0 -719
  790. package/src/components/ticketThread/index.ts +0 -6
  791. package/src/contexts/FetchContext.tsx +0 -25
  792. package/src/contexts/ReqraftContext.tsx +0 -9
  793. package/src/contexts/StorageContext.tsx +0 -33
  794. package/src/global.d.ts +0 -4
  795. package/src/helpers/allowedValues.ts +0 -249
  796. package/src/helpers/choiceChip.ts +0 -227
  797. package/src/helpers/common.ts +0 -326
  798. package/src/helpers/dpqlDetection.ts +0 -209
  799. package/src/helpers/expressions.ts +0 -140
  800. package/src/helpers/optionUiTypes.ts +0 -199
  801. package/src/helpers/options.ts +0 -150
  802. package/src/helpers/providerValue.ts +0 -125
  803. package/src/helpers/scrollbar.ts +0 -32
  804. package/src/helpers/singleLineString.ts +0 -61
  805. package/src/helpers/templateItems.ts +0 -81
  806. package/src/helpers/templateText.ts +0 -350
  807. package/src/helpers/templates.ts +0 -602
  808. package/src/helpers/validations.ts +0 -2085
  809. package/src/hooks/useArgSchema.ts +0 -37
  810. package/src/hooks/useCoarsePointer.ts +0 -30
  811. package/src/hooks/useFetch/useFetch.stories.tsx +0 -379
  812. package/src/hooks/useFetch/useFetch.tsx +0 -154
  813. package/src/hooks/usePhoneViewport.ts +0 -34
  814. package/src/hooks/useQorusTypes.ts +0 -233
  815. package/src/hooks/useReqraftProperty.ts +0 -16
  816. package/src/hooks/useStorage/useStorage.stories.tsx +0 -168
  817. package/src/hooks/useStorage/useStorage.ts +0 -35
  818. package/src/hooks/useTemplates.ts +0 -123
  819. package/src/hooks/useValidation.ts +0 -9
  820. package/src/hooks/useWebSocket/useWebSocket.ts +0 -224
  821. package/src/hooks/useWebSocket/useWebsocket.stories.tsx +0 -640
  822. package/src/hooks/useWhyDidYouUpdate.ts +0 -38
  823. package/src/index.tsx +0 -86
  824. package/src/providers/FetchProvider.tsx +0 -40
  825. package/src/providers/ReqraftProvider.tsx +0 -52
  826. package/src/providers/StorageProvider.tsx +0 -131
  827. package/src/stores/currentUser/currentUser.stories.tsx +0 -100
  828. package/src/stores/currentUser/currentUser.tsx +0 -94
  829. package/src/stories/Data/fileFieldArgSchema.json +0 -86
  830. package/src/stories/Tests/utils.ts +0 -320
  831. package/src/stories/storyNetwork.ts +0 -92
  832. package/src/stories/tracking.tsx +0 -206
  833. package/src/tracking/browser/attach.ts +0 -186
  834. package/src/tracking/browser/env.ts +0 -78
  835. package/src/tracking/core/consent.ts +0 -37
  836. package/src/tracking/core/engagement.ts +0 -47
  837. package/src/tracking/core/experiments.ts +0 -258
  838. package/src/tracking/core/hash.ts +0 -26
  839. package/src/tracking/core/ids.ts +0 -25
  840. package/src/tracking/core/observable.ts +0 -23
  841. package/src/tracking/core/queue.ts +0 -131
  842. package/src/tracking/core/sections.ts +0 -166
  843. package/src/tracking/core/storage.ts +0 -69
  844. package/src/tracking/core/tracker.ts +0 -417
  845. package/src/tracking/core/types.ts +0 -162
  846. package/src/tracking/core/utm.ts +0 -23
  847. package/src/tracking/index.ts +0 -72
  848. package/src/tracking/markup.ts +0 -17
  849. package/src/tracking/react/Experiment.tsx +0 -44
  850. package/src/tracking/react/TrackingProvider.tsx +0 -56
  851. package/src/tracking/react/hooks.ts +0 -106
  852. package/src/tracking/react/index.ts +0 -13
  853. package/src/tracking/testing.ts +0 -108
  854. package/src/tracking/ui/ExperimentCard.stories.tsx +0 -296
  855. package/src/tracking/ui/ExperimentCard.tsx +0 -667
  856. package/src/tracking/ui/ExperimentsOverlay.stories.tsx +0 -155
  857. package/src/tracking/ui/ExperimentsOverlay.tsx +0 -437
  858. package/src/tracking/ui/anchor.ts +0 -180
  859. package/src/tracking/ui/card.ts +0 -464
  860. package/src/tracking/ui/client.ts +0 -117
  861. package/src/tracking/ui/index.ts +0 -77
  862. package/src/tracking/ui/types.ts +0 -110
  863. package/src/tracking/ui/useExperimentsAdmin.ts +0 -103
  864. package/src/types/Form.ts +0 -29
  865. package/src/types.ts +0 -14
  866. package/src/utils/datetime.ts +0 -10
  867. package/src/utils/fetch.ts +0 -457
  868. package/src/utils/lspClient.ts +0 -711
  869. package/src/utils/lspClient.types.ts +0 -211
  870. package/src/utils/queryUnlessCancelled.ts +0 -28
  871. package/src/utils/websocket.ts +0 -293
  872. package/vite.config.ts +0 -58
  873. package/vitest.config.ts +0 -69
@@ -2,6 +2,7 @@ import { IReqorePanelAction } from '@qoretechnologies/reqore/dist/components/Pan
2
2
  import { IReqoreFormTemplates } from '@qoretechnologies/reqore/dist/components/Textarea';
3
3
  import { TQorusType } from '@qoretechnologies/ts-toolkit';
4
4
  import React from 'react';
5
+ import { IConditionPart } from '../../../../helpers/expressions';
5
6
  import { IExpression, IExpressionSchema, TExpressionReorder } from '../types';
6
7
  export interface IExpressionBuilderProps {
7
8
  localTemplates?: IReqoreFormTemplates;
@@ -12,6 +13,11 @@ export interface IExpressionBuilderProps {
12
13
  path?: string;
13
14
  index?: number;
14
15
  returnType?: TQorusType | TQorusType[];
16
+ /**
17
+ * The base data type of the place's type, which Qorus gives with every field (`base_type`): what a place of a
18
+ * type the type catalogue does not list takes (`qorusTypeEntry`).
19
+ */
20
+ returnBaseType?: string;
15
21
  group?: '&&' | '||';
16
22
  onChange?: (value: IExpression, remove?: boolean) => void;
17
23
  onValueChange?: (value: IExpression, path: string, remove?: boolean) => void;
@@ -22,6 +28,27 @@ export interface IExpressionBuilderProps {
22
28
  expressions?: IExpressionSchema[];
23
29
  expressionsUrl?: string;
24
30
  serverHandled?: boolean;
31
+ /**
32
+ * The expression is a condition: what it gives is read as true or false by its value, true unless it is
33
+ * zero or empty (a Qog transition's condition, an if state's, a while or for block's, a sheet contract's
34
+ * row rule). A value of type `bool` is not one: the Qorus server checks it as a bool, and an int does not
35
+ * fit it.
36
+ */
37
+ condition?: boolean;
38
+ /**
39
+ * What the server says of each part of the condition's `&&`, `||` and `!` (`dpql/parse` with `condition: true`,
40
+ * qorus#646), in its walk order: each is drawn on its part's card. Given to the builder at the top; it hands
41
+ * each card its own (`conditionPartCards`).
42
+ */
43
+ conditionParts?: IConditionPart[];
44
+ /** Each part's verdict, by the path of the card it is drawn on: what the top builder hands its cards. */
45
+ conditionPartCards?: Record<string, IConditionPart>;
46
+ /**
47
+ * What the server says of the whole condition (NOT_A_CONDITION or CONDITION_BY_TRUTHINESS), in its words: drawn
48
+ * under the condition's card in place of the builder's own fallback, as the Text view and the part cards draw
49
+ * the server's words. Given to the top builder only; it is about the whole.
50
+ */
51
+ conditionMessage?: string;
25
52
  /**
26
53
  * SEAM (reqraft): the host's per-`ui_type` editors, forwarded to the operand
27
54
  * fields below.
@@ -53,6 +80,11 @@ export interface IExpressionBuilderProps {
53
80
  }
54
81
  export interface IExpressionProps extends IExpressionBuilderProps {
55
82
  }
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;
83
+ export declare const Expression: ({ localTemplates, value, isChild, index, type, level, path, onValueChange, group, returnType, returnBaseType, readOnly, id, expressionsUrl, serverHandled, extraActions, componentOverrides, condition: isCondition, conditionPartCards: partCards, conditionMessage, ...props }: IExpressionProps) => import("react/jsx-runtime").JSX.Element;
84
+ /**
85
+ * What an expression, or a part of one, whose operation is not chosen yet says: what it lacks, as the Text view's
86
+ * holes do, and what its place takes where that is a type (qorus#646). `takes` names the type inside the sentence.
87
+ */
88
+ export declare const noOperationYetText: (part: boolean, takes: string | undefined) => string;
89
+ export declare const ExpressionBuilder: ({ localTemplates, value, isChild, level, index, path, type, returnType, returnBaseType, group, onChange, onValueChange, readOnly, expressions, expressionsUrl, serverHandled, extraActions, componentOverrides, reorder, condition, conditionParts, conditionPartCards: givenPartCards, conditionMessage, }: IExpressionBuilderProps) => import("react/jsx-runtime").JSX.Element;
58
90
  //# 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;AAG1D,OAAO,KAA4D,MAAM,OAAO,CAAC;AAyBjF,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,4CA+oClB,CAAC;AAEF,eAAO,MAAM,iBAAiB,+MAmB3B,uBAAuB,4CAwMzB,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;AAGjF,OAAO,EAWL,cAAc,EAGf,MAAM,iCAAiC,CAAC;AAoBzC,OAAO,EAEL,WAAW,EACX,iBAAiB,EAGjB,kBAAkB,EAEnB,MAAM,UAAU,CAAC;AAgBlB,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;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,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;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;IAClC,yGAAyG;IACzG,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACpD;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;;;;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,qRAsBpB,gBAAgB,4CAwwClB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,SAAU,OAAO,SAAS,MAAM,GAAG,SAAS,KAAG,MAGM,CAAC;AAErF,eAAO,MAAM,iBAAiB,gTAwB3B,uBAAuB,4CAkPzB,CAAC"}
@@ -61,7 +61,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
61
61
  return (mod && mod.__esModule) ? mod : { "default": mod };
62
62
  };
63
63
  Object.defineProperty(exports, "__esModule", { value: true });
64
- exports.ExpressionBuilder = exports.Expression = void 0;
64
+ exports.ExpressionBuilder = exports.noOperationYetText = exports.Expression = void 0;
65
65
  var jsx_runtime_1 = require("react/jsx-runtime");
66
66
  var reqore_1 = require("@qoretechnologies/reqore");
67
67
  var lodash_1 = require("lodash");
@@ -71,7 +71,10 @@ 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
73
  var argumentPresence_1 = require("../argumentPresence");
74
+ var fieldPath_1 = require("../fieldPath");
75
+ var optionUiTypes_1 = require("../../../../helpers/optionUiTypes");
74
76
  var templates_1 = require("../../../../helpers/templates");
77
+ var templateText_1 = require("../../../../helpers/templateText");
75
78
  var validations_1 = require("../../../../helpers/validations");
76
79
  var useQorusTypes_1 = require("../../../../hooks/useQorusTypes");
77
80
  var useStorage_1 = require("../../../../hooks/useStorage/useStorage");
@@ -80,8 +83,10 @@ var useCoarsePointer_1 = require("../../../../hooks/useCoarsePointer");
80
83
  var useTemplates_1 = require("../../../../hooks/useTemplates");
81
84
  var AutoFormField_1 = require("../../fields/auto/AutoFormField");
82
85
  var Select_1 = require("../../fields/select/Select");
86
+ var ReadOnlyTemplateTag_1 = require("../../fields/template/ReadOnlyTemplateTag");
83
87
  var TemplateField_1 = require("../../fields/template/TemplateField");
84
88
  var types_1 = require("../types");
89
+ var useExpressionType_1 = require("../useExpressionType");
85
90
  var useExpressions_1 = require("../useExpressions");
86
91
  var argumentDetail_1 = require("./argumentDetail");
87
92
  var argumentSlot_1 = require("./argumentSlot");
@@ -100,14 +105,14 @@ var noopUseRegisterHintView = function () {
100
105
  };
101
106
  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); });
102
107
  var Expression = function (_a) {
103
- var _b, _c, _d, _f, _g, _h, _j, _k, _l, _m, _o, _p;
104
- var localTemplates = _a.localTemplates, _q = _a.value, value = _q === void 0 ? types_1.ExpressionDefaultValue : _q, 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"]);
108
+ var _b, _c, _d, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
109
+ var localTemplates = _a.localTemplates, _u = _a.value, value = _u === void 0 ? types_1.ExpressionDefaultValue : _u, isChild = _a.isChild, index = _a.index, type = _a.type, level = _a.level, path = _a.path, onValueChange = _a.onValueChange, group = _a.group, returnType = _a.returnType, returnBaseType = _a.returnBaseType, readOnly = _a.readOnly, id = _a.id, expressionsUrl = _a.expressionsUrl, serverHandled = _a.serverHandled, extraActions = _a.extraActions, componentOverrides = _a.componentOverrides, isCondition = _a.condition, partCards = _a.conditionPartCards, conditionMessage = _a.conditionMessage, props = __rest(_a, ["localTemplates", "value", "isChild", "index", "type", "level", "path", "onValueChange", "group", "returnType", "returnBaseType", "readOnly", "id", "expressionsUrl", "serverHandled", "extraActions", "componentOverrides", "condition", "conditionPartCards", "conditionMessage"]);
105
110
  var coarsePointer = (0, useCoarsePointer_1.useCoarsePointer)();
106
111
  var types = (0, useQorusTypes_1.useQorusTypes)();
107
- var _r = (0, react_1.useState)(false), showSummary = _r[0], setShowSummary = _r[1];
108
- var _s = (0, react_1.useState)(undefined), confirmDialogData = _s[0], setConfirmDialogData = _s[1];
112
+ var _v = (0, react_1.useState)(false), showSummary = _v[0], setShowSummary = _v[1];
113
+ var _w = (0, react_1.useState)(undefined), confirmDialogData = _w[0], setConfirmDialogData = _w[1];
109
114
  var doNotShowTypeConfirmation = (0, useStorage_1.useReqraftStorage)('doNotShowTypeExpressionConfirmation', false, true)[0];
110
- var _t = ((_b = value.value) === null || _b === void 0 ? void 0 : _b.args) || [], firstArgument = _t[0], rest = _t.slice(1);
115
+ var _x = ((_b = value.value) === null || _b === void 0 ? void 0 : _b.args) || [], firstArgument = _x[0], rest = _x.slice(1);
111
116
  var _expressions = (0, useExpressions_1.useExpressions)({
112
117
  allow: true,
113
118
  expressionsUrl: expressionsUrl,
@@ -126,31 +131,26 @@ var Expression = function (_a) {
126
131
  ? extraActions({ selectedExpression: selectedExpression, value: value })
127
132
  : (extraActions !== null && extraActions !== void 0 ? extraActions : []);
128
133
  }, [extraActions, selectedExpression, JSON.stringify(value)]);
129
- // If the `return_type_first_arg` is set, we need to get the return type from the first arguments type
130
- var expressionReturnType = (0, react_1.useMemo)(function () {
131
- var _a, _b;
132
- if ((selectedExpression === null || selectedExpression === void 0 ? void 0 : selectedExpression.return_type_first_arg) && firstArgument) {
133
- if (firstArgument.is_expression && ((_a = firstArgument.value) === null || _a === void 0 ? void 0 : _a.exp)) {
134
- var firstArgExpression = (_b = expressions.value) === null || _b === void 0 ? void 0 : _b.find(function (exp) { return exp.name === firstArgument.value.exp; });
135
- return firstArgExpression === null || firstArgExpression === void 0 ? void 0 : firstArgExpression.ui_return_type;
136
- }
137
- return firstArgument.type;
138
- }
139
- return selectedExpression === null || selectedExpression === void 0 ? void 0 : selectedExpression.ui_return_type;
140
- }, [
141
- JSON.stringify(selectedExpression),
142
- JSON.stringify(firstArgument),
143
- returnType,
144
- JSON.stringify(expressions.value),
145
- ]);
146
- var expectedReturnTypeText = (0, lodash_1.isArray)(returnType)
147
- ? returnType.map(types.getTypeDisplayName).join(' or ')
148
- : types.getTypeDisplayName(returnType);
134
+ // The type the expression gives is the server's, the same as everywhere else in Qorus
135
+ // (qoretechnologies/qorus#713); it is not known, and nothing is judged by it, until the server gives it.
136
+ // `ui_type` is compared with the types this place takes, which are UI types; what the expression gives is
137
+ // named, and judged as a condition, by the type's own name, as the Text view names it (`inferred_type`:
138
+ // "a whole number", where the UI type of every number is `number`).
139
+ var serverType = (0, useExpressionType_1.useExpressionType)(value.value);
140
+ var expressionReturnType = serverType === null || serverType === void 0 ? void 0 : serverType.ui_type;
141
+ var expressionGivesType = serverType === null || serverType === void 0 ? void 0 : serverType.inferred_type;
142
+ // An empty card gives nothing, which is known without asking: it does not fit a place that takes something.
143
+ var typeNotKnownYet = !!((_c = value.value) === null || _c === void 0 ? void 0 : _c.exp) && !serverType;
144
+ // the type(s) this place takes, named inside a sentence: their sentence forms; none where no type is known
145
+ // (qorus#646)
146
+ var expectedReturnTypeText = (0, lodash_1.compact)(((0, lodash_1.isArray)(returnType) ? returnType : [returnType]).map(function (type) {
147
+ return types.getTypeSentenceForm(type, returnBaseType);
148
+ })).join(' or ') || undefined;
149
149
  // Server Handler expressions is either defined by the option
150
150
  // then it's always the first level
151
151
  // Or if the first argument is a field (data_role: 'record') or the first selected expression is
152
152
  // a server expression
153
- var isFirstArgumentField = ((_d = (_c = (0, templates_1.findTemplate)(localTemplates, firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.value)) === null || _c === void 0 ? void 0 : _c.metadata) === null || _d === void 0 ? void 0 : _d.dataRole) === 'record';
153
+ var isFirstArgumentField = ((_f = (_d = (0, templates_1.findTemplate)(localTemplates, firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.value)) === null || _d === void 0 ? void 0 : _d.metadata) === null || _f === void 0 ? void 0 : _f.dataRole) === 'record';
154
154
  var isExpressionServerHandled = (selectedExpression === null || selectedExpression === void 0 ? void 0 : selectedExpression.from_server) ||
155
155
  ((selectedExpression === null || selectedExpression === void 0 ? void 0 : selectedExpression.from_both) && isFirstArgumentField) ||
156
156
  (level === 0 && serverHandled);
@@ -256,9 +256,9 @@ var Expression = function (_a) {
256
256
  // keyed by slot, and a slot's TemplateField keeps template / text-mode
257
257
  // state that only resyncs one way — remounting hands every slot a field
258
258
  // seeded from the operand that now lives there.
259
- var _u = (0, react_1.useState)(0), argsGeneration = _u[0], setArgsGeneration = _u[1];
259
+ var _y = (0, react_1.useState)(0), argsGeneration = _y[0], setArgsGeneration = _y[1];
260
260
  var dragArg = (0, react_1.useRef)(null);
261
- var _v = (0, react_1.useState)(null), dragOverArg = _v[0], setDragOverArg = _v[1];
261
+ var _z = (0, react_1.useState)(null), dragOverArg = _z[0], setDragOverArg = _z[1];
262
262
  var moveVarArg = (0, react_1.useCallback)(function (from, to) {
263
263
  setArgsGeneration(function (generation) { return generation + 1; });
264
264
  onValueChange(__assign(__assign({}, value), { value: __assign(__assign({}, value.value), { args: (0, common_1.moveItem)(value.value.args, from, to) }) }), path);
@@ -305,11 +305,18 @@ var Expression = function (_a) {
305
305
  onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(undefined, path, true);
306
306
  }, [onValueChange, path]);
307
307
  var firstArgSchema = selectedExpression === null || selectedExpression === void 0 ? void 0 : selectedExpression.args[0];
308
+ /* An empty untyped operand is of the type the catalogue declares for it, as the other operands are:
309
+ falling back to the builder's own type gave the first value of a condition (the builder's `bool`)
310
+ or of an untyped builder (`context`) a type it is not, which rendered as "Unknown type!" once an
311
+ untyped operand was written as text. */
308
312
  var firstParamType = (firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.is_expression)
309
313
  ? firstArgSchema === null || firstArgSchema === void 0 ? void 0 : firstArgSchema.ui_type
310
- : (firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.type) || type || 'context';
314
+ : (firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.type) ||
315
+ ((0, optionUiTypes_1.isUntypedOptionType)(firstArgSchema === null || firstArgSchema === void 0 ? void 0 : firstArgSchema.ui_type) ? firstArgSchema === null || firstArgSchema === void 0 ? void 0 : firstArgSchema.ui_type : undefined) ||
316
+ type ||
317
+ 'context';
311
318
  var restOfArgs = selectedExpression === null || selectedExpression === void 0 ? void 0 : selectedExpression.args.slice(1);
312
- var argCount = (0, lodash_1.size)((_f = value.value) === null || _f === void 0 ? void 0 : _f.args);
319
+ var argCount = (0, lodash_1.size)((_g = value.value) === null || _g === void 0 ? void 0 : _g.args);
313
320
  var canReorderArgs = !!(selectedExpression === null || selectedExpression === void 0 ? void 0 : selectedExpression.varargs) && argCount > 1 && !readOnly && (0, lodash_1.size)(reorderSurfaces) > 0;
314
321
  var argReorderSurfaces = canReorderArgs ? reorderSurfaces : undefined;
315
322
  var isDragOverArg = function (index) {
@@ -355,22 +362,54 @@ var Expression = function (_a) {
355
362
  if (selectedExpression === null || selectedExpression === void 0 ? void 0 : selectedExpression.varargs) {
356
363
  restOfArgs = __spreadArray(__spreadArray([], restOfArgs, true), rest.map(function () { return (__assign({}, selectedExpression.args[0])); }), true);
357
364
  }
358
- var isReturnTypeMatching = expressionReturnType === 'any' ||
359
- ((0, lodash_1.isArray)(returnType)
360
- ? (0, expressions_1.areQorusTypesCompatible)(returnType, expressionReturnType)
361
- : returnType === 'auto' ||
362
- returnType === 'any' ||
363
- returnType === 'context' ||
365
+ /* The expression as a condition (qorus#646): a Qog if state's, a while or for block's, a transition's
366
+ condition is read by the server as true unless its value is zero or empty (Fsm.qc calls .toBool()). What
367
+ it gives is said as every condition editor says it: a number or a list is accepted with a warning under
368
+ it, text, a date or a time is refused. Only where the host says it is a condition: a value of type bool
369
+ is checked as a bool, and an int does not fit it. */
370
+ var condition = level === 0 && isCondition ? (0, expressions_1.conditionVerdict)(expressionGivesType) : undefined;
371
+ /* A part of the condition's AND, OR or NOT (this card's own, or the one a NOT reads): read as true or false
372
+ by its value as the whole condition is, and judged by the server by the same rule (qorus#646). Its verdict
373
+ is the server's, drawn here; nothing on this side checks a part as a bool. */
374
+ var part = partCards === null || partCards === void 0 ? void 0 : partCards[path !== null && path !== void 0 ? path : ''];
375
+ var partVerdict = (0, expressions_1.conditionPartVerdict)(part);
376
+ /* A bool place that takes any result but text, a date or a time: the condition itself, and a bool place a
377
+ catalogue still declares (a part of an AND or an OR is typed by its operator's arguments, which take any
378
+ value on a Qorus that reads them as conditions). */
379
+ var takesCondition = level === 0 ? !!isCondition : (0, expressions_1.isConditionType)(returnType);
380
+ /* A condition the server says gives text, a date or a time is refused, whatever this place declares: a
381
+ condition field need not declare `bool`, and a mismatch was then never drawn - the refusal was shown only
382
+ because the type worked out here happened to be a number's (a warning, in the server's words). */
383
+ /* A part whose operation is not chosen yet gives nothing yet, and nothing is said of what it gives: it was told
384
+ "This expression gives nothing, which this field does not take" - a type it never claimed - beside the Text
385
+ view's "Fill in each …" (qorus#646, David's review). What it lacks is said instead (`noOperationYetText`). */
386
+ var noOperationYet = !((_h = value === null || value === void 0 ? void 0 : value.value) === null || _h === void 0 ? void 0 : _h.exp);
387
+ /** What the place takes, said with what it lacks: only a type that is a type (not untyped, not `auto`). */
388
+ var takesText = (((0, lodash_1.isArray)(returnType) ? returnType : [returnType]).some(function (type) { return !!type && !(0, optionUiTypes_1.isUntypedOptionType)(type) && String(type) !== 'auto'; })) ?
389
+ expectedReturnTypeText
390
+ : undefined;
391
+ /** The whole expression has nothing chosen yet: its card says so, once (`noOperationYetText`). */
392
+ var nothingChosenYet = !selectedExpression && !serverExpression && !(firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.value) && level === 0;
393
+ var isReturnTypeMatching = noOperationYet ||
394
+ (condition !== 'error' &&
395
+ (typeNotKnownYet ||
364
396
  expressionReturnType === 'any' ||
365
- (0, expressions_1.areQorusTypesCompatible)(returnType, expressionReturnType) ||
366
- returnType === expressionReturnType ||
367
- !returnType) ||
368
- // a condition is decided by any result but text, a date or a time
369
- ((0, expressions_1.isConditionType)(returnType) &&
370
- !!expressionReturnType &&
371
- !(0, expressions_1.isTextOrDateType)(expressionReturnType));
397
+ ((0, lodash_1.isArray)(returnType)
398
+ ? (0, expressions_1.areQorusTypesCompatible)(returnType, expressionReturnType, types.value, returnBaseType)
399
+ : returnType === 'auto' ||
400
+ returnType === 'any' ||
401
+ returnType === 'context' ||
402
+ expressionReturnType === 'any' ||
403
+ // a place of a type the catalogue does not list takes what its base type takes
404
+ (0, expressions_1.areQorusTypesCompatible)(returnType, expressionReturnType, types.value, returnBaseType) ||
405
+ returnType === expressionReturnType ||
406
+ !returnType) ||
407
+ // a condition is decided by any result but text, a date or a time
408
+ (takesCondition && !!expressionReturnType && !(0, expressions_1.isTextOrDateType)(expressionReturnType))));
372
409
  var defaultItems = (0, react_1.useMemo)(function () {
373
410
  return expressions.value
411
+ // an operation drawn only inside the construct that makes it is never offered (`internal`)
412
+ .filter(types_1.isOfferedForPicking)
374
413
  // a condition (a field or an operand that must be true or false) offers the operations whose
375
414
  // result decides it - any but text, a date or a time, which are compared explicitly; a group's members
376
415
  // are its own business, and the operation already chosen
@@ -379,6 +418,7 @@ var Expression = function (_a) {
379
418
  var _a;
380
419
  return isChild ||
381
420
  exp.name === ((_a = value === null || value === void 0 ? void 0 : value.value) === null || _a === void 0 ? void 0 : _a.exp) ||
421
+ !takesCondition ||
382
422
  (0, expressions_1.expressionFitsReturnType)(returnType, exp);
383
423
  })
384
424
  .map(function (exp) { return ({
@@ -399,7 +439,7 @@ var Expression = function (_a) {
399
439
  ? !exp.from_server
400
440
  : true;
401
441
  });
402
- }, [JSON.stringify(expressions.value), serverExpression, level, isChild, returnType, (_g = value === null || value === void 0 ? void 0 : value.value) === null || _g === void 0 ? void 0 : _g.exp]);
442
+ }, [JSON.stringify(expressions.value), serverExpression, level, isChild, returnType, (_j = value === null || value === void 0 ? void 0 : value.value) === null || _j === void 0 ? void 0 : _j.exp]);
403
443
  // SEAM (reqraft): reqraft's `SelectFormField` calls `onChange(value)` with
404
444
  // the value directly (the IDE's Select used `(name, value)`).
405
445
  var handleOperatorChange = (0, react_1.useCallback)(function (value) {
@@ -428,13 +468,11 @@ var Expression = function (_a) {
428
468
  if (!added) {
429
469
  return;
430
470
  }
431
- // A typed operand mounts a text field; an untyped one opens on its
432
- // template picker, whose trigger is the field's first button that is not
433
- // one of the operand's own controls (grip, position, ⋮, remove).
434
- var field = (_a = added.querySelector('textarea, input')) !== null && _a !== void 0 ? _a : Array.from(added.querySelectorAll('button')).find(function (button) {
435
- return !button.closest('.expression-arg-drag-handle, .expression-arg-position, .template-more, .expression-remove-arg');
436
- });
437
- field === null || field === void 0 ? void 0 : field.focus();
471
+ /* A typed operand mounts a text field, and the caret goes there. An untyped one has nothing to type into:
472
+ its first control is its template picker, a list that opens when it is focused, and since reqore 0.78
473
+ one focused as it mounts opens at once. Adding a value is not asking for that list (David, qorus#646),
474
+ so the operand itself takes the focus, and its picker opens when the user goes to it. */
475
+ ((_a = added.querySelector('textarea, input')) !== null && _a !== void 0 ? _a : added).focus();
438
476
  }, [argCount]);
439
477
  var canAddArg = !!(selectedExpression === null || selectedExpression === void 0 ? void 0 : selectedExpression.varargs) && !readOnly;
440
478
  // On a phone the operand row has no room for a remove button beside the
@@ -446,7 +484,7 @@ var Expression = function (_a) {
446
484
  // down to the catalogue's minimum — one for most, so the last operand
447
485
  // left is the one that cannot be removed.
448
486
  var canRemoveArgs = !!(selectedExpression === null || selectedExpression === void 0 ? void 0 : selectedExpression.varargs) &&
449
- argCount > Math.max(1, (_h = selectedExpression.min_args) !== null && _h !== void 0 ? _h : 1) &&
487
+ argCount > Math.max(1, (_k = selectedExpression.min_args) !== null && _k !== void 0 ? _k : 1) &&
450
488
  !readOnly;
451
489
  var removeArgInline = canRemoveArgs && !phone;
452
490
  var handleRemoveFirstArg = (0, react_1.useCallback)(function () { return removeVarArg(0); }, [removeVarArg]);
@@ -558,9 +596,9 @@ var Expression = function (_a) {
558
596
  var validationData = (0, validations_1.validateFieldWithResult)('expression', value, {
559
597
  expressions: expressions.value,
560
598
  });
561
- return ((0, jsx_runtime_1.jsxs)(item_1.ExpressionItem, { index: index, as: reqore_1.ReqorePanel, intent: validationData.isValid && !!returnType && isReturnTypeMatching ? 'muted' : 'danger', description: isExpressionServerHandled ? 'This expression will be executed outside of Qorus' : '', flat: true, readOnly: readOnly, minimal: true, size: 'small', isChild: isChild, className: 'expression', customTheme: {
599
+ return ((0, jsx_runtime_1.jsxs)(item_1.ExpressionItem, { index: index, as: reqore_1.ReqorePanel, intent: validationData.isValid && !!returnType && isReturnTypeMatching ? 'muted' : 'danger', description: isExpressionServerHandled ? 'This expression runs outside Qorus' : '', flat: true, readOnly: readOnly, minimal: true, size: 'small', isChild: isChild, className: 'expression', customTheme: {
562
600
  main: "main:darken:".concat(level),
563
- }, id: id, label: (0, jsx_runtime_1.jsx)(Select_1.SelectFormField, { size: 'tiny', className: 'expression-operator-selector', value: (_j = value === null || value === void 0 ? void 0 : value.value) === null || _j === void 0 ? void 0 : _j.exp, icon: 'Functions', placeholder: 'Select operation', fluid: false,
601
+ }, id: id, label: (0, jsx_runtime_1.jsx)(Select_1.SelectFormField, { size: 'tiny', className: 'expression-operator-selector', value: (_l = value === null || value === void 0 ? void 0 : value.value) === null || _l === void 0 ? void 0 : _l.exp, icon: 'Functions', placeholder: 'Select operation', fluid: false,
564
602
  // shrinks with a narrow panel, its name shortened, rather than holding the panel open
565
603
  fixed: false, style: { minWidth: 0, maxWidth: '100%' }, flat: true,
566
604
  // The operation catalogue is long and every entry carries a description,
@@ -604,7 +642,7 @@ var Expression = function (_a) {
604
642
  hideItemCount: true,
605
643
  onChange: handleWrapExpressionClick,
606
644
  showDescription: 'tooltip',
607
- tooltip: 'Wrap this expression in another expression',
645
+ tooltip: 'Put this expression inside another one',
608
646
  size: 'tiny',
609
647
  },
610
648
  },
@@ -613,10 +651,10 @@ var Expression = function (_a) {
613
651
  label: 'Remove',
614
652
  textAlign: 'center',
615
653
  icon: 'CloseLine',
616
- tooltip: 'Remove this expression but keep the children',
654
+ tooltip: 'Remove this expression and keep what is inside it',
617
655
  fixed: true,
618
656
  onClick: unwrapExpression,
619
- show: ((_m = (_l = (_k = value.value) === null || _k === void 0 ? void 0 : _k.args) === null || _l === void 0 ? void 0 : _l[0]) === null || _m === void 0 ? void 0 : _m.is_expression) === true && !readOnly ? 'hover' : false,
657
+ show: ((_p = (_o = (_m = value.value) === null || _m === void 0 ? void 0 : _m.args) === null || _o === void 0 ? void 0 : _o[0]) === null || _p === void 0 ? void 0 : _p.is_expression) === true && !readOnly ? 'hover' : false,
620
658
  },
621
659
  {
622
660
  className: 'expression-explain',
@@ -634,7 +672,7 @@ var Expression = function (_a) {
634
672
  intent: 'danger',
635
673
  textAlign: 'center',
636
674
  icon: 'DeleteBinLine',
637
- tooltip: 'Remove this expression and its children',
675
+ tooltip: 'Remove this expression and everything inside it',
638
676
  fixed: true,
639
677
  minimal: true,
640
678
  show: readOnly ? false : 'hover',
@@ -642,7 +680,11 @@ var Expression = function (_a) {
642
680
  },
643
681
  ], false), bottomActions: [
644
682
  {
645
- show: !!selectedExpression && (0, expressions_1.areQorusTypesCompatible)('bool', returnType) && !readOnly,
683
+ /* a yes/no place, or a part of an AND or an OR, which another AND or OR can stand for (a part
684
+ takes any value, qorus#646) */
685
+ show: !!selectedExpression &&
686
+ (!!group || (0, expressions_1.areQorusTypesCompatible)('bool', returnType, types.value)) &&
687
+ !readOnly,
646
688
  group: [
647
689
  {
648
690
  flat: true,
@@ -670,7 +712,7 @@ var Expression = function (_a) {
670
712
  },
671
713
  ],
672
714
  },
673
- ], children: [hasArgumentsWithTypeMismatch && ((0, jsx_runtime_1.jsx)(confirmMismatchedTypesModal_1.ConfirmMismatchedTypesModal, { args: (_o = value.value) === null || _o === void 0 ? void 0 : _o.args, expression: selectedExpression, onSubmit: updateMultipleArgs, expressions: expressions.value })), (confirmDialogData === null || confirmDialogData === void 0 ? void 0 : confirmDialogData.isOpen) && ((0, jsx_runtime_1.jsx)(confirmUnsupportedTypeModal_1.ConfirmUnsupportedTypeModal, { acceptedTypes: confirmDialogData.acceptedTypes, onClose: function () {
715
+ ], children: [hasArgumentsWithTypeMismatch && ((0, jsx_runtime_1.jsx)(confirmMismatchedTypesModal_1.ConfirmMismatchedTypesModal, { args: (_q = value.value) === null || _q === void 0 ? void 0 : _q.args, expression: selectedExpression, onSubmit: updateMultipleArgs, expressions: expressions.value })), (confirmDialogData === null || confirmDialogData === void 0 ? void 0 : confirmDialogData.isOpen) && ((0, jsx_runtime_1.jsx)(confirmUnsupportedTypeModal_1.ConfirmUnsupportedTypeModal, { acceptedTypes: confirmDialogData.acceptedTypes, onClose: function () {
674
716
  setConfirmDialogData(undefined);
675
717
  }, maxSize: '550px', bottomActions: [
676
718
  {
@@ -695,13 +737,15 @@ var Expression = function (_a) {
695
737
  setConfirmDialogData(undefined);
696
738
  },
697
739
  },
698
- ], 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
740
+ ], children: confirmDialogData.children })), showSummary && ((0, jsx_runtime_1.jsx)(renderTemplate_1.ExpressionRenderTemplate, { exp: value, expressions: expressions.value, templates: localTemplates })), nothingChosenYet ? ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreMessage, { size: 'small', opaque: false, intent: 'info', className: 'expression-no-operation-yet', children: (0, exports.noOperationYetText)(false, takesText) })) : ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup
699
741
  // On a phone every operand is a full-width row, so the group spans
700
742
  // the panel; on desktop it hugs its content and wraps.
701
743
  , {
702
744
  // On a phone every operand is a full-width row, so the group spans
703
745
  // the panel; on desktop it hugs its content and wraps.
704
746
  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,
747
+ // an operand's text is as wide as what it holds, and gives way to its row
748
+ textWidth: 'content',
705
749
  // SEAM (reqraft): an operand that becomes an expression mounts
706
750
  // its own builder through this TemplateField — hand the host's
707
751
  // actions on, or nesting silently drops them (the group
@@ -717,9 +761,14 @@ var Expression = function (_a) {
717
761
  !(firstArgSchema === null || firstArgSchema === void 0 ? void 0 : firstArgSchema.allowed_values) &&
718
762
  !(firstArgSchema === null || firstArgSchema === void 0 ? void 0 : firstArgSchema.element_allowed_values), level: level + 1, type: firstParamType, defaultType: (firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.allowed_values) || (firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.element_allowed_values)
719
763
  ? firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.type.base_type
720
- : firstParamType, returnType: types.getAcceptedTypes(firstArgSchema === null || firstArgSchema === void 0 ? void 0 : firstArgSchema.ui_type), value: firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.value, isFunction: firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.is_expression, onChange: handleFirstParamChange, templates: localTemplates, allowTemplates: true, filterTemplatesByType: false, allowCustomValues: !!(firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.allowed_values) ||
764
+ : firstParamType,
765
+ // an argument of a type the catalogue does not list takes what its base type takes
766
+ returnType: types.getAcceptedTypes(firstArgSchema === null || firstArgSchema === void 0 ? void 0 : firstArgSchema.ui_type, firstArgSchema === null || firstArgSchema === void 0 ? void 0 : firstArgSchema.base_type), value: firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.value, isFunction: firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.is_expression, onChange: handleFirstParamChange, templates: localTemplates, allowTemplates: true, filterTemplatesByType: false, allowCustomValues: !!(firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.allowed_values) ||
721
767
  !!(firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.element_allowed_values) ||
722
- (!!(firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.type) && !serverExpression), filterTemplatesFunc: function (templates) {
768
+ // an untyped operand is written as text from the start, as a typed one is once
769
+ // it has a type: a template chosen into it is a chip, with text around it
770
+ ((!!(firstArgument === null || firstArgument === void 0 ? void 0 : firstArgument.type) || (0, optionUiTypes_1.isUntypedOptionType)(firstArgSchema === null || firstArgSchema === void 0 ? void 0 : firstArgSchema.ui_type)) &&
771
+ !serverExpression), filterTemplatesFunc: function (templates) {
723
772
  var _a;
724
773
  // PORT NOTE: `?.` on `items` added — with no templates at all
725
774
  // (FormEngine with templates off) the IDE original crashes on
@@ -741,7 +790,7 @@ var Expression = function (_a) {
741
790
  updateArg(undefined, index + 1, value === 'context' ? undefined : value);
742
791
  }, onRemoveArgClick: function () {
743
792
  removeVarArg(index + 1);
744
- }, 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,
793
+ }, 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, textWidth: 'content',
745
794
  // SEAM (reqraft): same as the first operand above.
746
795
  extraActions: extraActions, 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,
747
796
  // An empty argument has no value to take a type from; fall
@@ -754,28 +803,50 @@ var Expression = function (_a) {
754
803
  // that rule reads `type`, and `type` was undefined.
755
804
  type: (_c = (_b = rest[index]) === null || _b === void 0 ? void 0 : _b.type) !== null && _c !== void 0 ? _c : arg.ui_type, defaultType: arg.allowed_values || arg.element_allowed_values
756
805
  ? arg.ui_type
757
- : ((_f = (_d = rest[index]) === null || _d === void 0 ? void 0 : _d.type) !== null && _f !== void 0 ? _f : arg.ui_type), returnType: types.getAcceptedTypes(arg.ui_type), canBeNull: false, value: (_g = rest[index]) === null || _g === void 0 ? void 0 : _g.value, templates: localTemplates, allowTemplates: !(arg === null || arg === void 0 ? void 0 : arg.allowed_values) && !(arg === null || arg === void 0 ? void 0 : arg.element_allowed_values), filterTemplatesByType: false, allowCustomValues: !!arg.allowed_values ||
806
+ : ((_f = (_d = rest[index]) === null || _d === void 0 ? void 0 : _d.type) !== null && _f !== void 0 ? _f : arg.ui_type),
807
+ // an argument of a type the catalogue does not list takes what its base type takes
808
+ returnType: types.getAcceptedTypes(arg.ui_type, arg.base_type), canBeNull: false, value: (_g = rest[index]) === null || _g === void 0 ? void 0 : _g.value, templates: localTemplates, allowTemplates: !(arg === null || arg === void 0 ? void 0 : arg.allowed_values) && !(arg === null || arg === void 0 ? void 0 : arg.element_allowed_values), filterTemplatesByType: false, allowCustomValues: !!arg.allowed_values ||
758
809
  !!arg.element_allowed_values ||
759
810
  !!((_h = rest[index]) === null || _h === void 0 ? void 0 : _h.type) ||
760
- !!arg.default_value, onChange: (function (_name, value, type, isFunction) {
811
+ !!arg.default_value ||
812
+ // an untyped operand is written as text from the start (see the first operand)
813
+ (0, optionUiTypes_1.isUntypedOptionType)(arg.ui_type), onChange: (function (_name, value, type, isFunction) {
761
814
  updateArg(value, index + 1, isFunction ? undefined : type, isFunction);
762
815
  }), fluid: phone, fixed: !phone, disableManagement: true, disabled: readOnly, menuItems: buildCustomTemplateItems(arg, function (type, removeTemplate) {
763
816
  removeTemplate === null || removeTemplate === void 0 ? void 0 : removeTemplate();
764
817
  updateArg(undefined, index + 1, type.name === 'context' ? undefined : type.name);
765
818
  }), menuActions: argMenuActions === null || argMenuActions === void 0 ? void 0 : argMenuActions[index + 1], menuTrailingItems: argRemoveMenuItems === null || argRemoveMenuItems === void 0 ? void 0 : argRemoveMenuItems[index + 1], reorder: props.reorder, expressions: props.expressions, expressions_url: expressionsUrl, allowed_values: arg === null || arg === void 0 ? void 0 : arg.allowed_values, element_allowed_values: arg === null || arg === void 0 ? void 0 : arg.element_allowed_values, ui_element_type: arg === null || arg === void 0 ? void 0 : arg.ui_element_type }, "".concat(argsGeneration, "-").concat(index, "-").concat(arg.ui_type, "-").concat(arg.display_name, "-").concat(level + 1)) }), (arg === null || arg === void 0 ? void 0 : arg.label_after) && (0, jsx_runtime_1.jsx)(argumentDetail_1.ExpressionArgumentDetail, { label: arg.label_after })] }, "".concat(argsGeneration, "-").concat(index, "-").concat(arg.ui_type, "-").concat(arg.display_name)));
766
819
  })
767
- : null, canAddArg && ((0, jsx_runtime_1.jsx)(argumentSlot_1.ExpressionBuilderAddArgumentSlot, { argumentName: (_p = selectedExpression.args[0]) === null || _p === void 0 ? void 0 : _p.display_name, disabled: !(0, validations_1.validateField)('expression', value, { expressions: expressions.value }), droppable: isSlotDropTarget, dragOver: isDragOverArg(argCount), onClick: handleAddArgumentClick, onDragOver: handleSlotDragOver, onDrop: handleSlotDrop }))] })), !isReturnTypeMatching && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreVerticalSpacer, { height: 5 }), (0, jsx_runtime_1.jsx)(reqore_1.ReqoreTag, { minimal: true, icon: 'ErrorWarningLine', intent: 'danger', size: 'tiny', wrap: true, label: (0, expressions_1.isConditionType)(returnType) &&
768
- !!expressionReturnType &&
769
- (0, expressions_1.isTextOrDateType)(expressionReturnType)
770
- ? // a condition that gives text, a date or a time: say how to make it one
771
- "A condition can't give ".concat(types.getTypeDisplayName(expressionReturnType), ": compare it explicitly, for example @status == \"open\" or @note != \"\".")
772
- : "This expression returns ".concat(types.getTypeDisplayName(expressionReturnType) || 'nothing', " but the expected return type is ").concat(expectedReturnTypeText, ". Please select an expression that returns ").concat(expectedReturnTypeText, " or wrap this expression inside another one that does.") })] })), selectedExpression && !validationData.isValid ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreVerticalSpacer, { height: 5 }), (0, jsx_runtime_1.jsx)(reqore_1.ReqoreTag, { minimal: true, icon: 'ErrorWarningLine', intent: 'danger', size: 'tiny', wrap: true, label: validationData.reason || 'Expression is not valid for unknown reasons' })] })) : null] }));
820
+ : null, canAddArg && ((0, jsx_runtime_1.jsx)(argumentSlot_1.ExpressionBuilderAddArgumentSlot, { argumentName: (_r = selectedExpression.args[0]) === null || _r === void 0 ? void 0 : _r.display_name, disabled: !(0, validations_1.validateField)('expression', value, { expressions: expressions.value }), droppable: isSlotDropTarget, dragOver: isDragOverArg(argCount), onClick: handleAddArgumentClick, onDragOver: handleSlotDragOver, onDrop: handleSlotDrop }))] })), partVerdict && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreVerticalSpacer, { height: 5 }), (0, jsx_runtime_1.jsx)(reqore_1.ReqoreTag, { minimal: true, className: 'expression-condition-part-verdict', "data-verdict": partVerdict, icon: partVerdict === 'error' ? 'ErrorWarningLine' : 'AlertLine', intent: partVerdict === 'error' ? 'danger' : 'warning', size: 'tiny', wrap: true, label: (_s = part === null || part === void 0 ? void 0 : part.message) !== null && _s !== void 0 ? _s : (partVerdict === 'error' ?
821
+ (0, expressions_1.conditionErrorText)(types.getTypeSentenceForm((0, expressions_1.conditionBaseType)(part.type)), part.type)
822
+ : (0, expressions_1.conditionByTruthinessText)(part.type)) })] })), condition === 'warning' && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreVerticalSpacer, { height: 5 }), (0, jsx_runtime_1.jsx)(reqore_1.ReqoreTag, { minimal: true, className: 'expression-condition-verdict', icon: 'AlertLine', intent: 'warning', size: 'tiny', wrap: true,
823
+ // the server's words for the whole condition, where it said any; the same rule's own otherwise
824
+ label: conditionMessage !== null && conditionMessage !== void 0 ? conditionMessage : (0, expressions_1.conditionByTruthinessText)(expressionGivesType) })] })), !isReturnTypeMatching && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreVerticalSpacer, { height: 5 }), takesCondition && !!expressionGivesType && (0, expressions_1.isTextOrDateType)(expressionGivesType) ? (
825
+ // a condition that gives text, a date or a time: say how to make it one
826
+ (0, jsx_runtime_1.jsx)(reqore_1.ReqoreTag, { minimal: true, className: 'expression-condition-verdict', icon: 'ErrorWarningLine', intent: 'danger', size: 'tiny', wrap: true, label: (_t = (level === 0 ? conditionMessage : undefined)) !== null && _t !== void 0 ? _t : (0, expressions_1.conditionErrorText)(types.getTypeSentenceForm((0, expressions_1.conditionBaseType)(expressionGivesType)), expressionGivesType) })) : ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreTag, { minimal: true, icon: 'ErrorWarningLine', intent: 'danger', size: 'tiny', wrap: true, label: (0, expressions_1.expressionTypeMismatchText)(expressionGivesType ? types.getTypeSentenceForm(expressionGivesType) : undefined, expectedReturnTypeText) }))] })), selectedExpression && !validationData.isValid ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreVerticalSpacer, { height: 5 }), (0, jsx_runtime_1.jsx)(reqore_1.ReqoreTag, { minimal: true, icon: 'ErrorWarningLine', intent: 'danger', size: 'tiny', wrap: true, label: validationData.reason || 'Qorus could not check this expression.' })] })) : null, noOperationYet && !readOnly && !nothingChosenYet ?
827
+ (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreVerticalSpacer, { height: 5 }), (0, jsx_runtime_1.jsx)(reqore_1.ReqoreTag, { minimal: true, className: 'expression-no-operation-yet', icon: 'ErrorWarningLine', intent: 'warning', size: 'tiny', wrap: true, label: (0, exports.noOperationYetText)(isChild || level > 0, takesText) })] })
828
+ : null] }));
773
829
  };
774
830
  exports.Expression = Expression;
831
+ /**
832
+ * What an expression, or a part of one, whose operation is not chosen yet says: what it lacks, as the Text view's
833
+ * holes do, and what its place takes where that is a type (qorus#646). `takes` names the type inside the sentence.
834
+ */
835
+ var noOperationYetText = function (part, takes) {
836
+ return part ?
837
+ "Choose what this part does".concat(takes ? ": it must give ".concat(takes) : '', ".")
838
+ : "Choose what this expression does".concat(takes ? ": this field takes ".concat(takes) : '', ".");
839
+ };
840
+ exports.noOperationYetText = noOperationYetText;
775
841
  var ExpressionBuilder = function (_a) {
776
842
  var _b, _c, _d;
777
- 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;
843
+ 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, returnBaseType = _a.returnBaseType, 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, condition = _a.condition, conditionParts = _a.conditionParts, givenPartCards = _a.conditionPartCards, conditionMessage = _a.conditionMessage;
778
844
  var templates = (0, useTemplates_1.useTemplates)(!isChild, localTemplates);
845
+ /* The top builder places what the server says of each part of the condition on that part's card; a nested
846
+ one is handed the placement. */
847
+ var partCards = (0, react_1.useMemo)(function () {
848
+ return givenPartCards !== null && givenPartCards !== void 0 ? givenPartCards : (condition && conditionParts ? (0, expressions_1.conditionPartCards)(value, conditionParts) : undefined);
849
+ }, [givenPartCards, condition, conditionParts, JSON.stringify(value)]);
779
850
  /* A builder nested in a group does not resolve templates again: its parent hands it the resolved ones.
780
851
  `useTemplates` gives a nested builder none, and they were what it handed on, so every comparison in
781
852
  an AND/OR group had no templates - its field pickers had nothing to offer and were drawn disabled,
@@ -836,7 +907,11 @@ var ExpressionBuilder = function (_a) {
836
907
  (((_b = value.value) === null || _b === void 0 ? void 0 : _b.exp) === '&&' || ((_c = value.value) === null || _c === void 0 ? void 0 : _c.exp) === '||')) {
837
908
  return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreErrorBoundary, { children: (0, jsx_runtime_1.jsx)(item_1.ExpressionItem, { index: index, as: reqore_1.ReqorePanel, isChild: isChild, isAndOr: true, minimal: true, readOnly: readOnly, size: 'small', flat: true, customTheme: {
838
909
  main: (0, polished_1.darken)("0.0".concat(level * 25), theme.main),
839
- }, label: isChild ? (value.value.exp === '||' ? 'OR group' : 'AND group') : 'IF group', style: {
910
+ }, label: isChild ?
911
+ value.value.exp === '||' ?
912
+ 'At least one of these is true (OR)'
913
+ : 'All of these are true (AND)'
914
+ : 'If', style: {
840
915
  marginLeft: isChild ? 10 : 0,
841
916
  // a nested group too: its indent is taken out of its width, not added past it
842
917
  maxWidth: isChild ? 'calc(100% - 10px)' : undefined,
@@ -848,7 +923,7 @@ var ExpressionBuilder = function (_a) {
848
923
  onClick: function () {
849
924
  handleChange(types_1.ExpressionDefaultValue, "".concat(path ? "".concat(path, ".") : '', "value.args.").concat((0, lodash_1.size)(value.value.args)));
850
925
  },
851
- tooltip: 'Add condition parameter',
926
+ tooltip: 'Add a condition',
852
927
  },
853
928
  {
854
929
  className: 'expression-explain',
@@ -861,11 +936,26 @@ var ExpressionBuilder = function (_a) {
861
936
  : 'Show explanation of this expression',
862
937
  fixed: true,
863
938
  },
864
- ], 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: resolvedTemplates, 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: {
865
- marginLeft: 10,
866
- } }))] }, index)); })] }) }) }));
939
+ ], 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) {
940
+ var _a, _b, _c, _d, _f;
941
+ return ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [(0, jsx_runtime_1.jsx)(exports.ExpressionBuilder, { value: arg, localTemplates: resolvedTemplates, isChild: true, path: "".concat(path ? "".concat(path, ".") : '', "value.args.").concat(index), level: level + 1, index: index, type: type, onValueChange: handleChange,
942
+ /* what its operator takes, as the catalogue declares it: any value, on a Qorus that reads
943
+ each part of an AND or an OR as a condition (qorus#646) */
944
+ returnType: ((_f = (_d = (_c = (_b = (_a = _expressions.expressions) === null || _a === void 0 ? void 0 : _a.find(function (exp) { return exp.name === value.value.exp; })) === null || _b === void 0 ? void 0 : _b.args) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.ui_type) !== null && _f !== void 0 ? _f : 'any'), conditionPartCards: partCards, 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: {
945
+ marginLeft: 10,
946
+ } }))] }, index));
947
+ })] }) }) }));
948
+ }
949
+ /* A field path written with accessors - `orders[*].id`, `prices{*}` - is drawn as the path, the chip a record
950
+ field is, not as the accessor operations it is made of: their operands misread (the `@value` of a hash
951
+ wildcard is the item's value, not a record field), and an operation with a source and a body is not what
952
+ was written (David, qorus#646). It is edited on the Expression tab; here it can be removed, as any operand
953
+ can, with its field's controls. */
954
+ var fieldPath = (0, fieldPath_1.fieldPathOf)(value);
955
+ if (fieldPath !== undefined) {
956
+ return ((0, jsx_runtime_1.jsx)("span", { className: 'expression-field-path', "data-path": fieldPath, children: (0, jsx_runtime_1.jsx)(ReadOnlyTemplateTag_1.ReadOnlyTemplateTag, { value: (0, fieldPath_1.fieldPathTemplate)(fieldPath), templates: resolvedTemplates, label: (0, templateText_1.templateChipLabel)(resolvedTemplates, (0, fieldPath_1.fieldPathTemplate)(fieldPath)) }) }));
867
957
  }
868
- return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreErrorBoundary, { children: (0, jsx_runtime_1.jsx)(exports.Expression, { localTemplates: resolvedTemplates, 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 }) }));
958
+ return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreErrorBoundary, { children: (0, jsx_runtime_1.jsx)(exports.Expression, { localTemplates: resolvedTemplates, value: value, isChild: isChild, type: type, returnType: returnType, returnBaseType: returnBaseType, 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, condition: condition, conditionPartCards: partCards, conditionMessage: conditionMessage }) }));
869
959
  };
870
960
  exports.ExpressionBuilder = ExpressionBuilder;
871
961
  var templateObject_1;