@flanksource/clicky-ui 0.3.18 → 0.3.20

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 (609) hide show
  1. package/dist/components/ComboboxMenu.cjs +5 -1
  2. package/dist/components/ComboboxMenu.cjs.map +1 -1
  3. package/dist/components/ComboboxMenu.d.ts.map +1 -1
  4. package/dist/components/ComboboxMenu.js +5 -1
  5. package/dist/components/ComboboxMenu.js.map +1 -1
  6. package/dist/components/EndpointSelector.model.cjs +96 -0
  7. package/dist/components/EndpointSelector.model.cjs.map +1 -0
  8. package/dist/components/EndpointSelector.model.d.ts +2 -0
  9. package/dist/components/EndpointSelector.model.d.ts.map +1 -1
  10. package/dist/components/EndpointSelector.model.js +96 -0
  11. package/dist/components/EndpointSelector.model.js.map +1 -0
  12. package/dist/components/ErrorWrapper.cjs +1 -1
  13. package/dist/components/ErrorWrapper.cjs.map +1 -1
  14. package/dist/components/ErrorWrapper.js +1 -1
  15. package/dist/components/ErrorWrapper.js.map +1 -1
  16. package/dist/components/FilterBar.cjs +52 -2
  17. package/dist/components/FilterBar.cjs.map +1 -1
  18. package/dist/components/FilterBar.d.ts +20 -2
  19. package/dist/components/FilterBar.d.ts.map +1 -1
  20. package/dist/components/FilterBar.js +52 -2
  21. package/dist/components/FilterBar.js.map +1 -1
  22. package/dist/components/JSONPathField.cjs +87 -66
  23. package/dist/components/JSONPathField.cjs.map +1 -1
  24. package/dist/components/JSONPathField.d.ts +26 -9
  25. package/dist/components/JSONPathField.d.ts.map +1 -1
  26. package/dist/components/JSONPathField.js +88 -67
  27. package/dist/components/JSONPathField.js.map +1 -1
  28. package/dist/components/JSONPathPlayground.cjs +225 -0
  29. package/dist/components/JSONPathPlayground.cjs.map +1 -0
  30. package/dist/components/JSONPathPlayground.d.ts +59 -0
  31. package/dist/components/JSONPathPlayground.d.ts.map +1 -0
  32. package/dist/components/JSONPathPlayground.js +225 -0
  33. package/dist/components/JSONPathPlayground.js.map +1 -0
  34. package/dist/components/OnePasswordSelector.cjs +178 -0
  35. package/dist/components/OnePasswordSelector.cjs.map +1 -0
  36. package/dist/components/OnePasswordSelector.d.ts +8 -0
  37. package/dist/components/OnePasswordSelector.d.ts.map +1 -0
  38. package/dist/components/OnePasswordSelector.js +178 -0
  39. package/dist/components/OnePasswordSelector.js.map +1 -0
  40. package/dist/components/OnePasswordSelector.model.cjs +31 -0
  41. package/dist/components/OnePasswordSelector.model.cjs.map +1 -0
  42. package/dist/components/OnePasswordSelector.model.d.ts +27 -0
  43. package/dist/components/OnePasswordSelector.model.d.ts.map +1 -0
  44. package/dist/components/OnePasswordSelector.model.js +31 -0
  45. package/dist/components/OnePasswordSelector.model.js.map +1 -0
  46. package/dist/components/SecretFormField.cjs +142 -0
  47. package/dist/components/SecretFormField.cjs.map +1 -0
  48. package/dist/components/SecretFormField.d.ts +9 -0
  49. package/dist/components/SecretFormField.d.ts.map +1 -0
  50. package/dist/components/SecretFormField.js +142 -0
  51. package/dist/components/SecretFormField.js.map +1 -0
  52. package/dist/components/SecretKeySelector.cjs +20 -14
  53. package/dist/components/SecretKeySelector.cjs.map +1 -1
  54. package/dist/components/SecretKeySelector.d.ts +4 -1
  55. package/dist/components/SecretKeySelector.d.ts.map +1 -1
  56. package/dist/components/SecretKeySelector.js +20 -14
  57. package/dist/components/SecretKeySelector.js.map +1 -1
  58. package/dist/components/TreePickerField.cjs +55 -29
  59. package/dist/components/TreePickerField.cjs.map +1 -1
  60. package/dist/components/TreePickerField.d.ts +10 -1
  61. package/dist/components/TreePickerField.d.ts.map +1 -1
  62. package/dist/components/TreePickerField.js +56 -30
  63. package/dist/components/TreePickerField.js.map +1 -1
  64. package/dist/components/UnitStepControls.cjs +55 -0
  65. package/dist/components/UnitStepControls.cjs.map +1 -0
  66. package/dist/components/UnitStepControls.d.ts +10 -0
  67. package/dist/components/UnitStepControls.d.ts.map +1 -0
  68. package/dist/components/UnitStepControls.js +55 -0
  69. package/dist/components/UnitStepControls.js.map +1 -0
  70. package/dist/components/combobox-types.d.ts +9 -0
  71. package/dist/components/combobox-types.d.ts.map +1 -1
  72. package/dist/components/filter-bar-utils.cjs +7 -0
  73. package/dist/components/filter-bar-utils.cjs.map +1 -1
  74. package/dist/components/filter-bar-utils.d.ts.map +1 -1
  75. package/dist/components/filter-bar-utils.js +7 -0
  76. package/dist/components/filter-bar-utils.js.map +1 -1
  77. package/dist/components/jotai-bindings-core.cjs.map +1 -1
  78. package/dist/components/jotai-bindings-core.d.ts +4 -1
  79. package/dist/components/jotai-bindings-core.d.ts.map +1 -1
  80. package/dist/components/jotai-bindings-core.js.map +1 -1
  81. package/dist/components/json-schema-form-accordion-array.cjs +5 -73
  82. package/dist/components/json-schema-form-accordion-array.cjs.map +1 -1
  83. package/dist/components/json-schema-form-accordion-array.d.ts.map +1 -1
  84. package/dist/components/json-schema-form-accordion-array.js +3 -71
  85. package/dist/components/json-schema-form-accordion-array.js.map +1 -1
  86. package/dist/components/json-schema-form-array.cjs +6 -1
  87. package/dist/components/json-schema-form-array.cjs.map +1 -1
  88. package/dist/components/json-schema-form-array.d.ts.map +1 -1
  89. package/dist/components/json-schema-form-array.js +6 -1
  90. package/dist/components/json-schema-form-array.js.map +1 -1
  91. package/dist/components/json-schema-form-cards-array.cjs +96 -0
  92. package/dist/components/json-schema-form-cards-array.cjs.map +1 -0
  93. package/dist/components/json-schema-form-cards-array.d.ts +7 -0
  94. package/dist/components/json-schema-form-cards-array.d.ts.map +1 -0
  95. package/dist/components/json-schema-form-cards-array.js +96 -0
  96. package/dist/components/json-schema-form-cards-array.js.map +1 -0
  97. package/dist/components/json-schema-form-item-row.cjs +81 -0
  98. package/dist/components/json-schema-form-item-row.cjs.map +1 -0
  99. package/dist/components/json-schema-form-item-row.d.ts +19 -0
  100. package/dist/components/json-schema-form-item-row.d.ts.map +1 -0
  101. package/dist/components/json-schema-form-item-row.js +81 -0
  102. package/dist/components/json-schema-form-item-row.js.map +1 -0
  103. package/dist/components/json-schema-form-render.cjs +4 -3
  104. package/dist/components/json-schema-form-render.cjs.map +1 -1
  105. package/dist/components/json-schema-form-render.d.ts.map +1 -1
  106. package/dist/components/json-schema-form-render.js +4 -3
  107. package/dist/components/json-schema-form-render.js.map +1 -1
  108. package/dist/components/json-schema-form-resolve.cjs +1 -1
  109. package/dist/components/json-schema-form-resolve.cjs.map +1 -1
  110. package/dist/components/json-schema-form-resolve.js +1 -1
  111. package/dist/components/json-schema-form-resolve.js.map +1 -1
  112. package/dist/components/json-schema-form-tone.cjs +12 -0
  113. package/dist/components/json-schema-form-tone.cjs.map +1 -1
  114. package/dist/components/json-schema-form-tone.js +12 -0
  115. package/dist/components/json-schema-form-tone.js.map +1 -1
  116. package/dist/components/json-schema-form-types.d.ts +10 -1
  117. package/dist/components/json-schema-form-types.d.ts.map +1 -1
  118. package/dist/components/jsonPathTree.cjs +189 -0
  119. package/dist/components/jsonPathTree.cjs.map +1 -0
  120. package/dist/components/jsonPathTree.d.ts +92 -0
  121. package/dist/components/jsonPathTree.d.ts.map +1 -0
  122. package/dist/components/jsonPathTree.js +189 -0
  123. package/dist/components/jsonPathTree.js.map +1 -0
  124. package/dist/components/secret-form-extension.cjs +30 -0
  125. package/dist/components/secret-form-extension.cjs.map +1 -0
  126. package/dist/components/secret-form-extension.d.ts +23 -0
  127. package/dist/components/secret-form-extension.d.ts.map +1 -0
  128. package/dist/components/secret-form-extension.js +30 -0
  129. package/dist/components/secret-form-extension.js.map +1 -0
  130. package/dist/components/unit-form-extension.cjs +126 -0
  131. package/dist/components/unit-form-extension.cjs.map +1 -0
  132. package/dist/components/unit-form-extension.d.ts +8 -0
  133. package/dist/components/unit-form-extension.d.ts.map +1 -0
  134. package/dist/components/unit-form-extension.js +126 -0
  135. package/dist/components/unit-form-extension.js.map +1 -0
  136. package/dist/components.cjs +20 -0
  137. package/dist/components.cjs.map +1 -1
  138. package/dist/components.d.ts +7 -0
  139. package/dist/components.d.ts.map +1 -1
  140. package/dist/components.js +20 -0
  141. package/dist/components.js.map +1 -1
  142. package/dist/data/TaskExecDetails.cjs +40 -0
  143. package/dist/data/TaskExecDetails.cjs.map +1 -0
  144. package/dist/data/TaskExecDetails.d.ts +5 -0
  145. package/dist/data/TaskExecDetails.d.ts.map +1 -0
  146. package/dist/data/TaskExecDetails.js +40 -0
  147. package/dist/data/TaskExecDetails.js.map +1 -0
  148. package/dist/data/TaskProgress.cjs +9 -3
  149. package/dist/data/TaskProgress.cjs.map +1 -1
  150. package/dist/data/TaskProgress.d.ts.map +1 -1
  151. package/dist/data/TaskProgress.js +9 -3
  152. package/dist/data/TaskProgress.js.map +1 -1
  153. package/dist/data/TaskSnapshot.cjs.map +1 -1
  154. package/dist/data/TaskSnapshot.d.ts +12 -1
  155. package/dist/data/TaskSnapshot.d.ts.map +1 -1
  156. package/dist/data/TaskSnapshot.js.map +1 -1
  157. package/dist/data/TreeNode.cjs +3 -0
  158. package/dist/data/TreeNode.cjs.map +1 -1
  159. package/dist/data/TreeNode.d.ts.map +1 -1
  160. package/dist/data/TreeNode.js +3 -0
  161. package/dist/data/TreeNode.js.map +1 -1
  162. package/dist/data/data-table-filter-values.cjs +20 -0
  163. package/dist/data/data-table-filter-values.cjs.map +1 -1
  164. package/dist/data/data-table-filter-values.d.ts +16 -0
  165. package/dist/data/data-table-filter-values.d.ts.map +1 -1
  166. package/dist/data/data-table-filter-values.js +20 -0
  167. package/dist/data/data-table-filter-values.js.map +1 -1
  168. package/dist/data/data-table-server-filters.cjs +23 -29
  169. package/dist/data/data-table-server-filters.cjs.map +1 -1
  170. package/dist/data/data-table-server-filters.d.ts.map +1 -1
  171. package/dist/data/data-table-server-filters.js +21 -27
  172. package/dist/data/data-table-server-filters.js.map +1 -1
  173. package/dist/data/diagnostics/ErrorDetails.cjs +61 -8
  174. package/dist/data/diagnostics/ErrorDetails.cjs.map +1 -1
  175. package/dist/data/diagnostics/ErrorDetails.d.ts.map +1 -1
  176. package/dist/data/diagnostics/ErrorDetails.js +61 -8
  177. package/dist/data/diagnostics/ErrorDetails.js.map +1 -1
  178. package/dist/data/diagnostics/error-diagnostics.cjs +10 -4
  179. package/dist/data/diagnostics/error-diagnostics.cjs.map +1 -1
  180. package/dist/data/diagnostics/error-diagnostics.d.ts.map +1 -1
  181. package/dist/data/diagnostics/error-diagnostics.js +10 -4
  182. package/dist/data/diagnostics/error-diagnostics.js.map +1 -1
  183. package/dist/data/query-browser/QueryBrowser.cjs +139 -161
  184. package/dist/data/query-browser/QueryBrowser.cjs.map +1 -1
  185. package/dist/data/query-browser/QueryBrowser.d.ts +1 -71
  186. package/dist/data/query-browser/QueryBrowser.d.ts.map +1 -1
  187. package/dist/data/query-browser/QueryBrowser.editor.cjs +88 -0
  188. package/dist/data/query-browser/QueryBrowser.editor.cjs.map +1 -0
  189. package/dist/data/query-browser/QueryBrowser.editor.d.ts +12 -0
  190. package/dist/data/query-browser/QueryBrowser.editor.d.ts.map +1 -0
  191. package/dist/data/query-browser/QueryBrowser.editor.js +88 -0
  192. package/dist/data/query-browser/QueryBrowser.editor.js.map +1 -0
  193. package/dist/data/query-browser/QueryBrowser.js +140 -162
  194. package/dist/data/query-browser/QueryBrowser.js.map +1 -1
  195. package/dist/data/query-browser/QueryBrowser.types.cjs +12 -0
  196. package/dist/data/query-browser/QueryBrowser.types.cjs.map +1 -0
  197. package/dist/data/query-browser/QueryBrowser.types.d.ts +94 -0
  198. package/dist/data/query-browser/QueryBrowser.types.d.ts.map +1 -0
  199. package/dist/data/query-browser/QueryBrowser.types.js +12 -0
  200. package/dist/data/query-browser/QueryBrowser.types.js.map +1 -0
  201. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.cjs +56 -0
  202. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.cjs.map +1 -0
  203. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts +5 -0
  204. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.d.ts.map +1 -0
  205. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.js +56 -0
  206. package/dist/data/query-browser/QueryBrowserDiagnosticsPanel.js.map +1 -0
  207. package/dist/data/query-browser/QueryBrowserResults.cjs +80 -0
  208. package/dist/data/query-browser/QueryBrowserResults.cjs.map +1 -0
  209. package/dist/data/query-browser/QueryBrowserResults.d.ts +16 -0
  210. package/dist/data/query-browser/QueryBrowserResults.d.ts.map +1 -0
  211. package/dist/data/query-browser/QueryBrowserResults.js +80 -0
  212. package/dist/data/query-browser/QueryBrowserResults.js.map +1 -0
  213. package/dist/data/query-browser/index.d.ts +2 -1
  214. package/dist/data/query-browser/index.d.ts.map +1 -1
  215. package/dist/data/task-exec-details.cjs +9 -0
  216. package/dist/data/task-exec-details.cjs.map +1 -0
  217. package/dist/data/task-exec-details.d.ts +3 -0
  218. package/dist/data/task-exec-details.d.ts.map +1 -0
  219. package/dist/data/task-exec-details.js +9 -0
  220. package/dist/data/task-exec-details.js.map +1 -0
  221. package/dist/data/version-info.cjs +3 -3
  222. package/dist/data/version-info.js +3 -3
  223. package/dist/data.cjs +2 -0
  224. package/dist/data.cjs.map +1 -1
  225. package/dist/data.d.ts +1 -1
  226. package/dist/data.d.ts.map +1 -1
  227. package/dist/data.js +2 -0
  228. package/dist/data.js.map +1 -1
  229. package/dist/index.cjs +22 -0
  230. package/dist/index.cjs.map +1 -1
  231. package/dist/index.js +22 -0
  232. package/dist/index.js.map +1 -1
  233. package/dist/lib/string.cjs +8 -0
  234. package/dist/lib/string.cjs.map +1 -1
  235. package/dist/lib/string.d.ts +1 -0
  236. package/dist/lib/string.d.ts.map +1 -1
  237. package/dist/lib/string.js +8 -0
  238. package/dist/lib/string.js.map +1 -1
  239. package/dist/profiles/catalogTree.cjs +133 -0
  240. package/dist/profiles/catalogTree.cjs.map +1 -0
  241. package/dist/profiles/catalogTree.d.ts +11 -0
  242. package/dist/profiles/catalogTree.d.ts.map +1 -0
  243. package/dist/profiles/catalogTree.js +133 -0
  244. package/dist/profiles/catalogTree.js.map +1 -0
  245. package/dist/profiles/connectionBrowserModel.cjs +185 -0
  246. package/dist/profiles/connectionBrowserModel.cjs.map +1 -0
  247. package/dist/profiles/connectionBrowserModel.d.ts +169 -0
  248. package/dist/profiles/connectionBrowserModel.d.ts.map +1 -0
  249. package/dist/profiles/connectionBrowserModel.js +185 -0
  250. package/dist/profiles/connectionBrowserModel.js.map +1 -0
  251. package/dist/profiles/connectionQueryWorkspace.cjs +185 -0
  252. package/dist/profiles/connectionQueryWorkspace.cjs.map +1 -0
  253. package/dist/profiles/connectionQueryWorkspace.d.ts +63 -0
  254. package/dist/profiles/connectionQueryWorkspace.d.ts.map +1 -0
  255. package/dist/profiles/connectionQueryWorkspace.js +185 -0
  256. package/dist/profiles/connectionQueryWorkspace.js.map +1 -0
  257. package/dist/profiles/connectionQueryWorkspaceModel.cjs +28 -0
  258. package/dist/profiles/connectionQueryWorkspaceModel.cjs.map +1 -0
  259. package/dist/profiles/connectionQueryWorkspaceModel.d.ts +38 -0
  260. package/dist/profiles/connectionQueryWorkspaceModel.d.ts.map +1 -0
  261. package/dist/profiles/connectionQueryWorkspaceModel.js +28 -0
  262. package/dist/profiles/connectionQueryWorkspaceModel.js.map +1 -0
  263. package/dist/profiles/esFieldValues.cjs +64 -0
  264. package/dist/profiles/esFieldValues.cjs.map +1 -0
  265. package/dist/profiles/esFieldValues.d.ts +48 -0
  266. package/dist/profiles/esFieldValues.d.ts.map +1 -0
  267. package/dist/profiles/esFieldValues.js +64 -0
  268. package/dist/profiles/esFieldValues.js.map +1 -0
  269. package/dist/profiles/esParamMappingModel.cjs +301 -0
  270. package/dist/profiles/esParamMappingModel.cjs.map +1 -0
  271. package/dist/profiles/esParamMappingModel.d.ts +37 -0
  272. package/dist/profiles/esParamMappingModel.d.ts.map +1 -0
  273. package/dist/profiles/esParamMappingModel.js +301 -0
  274. package/dist/profiles/esParamMappingModel.js.map +1 -0
  275. package/dist/profiles/esParamMappingPill.cjs +24 -0
  276. package/dist/profiles/esParamMappingPill.cjs.map +1 -0
  277. package/dist/profiles/esParamMappingPill.d.ts +13 -0
  278. package/dist/profiles/esParamMappingPill.d.ts.map +1 -0
  279. package/dist/profiles/esParamMappingPill.js +24 -0
  280. package/dist/profiles/esParamMappingPill.js.map +1 -0
  281. package/dist/profiles/esParamOperandExtension.cjs +75 -0
  282. package/dist/profiles/esParamOperandExtension.cjs.map +1 -0
  283. package/dist/profiles/esParamOperandExtension.d.ts +11 -0
  284. package/dist/profiles/esParamOperandExtension.d.ts.map +1 -0
  285. package/dist/profiles/esParamOperandExtension.js +75 -0
  286. package/dist/profiles/esParamOperandExtension.js.map +1 -0
  287. package/dist/profiles/esQueryBuilder.cjs +205 -0
  288. package/dist/profiles/esQueryBuilder.cjs.map +1 -0
  289. package/dist/profiles/esQueryBuilder.d.ts +35 -0
  290. package/dist/profiles/esQueryBuilder.d.ts.map +1 -0
  291. package/dist/profiles/esQueryBuilder.js +205 -0
  292. package/dist/profiles/esQueryBuilder.js.map +1 -0
  293. package/dist/profiles/esQueryBuilderExtension.cjs +23 -0
  294. package/dist/profiles/esQueryBuilderExtension.cjs.map +1 -0
  295. package/dist/profiles/esQueryBuilderExtension.d.ts +5 -0
  296. package/dist/profiles/esQueryBuilderExtension.d.ts.map +1 -0
  297. package/dist/profiles/esQueryBuilderExtension.js +23 -0
  298. package/dist/profiles/esQueryBuilderExtension.js.map +1 -0
  299. package/dist/profiles/esQueryBuilderForm.cjs +26 -0
  300. package/dist/profiles/esQueryBuilderForm.cjs.map +1 -0
  301. package/dist/profiles/esQueryBuilderForm.d.ts +18 -0
  302. package/dist/profiles/esQueryBuilderForm.d.ts.map +1 -0
  303. package/dist/profiles/esQueryBuilderForm.js +26 -0
  304. package/dist/profiles/esQueryBuilderForm.js.map +1 -0
  305. package/dist/profiles/esQueryBuilderModel.cjs +131 -0
  306. package/dist/profiles/esQueryBuilderModel.cjs.map +1 -0
  307. package/dist/profiles/esQueryBuilderModel.d.ts +108 -0
  308. package/dist/profiles/esQueryBuilderModel.d.ts.map +1 -0
  309. package/dist/profiles/esQueryBuilderModel.js +131 -0
  310. package/dist/profiles/esQueryBuilderModel.js.map +1 -0
  311. package/dist/profiles/esQueryClauseGroup.cjs +144 -0
  312. package/dist/profiles/esQueryClauseGroup.cjs.map +1 -0
  313. package/dist/profiles/esQueryClauseGroup.d.ts +10 -0
  314. package/dist/profiles/esQueryClauseGroup.d.ts.map +1 -0
  315. package/dist/profiles/esQueryClauseGroup.js +144 -0
  316. package/dist/profiles/esQueryClauseGroup.js.map +1 -0
  317. package/dist/profiles/esQueryCompile.cjs +47 -0
  318. package/dist/profiles/esQueryCompile.cjs.map +1 -0
  319. package/dist/profiles/esQueryCompile.d.ts +39 -0
  320. package/dist/profiles/esQueryCompile.d.ts.map +1 -0
  321. package/dist/profiles/esQueryCompile.js +47 -0
  322. package/dist/profiles/esQueryCompile.js.map +1 -0
  323. package/dist/profiles/esQueryConditionRow.cjs +168 -0
  324. package/dist/profiles/esQueryConditionRow.cjs.map +1 -0
  325. package/dist/profiles/esQueryConditionRow.d.ts +37 -0
  326. package/dist/profiles/esQueryConditionRow.d.ts.map +1 -0
  327. package/dist/profiles/esQueryConditionRow.js +168 -0
  328. package/dist/profiles/esQueryConditionRow.js.map +1 -0
  329. package/dist/profiles/esQueryGroupModel.cjs +12 -0
  330. package/dist/profiles/esQueryGroupModel.cjs.map +1 -0
  331. package/dist/profiles/esQueryGroupModel.d.ts +9 -0
  332. package/dist/profiles/esQueryGroupModel.d.ts.map +1 -0
  333. package/dist/profiles/esQueryGroupModel.js +12 -0
  334. package/dist/profiles/esQueryGroupModel.js.map +1 -0
  335. package/dist/profiles/esQueryOccur.cjs +16 -0
  336. package/dist/profiles/esQueryOccur.cjs.map +1 -0
  337. package/dist/profiles/esQueryOccur.d.ts +11 -0
  338. package/dist/profiles/esQueryOccur.d.ts.map +1 -0
  339. package/dist/profiles/esQueryOccur.js +16 -0
  340. package/dist/profiles/esQueryOccur.js.map +1 -0
  341. package/dist/profiles/esQueryOperandEditors.cjs +279 -0
  342. package/dist/profiles/esQueryOperandEditors.cjs.map +1 -0
  343. package/dist/profiles/esQueryOperandEditors.d.ts +24 -0
  344. package/dist/profiles/esQueryOperandEditors.d.ts.map +1 -0
  345. package/dist/profiles/esQueryOperandEditors.js +279 -0
  346. package/dist/profiles/esQueryOperandEditors.js.map +1 -0
  347. package/dist/profiles/esQueryOperandModel.cjs +28 -0
  348. package/dist/profiles/esQueryOperandModel.cjs.map +1 -0
  349. package/dist/profiles/esQueryOperandModel.d.ts +17 -0
  350. package/dist/profiles/esQueryOperandModel.d.ts.map +1 -0
  351. package/dist/profiles/esQueryOperandModel.js +28 -0
  352. package/dist/profiles/esQueryOperandModel.js.map +1 -0
  353. package/dist/profiles/esQueryOperators.cjs +165 -0
  354. package/dist/profiles/esQueryOperators.cjs.map +1 -0
  355. package/dist/profiles/esQueryOperators.d.ts +83 -0
  356. package/dist/profiles/esQueryOperators.d.ts.map +1 -0
  357. package/dist/profiles/esQueryOperators.js +165 -0
  358. package/dist/profiles/esQueryOperators.js.map +1 -0
  359. package/dist/profiles/esQueryOutputEditor.cjs +138 -0
  360. package/dist/profiles/esQueryOutputEditor.cjs.map +1 -0
  361. package/dist/profiles/esQueryOutputEditor.d.ts +7 -0
  362. package/dist/profiles/esQueryOutputEditor.d.ts.map +1 -0
  363. package/dist/profiles/esQueryOutputEditor.js +138 -0
  364. package/dist/profiles/esQueryOutputEditor.js.map +1 -0
  365. package/dist/profiles/esQueryOutputModel.cjs +16 -0
  366. package/dist/profiles/esQueryOutputModel.cjs.map +1 -0
  367. package/dist/profiles/esQueryOutputModel.d.ts +14 -0
  368. package/dist/profiles/esQueryOutputModel.d.ts.map +1 -0
  369. package/dist/profiles/esQueryOutputModel.js +16 -0
  370. package/dist/profiles/esQueryOutputModel.js.map +1 -0
  371. package/dist/profiles/esQueryPreview.cjs +30 -0
  372. package/dist/profiles/esQueryPreview.cjs.map +1 -0
  373. package/dist/profiles/esQueryPreview.d.ts +6 -0
  374. package/dist/profiles/esQueryPreview.d.ts.map +1 -0
  375. package/dist/profiles/esQueryPreview.js +30 -0
  376. package/dist/profiles/esQueryPreview.js.map +1 -0
  377. package/dist/profiles/esQuerySortEditor.cjs +143 -0
  378. package/dist/profiles/esQuerySortEditor.cjs.map +1 -0
  379. package/dist/profiles/esQuerySortEditor.d.ts +9 -0
  380. package/dist/profiles/esQuerySortEditor.d.ts.map +1 -0
  381. package/dist/profiles/esQuerySortEditor.js +143 -0
  382. package/dist/profiles/esQuerySortEditor.js.map +1 -0
  383. package/dist/profiles/esQuerySortModel.cjs +13 -0
  384. package/dist/profiles/esQuerySortModel.cjs.map +1 -0
  385. package/dist/profiles/esQuerySortModel.d.ts +4 -0
  386. package/dist/profiles/esQuerySortModel.d.ts.map +1 -0
  387. package/dist/profiles/esQuerySortModel.js +13 -0
  388. package/dist/profiles/esQuerySortModel.js.map +1 -0
  389. package/dist/profiles/esValueCombobox.cjs +86 -0
  390. package/dist/profiles/esValueCombobox.cjs.map +1 -0
  391. package/dist/profiles/esValueCombobox.d.ts +15 -0
  392. package/dist/profiles/esValueCombobox.d.ts.map +1 -0
  393. package/dist/profiles/esValueCombobox.js +86 -0
  394. package/dist/profiles/esValueCombobox.js.map +1 -0
  395. package/dist/profiles/jsonPathSample.cjs +75 -0
  396. package/dist/profiles/jsonPathSample.cjs.map +1 -0
  397. package/dist/profiles/jsonPathSample.d.ts +27 -0
  398. package/dist/profiles/jsonPathSample.d.ts.map +1 -0
  399. package/dist/profiles/jsonPathSample.js +75 -0
  400. package/dist/profiles/jsonPathSample.js.map +1 -0
  401. package/dist/profiles/jsonPathSampleRow.cjs +14 -0
  402. package/dist/profiles/jsonPathSampleRow.cjs.map +1 -0
  403. package/dist/profiles/jsonPathSampleRow.d.ts +6 -0
  404. package/dist/profiles/jsonPathSampleRow.d.ts.map +1 -0
  405. package/dist/profiles/jsonPathSampleRow.js +14 -0
  406. package/dist/profiles/jsonPathSampleRow.js.map +1 -0
  407. package/dist/profiles/profileApi.cjs +37 -0
  408. package/dist/profiles/profileApi.cjs.map +1 -0
  409. package/dist/profiles/profileApi.d.ts +32 -0
  410. package/dist/profiles/profileApi.d.ts.map +1 -0
  411. package/dist/profiles/profileApi.js +37 -0
  412. package/dist/profiles/profileApi.js.map +1 -0
  413. package/dist/profiles/profileBuilder.cjs +65 -0
  414. package/dist/profiles/profileBuilder.cjs.map +1 -0
  415. package/dist/profiles/profileBuilder.d.ts +11 -0
  416. package/dist/profiles/profileBuilder.d.ts.map +1 -0
  417. package/dist/profiles/profileBuilder.js +65 -0
  418. package/dist/profiles/profileBuilder.js.map +1 -0
  419. package/dist/profiles/profileBuilderExtension.cjs +25 -0
  420. package/dist/profiles/profileBuilderExtension.cjs.map +1 -0
  421. package/dist/profiles/profileBuilderExtension.d.ts +5 -0
  422. package/dist/profiles/profileBuilderExtension.d.ts.map +1 -0
  423. package/dist/profiles/profileBuilderExtension.js +25 -0
  424. package/dist/profiles/profileBuilderExtension.js.map +1 -0
  425. package/dist/profiles/profileBuilderWorkspace.cjs +368 -0
  426. package/dist/profiles/profileBuilderWorkspace.cjs.map +1 -0
  427. package/dist/profiles/profileBuilderWorkspace.d.ts +21 -0
  428. package/dist/profiles/profileBuilderWorkspace.d.ts.map +1 -0
  429. package/dist/profiles/profileBuilderWorkspace.js +368 -0
  430. package/dist/profiles/profileBuilderWorkspace.js.map +1 -0
  431. package/dist/profiles/profileColumnModel.cjs +23 -0
  432. package/dist/profiles/profileColumnModel.cjs.map +1 -0
  433. package/dist/profiles/profileColumnModel.d.ts +8 -0
  434. package/dist/profiles/profileColumnModel.d.ts.map +1 -0
  435. package/dist/profiles/profileColumnModel.js +23 -0
  436. package/dist/profiles/profileColumnModel.js.map +1 -0
  437. package/dist/profiles/profileColumnPicker.cjs +68 -0
  438. package/dist/profiles/profileColumnPicker.cjs.map +1 -0
  439. package/dist/profiles/profileColumnPicker.d.ts +11 -0
  440. package/dist/profiles/profileColumnPicker.d.ts.map +1 -0
  441. package/dist/profiles/profileColumnPicker.js +68 -0
  442. package/dist/profiles/profileColumnPicker.js.map +1 -0
  443. package/dist/profiles/profileEditor.cjs +386 -0
  444. package/dist/profiles/profileEditor.cjs.map +1 -0
  445. package/dist/profiles/profileEditor.d.ts +19 -0
  446. package/dist/profiles/profileEditor.d.ts.map +1 -0
  447. package/dist/profiles/profileEditor.js +386 -0
  448. package/dist/profiles/profileEditor.js.map +1 -0
  449. package/dist/profiles/profileEditorModel.cjs +181 -0
  450. package/dist/profiles/profileEditorModel.cjs.map +1 -0
  451. package/dist/profiles/profileEditorModel.d.ts +74 -0
  452. package/dist/profiles/profileEditorModel.d.ts.map +1 -0
  453. package/dist/profiles/profileEditorModel.js +181 -0
  454. package/dist/profiles/profileEditorModel.js.map +1 -0
  455. package/dist/profiles/profileEditorPreview.cjs +38 -0
  456. package/dist/profiles/profileEditorPreview.cjs.map +1 -0
  457. package/dist/profiles/profileEditorPreview.d.ts +12 -0
  458. package/dist/profiles/profileEditorPreview.d.ts.map +1 -0
  459. package/dist/profiles/profileEditorPreview.js +38 -0
  460. package/dist/profiles/profileEditorPreview.js.map +1 -0
  461. package/dist/profiles/profileEditorRail.cjs +46 -0
  462. package/dist/profiles/profileEditorRail.cjs.map +1 -0
  463. package/dist/profiles/profileEditorRail.d.ts +8 -0
  464. package/dist/profiles/profileEditorRail.d.ts.map +1 -0
  465. package/dist/profiles/profileEditorRail.js +46 -0
  466. package/dist/profiles/profileEditorRail.js.map +1 -0
  467. package/dist/profiles/profileEditorRaw.cjs +118 -0
  468. package/dist/profiles/profileEditorRaw.cjs.map +1 -0
  469. package/dist/profiles/profileEditorRaw.d.ts +7 -0
  470. package/dist/profiles/profileEditorRaw.d.ts.map +1 -0
  471. package/dist/profiles/profileEditorRaw.js +118 -0
  472. package/dist/profiles/profileEditorRaw.js.map +1 -0
  473. package/dist/profiles/profileEditorRoutes.cjs +7 -0
  474. package/dist/profiles/profileEditorRoutes.cjs.map +1 -0
  475. package/dist/profiles/profileEditorRoutes.d.ts +2 -0
  476. package/dist/profiles/profileEditorRoutes.d.ts.map +1 -0
  477. package/dist/profiles/profileEditorRoutes.js +7 -0
  478. package/dist/profiles/profileEditorRoutes.js.map +1 -0
  479. package/dist/profiles/profileEditorSections.cjs +213 -0
  480. package/dist/profiles/profileEditorSections.cjs.map +1 -0
  481. package/dist/profiles/profileEditorSections.d.ts +23 -0
  482. package/dist/profiles/profileEditorSections.d.ts.map +1 -0
  483. package/dist/profiles/profileEditorSections.js +213 -0
  484. package/dist/profiles/profileEditorSections.js.map +1 -0
  485. package/dist/profiles/profileFieldEditor.cjs +200 -0
  486. package/dist/profiles/profileFieldEditor.cjs.map +1 -0
  487. package/dist/profiles/profileFieldEditor.d.ts +34 -0
  488. package/dist/profiles/profileFieldEditor.d.ts.map +1 -0
  489. package/dist/profiles/profileFieldEditor.js +200 -0
  490. package/dist/profiles/profileFieldEditor.js.map +1 -0
  491. package/dist/profiles/profileFieldGrid.cjs +250 -0
  492. package/dist/profiles/profileFieldGrid.cjs.map +1 -0
  493. package/dist/profiles/profileFieldGrid.d.ts +20 -0
  494. package/dist/profiles/profileFieldGrid.d.ts.map +1 -0
  495. package/dist/profiles/profileFieldGrid.js +250 -0
  496. package/dist/profiles/profileFieldGrid.js.map +1 -0
  497. package/dist/profiles/profileFieldManager.cjs +103 -0
  498. package/dist/profiles/profileFieldManager.cjs.map +1 -0
  499. package/dist/profiles/profileFieldManager.d.ts +9 -0
  500. package/dist/profiles/profileFieldManager.d.ts.map +1 -0
  501. package/dist/profiles/profileFieldManager.js +103 -0
  502. package/dist/profiles/profileFieldManager.js.map +1 -0
  503. package/dist/profiles/profileFieldState.cjs +136 -0
  504. package/dist/profiles/profileFieldState.cjs.map +1 -0
  505. package/dist/profiles/profileFieldState.d.ts +41 -0
  506. package/dist/profiles/profileFieldState.d.ts.map +1 -0
  507. package/dist/profiles/profileFieldState.js +136 -0
  508. package/dist/profiles/profileFieldState.js.map +1 -0
  509. package/dist/profiles/profileFieldTypes.cjs +17 -0
  510. package/dist/profiles/profileFieldTypes.cjs.map +1 -0
  511. package/dist/profiles/profileFieldTypes.d.ts +8 -0
  512. package/dist/profiles/profileFieldTypes.d.ts.map +1 -0
  513. package/dist/profiles/profileFieldTypes.js +17 -0
  514. package/dist/profiles/profileFieldTypes.js.map +1 -0
  515. package/dist/profiles/profileParamModel.cjs +78 -0
  516. package/dist/profiles/profileParamModel.cjs.map +1 -0
  517. package/dist/profiles/profileParamModel.d.ts +3 -0
  518. package/dist/profiles/profileParamModel.d.ts.map +1 -0
  519. package/dist/profiles/profileParamModel.js +78 -0
  520. package/dist/profiles/profileParamModel.js.map +1 -0
  521. package/dist/profiles/profileSamplePayload.cjs +15 -0
  522. package/dist/profiles/profileSamplePayload.cjs.map +1 -0
  523. package/dist/profiles/profileSamplePayload.d.ts +13 -0
  524. package/dist/profiles/profileSamplePayload.d.ts.map +1 -0
  525. package/dist/profiles/profileSamplePayload.js +15 -0
  526. package/dist/profiles/profileSamplePayload.js.map +1 -0
  527. package/dist/profiles/profileWizard.cjs +257 -0
  528. package/dist/profiles/profileWizard.cjs.map +1 -0
  529. package/dist/profiles/profileWizard.d.ts +12 -0
  530. package/dist/profiles/profileWizard.d.ts.map +1 -0
  531. package/dist/profiles/profileWizard.js +257 -0
  532. package/dist/profiles/profileWizard.js.map +1 -0
  533. package/dist/profiles/profileWizardHelp.cjs +10 -0
  534. package/dist/profiles/profileWizardHelp.cjs.map +1 -0
  535. package/dist/profiles/profileWizardHelp.d.ts +13 -0
  536. package/dist/profiles/profileWizardHelp.d.ts.map +1 -0
  537. package/dist/profiles/profileWizardHelp.js +10 -0
  538. package/dist/profiles/profileWizardHelp.js.map +1 -0
  539. package/dist/profiles/profileWizardModel.cjs +198 -0
  540. package/dist/profiles/profileWizardModel.cjs.map +1 -0
  541. package/dist/profiles/profileWizardModel.d.ts +255 -0
  542. package/dist/profiles/profileWizardModel.d.ts.map +1 -0
  543. package/dist/profiles/profileWizardModel.js +198 -0
  544. package/dist/profiles/profileWizardModel.js.map +1 -0
  545. package/dist/profiles/profileWizardQueryStep.cjs +215 -0
  546. package/dist/profiles/profileWizardQueryStep.cjs.map +1 -0
  547. package/dist/profiles/profileWizardQueryStep.d.ts +18 -0
  548. package/dist/profiles/profileWizardQueryStep.d.ts.map +1 -0
  549. package/dist/profiles/profileWizardQueryStep.js +215 -0
  550. package/dist/profiles/profileWizardQueryStep.js.map +1 -0
  551. package/dist/profiles/profileWizardSteps.cjs +214 -0
  552. package/dist/profiles/profileWizardSteps.cjs.map +1 -0
  553. package/dist/profiles/profileWizardSteps.d.ts +35 -0
  554. package/dist/profiles/profileWizardSteps.d.ts.map +1 -0
  555. package/dist/profiles/profileWizardSteps.js +214 -0
  556. package/dist/profiles/profileWizardSteps.js.map +1 -0
  557. package/dist/profiles/profileYaml.cjs +19 -0
  558. package/dist/profiles/profileYaml.cjs.map +1 -0
  559. package/dist/profiles/profileYaml.d.ts +4 -0
  560. package/dist/profiles/profileYaml.d.ts.map +1 -0
  561. package/dist/profiles/profileYaml.js +19 -0
  562. package/dist/profiles/profileYaml.js.map +1 -0
  563. package/dist/profiles/prometheusResults.cjs +60 -0
  564. package/dist/profiles/prometheusResults.cjs.map +1 -0
  565. package/dist/profiles/prometheusResults.d.ts +7 -0
  566. package/dist/profiles/prometheusResults.d.ts.map +1 -0
  567. package/dist/profiles/prometheusResults.js +60 -0
  568. package/dist/profiles/prometheusResults.js.map +1 -0
  569. package/dist/profiles/queryRowLimits.cjs +82 -0
  570. package/dist/profiles/queryRowLimits.cjs.map +1 -0
  571. package/dist/profiles/queryRowLimits.d.ts +9 -0
  572. package/dist/profiles/queryRowLimits.d.ts.map +1 -0
  573. package/dist/profiles/queryRowLimits.js +82 -0
  574. package/dist/profiles/queryRowLimits.js.map +1 -0
  575. package/dist/profiles/queryRowLimitsModel.cjs +10 -0
  576. package/dist/profiles/queryRowLimitsModel.cjs.map +1 -0
  577. package/dist/profiles/queryRowLimitsModel.d.ts +9 -0
  578. package/dist/profiles/queryRowLimitsModel.d.ts.map +1 -0
  579. package/dist/profiles/queryRowLimitsModel.js +10 -0
  580. package/dist/profiles/queryRowLimitsModel.js.map +1 -0
  581. package/dist/profiles/queryTargetPicker.cjs +42 -0
  582. package/dist/profiles/queryTargetPicker.cjs.map +1 -0
  583. package/dist/profiles/queryTargetPicker.d.ts +8 -0
  584. package/dist/profiles/queryTargetPicker.d.ts.map +1 -0
  585. package/dist/profiles/queryTargetPicker.js +42 -0
  586. package/dist/profiles/queryTargetPicker.js.map +1 -0
  587. package/dist/profiles/testSchema.d.ts +3 -0
  588. package/dist/profiles/testSchema.d.ts.map +1 -0
  589. package/dist/profiles.cjs +223 -0
  590. package/dist/profiles.cjs.map +1 -0
  591. package/dist/profiles.d.ts +68 -0
  592. package/dist/profiles.d.ts.map +1 -0
  593. package/dist/profiles.js +223 -0
  594. package/dist/profiles.js.map +1 -0
  595. package/dist/rpc/FilterForm.cjs +20 -0
  596. package/dist/rpc/FilterForm.cjs.map +1 -1
  597. package/dist/rpc/FilterForm.js +20 -0
  598. package/dist/rpc/FilterForm.js.map +1 -1
  599. package/dist/rpc/formMetadata.cjs +34 -0
  600. package/dist/rpc/formMetadata.cjs.map +1 -1
  601. package/dist/rpc/formMetadata.d.ts.map +1 -1
  602. package/dist/rpc/formMetadata.js +35 -1
  603. package/dist/rpc/formMetadata.js.map +1 -1
  604. package/dist/rpc/types.cjs.map +1 -1
  605. package/dist/rpc/types.d.ts +9 -1
  606. package/dist/rpc/types.d.ts.map +1 -1
  607. package/dist/rpc/types.js.map +1 -1
  608. package/dist/styles.css +1 -1
  609. package/package.json +6 -1
