udp-react-enterprise-component-library 26.7.0 → 26.8.0-beta.0

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 (532) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/UI/fluent-web-components/UdpAccordion.d.ts +2 -1
  3. package/dist/UI/fluent-web-components/UdpAccordion.d.ts.map +1 -1
  4. package/dist/UI/fluent-web-components/UdpAccordion.js.map +1 -1
  5. package/dist/UI/fluent-web-components/UdpAccordion.mjs.map +1 -1
  6. package/dist/UI/fluent-web-components/UdpAutocomplete.d.ts +2 -1
  7. package/dist/UI/fluent-web-components/UdpAutocomplete.d.ts.map +1 -1
  8. package/dist/UI/fluent-web-components/UdpAutocomplete.js.map +1 -1
  9. package/dist/UI/fluent-web-components/UdpAutocomplete.mjs.map +1 -1
  10. package/dist/UI/fluent-web-components/UdpAvatar.d.ts +2 -1
  11. package/dist/UI/fluent-web-components/UdpAvatar.d.ts.map +1 -1
  12. package/dist/UI/fluent-web-components/UdpAvatar.js.map +1 -1
  13. package/dist/UI/fluent-web-components/UdpAvatar.mjs.map +1 -1
  14. package/dist/UI/fluent-web-components/UdpBadge.d.ts +4 -1
  15. package/dist/UI/fluent-web-components/UdpBadge.d.ts.map +1 -1
  16. package/dist/UI/fluent-web-components/UdpBadge.js.map +1 -1
  17. package/dist/UI/fluent-web-components/UdpBadge.mjs.map +1 -1
  18. package/dist/UI/fluent-web-components/UdpButton.d.ts +4 -1
  19. package/dist/UI/fluent-web-components/UdpButton.d.ts.map +1 -1
  20. package/dist/UI/fluent-web-components/UdpButton.js.map +1 -1
  21. package/dist/UI/fluent-web-components/UdpButton.mjs.map +1 -1
  22. package/dist/UI/fluent-web-components/UdpCard.d.ts +2 -1
  23. package/dist/UI/fluent-web-components/UdpCard.d.ts.map +1 -1
  24. package/dist/UI/fluent-web-components/UdpCard.js.map +1 -1
  25. package/dist/UI/fluent-web-components/UdpCard.mjs.map +1 -1
  26. package/dist/UI/fluent-web-components/UdpCheckbox.d.ts +2 -1
  27. package/dist/UI/fluent-web-components/UdpCheckbox.d.ts.map +1 -1
  28. package/dist/UI/fluent-web-components/UdpCheckbox.js.map +1 -1
  29. package/dist/UI/fluent-web-components/UdpCheckbox.mjs.map +1 -1
  30. package/dist/UI/fluent-web-components/UdpChip.d.ts +2 -1
  31. package/dist/UI/fluent-web-components/UdpChip.d.ts.map +1 -1
  32. package/dist/UI/fluent-web-components/UdpChip.js.map +1 -1
  33. package/dist/UI/fluent-web-components/UdpChip.mjs.map +1 -1
  34. package/dist/UI/fluent-web-components/UdpCompoundButton.d.ts +2 -1
  35. package/dist/UI/fluent-web-components/UdpCompoundButton.d.ts.map +1 -1
  36. package/dist/UI/fluent-web-components/UdpCompoundButton.js.map +1 -1
  37. package/dist/UI/fluent-web-components/UdpCompoundButton.mjs.map +1 -1
  38. package/dist/UI/fluent-web-components/UdpContainerQuery.d.ts +2 -1
  39. package/dist/UI/fluent-web-components/UdpContainerQuery.d.ts.map +1 -1
  40. package/dist/UI/fluent-web-components/UdpContainerQuery.js.map +1 -1
  41. package/dist/UI/fluent-web-components/UdpContainerQuery.mjs.map +1 -1
  42. package/dist/UI/fluent-web-components/UdpContainerQueryGrid.d.ts +2 -1
  43. package/dist/UI/fluent-web-components/UdpContainerQueryGrid.d.ts.map +1 -1
  44. package/dist/UI/fluent-web-components/UdpContainerQueryGrid.js.map +1 -1
  45. package/dist/UI/fluent-web-components/UdpContainerQueryGrid.mjs.map +1 -1
  46. package/dist/UI/fluent-web-components/UdpCounterBadge.d.ts +2 -1
  47. package/dist/UI/fluent-web-components/UdpCounterBadge.d.ts.map +1 -1
  48. package/dist/UI/fluent-web-components/UdpCounterBadge.js.map +1 -1
  49. package/dist/UI/fluent-web-components/UdpCounterBadge.mjs.map +1 -1
  50. package/dist/UI/fluent-web-components/UdpDateInput.d.ts +2 -1
  51. package/dist/UI/fluent-web-components/UdpDateInput.d.ts.map +1 -1
  52. package/dist/UI/fluent-web-components/UdpDateInput.js.map +1 -1
  53. package/dist/UI/fluent-web-components/UdpDateInput.mjs.map +1 -1
  54. package/dist/UI/fluent-web-components/UdpDatePicker.d.ts +2 -1
  55. package/dist/UI/fluent-web-components/UdpDatePicker.d.ts.map +1 -1
  56. package/dist/UI/fluent-web-components/UdpDatePicker.js.map +1 -1
  57. package/dist/UI/fluent-web-components/UdpDatePicker.mjs.map +1 -1
  58. package/dist/UI/fluent-web-components/UdpDateTimeInput.d.ts +2 -1
  59. package/dist/UI/fluent-web-components/UdpDateTimeInput.d.ts.map +1 -1
  60. package/dist/UI/fluent-web-components/UdpDateTimeInput.js.map +1 -1
  61. package/dist/UI/fluent-web-components/UdpDateTimeInput.mjs.map +1 -1
  62. package/dist/UI/fluent-web-components/UdpDialog.d.ts +2 -1
  63. package/dist/UI/fluent-web-components/UdpDialog.d.ts.map +1 -1
  64. package/dist/UI/fluent-web-components/UdpDialog.js.map +1 -1
  65. package/dist/UI/fluent-web-components/UdpDialog.mjs.map +1 -1
  66. package/dist/UI/fluent-web-components/UdpDivider.d.ts +2 -1
  67. package/dist/UI/fluent-web-components/UdpDivider.d.ts.map +1 -1
  68. package/dist/UI/fluent-web-components/UdpDivider.js.map +1 -1
  69. package/dist/UI/fluent-web-components/UdpDivider.mjs.map +1 -1
  70. package/dist/UI/fluent-web-components/UdpDrawer.d.ts +9 -1
  71. package/dist/UI/fluent-web-components/UdpDrawer.d.ts.map +1 -1
  72. package/dist/UI/fluent-web-components/UdpDrawer.js +14 -2
  73. package/dist/UI/fluent-web-components/UdpDrawer.js.map +1 -1
  74. package/dist/UI/fluent-web-components/UdpDrawer.mjs +33 -22
  75. package/dist/UI/fluent-web-components/UdpDrawer.mjs.map +1 -1
  76. package/dist/UI/fluent-web-components/UdpDropdown.d.ts +2 -1
  77. package/dist/UI/fluent-web-components/UdpDropdown.d.ts.map +1 -1
  78. package/dist/UI/fluent-web-components/UdpDropdown.js.map +1 -1
  79. package/dist/UI/fluent-web-components/UdpDropdown.mjs.map +1 -1
  80. package/dist/UI/fluent-web-components/UdpDurationInput.d.ts +2 -1
  81. package/dist/UI/fluent-web-components/UdpDurationInput.d.ts.map +1 -1
  82. package/dist/UI/fluent-web-components/UdpDurationInput.js.map +1 -1
  83. package/dist/UI/fluent-web-components/UdpDurationInput.mjs.map +1 -1
  84. package/dist/UI/fluent-web-components/UdpEmptyState.d.ts +2 -1
  85. package/dist/UI/fluent-web-components/UdpEmptyState.d.ts.map +1 -1
  86. package/dist/UI/fluent-web-components/UdpEmptyState.js.map +1 -1
  87. package/dist/UI/fluent-web-components/UdpEmptyState.mjs.map +1 -1
  88. package/dist/UI/fluent-web-components/UdpFileInput.d.ts +2 -1
  89. package/dist/UI/fluent-web-components/UdpFileInput.d.ts.map +1 -1
  90. package/dist/UI/fluent-web-components/UdpFileInput.js.map +1 -1
  91. package/dist/UI/fluent-web-components/UdpFileInput.mjs.map +1 -1
  92. package/dist/UI/fluent-web-components/UdpFlexbox.d.ts +2 -1
  93. package/dist/UI/fluent-web-components/UdpFlexbox.d.ts.map +1 -1
  94. package/dist/UI/fluent-web-components/UdpFlexbox.js.map +1 -1
  95. package/dist/UI/fluent-web-components/UdpFlexbox.mjs.map +1 -1
  96. package/dist/UI/fluent-web-components/UdpIcon.d.ts +2 -1
  97. package/dist/UI/fluent-web-components/UdpIcon.d.ts.map +1 -1
  98. package/dist/UI/fluent-web-components/UdpIcon.js.map +1 -1
  99. package/dist/UI/fluent-web-components/UdpIcon.mjs.map +1 -1
  100. package/dist/UI/fluent-web-components/UdpIconButton.d.ts +4 -1
  101. package/dist/UI/fluent-web-components/UdpIconButton.d.ts.map +1 -1
  102. package/dist/UI/fluent-web-components/UdpIconButton.js.map +1 -1
  103. package/dist/UI/fluent-web-components/UdpIconButton.mjs.map +1 -1
  104. package/dist/UI/fluent-web-components/UdpIconGrid.d.ts +2 -1
  105. package/dist/UI/fluent-web-components/UdpIconGrid.d.ts.map +1 -1
  106. package/dist/UI/fluent-web-components/UdpIconGrid.js.map +1 -1
  107. package/dist/UI/fluent-web-components/UdpIconGrid.mjs.map +1 -1
  108. package/dist/UI/fluent-web-components/UdpImage.d.ts +2 -1
  109. package/dist/UI/fluent-web-components/UdpImage.d.ts.map +1 -1
  110. package/dist/UI/fluent-web-components/UdpImage.js.map +1 -1
  111. package/dist/UI/fluent-web-components/UdpImage.mjs.map +1 -1
  112. package/dist/UI/fluent-web-components/UdpInlineEdit.d.ts +17 -0
  113. package/dist/UI/fluent-web-components/UdpInlineEdit.d.ts.map +1 -1
  114. package/dist/UI/fluent-web-components/UdpInlineEdit.js +17 -0
  115. package/dist/UI/fluent-web-components/UdpInlineEdit.js.map +1 -1
  116. package/dist/UI/fluent-web-components/UdpInlineEdit.mjs +30 -0
  117. package/dist/UI/fluent-web-components/UdpInlineEdit.mjs.map +1 -0
  118. package/dist/UI/fluent-web-components/UdpLink.d.ts +2 -1
  119. package/dist/UI/fluent-web-components/UdpLink.d.ts.map +1 -1
  120. package/dist/UI/fluent-web-components/UdpLink.js.map +1 -1
  121. package/dist/UI/fluent-web-components/UdpLink.mjs.map +1 -1
  122. package/dist/UI/fluent-web-components/UdpList.d.ts +2 -1
  123. package/dist/UI/fluent-web-components/UdpList.d.ts.map +1 -1
  124. package/dist/UI/fluent-web-components/UdpList.js.map +1 -1
  125. package/dist/UI/fluent-web-components/UdpList.mjs.map +1 -1
  126. package/dist/UI/fluent-web-components/UdpListItem.d.ts +2 -1
  127. package/dist/UI/fluent-web-components/UdpListItem.d.ts.map +1 -1
  128. package/dist/UI/fluent-web-components/UdpListItem.js.map +1 -1
  129. package/dist/UI/fluent-web-components/UdpListItem.mjs.map +1 -1
  130. package/dist/UI/fluent-web-components/UdpLocationInput.d.ts +2 -1
  131. package/dist/UI/fluent-web-components/UdpLocationInput.d.ts.map +1 -1
  132. package/dist/UI/fluent-web-components/UdpLocationInput.js.map +1 -1
  133. package/dist/UI/fluent-web-components/UdpLocationInput.mjs.map +1 -1
  134. package/dist/UI/fluent-web-components/UdpMenu.d.ts +2 -1
  135. package/dist/UI/fluent-web-components/UdpMenu.d.ts.map +1 -1
  136. package/dist/UI/fluent-web-components/UdpMenu.js.map +1 -1
  137. package/dist/UI/fluent-web-components/UdpMenu.mjs.map +1 -1
  138. package/dist/UI/fluent-web-components/UdpMessageBar.d.ts +2 -1
  139. package/dist/UI/fluent-web-components/UdpMessageBar.d.ts.map +1 -1
  140. package/dist/UI/fluent-web-components/UdpMessageBar.js.map +1 -1
  141. package/dist/UI/fluent-web-components/UdpMessageBar.mjs.map +1 -1
  142. package/dist/UI/fluent-web-components/UdpNumberInput.d.ts +2 -1
  143. package/dist/UI/fluent-web-components/UdpNumberInput.d.ts.map +1 -1
  144. package/dist/UI/fluent-web-components/UdpNumberInput.js.map +1 -1
  145. package/dist/UI/fluent-web-components/UdpNumberInput.mjs.map +1 -1
  146. package/dist/UI/fluent-web-components/UdpPopover.d.ts +2 -1
  147. package/dist/UI/fluent-web-components/UdpPopover.d.ts.map +1 -1
  148. package/dist/UI/fluent-web-components/UdpPopover.js.map +1 -1
  149. package/dist/UI/fluent-web-components/UdpPopover.mjs.map +1 -1
  150. package/dist/UI/fluent-web-components/UdpPrimaryActionHeader.d.ts +2 -1
  151. package/dist/UI/fluent-web-components/UdpPrimaryActionHeader.d.ts.map +1 -1
  152. package/dist/UI/fluent-web-components/UdpPrimaryActionHeader.js.map +1 -1
  153. package/dist/UI/fluent-web-components/UdpPrimaryActionHeader.mjs.map +1 -1
  154. package/dist/UI/fluent-web-components/UdpProgressBar.d.ts +2 -1
  155. package/dist/UI/fluent-web-components/UdpProgressBar.d.ts.map +1 -1
  156. package/dist/UI/fluent-web-components/UdpProgressBar.js.map +1 -1
  157. package/dist/UI/fluent-web-components/UdpProgressBar.mjs.map +1 -1
  158. package/dist/UI/fluent-web-components/UdpRadioGroup.d.ts +2 -1
  159. package/dist/UI/fluent-web-components/UdpRadioGroup.d.ts.map +1 -1
  160. package/dist/UI/fluent-web-components/UdpRadioGroup.js.map +1 -1
  161. package/dist/UI/fluent-web-components/UdpRadioGroup.mjs.map +1 -1
  162. package/dist/UI/fluent-web-components/UdpSearchInput.d.ts +2 -1
  163. package/dist/UI/fluent-web-components/UdpSearchInput.d.ts.map +1 -1
  164. package/dist/UI/fluent-web-components/UdpSearchInput.js.map +1 -1
  165. package/dist/UI/fluent-web-components/UdpSearchInput.mjs.map +1 -1
  166. package/dist/UI/fluent-web-components/UdpSidebarLayout.d.ts +9 -0
  167. package/dist/UI/fluent-web-components/UdpSidebarLayout.d.ts.map +1 -0
  168. package/dist/UI/fluent-web-components/UdpSidebarLayout.js +6 -0
  169. package/dist/UI/fluent-web-components/UdpSidebarLayout.js.map +1 -0
  170. package/dist/UI/fluent-web-components/UdpSidebarLayout.mjs +18 -0
  171. package/dist/UI/fluent-web-components/UdpSidebarLayout.mjs.map +1 -0
  172. package/dist/UI/fluent-web-components/UdpSignatureInput.d.ts +2 -1
  173. package/dist/UI/fluent-web-components/UdpSignatureInput.d.ts.map +1 -1
  174. package/dist/UI/fluent-web-components/UdpSignatureInput.js.map +1 -1
  175. package/dist/UI/fluent-web-components/UdpSignatureInput.mjs.map +1 -1
  176. package/dist/UI/fluent-web-components/UdpSkeletonLoading.d.ts +8 -0
  177. package/dist/UI/fluent-web-components/UdpSkeletonLoading.d.ts.map +1 -0
  178. package/dist/UI/fluent-web-components/UdpSkeletonLoading.js +6 -0
  179. package/dist/UI/fluent-web-components/UdpSkeletonLoading.js.map +1 -0
  180. package/dist/UI/fluent-web-components/UdpSkeletonLoading.mjs +18 -0
  181. package/dist/UI/fluent-web-components/UdpSkeletonLoading.mjs.map +1 -0
  182. package/dist/UI/fluent-web-components/UdpSlider.d.ts +2 -1
  183. package/dist/UI/fluent-web-components/UdpSlider.d.ts.map +1 -1
  184. package/dist/UI/fluent-web-components/UdpSlider.js.map +1 -1
  185. package/dist/UI/fluent-web-components/UdpSlider.mjs.map +1 -1
  186. package/dist/UI/fluent-web-components/UdpSpinner.d.ts +2 -1
  187. package/dist/UI/fluent-web-components/UdpSpinner.d.ts.map +1 -1
  188. package/dist/UI/fluent-web-components/UdpSpinner.js.map +1 -1
  189. package/dist/UI/fluent-web-components/UdpSpinner.mjs.map +1 -1
  190. package/dist/UI/fluent-web-components/UdpSwatchPicker.d.ts +2 -1
  191. package/dist/UI/fluent-web-components/UdpSwatchPicker.d.ts.map +1 -1
  192. package/dist/UI/fluent-web-components/UdpSwatchPicker.js.map +1 -1
  193. package/dist/UI/fluent-web-components/UdpSwatchPicker.mjs.map +1 -1
  194. package/dist/UI/fluent-web-components/UdpSwitch.d.ts +2 -1
  195. package/dist/UI/fluent-web-components/UdpSwitch.d.ts.map +1 -1
  196. package/dist/UI/fluent-web-components/UdpSwitch.js.map +1 -1
  197. package/dist/UI/fluent-web-components/UdpSwitch.mjs.map +1 -1
  198. package/dist/UI/fluent-web-components/UdpTablist.d.ts +2 -1
  199. package/dist/UI/fluent-web-components/UdpTablist.d.ts.map +1 -1
  200. package/dist/UI/fluent-web-components/UdpTablist.js.map +1 -1
  201. package/dist/UI/fluent-web-components/UdpTablist.mjs.map +1 -1
  202. package/dist/UI/fluent-web-components/UdpText.d.ts +2 -1
  203. package/dist/UI/fluent-web-components/UdpText.d.ts.map +1 -1
  204. package/dist/UI/fluent-web-components/UdpText.js.map +1 -1
  205. package/dist/UI/fluent-web-components/UdpText.mjs.map +1 -1
  206. package/dist/UI/fluent-web-components/UdpTextInput.d.ts +2 -1
  207. package/dist/UI/fluent-web-components/UdpTextInput.d.ts.map +1 -1
  208. package/dist/UI/fluent-web-components/UdpTextInput.js.map +1 -1
  209. package/dist/UI/fluent-web-components/UdpTextInput.mjs.map +1 -1
  210. package/dist/UI/fluent-web-components/UdpTextarea.d.ts +4 -1
  211. package/dist/UI/fluent-web-components/UdpTextarea.d.ts.map +1 -1
  212. package/dist/UI/fluent-web-components/UdpTextarea.js.map +1 -1
  213. package/dist/UI/fluent-web-components/UdpTextarea.mjs.map +1 -1
  214. package/dist/UI/fluent-web-components/UdpTimeInput.d.ts +2 -1
  215. package/dist/UI/fluent-web-components/UdpTimeInput.d.ts.map +1 -1
  216. package/dist/UI/fluent-web-components/UdpTimeInput.js.map +1 -1
  217. package/dist/UI/fluent-web-components/UdpTimeInput.mjs.map +1 -1
  218. package/dist/UI/fluent-web-components/UdpToggleButton.d.ts +2 -1
  219. package/dist/UI/fluent-web-components/UdpToggleButton.d.ts.map +1 -1
  220. package/dist/UI/fluent-web-components/UdpToggleButton.js.map +1 -1
  221. package/dist/UI/fluent-web-components/UdpToggleButton.mjs.map +1 -1
  222. package/dist/UI/fluent-web-components/UdpTooltip.d.ts +2 -1
  223. package/dist/UI/fluent-web-components/UdpTooltip.d.ts.map +1 -1
  224. package/dist/UI/fluent-web-components/UdpTooltip.js.map +1 -1
  225. package/dist/UI/fluent-web-components/UdpTooltip.mjs.map +1 -1
  226. package/dist/UI/fluent-web-components/UdpVerticalSpacer.d.ts +2 -1
  227. package/dist/UI/fluent-web-components/UdpVerticalSpacer.d.ts.map +1 -1
  228. package/dist/UI/fluent-web-components/UdpVerticalSpacer.js.map +1 -1
  229. package/dist/UI/fluent-web-components/UdpVerticalSpacer.mjs.map +1 -1
  230. package/dist/UI/fluent-web-components/index.d.ts +4 -0
  231. package/dist/UI/fluent-web-components/index.d.ts.map +1 -1
  232. package/dist/UI/fluent-web-components/index.js +4 -0
  233. package/dist/UI/fluent-web-components/index.js.map +1 -1
  234. package/dist/UI/fluent-web-components/types.d.ts +26 -0
  235. package/dist/UI/fluent-web-components/types.d.ts.map +1 -0
  236. package/dist/UI/fluent-web-components/types.js +2 -0
  237. package/dist/UI/fluent-web-components/types.js.map +1 -0
  238. package/dist/UI/utilityDisplay/utilities/aggregateUtils.d.ts +8 -0
  239. package/dist/UI/utilityDisplay/utilities/aggregateUtils.d.ts.map +1 -1
  240. package/dist/UI/utilityDisplay/utilities/aggregateUtils.js +22 -0
  241. package/dist/UI/utilityDisplay/utilities/aggregateUtils.js.map +1 -1
  242. package/dist/UI/utilityDisplay/utilities/aggregateUtils.mjs.map +1 -1
  243. package/dist/actions/ActionSplitScreen.d.ts.map +1 -1
  244. package/dist/actions/ActionSplitScreen.js +2 -2
  245. package/dist/actions/ActionSplitScreen.js.map +1 -1
  246. package/dist/actions/ActionSplitScreen.mjs +155 -149
  247. package/dist/actions/ActionSplitScreen.mjs.map +1 -1
  248. package/dist/aiAssistant/AiMessageText.d.ts +5 -0
  249. package/dist/aiAssistant/AiMessageText.d.ts.map +1 -0
  250. package/dist/aiAssistant/AiMessageText.js +33 -0
  251. package/dist/aiAssistant/AiMessageText.js.map +1 -0
  252. package/dist/aiAssistant/AiMessageText.mjs +59 -0
  253. package/dist/aiAssistant/AiMessageText.mjs.map +1 -0
  254. package/dist/aiAssistant/AiMessageText.module.css +35 -0
  255. package/dist/aiAssistant/AiProposalCard.d.ts +18 -0
  256. package/dist/aiAssistant/AiProposalCard.d.ts.map +1 -0
  257. package/dist/aiAssistant/AiProposalCard.js +14 -0
  258. package/dist/aiAssistant/AiProposalCard.js.map +1 -0
  259. package/dist/aiAssistant/AiProposalCard.mjs +116 -0
  260. package/dist/aiAssistant/AiProposalCard.mjs.map +1 -0
  261. package/dist/aiAssistant/AiProposalCard.module.css +49 -0
  262. package/dist/aiAssistant/AssistantChat.d.ts +72 -0
  263. package/dist/aiAssistant/AssistantChat.d.ts.map +1 -0
  264. package/dist/aiAssistant/AssistantChat.js +195 -0
  265. package/dist/aiAssistant/AssistantChat.js.map +1 -0
  266. package/dist/aiAssistant/AssistantChat.mjs +514 -0
  267. package/dist/aiAssistant/AssistantChat.mjs.map +1 -0
  268. package/dist/aiAssistant/AssistantChat.module.css +120 -0
  269. package/dist/aiAssistant/UdpAiAssistant.d.ts +21 -0
  270. package/dist/aiAssistant/UdpAiAssistant.d.ts.map +1 -0
  271. package/dist/aiAssistant/UdpAiAssistant.js +49 -0
  272. package/dist/aiAssistant/UdpAiAssistant.js.map +1 -0
  273. package/dist/aiAssistant/UdpAiAssistant.mjs +108 -0
  274. package/dist/aiAssistant/UdpAiAssistant.mjs.map +1 -0
  275. package/dist/aiAssistant/UdpAiAssistant.module.css +8 -0
  276. package/dist/aiAssistant/askClarification.d.ts +5 -0
  277. package/dist/aiAssistant/askClarification.d.ts.map +1 -0
  278. package/dist/aiAssistant/askClarification.js +21 -0
  279. package/dist/aiAssistant/askClarification.js.map +1 -0
  280. package/dist/aiAssistant/askClarification.mjs +23 -0
  281. package/dist/aiAssistant/askClarification.mjs.map +1 -0
  282. package/dist/aiAssistant/conversation.d.ts +74 -0
  283. package/dist/aiAssistant/conversation.d.ts.map +1 -0
  284. package/dist/aiAssistant/conversation.js +75 -0
  285. package/dist/aiAssistant/conversation.js.map +1 -0
  286. package/dist/aiAssistant/conversation.mjs +72 -0
  287. package/dist/aiAssistant/conversation.mjs.map +1 -0
  288. package/dist/aiAssistant/conversationState.d.ts +74 -0
  289. package/dist/aiAssistant/conversationState.d.ts.map +1 -0
  290. package/dist/aiAssistant/conversationState.js +136 -0
  291. package/dist/aiAssistant/conversationState.js.map +1 -0
  292. package/dist/aiAssistant/conversationState.mjs +147 -0
  293. package/dist/aiAssistant/conversationState.mjs.map +1 -0
  294. package/dist/aiAssistant/engine.d.ts +62 -0
  295. package/dist/aiAssistant/engine.d.ts.map +1 -0
  296. package/dist/aiAssistant/engine.js +269 -0
  297. package/dist/aiAssistant/engine.js.map +1 -0
  298. package/dist/aiAssistant/engine.mjs +290 -0
  299. package/dist/aiAssistant/engine.mjs.map +1 -0
  300. package/dist/aiAssistant/index.d.ts +13 -0
  301. package/dist/aiAssistant/index.d.ts.map +1 -0
  302. package/dist/aiAssistant/index.js +13 -0
  303. package/dist/aiAssistant/index.js.map +1 -0
  304. package/dist/aiAssistant/openai.d.ts +90 -0
  305. package/dist/aiAssistant/openai.d.ts.map +1 -0
  306. package/dist/aiAssistant/openai.js +181 -0
  307. package/dist/aiAssistant/openai.js.map +1 -0
  308. package/dist/aiAssistant/openai.mjs +167 -0
  309. package/dist/aiAssistant/openai.mjs.map +1 -0
  310. package/dist/aiAssistant/provider/UdpAiProvider.d.ts +43 -0
  311. package/dist/aiAssistant/provider/UdpAiProvider.d.ts.map +1 -0
  312. package/dist/aiAssistant/provider/UdpAiProvider.js +65 -0
  313. package/dist/aiAssistant/provider/UdpAiProvider.js.map +1 -0
  314. package/dist/aiAssistant/provider/UdpAiProvider.mjs +66 -0
  315. package/dist/aiAssistant/provider/UdpAiProvider.mjs.map +1 -0
  316. package/dist/aiAssistant/provider/index.d.ts +3 -0
  317. package/dist/aiAssistant/provider/index.d.ts.map +1 -0
  318. package/dist/aiAssistant/provider/index.js +3 -0
  319. package/dist/aiAssistant/provider/index.js.map +1 -0
  320. package/dist/aiAssistant/types.d.ts +157 -0
  321. package/dist/aiAssistant/types.d.ts.map +1 -0
  322. package/dist/aiAssistant/types.js +2 -0
  323. package/dist/aiAssistant/types.js.map +1 -0
  324. package/dist/aiAssistant/useAiAssistant.d.ts +20 -0
  325. package/dist/aiAssistant/useAiAssistant.d.ts.map +1 -0
  326. package/dist/aiAssistant/useAiAssistant.js +26 -0
  327. package/dist/aiAssistant/useAiAssistant.js.map +1 -0
  328. package/dist/aiAssistant/useAiAssistant.mjs +98 -0
  329. package/dist/aiAssistant/useAiAssistant.mjs.map +1 -0
  330. package/dist/aiAssistant/useConversation.d.ts +17 -0
  331. package/dist/aiAssistant/useConversation.d.ts.map +1 -0
  332. package/dist/aiAssistant/useConversation.js +29 -0
  333. package/dist/aiAssistant/useConversation.js.map +1 -0
  334. package/dist/aiAssistant/useConversation.mjs +52 -0
  335. package/dist/aiAssistant/useConversation.mjs.map +1 -0
  336. package/dist/chatBot/ChatContainer.d.ts +4 -0
  337. package/dist/chatBot/ChatContainer.d.ts.map +1 -1
  338. package/dist/chatBot/ChatContainer.js +8 -0
  339. package/dist/chatBot/ChatContainer.js.map +1 -1
  340. package/dist/chatBot/ChatContainer.mjs +7 -0
  341. package/dist/chatBot/ChatContainer.mjs.map +1 -1
  342. package/dist/chatBot/ChatMessage.d.ts +4 -0
  343. package/dist/chatBot/ChatMessage.d.ts.map +1 -1
  344. package/dist/chatBot/ChatMessage.js +8 -0
  345. package/dist/chatBot/ChatMessage.js.map +1 -1
  346. package/dist/chatBot/ChatMessage.mjs +60 -47
  347. package/dist/chatBot/ChatMessage.mjs.map +1 -1
  348. package/dist/componentSystems/pageRenderer/hooks/useReadMetaData.d.ts +1 -1
  349. package/dist/domain/entityForm/entityFormModel.d.ts +41 -0
  350. package/dist/domain/entityForm/entityFormModel.d.ts.map +1 -0
  351. package/dist/domain/entityForm/entityFormModel.js +31 -0
  352. package/dist/domain/entityForm/entityFormModel.js.map +1 -0
  353. package/dist/domain/entityForm/entityFormModel.mjs +34 -0
  354. package/dist/domain/entityForm/entityFormModel.mjs.map +1 -0
  355. package/dist/hooks/crudActions.d.ts.map +1 -1
  356. package/dist/hooks/crudActions.js +2 -6
  357. package/dist/hooks/crudActions.js.map +1 -1
  358. package/dist/hooks/crudActions.mjs +2 -8
  359. package/dist/hooks/crudActions.mjs.map +1 -1
  360. package/dist/hooks/crudForeignKeyData.d.ts.map +1 -1
  361. package/dist/hooks/crudForeignKeyData.js +2 -7
  362. package/dist/hooks/crudForeignKeyData.js.map +1 -1
  363. package/dist/hooks/crudForeignKeyData.mjs +4 -9
  364. package/dist/hooks/crudForeignKeyData.mjs.map +1 -1
  365. package/dist/hooks/usePromotedLookupMethods.d.ts.map +1 -1
  366. package/dist/hooks/usePromotedLookupMethods.js +4 -1
  367. package/dist/hooks/usePromotedLookupMethods.js.map +1 -1
  368. package/dist/hooks/usePromotedLookupMethods.mjs +3 -1
  369. package/dist/hooks/usePromotedLookupMethods.mjs.map +1 -1
  370. package/dist/hooks/usePromotedMethodEntities.d.ts.map +1 -1
  371. package/dist/hooks/usePromotedMethodEntities.js +5 -1
  372. package/dist/hooks/usePromotedMethodEntities.js.map +1 -1
  373. package/dist/hooks/usePromotedMethodEntities.mjs +3 -1
  374. package/dist/hooks/usePromotedMethodEntities.mjs.map +1 -1
  375. package/dist/hooks/usePromotedMethodEntity.js +1 -1
  376. package/dist/hooks/usePromotedMethodEntity.js.map +1 -1
  377. package/dist/hooks/usePromotedMethodEntity.mjs +1 -1
  378. package/dist/hooks/usePromotedMethodEntity.mjs.map +1 -1
  379. package/dist/index.d.ts +2 -0
  380. package/dist/index.d.ts.map +1 -1
  381. package/dist/index.js +2 -0
  382. package/dist/index.js.map +1 -1
  383. package/dist/index.mjs +23 -3
  384. package/dist/maintenanceEngine/crudBrowser/CrudTableSidePanel.d.ts.map +1 -1
  385. package/dist/maintenanceEngine/crudBrowser/CrudTableSidePanel.js +2 -9
  386. package/dist/maintenanceEngine/crudBrowser/CrudTableSidePanel.js.map +1 -1
  387. package/dist/maintenanceEngine/crudBrowser/CrudTableSidePanel.mjs +69 -90
  388. package/dist/maintenanceEngine/crudBrowser/CrudTableSidePanel.mjs.map +1 -1
  389. package/dist/maintenanceEngine/entityFormInputs.d.ts +39 -0
  390. package/dist/maintenanceEngine/entityFormInputs.d.ts.map +1 -0
  391. package/dist/maintenanceEngine/entityFormInputs.js +174 -0
  392. package/dist/maintenanceEngine/entityFormInputs.js.map +1 -0
  393. package/dist/maintenanceEngine/entityFormInputs.mjs +133 -0
  394. package/dist/maintenanceEngine/entityFormInputs.mjs.map +1 -0
  395. package/dist/maintenanceEngine/tableBrowser/TableColumnDefs.d.ts +1 -1
  396. package/dist/maintenanceEngine/tableBrowser/TableColumnDefs.d.ts.map +1 -1
  397. package/dist/maintenanceEngine/virtualBrowser/VirtualBrowser.js +2 -2
  398. package/dist/maintenanceEngine/virtualBrowser/VirtualBrowser.js.map +1 -1
  399. package/dist/maintenanceEngine/virtualBrowser/VirtualBrowser.mjs +2 -2
  400. package/dist/maintenanceEngine/virtualBrowser/VirtualBrowser.mjs.map +1 -1
  401. package/dist/notes/NotesScreen.d.ts.map +1 -1
  402. package/dist/notes/NotesScreen.js +8 -2
  403. package/dist/notes/NotesScreen.js.map +1 -1
  404. package/dist/notes/NotesScreen.mjs +5 -1
  405. package/dist/notes/NotesScreen.mjs.map +1 -1
  406. package/dist/providers/UdpAiAppSurface.d.ts +19 -0
  407. package/dist/providers/UdpAiAppSurface.d.ts.map +1 -0
  408. package/dist/providers/UdpAiAppSurface.js +39 -0
  409. package/dist/providers/UdpAiAppSurface.js.map +1 -0
  410. package/dist/providers/UdpAiAppSurface.mjs +56 -0
  411. package/dist/providers/UdpAiAppSurface.mjs.map +1 -0
  412. package/dist/providers/UdpAppProvider.d.ts +20 -0
  413. package/dist/providers/UdpAppProvider.d.ts.map +1 -1
  414. package/dist/providers/UdpAppProvider.js +6 -2
  415. package/dist/providers/UdpAppProvider.js.map +1 -1
  416. package/dist/providers/UdpAppProvider.mjs +30 -21
  417. package/dist/providers/UdpAppProvider.mjs.map +1 -1
  418. package/dist/reminders/RemindersScreen.d.ts.map +1 -1
  419. package/dist/reminders/RemindersScreen.js +8 -2
  420. package/dist/reminders/RemindersScreen.js.map +1 -1
  421. package/dist/reminders/RemindersScreen.mjs +5 -1
  422. package/dist/reminders/RemindersScreen.mjs.map +1 -1
  423. package/dist/routes/UdpRoutes.d.ts.map +1 -1
  424. package/dist/routes/UdpRoutes.js.map +1 -1
  425. package/dist/routes/UdpRoutes.mjs.map +1 -1
  426. package/dist/searchIntent/compile.d.ts +9 -0
  427. package/dist/searchIntent/compile.d.ts.map +1 -0
  428. package/dist/searchIntent/compile.js +127 -0
  429. package/dist/searchIntent/compile.js.map +1 -0
  430. package/dist/searchIntent/compile.mjs +120 -0
  431. package/dist/searchIntent/compile.mjs.map +1 -0
  432. package/dist/searchIntent/diff.d.ts +10 -0
  433. package/dist/searchIntent/diff.d.ts.map +1 -0
  434. package/dist/searchIntent/diff.js +90 -0
  435. package/dist/searchIntent/diff.js.map +1 -0
  436. package/dist/searchIntent/diff.mjs +88 -0
  437. package/dist/searchIntent/diff.mjs.map +1 -0
  438. package/dist/searchIntent/index.d.ts +13 -0
  439. package/dist/searchIntent/index.d.ts.map +1 -0
  440. package/dist/searchIntent/index.js +13 -0
  441. package/dist/searchIntent/index.js.map +1 -0
  442. package/dist/searchIntent/operators.d.ts +28 -0
  443. package/dist/searchIntent/operators.d.ts.map +1 -0
  444. package/dist/searchIntent/operators.js +184 -0
  445. package/dist/searchIntent/operators.js.map +1 -0
  446. package/dist/searchIntent/operators.mjs +164 -0
  447. package/dist/searchIntent/operators.mjs.map +1 -0
  448. package/dist/searchIntent/prompt.d.ts +36 -0
  449. package/dist/searchIntent/prompt.d.ts.map +1 -0
  450. package/dist/searchIntent/prompt.js +152 -0
  451. package/dist/searchIntent/prompt.js.map +1 -0
  452. package/dist/searchIntent/prompt.mjs +116 -0
  453. package/dist/searchIntent/prompt.mjs.map +1 -0
  454. package/dist/searchIntent/tools.d.ts +19 -0
  455. package/dist/searchIntent/tools.d.ts.map +1 -0
  456. package/dist/searchIntent/tools.js +189 -0
  457. package/dist/searchIntent/tools.js.map +1 -0
  458. package/dist/searchIntent/tools.mjs +209 -0
  459. package/dist/searchIntent/tools.mjs.map +1 -0
  460. package/dist/searchIntent/types.d.ts +95 -0
  461. package/dist/searchIntent/types.d.ts.map +1 -0
  462. package/dist/searchIntent/types.js +2 -0
  463. package/dist/searchIntent/types.js.map +1 -0
  464. package/dist/searchIntent/validate.d.ts +19 -0
  465. package/dist/searchIntent/validate.d.ts.map +1 -0
  466. package/dist/searchIntent/validate.js +136 -0
  467. package/dist/searchIntent/validate.js.map +1 -0
  468. package/dist/searchIntent/validate.mjs +103 -0
  469. package/dist/searchIntent/validate.mjs.map +1 -0
  470. package/dist/stores/inquiryStore.d.ts +2 -2
  471. package/dist/stores/inquiryStore.d.ts.map +1 -1
  472. package/dist/stores/inquiryStore.mjs.map +1 -1
  473. package/dist/udp/export/MyExportsPage.js +1 -1
  474. package/dist/udp/export/MyExportsPage.js.map +1 -1
  475. package/dist/udp/export/MyExportsPage.mjs +1 -1
  476. package/dist/udp/export/MyExportsPage.mjs.map +1 -1
  477. package/dist/udp/pages/UdpDataBrowserPage/UdpDataBrowserPage.js +4 -4
  478. package/dist/udp/pages/UdpDataBrowserPage/UdpDataBrowserPage.js.map +1 -1
  479. package/dist/udp/pages/UdpDataBrowserPage/UdpDataBrowserPage.mjs +4 -4
  480. package/dist/udp/pages/UdpDataBrowserPage/UdpDataBrowserPage.mjs.map +1 -1
  481. package/dist/udp/pages/UdpMaintenanceConfigPage/UdpMaintenanceConfigPage.js +1 -1
  482. package/dist/udp/pages/UdpMaintenanceConfigPage/UdpMaintenanceConfigPage.js.map +1 -1
  483. package/dist/udp/pages/UdpMaintenanceConfigPage/UdpMaintenanceConfigPage.mjs +1 -1
  484. package/dist/udp/pages/UdpMaintenanceConfigPage/UdpMaintenanceConfigPage.mjs.map +1 -1
  485. package/dist/udp/pages/UdpMaintenanceEnginePage/UdpMaintenanceEnginePage.d.ts.map +1 -1
  486. package/dist/udp/pages/UdpMaintenanceEnginePage/UdpMaintenanceEnginePage.js +38 -206
  487. package/dist/udp/pages/UdpMaintenanceEnginePage/UdpMaintenanceEnginePage.js.map +1 -1
  488. package/dist/udp/pages/UdpMaintenanceEnginePage/UdpMaintenanceEnginePage.mjs +63 -172
  489. package/dist/udp/pages/UdpMaintenanceEnginePage/UdpMaintenanceEnginePage.mjs.map +1 -1
  490. package/dist/udp/tags/useTags.d.ts +13 -1
  491. package/dist/udp/tags/useTags.d.ts.map +1 -1
  492. package/dist/udp/tags/useTags.js +16 -6
  493. package/dist/udp/tags/useTags.js.map +1 -1
  494. package/dist/udp/tags/useTags.mjs +41 -35
  495. package/dist/udp/tags/useTags.mjs.map +1 -1
  496. package/dist/udp/utilities/useDateStringColumnDef.d.ts +1 -1
  497. package/dist/utilities/configRequestDedupe.d.ts +31 -0
  498. package/dist/utilities/configRequestDedupe.d.ts.map +1 -0
  499. package/dist/utilities/configRequestDedupe.js +106 -0
  500. package/dist/utilities/configRequestDedupe.js.map +1 -0
  501. package/dist/utilities/configRequestDedupe.mjs +90 -0
  502. package/dist/utilities/configRequestDedupe.mjs.map +1 -0
  503. package/dist/utilities/crud/useDefaultFormValues.d.ts.map +1 -1
  504. package/dist/utilities/crud/useDefaultFormValues.js +14 -9
  505. package/dist/utilities/crud/useDefaultFormValues.js.map +1 -1
  506. package/dist/utilities/crud/useDefaultFormValues.mjs +23 -5
  507. package/dist/utilities/crud/useDefaultFormValues.mjs.map +1 -1
  508. package/dist/utilities/entities/entityUtilities.d.ts +9 -0
  509. package/dist/utilities/entities/entityUtilities.d.ts.map +1 -1
  510. package/dist/utilities/entities/entityUtilities.js +12 -1
  511. package/dist/utilities/entities/entityUtilities.js.map +1 -1
  512. package/dist/utilities/entities/entityUtilities.mjs +15 -2
  513. package/dist/utilities/entities/entityUtilities.mjs.map +1 -1
  514. package/dist/utilities/i18n/locales/es-US.json +104 -1
  515. package/dist/utilities/i18n/locales/es-US.mjs +98 -1
  516. package/dist/utilities/i18n/locales/fr-CA.json +104 -1
  517. package/dist/utilities/i18n/locales/fr-CA.mjs +98 -1
  518. package/dist/utilities/iconLibrary/SelectedLibraryItem.d.ts.map +1 -1
  519. package/dist/utilities/iconLibrary/SelectedLibraryItem.js +0 -1
  520. package/dist/utilities/iconLibrary/SelectedLibraryItem.js.map +1 -1
  521. package/dist/utilities/iconLibrary/SelectedLibraryItem.mjs.map +1 -1
  522. package/dist/utilities/provider/ActionProvider.d.ts.map +1 -1
  523. package/dist/utilities/provider/ActionProvider.js +23 -9
  524. package/dist/utilities/provider/ActionProvider.js.map +1 -1
  525. package/dist/utilities/provider/ActionProvider.mjs +382 -201
  526. package/dist/utilities/provider/ActionProvider.mjs.map +1 -1
  527. package/dist/utilities/useAxiosGet.d.ts.map +1 -1
  528. package/dist/utilities/useAxiosGet.js +3 -1
  529. package/dist/utilities/useAxiosGet.js.map +1 -1
  530. package/dist/utilities/useAxiosGet.mjs +4 -1
  531. package/dist/utilities/useAxiosGet.mjs.map +1 -1
  532. package/package.json +105 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/searchIntent/compile.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,eAAe,EAGf,MAAM,EACP,MAAM,yCAAyC,CAAC;AAEjD,OAAO,KAAK,EAGV,qBAAqB,EACrB,WAAW,EACZ,MAAM,SAAS,CAAC;AA4DjB;;;;GAIG;AACH,eAAO,MAAM,aAAa,8GAkGzB,CAAC"}
