@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,65 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Button } from "../components/button.js";
3
+ import { Icon } from "../data/Icon.js";
4
+ import { useState, useContext, useRef, useEffect, createContext } from "react";
5
+ import { savedConnectionID } from "./connectionBrowserModel.js";
6
+ import { ProfileBuilderWorkspace } from "./profileBuilderWorkspace.js";
7
+ import { UiDatabase } from "../icons/components/UiDatabase.js";
8
+ const ProfileBuilderAutoOpenContext = createContext(false);
9
+ function ProfileBuilderAutoOpen({ children }) {
10
+ return /* @__PURE__ */ jsx(ProfileBuilderAutoOpenContext.Provider, { value: true, children });
11
+ }
12
+ function ProfileQueryBuilderField({
13
+ input,
14
+ rootValue,
15
+ onRootChange
16
+ }) {
17
+ var _a;
18
+ const [open, setOpen] = useState(false);
19
+ const autoOpen = useContext(ProfileBuilderAutoOpenContext);
20
+ const autoOpened = useRef(false);
21
+ const connection = ((_a = rootValue.provider) == null ? void 0 : _a.connection) ?? "";
22
+ const connectionID = savedConnectionID(connection);
23
+ useEffect(() => {
24
+ if (!autoOpen || autoOpened.current || !connectionID || !onRootChange) {
25
+ return;
26
+ }
27
+ autoOpened.current = true;
28
+ setOpen(true);
29
+ }, [autoOpen, connectionID, onRootChange]);
30
+ return /* @__PURE__ */ jsxs("div", { className: "min-w-0 space-y-2", children: [
31
+ input,
32
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [
33
+ /* @__PURE__ */ jsxs(
34
+ Button,
35
+ {
36
+ type: "button",
37
+ variant: "outline",
38
+ size: "sm",
39
+ disabled: !connectionID || !onRootChange,
40
+ title: connectionID ? "Browse the saved connection and sample rows" : "Choose a saved connection before opening the builder",
41
+ onClick: () => setOpen(true),
42
+ children: [
43
+ /* @__PURE__ */ jsx(Icon, { icon: UiDatabase, className: "size-4" }),
44
+ "Build from connection"
45
+ ]
46
+ }
47
+ ),
48
+ !connectionID ? /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: "Choose a saved connection to browse its catalog and sample rows. Inline URLs can still be configured manually." }) : null
49
+ ] }),
50
+ open && connectionID && onRootChange ? /* @__PURE__ */ jsx(
51
+ ProfileBuilderWorkspace,
52
+ {
53
+ connectionID,
54
+ rootValue,
55
+ onApply: onRootChange,
56
+ onClose: () => setOpen(false)
57
+ }
58
+ ) : null
59
+ ] });
60
+ }
61
+ export {
62
+ ProfileBuilderAutoOpen,
63
+ ProfileQueryBuilderField
64
+ };
65
+ //# sourceMappingURL=profileBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profileBuilder.js","sources":["../../src/profiles/profileBuilder.tsx"],"sourcesContent":["import { Button } from \"../components/button\";\nimport { Icon } from \"../data/Icon\";\nimport { UiDatabase } from \"../icons\";\nimport {\n createContext,\n useContext,\n useEffect,\n useRef,\n useState,\n type ReactNode\n} from \"react\";\nimport { savedConnectionID } from \"./connectionBrowserModel\";\nimport {\n ProfileBuilderWorkspace,\n type ProfileDraft\n} from \"./profileBuilderWorkspace\";\n\nconst ProfileBuilderAutoOpenContext = createContext(false);\n\nexport function ProfileBuilderAutoOpen({ children }: { children: ReactNode }) {\n return (\n <ProfileBuilderAutoOpenContext.Provider value>\n {children}\n </ProfileBuilderAutoOpenContext.Provider>\n );\n}\n\nexport function ProfileQueryBuilderField({\n input,\n rootValue,\n onRootChange\n}: {\n input: ReactNode;\n rootValue: ProfileDraft;\n onRootChange?: ((next: Record<string, unknown>) => void) | undefined;\n}) {\n const [open, setOpen] = useState(false);\n const autoOpen = useContext(ProfileBuilderAutoOpenContext);\n const autoOpened = useRef(false);\n const connection = rootValue.provider?.connection ?? \"\";\n const connectionID = savedConnectionID(connection);\n\n useEffect(() => {\n if (!autoOpen || autoOpened.current || !connectionID || !onRootChange) {\n return;\n }\n autoOpened.current = true;\n setOpen(true);\n }, [autoOpen, connectionID, onRootChange]);\n\n return (\n <div className=\"min-w-0 space-y-2\">\n {input}\n <div className=\"flex flex-wrap items-center gap-2\">\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n disabled={!connectionID || !onRootChange}\n title={\n connectionID\n ? \"Browse the saved connection and sample rows\"\n : \"Choose a saved connection before opening the builder\"\n }\n onClick={() => setOpen(true)}\n >\n <Icon icon={UiDatabase} className=\"size-4\" />\n Build from connection\n </Button>\n {!connectionID ? (\n <span className=\"text-xs text-muted-foreground\">\n Choose a saved connection to browse its catalog and sample rows.\n Inline URLs can still be configured manually.\n </span>\n ) : null}\n </div>\n {open && connectionID && onRootChange ? (\n <ProfileBuilderWorkspace\n connectionID={connectionID}\n rootValue={rootValue}\n onApply={onRootChange}\n onClose={() => setOpen(false)}\n />\n ) : null}\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;;;AAiBA,MAAM,gCAAgC,cAAc,KAAK;AAElD,SAAS,uBAAuB,EAAE,YAAqC;AAC5E,6BACG,8BAA8B,UAA9B,EAAuC,OAAK,MAC1C,UACH;AAEJ;AAEO,SAAS,yBAAyB;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AACF,GAIG;;AACD,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,KAAK;AACtC,QAAM,WAAW,WAAW,6BAA6B;AACzD,QAAM,aAAa,OAAO,KAAK;AAC/B,QAAM,eAAa,eAAU,aAAV,mBAAoB,eAAc;AACrD,QAAM,eAAe,kBAAkB,UAAU;AAEjD,YAAU,MAAM;AACd,QAAI,CAAC,YAAY,WAAW,WAAW,CAAC,gBAAgB,CAAC,cAAc;AACrE;AAAA,IACF;AACA,eAAW,UAAU;AACrB,YAAQ,IAAI;AAAA,EACd,GAAG,CAAC,UAAU,cAAc,YAAY,CAAC;AAEzC,SACE,qBAAC,OAAA,EAAI,WAAU,qBACZ,UAAA;AAAA,IAAA;AAAA,IACD,qBAAC,OAAA,EAAI,WAAU,qCACb,UAAA;AAAA,MAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,UAAU,CAAC,gBAAgB,CAAC;AAAA,UAC5B,OACE,eACI,gDACA;AAAA,UAEN,SAAS,MAAM,QAAQ,IAAI;AAAA,UAE3B,UAAA;AAAA,YAAA,oBAAC,MAAA,EAAK,MAAM,YAAY,WAAU,UAAS;AAAA,YAAE;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,MAG9C,CAAC,eACA,oBAAC,UAAK,WAAU,iCAAgC,4HAGhD,IACE;AAAA,IAAA,GACN;AAAA,IACC,QAAQ,gBAAgB,eACvB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT,SAAS,MAAM,QAAQ,KAAK;AAAA,MAAA;AAAA,IAAA,IAE5B;AAAA,EAAA,GACN;AAEJ;"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const profileBuilder = require("./profileBuilder.cjs");
5
+ const profileQueryBuilderPost = (field, nodes, ctx) => {
6
+ if (field.schema["x-clicky-component"] !== "profile-query-builder") {
7
+ return nodes;
8
+ }
9
+ return {
10
+ label: nodes.label,
11
+ value: /* @__PURE__ */ jsxRuntime.jsx(
12
+ profileBuilder.ProfileQueryBuilderField,
13
+ {
14
+ input: nodes.value,
15
+ rootValue: (ctx == null ? void 0 : ctx.rootValue) ?? {},
16
+ onRootChange: ctx == null ? void 0 : ctx.onRootChange
17
+ }
18
+ )
19
+ };
20
+ };
21
+ const profileBuilderFormExtensions = {
22
+ post: [profileQueryBuilderPost]
23
+ };
24
+ exports.profileBuilderFormExtensions = profileBuilderFormExtensions;
25
+ //# sourceMappingURL=profileBuilderExtension.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profileBuilderExtension.cjs","sources":["../../src/profiles/profileBuilderExtension.tsx"],"sourcesContent":["/**\n * The JSON-schema form extension that opens the profile builder for a query\n * field.\n *\n * It lives apart from profileBuilder.tsx because it is not a component, and a\n * module that exports components must export nothing else for Fast Refresh to\n * work (react/only-export-components).\n */\n\nimport type { PostExtension } from \"../components/json-schema-form-types\";\nimport { ProfileQueryBuilderField } from \"./profileBuilder\";\nimport type { ProfileDraft } from \"./profileBuilderWorkspace\";\n\nconst profileQueryBuilderPost: PostExtension = (field, nodes, ctx) => {\n if (field.schema[\"x-clicky-component\"] !== \"profile-query-builder\") {\n return nodes;\n }\n return {\n label: nodes.label,\n value: (\n <ProfileQueryBuilderField\n input={nodes.value}\n rootValue={(ctx?.rootValue ?? {}) as ProfileDraft}\n onRootChange={ctx?.onRootChange}\n />\n ),\n };\n};\n\nexport const profileBuilderFormExtensions = {\n post: [profileQueryBuilderPost],\n};\n"],"names":["jsx","ProfileQueryBuilderField"],"mappings":";;;;AAaA,MAAM,0BAAyC,CAAC,OAAO,OAAO,QAAQ;AACpE,MAAI,MAAM,OAAO,oBAAoB,MAAM,yBAAyB;AAClE,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,OAAO,MAAM;AAAA,IACb,OACEA,2BAAAA;AAAAA,MAACC,eAAAA;AAAAA,MAAA;AAAA,QACC,OAAO,MAAM;AAAA,QACb,YAAY,2BAAK,cAAa,CAAA;AAAA,QAC9B,cAAc,2BAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACrB;AAGN;AAEO,MAAM,+BAA+B;AAAA,EAC1C,MAAM,CAAC,uBAAuB;AAChC;;"}
@@ -0,0 +1,5 @@
1
+ import { PostExtension } from '../components/json-schema-form-types';
2
+ export declare const profileBuilderFormExtensions: {
3
+ post: PostExtension[];
4
+ };
5
+ //# sourceMappingURL=profileBuilderExtension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profileBuilderExtension.d.ts","sourceRoot":"","sources":["../../src/profiles/profileBuilderExtension.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAoB1E,eAAO,MAAM,4BAA4B;;CAExC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { ProfileQueryBuilderField } from "./profileBuilder.js";
3
+ const profileQueryBuilderPost = (field, nodes, ctx) => {
4
+ if (field.schema["x-clicky-component"] !== "profile-query-builder") {
5
+ return nodes;
6
+ }
7
+ return {
8
+ label: nodes.label,
9
+ value: /* @__PURE__ */ jsx(
10
+ ProfileQueryBuilderField,
11
+ {
12
+ input: nodes.value,
13
+ rootValue: (ctx == null ? void 0 : ctx.rootValue) ?? {},
14
+ onRootChange: ctx == null ? void 0 : ctx.onRootChange
15
+ }
16
+ )
17
+ };
18
+ };
19
+ const profileBuilderFormExtensions = {
20
+ post: [profileQueryBuilderPost]
21
+ };
22
+ export {
23
+ profileBuilderFormExtensions
24
+ };
25
+ //# sourceMappingURL=profileBuilderExtension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profileBuilderExtension.js","sources":["../../src/profiles/profileBuilderExtension.tsx"],"sourcesContent":["/**\n * The JSON-schema form extension that opens the profile builder for a query\n * field.\n *\n * It lives apart from profileBuilder.tsx because it is not a component, and a\n * module that exports components must export nothing else for Fast Refresh to\n * work (react/only-export-components).\n */\n\nimport type { PostExtension } from \"../components/json-schema-form-types\";\nimport { ProfileQueryBuilderField } from \"./profileBuilder\";\nimport type { ProfileDraft } from \"./profileBuilderWorkspace\";\n\nconst profileQueryBuilderPost: PostExtension = (field, nodes, ctx) => {\n if (field.schema[\"x-clicky-component\"] !== \"profile-query-builder\") {\n return nodes;\n }\n return {\n label: nodes.label,\n value: (\n <ProfileQueryBuilderField\n input={nodes.value}\n rootValue={(ctx?.rootValue ?? {}) as ProfileDraft}\n onRootChange={ctx?.onRootChange}\n />\n ),\n };\n};\n\nexport const profileBuilderFormExtensions = {\n post: [profileQueryBuilderPost],\n};\n"],"names":[],"mappings":";;AAaA,MAAM,0BAAyC,CAAC,OAAO,OAAO,QAAQ;AACpE,MAAI,MAAM,OAAO,oBAAoB,MAAM,yBAAyB;AAClE,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,OAAO,MAAM;AAAA,IACb,OACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO,MAAM;AAAA,QACb,YAAY,2BAAK,cAAa,CAAA;AAAA,QAC9B,cAAc,2BAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACrB;AAGN;AAEO,MAAM,+BAA+B;AAAA,EAC1C,MAAM,CAAC,uBAAuB;AAChC;"}
@@ -0,0 +1,368 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const JsonSchemaForm = require("../components/JsonSchemaForm.cjs");
5
+ const button = require("../components/button.cjs");
6
+ const Icon = require("../data/Icon.cjs");
7
+ const Modal = require("../overlay/Modal.cjs");
8
+ const reactQuery = require("@tanstack/react-query");
9
+ const react = require("react");
10
+ const connectionBrowserModel = require("./connectionBrowserModel.cjs");
11
+ const connectionQueryWorkspace = require("./connectionQueryWorkspace.cjs");
12
+ const profileColumnPicker = require("./profileColumnPicker.cjs");
13
+ const profileWizardModel = require("./profileWizardModel.cjs");
14
+ const esQueryBuilderForm = require("./esQueryBuilderForm.cjs");
15
+ const profileColumnModel = require("./profileColumnModel.cjs");
16
+ const UiCheck = require("../icons/components/UiCheck.cjs");
17
+ const UiColumns = require("../icons/components/UiColumns.cjs");
18
+ const UiSqlColumn = require("../icons/components/UiSqlColumn.cjs");
19
+ const profileBuilderModalClassName = "h-[calc(100dvh-2rem)] [&>[data-slot=modal-body]]:flex [&>[data-slot=modal-body]]:min-h-0 [&>[data-slot=modal-body]]:overflow-hidden [&>[data-slot=modal-body]>*]:flex-1 [&>[data-slot=modal-body]>*]:h-auto [&>[data-slot=modal-body]>*]:min-h-0";
20
+ function ProfileBuilderWorkspace({
21
+ connectionID,
22
+ rootValue,
23
+ onApply,
24
+ onClose
25
+ }) {
26
+ var _a, _b, _c, _d;
27
+ const baseUrl = connectionBrowserModel.browserBaseUrl(connectionID);
28
+ const descriptor = reactQuery.useQuery({
29
+ queryKey: ["profile-builder-descriptor", connectionID],
30
+ queryFn: () => connectionBrowserModel.fetchJSON(baseUrl),
31
+ retry: 0
32
+ });
33
+ const initialProviderOptions = react.useMemo(
34
+ () => {
35
+ var _a2;
36
+ return { ...(_a2 = rootValue.provider) == null ? void 0 : _a2.options };
37
+ },
38
+ [(_a = rootValue.provider) == null ? void 0 : _a.options]
39
+ );
40
+ const [query, setQuery] = react.useState(rootValue.query ?? "");
41
+ const [search, setSearch] = react.useState(
42
+ () => initialProviderOptions.search
43
+ );
44
+ const [params, setParams] = react.useState(
45
+ () => rootValue.params ?? []
46
+ );
47
+ const [liveOptions, setLiveOptions] = react.useState(
48
+ initialProviderOptions
49
+ );
50
+ const [catalogOptions, setCatalogOptions] = react.useState(
51
+ {}
52
+ );
53
+ const [sampleParams, setSampleParams] = react.useState(
54
+ () => esQueryBuilderForm.defaultParamValues(params)
55
+ );
56
+ const [sampleColumns, setSampleColumns] = react.useState([]);
57
+ const [selectedColumns, setSelectedColumns] = react.useState(
58
+ () => /* @__PURE__ */ new Set()
59
+ );
60
+ const [timestampColumn, setTimestampColumn] = react.useState(
61
+ () => {
62
+ var _a2, _b2;
63
+ return ((_b2 = (_a2 = rootValue.columns) == null ? void 0 : _a2.find((column) => column.kind === "timestamp")) == null ? void 0 : _b2.name) ?? "";
64
+ }
65
+ );
66
+ const [selectedDatabase, setSelectedDatabase] = react.useState("");
67
+ const [limits, setLimits] = react.useState(
68
+ () => rootValue.limits
69
+ );
70
+ react.useEffect(() => {
71
+ var _a2;
72
+ if (!query && ((_a2 = descriptor.data) == null ? void 0 : _a2.defaultQuery)) {
73
+ setQuery(descriptor.data.defaultQuery);
74
+ }
75
+ }, [(_b = descriptor.data) == null ? void 0 : _b.defaultQuery, query]);
76
+ const explicitTargetKind = liveOptions.targetKind ?? initialProviderOptions.targetKind;
77
+ const inspection = connectionBrowserModel.useInspection({
78
+ cacheKey: "profile-builder-inspection",
79
+ id: connectionID,
80
+ baseUrl,
81
+ enabled: ((_c = descriptor.data) == null ? void 0 : _c.catalog) === true,
82
+ database: selectedDatabase,
83
+ fallbackDatabase: String(initialProviderOptions.database ?? ""),
84
+ target: String(liveOptions.index ?? initialProviderOptions.index ?? ""),
85
+ ...typeof explicitTargetKind === "string" ? { targetKind: explicitTargetKind } : {}
86
+ });
87
+ const browserOptions = react.useMemo(
88
+ () => {
89
+ var _a2;
90
+ return connectionBrowserModel.mergeProviderOptions({
91
+ layers: [
92
+ (_a2 = descriptor.data) == null ? void 0 : _a2.initialOptions,
93
+ initialProviderOptions,
94
+ catalogOptions
95
+ ],
96
+ database: inspection.sqlDatabase,
97
+ keepTargetKind: true
98
+ });
99
+ },
100
+ [
101
+ catalogOptions,
102
+ (_d = descriptor.data) == null ? void 0 : _d.initialOptions,
103
+ initialProviderOptions,
104
+ inspection.sqlDatabase
105
+ ]
106
+ );
107
+ const effectiveOptions = react.useCallback(
108
+ (options) => {
109
+ const merged = connectionBrowserModel.mergeProviderOptions({
110
+ layers: [initialProviderOptions, catalogOptions, options],
111
+ database: inspection.sqlDatabase
112
+ });
113
+ if (search) merged.search = search;
114
+ else delete merged.search;
115
+ return merged;
116
+ },
117
+ [catalogOptions, initialProviderOptions, inspection.sqlDatabase, search]
118
+ );
119
+ const paramSchema = react.useMemo(() => sampleParamSchema(params), [params]);
120
+ const existingColumns = rootValue.columns ?? [];
121
+ const existingNames = react.useMemo(
122
+ () => new Set(existingColumns.map((column) => column.name)),
123
+ [existingColumns]
124
+ );
125
+ const applyDraft = (mode) => {
126
+ const chosen = profileColumnModel.mapTimestampColumn(
127
+ sampleColumns.filter((column) => selectedColumns.has(column.name)),
128
+ timestampColumn
129
+ );
130
+ let columns = existingColumns;
131
+ if (mode === "merge") {
132
+ columns = profileColumnModel.mapTimestampColumn(
133
+ [
134
+ ...existingColumns,
135
+ ...chosen.filter((column) => !existingNames.has(column.name))
136
+ ],
137
+ timestampColumn
138
+ );
139
+ } else if (mode === "replace") {
140
+ if (existingColumns.length > 0 && !window.confirm(
141
+ `Replace ${existingColumns.length} configured column${existingColumns.length === 1 ? "" : "s"}?`
142
+ )) {
143
+ return;
144
+ }
145
+ columns = chosen;
146
+ }
147
+ const next = profileWizardModel.withProfileLimits(
148
+ {
149
+ ...rootValue,
150
+ query,
151
+ params,
152
+ provider: {
153
+ ...rootValue.provider,
154
+ options: effectiveOptions(liveOptions)
155
+ },
156
+ ...mode === "query" ? {} : { columns }
157
+ },
158
+ limits
159
+ );
160
+ onApply(next);
161
+ onClose();
162
+ };
163
+ const footer = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center justify-end gap-2", children: [
164
+ /* @__PURE__ */ jsxRuntime.jsx(button.Button, { type: "button", variant: "ghost", onClick: onClose, children: "Cancel" }),
165
+ /* @__PURE__ */ jsxRuntime.jsxs(
166
+ button.Button,
167
+ {
168
+ type: "button",
169
+ variant: "outline",
170
+ disabled: !query.trim() && !search,
171
+ onClick: () => applyDraft("query"),
172
+ children: [
173
+ /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiCheck.UiCheck, className: "size-4" }),
174
+ "Use query"
175
+ ]
176
+ }
177
+ ),
178
+ /* @__PURE__ */ jsxRuntime.jsxs(
179
+ button.Button,
180
+ {
181
+ type: "button",
182
+ variant: "outline",
183
+ disabled: selectedColumns.size === 0,
184
+ onClick: () => applyDraft("merge"),
185
+ children: [
186
+ /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiColumns.UiColumns, className: "size-4" }),
187
+ "Merge selected"
188
+ ]
189
+ }
190
+ ),
191
+ /* @__PURE__ */ jsxRuntime.jsxs(
192
+ button.Button,
193
+ {
194
+ type: "button",
195
+ disabled: selectedColumns.size === 0,
196
+ onClick: () => applyDraft("replace"),
197
+ children: [
198
+ /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiSqlColumn.UiSqlColumn, className: "size-4" }),
199
+ "Replace columns"
200
+ ]
201
+ }
202
+ )
203
+ ] });
204
+ return /* @__PURE__ */ jsxRuntime.jsx(
205
+ Modal.Modal,
206
+ {
207
+ open: true,
208
+ onClose,
209
+ title: `Build profile from ${connectionID}`,
210
+ size: "full",
211
+ className: profileBuilderModalClassName,
212
+ footer,
213
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full min-h-0 flex-col gap-3", children: [
214
+ Object.keys(paramSchema.properties ?? {}).length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "shrink-0 rounded-md border bg-card px-3 py-2", children: [
215
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 text-xs font-medium text-muted-foreground", children: "Temporary sample parameters (not saved)" }),
216
+ /* @__PURE__ */ jsxRuntime.jsx(
217
+ JsonSchemaForm.JsonSchemaForm,
218
+ {
219
+ schema: paramSchema,
220
+ value: sampleParams,
221
+ onChange: setSampleParams,
222
+ size: "sm",
223
+ inline: true,
224
+ showPreferencesMenu: false,
225
+ persistPreferences: false
226
+ }
227
+ )
228
+ ] }) : null,
229
+ descriptor.isLoading ? /* @__PURE__ */ jsxRuntime.jsx(WorkspaceMessage, { children: "Loading connection browser…" }) : descriptor.isError ? /* @__PURE__ */ jsxRuntime.jsx(WorkspaceMessage, { error: true, children: errorMessage(
230
+ descriptor.error,
231
+ "Unable to load this connection browser"
232
+ ) }) : descriptor.data ? /* @__PURE__ */ jsxRuntime.jsx(
233
+ connectionQueryWorkspace.ConnectionQueryWorkspace,
234
+ {
235
+ id: `profile-builder:${connectionID}`,
236
+ title: "Profile query",
237
+ descriptor: descriptor.data,
238
+ inspection,
239
+ onDatabaseChange: setSelectedDatabase,
240
+ query,
241
+ onQueryChange: setQuery,
242
+ options: browserOptions,
243
+ onOptionsChange: setLiveOptions,
244
+ search,
245
+ onSearchChange: (transition) => {
246
+ setSearch(transition.search);
247
+ setQuery(transition.query);
248
+ },
249
+ ...limits ? { limits } : {},
250
+ onLimitsChange: setLimits,
251
+ params,
252
+ onParamMappingChange: (edit) => {
253
+ setSearch(edit.search);
254
+ setParams(edit.params);
255
+ },
256
+ paramValues: sampleParams,
257
+ paramRoles: esQueryBuilderForm.paramRoles(params),
258
+ compileBaseUrl: baseUrl,
259
+ className: "h-full min-h-0",
260
+ onCatalogSelect: (node) => {
261
+ if (node.query) setQuery(node.query);
262
+ const nextOptions = node.options ?? {};
263
+ setCatalogOptions(nextOptions);
264
+ setLiveOptions({ ...browserOptions, ...nextOptions });
265
+ },
266
+ execute: async (request) => {
267
+ const result = await connectionBrowserModel.fetchJSON(
268
+ "/api/v1/profile/sample",
269
+ {
270
+ method: "POST",
271
+ headers: { "Content-Type": "application/json" },
272
+ body: JSON.stringify({
273
+ profile: {
274
+ ...rootValue,
275
+ params,
276
+ profile: rootValue.profile || "sample",
277
+ query: request.query,
278
+ provider: {
279
+ ...rootValue.provider,
280
+ options: effectiveOptions(request.options)
281
+ }
282
+ },
283
+ params: sampleParams,
284
+ ...request.pagination ? { pagination: request.pagination } : {},
285
+ ...request.debug ? { debug: true } : {}
286
+ })
287
+ }
288
+ );
289
+ setSampleColumns(result.columns ?? []);
290
+ setSelectedColumns(
291
+ new Set((result.columns ?? []).map((column) => column.name))
292
+ );
293
+ return result;
294
+ },
295
+ renderResults: ({ defaultView }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-h-0 flex-1 flex-col gap-3", children: [
296
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-0 flex-1", children: defaultView }),
297
+ sampleColumns.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
298
+ profileColumnPicker.ColumnPicker,
299
+ {
300
+ columns: sampleColumns,
301
+ selected: selectedColumns,
302
+ existing: existingNames,
303
+ onChange: setSelectedColumns,
304
+ timestampColumn,
305
+ onTimestampColumnChange: setTimestampColumn
306
+ }
307
+ ) : null
308
+ ] })
309
+ }
310
+ ) : /* @__PURE__ */ jsxRuntime.jsx(WorkspaceMessage, { children: "This saved connection does not expose a query browser." })
311
+ ] })
312
+ }
313
+ );
314
+ }
315
+ function WorkspaceMessage({
316
+ children,
317
+ error = false
318
+ }) {
319
+ return /* @__PURE__ */ jsxRuntime.jsx(
320
+ "div",
321
+ {
322
+ className: `grid min-h-80 flex-1 place-items-center rounded-md border border-dashed p-6 text-sm ${error ? "border-destructive/40 text-destructive" : "text-muted-foreground"}`,
323
+ children
324
+ }
325
+ );
326
+ }
327
+ function sampleParamSchema(params) {
328
+ var _a, _b;
329
+ const properties = {};
330
+ const required = [];
331
+ for (const param of params) {
332
+ const name = (_a = param.name) == null ? void 0 : _a.trim();
333
+ if (!name) continue;
334
+ const property = {
335
+ title: param.label || name,
336
+ ...param.description ? { description: param.description } : {},
337
+ ...param.default !== void 0 ? { default: param.default } : {}
338
+ };
339
+ switch (param.type) {
340
+ case "number":
341
+ property.type = "number";
342
+ break;
343
+ case "boolean":
344
+ property.type = "boolean";
345
+ break;
346
+ case "date":
347
+ property.type = "string";
348
+ property.format = "date-time";
349
+ break;
350
+ default:
351
+ property.type = "string";
352
+ }
353
+ if ((_b = param.options) == null ? void 0 : _b.length) property.enum = param.options;
354
+ properties[name] = property;
355
+ if (param.required) required.push(name);
356
+ }
357
+ return {
358
+ type: "object",
359
+ properties,
360
+ ...required.length ? { required } : {}
361
+ };
362
+ }
363
+ function errorMessage(error, fallback) {
364
+ return error instanceof Error && error.message.trim() ? error.message.trim() : fallback;
365
+ }
366
+ exports.ProfileBuilderWorkspace = ProfileBuilderWorkspace;
367
+ exports.profileBuilderModalClassName = profileBuilderModalClassName;
368
+ //# sourceMappingURL=profileBuilderWorkspace.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profileBuilderWorkspace.cjs","sources":["../../src/profiles/profileBuilderWorkspace.tsx"],"sourcesContent":["import { JsonSchemaForm } from \"../components/JsonSchemaForm\";\nimport { Button } from \"../components/button\";\nimport type { JsonSchemaObject, JsonSchemaProperty } from \"../components/json-schema-form-types\";\nimport { Icon } from \"../data/Icon\";\nimport type { QueryBrowserResult } from \"../data/query-browser/QueryBrowser.types\";\nimport { Modal } from \"../overlay/Modal\";\nimport { UiCheck, UiColumns, UiSqlColumn } from \"../icons\";\nimport { useQuery } from \"@tanstack/react-query\";\nimport { useCallback, useEffect, useMemo, useState, type ReactNode } from \"react\";\nimport {\n browserBaseUrl,\n fetchJSON,\n mergeProviderOptions,\n useInspection,\n type BrowserDescriptor,\n type ProfileRowLimits,\n} from \"./connectionBrowserModel\";\nimport { ConnectionQueryWorkspace } from \"./connectionQueryWorkspace\";\nimport type { EsSearch } from \"./esQueryBuilderModel\";\nimport {\n ColumnPicker,\n type ProfileColumn,\n} from \"./profileColumnPicker\";\nimport { withProfileLimits, type ParamDraft, type ProfileProvider } from \"./profileWizardModel\";\nimport { defaultParamValues, paramRoles } from \"./esQueryBuilderForm\";\nimport { mapTimestampColumn } from \"./profileColumnModel\";\n\n// Same story as ProfileColumn: one ProfileProvider, defined with the draft\n// model. The copy here had drifted to carry `role`, which the canonical type's\n// index signature already admits.\nexport type { ProfileProvider };\n\nexport type ProfileDraft = Record<string, unknown> & {\n profile?: string;\n query?: string;\n provider?: ProfileProvider;\n params?: ParamDraft[];\n columns?: ProfileColumn[];\n /** The row caps this profile sets for itself; unset ones take their default. */\n limits?: ProfileRowLimits;\n};\n\ntype SampleResult = QueryBrowserResult & {\n columns: ProfileColumn[];\n renderedQuery: string;\n};\n\n// Modal's body is a flex child. It must be allowed to shrink and must not own\n// scrolling, otherwise QueryBrowser's intrinsic minimum height expands the\n// whole workspace and pushes the editor/results below the dialog viewport.\n//\n// These are utilities rather than a stylesheet on purpose: a library CSS asset\n// only reaches a consumer that remembers to import it, whereas Tailwind scans\n// this source and folds the rules into the dist/styles.css every consumer\n// already loads.\nexport const profileBuilderModalClassName =\n \"h-[calc(100dvh-2rem)] [&>[data-slot=modal-body]]:flex [&>[data-slot=modal-body]]:min-h-0 [&>[data-slot=modal-body]]:overflow-hidden [&>[data-slot=modal-body]>*]:flex-1 [&>[data-slot=modal-body]>*]:h-auto [&>[data-slot=modal-body]>*]:min-h-0\";\n\nexport function ProfileBuilderWorkspace({\n connectionID,\n rootValue,\n onApply,\n onClose,\n}: {\n connectionID: string;\n rootValue: ProfileDraft;\n onApply: (next: Record<string, unknown>) => void;\n onClose: () => void;\n}) {\n const baseUrl = browserBaseUrl(connectionID);\n const descriptor = useQuery({\n queryKey: [\"profile-builder-descriptor\", connectionID],\n queryFn: () => fetchJSON<BrowserDescriptor>(baseUrl),\n retry: 0,\n });\n const initialProviderOptions = useMemo(\n () => ({ ...rootValue.provider?.options }),\n [rootValue.provider?.options],\n );\n const [query, setQuery] = useState(rootValue.query ?? \"\");\n const [search, setSearch] = useState<EsSearch | undefined>(\n () => initialProviderOptions.search as EsSearch | undefined,\n );\n const [params, setParams] = useState<ParamDraft[]>(\n () => rootValue.params ?? [],\n );\n const [liveOptions, setLiveOptions] = useState<Record<string, unknown>>(\n initialProviderOptions,\n );\n const [catalogOptions, setCatalogOptions] = useState<Record<string, unknown>>(\n {},\n );\n const [sampleParams, setSampleParams] = useState<Record<string, unknown>>(\n () => defaultParamValues(params),\n );\n const [sampleColumns, setSampleColumns] = useState<ProfileColumn[]>([]);\n const [selectedColumns, setSelectedColumns] = useState<Set<string>>(\n () => new Set(),\n );\n const [timestampColumn, setTimestampColumn] = useState(\n () =>\n rootValue.columns?.find((column) => column.kind === \"timestamp\")?.name ??\n \"\",\n );\n const [selectedDatabase, setSelectedDatabase] = useState(\"\");\n const [limits, setLimits] = useState<ProfileRowLimits | undefined>(\n () => rootValue.limits,\n );\n\n useEffect(() => {\n if (!query && descriptor.data?.defaultQuery) {\n setQuery(descriptor.data.defaultQuery);\n }\n }, [descriptor.data?.defaultQuery, query]);\n\n const explicitTargetKind =\n liveOptions.targetKind ?? initialProviderOptions.targetKind;\n const inspection = useInspection({\n cacheKey: \"profile-builder-inspection\",\n id: connectionID,\n baseUrl,\n enabled: descriptor.data?.catalog === true,\n database: selectedDatabase,\n fallbackDatabase: String(initialProviderOptions.database ?? \"\"),\n target: String(liveOptions.index ?? initialProviderOptions.index ?? \"\"),\n ...(typeof explicitTargetKind === \"string\"\n ? { targetKind: explicitTargetKind }\n : {}),\n });\n const browserOptions = useMemo(\n () =>\n mergeProviderOptions({\n layers: [\n descriptor.data?.initialOptions,\n initialProviderOptions,\n catalogOptions,\n ],\n database: inspection.sqlDatabase,\n keepTargetKind: true,\n }),\n [\n catalogOptions,\n descriptor.data?.initialOptions,\n initialProviderOptions,\n inspection.sqlDatabase,\n ],\n );\n // The specification is authored here, not merged from a layer, so it is\n // stamped on last — including its absence, which a lower layer would\n // otherwise reinstate after the author switched back to raw DSL.\n const effectiveOptions = useCallback(\n (options: Record<string, unknown>) => {\n const merged = mergeProviderOptions({\n layers: [initialProviderOptions, catalogOptions, options],\n database: inspection.sqlDatabase,\n });\n if (search) merged.search = search;\n else delete merged.search;\n return merged;\n },\n [catalogOptions, initialProviderOptions, inspection.sqlDatabase, search],\n );\n\n const paramSchema = useMemo(() => sampleParamSchema(params), [params]);\n const existingColumns = rootValue.columns ?? [];\n const existingNames = useMemo(\n () => new Set(existingColumns.map((column) => column.name)),\n [existingColumns],\n );\n\n const applyDraft = (mode: \"query\" | \"merge\" | \"replace\") => {\n const chosen = mapTimestampColumn(\n sampleColumns.filter((column) => selectedColumns.has(column.name)),\n timestampColumn,\n );\n let columns = existingColumns;\n if (mode === \"merge\") {\n columns = mapTimestampColumn(\n [\n ...existingColumns,\n ...chosen.filter((column) => !existingNames.has(column.name)),\n ],\n timestampColumn,\n );\n } else if (mode === \"replace\") {\n if (\n existingColumns.length > 0 &&\n !window.confirm(\n `Replace ${existingColumns.length} configured column${existingColumns.length === 1 ? \"\" : \"s\"}?`,\n )\n ) {\n return;\n }\n columns = chosen;\n }\n const next: ProfileDraft = withProfileLimits(\n {\n ...rootValue,\n query,\n params,\n provider: {\n ...rootValue.provider,\n options: effectiveOptions(liveOptions),\n },\n ...(mode === \"query\" ? {} : { columns }),\n },\n limits,\n );\n onApply(next);\n onClose();\n };\n\n const footer = (\n <div className=\"flex flex-wrap items-center justify-end gap-2\">\n <Button type=\"button\" variant=\"ghost\" onClick={onClose}>\n Cancel\n </Button>\n <Button\n type=\"button\"\n variant=\"outline\"\n disabled={!query.trim() && !search}\n onClick={() => applyDraft(\"query\")}\n >\n <Icon icon={UiCheck} className=\"size-4\" />\n Use query\n </Button>\n <Button\n type=\"button\"\n variant=\"outline\"\n disabled={selectedColumns.size === 0}\n onClick={() => applyDraft(\"merge\")}\n >\n <Icon icon={UiColumns} className=\"size-4\" />\n Merge selected\n </Button>\n <Button\n type=\"button\"\n disabled={selectedColumns.size === 0}\n onClick={() => applyDraft(\"replace\")}\n >\n <Icon icon={UiSqlColumn} className=\"size-4\" />\n Replace columns\n </Button>\n </div>\n );\n\n return (\n <Modal\n open\n onClose={onClose}\n title={`Build profile from ${connectionID}`}\n size=\"full\"\n className={profileBuilderModalClassName}\n footer={footer}\n >\n <div className=\"flex h-full min-h-0 flex-col gap-3\">\n {Object.keys(paramSchema.properties ?? {}).length > 0 ? (\n <div className=\"shrink-0 rounded-md border bg-card px-3 py-2\">\n <div className=\"mb-2 text-xs font-medium text-muted-foreground\">\n Temporary sample parameters (not saved)\n </div>\n <JsonSchemaForm\n schema={paramSchema}\n value={sampleParams}\n onChange={setSampleParams}\n size=\"sm\"\n inline\n showPreferencesMenu={false}\n persistPreferences={false}\n />\n </div>\n ) : null}\n {descriptor.isLoading ? (\n <WorkspaceMessage>Loading connection browser…</WorkspaceMessage>\n ) : descriptor.isError ? (\n <WorkspaceMessage error>\n {errorMessage(\n descriptor.error,\n \"Unable to load this connection browser\",\n )}\n </WorkspaceMessage>\n ) : descriptor.data ? (\n <ConnectionQueryWorkspace\n id={`profile-builder:${connectionID}`}\n title=\"Profile query\"\n descriptor={descriptor.data}\n inspection={inspection}\n onDatabaseChange={setSelectedDatabase}\n query={query}\n onQueryChange={setQuery}\n options={browserOptions}\n onOptionsChange={setLiveOptions}\n search={search}\n onSearchChange={(transition) => {\n setSearch(transition.search);\n setQuery(transition.query);\n }}\n {...(limits ? { limits } : {})}\n onLimitsChange={setLimits}\n params={params}\n onParamMappingChange={(edit) => {\n setSearch(edit.search);\n setParams(edit.params);\n }}\n paramValues={sampleParams}\n paramRoles={paramRoles(params)}\n compileBaseUrl={baseUrl}\n className=\"h-full min-h-0\"\n onCatalogSelect={(node) => {\n if (node.query) setQuery(node.query);\n const nextOptions = node.options ?? {};\n setCatalogOptions(nextOptions);\n setLiveOptions({ ...browserOptions, ...nextOptions });\n }}\n execute={async (request) => {\n const result = await fetchJSON<SampleResult>(\n \"/api/v1/profile/sample\",\n {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({\n profile: {\n ...rootValue,\n params,\n profile: rootValue.profile || \"sample\",\n query: request.query,\n provider: {\n ...rootValue.provider,\n options: effectiveOptions(request.options),\n },\n },\n params: sampleParams,\n ...(request.pagination\n ? { pagination: request.pagination }\n : {}),\n ...(request.debug ? { debug: true } : {}),\n }),\n },\n );\n setSampleColumns(result.columns ?? []);\n setSelectedColumns(\n new Set((result.columns ?? []).map((column) => column.name)),\n );\n return result;\n }}\n renderResults={({ defaultView }) => (\n <div className=\"flex min-h-0 flex-1 flex-col gap-3\">\n <div className=\"min-h-0 flex-1\">{defaultView}</div>\n {sampleColumns.length > 0 ? (\n <ColumnPicker\n columns={sampleColumns}\n selected={selectedColumns}\n existing={existingNames}\n onChange={setSelectedColumns}\n timestampColumn={timestampColumn}\n onTimestampColumnChange={setTimestampColumn}\n />\n ) : null}\n </div>\n )}\n />\n ) : (\n <WorkspaceMessage>\n This saved connection does not expose a query browser.\n </WorkspaceMessage>\n )}\n </div>\n </Modal>\n );\n}\n\nfunction WorkspaceMessage({\n children,\n error = false,\n}: {\n children: ReactNode;\n error?: boolean;\n}) {\n return (\n <div\n className={`grid min-h-80 flex-1 place-items-center rounded-md border border-dashed p-6 text-sm ${error ? \"border-destructive/40 text-destructive\" : \"text-muted-foreground\"}`}\n >\n {children}\n </div>\n );\n}\n\nfunction sampleParamSchema(params: ParamDraft[]): JsonSchemaObject {\n const properties: Record<string, JsonSchemaProperty> = {};\n const required: string[] = [];\n for (const param of params) {\n const name = param.name?.trim();\n if (!name) continue;\n const property: JsonSchemaProperty = {\n title: param.label || name,\n ...(param.description ? { description: param.description } : {}),\n ...(param.default !== undefined ? { default: param.default } : {}),\n };\n switch (param.type) {\n case \"number\":\n property.type = \"number\";\n break;\n case \"boolean\":\n property.type = \"boolean\";\n break;\n case \"date\":\n property.type = \"string\";\n property.format = \"date-time\";\n break;\n default:\n property.type = \"string\";\n }\n if (param.options?.length) property.enum = param.options;\n properties[name] = property;\n if (param.required) required.push(name);\n }\n return {\n type: \"object\",\n properties,\n ...(required.length ? { required } : {}),\n };\n}\n\nfunction errorMessage(error: unknown, fallback: string): string {\n return error instanceof Error && error.message.trim()\n ? error.message.trim()\n : fallback;\n}\n"],"names":["browserBaseUrl","useQuery","fetchJSON","useMemo","_a","useState","defaultParamValues","_b","useEffect","useInspection","mergeProviderOptions","useCallback","mapTimestampColumn","withProfileLimits","jsxs","jsx","Button","Icon","UiCheck","UiColumns","UiSqlColumn","Modal","JsonSchemaForm","ConnectionQueryWorkspace","paramRoles","ColumnPicker"],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { ProfileRowLimits } from './connectionBrowserModel';
2
+ import { ProfileColumn } from './profileColumnPicker';
3
+ import { ParamDraft, ProfileProvider } from './profileWizardModel';
4
+ export type { ProfileProvider };
5
+ export type ProfileDraft = Record<string, unknown> & {
6
+ profile?: string;
7
+ query?: string;
8
+ provider?: ProfileProvider;
9
+ params?: ParamDraft[];
10
+ columns?: ProfileColumn[];
11
+ /** The row caps this profile sets for itself; unset ones take their default. */
12
+ limits?: ProfileRowLimits;
13
+ };
14
+ export declare const profileBuilderModalClassName = "h-[calc(100dvh-2rem)] [&>[data-slot=modal-body]]:flex [&>[data-slot=modal-body]]:min-h-0 [&>[data-slot=modal-body]]:overflow-hidden [&>[data-slot=modal-body]>*]:flex-1 [&>[data-slot=modal-body]>*]:h-auto [&>[data-slot=modal-body]>*]:min-h-0";
15
+ export declare function ProfileBuilderWorkspace({ connectionID, rootValue, onApply, onClose, }: {
16
+ connectionID: string;
17
+ rootValue: ProfileDraft;
18
+ onApply: (next: Record<string, unknown>) => void;
19
+ onClose: () => void;
20
+ }): import("react/jsx-runtime").JSX.Element;
21
+ //# sourceMappingURL=profileBuilderWorkspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profileBuilderWorkspace.d.ts","sourceRoot":"","sources":["../../src/profiles/profileBuilderWorkspace.tsx"],"names":[],"mappings":"AASA,OAAO,EAML,KAAK,gBAAgB,EACtB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAqB,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAOhG,YAAY,EAAE,eAAe,EAAE,CAAC;AAEhC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,gFAAgF;IAChF,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAeF,eAAO,MAAM,4BAA4B,qPAC2M,CAAC;AAErP,wBAAgB,uBAAuB,CAAC,EACtC,YAAY,EACZ,SAAS,EACT,OAAO,EACP,OAAO,GACR,EAAE;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,YAAY,CAAC;IACxB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACjD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,2CA6SA"}