@@ -0,0 +1,83 @@
1
+ import { EsCondition } from './esQueryBuilderModel';
2
+ /** One entry of x-es-operators, keyed exactly as esdsl.OperatorInfo marshals. */
3
+ export type EsOperatorInfo = {
4
+ op: string;
5
+ label: string;
6
+ arity: "none" | "single" | "multiple" | "range" | "group";
7
+ needsField?: boolean;
8
+ acceptsFields?: boolean;
9
+ fieldTypes: string[];
10
+ analyzed?: boolean;
11
+ group?: boolean;
12
+ };
13
+ export declare function changeConditionOperator(condition: EsCondition, next: EsOperatorInfo): EsCondition;
14
+ /** A field as _field_caps reports it, via the browser inspection response. */
15
+ export type EsFieldMapping = {
16
+ name: string;
17
+ dataType?: string;
18
+ types?: string[];
19
+ searchable?: boolean;
20
+ aggregatable?: boolean;
21
+ conflicting?: boolean;
22
+ };
23
+ /** An offered operator. `advanced` marks one that fights the field's analysis. */
24
+ export type OfferedOperator = EsOperatorInfo & {
25
+ advanced?: boolean;
26
+ };
27
+ export declare function fieldFamily(field: EsFieldMapping | undefined): string;
28
+ /**
29
+ * operatorsForField ranks the applicable operators: the family's default first,
30
+ * then the rest that suit it, then the type-independent ones, and finally the
31
+ * ones that fight the field's analysis — those carry `advanced`.
32
+ */
33
+ export declare function operatorsForField(catalog: EsOperatorInfo[], field: EsFieldMapping | undefined): OfferedOperator[];
34
+ /**
35
+ * fieldWarning explains a field the author cannot query the way they expect. A
36
+ * conflicting field is still offered — hiding it would silently drop a field
37
+ * that works on most of the matched indexes.
38
+ */
39
+ export declare function fieldWarning(field: EsFieldMapping): string | undefined;
40
+ /** sortableFields lists what can order the hits: doc values, _score and _doc. */
41
+ export declare function sortableFields(fields: EsFieldMapping[]): string[];
42
+ /**
43
+ * qualifiersForOperator narrows the advanced settings to the ones the operator
44
+ * emits. `restrictions` is the schema's x-es-qualifiers table, which lists only
45
+ * the qualifiers the compiler restricts — a name it omits applies everywhere.
46
+ */
47
+ export declare function qualifiersForOperator(options: {
48
+ names: string[];
49
+ restrictions?: Record<string, string[]>;
50
+ op: string;
51
+ }): string[];
52
+ type OptionsSchema = {
53
+ properties?: Record<string, unknown>;
54
+ } | undefined;
55
+ /** operatorCatalogFromSchema reads x-es-operators off the search property. */
56
+ export declare function operatorCatalogFromSchema(schema: OptionsSchema): EsOperatorInfo[];
57
+ /** esQualifiersFromSchema is the same read for the qualifier-to-operator table. */
58
+ export declare function esQualifiersFromSchema(schema: OptionsSchema): Record<string, string[]> | undefined;
59
+ /** One advanced qualifier, as the condition schema describes it. */
60
+ export type EsQualifierSchema = {
61
+ title?: string;
62
+ description?: string;
63
+ type?: string;
64
+ enum?: string[];
65
+ default?: unknown;
66
+ };
67
+ /**
68
+ * Everything about a search that Go owns: the operator catalog, the bool
69
+ * clauses, the advanced qualifiers and the sort orders. The builder reads all of
70
+ * it off the schema, so adding a qualifier or an operator in esdsl reaches the
71
+ * editor without a frontend change.
72
+ */
73
+ export type EsBuilderVocabulary = {
74
+ catalog: EsOperatorInfo[];
75
+ occurs: string[];
76
+ qualifierNames: string[];
77
+ qualifierRestrictions?: Record<string, string[]>;
78
+ qualifiers: Record<string, EsQualifierSchema>;
79
+ sortOrders: string[];
80
+ };
81
+ export declare function esBuilderVocabulary(schema: OptionsSchema): EsBuilderVocabulary;
82
+ export {};
83
+ //# sourceMappingURL=esQueryOperators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esQueryOperators.d.ts","sourceRoot":"","sources":["../../src/profiles/esQueryOperators.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAE/B,iFAAiF;AACjF,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;IAC1D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,WAAW,EACtB,IAAI,EAAE,cAAc,GACnB,WAAW,CAiCb;AAED,8EAA8E;AAC9E,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,kFAAkF;AAClF,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAoCtE,wBAAgB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,CAGrE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,cAAc,EAAE,EACzB,KAAK,EAAE,cAAc,GAAG,SAAS,GAChC,eAAe,EAAE,CA6BnB;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAStE;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,EAAE,CAMjE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC7C,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC,EAAE,EAAE,MAAM,CAAC;CACZ,GAAG,MAAM,EAAE,CAGX;AAED,KAAK,aAAa,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,SAAS,CAAC;AAe1E,8EAA8E;AAC9E,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,aAAa,GAAG,cAAc,EAAE,CAEjF;AAED,mFAAmF;AACnF,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,GACpB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,CAEtC;AAED,oEAAoE;AACpE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACjD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC9C,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAoBF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,mBAAmB,CAiB9E"}
@@ -0,0 +1,165 @@
1
+ import { defaultOperatorForFamily } from "./esQueryBuilderModel.js";
2
+ function changeConditionOperator(condition, next) {
3
+ const { value, values, gt, gte, lt, lte, conditions, ...rest } = condition;
4
+ const changed = { ...rest, op: next.op };
5
+ if (next.arity === "single") {
6
+ const operand = value !== void 0 ? value : (values == null ? void 0 : values.length) === 1 ? values[0] : void 0;
7
+ return operand === void 0 ? changed : { ...changed, value: operand };
8
+ }
9
+ if (next.arity === "multiple") {
10
+ const operands = (values == null ? void 0 : values.length) ? values : value === void 0 ? [] : [value];
11
+ return operands.length === 0 ? changed : { ...changed, values: operands };
12
+ }
13
+ if (next.arity === "range") {
14
+ return {
15
+ ...changed,
16
+ ...gt !== void 0 ? { gt } : {},
17
+ ...gte !== void 0 ? { gte } : {},
18
+ ...lt !== void 0 ? { lt } : {},
19
+ ...lte !== void 0 ? { lte } : {}
20
+ };
21
+ }
22
+ if (next.arity === "group") {
23
+ return { ...changed, conditions: conditions ?? [] };
24
+ }
25
+ return changed;
26
+ }
27
+ const families = {
28
+ keyword: "keyword",
29
+ constant_keyword: "keyword",
30
+ wildcard: "keyword",
31
+ text: "text",
32
+ match_only_text: "text",
33
+ search_as_you_type: "text",
34
+ date: "date",
35
+ date_nanos: "date",
36
+ long: "number",
37
+ integer: "number",
38
+ short: "number",
39
+ byte: "number",
40
+ double: "number",
41
+ float: "number",
42
+ half_float: "number",
43
+ scaled_float: "number",
44
+ unsigned_long: "number",
45
+ boolean: "boolean",
46
+ ip: "ip",
47
+ ip_range: "ip",
48
+ nested: "nested",
49
+ object: "object",
50
+ flattened: "object"
51
+ };
52
+ const analyzedFamilies = /* @__PURE__ */ new Set(["text"]);
53
+ const structuralFamilies = /* @__PURE__ */ new Set(["nested", "object"]);
54
+ function fieldFamily(field) {
55
+ var _a;
56
+ const mapped = (field == null ? void 0 : field.dataType) || ((_a = field == null ? void 0 : field.types) == null ? void 0 : _a[0]) || "";
57
+ return families[mapped] ?? "any";
58
+ }
59
+ function operatorsForField(catalog, field) {
60
+ if (!field) return catalog.map((entry) => ({ ...entry }));
61
+ if (field.searchable === false) {
62
+ return catalog.filter((entry) => entry.op === "exists").map((entry) => ({ ...entry }));
63
+ }
64
+ const family = fieldFamily(field);
65
+ if (structuralFamilies.has(family)) {
66
+ return catalog.filter((entry) => entry.op === "exists" || entry.fieldTypes.includes(family)).sort((left, right) => Number(left.op === "exists") - Number(right.op === "exists")).map((entry) => ({ ...entry }));
67
+ }
68
+ const analyzed = analyzedFamilies.has(family);
69
+ const preferred = defaultOperatorForFamily(family);
70
+ const ranked = catalog.flatMap((entry, position) => {
71
+ if (entry.group) return [];
72
+ const direct = entry.fieldTypes.includes(family);
73
+ const generic = entry.fieldTypes.includes("any");
74
+ if (!direct && !generic) return [];
75
+ if (direct && entry.op === preferred) return [{ entry, rank: 0, position }];
76
+ if (direct && Boolean(entry.analyzed) !== analyzed) {
77
+ return [{ entry: { ...entry, advanced: true }, rank: 3, position }];
78
+ }
79
+ return [{ entry, rank: direct ? 1 : 2, position }];
80
+ });
81
+ return ranked.sort((left, right) => left.rank - right.rank || left.position - right.position).map(({ entry }) => ({ ...entry }));
82
+ }
83
+ function fieldWarning(field) {
84
+ if (field.conflicting) {
85
+ const types = field.types ?? (field.dataType ? [field.dataType] : []);
86
+ return `${field.name} is mapped as ${joinWithAnd(types)} across indexes`;
87
+ }
88
+ if (field.searchable === false) {
89
+ return `${field.name} is not searchable, so only exists applies`;
90
+ }
91
+ return void 0;
92
+ }
93
+ function sortableFields(fields) {
94
+ return [
95
+ ...fields.filter((field) => field.aggregatable !== false).map((field) => field.name),
96
+ "_score",
97
+ "_doc"
98
+ ];
99
+ }
100
+ function qualifiersForOperator(options) {
101
+ const { names, restrictions = {}, op } = options;
102
+ return names.filter((name) => !restrictions[name] || restrictions[name].includes(op));
103
+ }
104
+ function searchProperty(schema) {
105
+ var _a;
106
+ return (_a = schema == null ? void 0 : schema.properties) == null ? void 0 : _a.search;
107
+ }
108
+ function operatorCatalogFromSchema(schema) {
109
+ var _a;
110
+ return ((_a = searchProperty(schema)) == null ? void 0 : _a["x-es-operators"]) ?? [];
111
+ }
112
+ function esQualifiersFromSchema(schema) {
113
+ var _a;
114
+ return (_a = searchProperty(schema)) == null ? void 0 : _a["x-es-qualifiers"];
115
+ }
116
+ const structuralConditionKeys = /* @__PURE__ */ new Set([
117
+ "op",
118
+ "occur",
119
+ "field",
120
+ "fields",
121
+ "value",
122
+ "values",
123
+ "gt",
124
+ "gte",
125
+ "lt",
126
+ "lte",
127
+ "optional",
128
+ "when",
129
+ "conditions"
130
+ ]);
131
+ function esBuilderVocabulary(schema) {
132
+ var _a, _b, _c, _d, _e, _f, _g;
133
+ const search = searchProperty(schema);
134
+ const conditionProperties = ((_b = (_a = search == null ? void 0 : search.properties) == null ? void 0 : _a.query) == null ? void 0 : _b.properties) ?? {};
135
+ const qualifiers = {};
136
+ for (const [name, property] of Object.entries(conditionProperties)) {
137
+ if (structuralConditionKeys.has(name)) continue;
138
+ qualifiers[name] = property;
139
+ }
140
+ const restrictions = esQualifiersFromSchema(schema);
141
+ return {
142
+ catalog: operatorCatalogFromSchema(schema),
143
+ occurs: (search == null ? void 0 : search["x-es-occurs"]) ?? [],
144
+ qualifierNames: Object.keys(qualifiers),
145
+ ...restrictions ? { qualifierRestrictions: restrictions } : {},
146
+ qualifiers,
147
+ sortOrders: ((_g = (_f = (_e = (_d = (_c = search == null ? void 0 : search.properties) == null ? void 0 : _c.sort) == null ? void 0 : _d.items) == null ? void 0 : _e.properties) == null ? void 0 : _f.order) == null ? void 0 : _g.enum) ?? []
148
+ };
149
+ }
150
+ function joinWithAnd(values) {
151
+ if (values.length < 2) return values.join("");
152
+ return `${values.slice(0, -1).join(", ")} and ${values[values.length - 1]}`;
153
+ }
154
+ export {
155
+ changeConditionOperator,
156
+ esBuilderVocabulary,
157
+ esQualifiersFromSchema,
158
+ fieldFamily,
159
+ fieldWarning,
160
+ operatorCatalogFromSchema,
161
+ operatorsForField,
162
+ qualifiersForOperator,
163
+ sortableFields
164
+ };
165
+ //# sourceMappingURL=esQueryOperators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esQueryOperators.js","sources":["../../src/profiles/esQueryOperators.ts"],"sourcesContent":["/**\n * Which operators a field accepts. The operator vocabulary itself comes from\n * the schema (`x-es-operators`, emitted from Go's esdsl.Catalog), so the only\n * knowledge owned here is how a mapping type reduces to a family and how the\n * resulting operators are ordered for an author.\n */\n\nimport {\n defaultOperatorForFamily,\n type EsCondition,\n} from \"./esQueryBuilderModel\";\n\n/** One entry of x-es-operators, keyed exactly as esdsl.OperatorInfo marshals. */\nexport type EsOperatorInfo = {\n op: string;\n label: string;\n arity: \"none\" | \"single\" | \"multiple\" | \"range\" | \"group\";\n needsField?: boolean;\n acceptsFields?: boolean;\n fieldTypes: string[];\n analyzed?: boolean;\n group?: boolean;\n};\n\nexport function changeConditionOperator(\n condition: EsCondition,\n next: EsOperatorInfo,\n): EsCondition {\n const { value, values, gt, gte, lt, lte, conditions, ...rest } = condition;\n const changed: EsCondition = { ...rest, op: next.op };\n\n if (next.arity === \"single\") {\n const operand = value !== undefined\n ? value\n : values?.length === 1\n ? values[0]\n : undefined;\n return operand === undefined ? changed : { ...changed, value: operand };\n }\n if (next.arity === \"multiple\") {\n const operands = values?.length\n ? values\n : value === undefined\n ? []\n : [value];\n return operands.length === 0 ? changed : { ...changed, values: operands };\n }\n if (next.arity === \"range\") {\n return {\n ...changed,\n ...(gt !== undefined ? { gt } : {}),\n ...(gte !== undefined ? { gte } : {}),\n ...(lt !== undefined ? { lt } : {}),\n ...(lte !== undefined ? { lte } : {}),\n };\n }\n if (next.arity === \"group\") {\n return { ...changed, conditions: conditions ?? [] };\n }\n return changed;\n}\n\n/** A field as _field_caps reports it, via the browser inspection response. */\nexport type EsFieldMapping = {\n name: string;\n dataType?: string;\n types?: string[];\n searchable?: boolean;\n aggregatable?: boolean;\n conflicting?: boolean;\n};\n\n/** An offered operator. `advanced` marks one that fights the field's analysis. */\nexport type OfferedOperator = EsOperatorInfo & { advanced?: boolean };\n\nconst families: Record<string, string> = {\n keyword: \"keyword\",\n constant_keyword: \"keyword\",\n wildcard: \"keyword\",\n text: \"text\",\n match_only_text: \"text\",\n search_as_you_type: \"text\",\n date: \"date\",\n date_nanos: \"date\",\n long: \"number\",\n integer: \"number\",\n short: \"number\",\n byte: \"number\",\n double: \"number\",\n float: \"number\",\n half_float: \"number\",\n scaled_float: \"number\",\n unsigned_long: \"number\",\n boolean: \"boolean\",\n ip: \"ip\",\n ip_range: \"ip\",\n nested: \"nested\",\n object: \"object\",\n flattened: \"object\",\n};\n\n// Families whose values are run through an analyzer at index time, so an exact\n// operator on them matches tokens rather than the stored text.\nconst analyzedFamilies = new Set([\"text\"]);\n\n// Structural families hold other fields rather than a value: they are descended\n// into or tested for presence, never matched against.\nconst structuralFamilies = new Set([\"nested\", \"object\"]);\n\nexport function fieldFamily(field: EsFieldMapping | undefined): string {\n const mapped = field?.dataType || field?.types?.[0] || \"\";\n return families[mapped] ?? \"any\";\n}\n\n/**\n * operatorsForField ranks the applicable operators: the family's default first,\n * then the rest that suit it, then the type-independent ones, and finally the\n * ones that fight the field's analysis — those carry `advanced`.\n */\nexport function operatorsForField(\n catalog: EsOperatorInfo[],\n field: EsFieldMapping | undefined,\n): OfferedOperator[] {\n if (!field) return catalog.map((entry) => ({ ...entry }));\n if (field.searchable === false) {\n return catalog.filter((entry) => entry.op === \"exists\").map((entry) => ({ ...entry }));\n }\n const family = fieldFamily(field);\n if (structuralFamilies.has(family)) {\n return catalog\n .filter((entry) => entry.op === \"exists\" || entry.fieldTypes.includes(family))\n .sort((left, right) => Number(left.op === \"exists\") - Number(right.op === \"exists\"))\n .map((entry) => ({ ...entry }));\n }\n\n const analyzed = analyzedFamilies.has(family);\n const preferred = defaultOperatorForFamily(family);\n const ranked = catalog.flatMap((entry, position) => {\n if (entry.group) return [];\n const direct = entry.fieldTypes.includes(family);\n const generic = entry.fieldTypes.includes(\"any\");\n if (!direct && !generic) return [];\n if (direct && entry.op === preferred) return [{ entry, rank: 0, position }];\n if (direct && Boolean(entry.analyzed) !== analyzed) {\n return [{ entry: { ...entry, advanced: true }, rank: 3, position }];\n }\n return [{ entry, rank: direct ? 1 : 2, position }];\n });\n return ranked\n .sort((left, right) => left.rank - right.rank || left.position - right.position)\n .map(({ entry }) => ({ ...entry }));\n}\n\n/**\n * fieldWarning explains a field the author cannot query the way they expect. A\n * conflicting field is still offered — hiding it would silently drop a field\n * that works on most of the matched indexes.\n */\nexport function fieldWarning(field: EsFieldMapping): string | undefined {\n if (field.conflicting) {\n const types = field.types ?? (field.dataType ? [field.dataType] : []);\n return `${field.name} is mapped as ${joinWithAnd(types)} across indexes`;\n }\n if (field.searchable === false) {\n return `${field.name} is not searchable, so only exists applies`;\n }\n return undefined;\n}\n\n/** sortableFields lists what can order the hits: doc values, _score and _doc. */\nexport function sortableFields(fields: EsFieldMapping[]): string[] {\n return [\n ...fields.filter((field) => field.aggregatable !== false).map((field) => field.name),\n \"_score\",\n \"_doc\",\n ];\n}\n\n/**\n * qualifiersForOperator narrows the advanced settings to the ones the operator\n * emits. `restrictions` is the schema's x-es-qualifiers table, which lists only\n * the qualifiers the compiler restricts — a name it omits applies everywhere.\n */\nexport function qualifiersForOperator(options: {\n names: string[];\n restrictions?: Record<string, string[]>;\n op: string;\n}): string[] {\n const { names, restrictions = {}, op } = options;\n return names.filter((name) => !restrictions[name] || restrictions[name].includes(op));\n}\n\ntype OptionsSchema = { properties?: Record<string, unknown> } | undefined;\n\ntype SchemaNode = {\n properties?: Record<string, SchemaNode>;\n items?: SchemaNode;\n enum?: string[];\n \"x-es-operators\"?: EsOperatorInfo[];\n \"x-es-occurs\"?: string[];\n \"x-es-qualifiers\"?: Record<string, string[]>;\n};\n\nfunction searchProperty(schema: OptionsSchema): SchemaNode | undefined {\n return schema?.properties?.search as SchemaNode | undefined;\n}\n\n/** operatorCatalogFromSchema reads x-es-operators off the search property. */\nexport function operatorCatalogFromSchema(schema: OptionsSchema): EsOperatorInfo[] {\n return searchProperty(schema)?.[\"x-es-operators\"] ?? [];\n}\n\n/** esQualifiersFromSchema is the same read for the qualifier-to-operator table. */\nexport function esQualifiersFromSchema(\n schema: OptionsSchema,\n): Record<string, string[]> | undefined {\n return searchProperty(schema)?.[\"x-es-qualifiers\"];\n}\n\n/** One advanced qualifier, as the condition schema describes it. */\nexport type EsQualifierSchema = {\n title?: string;\n description?: string;\n type?: string;\n enum?: string[];\n default?: unknown;\n};\n\n/**\n * Everything about a search that Go owns: the operator catalog, the bool\n * clauses, the advanced qualifiers and the sort orders. The builder reads all of\n * it off the schema, so adding a qualifier or an operator in esdsl reaches the\n * editor without a frontend change.\n */\nexport type EsBuilderVocabulary = {\n catalog: EsOperatorInfo[];\n occurs: string[];\n qualifierNames: string[];\n qualifierRestrictions?: Record<string, string[]>;\n qualifiers: Record<string, EsQualifierSchema>;\n sortOrders: string[];\n};\n\n// The condition properties that carry structure rather than an advanced\n// setting. Whatever the schema holds beyond these is a qualifier.\nconst structuralConditionKeys = new Set([\n \"op\",\n \"occur\",\n \"field\",\n \"fields\",\n \"value\",\n \"values\",\n \"gt\",\n \"gte\",\n \"lt\",\n \"lte\",\n \"optional\",\n \"when\",\n \"conditions\",\n]);\n\nexport function esBuilderVocabulary(schema: OptionsSchema): EsBuilderVocabulary {\n const search = searchProperty(schema);\n const conditionProperties = search?.properties?.query?.properties ?? {};\n const qualifiers: Record<string, EsQualifierSchema> = {};\n for (const [name, property] of Object.entries(conditionProperties)) {\n if (structuralConditionKeys.has(name)) continue;\n qualifiers[name] = property as EsQualifierSchema;\n }\n const restrictions = esQualifiersFromSchema(schema);\n return {\n catalog: operatorCatalogFromSchema(schema),\n occurs: search?.[\"x-es-occurs\"] ?? [],\n qualifierNames: Object.keys(qualifiers),\n ...(restrictions ? { qualifierRestrictions: restrictions } : {}),\n qualifiers,\n sortOrders: search?.properties?.sort?.items?.properties?.order?.enum ?? [],\n };\n}\n\nfunction joinWithAnd(values: string[]): string {\n if (values.length < 2) return values.join(\"\");\n return `${values.slice(0, -1).join(\", \")} and ${values[values.length - 1]}`;\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const InputField = require("../components/InputField.cjs");
5
+ const react = require("react");
6
+ const esQueryOutputModel = require("./esQueryOutputModel.cjs");
7
+ function EsQueryOutputEditor({
8
+ search,
9
+ onChange
10
+ }) {
11
+ const source = search.source ?? {};
12
+ const total = search.trackTotalHits ?? {};
13
+ const setSource = (patch) => onChange({ source: esQueryOutputModel.pruneEmpty({ ...source, ...patch }) });
14
+ const setTotal = (patch) => onChange({ trackTotalHits: esQueryOutputModel.pruneEmpty({ ...total, ...patch }) });
15
+ return /* @__PURE__ */ jsxRuntime.jsxs("section", { className: "flex flex-col gap-2", children: [
16
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xs font-medium text-muted-foreground", children: "Output" }),
17
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [
18
+ /* @__PURE__ */ jsxRuntime.jsx(
19
+ InputField.InputField,
20
+ {
21
+ "aria-label": "From",
22
+ className: "w-28",
23
+ type: "number",
24
+ placeholder: "from",
25
+ title: "Hits to skip. Not available while scrolling.",
26
+ value: search.from === void 0 ? "" : String(search.from),
27
+ onChange: (next) => onChange({ from: esQueryOutputModel.parseCount(next) })
28
+ }
29
+ ),
30
+ /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-1 text-xs text-muted-foreground", children: [
31
+ /* @__PURE__ */ jsxRuntime.jsx(
32
+ "input",
33
+ {
34
+ type: "checkbox",
35
+ checked: source.enabled !== false,
36
+ onChange: (event) => setSource({ enabled: event.target.checked ? void 0 : false })
37
+ }
38
+ ),
39
+ "Return _source"
40
+ ] }),
41
+ /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex items-center gap-1 text-xs text-muted-foreground", children: [
42
+ /* @__PURE__ */ jsxRuntime.jsx(
43
+ "input",
44
+ {
45
+ type: "checkbox",
46
+ checked: total.enabled === true,
47
+ onChange: (event) => setTotal({ enabled: event.target.checked || void 0 })
48
+ }
49
+ ),
50
+ "Track total hits"
51
+ ] }),
52
+ total.enabled ? /* @__PURE__ */ jsxRuntime.jsx(
53
+ InputField.InputField,
54
+ {
55
+ "aria-label": "Total hits threshold",
56
+ className: "w-32",
57
+ type: "number",
58
+ placeholder: "threshold",
59
+ title: "Count matches accurately up to this many",
60
+ value: total.threshold === void 0 ? "" : String(total.threshold),
61
+ onChange: (next) => setTotal({ threshold: esQueryOutputModel.parseCount(next) })
62
+ }
63
+ ) : null
64
+ ] }),
65
+ source.enabled === false ? null : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", children: [
66
+ /* @__PURE__ */ jsxRuntime.jsx(
67
+ PatternList,
68
+ {
69
+ label: "Includes",
70
+ values: source.includes ?? [],
71
+ onChange: (includes) => setSource({ includes: includes.length ? includes : void 0 })
72
+ }
73
+ ),
74
+ /* @__PURE__ */ jsxRuntime.jsx(
75
+ PatternList,
76
+ {
77
+ label: "Excludes",
78
+ values: source.excludes ?? [],
79
+ onChange: (excludes) => setSource({ excludes: excludes.length ? excludes : void 0 })
80
+ }
81
+ )
82
+ ] })
83
+ ] });
84
+ }
85
+ function PatternList({
86
+ label,
87
+ values,
88
+ onChange
89
+ }) {
90
+ const [draft, setDraft] = react.useState("");
91
+ const commit = () => {
92
+ const parsed = draft.split(",").map((entry) => entry.trim()).filter(Boolean);
93
+ if (!parsed.length) return;
94
+ onChange([...values, ...parsed]);
95
+ setDraft("");
96
+ };
97
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-1", children: [
98
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "w-20 shrink-0 text-xs text-muted-foreground", children: label }),
99
+ values.map((value, index) => /* @__PURE__ */ jsxRuntime.jsxs(
100
+ "span",
101
+ {
102
+ className: "es-pattern-chip inline-flex items-center gap-1 rounded border bg-muted px-1.5 py-0.5 font-mono text-xs",
103
+ children: [
104
+ value,
105
+ /* @__PURE__ */ jsxRuntime.jsx(
106
+ "button",
107
+ {
108
+ type: "button",
109
+ "aria-label": `Remove ${value}`,
110
+ className: "opacity-60 hover:opacity-100",
111
+ onClick: () => onChange(values.filter((_entry, position) => position !== index)),
112
+ children: "×"
113
+ }
114
+ )
115
+ ]
116
+ },
117
+ index
118
+ )),
119
+ /* @__PURE__ */ jsxRuntime.jsx(
120
+ InputField.InputField,
121
+ {
122
+ "aria-label": `Add ${label.toLowerCase()} pattern`,
123
+ className: "min-w-40",
124
+ placeholder: "field or pattern…",
125
+ value: draft,
126
+ onChange: setDraft,
127
+ onKeyDown: (event) => {
128
+ if (event.key !== "Enter" && event.key !== ",") return;
129
+ event.preventDefault();
130
+ commit();
131
+ },
132
+ onBlur: commit
133
+ }
134
+ )
135
+ ] });
136
+ }
137
+ exports.EsQueryOutputEditor = EsQueryOutputEditor;
138
+ //# sourceMappingURL=esQueryOutputEditor.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esQueryOutputEditor.cjs","sources":["../../src/profiles/esQueryOutputEditor.tsx"],"sourcesContent":["/**\n * What a matching document comes back as: where the hits start, which _source\n * fields travel, and whether the backend counts past its default. How many hits\n * come back is the query's Limit, edited next to the filters — one row cap, so\n * that it cannot disagree with itself across the form and the raw DSL.\n */\n\nimport { InputField } from \"../components/InputField\";\nimport { useState } from \"react\";\nimport type { EsSearch } from \"./esQueryBuilderModel\";\nimport type { Patch } from \"./profileWizardModel\";\nimport { parseCount, pruneEmpty } from \"./esQueryOutputModel\";\n\nexport function EsQueryOutputEditor({\n search,\n onChange,\n}: {\n search: EsSearch;\n onChange: (patch: Patch<EsSearch>) => void;\n}) {\n const source = search.source ?? {};\n const total = search.trackTotalHits ?? {};\n const setSource = (patch: Partial<NonNullable<EsSearch[\"source\"]>>) =>\n onChange({ source: pruneEmpty({ ...source, ...patch }) });\n const setTotal = (patch: Partial<NonNullable<EsSearch[\"trackTotalHits\"]>>) =>\n onChange({ trackTotalHits: pruneEmpty({ ...total, ...patch }) });\n\n return (\n <section className=\"flex flex-col gap-2\">\n <h3 className=\"text-xs font-medium text-muted-foreground\">Output</h3>\n <div className=\"flex flex-wrap items-center gap-2\">\n <InputField\n aria-label=\"From\"\n className=\"w-28\"\n type=\"number\"\n placeholder=\"from\"\n title=\"Hits to skip. Not available while scrolling.\"\n value={search.from === undefined ? \"\" : String(search.from)}\n onChange={(next) => onChange({ from: parseCount(next) })}\n />\n <label className=\"flex items-center gap-1 text-xs text-muted-foreground\">\n <input\n type=\"checkbox\"\n checked={source.enabled !== false}\n onChange={(event) =>\n setSource({ enabled: event.target.checked ? undefined : false })\n }\n />\n Return _source\n </label>\n <label className=\"flex items-center gap-1 text-xs text-muted-foreground\">\n <input\n type=\"checkbox\"\n checked={total.enabled === true}\n onChange={(event) =>\n setTotal({ enabled: event.target.checked || undefined })\n }\n />\n Track total hits\n </label>\n {total.enabled ? (\n <InputField\n aria-label=\"Total hits threshold\"\n className=\"w-32\"\n type=\"number\"\n placeholder=\"threshold\"\n title=\"Count matches accurately up to this many\"\n value={total.threshold === undefined ? \"\" : String(total.threshold)}\n onChange={(next) => setTotal({ threshold: parseCount(next) })}\n />\n ) : null}\n </div>\n {source.enabled === false ? null : (\n <div className=\"flex flex-col gap-2\">\n <PatternList\n label=\"Includes\"\n values={source.includes ?? []}\n onChange={(includes) =>\n setSource({ includes: includes.length ? includes : undefined })\n }\n />\n <PatternList\n label=\"Excludes\"\n values={source.excludes ?? []}\n onChange={(excludes) =>\n setSource({ excludes: excludes.length ? excludes : undefined })\n }\n />\n </div>\n )}\n </section>\n );\n}\n\n/**\n * A list of _source field patterns. They are patterns rather than field names —\n * `user.*` is the point of them — so this stays free text rather than a picker.\n */\nfunction PatternList({\n label,\n values,\n onChange,\n}: {\n label: string;\n values: string[];\n onChange: (values: string[]) => void;\n}) {\n const [draft, setDraft] = useState(\"\");\n const commit = () => {\n const parsed = draft\n .split(\",\")\n .map((entry) => entry.trim())\n .filter(Boolean);\n if (!parsed.length) return;\n onChange([...values, ...parsed]);\n setDraft(\"\");\n };\n return (\n <div className=\"flex flex-wrap items-center gap-1\">\n <span className=\"w-20 shrink-0 text-xs text-muted-foreground\">{label}</span>\n {values.map((value, index) => (\n <span\n key={index}\n className=\"es-pattern-chip inline-flex items-center gap-1 rounded border bg-muted px-1.5 py-0.5 font-mono text-xs\"\n >\n {value}\n <button\n type=\"button\"\n aria-label={`Remove ${value}`}\n className=\"opacity-60 hover:opacity-100\"\n onClick={() =>\n onChange(values.filter((_entry, position) => position !== index))\n }\n >\n ×\n </button>\n </span>\n ))}\n <InputField\n aria-label={`Add ${label.toLowerCase()} pattern`}\n className=\"min-w-40\"\n placeholder=\"field or pattern…\"\n value={draft}\n onChange={setDraft}\n onKeyDown={(event) => {\n if (event.key !== \"Enter\" && event.key !== \",\") return;\n event.preventDefault();\n commit();\n }}\n onBlur={commit}\n />\n </div>\n );\n}\n"],"names":["pruneEmpty","jsxs","jsx","InputField","parseCount","useState"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { EsSearch } from './esQueryBuilderModel';
2
+ import { Patch } from './profileWizardModel';
3
+ export declare function EsQueryOutputEditor({ search, onChange, }: {
4
+ search: EsSearch;
5
+ onChange: (patch: Patch<EsSearch>) => void;
6
+ }): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=esQueryOutputEditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esQueryOutputEditor.d.ts","sourceRoot":"","sources":["../../src/profiles/esQueryOutputEditor.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,QAAQ,GACT,EAAE;IACD,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;CAC5C,2CAyEA"}
@@ -0,0 +1,138 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { InputField } from "../components/InputField.js";
3
+ import { useState } from "react";
4
+ import { parseCount, pruneEmpty } from "./esQueryOutputModel.js";
5
+ function EsQueryOutputEditor({
6
+ search,
7
+ onChange
8
+ }) {
9
+ const source = search.source ?? {};
10
+ const total = search.trackTotalHits ?? {};
11
+ const setSource = (patch) => onChange({ source: pruneEmpty({ ...source, ...patch }) });
12
+ const setTotal = (patch) => onChange({ trackTotalHits: pruneEmpty({ ...total, ...patch }) });
13
+ return /* @__PURE__ */ jsxs("section", { className: "flex flex-col gap-2", children: [
14
+ /* @__PURE__ */ jsx("h3", { className: "text-xs font-medium text-muted-foreground", children: "Output" }),
15
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [
16
+ /* @__PURE__ */ jsx(
17
+ InputField,
18
+ {
19
+ "aria-label": "From",
20
+ className: "w-28",
21
+ type: "number",
22
+ placeholder: "from",
23
+ title: "Hits to skip. Not available while scrolling.",
24
+ value: search.from === void 0 ? "" : String(search.from),
25
+ onChange: (next) => onChange({ from: parseCount(next) })
26
+ }
27
+ ),
28
+ /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-1 text-xs text-muted-foreground", children: [
29
+ /* @__PURE__ */ jsx(
30
+ "input",
31
+ {
32
+ type: "checkbox",
33
+ checked: source.enabled !== false,
34
+ onChange: (event) => setSource({ enabled: event.target.checked ? void 0 : false })
35
+ }
36
+ ),
37
+ "Return _source"
38
+ ] }),
39
+ /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-1 text-xs text-muted-foreground", children: [
40
+ /* @__PURE__ */ jsx(
41
+ "input",
42
+ {
43
+ type: "checkbox",
44
+ checked: total.enabled === true,
45
+ onChange: (event) => setTotal({ enabled: event.target.checked || void 0 })
46
+ }
47
+ ),
48
+ "Track total hits"
49
+ ] }),
50
+ total.enabled ? /* @__PURE__ */ jsx(
51
+ InputField,
52
+ {
53
+ "aria-label": "Total hits threshold",
54
+ className: "w-32",
55
+ type: "number",
56
+ placeholder: "threshold",
57
+ title: "Count matches accurately up to this many",
58
+ value: total.threshold === void 0 ? "" : String(total.threshold),
59
+ onChange: (next) => setTotal({ threshold: parseCount(next) })
60
+ }
61
+ ) : null
62
+ ] }),
63
+ source.enabled === false ? null : /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
64
+ /* @__PURE__ */ jsx(
65
+ PatternList,
66
+ {
67
+ label: "Includes",
68
+ values: source.includes ?? [],
69
+ onChange: (includes) => setSource({ includes: includes.length ? includes : void 0 })
70
+ }
71
+ ),
72
+ /* @__PURE__ */ jsx(
73
+ PatternList,
74
+ {
75
+ label: "Excludes",
76
+ values: source.excludes ?? [],
77
+ onChange: (excludes) => setSource({ excludes: excludes.length ? excludes : void 0 })
78
+ }
79
+ )
80
+ ] })
81
+ ] });
82
+ }
83
+ function PatternList({
84
+ label,
85
+ values,
86
+ onChange
87
+ }) {
88
+ const [draft, setDraft] = useState("");
89
+ const commit = () => {
90
+ const parsed = draft.split(",").map((entry) => entry.trim()).filter(Boolean);
91
+ if (!parsed.length) return;
92
+ onChange([...values, ...parsed]);
93
+ setDraft("");
94
+ };
95
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-1", children: [
96
+ /* @__PURE__ */ jsx("span", { className: "w-20 shrink-0 text-xs text-muted-foreground", children: label }),
97
+ values.map((value, index) => /* @__PURE__ */ jsxs(
98
+ "span",
99
+ {
100
+ className: "es-pattern-chip inline-flex items-center gap-1 rounded border bg-muted px-1.5 py-0.5 font-mono text-xs",
101
+ children: [
102
+ value,
103
+ /* @__PURE__ */ jsx(
104
+ "button",
105
+ {
106
+ type: "button",
107
+ "aria-label": `Remove ${value}`,
108
+ className: "opacity-60 hover:opacity-100",
109
+ onClick: () => onChange(values.filter((_entry, position) => position !== index)),
110
+ children: "×"
111
+ }
112
+ )
113
+ ]
114
+ },
115
+ index
116
+ )),
117
+ /* @__PURE__ */ jsx(
118
+ InputField,
119
+ {
120
+ "aria-label": `Add ${label.toLowerCase()} pattern`,
121
+ className: "min-w-40",
122
+ placeholder: "field or pattern…",
123
+ value: draft,
124
+ onChange: setDraft,
125
+ onKeyDown: (event) => {
126
+ if (event.key !== "Enter" && event.key !== ",") return;
127
+ event.preventDefault();
128
+ commit();
129
+ },
130
+ onBlur: commit
131
+ }
132
+ )
133
+ ] });
134
+ }
135
+ export {
136
+ EsQueryOutputEditor
137
+ };
138
+ //# sourceMappingURL=esQueryOutputEditor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esQueryOutputEditor.js","sources":["../../src/profiles/esQueryOutputEditor.tsx"],"sourcesContent":["/**\n * What a matching document comes back as: where the hits start, which _source\n * fields travel, and whether the backend counts past its default. How many hits\n * come back is the query's Limit, edited next to the filters — one row cap, so\n * that it cannot disagree with itself across the form and the raw DSL.\n */\n\nimport { InputField } from \"../components/InputField\";\nimport { useState } from \"react\";\nimport type { EsSearch } from \"./esQueryBuilderModel\";\nimport type { Patch } from \"./profileWizardModel\";\nimport { parseCount, pruneEmpty } from \"./esQueryOutputModel\";\n\nexport function EsQueryOutputEditor({\n search,\n onChange,\n}: {\n search: EsSearch;\n onChange: (patch: Patch<EsSearch>) => void;\n}) {\n const source = search.source ?? {};\n const total = search.trackTotalHits ?? {};\n const setSource = (patch: Partial<NonNullable<EsSearch[\"source\"]>>) =>\n onChange({ source: pruneEmpty({ ...source, ...patch }) });\n const setTotal = (patch: Partial<NonNullable<EsSearch[\"trackTotalHits\"]>>) =>\n onChange({ trackTotalHits: pruneEmpty({ ...total, ...patch }) });\n\n return (\n <section className=\"flex flex-col gap-2\">\n <h3 className=\"text-xs font-medium text-muted-foreground\">Output</h3>\n <div className=\"flex flex-wrap items-center gap-2\">\n <InputField\n aria-label=\"From\"\n className=\"w-28\"\n type=\"number\"\n placeholder=\"from\"\n title=\"Hits to skip. Not available while scrolling.\"\n value={search.from === undefined ? \"\" : String(search.from)}\n onChange={(next) => onChange({ from: parseCount(next) })}\n />\n <label className=\"flex items-center gap-1 text-xs text-muted-foreground\">\n <input\n type=\"checkbox\"\n checked={source.enabled !== false}\n onChange={(event) =>\n setSource({ enabled: event.target.checked ? undefined : false })\n }\n />\n Return _source\n </label>\n <label className=\"flex items-center gap-1 text-xs text-muted-foreground\">\n <input\n type=\"checkbox\"\n checked={total.enabled === true}\n onChange={(event) =>\n setTotal({ enabled: event.target.checked || undefined })\n }\n />\n Track total hits\n </label>\n {total.enabled ? (\n <InputField\n aria-label=\"Total hits threshold\"\n className=\"w-32\"\n type=\"number\"\n placeholder=\"threshold\"\n title=\"Count matches accurately up to this many\"\n value={total.threshold === undefined ? \"\" : String(total.threshold)}\n onChange={(next) => setTotal({ threshold: parseCount(next) })}\n />\n ) : null}\n </div>\n {source.enabled === false ? null : (\n <div className=\"flex flex-col gap-2\">\n <PatternList\n label=\"Includes\"\n values={source.includes ?? []}\n onChange={(includes) =>\n setSource({ includes: includes.length ? includes : undefined })\n }\n />\n <PatternList\n label=\"Excludes\"\n values={source.excludes ?? []}\n onChange={(excludes) =>\n setSource({ excludes: excludes.length ? excludes : undefined })\n }\n />\n </div>\n )}\n </section>\n );\n}\n\n/**\n * A list of _source field patterns. They are patterns rather than field names —\n * `user.*` is the point of them — so this stays free text rather than a picker.\n */\nfunction PatternList({\n label,\n values,\n onChange,\n}: {\n label: string;\n values: string[];\n onChange: (values: string[]) => void;\n}) {\n const [draft, setDraft] = useState(\"\");\n const commit = () => {\n const parsed = draft\n .split(\",\")\n .map((entry) => entry.trim())\n .filter(Boolean);\n if (!parsed.length) return;\n onChange([...values, ...parsed]);\n setDraft(\"\");\n };\n return (\n <div className=\"flex flex-wrap items-center gap-1\">\n <span className=\"w-20 shrink-0 text-xs text-muted-foreground\">{label}</span>\n {values.map((value, index) => (\n <span\n key={index}\n className=\"es-pattern-chip inline-flex items-center gap-1 rounded border bg-muted px-1.5 py-0.5 font-mono text-xs\"\n >\n {value}\n <button\n type=\"button\"\n aria-label={`Remove ${value}`}\n className=\"opacity-60 hover:opacity-100\"\n onClick={() =>\n onChange(values.filter((_entry, position) => position !== index))\n }\n >\n ×\n </button>\n </span>\n ))}\n <InputField\n aria-label={`Add ${label.toLowerCase()} pattern`}\n className=\"min-w-40\"\n placeholder=\"field or pattern…\"\n value={draft}\n onChange={setDraft}\n onKeyDown={(event) => {\n if (event.key !== \"Enter\" && event.key !== \",\") return;\n event.preventDefault();\n commit();\n }}\n onBlur={commit}\n />\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ function pruneEmpty(value) {
4
+ const said = Object.values(value).some(
5
+ (entry) => Array.isArray(entry) ? entry.length > 0 : entry !== void 0 && entry !== null
6
+ );
7
+ return said ? value : void 0;
8
+ }
9
+ function parseCount(raw) {
10
+ if (raw.trim() === "") return void 0;
11
+ const parsed = Number(raw);
12
+ return Number.isInteger(parsed) && parsed >= 0 ? parsed : void 0;
13
+ }
14
+ exports.parseCount = parseCount;
15
+ exports.pruneEmpty = pruneEmpty;
16
+ //# sourceMappingURL=esQueryOutputModel.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esQueryOutputModel.cjs","sources":["../../src/profiles/esQueryOutputModel.ts"],"sourcesContent":["/**\n * What a matching document comes back as: where the hits start, which _source\n * fields travel, and whether the backend counts past its default. How many hits\n * come back is the query's Limit, edited next to the filters — one row cap, so\n * that it cannot disagree with itself across the form and the raw DSL.\n */\n\n\n/**\n * pruneEmpty drops a sub-object that says nothing, so clearing the last field of\n * `source` removes `source` rather than storing `{}` the compiler must ignore.\n */\nexport function pruneEmpty<T extends object>(value: T): T | undefined {\n const said = Object.values(value).some((entry) =>\n Array.isArray(entry) ? entry.length > 0 : entry !== undefined && entry !== null,\n );\n return said ? value : undefined;\n}\n\n/** parseCount reads a non-negative integer, treating anything else as unset. */\nexport function parseCount(raw: string): number | undefined {\n if (raw.trim() === \"\") return undefined;\n const parsed = Number(raw);\n return Number.isInteger(parsed) && parsed >= 0 ? parsed : undefined;\n}\n"],"names":[],"mappings":";;AAYO,SAAS,WAA6B,OAAyB;AACpE,QAAM,OAAO,OAAO,OAAO,KAAK,EAAE;AAAA,IAAK,CAAC,UACtC,MAAM,QAAQ,KAAK,IAAI,MAAM,SAAS,IAAI,UAAU,UAAa,UAAU;AAAA,EAAA;AAE7E,SAAO,OAAO,QAAQ;AACxB;AAGO,SAAS,WAAW,KAAiC;AAC1D,MAAI,IAAI,WAAW,GAAI,QAAO;AAC9B,QAAM,SAAS,OAAO,GAAG;AACzB,SAAO,OAAO,UAAU,MAAM,KAAK,UAAU,IAAI,SAAS;AAC5D;;;"}