@@ -0,0 +1,127 @@
1
+ import { LogicalSearchOperator, SearchGroupingType } from 'udp-stencil-component-library';
2
+ import { OPERATOR_TO_BACKEND } from './operators';
3
+ const toLogicalOperator = (op) => op === 'or' ? LogicalSearchOperator.Or : LogicalSearchOperator.And;
4
+ const toFilterElement = (cond, groupId) => {
5
+ var _a;
6
+ return ({
7
+ searchField: cond.field,
8
+ searchOperator: OPERATOR_TO_BACKEND[cond.operator],
9
+ // Multi-value operators are comma-joined ("v1,v2"), matching both the manual
10
+ // builder's storage format and the grid's search composition.
11
+ searchValue: cond.values ? cond.values.join(',') : ((_a = cond.value) !== null && _a !== void 0 ? _a : ''),
12
+ groupId
13
+ });
14
+ };
15
+ /**
16
+ * Compiles the filter spec into filterElements + filterGroups with
17
+ * deterministically assigned group ids: root group is 1, subgroups 2..n.
18
+ * This is the shape getNormalizedData in the advanced search builder expects.
19
+ */
20
+ const compileFilters = (spec) => {
21
+ var _a, _b;
22
+ const ROOT_GROUP_ID = 1;
23
+ const filterGroups = [
24
+ {
25
+ groupId: ROOT_GROUP_ID,
26
+ parentGroupId: null,
27
+ logicalSearchOperator: toLogicalOperator(spec.op)
28
+ }
29
+ ];
30
+ const filterElements = ((_a = spec.conditions) !== null && _a !== void 0 ? _a : []).map((c) => toFilterElement(c, ROOT_GROUP_ID));
31
+ let nextGroupId = ROOT_GROUP_ID + 1;
32
+ for (const group of (_b = spec.groups) !== null && _b !== void 0 ? _b : []) {
33
+ const groupId = nextGroupId++;
34
+ filterGroups.push({
35
+ groupId,
36
+ parentGroupId: ROOT_GROUP_ID,
37
+ logicalSearchOperator: toLogicalOperator(group.op)
38
+ });
39
+ filterElements.push(...group.conditions.map((c) => toFilterElement(c, groupId)));
40
+ }
41
+ return {
42
+ filterElements,
43
+ filterGroups,
44
+ logicalSearchOperator: toLogicalOperator(spec.op)
45
+ };
46
+ };
47
+ /**
48
+ * Applies a validated intent to the current state, producing the next
49
+ * searchBody + columns. Pure: never mutates inputs. Sections that are
50
+ * null/omitted in the intent pass through unchanged.
51
+ */
52
+ export const compileIntent = (intent, currentSearchBody, currentColumns) => {
53
+ var _a, _b, _c, _d, _e;
54
+ let searchBody = Object.assign({}, currentSearchBody);
55
+ if (intent.filters !== undefined && intent.filters !== null) {
56
+ searchBody = Object.assign(Object.assign({}, searchBody), compileFilters(intent.filters));
57
+ }
58
+ if (intent.sorts !== undefined && intent.sorts !== null) {
59
+ searchBody = Object.assign(Object.assign({}, searchBody), { orderElements: intent.sorts.map((s) => ({
60
+ sortColumn: s.field,
61
+ sortDirection: s.direction
62
+ })) });
63
+ }
64
+ if (intent.grouping !== undefined && intent.grouping !== null) {
65
+ const groupProperty = [...((_a = intent.grouping.groupBy) !== null && _a !== void 0 ? _a : [])];
66
+ const groupOperationList = ((_b = intent.grouping.aggregates) !== null && _b !== void 0 ? _b : []).map((a) => ({
67
+ operation: a.operation,
68
+ property: a.field
69
+ }));
70
+ // Aggregate when both groupBy and aggregates present, Distinct when only
71
+ // groupBy — the same derivation Data Builder's manual grouping UI applies.
72
+ const groupingType = groupProperty.length > 0
73
+ ? groupOperationList.length > 0
74
+ ? SearchGroupingType.Aggregate
75
+ : SearchGroupingType.Distinct
76
+ : SearchGroupingType.None;
77
+ searchBody = Object.assign(Object.assign({}, searchBody), { groupProperty,
78
+ groupOperationList,
79
+ groupingType });
80
+ }
81
+ if (intent.pageSize !== undefined && intent.pageSize !== null) {
82
+ searchBody = Object.assign(Object.assign({}, searchBody), { pageSize: intent.pageSize });
83
+ }
84
+ // Grouping-active invariants, mirroring the backend's own conventions
85
+ // (verified against the starter-project SearchUtil/DAO):
86
+ // - a grouped SELECT can only be ordered by grouped columns; the DB rejects
87
+ // anything else ("ORDER BY items must appear in the select list"), and an
88
+ // order on a grouped column is required for stable pagination
89
+ // - the AGGREGATE pk-list subquery only selects the pk expression when
90
+ // EagerLoad is true (the backend service sets EagerLoad=true itself when
91
+ // it builds aggregate searches)
92
+ const groupProperty = (_c = searchBody.groupProperty) !== null && _c !== void 0 ? _c : [];
93
+ if (groupProperty.length > 0) {
94
+ const grouped = new Set(groupProperty);
95
+ let orderElements = ((_d = searchBody.orderElements) !== null && _d !== void 0 ? _d : []).filter((o) => grouped.has(o.sortColumn));
96
+ if (orderElements.length === 0) {
97
+ orderElements = [{ sortColumn: groupProperty[0], sortDirection: 'ASC' }];
98
+ }
99
+ searchBody = Object.assign(Object.assign({}, searchBody), { orderElements });
100
+ if (((_e = searchBody.groupOperationList) !== null && _e !== void 0 ? _e : []).length > 0) {
101
+ searchBody = Object.assign(Object.assign({}, searchBody), { eagerLoad: true });
102
+ }
103
+ }
104
+ let columns = currentColumns;
105
+ if (intent.columns) {
106
+ const { showOnly, show, hide } = intent.columns;
107
+ const showSet = new Set(show !== null && show !== void 0 ? show : []);
108
+ const hideSet = new Set(hide !== null && hide !== void 0 ? hide : []);
109
+ const showOnlySet = showOnly ? new Set(showOnly) : null;
110
+ columns = currentColumns.map((col) => {
111
+ var _a;
112
+ const currentVisible = ((_a = col.extendedProperties) === null || _a === void 0 ? void 0 : _a.defaultVisible) !== false;
113
+ const nextVisible = showOnlySet
114
+ ? showOnlySet.has(col.name)
115
+ : showSet.has(col.name)
116
+ ? true
117
+ : hideSet.has(col.name)
118
+ ? false
119
+ : currentVisible;
120
+ if (nextVisible === currentVisible)
121
+ return col;
122
+ return Object.assign(Object.assign({}, col), { extendedProperties: Object.assign(Object.assign({}, col.extendedProperties), { defaultVisible: nextVisible }) });
123
+ });
124
+ }
125
+ return { searchBody, columns };
126
+ };
127
+ //# sourceMappingURL=compile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/searchIntent/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,yCAAyC,CAAC;AAOjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAQlD,MAAM,iBAAiB,GAAG,CAAC,EAAgB,EAAU,EAAE,CACrD,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC;AAErE,MAAM,eAAe,GAAG,CACtB,IAAiB,EACjB,OAAe,EACA,EAAE;;WAAC,CAAC;QACnB,WAAW,EAAE,IAAI,CAAC,KAAK;QACvB,cAAc,EAAE,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAClD,6EAA6E;QAC7E,8DAA8D;QAC9D,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAC,IAAI,CAAC,KAAK,mCAAI,EAAE,CAAC;QACrE,OAAO;KACR,CAAC;CAAA,CAAC;AAEH;;;;GAIG;AACH,MAAM,cAAc,GAAG,CACrB,IAAkB,EAIlB,EAAE,CAAC;;IACH,MAAM,aAAa,GAAG,CAAC,CAAC;IACxB,MAAM,YAAY,GAAkB;QAClC;YACE,OAAO,EAAE,aAAa;YACtB,aAAa,EAAE,IAAI;YACnB,qBAAqB,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;SAClD;KACF,CAAC;IACF,MAAM,cAAc,GAAoB,OAAC,IAAI,CAAC,UAAU,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACxE,eAAe,CAAC,CAAC,EAAE,aAAa,CAAC,CAClC,CAAC;IAEF,IAAI,WAAW,GAAG,aAAa,GAAG,CAAC,CAAC;IACpC,KAAK,MAAM,KAAK,UAAI,IAAI,CAAC,MAAM,mCAAI,EAAE,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;QAC9B,YAAY,CAAC,IAAI,CAAC;YAChB,OAAO;YACP,aAAa,EAAE,aAAa;YAC5B,qBAAqB,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;SACnD,CAAC,CAAC;QACH,cAAc,CAAC,IAAI,CACjB,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAC5D,CAAC;IACJ,CAAC;IAED,OAAO;QACL,cAAc;QACd,YAAY;QACZ,qBAAqB,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;KAClD,CAAC;AAAA,CACH,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,MAAmB,EACnB,iBAAyB,EACzB,cAAiC,EACV,EAAE,CAAC;;IAC1B,IAAI,UAAU,qBAAgB,iBAAiB,CAAE,CAAC;IAElD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC5D,UAAU,mCAAQ,UAAU,GAAK,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAE,CAAC;IACpE,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACxD,UAAU,mCACL,UAAU,KACb,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACtC,UAAU,EAAE,CAAC,CAAC,KAAK;gBACnB,aAAa,EAAE,CAAC,CAAC,SAAS;aAC3B,CAAC,CAAC,GACJ,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC9D,MAAM,aAAa,GAAG,CAAC,GAAG,OAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,mCAAI,EAAE,CAAC,CAAC,CAAC;QAC3D,MAAM,kBAAkB,GAAG,OAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACxE,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,QAAQ,EAAE,CAAC,CAAC,KAAK;SAClB,CAAC,CAAC,CAAC;QACJ,yEAAyE;QACzE,6EAA2E;QAC3E,MAAM,YAAY,GAChB,aAAa,CAAC,MAAM,GAAG,CAAC;YACtB,CAAC,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC;gBAC7B,CAAC,CAAC,kBAAkB,CAAC,SAAS;gBAC9B,CAAC,CAAC,kBAAkB,CAAC,QAAQ;YAC/B,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC;QAC9B,UAAU,mCACL,UAAU,KACb,aAAa;YACb,kBAAkB;YAClB,YAAY,GACb,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC9D,UAAU,mCAAQ,UAAU,KAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAE,CAAC;IAC5D,CAAC;IAED,sEAAsE;IACtE,yDAAyD;IACzD,4EAA4E;IAC5E,4EAA4E;IAC5E,gEAAgE;IAChE,uEAAuE;IACvE,2EAA2E;IAC3E,kCAAkC;IAClC,MAAM,aAAa,SAAG,UAAU,CAAC,aAAa,mCAAI,EAAE,CAAC;IACrD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;QACvC,IAAI,aAAa,GAAG,OAAC,UAAU,CAAC,aAAa,mCAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAChE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAC1B,CAAC;QACF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,aAAa,GAAG,CAAC,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,UAAU,mCAAQ,UAAU,KAAE,aAAa,GAAE,CAAC;QAC9C,IAAI,OAAC,UAAU,CAAC,kBAAkB,mCAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,UAAU,mCAAQ,UAAU,KAAE,SAAS,EAAE,IAAI,GAAE,CAAC;QAClD,CAAC;IACH,CAAC;IAED,IAAI,OAAO,GAAG,cAAc,CAAC;IAC7B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC,CAAC;QACpC,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAExD,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;;YACpC,MAAM,cAAc,GAAG,CAAA,MAAA,GAAG,CAAC,kBAAkB,0CAAE,cAAc,MAAK,KAAK,CAAC;YACxE,MAAM,WAAW,GAAG,WAAW;gBAC7B,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC3B,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;oBACrB,CAAC,CAAC,IAAI;oBACN,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;wBACrB,CAAC,CAAC,KAAK;wBACP,CAAC,CAAC,cAAc,CAAC;YACvB,IAAI,WAAW,KAAK,cAAc;gBAAE,OAAO,GAAG,CAAC;YAC/C,uCACK,GAAG,KACN,kBAAkB,kCACb,GAAG,CAAC,kBAAkB,KACzB,cAAc,EAAE,WAAW,OAE7B;QAAA,CACH,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AAAA,CAChC,CAAC"}
@@ -0,0 +1,120 @@
1
+ import { OPERATOR_TO_BACKEND } from "./operators.mjs";
2
+ import { LogicalSearchOperator, SearchGroupingType } from "udp-stencil-component-library";
3
+ //#region src/searchIntent/compile.ts
4
+ const toLogicalOperator = (op) => op === "or" ? LogicalSearchOperator.Or : LogicalSearchOperator.And;
5
+ const toFilterElement = (cond, groupId) => ({
6
+ searchField: cond.field,
7
+ searchOperator: OPERATOR_TO_BACKEND[cond.operator],
8
+ searchValue: cond.values ? cond.values.join(",") : cond.value ?? "",
9
+ groupId
10
+ });
11
+ /**
12
+ * Compiles the filter spec into filterElements + filterGroups with
13
+ * deterministically assigned group ids: root group is 1, subgroups 2..n.
14
+ * This is the shape getNormalizedData in the advanced search builder expects.
15
+ */
16
+ const compileFilters = (spec) => {
17
+ const ROOT_GROUP_ID = 1;
18
+ const filterGroups = [{
19
+ groupId: ROOT_GROUP_ID,
20
+ parentGroupId: null,
21
+ logicalSearchOperator: toLogicalOperator(spec.op)
22
+ }];
23
+ const filterElements = (spec.conditions ?? []).map((c) => toFilterElement(c, ROOT_GROUP_ID));
24
+ let nextGroupId = ROOT_GROUP_ID + 1;
25
+ for (const group of spec.groups ?? []) {
26
+ const groupId = nextGroupId++;
27
+ filterGroups.push({
28
+ groupId,
29
+ parentGroupId: ROOT_GROUP_ID,
30
+ logicalSearchOperator: toLogicalOperator(group.op)
31
+ });
32
+ filterElements.push(...group.conditions.map((c) => toFilterElement(c, groupId)));
33
+ }
34
+ return {
35
+ filterElements,
36
+ filterGroups,
37
+ logicalSearchOperator: toLogicalOperator(spec.op)
38
+ };
39
+ };
40
+ /**
41
+ * Applies a validated intent to the current state, producing the next
42
+ * searchBody + columns. Pure: never mutates inputs. Sections that are
43
+ * null/omitted in the intent pass through unchanged.
44
+ */
45
+ const compileIntent = (intent, currentSearchBody, currentColumns) => {
46
+ let searchBody = { ...currentSearchBody };
47
+ if (intent.filters !== void 0 && intent.filters !== null) searchBody = {
48
+ ...searchBody,
49
+ ...compileFilters(intent.filters)
50
+ };
51
+ if (intent.sorts !== void 0 && intent.sorts !== null) searchBody = {
52
+ ...searchBody,
53
+ orderElements: intent.sorts.map((s) => ({
54
+ sortColumn: s.field,
55
+ sortDirection: s.direction
56
+ }))
57
+ };
58
+ if (intent.grouping !== void 0 && intent.grouping !== null) {
59
+ const groupProperty = [...intent.grouping.groupBy ?? []];
60
+ const groupOperationList = (intent.grouping.aggregates ?? []).map((a) => ({
61
+ operation: a.operation,
62
+ property: a.field
63
+ }));
64
+ const groupingType = groupProperty.length > 0 ? groupOperationList.length > 0 ? SearchGroupingType.Aggregate : SearchGroupingType.Distinct : SearchGroupingType.None;
65
+ searchBody = {
66
+ ...searchBody,
67
+ groupProperty,
68
+ groupOperationList,
69
+ groupingType
70
+ };
71
+ }
72
+ if (intent.pageSize !== void 0 && intent.pageSize !== null) searchBody = {
73
+ ...searchBody,
74
+ pageSize: intent.pageSize
75
+ };
76
+ const groupProperty = searchBody.groupProperty ?? [];
77
+ if (groupProperty.length > 0) {
78
+ const grouped = new Set(groupProperty);
79
+ let orderElements = (searchBody.orderElements ?? []).filter((o) => grouped.has(o.sortColumn));
80
+ if (orderElements.length === 0) orderElements = [{
81
+ sortColumn: groupProperty[0],
82
+ sortDirection: "ASC"
83
+ }];
84
+ searchBody = {
85
+ ...searchBody,
86
+ orderElements
87
+ };
88
+ if ((searchBody.groupOperationList ?? []).length > 0) searchBody = {
89
+ ...searchBody,
90
+ eagerLoad: true
91
+ };
92
+ }
93
+ let columns = currentColumns;
94
+ if (intent.columns) {
95
+ const { showOnly, show, hide } = intent.columns;
96
+ const showSet = new Set(show ?? []);
97
+ const hideSet = new Set(hide ?? []);
98
+ const showOnlySet = showOnly ? new Set(showOnly) : null;
99
+ columns = currentColumns.map((col) => {
100
+ const currentVisible = col.extendedProperties?.defaultVisible !== false;
101
+ const nextVisible = showOnlySet ? showOnlySet.has(col.name) : showSet.has(col.name) ? true : hideSet.has(col.name) ? false : currentVisible;
102
+ if (nextVisible === currentVisible) return col;
103
+ return {
104
+ ...col,
105
+ extendedProperties: {
106
+ ...col.extendedProperties,
107
+ defaultVisible: nextVisible
108
+ }
109
+ };
110
+ });
111
+ }
112
+ return {
113
+ searchBody,
114
+ columns
115
+ };
116
+ };
117
+ //#endregion
118
+ export { compileIntent };
119
+
120
+ //# sourceMappingURL=compile.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.mjs","names":["LogicalSearchOperator","SearchGroupingType","CatalogProperty","FilterElement","FilterGroup","Search","OPERATOR_TO_BACKEND","AiCondition","AiFilterSpec","CompiledSearchChanges","QueryIntent","toLogicalOperator","op","Or","And","toFilterElement","cond","groupId","searchField","field","searchOperator","operator","searchValue","values","join","value","compileFilters","spec","Pick","ROOT_GROUP_ID","filterGroups","parentGroupId","logicalSearchOperator","filterElements","conditions","map","c","nextGroupId","group","groups","push","compileIntent","intent","currentSearchBody","currentColumns","searchBody","filters","undefined","sorts","orderElements","s","sortColumn","sortDirection","direction","grouping","groupProperty","groupBy","groupOperationList","aggregates","a","operation","property","groupingType","length","Aggregate","Distinct","None","pageSize","grouped","Set","filter","o","has","eagerLoad","columns","showOnly","show","hide","showSet","hideSet","showOnlySet","col","currentVisible","extendedProperties","defaultVisible","nextVisible","name"],"sources":["../../src/searchIntent/compile.ts"],"sourcesContent":["import {\n LogicalSearchOperator,\n SearchGroupingType\n} from '@univerus/udp-stencil-component-library';\nimport type {\n CatalogProperty,\n FilterElement,\n FilterGroup,\n Search\n} from '@univerus/udp-stencil-component-library';\nimport { OPERATOR_TO_BACKEND } from './operators';\nimport type {\n AiCondition,\n AiFilterSpec,\n CompiledSearchChanges,\n QueryIntent\n} from './types';\n\nconst toLogicalOperator = (op: 'and' | 'or'): number =>\n op === 'or' ? LogicalSearchOperator.Or : LogicalSearchOperator.And;\n\nconst toFilterElement = (\n cond: AiCondition,\n groupId: number\n): FilterElement => ({\n searchField: cond.field,\n searchOperator: OPERATOR_TO_BACKEND[cond.operator],\n // Multi-value operators are comma-joined (\"v1,v2\"), matching both the manual\n // builder's storage format and the grid's search composition.\n searchValue: cond.values ? cond.values.join(',') : (cond.value ?? ''),\n groupId\n});\n\n/**\n * Compiles the filter spec into filterElements + filterGroups with\n * deterministically assigned group ids: root group is 1, subgroups 2..n.\n * This is the shape getNormalizedData in the advanced search builder expects.\n */\nconst compileFilters = (\n spec: AiFilterSpec\n): Pick<\n Search,\n 'filterElements' | 'filterGroups' | 'logicalSearchOperator'\n> => {\n const ROOT_GROUP_ID = 1;\n const filterGroups: FilterGroup[] = [\n {\n groupId: ROOT_GROUP_ID,\n parentGroupId: null,\n logicalSearchOperator: toLogicalOperator(spec.op)\n }\n ];\n const filterElements: FilterElement[] = (spec.conditions ?? []).map((c) =>\n toFilterElement(c, ROOT_GROUP_ID)\n );\n\n let nextGroupId = ROOT_GROUP_ID + 1;\n for (const group of spec.groups ?? []) {\n const groupId = nextGroupId++;\n filterGroups.push({\n groupId,\n parentGroupId: ROOT_GROUP_ID,\n logicalSearchOperator: toLogicalOperator(group.op)\n });\n filterElements.push(\n ...group.conditions.map((c) => toFilterElement(c, groupId))\n );\n }\n\n return {\n filterElements,\n filterGroups,\n logicalSearchOperator: toLogicalOperator(spec.op)\n };\n};\n\n/**\n * Applies a validated intent to the current state, producing the next\n * searchBody + columns. Pure: never mutates inputs. Sections that are\n * null/omitted in the intent pass through unchanged.\n */\nexport const compileIntent = (\n intent: QueryIntent,\n currentSearchBody: Search,\n currentColumns: CatalogProperty[]\n): CompiledSearchChanges => {\n let searchBody: Search = { ...currentSearchBody };\n\n if (intent.filters !== undefined && intent.filters !== null) {\n searchBody = { ...searchBody, ...compileFilters(intent.filters) };\n }\n\n if (intent.sorts !== undefined && intent.sorts !== null) {\n searchBody = {\n ...searchBody,\n orderElements: intent.sorts.map((s) => ({\n sortColumn: s.field,\n sortDirection: s.direction\n }))\n };\n }\n\n if (intent.grouping !== undefined && intent.grouping !== null) {\n const groupProperty = [...(intent.grouping.groupBy ?? [])];\n const groupOperationList = (intent.grouping.aggregates ?? []).map((a) => ({\n operation: a.operation,\n property: a.field\n }));\n // Aggregate when both groupBy and aggregates present, Distinct when only\n // groupBy — the same derivation Data Builder's manual grouping UI applies.\n const groupingType =\n groupProperty.length > 0\n ? groupOperationList.length > 0\n ? SearchGroupingType.Aggregate\n : SearchGroupingType.Distinct\n : SearchGroupingType.None;\n searchBody = {\n ...searchBody,\n groupProperty,\n groupOperationList,\n groupingType\n };\n }\n\n if (intent.pageSize !== undefined && intent.pageSize !== null) {\n searchBody = { ...searchBody, pageSize: intent.pageSize };\n }\n\n // Grouping-active invariants, mirroring the backend's own conventions\n // (verified against the starter-project SearchUtil/DAO):\n // - a grouped SELECT can only be ordered by grouped columns; the DB rejects\n // anything else (\"ORDER BY items must appear in the select list\"), and an\n // order on a grouped column is required for stable pagination\n // - the AGGREGATE pk-list subquery only selects the pk expression when\n // EagerLoad is true (the backend service sets EagerLoad=true itself when\n // it builds aggregate searches)\n const groupProperty = searchBody.groupProperty ?? [];\n if (groupProperty.length > 0) {\n const grouped = new Set(groupProperty);\n let orderElements = (searchBody.orderElements ?? []).filter((o) =>\n grouped.has(o.sortColumn)\n );\n if (orderElements.length === 0) {\n orderElements = [{ sortColumn: groupProperty[0], sortDirection: 'ASC' }];\n }\n searchBody = { ...searchBody, orderElements };\n if ((searchBody.groupOperationList ?? []).length > 0) {\n searchBody = { ...searchBody, eagerLoad: true };\n }\n }\n\n let columns = currentColumns;\n if (intent.columns) {\n const { showOnly, show, hide } = intent.columns;\n const showSet = new Set(show ?? []);\n const hideSet = new Set(hide ?? []);\n const showOnlySet = showOnly ? new Set(showOnly) : null;\n\n columns = currentColumns.map((col) => {\n const currentVisible = col.extendedProperties?.defaultVisible !== false;\n const nextVisible = showOnlySet\n ? showOnlySet.has(col.name)\n : showSet.has(col.name)\n ? true\n : hideSet.has(col.name)\n ? false\n : currentVisible;\n if (nextVisible === currentVisible) return col;\n return {\n ...col,\n extendedProperties: {\n ...col.extendedProperties,\n defaultVisible: nextVisible\n }\n };\n });\n }\n\n return { searchBody, columns };\n};\n"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { AiDiffLine, QueryIntent } from './types';
2
+ /** Fluent icon names per diff-line kind, for AiProposalDetail rendering. */
3
+ export declare const AI_DIFF_ICONS: Record<AiDiffLine['kind'], string>;
4
+ /**
5
+ * Human-readable summary of what applying the intent will change. Because
6
+ * sections are declarative replacements, each line describes the resulting
7
+ * state of a changed section rather than an add/remove delta.
8
+ */
9
+ export declare const describeIntent: (intent: QueryIntent) => AiDiffLine[];
10
+ //# sourceMappingURL=diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/searchIntent/diff.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEpE,4EAA4E;AAC5E,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,CAM5D,CAAC;AAiBF;;;;GAIG;AACH,eAAO,MAAM,cAAc,uCAiE1B,CAAC"}
@@ -0,0 +1,90 @@
1
+ import { OPERATOR_LABELS } from './operators';
2
+ /** Fluent icon names per diff-line kind, for AiProposalDetail rendering. */
3
+ export const AI_DIFF_ICONS = {
4
+ filters: 'filter',
5
+ sorts: 'sort',
6
+ grouping: 'group',
7
+ columns: 'table',
8
+ pageSize: 'page'
9
+ };
10
+ const describeCondition = (cond) => {
11
+ var _a, _b;
12
+ const op = (_a = OPERATOR_LABELS[cond.operator]) !== null && _a !== void 0 ? _a : cond.operator;
13
+ if (cond.operator === 'is_empty' || cond.operator === 'is_not_empty') {
14
+ return `${cond.field} ${op}`;
15
+ }
16
+ if (cond.operator === 'between') {
17
+ const [lo, hi] = (_b = cond.values) !== null && _b !== void 0 ? _b : [];
18
+ return `${cond.field} ${op} ${lo} and ${hi}`;
19
+ }
20
+ if (cond.values) {
21
+ return `${cond.field} ${op} [${cond.values.join(', ')}]`;
22
+ }
23
+ return `${cond.field} ${op} ${cond.value}`;
24
+ };
25
+ /**
26
+ * Human-readable summary of what applying the intent will change. Because
27
+ * sections are declarative replacements, each line describes the resulting
28
+ * state of a changed section rather than an add/remove delta.
29
+ */
30
+ export const describeIntent = (intent) => {
31
+ const lines = [];
32
+ if (intent.filters !== undefined && intent.filters !== null) {
33
+ const { op, conditions = [], groups = [] } = intent.filters;
34
+ if (conditions.length === 0 && groups.length === 0) {
35
+ lines.push({ kind: 'filters', text: 'Filters: cleared' });
36
+ }
37
+ else {
38
+ const joiner = ` ${op.toUpperCase()} `;
39
+ const parts = conditions.map(describeCondition);
40
+ for (const group of groups) {
41
+ parts.push(`(${group.conditions.map(describeCondition).join(` ${group.op.toUpperCase()} `)})`);
42
+ }
43
+ lines.push({ kind: 'filters', text: `Filters: ${parts.join(joiner)}` });
44
+ }
45
+ }
46
+ if (intent.sorts !== undefined && intent.sorts !== null) {
47
+ lines.push({
48
+ kind: 'sorts',
49
+ text: intent.sorts.length === 0
50
+ ? 'Sort: cleared'
51
+ : `Sort: ${intent.sorts.map((s) => `${s.field} ${s.direction}`).join(', ')}`
52
+ });
53
+ }
54
+ if (intent.grouping !== undefined && intent.grouping !== null) {
55
+ const { groupBy = [], aggregates = [] } = intent.grouping;
56
+ if (groupBy.length === 0 && aggregates.length === 0) {
57
+ lines.push({ kind: 'grouping', text: 'Grouping: cleared' });
58
+ }
59
+ else {
60
+ const parts = [`Group by: ${groupBy.join(', ') || '—'}`];
61
+ if (aggregates.length > 0) {
62
+ parts.push(`Aggregates: ${aggregates.map((a) => `${a.operation}(${a.field})`).join(', ')}`);
63
+ }
64
+ lines.push({ kind: 'grouping', text: parts.join(' · ') });
65
+ }
66
+ }
67
+ if (intent.columns) {
68
+ const { showOnly, show = [], hide = [] } = intent.columns;
69
+ if (showOnly) {
70
+ lines.push({
71
+ kind: 'columns',
72
+ text: `Columns: show only ${showOnly.join(', ')}`
73
+ });
74
+ }
75
+ else {
76
+ const parts = [];
77
+ if (show.length)
78
+ parts.push(`show ${show.join(', ')}`);
79
+ if (hide.length)
80
+ parts.push(`hide ${hide.join(', ')}`);
81
+ if (parts.length)
82
+ lines.push({ kind: 'columns', text: `Columns: ${parts.join(' · ')}` });
83
+ }
84
+ }
85
+ if (intent.pageSize !== undefined && intent.pageSize !== null) {
86
+ lines.push({ kind: 'pageSize', text: `Page size: ${intent.pageSize}` });
87
+ }
88
+ return lines;
89
+ };
90
+ //# sourceMappingURL=diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/searchIntent/diff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ import { OPERATOR_LABELS } from "./operators.mjs";
2
+ //#region src/searchIntent/diff.ts
3
+ /** Fluent icon names per diff-line kind, for AiProposalDetail rendering. */
4
+ const AI_DIFF_ICONS = {
5
+ filters: "filter",
6
+ sorts: "sort",
7
+ grouping: "group",
8
+ columns: "table",
9
+ pageSize: "page"
10
+ };
11
+ const describeCondition = (cond) => {
12
+ const op = OPERATOR_LABELS[cond.operator] ?? cond.operator;
13
+ if (cond.operator === "is_empty" || cond.operator === "is_not_empty") return `${cond.field} ${op}`;
14
+ if (cond.operator === "between") {
15
+ const [lo, hi] = cond.values ?? [];
16
+ return `${cond.field} ${op} ${lo} and ${hi}`;
17
+ }
18
+ if (cond.values) return `${cond.field} ${op} [${cond.values.join(", ")}]`;
19
+ return `${cond.field} ${op} ${cond.value}`;
20
+ };
21
+ /**
22
+ * Human-readable summary of what applying the intent will change. Because
23
+ * sections are declarative replacements, each line describes the resulting
24
+ * state of a changed section rather than an add/remove delta.
25
+ */
26
+ const describeIntent = (intent) => {
27
+ const lines = [];
28
+ if (intent.filters !== void 0 && intent.filters !== null) {
29
+ const { op, conditions = [], groups = [] } = intent.filters;
30
+ if (conditions.length === 0 && groups.length === 0) lines.push({
31
+ kind: "filters",
32
+ text: "Filters: cleared"
33
+ });
34
+ else {
35
+ const joiner = ` ${op.toUpperCase()} `;
36
+ const parts = conditions.map(describeCondition);
37
+ for (const group of groups) parts.push(`(${group.conditions.map(describeCondition).join(` ${group.op.toUpperCase()} `)})`);
38
+ lines.push({
39
+ kind: "filters",
40
+ text: `Filters: ${parts.join(joiner)}`
41
+ });
42
+ }
43
+ }
44
+ if (intent.sorts !== void 0 && intent.sorts !== null) lines.push({
45
+ kind: "sorts",
46
+ text: intent.sorts.length === 0 ? "Sort: cleared" : `Sort: ${intent.sorts.map((s) => `${s.field} ${s.direction}`).join(", ")}`
47
+ });
48
+ if (intent.grouping !== void 0 && intent.grouping !== null) {
49
+ const { groupBy = [], aggregates = [] } = intent.grouping;
50
+ if (groupBy.length === 0 && aggregates.length === 0) lines.push({
51
+ kind: "grouping",
52
+ text: "Grouping: cleared"
53
+ });
54
+ else {
55
+ const parts = [`Group by: ${groupBy.join(", ") || "—"}`];
56
+ if (aggregates.length > 0) parts.push(`Aggregates: ${aggregates.map((a) => `${a.operation}(${a.field})`).join(", ")}`);
57
+ lines.push({
58
+ kind: "grouping",
59
+ text: parts.join(" · ")
60
+ });
61
+ }
62
+ }
63
+ if (intent.columns) {
64
+ const { showOnly, show = [], hide = [] } = intent.columns;
65
+ if (showOnly) lines.push({
66
+ kind: "columns",
67
+ text: `Columns: show only ${showOnly.join(", ")}`
68
+ });
69
+ else {
70
+ const parts = [];
71
+ if (show.length) parts.push(`show ${show.join(", ")}`);
72
+ if (hide.length) parts.push(`hide ${hide.join(", ")}`);
73
+ if (parts.length) lines.push({
74
+ kind: "columns",
75
+ text: `Columns: ${parts.join(" · ")}`
76
+ });
77
+ }
78
+ }
79
+ if (intent.pageSize !== void 0 && intent.pageSize !== null) lines.push({
80
+ kind: "pageSize",
81
+ text: `Page size: ${intent.pageSize}`
82
+ });
83
+ return lines;
84
+ };
85
+ //#endregion
86
+ export { AI_DIFF_ICONS, describeIntent };
87
+
88
+ //# sourceMappingURL=diff.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.mjs","names":["OPERATOR_LABELS","AiCondition","AiDiffLine","QueryIntent","AI_DIFF_ICONS","Record","filters","sorts","grouping","columns","pageSize","describeCondition","cond","op","operator","field","lo","hi","values","join","value","describeIntent","intent","lines","undefined","conditions","groups","length","push","kind","text","joiner","toUpperCase","parts","map","group","s","direction","groupBy","aggregates","a","operation","showOnly","show","hide"],"sources":["../../src/searchIntent/diff.ts"],"sourcesContent":["import { OPERATOR_LABELS } from './operators';\nimport type { AiCondition, AiDiffLine, QueryIntent } from './types';\n\n/** Fluent icon names per diff-line kind, for AiProposalDetail rendering. */\nexport const AI_DIFF_ICONS: Record<AiDiffLine['kind'], string> = {\n filters: 'filter',\n sorts: 'sort',\n grouping: 'group',\n columns: 'table',\n pageSize: 'page'\n};\n\nconst describeCondition = (cond: AiCondition): string => {\n const op = OPERATOR_LABELS[cond.operator] ?? cond.operator;\n if (cond.operator === 'is_empty' || cond.operator === 'is_not_empty') {\n return `${cond.field} ${op}`;\n }\n if (cond.operator === 'between') {\n const [lo, hi] = cond.values ?? [];\n return `${cond.field} ${op} ${lo} and ${hi}`;\n }\n if (cond.values) {\n return `${cond.field} ${op} [${cond.values.join(', ')}]`;\n }\n return `${cond.field} ${op} ${cond.value}`;\n};\n\n/**\n * Human-readable summary of what applying the intent will change. Because\n * sections are declarative replacements, each line describes the resulting\n * state of a changed section rather than an add/remove delta.\n */\nexport const describeIntent = (intent: QueryIntent): AiDiffLine[] => {\n const lines: AiDiffLine[] = [];\n\n if (intent.filters !== undefined && intent.filters !== null) {\n const { op, conditions = [], groups = [] } = intent.filters;\n if (conditions.length === 0 && groups.length === 0) {\n lines.push({ kind: 'filters', text: 'Filters: cleared' });\n } else {\n const joiner = ` ${op.toUpperCase()} `;\n const parts = conditions.map(describeCondition);\n for (const group of groups) {\n parts.push(\n `(${group.conditions.map(describeCondition).join(` ${group.op.toUpperCase()} `)})`\n );\n }\n lines.push({ kind: 'filters', text: `Filters: ${parts.join(joiner)}` });\n }\n }\n\n if (intent.sorts !== undefined && intent.sorts !== null) {\n lines.push({\n kind: 'sorts',\n text:\n intent.sorts.length === 0\n ? 'Sort: cleared'\n : `Sort: ${intent.sorts.map((s) => `${s.field} ${s.direction}`).join(', ')}`\n });\n }\n\n if (intent.grouping !== undefined && intent.grouping !== null) {\n const { groupBy = [], aggregates = [] } = intent.grouping;\n if (groupBy.length === 0 && aggregates.length === 0) {\n lines.push({ kind: 'grouping', text: 'Grouping: cleared' });\n } else {\n const parts = [`Group by: ${groupBy.join(', ') || '—'}`];\n if (aggregates.length > 0) {\n parts.push(\n `Aggregates: ${aggregates.map((a) => `${a.operation}(${a.field})`).join(', ')}`\n );\n }\n lines.push({ kind: 'grouping', text: parts.join(' · ') });\n }\n }\n\n if (intent.columns) {\n const { showOnly, show = [], hide = [] } = intent.columns;\n if (showOnly) {\n lines.push({\n kind: 'columns',\n text: `Columns: show only ${showOnly.join(', ')}`\n });\n } else {\n const parts: string[] = [];\n if (show.length) parts.push(`show ${show.join(', ')}`);\n if (hide.length) parts.push(`hide ${hide.join(', ')}`);\n if (parts.length)\n lines.push({ kind: 'columns', text: `Columns: ${parts.join(' · ')}` });\n }\n }\n\n if (intent.pageSize !== undefined && intent.pageSize !== null) {\n lines.push({ kind: 'pageSize', text: `Page size: ${intent.pageSize}` });\n }\n\n return lines;\n};\n"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ // Shared NL → Search-object copilot layer: the declarative intent IR, the
2
+ // propose-tool schema, the validator core, the deterministic Search compiler,
3
+ // diff rendering, and prompt building blocks. Proven in Data Builder's query
4
+ // assistant; hosts adapt their schema source to AiSearchSchemaContext and
5
+ // keep prompt copy + apply/undo wiring surface-specific.
6
+ export * from './types';
7
+ export * from './operators';
8
+ export * from './tools';
9
+ export * from './validate';
10
+ export * from './compile';
11
+ export * from './diff';
12
+ export * from './prompt';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/searchIntent/index.ts"],"names":[],"mappings":"AAAA,4EAA0E;AAC1E,8EAA8E;AAC9E,6EAA6E;AAC7E,0EAA0E;AAC1E,yDAAyD;AACzD,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC"}
@@ -0,0 +1,13 @@
1
+ // Shared NL → Search-object copilot layer: the declarative intent IR, the
2
+ // propose-tool schema, the validator core, the deterministic Search compiler,
3
+ // diff rendering, and prompt building blocks. Proven in Data Builder's query
4
+ // assistant; hosts adapt their schema source to AiSearchSchemaContext and
5
+ // keep prompt copy + apply/undo wiring surface-specific.
6
+ export * from './types';
7
+ export * from './operators';
8
+ export * from './tools';
9
+ export * from './validate';
10
+ export * from './compile';
11
+ export * from './diff';
12
+ export * from './prompt';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/searchIntent/index.ts"],"names":[],"mappings":"AAAA,4EAA0E;AAC1E,8EAA8E;AAC9E,6EAA6E;AAC7E,0EAA0E;AAC1E,yDAAyD;AACzD,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC"}
@@ -0,0 +1,28 @@
1
+ // Operator availability per normalized type. Mirrors
2
+ // advanced-search-builder/helperFunctions/udpOperatorHelper.ts — keep in sync.
3
+ export declare const OPERATORS_BY_TYPE: Record<string, string[]>;
4
+ export declare const SINGLE_VALUE_OPERATORS: Set<string>;
5
+ export declare const MULTI_VALUE_OPERATORS: Set<string>;
6
+ export declare const NO_VALUE_OPERATORS: Set<string>;
7
+ // Semantic operator → backend SearchHelper constant. Values are sent raw:
8
+ // the backend applies substring semantics to LIKE itself (matching the grid's
9
+ // buildSearchObject behavior), so no % wrapping here.
10
+ export declare const OPERATOR_TO_BACKEND: Record<string, string>;
11
+ /**
12
+ * Backend SearchHelper constant → semantic operator: the inverse of
13
+ * OPERATOR_TO_BACKEND, for reading an existing Search back into the vocabulary
14
+ * the model speaks (see describeCurrentSearchState). Backend operators with no
15
+ * intent equivalent (NOTLIKE, ENDSWITH) are absent — callers fall back to the
16
+ * raw constant rather than inventing one.
17
+ */
18
+ export declare const OPERATOR_FROM_BACKEND: Record<string, string>;
19
+ /** Human-readable operator labels for proposal diff cards. */
20
+ export declare const OPERATOR_LABELS: Record<string, string>;
21
+ /** Returns an error fragment when a value doesn't fit the field type, else null. */
22
+ export declare const checkValueFormat: (type: string, value: string) => string;
23
+ /**
24
+ * Normalizes a catalog/.NET type name to the vocabulary OPERATORS_BY_TYPE and
25
+ * checkValueFormat use (same normalization catalogTree.ts applies).
26
+ */
27
+ export declare const normalizeSearchFieldType: (netType: string) => string;
28
+ //# sourceMappingURL=operators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../src/searchIntent/operators.ts"],"names":[],"mappings":"AAEA,qDAAqD;AACrD,iFAA+E;AAC/E,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAoEtD,CAAC;AAEF,eAAO,MAAM,sBAAsB,aASjC,CAAC;AACH,eAAO,MAAM,qBAAqB,aAAuC,CAAC;AAC1E,eAAO,MAAM,kBAAkB,aAAwC,CAAC;AAExE,4EAA0E;AAC1E,8EAA8E;AAC9E,sDAAsD;AACtD,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CActD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAKxD,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAclD,CAAC;AAMF,oFAAoF;AACpF,eAAO,MAAM,gBAAgB,yCAuB5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,6BAsBpC,CAAC"}