@flanksource/clicky-ui 0.3.19 → 0.3.21

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 (450) hide show
  1. package/dist/components/ErrorWrapper.cjs +1 -1
  2. package/dist/components/ErrorWrapper.cjs.map +1 -1
  3. package/dist/components/ErrorWrapper.js +1 -1
  4. package/dist/components/ErrorWrapper.js.map +1 -1
  5. package/dist/components/UnitStepControls.cjs +55 -0
  6. package/dist/components/UnitStepControls.cjs.map +1 -0
  7. package/dist/components/UnitStepControls.d.ts +10 -0
  8. package/dist/components/UnitStepControls.d.ts.map +1 -0
  9. package/dist/components/UnitStepControls.js +55 -0
  10. package/dist/components/UnitStepControls.js.map +1 -0
  11. package/dist/components/json-schema-form-accordion-array.cjs +5 -73
  12. package/dist/components/json-schema-form-accordion-array.cjs.map +1 -1
  13. package/dist/components/json-schema-form-accordion-array.d.ts.map +1 -1
  14. package/dist/components/json-schema-form-accordion-array.js +3 -71
  15. package/dist/components/json-schema-form-accordion-array.js.map +1 -1
  16. package/dist/components/json-schema-form-array.cjs +6 -1
  17. package/dist/components/json-schema-form-array.cjs.map +1 -1
  18. package/dist/components/json-schema-form-array.d.ts.map +1 -1
  19. package/dist/components/json-schema-form-array.js +6 -1
  20. package/dist/components/json-schema-form-array.js.map +1 -1
  21. package/dist/components/json-schema-form-cards-array.cjs +96 -0
  22. package/dist/components/json-schema-form-cards-array.cjs.map +1 -0
  23. package/dist/components/json-schema-form-cards-array.d.ts +7 -0
  24. package/dist/components/json-schema-form-cards-array.d.ts.map +1 -0
  25. package/dist/components/json-schema-form-cards-array.js +96 -0
  26. package/dist/components/json-schema-form-cards-array.js.map +1 -0
  27. package/dist/components/json-schema-form-item-row.cjs +81 -0
  28. package/dist/components/json-schema-form-item-row.cjs.map +1 -0
  29. package/dist/components/json-schema-form-item-row.d.ts +19 -0
  30. package/dist/components/json-schema-form-item-row.d.ts.map +1 -0
  31. package/dist/components/json-schema-form-item-row.js +81 -0
  32. package/dist/components/json-schema-form-item-row.js.map +1 -0
  33. package/dist/components/json-schema-form-render.cjs +2 -2
  34. package/dist/components/json-schema-form-render.cjs.map +1 -1
  35. package/dist/components/json-schema-form-render.d.ts.map +1 -1
  36. package/dist/components/json-schema-form-render.js +2 -2
  37. package/dist/components/json-schema-form-render.js.map +1 -1
  38. package/dist/components/json-schema-form-resolve.cjs +1 -1
  39. package/dist/components/json-schema-form-resolve.cjs.map +1 -1
  40. package/dist/components/json-schema-form-resolve.js +1 -1
  41. package/dist/components/json-schema-form-resolve.js.map +1 -1
  42. package/dist/components/json-schema-form-tone.cjs +12 -0
  43. package/dist/components/json-schema-form-tone.cjs.map +1 -1
  44. package/dist/components/json-schema-form-tone.js +12 -0
  45. package/dist/components/json-schema-form-tone.js.map +1 -1
  46. package/dist/components/json-schema-form-types.d.ts +1 -1
  47. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  48. package/dist/components/unit-form-extension.cjs +126 -0
  49. package/dist/components/unit-form-extension.cjs.map +1 -0
  50. package/dist/components/unit-form-extension.d.ts +8 -0
  51. package/dist/components/unit-form-extension.d.ts.map +1 -0
  52. package/dist/components/unit-form-extension.js +126 -0
  53. package/dist/components/unit-form-extension.js.map +1 -0
  54. package/dist/components.cjs +4 -0
  55. package/dist/components.cjs.map +1 -1
  56. package/dist/components.d.ts +1 -0
  57. package/dist/components.d.ts.map +1 -1
  58. package/dist/components.js +4 -0
  59. package/dist/components.js.map +1 -1
  60. package/dist/data/diagnostics/ErrorDetails.cjs +61 -8
  61. package/dist/data/diagnostics/ErrorDetails.cjs.map +1 -1
  62. package/dist/data/diagnostics/ErrorDetails.d.ts.map +1 -1
  63. package/dist/data/diagnostics/ErrorDetails.js +61 -8
  64. package/dist/data/diagnostics/ErrorDetails.js.map +1 -1
  65. package/dist/data/diagnostics/error-diagnostics.cjs +10 -4
  66. package/dist/data/diagnostics/error-diagnostics.cjs.map +1 -1
  67. package/dist/data/diagnostics/error-diagnostics.d.ts.map +1 -1
  68. package/dist/data/diagnostics/error-diagnostics.js +10 -4
  69. package/dist/data/diagnostics/error-diagnostics.js.map +1 -1
  70. package/dist/data/query-browser/QueryBrowser.cjs +12 -6
  71. package/dist/data/query-browser/QueryBrowser.cjs.map +1 -1
  72. package/dist/data/query-browser/QueryBrowser.d.ts.map +1 -1
  73. package/dist/data/query-browser/QueryBrowser.js +12 -6
  74. package/dist/data/query-browser/QueryBrowser.js.map +1 -1
  75. package/dist/data/query-browser/QueryBrowser.types.cjs +2 -1
  76. package/dist/data/query-browser/QueryBrowser.types.cjs.map +1 -1
  77. package/dist/data/query-browser/QueryBrowser.types.d.ts +16 -14
  78. package/dist/data/query-browser/QueryBrowser.types.d.ts.map +1 -1
  79. package/dist/data/query-browser/QueryBrowser.types.js +2 -1
  80. package/dist/data/query-browser/QueryBrowser.types.js.map +1 -1
  81. package/dist/data/version-info.cjs +3 -3
  82. package/dist/data/version-info.js +3 -3
  83. package/dist/index.cjs +4 -0
  84. package/dist/index.cjs.map +1 -1
  85. package/dist/index.js +4 -0
  86. package/dist/index.js.map +1 -1
  87. package/dist/lib/string.cjs +8 -0
  88. package/dist/lib/string.cjs.map +1 -1
  89. package/dist/lib/string.d.ts +1 -0
  90. package/dist/lib/string.d.ts.map +1 -1
  91. package/dist/lib/string.js +8 -0
  92. package/dist/lib/string.js.map +1 -1
  93. package/dist/profiles/catalogTree.cjs +133 -0
  94. package/dist/profiles/catalogTree.cjs.map +1 -0
  95. package/dist/profiles/catalogTree.d.ts +11 -0
  96. package/dist/profiles/catalogTree.d.ts.map +1 -0
  97. package/dist/profiles/catalogTree.js +133 -0
  98. package/dist/profiles/catalogTree.js.map +1 -0
  99. package/dist/profiles/connectionBrowserModel.cjs +185 -0
  100. package/dist/profiles/connectionBrowserModel.cjs.map +1 -0
  101. package/dist/profiles/connectionBrowserModel.d.ts +169 -0
  102. package/dist/profiles/connectionBrowserModel.d.ts.map +1 -0
  103. package/dist/profiles/connectionBrowserModel.js +185 -0
  104. package/dist/profiles/connectionBrowserModel.js.map +1 -0
  105. package/dist/profiles/connectionQueryWorkspace.cjs +185 -0
  106. package/dist/profiles/connectionQueryWorkspace.cjs.map +1 -0
  107. package/dist/profiles/connectionQueryWorkspace.d.ts +63 -0
  108. package/dist/profiles/connectionQueryWorkspace.d.ts.map +1 -0
  109. package/dist/profiles/connectionQueryWorkspace.js +185 -0
  110. package/dist/profiles/connectionQueryWorkspace.js.map +1 -0
  111. package/dist/profiles/connectionQueryWorkspaceModel.cjs +28 -0
  112. package/dist/profiles/connectionQueryWorkspaceModel.cjs.map +1 -0
  113. package/dist/profiles/connectionQueryWorkspaceModel.d.ts +38 -0
  114. package/dist/profiles/connectionQueryWorkspaceModel.d.ts.map +1 -0
  115. package/dist/profiles/connectionQueryWorkspaceModel.js +28 -0
  116. package/dist/profiles/connectionQueryWorkspaceModel.js.map +1 -0
  117. package/dist/profiles/esFieldValues.cjs +64 -0
  118. package/dist/profiles/esFieldValues.cjs.map +1 -0
  119. package/dist/profiles/esFieldValues.d.ts +48 -0
  120. package/dist/profiles/esFieldValues.d.ts.map +1 -0
  121. package/dist/profiles/esFieldValues.js +64 -0
  122. package/dist/profiles/esFieldValues.js.map +1 -0
  123. package/dist/profiles/esParamMappingModel.cjs +301 -0
  124. package/dist/profiles/esParamMappingModel.cjs.map +1 -0
  125. package/dist/profiles/esParamMappingModel.d.ts +37 -0
  126. package/dist/profiles/esParamMappingModel.d.ts.map +1 -0
  127. package/dist/profiles/esParamMappingModel.js +301 -0
  128. package/dist/profiles/esParamMappingModel.js.map +1 -0
  129. package/dist/profiles/esParamMappingPill.cjs +24 -0
  130. package/dist/profiles/esParamMappingPill.cjs.map +1 -0
  131. package/dist/profiles/esParamMappingPill.d.ts +13 -0
  132. package/dist/profiles/esParamMappingPill.d.ts.map +1 -0
  133. package/dist/profiles/esParamMappingPill.js +24 -0
  134. package/dist/profiles/esParamMappingPill.js.map +1 -0
  135. package/dist/profiles/esParamOperandExtension.cjs +75 -0
  136. package/dist/profiles/esParamOperandExtension.cjs.map +1 -0
  137. package/dist/profiles/esParamOperandExtension.d.ts +11 -0
  138. package/dist/profiles/esParamOperandExtension.d.ts.map +1 -0
  139. package/dist/profiles/esParamOperandExtension.js +75 -0
  140. package/dist/profiles/esParamOperandExtension.js.map +1 -0
  141. package/dist/profiles/esQueryBuilder.cjs +205 -0
  142. package/dist/profiles/esQueryBuilder.cjs.map +1 -0
  143. package/dist/profiles/esQueryBuilder.d.ts +35 -0
  144. package/dist/profiles/esQueryBuilder.d.ts.map +1 -0
  145. package/dist/profiles/esQueryBuilder.js +205 -0
  146. package/dist/profiles/esQueryBuilder.js.map +1 -0
  147. package/dist/profiles/esQueryBuilderExtension.cjs +23 -0
  148. package/dist/profiles/esQueryBuilderExtension.cjs.map +1 -0
  149. package/dist/profiles/esQueryBuilderExtension.d.ts +5 -0
  150. package/dist/profiles/esQueryBuilderExtension.d.ts.map +1 -0
  151. package/dist/profiles/esQueryBuilderExtension.js +23 -0
  152. package/dist/profiles/esQueryBuilderExtension.js.map +1 -0
  153. package/dist/profiles/esQueryBuilderForm.cjs +26 -0
  154. package/dist/profiles/esQueryBuilderForm.cjs.map +1 -0
  155. package/dist/profiles/esQueryBuilderForm.d.ts +18 -0
  156. package/dist/profiles/esQueryBuilderForm.d.ts.map +1 -0
  157. package/dist/profiles/esQueryBuilderForm.js +26 -0
  158. package/dist/profiles/esQueryBuilderForm.js.map +1 -0
  159. package/dist/profiles/esQueryBuilderModel.cjs +131 -0
  160. package/dist/profiles/esQueryBuilderModel.cjs.map +1 -0
  161. package/dist/profiles/esQueryBuilderModel.d.ts +108 -0
  162. package/dist/profiles/esQueryBuilderModel.d.ts.map +1 -0
  163. package/dist/profiles/esQueryBuilderModel.js +131 -0
  164. package/dist/profiles/esQueryBuilderModel.js.map +1 -0
  165. package/dist/profiles/esQueryClauseGroup.cjs +144 -0
  166. package/dist/profiles/esQueryClauseGroup.cjs.map +1 -0
  167. package/dist/profiles/esQueryClauseGroup.d.ts +10 -0
  168. package/dist/profiles/esQueryClauseGroup.d.ts.map +1 -0
  169. package/dist/profiles/esQueryClauseGroup.js +144 -0
  170. package/dist/profiles/esQueryClauseGroup.js.map +1 -0
  171. package/dist/profiles/esQueryCompile.cjs +47 -0
  172. package/dist/profiles/esQueryCompile.cjs.map +1 -0
  173. package/dist/profiles/esQueryCompile.d.ts +39 -0
  174. package/dist/profiles/esQueryCompile.d.ts.map +1 -0
  175. package/dist/profiles/esQueryCompile.js +47 -0
  176. package/dist/profiles/esQueryCompile.js.map +1 -0
  177. package/dist/profiles/esQueryConditionRow.cjs +168 -0
  178. package/dist/profiles/esQueryConditionRow.cjs.map +1 -0
  179. package/dist/profiles/esQueryConditionRow.d.ts +37 -0
  180. package/dist/profiles/esQueryConditionRow.d.ts.map +1 -0
  181. package/dist/profiles/esQueryConditionRow.js +168 -0
  182. package/dist/profiles/esQueryConditionRow.js.map +1 -0
  183. package/dist/profiles/esQueryGroupModel.cjs +12 -0
  184. package/dist/profiles/esQueryGroupModel.cjs.map +1 -0
  185. package/dist/profiles/esQueryGroupModel.d.ts +9 -0
  186. package/dist/profiles/esQueryGroupModel.d.ts.map +1 -0
  187. package/dist/profiles/esQueryGroupModel.js +12 -0
  188. package/dist/profiles/esQueryGroupModel.js.map +1 -0
  189. package/dist/profiles/esQueryOccur.cjs +16 -0
  190. package/dist/profiles/esQueryOccur.cjs.map +1 -0
  191. package/dist/profiles/esQueryOccur.d.ts +11 -0
  192. package/dist/profiles/esQueryOccur.d.ts.map +1 -0
  193. package/dist/profiles/esQueryOccur.js +16 -0
  194. package/dist/profiles/esQueryOccur.js.map +1 -0
  195. package/dist/profiles/esQueryOperandEditors.cjs +279 -0
  196. package/dist/profiles/esQueryOperandEditors.cjs.map +1 -0
  197. package/dist/profiles/esQueryOperandEditors.d.ts +24 -0
  198. package/dist/profiles/esQueryOperandEditors.d.ts.map +1 -0
  199. package/dist/profiles/esQueryOperandEditors.js +279 -0
  200. package/dist/profiles/esQueryOperandEditors.js.map +1 -0
  201. package/dist/profiles/esQueryOperandModel.cjs +28 -0
  202. package/dist/profiles/esQueryOperandModel.cjs.map +1 -0
  203. package/dist/profiles/esQueryOperandModel.d.ts +17 -0
  204. package/dist/profiles/esQueryOperandModel.d.ts.map +1 -0
  205. package/dist/profiles/esQueryOperandModel.js +28 -0
  206. package/dist/profiles/esQueryOperandModel.js.map +1 -0
  207. package/dist/profiles/esQueryOperators.cjs +165 -0
  208. package/dist/profiles/esQueryOperators.cjs.map +1 -0
  209. package/dist/profiles/esQueryOperators.d.ts +83 -0
  210. package/dist/profiles/esQueryOperators.d.ts.map +1 -0
  211. package/dist/profiles/esQueryOperators.js +165 -0
  212. package/dist/profiles/esQueryOperators.js.map +1 -0
  213. package/dist/profiles/esQueryOutputEditor.cjs +138 -0
  214. package/dist/profiles/esQueryOutputEditor.cjs.map +1 -0
  215. package/dist/profiles/esQueryOutputEditor.d.ts +7 -0
  216. package/dist/profiles/esQueryOutputEditor.d.ts.map +1 -0
  217. package/dist/profiles/esQueryOutputEditor.js +138 -0
  218. package/dist/profiles/esQueryOutputEditor.js.map +1 -0
  219. package/dist/profiles/esQueryOutputModel.cjs +16 -0
  220. package/dist/profiles/esQueryOutputModel.cjs.map +1 -0
  221. package/dist/profiles/esQueryOutputModel.d.ts +14 -0
  222. package/dist/profiles/esQueryOutputModel.d.ts.map +1 -0
  223. package/dist/profiles/esQueryOutputModel.js +16 -0
  224. package/dist/profiles/esQueryOutputModel.js.map +1 -0
  225. package/dist/profiles/esQueryPreview.cjs +30 -0
  226. package/dist/profiles/esQueryPreview.cjs.map +1 -0
  227. package/dist/profiles/esQueryPreview.d.ts +6 -0
  228. package/dist/profiles/esQueryPreview.d.ts.map +1 -0
  229. package/dist/profiles/esQueryPreview.js +30 -0
  230. package/dist/profiles/esQueryPreview.js.map +1 -0
  231. package/dist/profiles/esQuerySortEditor.cjs +143 -0
  232. package/dist/profiles/esQuerySortEditor.cjs.map +1 -0
  233. package/dist/profiles/esQuerySortEditor.d.ts +9 -0
  234. package/dist/profiles/esQuerySortEditor.d.ts.map +1 -0
  235. package/dist/profiles/esQuerySortEditor.js +143 -0
  236. package/dist/profiles/esQuerySortEditor.js.map +1 -0
  237. package/dist/profiles/esQuerySortModel.cjs +13 -0
  238. package/dist/profiles/esQuerySortModel.cjs.map +1 -0
  239. package/dist/profiles/esQuerySortModel.d.ts +4 -0
  240. package/dist/profiles/esQuerySortModel.d.ts.map +1 -0
  241. package/dist/profiles/esQuerySortModel.js +13 -0
  242. package/dist/profiles/esQuerySortModel.js.map +1 -0
  243. package/dist/profiles/esValueCombobox.cjs +86 -0
  244. package/dist/profiles/esValueCombobox.cjs.map +1 -0
  245. package/dist/profiles/esValueCombobox.d.ts +15 -0
  246. package/dist/profiles/esValueCombobox.d.ts.map +1 -0
  247. package/dist/profiles/esValueCombobox.js +86 -0
  248. package/dist/profiles/esValueCombobox.js.map +1 -0
  249. package/dist/profiles/jsonPathSample.cjs +75 -0
  250. package/dist/profiles/jsonPathSample.cjs.map +1 -0
  251. package/dist/profiles/jsonPathSample.d.ts +27 -0
  252. package/dist/profiles/jsonPathSample.d.ts.map +1 -0
  253. package/dist/profiles/jsonPathSample.js +75 -0
  254. package/dist/profiles/jsonPathSample.js.map +1 -0
  255. package/dist/profiles/jsonPathSampleRow.cjs +14 -0
  256. package/dist/profiles/jsonPathSampleRow.cjs.map +1 -0
  257. package/dist/profiles/jsonPathSampleRow.d.ts +6 -0
  258. package/dist/profiles/jsonPathSampleRow.d.ts.map +1 -0
  259. package/dist/profiles/jsonPathSampleRow.js +14 -0
  260. package/dist/profiles/jsonPathSampleRow.js.map +1 -0
  261. package/dist/profiles/profileApi.cjs +37 -0
  262. package/dist/profiles/profileApi.cjs.map +1 -0
  263. package/dist/profiles/profileApi.d.ts +32 -0
  264. package/dist/profiles/profileApi.d.ts.map +1 -0
  265. package/dist/profiles/profileApi.js +37 -0
  266. package/dist/profiles/profileApi.js.map +1 -0
  267. package/dist/profiles/profileBuilder.cjs +65 -0
  268. package/dist/profiles/profileBuilder.cjs.map +1 -0
  269. package/dist/profiles/profileBuilder.d.ts +11 -0
  270. package/dist/profiles/profileBuilder.d.ts.map +1 -0
  271. package/dist/profiles/profileBuilder.js +65 -0
  272. package/dist/profiles/profileBuilder.js.map +1 -0
  273. package/dist/profiles/profileBuilderExtension.cjs +25 -0
  274. package/dist/profiles/profileBuilderExtension.cjs.map +1 -0
  275. package/dist/profiles/profileBuilderExtension.d.ts +5 -0
  276. package/dist/profiles/profileBuilderExtension.d.ts.map +1 -0
  277. package/dist/profiles/profileBuilderExtension.js +25 -0
  278. package/dist/profiles/profileBuilderExtension.js.map +1 -0
  279. package/dist/profiles/profileBuilderWorkspace.cjs +368 -0
  280. package/dist/profiles/profileBuilderWorkspace.cjs.map +1 -0
  281. package/dist/profiles/profileBuilderWorkspace.d.ts +21 -0
  282. package/dist/profiles/profileBuilderWorkspace.d.ts.map +1 -0
  283. package/dist/profiles/profileBuilderWorkspace.js +368 -0
  284. package/dist/profiles/profileBuilderWorkspace.js.map +1 -0
  285. package/dist/profiles/profileColumnModel.cjs +23 -0
  286. package/dist/profiles/profileColumnModel.cjs.map +1 -0
  287. package/dist/profiles/profileColumnModel.d.ts +8 -0
  288. package/dist/profiles/profileColumnModel.d.ts.map +1 -0
  289. package/dist/profiles/profileColumnModel.js +23 -0
  290. package/dist/profiles/profileColumnModel.js.map +1 -0
  291. package/dist/profiles/profileColumnPicker.cjs +68 -0
  292. package/dist/profiles/profileColumnPicker.cjs.map +1 -0
  293. package/dist/profiles/profileColumnPicker.d.ts +11 -0
  294. package/dist/profiles/profileColumnPicker.d.ts.map +1 -0
  295. package/dist/profiles/profileColumnPicker.js +68 -0
  296. package/dist/profiles/profileColumnPicker.js.map +1 -0
  297. package/dist/profiles/profileEditor.cjs +386 -0
  298. package/dist/profiles/profileEditor.cjs.map +1 -0
  299. package/dist/profiles/profileEditor.d.ts +19 -0
  300. package/dist/profiles/profileEditor.d.ts.map +1 -0
  301. package/dist/profiles/profileEditor.js +386 -0
  302. package/dist/profiles/profileEditor.js.map +1 -0
  303. package/dist/profiles/profileEditorModel.cjs +181 -0
  304. package/dist/profiles/profileEditorModel.cjs.map +1 -0
  305. package/dist/profiles/profileEditorModel.d.ts +74 -0
  306. package/dist/profiles/profileEditorModel.d.ts.map +1 -0
  307. package/dist/profiles/profileEditorModel.js +181 -0
  308. package/dist/profiles/profileEditorModel.js.map +1 -0
  309. package/dist/profiles/profileEditorPreview.cjs +38 -0
  310. package/dist/profiles/profileEditorPreview.cjs.map +1 -0
  311. package/dist/profiles/profileEditorPreview.d.ts +12 -0
  312. package/dist/profiles/profileEditorPreview.d.ts.map +1 -0
  313. package/dist/profiles/profileEditorPreview.js +38 -0
  314. package/dist/profiles/profileEditorPreview.js.map +1 -0
  315. package/dist/profiles/profileEditorRail.cjs +46 -0
  316. package/dist/profiles/profileEditorRail.cjs.map +1 -0
  317. package/dist/profiles/profileEditorRail.d.ts +8 -0
  318. package/dist/profiles/profileEditorRail.d.ts.map +1 -0
  319. package/dist/profiles/profileEditorRail.js +46 -0
  320. package/dist/profiles/profileEditorRail.js.map +1 -0
  321. package/dist/profiles/profileEditorRaw.cjs +118 -0
  322. package/dist/profiles/profileEditorRaw.cjs.map +1 -0
  323. package/dist/profiles/profileEditorRaw.d.ts +7 -0
  324. package/dist/profiles/profileEditorRaw.d.ts.map +1 -0
  325. package/dist/profiles/profileEditorRaw.js +118 -0
  326. package/dist/profiles/profileEditorRaw.js.map +1 -0
  327. package/dist/profiles/profileEditorRoutes.cjs +7 -0
  328. package/dist/profiles/profileEditorRoutes.cjs.map +1 -0
  329. package/dist/profiles/profileEditorRoutes.d.ts +2 -0
  330. package/dist/profiles/profileEditorRoutes.d.ts.map +1 -0
  331. package/dist/profiles/profileEditorRoutes.js +7 -0
  332. package/dist/profiles/profileEditorRoutes.js.map +1 -0
  333. package/dist/profiles/profileEditorSections.cjs +213 -0
  334. package/dist/profiles/profileEditorSections.cjs.map +1 -0
  335. package/dist/profiles/profileEditorSections.d.ts +23 -0
  336. package/dist/profiles/profileEditorSections.d.ts.map +1 -0
  337. package/dist/profiles/profileEditorSections.js +213 -0
  338. package/dist/profiles/profileEditorSections.js.map +1 -0
  339. package/dist/profiles/profileFieldEditor.cjs +200 -0
  340. package/dist/profiles/profileFieldEditor.cjs.map +1 -0
  341. package/dist/profiles/profileFieldEditor.d.ts +34 -0
  342. package/dist/profiles/profileFieldEditor.d.ts.map +1 -0
  343. package/dist/profiles/profileFieldEditor.js +200 -0
  344. package/dist/profiles/profileFieldEditor.js.map +1 -0
  345. package/dist/profiles/profileFieldGrid.cjs +250 -0
  346. package/dist/profiles/profileFieldGrid.cjs.map +1 -0
  347. package/dist/profiles/profileFieldGrid.d.ts +20 -0
  348. package/dist/profiles/profileFieldGrid.d.ts.map +1 -0
  349. package/dist/profiles/profileFieldGrid.js +250 -0
  350. package/dist/profiles/profileFieldGrid.js.map +1 -0
  351. package/dist/profiles/profileFieldManager.cjs +103 -0
  352. package/dist/profiles/profileFieldManager.cjs.map +1 -0
  353. package/dist/profiles/profileFieldManager.d.ts +9 -0
  354. package/dist/profiles/profileFieldManager.d.ts.map +1 -0
  355. package/dist/profiles/profileFieldManager.js +103 -0
  356. package/dist/profiles/profileFieldManager.js.map +1 -0
  357. package/dist/profiles/profileFieldState.cjs +136 -0
  358. package/dist/profiles/profileFieldState.cjs.map +1 -0
  359. package/dist/profiles/profileFieldState.d.ts +41 -0
  360. package/dist/profiles/profileFieldState.d.ts.map +1 -0
  361. package/dist/profiles/profileFieldState.js +136 -0
  362. package/dist/profiles/profileFieldState.js.map +1 -0
  363. package/dist/profiles/profileFieldTypes.cjs +17 -0
  364. package/dist/profiles/profileFieldTypes.cjs.map +1 -0
  365. package/dist/profiles/profileFieldTypes.d.ts +8 -0
  366. package/dist/profiles/profileFieldTypes.d.ts.map +1 -0
  367. package/dist/profiles/profileFieldTypes.js +17 -0
  368. package/dist/profiles/profileFieldTypes.js.map +1 -0
  369. package/dist/profiles/profileParamModel.cjs +78 -0
  370. package/dist/profiles/profileParamModel.cjs.map +1 -0
  371. package/dist/profiles/profileParamModel.d.ts +3 -0
  372. package/dist/profiles/profileParamModel.d.ts.map +1 -0
  373. package/dist/profiles/profileParamModel.js +78 -0
  374. package/dist/profiles/profileParamModel.js.map +1 -0
  375. package/dist/profiles/profileSamplePayload.cjs +15 -0
  376. package/dist/profiles/profileSamplePayload.cjs.map +1 -0
  377. package/dist/profiles/profileSamplePayload.d.ts +13 -0
  378. package/dist/profiles/profileSamplePayload.d.ts.map +1 -0
  379. package/dist/profiles/profileSamplePayload.js +15 -0
  380. package/dist/profiles/profileSamplePayload.js.map +1 -0
  381. package/dist/profiles/profileWizard.cjs +257 -0
  382. package/dist/profiles/profileWizard.cjs.map +1 -0
  383. package/dist/profiles/profileWizard.d.ts +12 -0
  384. package/dist/profiles/profileWizard.d.ts.map +1 -0
  385. package/dist/profiles/profileWizard.js +257 -0
  386. package/dist/profiles/profileWizard.js.map +1 -0
  387. package/dist/profiles/profileWizardHelp.cjs +10 -0
  388. package/dist/profiles/profileWizardHelp.cjs.map +1 -0
  389. package/dist/profiles/profileWizardHelp.d.ts +13 -0
  390. package/dist/profiles/profileWizardHelp.d.ts.map +1 -0
  391. package/dist/profiles/profileWizardHelp.js +10 -0
  392. package/dist/profiles/profileWizardHelp.js.map +1 -0
  393. package/dist/profiles/profileWizardModel.cjs +198 -0
  394. package/dist/profiles/profileWizardModel.cjs.map +1 -0
  395. package/dist/profiles/profileWizardModel.d.ts +255 -0
  396. package/dist/profiles/profileWizardModel.d.ts.map +1 -0
  397. package/dist/profiles/profileWizardModel.js +198 -0
  398. package/dist/profiles/profileWizardModel.js.map +1 -0
  399. package/dist/profiles/profileWizardQueryStep.cjs +215 -0
  400. package/dist/profiles/profileWizardQueryStep.cjs.map +1 -0
  401. package/dist/profiles/profileWizardQueryStep.d.ts +18 -0
  402. package/dist/profiles/profileWizardQueryStep.d.ts.map +1 -0
  403. package/dist/profiles/profileWizardQueryStep.js +215 -0
  404. package/dist/profiles/profileWizardQueryStep.js.map +1 -0
  405. package/dist/profiles/profileWizardSteps.cjs +214 -0
  406. package/dist/profiles/profileWizardSteps.cjs.map +1 -0
  407. package/dist/profiles/profileWizardSteps.d.ts +35 -0
  408. package/dist/profiles/profileWizardSteps.d.ts.map +1 -0
  409. package/dist/profiles/profileWizardSteps.js +214 -0
  410. package/dist/profiles/profileWizardSteps.js.map +1 -0
  411. package/dist/profiles/profileYaml.cjs +19 -0
  412. package/dist/profiles/profileYaml.cjs.map +1 -0
  413. package/dist/profiles/profileYaml.d.ts +4 -0
  414. package/dist/profiles/profileYaml.d.ts.map +1 -0
  415. package/dist/profiles/profileYaml.js +19 -0
  416. package/dist/profiles/profileYaml.js.map +1 -0
  417. package/dist/profiles/prometheusResults.cjs +60 -0
  418. package/dist/profiles/prometheusResults.cjs.map +1 -0
  419. package/dist/profiles/prometheusResults.d.ts +7 -0
  420. package/dist/profiles/prometheusResults.d.ts.map +1 -0
  421. package/dist/profiles/prometheusResults.js +60 -0
  422. package/dist/profiles/prometheusResults.js.map +1 -0
  423. package/dist/profiles/queryRowLimits.cjs +82 -0
  424. package/dist/profiles/queryRowLimits.cjs.map +1 -0
  425. package/dist/profiles/queryRowLimits.d.ts +9 -0
  426. package/dist/profiles/queryRowLimits.d.ts.map +1 -0
  427. package/dist/profiles/queryRowLimits.js +82 -0
  428. package/dist/profiles/queryRowLimits.js.map +1 -0
  429. package/dist/profiles/queryRowLimitsModel.cjs +10 -0
  430. package/dist/profiles/queryRowLimitsModel.cjs.map +1 -0
  431. package/dist/profiles/queryRowLimitsModel.d.ts +9 -0
  432. package/dist/profiles/queryRowLimitsModel.d.ts.map +1 -0
  433. package/dist/profiles/queryRowLimitsModel.js +10 -0
  434. package/dist/profiles/queryRowLimitsModel.js.map +1 -0
  435. package/dist/profiles/queryTargetPicker.cjs +42 -0
  436. package/dist/profiles/queryTargetPicker.cjs.map +1 -0
  437. package/dist/profiles/queryTargetPicker.d.ts +8 -0
  438. package/dist/profiles/queryTargetPicker.d.ts.map +1 -0
  439. package/dist/profiles/queryTargetPicker.js +42 -0
  440. package/dist/profiles/queryTargetPicker.js.map +1 -0
  441. package/dist/profiles/testSchema.d.ts +3 -0
  442. package/dist/profiles/testSchema.d.ts.map +1 -0
  443. package/dist/profiles.cjs +223 -0
  444. package/dist/profiles.cjs.map +1 -0
  445. package/dist/profiles.d.ts +68 -0
  446. package/dist/profiles.d.ts.map +1 -0
  447. package/dist/profiles.js +223 -0
  448. package/dist/profiles.js.map +1 -0
  449. package/dist/styles.css +1 -1
  450. package/package.json +6 -1
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const reactQuery = require("@tanstack/react-query");
4
+ const react = require("react");
5
+ const connectionBrowserModel = require("./connectionBrowserModel.cjs");
6
+ function compileRequestBody(input) {
7
+ const { search, params, roles } = input;
8
+ return JSON.stringify({
9
+ search,
10
+ ...params && Object.keys(params).length ? { params } : {},
11
+ ...roles && Object.keys(roles).length ? { roles } : {}
12
+ });
13
+ }
14
+ function errorMessage(error) {
15
+ if (!error) return void 0;
16
+ return error instanceof Error ? error.message : String(error);
17
+ }
18
+ function useCompiledSearch(input) {
19
+ var _a;
20
+ const { baseUrl, enabled = true, debounceMs = 250 } = input;
21
+ const body = compileRequestBody(input);
22
+ const [settled, setSettled] = react.useState(body);
23
+ react.useEffect(() => {
24
+ const timer = setTimeout(() => setSettled(body), debounceMs);
25
+ return () => clearTimeout(timer);
26
+ }, [body, debounceMs]);
27
+ const compiled = reactQuery.useQuery({
28
+ queryKey: ["es-compile", baseUrl, settled],
29
+ queryFn: () => connectionBrowserModel.fetchJSON(`${baseUrl}/compile`, {
30
+ method: "POST",
31
+ headers: { "Content-Type": "application/json" },
32
+ body: settled
33
+ }),
34
+ enabled: enabled && baseUrl !== "",
35
+ retry: 0
36
+ });
37
+ return {
38
+ query: ((_a = compiled.data) == null ? void 0 : _a.query) ?? "",
39
+ ...compiled.data ? { size: compiled.data.size, from: compiled.data.from } : {},
40
+ ...compiled.error ? { error: errorMessage(compiled.error) } : {},
41
+ loading: compiled.isFetching
42
+ };
43
+ }
44
+ exports.compileRequestBody = compileRequestBody;
45
+ exports.errorMessage = errorMessage;
46
+ exports.useCompiledSearch = useCompiledSearch;
47
+ //# sourceMappingURL=esQueryCompile.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esQueryCompile.cjs","sources":["../../src/profiles/esQueryCompile.ts"],"sourcesContent":["/**\n * The DSL a specification compiles to. The server compiles it — the same code\n * path a query runs through — so the preview is the query, not a re-derivation\n * of it that could drift.\n */\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useEffect, useState } from \"react\";\nimport { fetchJSON } from \"./connectionBrowserModel\";\nimport type { EsSearch } from \"./esQueryBuilderModel\";\n\nexport type EsCompileResult = { query: string; size: number; from: number };\n\nexport type EsCompilation = {\n query: string;\n size?: number | undefined;\n from?: number | undefined;\n /** The compiler's own message for a specification it rejected. */\n error?: string | undefined;\n loading: boolean;\n};\n\n/**\n * EsCompileInput is the specification together with the parameter values it\n * compiles against: the server binds a {param:…} operand from them and\n * interpolates a {{.params.…}} one, so both need real values to preview.\n */\nexport type EsCompileInput = {\n search: EsSearch;\n params?: Record<string, unknown>;\n roles?: Record<string, string>;\n};\n\nexport type EsCompileRequest = EsCompileInput & {\n baseUrl: string;\n enabled?: boolean;\n debounceMs?: number;\n};\n\n/** compileRequestBody is what POST /compile takes, with the empty parts left off. */\nexport function compileRequestBody(input: EsCompileInput): string {\n const { search, params, roles } = input;\n return JSON.stringify({\n search,\n ...(params && Object.keys(params).length ? { params } : {}),\n ...(roles && Object.keys(roles).length ? { roles } : {}),\n });\n}\n\nexport function errorMessage(error: unknown): string | undefined {\n if (!error) return undefined;\n return error instanceof Error ? error.message : String(error);\n}\n\n/**\n * useCompiledSearch compiles the specification as it is edited. The body is\n * debounced rather than the request, so an edit that lands back on a body\n * already compiled costs nothing.\n */\nexport function useCompiledSearch(input: EsCompileRequest): EsCompilation {\n const { baseUrl, enabled = true, debounceMs = 250 } = input;\n const body = compileRequestBody(input);\n const [settled, setSettled] = useState(body);\n useEffect(() => {\n const timer = setTimeout(() => setSettled(body), debounceMs);\n return () => clearTimeout(timer);\n }, [body, debounceMs]);\n\n const compiled = useQuery({\n queryKey: [\"es-compile\", baseUrl, settled],\n queryFn: () =>\n fetchJSON<EsCompileResult>(`${baseUrl}/compile`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: settled,\n }),\n enabled: enabled && baseUrl !== \"\",\n retry: 0,\n });\n\n return {\n query: compiled.data?.query ?? \"\",\n ...(compiled.data ? { size: compiled.data.size, from: compiled.data.from } : {}),\n ...(compiled.error ? { error: errorMessage(compiled.error) } : {}),\n loading: compiled.isFetching,\n };\n}\n"],"names":["useState","useEffect","useQuery","fetchJSON"],"mappings":";;;;;AAwCO,SAAS,mBAAmB,OAA+B;AAChE,QAAM,EAAE,QAAQ,QAAQ,MAAA,IAAU;AAClC,SAAO,KAAK,UAAU;AAAA,IACpB;AAAA,IACA,GAAI,UAAU,OAAO,KAAK,MAAM,EAAE,SAAS,EAAE,OAAA,IAAW,CAAA;AAAA,IACxD,GAAI,SAAS,OAAO,KAAK,KAAK,EAAE,SAAS,EAAE,UAAU,CAAA;AAAA,EAAC,CACvD;AACH;AAEO,SAAS,aAAa,OAAoC;AAC/D,MAAI,CAAC,MAAO,QAAO;AACnB,SAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAC9D;AAOO,SAAS,kBAAkB,OAAwC;;AACxE,QAAM,EAAE,SAAS,UAAU,MAAM,aAAa,QAAQ;AACtD,QAAM,OAAO,mBAAmB,KAAK;AACrC,QAAM,CAAC,SAAS,UAAU,IAAIA,MAAAA,SAAS,IAAI;AAC3CC,QAAAA,UAAU,MAAM;AACd,UAAM,QAAQ,WAAW,MAAM,WAAW,IAAI,GAAG,UAAU;AAC3D,WAAO,MAAM,aAAa,KAAK;AAAA,EACjC,GAAG,CAAC,MAAM,UAAU,CAAC;AAErB,QAAM,WAAWC,WAAAA,SAAS;AAAA,IACxB,UAAU,CAAC,cAAc,SAAS,OAAO;AAAA,IACzC,SAAS,MACPC,uBAAAA,UAA2B,GAAG,OAAO,YAAY;AAAA,MAC/C,QAAQ;AAAA,MACR,SAAS,EAAE,gBAAgB,mBAAA;AAAA,MAC3B,MAAM;AAAA,IAAA,CACP;AAAA,IACH,SAAS,WAAW,YAAY;AAAA,IAChC,OAAO;AAAA,EAAA,CACR;AAED,SAAO;AAAA,IACL,SAAO,cAAS,SAAT,mBAAe,UAAS;AAAA,IAC/B,GAAI,SAAS,OAAO,EAAE,MAAM,SAAS,KAAK,MAAM,MAAM,SAAS,KAAK,KAAA,IAAS,CAAA;AAAA,IAC7E,GAAI,SAAS,QAAQ,EAAE,OAAO,aAAa,SAAS,KAAK,EAAA,IAAM,CAAA;AAAA,IAC/D,SAAS,SAAS;AAAA,EAAA;AAEtB;;;;"}
@@ -0,0 +1,39 @@
1
+ import { EsSearch } from './esQueryBuilderModel';
2
+ export type EsCompileResult = {
3
+ query: string;
4
+ size: number;
5
+ from: number;
6
+ };
7
+ export type EsCompilation = {
8
+ query: string;
9
+ size?: number | undefined;
10
+ from?: number | undefined;
11
+ /** The compiler's own message for a specification it rejected. */
12
+ error?: string | undefined;
13
+ loading: boolean;
14
+ };
15
+ /**
16
+ * EsCompileInput is the specification together with the parameter values it
17
+ * compiles against: the server binds a {param:…} operand from them and
18
+ * interpolates a {{.params.…}} one, so both need real values to preview.
19
+ */
20
+ export type EsCompileInput = {
21
+ search: EsSearch;
22
+ params?: Record<string, unknown>;
23
+ roles?: Record<string, string>;
24
+ };
25
+ export type EsCompileRequest = EsCompileInput & {
26
+ baseUrl: string;
27
+ enabled?: boolean;
28
+ debounceMs?: number;
29
+ };
30
+ /** compileRequestBody is what POST /compile takes, with the empty parts left off. */
31
+ export declare function compileRequestBody(input: EsCompileInput): string;
32
+ export declare function errorMessage(error: unknown): string | undefined;
33
+ /**
34
+ * useCompiledSearch compiles the specification as it is edited. The body is
35
+ * debounced rather than the request, so an edit that lands back on a body
36
+ * already compiled costs nothing.
37
+ */
38
+ export declare function useCompiledSearch(input: EsCompileRequest): EsCompilation;
39
+ //# sourceMappingURL=esQueryCompile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esQueryCompile.d.ts","sourceRoot":"","sources":["../../src/profiles/esQueryCompile.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,MAAM,eAAe,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE5E,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAOhE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAG/D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,aAAa,CA2BxE"}
@@ -0,0 +1,47 @@
1
+ import { useQuery } from "@tanstack/react-query";
2
+ import { useState, useEffect } from "react";
3
+ import { fetchJSON } from "./connectionBrowserModel.js";
4
+ function compileRequestBody(input) {
5
+ const { search, params, roles } = input;
6
+ return JSON.stringify({
7
+ search,
8
+ ...params && Object.keys(params).length ? { params } : {},
9
+ ...roles && Object.keys(roles).length ? { roles } : {}
10
+ });
11
+ }
12
+ function errorMessage(error) {
13
+ if (!error) return void 0;
14
+ return error instanceof Error ? error.message : String(error);
15
+ }
16
+ function useCompiledSearch(input) {
17
+ var _a;
18
+ const { baseUrl, enabled = true, debounceMs = 250 } = input;
19
+ const body = compileRequestBody(input);
20
+ const [settled, setSettled] = useState(body);
21
+ useEffect(() => {
22
+ const timer = setTimeout(() => setSettled(body), debounceMs);
23
+ return () => clearTimeout(timer);
24
+ }, [body, debounceMs]);
25
+ const compiled = useQuery({
26
+ queryKey: ["es-compile", baseUrl, settled],
27
+ queryFn: () => fetchJSON(`${baseUrl}/compile`, {
28
+ method: "POST",
29
+ headers: { "Content-Type": "application/json" },
30
+ body: settled
31
+ }),
32
+ enabled: enabled && baseUrl !== "",
33
+ retry: 0
34
+ });
35
+ return {
36
+ query: ((_a = compiled.data) == null ? void 0 : _a.query) ?? "",
37
+ ...compiled.data ? { size: compiled.data.size, from: compiled.data.from } : {},
38
+ ...compiled.error ? { error: errorMessage(compiled.error) } : {},
39
+ loading: compiled.isFetching
40
+ };
41
+ }
42
+ export {
43
+ compileRequestBody,
44
+ errorMessage,
45
+ useCompiledSearch
46
+ };
47
+ //# sourceMappingURL=esQueryCompile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esQueryCompile.js","sources":["../../src/profiles/esQueryCompile.ts"],"sourcesContent":["/**\n * The DSL a specification compiles to. The server compiles it — the same code\n * path a query runs through — so the preview is the query, not a re-derivation\n * of it that could drift.\n */\n\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useEffect, useState } from \"react\";\nimport { fetchJSON } from \"./connectionBrowserModel\";\nimport type { EsSearch } from \"./esQueryBuilderModel\";\n\nexport type EsCompileResult = { query: string; size: number; from: number };\n\nexport type EsCompilation = {\n query: string;\n size?: number | undefined;\n from?: number | undefined;\n /** The compiler's own message for a specification it rejected. */\n error?: string | undefined;\n loading: boolean;\n};\n\n/**\n * EsCompileInput is the specification together with the parameter values it\n * compiles against: the server binds a {param:…} operand from them and\n * interpolates a {{.params.…}} one, so both need real values to preview.\n */\nexport type EsCompileInput = {\n search: EsSearch;\n params?: Record<string, unknown>;\n roles?: Record<string, string>;\n};\n\nexport type EsCompileRequest = EsCompileInput & {\n baseUrl: string;\n enabled?: boolean;\n debounceMs?: number;\n};\n\n/** compileRequestBody is what POST /compile takes, with the empty parts left off. */\nexport function compileRequestBody(input: EsCompileInput): string {\n const { search, params, roles } = input;\n return JSON.stringify({\n search,\n ...(params && Object.keys(params).length ? { params } : {}),\n ...(roles && Object.keys(roles).length ? { roles } : {}),\n });\n}\n\nexport function errorMessage(error: unknown): string | undefined {\n if (!error) return undefined;\n return error instanceof Error ? error.message : String(error);\n}\n\n/**\n * useCompiledSearch compiles the specification as it is edited. The body is\n * debounced rather than the request, so an edit that lands back on a body\n * already compiled costs nothing.\n */\nexport function useCompiledSearch(input: EsCompileRequest): EsCompilation {\n const { baseUrl, enabled = true, debounceMs = 250 } = input;\n const body = compileRequestBody(input);\n const [settled, setSettled] = useState(body);\n useEffect(() => {\n const timer = setTimeout(() => setSettled(body), debounceMs);\n return () => clearTimeout(timer);\n }, [body, debounceMs]);\n\n const compiled = useQuery({\n queryKey: [\"es-compile\", baseUrl, settled],\n queryFn: () =>\n fetchJSON<EsCompileResult>(`${baseUrl}/compile`, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: settled,\n }),\n enabled: enabled && baseUrl !== \"\",\n retry: 0,\n });\n\n return {\n query: compiled.data?.query ?? \"\",\n ...(compiled.data ? { size: compiled.data.size, from: compiled.data.from } : {}),\n ...(compiled.error ? { error: errorMessage(compiled.error) } : {}),\n loading: compiled.isFetching,\n };\n}\n"],"names":[],"mappings":";;;AAwCO,SAAS,mBAAmB,OAA+B;AAChE,QAAM,EAAE,QAAQ,QAAQ,MAAA,IAAU;AAClC,SAAO,KAAK,UAAU;AAAA,IACpB;AAAA,IACA,GAAI,UAAU,OAAO,KAAK,MAAM,EAAE,SAAS,EAAE,OAAA,IAAW,CAAA;AAAA,IACxD,GAAI,SAAS,OAAO,KAAK,KAAK,EAAE,SAAS,EAAE,UAAU,CAAA;AAAA,EAAC,CACvD;AACH;AAEO,SAAS,aAAa,OAAoC;AAC/D,MAAI,CAAC,MAAO,QAAO;AACnB,SAAO,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAC9D;AAOO,SAAS,kBAAkB,OAAwC;;AACxE,QAAM,EAAE,SAAS,UAAU,MAAM,aAAa,QAAQ;AACtD,QAAM,OAAO,mBAAmB,KAAK;AACrC,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,IAAI;AAC3C,YAAU,MAAM;AACd,UAAM,QAAQ,WAAW,MAAM,WAAW,IAAI,GAAG,UAAU;AAC3D,WAAO,MAAM,aAAa,KAAK;AAAA,EACjC,GAAG,CAAC,MAAM,UAAU,CAAC;AAErB,QAAM,WAAW,SAAS;AAAA,IACxB,UAAU,CAAC,cAAc,SAAS,OAAO;AAAA,IACzC,SAAS,MACP,UAA2B,GAAG,OAAO,YAAY;AAAA,MAC/C,QAAQ;AAAA,MACR,SAAS,EAAE,gBAAgB,mBAAA;AAAA,MAC3B,MAAM;AAAA,IAAA,CACP;AAAA,IACH,SAAS,WAAW,YAAY;AAAA,IAChC,OAAO;AAAA,EAAA,CACR;AAED,SAAO;AAAA,IACL,SAAO,cAAS,SAAT,mBAAe,UAAS;AAAA,IAC/B,GAAI,SAAS,OAAO,EAAE,MAAM,SAAS,KAAK,MAAM,MAAM,SAAS,KAAK,KAAA,IAAS,CAAA;AAAA,IAC7E,GAAI,SAAS,QAAQ,EAAE,OAAO,aAAa,SAAS,KAAK,EAAA,IAAM,CAAA;AAAA,IAC/D,SAAS,SAAS;AAAA,EAAA;AAEtB;"}
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const Combobox = require("../components/Combobox.cjs");
5
+ const IconButton = require("../components/IconButton.cjs");
6
+ const MultiSelect = require("../components/MultiSelect.cjs");
7
+ const select = require("../components/select.cjs");
8
+ const profileWizardModel = require("./profileWizardModel.cjs");
9
+ const esQueryOperandEditors = require("./esQueryOperandEditors.cjs");
10
+ const esQueryOperators = require("./esQueryOperators.cjs");
11
+ const esQueryOccur = require("./esQueryOccur.cjs");
12
+ const UiTrash = require("../icons/components/UiTrash.cjs");
13
+ function EsQueryConditionRow({
14
+ condition,
15
+ path,
16
+ context,
17
+ actions
18
+ }) {
19
+ var _a, _b;
20
+ const { catalog, qualifierNames, qualifierRestrictions, qualifiers } = context.vocabulary;
21
+ const field = context.fields.find((entry) => entry.name === condition.field);
22
+ const info = catalog.find((entry) => entry.op === condition.op);
23
+ const warning = field ? esQueryOperators.fieldWarning(field) : void 0;
24
+ const set = (patch) => actions.update(path, (current) => profileWizardModel.applyPatch(current, patch));
25
+ const rowId = path.join("-") || "root";
26
+ const values = condition.field ? (_a = context.values) == null ? void 0 : _a.call(context, { path, field: condition.field }) : void 0;
27
+ const advanced = esQueryOperators.qualifiersForOperator({
28
+ names: qualifierNames,
29
+ ...qualifierRestrictions ? { restrictions: qualifierRestrictions } : {},
30
+ op: condition.op
31
+ });
32
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-md border bg-card px-2 py-2", children: [
33
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [
34
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "w-28 shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(
35
+ select.Select,
36
+ {
37
+ "aria-label": "Clause",
38
+ value: condition.occur || "filter",
39
+ options: esQueryOccur.occurOptions(context.vocabulary.occurs),
40
+ onChange: (event) => set({ occur: event.target.value })
41
+ }
42
+ ) }),
43
+ (info == null ? void 0 : info.needsField) ? /* @__PURE__ */ jsxRuntime.jsx(
44
+ Combobox.Combobox,
45
+ {
46
+ ariaLabel: "Field",
47
+ className: "min-w-56 flex-1",
48
+ value: condition.field ?? "",
49
+ onChange: (next) => set({ field: next }),
50
+ options: fieldOptions(context.fields),
51
+ placeholder: "Field…"
52
+ }
53
+ ) : null,
54
+ (info == null ? void 0 : info.acceptsFields) ? /* @__PURE__ */ jsxRuntime.jsx(
55
+ MultiSelect.MultiSelect,
56
+ {
57
+ ariaLabel: "Fields",
58
+ className: "min-w-56 flex-1",
59
+ value: condition.fields ?? [],
60
+ onChange: (next) => set({ fields: next }),
61
+ options: context.fields.map((entry) => ({
62
+ value: entry.name,
63
+ label: entry.name
64
+ })),
65
+ placeholder: "All fields"
66
+ }
67
+ ) : null,
68
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "w-48 shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(
69
+ select.Select,
70
+ {
71
+ "aria-label": "Operator",
72
+ value: condition.op,
73
+ onChange: (event) => {
74
+ const next = catalog.find(
75
+ (entry) => entry.op === event.target.value
76
+ );
77
+ if (!next) {
78
+ throw new Error(
79
+ `operator ${event.target.value} is missing from the catalog`
80
+ );
81
+ }
82
+ actions.update(
83
+ path,
84
+ (current) => esQueryOperators.changeConditionOperator(current, next)
85
+ );
86
+ },
87
+ children: operatorGroups(catalog, field, condition.op).map((group) => {
88
+ const options = group.operators.map((entry) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: entry.op, children: entry.label }, entry.op));
89
+ return group.label ? /* @__PURE__ */ jsxRuntime.jsx("optgroup", { label: group.label, children: options }, group.label) : options;
90
+ })
91
+ }
92
+ ) }),
93
+ /* @__PURE__ */ jsxRuntime.jsx(
94
+ esQueryOperandEditors.ConditionOperand,
95
+ {
96
+ condition,
97
+ arity: (info == null ? void 0 : info.arity) ?? "single",
98
+ rowId,
99
+ params: context.params,
100
+ dateMath: Boolean(
101
+ (field == null ? void 0 : field.dataType) === "date" || ((_b = field == null ? void 0 : field.types) == null ? void 0 : _b.includes("date"))
102
+ ),
103
+ ...values ? { values } : {},
104
+ set,
105
+ onBindParam: (operand, name) => actions.mapParam(path, operand, name),
106
+ onUnbindParam: (name) => actions.unmapParam(path, name)
107
+ }
108
+ ),
109
+ /* @__PURE__ */ jsxRuntime.jsx(
110
+ IconButton.IconButton,
111
+ {
112
+ icon: UiTrash.UiTrash,
113
+ label: "Remove condition",
114
+ onClick: () => actions.remove(path)
115
+ }
116
+ )
117
+ ] }),
118
+ warning ? /* @__PURE__ */ jsxRuntime.jsx("p", { role: "alert", className: "mt-1 text-xs text-amber-600 dark:text-amber-400", children: warning }) : null,
119
+ advanced.length ? /* @__PURE__ */ jsxRuntime.jsxs("details", { className: "mt-1", children: [
120
+ /* @__PURE__ */ jsxRuntime.jsx("summary", { className: "cursor-pointer text-xs text-muted-foreground", children: "Advanced" }),
121
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 flex flex-wrap items-end gap-2", children: [
122
+ advanced.map((name) => /* @__PURE__ */ jsxRuntime.jsx(
123
+ esQueryOperandEditors.QualifierInput,
124
+ {
125
+ name,
126
+ schema: qualifiers[name] ?? {},
127
+ value: condition[name],
128
+ onChange: (next) => set({ [name]: next })
129
+ },
130
+ name
131
+ )),
132
+ /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-1 text-xs text-muted-foreground", children: [
133
+ /* @__PURE__ */ jsxRuntime.jsx(
134
+ "input",
135
+ {
136
+ type: "checkbox",
137
+ checked: condition.optional === true,
138
+ onChange: (event) => set({ optional: event.target.checked })
139
+ }
140
+ ),
141
+ "Optional"
142
+ ] })
143
+ ] })
144
+ ] }) : null
145
+ ] });
146
+ }
147
+ function fieldOptions(fields) {
148
+ return fields.map((field) => ({
149
+ value: field.name,
150
+ label: field.name,
151
+ title: (field.types ?? (field.dataType ? [field.dataType] : [])).join(", ")
152
+ }));
153
+ }
154
+ function operatorGroups(catalog, field, current) {
155
+ const offered = esQueryOperators.operatorsForField(catalog, field);
156
+ const groups = [];
157
+ const plain = offered.filter((entry) => !entry.advanced);
158
+ const advanced = offered.filter((entry) => entry.advanced);
159
+ if (!offered.some((entry) => entry.op === current)) {
160
+ const info = catalog.find((entry) => entry.op === current);
161
+ advanced.unshift({ ...info ?? { op: current, label: current, arity: "single", fieldTypes: [] } });
162
+ }
163
+ if (plain.length) groups.push({ operators: plain });
164
+ if (advanced.length) groups.push({ label: "Advanced", operators: advanced });
165
+ return groups;
166
+ }
167
+ exports.EsQueryConditionRow = EsQueryConditionRow;
168
+ //# sourceMappingURL=esQueryConditionRow.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esQueryConditionRow.cjs","sources":["../../src/profiles/esQueryConditionRow.tsx"],"sourcesContent":["/**\n * One leaf condition: which field, which operator, and the operand that\n * operator takes. Which operators a field may use and which advanced qualifiers\n * an operator emits both come from the schema vocabulary, so this file owns the\n * editing surface and never the vocabulary itself.\n */\n\nimport { Combobox } from \"../components/Combobox\";\nimport { IconButton } from \"../components/IconButton\";\nimport { MultiSelect } from \"../components/MultiSelect\";\nimport { Select } from \"../components/select\";\nimport { UiTrash } from \"../icons\";\nimport type { ConditionPath, EsCondition } from \"./esQueryBuilderModel\";\nimport { applyPatch, type Patch } from \"./profileWizardModel\";\nimport type { ParamOperand } from \"./esParamMappingModel\";\nimport type { FieldValuesQuery } from \"./esFieldValues\";\nimport { ConditionOperand, QualifierInput } from \"./esQueryOperandEditors\";\nimport type { ParamDraft } from \"./profileWizardModel\";\nimport {\n changeConditionOperator,\n fieldWarning,\n operatorsForField,\n qualifiersForOperator,\n type EsBuilderVocabulary,\n type EsFieldMapping,\n} from \"./esQueryOperators\";\nimport { occurOptions } from \"./esQueryOccur\";\n\nexport type EsQueryContext = {\n fields: EsFieldMapping[];\n vocabulary: EsBuilderVocabulary;\n /** Declared profile parameters an operand can bind to. */\n params: ParamDraft[];\n /**\n * The values a row's field holds, scoped by the builder to the rest of the\n * query. Absent where the host has no connection to ask.\n */\n values?: (request: {\n path: ConditionPath;\n field: string;\n }) => FieldValuesQuery | undefined;\n};\n\n/**\n * The edits a condition row or group asks for, addressed by path. The builder\n * owns the tree and applies them; every node below it is stateless.\n */\nexport type EsQueryTreeActions = {\n update: (\n path: ConditionPath,\n update: (condition: EsCondition) => EsCondition,\n ) => void;\n insert: (groupPath: ConditionPath, condition: EsCondition) => void;\n remove: (path: ConditionPath) => void;\n mapParam: (path: ConditionPath, operand: ParamOperand, name: string) => void;\n unmapParam: (path: ConditionPath, name: string) => void;\n};\n\nexport function EsQueryConditionRow({\n condition,\n path,\n context,\n actions,\n}: {\n condition: EsCondition;\n path: ConditionPath;\n context: EsQueryContext;\n actions: EsQueryTreeActions;\n}) {\n const { catalog, qualifierNames, qualifierRestrictions, qualifiers } =\n context.vocabulary;\n const field = context.fields.find((entry) => entry.name === condition.field);\n const info = catalog.find((entry) => entry.op === condition.op);\n const warning = field ? fieldWarning(field) : undefined;\n const set = (patch: Patch<EsCondition>) =>\n actions.update(path, (current) => applyPatch(current, patch));\n const rowId = path.join(\"-\") || \"root\";\n const values = condition.field\n ? context.values?.({ path, field: condition.field })\n : undefined;\n\n const advanced = qualifiersForOperator({\n names: qualifierNames,\n ...(qualifierRestrictions ? { restrictions: qualifierRestrictions } : {}),\n op: condition.op,\n });\n\n return (\n <div className=\"rounded-md border bg-card px-2 py-2\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <span className=\"w-28 shrink-0\">\n <Select\n aria-label=\"Clause\"\n value={condition.occur || \"filter\"}\n options={occurOptions(context.vocabulary.occurs)}\n onChange={(event) => set({ occur: event.target.value as never })}\n />\n </span>\n {info?.needsField ? (\n <Combobox\n ariaLabel=\"Field\"\n className=\"min-w-56 flex-1\"\n value={condition.field ?? \"\"}\n onChange={(next) => set({ field: next })}\n options={fieldOptions(context.fields)}\n placeholder=\"Field…\"\n />\n ) : null}\n {info?.acceptsFields ? (\n <MultiSelect\n ariaLabel=\"Fields\"\n className=\"min-w-56 flex-1\"\n value={condition.fields ?? []}\n onChange={(next) => set({ fields: next })}\n options={context.fields.map((entry) => ({\n value: entry.name,\n label: entry.name,\n }))}\n placeholder=\"All fields\"\n />\n ) : null}\n <span className=\"w-48 shrink-0\">\n <Select\n aria-label=\"Operator\"\n value={condition.op}\n onChange={(event) => {\n const next = catalog.find(\n (entry) => entry.op === event.target.value,\n );\n if (!next) {\n throw new Error(\n `operator ${event.target.value} is missing from the catalog`,\n );\n }\n actions.update(path, (current) =>\n changeConditionOperator(current, next),\n );\n }}\n >\n {operatorGroups(catalog, field, condition.op).map((group) => {\n const options = group.operators.map((entry) => (\n <option key={entry.op} value={entry.op}>\n {entry.label}\n </option>\n ));\n return group.label ? (\n <optgroup key={group.label} label={group.label}>\n {options}\n </optgroup>\n ) : (\n options\n );\n })}\n </Select>\n </span>\n <ConditionOperand\n condition={condition}\n arity={info?.arity ?? \"single\"}\n rowId={rowId}\n params={context.params}\n dateMath={Boolean(\n field?.dataType === \"date\" || field?.types?.includes(\"date\"),\n )}\n {...(values ? { values } : {})}\n set={set}\n onBindParam={(operand, name) => actions.mapParam(path, operand, name)}\n onUnbindParam={(name) => actions.unmapParam(path, name)}\n />\n <IconButton\n icon={UiTrash}\n label=\"Remove condition\"\n onClick={() => actions.remove(path)}\n />\n </div>\n {warning ? (\n <p role=\"alert\" className=\"mt-1 text-xs text-amber-600 dark:text-amber-400\">\n {warning}\n </p>\n ) : null}\n {advanced.length ? (\n <details className=\"mt-1\">\n <summary className=\"cursor-pointer text-xs text-muted-foreground\">\n Advanced\n </summary>\n <div className=\"mt-2 flex flex-wrap items-end gap-2\">\n {advanced.map((name) => (\n <QualifierInput\n key={name}\n name={name}\n schema={qualifiers[name] ?? {}}\n value={(condition as Record<string, unknown>)[name]}\n onChange={(next) => set({ [name]: next } as Patch<EsCondition>)}\n />\n ))}\n <label className=\"flex items-center gap-1 text-xs text-muted-foreground\">\n <input\n type=\"checkbox\"\n checked={condition.optional === true}\n onChange={(event) => set({ optional: event.target.checked })}\n />\n Optional\n </label>\n </div>\n </details>\n ) : null}\n </div>\n );\n}\n\nfunction fieldOptions(fields: EsFieldMapping[]) {\n return fields.map((field) => ({\n value: field.name,\n label: field.name,\n title: (field.types ?? (field.dataType ? [field.dataType] : [])).join(\", \"),\n }));\n}\n\ntype OperatorGroup = {\n label?: string;\n operators: { op: string; label: string }[];\n};\n\n/**\n * operatorGroups splits the offered operators into the ones that suit the field\n * and the ones that fight its analysis, which render behind an Advanced\n * divider. The condition's own operator is always offered, even where the field\n * does not suit it, so changing the field never blanks the control.\n */\nfunction operatorGroups(\n catalog: EsBuilderVocabulary[\"catalog\"],\n field: EsFieldMapping | undefined,\n current: string,\n): OperatorGroup[] {\n const offered = operatorsForField(catalog, field);\n const groups: OperatorGroup[] = [];\n const plain = offered.filter((entry) => !entry.advanced);\n const advanced = offered.filter((entry) => entry.advanced);\n if (!offered.some((entry) => entry.op === current)) {\n const info = catalog.find((entry) => entry.op === current);\n advanced.unshift({ ...(info ?? { op: current, label: current, arity: \"single\", fieldTypes: [] }) });\n }\n if (plain.length) groups.push({ operators: plain });\n if (advanced.length) groups.push({ label: \"Advanced\", operators: advanced });\n return groups;\n}\n"],"names":["fieldWarning","applyPatch","qualifiersForOperator","jsxs","jsx","Select","occurOptions","Combobox","MultiSelect","changeConditionOperator","ConditionOperand","IconButton","UiTrash","QualifierInput","operatorsForField"],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { ConditionPath, EsCondition } from './esQueryBuilderModel';
2
+ import { ParamOperand } from './esParamMappingModel';
3
+ import { FieldValuesQuery } from './esFieldValues';
4
+ import { ParamDraft } from './profileWizardModel';
5
+ import { EsBuilderVocabulary, EsFieldMapping } from './esQueryOperators';
6
+ export type EsQueryContext = {
7
+ fields: EsFieldMapping[];
8
+ vocabulary: EsBuilderVocabulary;
9
+ /** Declared profile parameters an operand can bind to. */
10
+ params: ParamDraft[];
11
+ /**
12
+ * The values a row's field holds, scoped by the builder to the rest of the
13
+ * query. Absent where the host has no connection to ask.
14
+ */
15
+ values?: (request: {
16
+ path: ConditionPath;
17
+ field: string;
18
+ }) => FieldValuesQuery | undefined;
19
+ };
20
+ /**
21
+ * The edits a condition row or group asks for, addressed by path. The builder
22
+ * owns the tree and applies them; every node below it is stateless.
23
+ */
24
+ export type EsQueryTreeActions = {
25
+ update: (path: ConditionPath, update: (condition: EsCondition) => EsCondition) => void;
26
+ insert: (groupPath: ConditionPath, condition: EsCondition) => void;
27
+ remove: (path: ConditionPath) => void;
28
+ mapParam: (path: ConditionPath, operand: ParamOperand, name: string) => void;
29
+ unmapParam: (path: ConditionPath, name: string) => void;
30
+ };
31
+ export declare function EsQueryConditionRow({ condition, path, context, actions, }: {
32
+ condition: EsCondition;
33
+ path: ConditionPath;
34
+ context: EsQueryContext;
35
+ actions: EsQueryTreeActions;
36
+ }): import("react/jsx-runtime").JSX.Element;
37
+ //# sourceMappingURL=esQueryConditionRow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esQueryConditionRow.d.ts","sourceRoot":"","sources":["../../src/profiles/esQueryConditionRow.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAExE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAKL,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACpB,MAAM,oBAAoB,CAAC;AAG5B,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,UAAU,EAAE,mBAAmB,CAAC;IAChC,0DAA0D;IAC1D,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE;QACjB,IAAI,EAAE,aAAa,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;KACf,KAAK,gBAAgB,GAAG,SAAS,CAAC;CACpC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,CACN,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,KAAK,WAAW,KAC5C,IAAI,CAAC;IACV,MAAM,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,KAAK,IAAI,CAAC;IACnE,MAAM,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7E,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACzD,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,IAAI,EACJ,OAAO,EACP,OAAO,GACR,EAAE;IACD,SAAS,EAAE,WAAW,CAAC;IACvB,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,kBAAkB,CAAC;CAC7B,2CA2IA"}
@@ -0,0 +1,168 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { Combobox } from "../components/Combobox.js";
3
+ import { IconButton } from "../components/IconButton.js";
4
+ import { MultiSelect } from "../components/MultiSelect.js";
5
+ import { Select } from "../components/select.js";
6
+ import { applyPatch } from "./profileWizardModel.js";
7
+ import { ConditionOperand, QualifierInput } from "./esQueryOperandEditors.js";
8
+ import { fieldWarning, qualifiersForOperator, changeConditionOperator, operatorsForField } from "./esQueryOperators.js";
9
+ import { occurOptions } from "./esQueryOccur.js";
10
+ import { UiTrash } from "../icons/components/UiTrash.js";
11
+ function EsQueryConditionRow({
12
+ condition,
13
+ path,
14
+ context,
15
+ actions
16
+ }) {
17
+ var _a, _b;
18
+ const { catalog, qualifierNames, qualifierRestrictions, qualifiers } = context.vocabulary;
19
+ const field = context.fields.find((entry) => entry.name === condition.field);
20
+ const info = catalog.find((entry) => entry.op === condition.op);
21
+ const warning = field ? fieldWarning(field) : void 0;
22
+ const set = (patch) => actions.update(path, (current) => applyPatch(current, patch));
23
+ const rowId = path.join("-") || "root";
24
+ const values = condition.field ? (_a = context.values) == null ? void 0 : _a.call(context, { path, field: condition.field }) : void 0;
25
+ const advanced = qualifiersForOperator({
26
+ names: qualifierNames,
27
+ ...qualifierRestrictions ? { restrictions: qualifierRestrictions } : {},
28
+ op: condition.op
29
+ });
30
+ return /* @__PURE__ */ jsxs("div", { className: "rounded-md border bg-card px-2 py-2", children: [
31
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [
32
+ /* @__PURE__ */ jsx("span", { className: "w-28 shrink-0", children: /* @__PURE__ */ jsx(
33
+ Select,
34
+ {
35
+ "aria-label": "Clause",
36
+ value: condition.occur || "filter",
37
+ options: occurOptions(context.vocabulary.occurs),
38
+ onChange: (event) => set({ occur: event.target.value })
39
+ }
40
+ ) }),
41
+ (info == null ? void 0 : info.needsField) ? /* @__PURE__ */ jsx(
42
+ Combobox,
43
+ {
44
+ ariaLabel: "Field",
45
+ className: "min-w-56 flex-1",
46
+ value: condition.field ?? "",
47
+ onChange: (next) => set({ field: next }),
48
+ options: fieldOptions(context.fields),
49
+ placeholder: "Field…"
50
+ }
51
+ ) : null,
52
+ (info == null ? void 0 : info.acceptsFields) ? /* @__PURE__ */ jsx(
53
+ MultiSelect,
54
+ {
55
+ ariaLabel: "Fields",
56
+ className: "min-w-56 flex-1",
57
+ value: condition.fields ?? [],
58
+ onChange: (next) => set({ fields: next }),
59
+ options: context.fields.map((entry) => ({
60
+ value: entry.name,
61
+ label: entry.name
62
+ })),
63
+ placeholder: "All fields"
64
+ }
65
+ ) : null,
66
+ /* @__PURE__ */ jsx("span", { className: "w-48 shrink-0", children: /* @__PURE__ */ jsx(
67
+ Select,
68
+ {
69
+ "aria-label": "Operator",
70
+ value: condition.op,
71
+ onChange: (event) => {
72
+ const next = catalog.find(
73
+ (entry) => entry.op === event.target.value
74
+ );
75
+ if (!next) {
76
+ throw new Error(
77
+ `operator ${event.target.value} is missing from the catalog`
78
+ );
79
+ }
80
+ actions.update(
81
+ path,
82
+ (current) => changeConditionOperator(current, next)
83
+ );
84
+ },
85
+ children: operatorGroups(catalog, field, condition.op).map((group) => {
86
+ const options = group.operators.map((entry) => /* @__PURE__ */ jsx("option", { value: entry.op, children: entry.label }, entry.op));
87
+ return group.label ? /* @__PURE__ */ jsx("optgroup", { label: group.label, children: options }, group.label) : options;
88
+ })
89
+ }
90
+ ) }),
91
+ /* @__PURE__ */ jsx(
92
+ ConditionOperand,
93
+ {
94
+ condition,
95
+ arity: (info == null ? void 0 : info.arity) ?? "single",
96
+ rowId,
97
+ params: context.params,
98
+ dateMath: Boolean(
99
+ (field == null ? void 0 : field.dataType) === "date" || ((_b = field == null ? void 0 : field.types) == null ? void 0 : _b.includes("date"))
100
+ ),
101
+ ...values ? { values } : {},
102
+ set,
103
+ onBindParam: (operand, name) => actions.mapParam(path, operand, name),
104
+ onUnbindParam: (name) => actions.unmapParam(path, name)
105
+ }
106
+ ),
107
+ /* @__PURE__ */ jsx(
108
+ IconButton,
109
+ {
110
+ icon: UiTrash,
111
+ label: "Remove condition",
112
+ onClick: () => actions.remove(path)
113
+ }
114
+ )
115
+ ] }),
116
+ warning ? /* @__PURE__ */ jsx("p", { role: "alert", className: "mt-1 text-xs text-amber-600 dark:text-amber-400", children: warning }) : null,
117
+ advanced.length ? /* @__PURE__ */ jsxs("details", { className: "mt-1", children: [
118
+ /* @__PURE__ */ jsx("summary", { className: "cursor-pointer text-xs text-muted-foreground", children: "Advanced" }),
119
+ /* @__PURE__ */ jsxs("div", { className: "mt-2 flex flex-wrap items-end gap-2", children: [
120
+ advanced.map((name) => /* @__PURE__ */ jsx(
121
+ QualifierInput,
122
+ {
123
+ name,
124
+ schema: qualifiers[name] ?? {},
125
+ value: condition[name],
126
+ onChange: (next) => set({ [name]: next })
127
+ },
128
+ name
129
+ )),
130
+ /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-1 text-xs text-muted-foreground", children: [
131
+ /* @__PURE__ */ jsx(
132
+ "input",
133
+ {
134
+ type: "checkbox",
135
+ checked: condition.optional === true,
136
+ onChange: (event) => set({ optional: event.target.checked })
137
+ }
138
+ ),
139
+ "Optional"
140
+ ] })
141
+ ] })
142
+ ] }) : null
143
+ ] });
144
+ }
145
+ function fieldOptions(fields) {
146
+ return fields.map((field) => ({
147
+ value: field.name,
148
+ label: field.name,
149
+ title: (field.types ?? (field.dataType ? [field.dataType] : [])).join(", ")
150
+ }));
151
+ }
152
+ function operatorGroups(catalog, field, current) {
153
+ const offered = operatorsForField(catalog, field);
154
+ const groups = [];
155
+ const plain = offered.filter((entry) => !entry.advanced);
156
+ const advanced = offered.filter((entry) => entry.advanced);
157
+ if (!offered.some((entry) => entry.op === current)) {
158
+ const info = catalog.find((entry) => entry.op === current);
159
+ advanced.unshift({ ...info ?? { op: current, label: current, arity: "single", fieldTypes: [] } });
160
+ }
161
+ if (plain.length) groups.push({ operators: plain });
162
+ if (advanced.length) groups.push({ label: "Advanced", operators: advanced });
163
+ return groups;
164
+ }
165
+ export {
166
+ EsQueryConditionRow
167
+ };
168
+ //# sourceMappingURL=esQueryConditionRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esQueryConditionRow.js","sources":["../../src/profiles/esQueryConditionRow.tsx"],"sourcesContent":["/**\n * One leaf condition: which field, which operator, and the operand that\n * operator takes. Which operators a field may use and which advanced qualifiers\n * an operator emits both come from the schema vocabulary, so this file owns the\n * editing surface and never the vocabulary itself.\n */\n\nimport { Combobox } from \"../components/Combobox\";\nimport { IconButton } from \"../components/IconButton\";\nimport { MultiSelect } from \"../components/MultiSelect\";\nimport { Select } from \"../components/select\";\nimport { UiTrash } from \"../icons\";\nimport type { ConditionPath, EsCondition } from \"./esQueryBuilderModel\";\nimport { applyPatch, type Patch } from \"./profileWizardModel\";\nimport type { ParamOperand } from \"./esParamMappingModel\";\nimport type { FieldValuesQuery } from \"./esFieldValues\";\nimport { ConditionOperand, QualifierInput } from \"./esQueryOperandEditors\";\nimport type { ParamDraft } from \"./profileWizardModel\";\nimport {\n changeConditionOperator,\n fieldWarning,\n operatorsForField,\n qualifiersForOperator,\n type EsBuilderVocabulary,\n type EsFieldMapping,\n} from \"./esQueryOperators\";\nimport { occurOptions } from \"./esQueryOccur\";\n\nexport type EsQueryContext = {\n fields: EsFieldMapping[];\n vocabulary: EsBuilderVocabulary;\n /** Declared profile parameters an operand can bind to. */\n params: ParamDraft[];\n /**\n * The values a row's field holds, scoped by the builder to the rest of the\n * query. Absent where the host has no connection to ask.\n */\n values?: (request: {\n path: ConditionPath;\n field: string;\n }) => FieldValuesQuery | undefined;\n};\n\n/**\n * The edits a condition row or group asks for, addressed by path. The builder\n * owns the tree and applies them; every node below it is stateless.\n */\nexport type EsQueryTreeActions = {\n update: (\n path: ConditionPath,\n update: (condition: EsCondition) => EsCondition,\n ) => void;\n insert: (groupPath: ConditionPath, condition: EsCondition) => void;\n remove: (path: ConditionPath) => void;\n mapParam: (path: ConditionPath, operand: ParamOperand, name: string) => void;\n unmapParam: (path: ConditionPath, name: string) => void;\n};\n\nexport function EsQueryConditionRow({\n condition,\n path,\n context,\n actions,\n}: {\n condition: EsCondition;\n path: ConditionPath;\n context: EsQueryContext;\n actions: EsQueryTreeActions;\n}) {\n const { catalog, qualifierNames, qualifierRestrictions, qualifiers } =\n context.vocabulary;\n const field = context.fields.find((entry) => entry.name === condition.field);\n const info = catalog.find((entry) => entry.op === condition.op);\n const warning = field ? fieldWarning(field) : undefined;\n const set = (patch: Patch<EsCondition>) =>\n actions.update(path, (current) => applyPatch(current, patch));\n const rowId = path.join(\"-\") || \"root\";\n const values = condition.field\n ? context.values?.({ path, field: condition.field })\n : undefined;\n\n const advanced = qualifiersForOperator({\n names: qualifierNames,\n ...(qualifierRestrictions ? { restrictions: qualifierRestrictions } : {}),\n op: condition.op,\n });\n\n return (\n <div className=\"rounded-md border bg-card px-2 py-2\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <span className=\"w-28 shrink-0\">\n <Select\n aria-label=\"Clause\"\n value={condition.occur || \"filter\"}\n options={occurOptions(context.vocabulary.occurs)}\n onChange={(event) => set({ occur: event.target.value as never })}\n />\n </span>\n {info?.needsField ? (\n <Combobox\n ariaLabel=\"Field\"\n className=\"min-w-56 flex-1\"\n value={condition.field ?? \"\"}\n onChange={(next) => set({ field: next })}\n options={fieldOptions(context.fields)}\n placeholder=\"Field…\"\n />\n ) : null}\n {info?.acceptsFields ? (\n <MultiSelect\n ariaLabel=\"Fields\"\n className=\"min-w-56 flex-1\"\n value={condition.fields ?? []}\n onChange={(next) => set({ fields: next })}\n options={context.fields.map((entry) => ({\n value: entry.name,\n label: entry.name,\n }))}\n placeholder=\"All fields\"\n />\n ) : null}\n <span className=\"w-48 shrink-0\">\n <Select\n aria-label=\"Operator\"\n value={condition.op}\n onChange={(event) => {\n const next = catalog.find(\n (entry) => entry.op === event.target.value,\n );\n if (!next) {\n throw new Error(\n `operator ${event.target.value} is missing from the catalog`,\n );\n }\n actions.update(path, (current) =>\n changeConditionOperator(current, next),\n );\n }}\n >\n {operatorGroups(catalog, field, condition.op).map((group) => {\n const options = group.operators.map((entry) => (\n <option key={entry.op} value={entry.op}>\n {entry.label}\n </option>\n ));\n return group.label ? (\n <optgroup key={group.label} label={group.label}>\n {options}\n </optgroup>\n ) : (\n options\n );\n })}\n </Select>\n </span>\n <ConditionOperand\n condition={condition}\n arity={info?.arity ?? \"single\"}\n rowId={rowId}\n params={context.params}\n dateMath={Boolean(\n field?.dataType === \"date\" || field?.types?.includes(\"date\"),\n )}\n {...(values ? { values } : {})}\n set={set}\n onBindParam={(operand, name) => actions.mapParam(path, operand, name)}\n onUnbindParam={(name) => actions.unmapParam(path, name)}\n />\n <IconButton\n icon={UiTrash}\n label=\"Remove condition\"\n onClick={() => actions.remove(path)}\n />\n </div>\n {warning ? (\n <p role=\"alert\" className=\"mt-1 text-xs text-amber-600 dark:text-amber-400\">\n {warning}\n </p>\n ) : null}\n {advanced.length ? (\n <details className=\"mt-1\">\n <summary className=\"cursor-pointer text-xs text-muted-foreground\">\n Advanced\n </summary>\n <div className=\"mt-2 flex flex-wrap items-end gap-2\">\n {advanced.map((name) => (\n <QualifierInput\n key={name}\n name={name}\n schema={qualifiers[name] ?? {}}\n value={(condition as Record<string, unknown>)[name]}\n onChange={(next) => set({ [name]: next } as Patch<EsCondition>)}\n />\n ))}\n <label className=\"flex items-center gap-1 text-xs text-muted-foreground\">\n <input\n type=\"checkbox\"\n checked={condition.optional === true}\n onChange={(event) => set({ optional: event.target.checked })}\n />\n Optional\n </label>\n </div>\n </details>\n ) : null}\n </div>\n );\n}\n\nfunction fieldOptions(fields: EsFieldMapping[]) {\n return fields.map((field) => ({\n value: field.name,\n label: field.name,\n title: (field.types ?? (field.dataType ? [field.dataType] : [])).join(\", \"),\n }));\n}\n\ntype OperatorGroup = {\n label?: string;\n operators: { op: string; label: string }[];\n};\n\n/**\n * operatorGroups splits the offered operators into the ones that suit the field\n * and the ones that fight its analysis, which render behind an Advanced\n * divider. The condition's own operator is always offered, even where the field\n * does not suit it, so changing the field never blanks the control.\n */\nfunction operatorGroups(\n catalog: EsBuilderVocabulary[\"catalog\"],\n field: EsFieldMapping | undefined,\n current: string,\n): OperatorGroup[] {\n const offered = operatorsForField(catalog, field);\n const groups: OperatorGroup[] = [];\n const plain = offered.filter((entry) => !entry.advanced);\n const advanced = offered.filter((entry) => entry.advanced);\n if (!offered.some((entry) => entry.op === current)) {\n const info = catalog.find((entry) => entry.op === current);\n advanced.unshift({ ...(info ?? { op: current, label: current, arity: \"single\", fieldTypes: [] }) });\n }\n if (plain.length) groups.push({ operators: plain });\n if (advanced.length) groups.push({ label: \"Advanced\", operators: advanced });\n return groups;\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ function isGroupOperator(catalog, op) {
4
+ var _a;
5
+ return ((_a = catalog.find((entry) => entry.op === op)) == null ? void 0 : _a.group) === true;
6
+ }
7
+ function groupOperatorOptions(catalog) {
8
+ return catalog.filter((entry) => entry.group).map((entry) => ({ value: entry.op, label: entry.label }));
9
+ }
10
+ exports.groupOperatorOptions = groupOperatorOptions;
11
+ exports.isGroupOperator = isGroupOperator;
12
+ //# sourceMappingURL=esQueryGroupModel.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esQueryGroupModel.cjs","sources":["../../src/profiles/esQueryGroupModel.ts"],"sourcesContent":["/**\n * A bool or nested group of conditions. A group renders itself for a child that\n * is also a group, so the tree nests to whatever depth the author builds; the\n * compiler places no bound on it either.\n */\n\nimport {\n type EsBuilderVocabulary\n } from \"./esQueryOperators\";\n\n/** Whether an operator holds other conditions rather than matching a value. */\nexport function isGroupOperator(\n catalog: EsBuilderVocabulary[\"catalog\"],\n op: string,\n): boolean {\n return catalog.find((entry) => entry.op === op)?.group === true;\n}\n\n/** The group kinds the catalog offers — bool and nested, today. */\nexport function groupOperatorOptions(catalog: EsBuilderVocabulary[\"catalog\"]) {\n return catalog\n .filter((entry) => entry.group)\n .map((entry) => ({ value: entry.op, label: entry.label }));\n}\n"],"names":[],"mappings":";;AAWO,SAAS,gBACd,SACA,IACS;;AACT,WAAO,aAAQ,KAAK,CAAC,UAAU,MAAM,OAAO,EAAE,MAAvC,mBAA0C,WAAU;AAC7D;AAGO,SAAS,qBAAqB,SAAyC;AAC5E,SAAO,QACJ,OAAO,CAAC,UAAU,MAAM,KAAK,EAC7B,IAAI,CAAC,WAAW,EAAE,OAAO,MAAM,IAAI,OAAO,MAAM,QAAQ;AAC7D;;;"}
@@ -0,0 +1,9 @@
1
+ import { EsBuilderVocabulary } from './esQueryOperators';
2
+ /** Whether an operator holds other conditions rather than matching a value. */
3
+ export declare function isGroupOperator(catalog: EsBuilderVocabulary["catalog"], op: string): boolean;
4
+ /** The group kinds the catalog offers — bool and nested, today. */
5
+ export declare function groupOperatorOptions(catalog: EsBuilderVocabulary["catalog"]): {
6
+ value: string;
7
+ label: string;
8
+ }[];
9
+ //# sourceMappingURL=esQueryGroupModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esQueryGroupModel.d.ts","sourceRoot":"","sources":["../../src/profiles/esQueryGroupModel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,KAAK,mBAAmB,EACvB,MAAM,oBAAoB,CAAC;AAE9B,+EAA+E;AAC/E,wBAAgB,eAAe,CAC7B,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC,EACvC,EAAE,EAAE,MAAM,GACT,OAAO,CAET;AAED,mEAAmE;AACnE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,CAAC,SAAS,CAAC;;;IAI3E"}