@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,368 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { JsonSchemaForm } from "../components/JsonSchemaForm.js";
3
+ import { Button } from "../components/button.js";
4
+ import { Icon } from "../data/Icon.js";
5
+ import { Modal } from "../overlay/Modal.js";
6
+ import { useQuery } from "@tanstack/react-query";
7
+ import { useMemo, useState, useEffect, useCallback } from "react";
8
+ import { browserBaseUrl, fetchJSON, useInspection, mergeProviderOptions } from "./connectionBrowserModel.js";
9
+ import { ConnectionQueryWorkspace } from "./connectionQueryWorkspace.js";
10
+ import { ColumnPicker } from "./profileColumnPicker.js";
11
+ import { withProfileLimits } from "./profileWizardModel.js";
12
+ import { defaultParamValues, paramRoles } from "./esQueryBuilderForm.js";
13
+ import { mapTimestampColumn } from "./profileColumnModel.js";
14
+ import { UiCheck } from "../icons/components/UiCheck.js";
15
+ import { UiColumns } from "../icons/components/UiColumns.js";
16
+ import { UiSqlColumn } from "../icons/components/UiSqlColumn.js";
17
+ 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";
18
+ function ProfileBuilderWorkspace({
19
+ connectionID,
20
+ rootValue,
21
+ onApply,
22
+ onClose
23
+ }) {
24
+ var _a, _b, _c, _d;
25
+ const baseUrl = browserBaseUrl(connectionID);
26
+ const descriptor = useQuery({
27
+ queryKey: ["profile-builder-descriptor", connectionID],
28
+ queryFn: () => fetchJSON(baseUrl),
29
+ retry: 0
30
+ });
31
+ const initialProviderOptions = useMemo(
32
+ () => {
33
+ var _a2;
34
+ return { ...(_a2 = rootValue.provider) == null ? void 0 : _a2.options };
35
+ },
36
+ [(_a = rootValue.provider) == null ? void 0 : _a.options]
37
+ );
38
+ const [query, setQuery] = useState(rootValue.query ?? "");
39
+ const [search, setSearch] = useState(
40
+ () => initialProviderOptions.search
41
+ );
42
+ const [params, setParams] = useState(
43
+ () => rootValue.params ?? []
44
+ );
45
+ const [liveOptions, setLiveOptions] = useState(
46
+ initialProviderOptions
47
+ );
48
+ const [catalogOptions, setCatalogOptions] = useState(
49
+ {}
50
+ );
51
+ const [sampleParams, setSampleParams] = useState(
52
+ () => defaultParamValues(params)
53
+ );
54
+ const [sampleColumns, setSampleColumns] = useState([]);
55
+ const [selectedColumns, setSelectedColumns] = useState(
56
+ () => /* @__PURE__ */ new Set()
57
+ );
58
+ const [timestampColumn, setTimestampColumn] = useState(
59
+ () => {
60
+ var _a2, _b2;
61
+ return ((_b2 = (_a2 = rootValue.columns) == null ? void 0 : _a2.find((column) => column.kind === "timestamp")) == null ? void 0 : _b2.name) ?? "";
62
+ }
63
+ );
64
+ const [selectedDatabase, setSelectedDatabase] = useState("");
65
+ const [limits, setLimits] = useState(
66
+ () => rootValue.limits
67
+ );
68
+ useEffect(() => {
69
+ var _a2;
70
+ if (!query && ((_a2 = descriptor.data) == null ? void 0 : _a2.defaultQuery)) {
71
+ setQuery(descriptor.data.defaultQuery);
72
+ }
73
+ }, [(_b = descriptor.data) == null ? void 0 : _b.defaultQuery, query]);
74
+ const explicitTargetKind = liveOptions.targetKind ?? initialProviderOptions.targetKind;
75
+ const inspection = useInspection({
76
+ cacheKey: "profile-builder-inspection",
77
+ id: connectionID,
78
+ baseUrl,
79
+ enabled: ((_c = descriptor.data) == null ? void 0 : _c.catalog) === true,
80
+ database: selectedDatabase,
81
+ fallbackDatabase: String(initialProviderOptions.database ?? ""),
82
+ target: String(liveOptions.index ?? initialProviderOptions.index ?? ""),
83
+ ...typeof explicitTargetKind === "string" ? { targetKind: explicitTargetKind } : {}
84
+ });
85
+ const browserOptions = useMemo(
86
+ () => {
87
+ var _a2;
88
+ return mergeProviderOptions({
89
+ layers: [
90
+ (_a2 = descriptor.data) == null ? void 0 : _a2.initialOptions,
91
+ initialProviderOptions,
92
+ catalogOptions
93
+ ],
94
+ database: inspection.sqlDatabase,
95
+ keepTargetKind: true
96
+ });
97
+ },
98
+ [
99
+ catalogOptions,
100
+ (_d = descriptor.data) == null ? void 0 : _d.initialOptions,
101
+ initialProviderOptions,
102
+ inspection.sqlDatabase
103
+ ]
104
+ );
105
+ const effectiveOptions = useCallback(
106
+ (options) => {
107
+ const merged = mergeProviderOptions({
108
+ layers: [initialProviderOptions, catalogOptions, options],
109
+ database: inspection.sqlDatabase
110
+ });
111
+ if (search) merged.search = search;
112
+ else delete merged.search;
113
+ return merged;
114
+ },
115
+ [catalogOptions, initialProviderOptions, inspection.sqlDatabase, search]
116
+ );
117
+ const paramSchema = useMemo(() => sampleParamSchema(params), [params]);
118
+ const existingColumns = rootValue.columns ?? [];
119
+ const existingNames = useMemo(
120
+ () => new Set(existingColumns.map((column) => column.name)),
121
+ [existingColumns]
122
+ );
123
+ const applyDraft = (mode) => {
124
+ const chosen = mapTimestampColumn(
125
+ sampleColumns.filter((column) => selectedColumns.has(column.name)),
126
+ timestampColumn
127
+ );
128
+ let columns = existingColumns;
129
+ if (mode === "merge") {
130
+ columns = mapTimestampColumn(
131
+ [
132
+ ...existingColumns,
133
+ ...chosen.filter((column) => !existingNames.has(column.name))
134
+ ],
135
+ timestampColumn
136
+ );
137
+ } else if (mode === "replace") {
138
+ if (existingColumns.length > 0 && !window.confirm(
139
+ `Replace ${existingColumns.length} configured column${existingColumns.length === 1 ? "" : "s"}?`
140
+ )) {
141
+ return;
142
+ }
143
+ columns = chosen;
144
+ }
145
+ const next = withProfileLimits(
146
+ {
147
+ ...rootValue,
148
+ query,
149
+ params,
150
+ provider: {
151
+ ...rootValue.provider,
152
+ options: effectiveOptions(liveOptions)
153
+ },
154
+ ...mode === "query" ? {} : { columns }
155
+ },
156
+ limits
157
+ );
158
+ onApply(next);
159
+ onClose();
160
+ };
161
+ const footer = /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-end gap-2", children: [
162
+ /* @__PURE__ */ jsx(Button, { type: "button", variant: "ghost", onClick: onClose, children: "Cancel" }),
163
+ /* @__PURE__ */ jsxs(
164
+ Button,
165
+ {
166
+ type: "button",
167
+ variant: "outline",
168
+ disabled: !query.trim() && !search,
169
+ onClick: () => applyDraft("query"),
170
+ children: [
171
+ /* @__PURE__ */ jsx(Icon, { icon: UiCheck, className: "size-4" }),
172
+ "Use query"
173
+ ]
174
+ }
175
+ ),
176
+ /* @__PURE__ */ jsxs(
177
+ Button,
178
+ {
179
+ type: "button",
180
+ variant: "outline",
181
+ disabled: selectedColumns.size === 0,
182
+ onClick: () => applyDraft("merge"),
183
+ children: [
184
+ /* @__PURE__ */ jsx(Icon, { icon: UiColumns, className: "size-4" }),
185
+ "Merge selected"
186
+ ]
187
+ }
188
+ ),
189
+ /* @__PURE__ */ jsxs(
190
+ Button,
191
+ {
192
+ type: "button",
193
+ disabled: selectedColumns.size === 0,
194
+ onClick: () => applyDraft("replace"),
195
+ children: [
196
+ /* @__PURE__ */ jsx(Icon, { icon: UiSqlColumn, className: "size-4" }),
197
+ "Replace columns"
198
+ ]
199
+ }
200
+ )
201
+ ] });
202
+ return /* @__PURE__ */ jsx(
203
+ Modal,
204
+ {
205
+ open: true,
206
+ onClose,
207
+ title: `Build profile from ${connectionID}`,
208
+ size: "full",
209
+ className: profileBuilderModalClassName,
210
+ footer,
211
+ children: /* @__PURE__ */ jsxs("div", { className: "flex h-full min-h-0 flex-col gap-3", children: [
212
+ Object.keys(paramSchema.properties ?? {}).length > 0 ? /* @__PURE__ */ jsxs("div", { className: "shrink-0 rounded-md border bg-card px-3 py-2", children: [
213
+ /* @__PURE__ */ jsx("div", { className: "mb-2 text-xs font-medium text-muted-foreground", children: "Temporary sample parameters (not saved)" }),
214
+ /* @__PURE__ */ jsx(
215
+ JsonSchemaForm,
216
+ {
217
+ schema: paramSchema,
218
+ value: sampleParams,
219
+ onChange: setSampleParams,
220
+ size: "sm",
221
+ inline: true,
222
+ showPreferencesMenu: false,
223
+ persistPreferences: false
224
+ }
225
+ )
226
+ ] }) : null,
227
+ descriptor.isLoading ? /* @__PURE__ */ jsx(WorkspaceMessage, { children: "Loading connection browser…" }) : descriptor.isError ? /* @__PURE__ */ jsx(WorkspaceMessage, { error: true, children: errorMessage(
228
+ descriptor.error,
229
+ "Unable to load this connection browser"
230
+ ) }) : descriptor.data ? /* @__PURE__ */ jsx(
231
+ ConnectionQueryWorkspace,
232
+ {
233
+ id: `profile-builder:${connectionID}`,
234
+ title: "Profile query",
235
+ descriptor: descriptor.data,
236
+ inspection,
237
+ onDatabaseChange: setSelectedDatabase,
238
+ query,
239
+ onQueryChange: setQuery,
240
+ options: browserOptions,
241
+ onOptionsChange: setLiveOptions,
242
+ search,
243
+ onSearchChange: (transition) => {
244
+ setSearch(transition.search);
245
+ setQuery(transition.query);
246
+ },
247
+ ...limits ? { limits } : {},
248
+ onLimitsChange: setLimits,
249
+ params,
250
+ onParamMappingChange: (edit) => {
251
+ setSearch(edit.search);
252
+ setParams(edit.params);
253
+ },
254
+ paramValues: sampleParams,
255
+ paramRoles: paramRoles(params),
256
+ compileBaseUrl: baseUrl,
257
+ className: "h-full min-h-0",
258
+ onCatalogSelect: (node) => {
259
+ if (node.query) setQuery(node.query);
260
+ const nextOptions = node.options ?? {};
261
+ setCatalogOptions(nextOptions);
262
+ setLiveOptions({ ...browserOptions, ...nextOptions });
263
+ },
264
+ execute: async (request) => {
265
+ const result = await fetchJSON(
266
+ "/api/v1/profile/sample",
267
+ {
268
+ method: "POST",
269
+ headers: { "Content-Type": "application/json" },
270
+ body: JSON.stringify({
271
+ profile: {
272
+ ...rootValue,
273
+ params,
274
+ profile: rootValue.profile || "sample",
275
+ query: request.query,
276
+ provider: {
277
+ ...rootValue.provider,
278
+ options: effectiveOptions(request.options)
279
+ }
280
+ },
281
+ params: sampleParams,
282
+ ...request.pagination ? { pagination: request.pagination } : {},
283
+ ...request.debug ? { debug: true } : {}
284
+ })
285
+ }
286
+ );
287
+ setSampleColumns(result.columns ?? []);
288
+ setSelectedColumns(
289
+ new Set((result.columns ?? []).map((column) => column.name))
290
+ );
291
+ return result;
292
+ },
293
+ renderResults: ({ defaultView }) => /* @__PURE__ */ jsxs("div", { className: "flex min-h-0 flex-1 flex-col gap-3", children: [
294
+ /* @__PURE__ */ jsx("div", { className: "min-h-0 flex-1", children: defaultView }),
295
+ sampleColumns.length > 0 ? /* @__PURE__ */ jsx(
296
+ ColumnPicker,
297
+ {
298
+ columns: sampleColumns,
299
+ selected: selectedColumns,
300
+ existing: existingNames,
301
+ onChange: setSelectedColumns,
302
+ timestampColumn,
303
+ onTimestampColumnChange: setTimestampColumn
304
+ }
305
+ ) : null
306
+ ] })
307
+ }
308
+ ) : /* @__PURE__ */ jsx(WorkspaceMessage, { children: "This saved connection does not expose a query browser." })
309
+ ] })
310
+ }
311
+ );
312
+ }
313
+ function WorkspaceMessage({
314
+ children,
315
+ error = false
316
+ }) {
317
+ return /* @__PURE__ */ jsx(
318
+ "div",
319
+ {
320
+ 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"}`,
321
+ children
322
+ }
323
+ );
324
+ }
325
+ function sampleParamSchema(params) {
326
+ var _a, _b;
327
+ const properties = {};
328
+ const required = [];
329
+ for (const param of params) {
330
+ const name = (_a = param.name) == null ? void 0 : _a.trim();
331
+ if (!name) continue;
332
+ const property = {
333
+ title: param.label || name,
334
+ ...param.description ? { description: param.description } : {},
335
+ ...param.default !== void 0 ? { default: param.default } : {}
336
+ };
337
+ switch (param.type) {
338
+ case "number":
339
+ property.type = "number";
340
+ break;
341
+ case "boolean":
342
+ property.type = "boolean";
343
+ break;
344
+ case "date":
345
+ property.type = "string";
346
+ property.format = "date-time";
347
+ break;
348
+ default:
349
+ property.type = "string";
350
+ }
351
+ if ((_b = param.options) == null ? void 0 : _b.length) property.enum = param.options;
352
+ properties[name] = property;
353
+ if (param.required) required.push(name);
354
+ }
355
+ return {
356
+ type: "object",
357
+ properties,
358
+ ...required.length ? { required } : {}
359
+ };
360
+ }
361
+ function errorMessage(error, fallback) {
362
+ return error instanceof Error && error.message.trim() ? error.message.trim() : fallback;
363
+ }
364
+ export {
365
+ ProfileBuilderWorkspace,
366
+ profileBuilderModalClassName
367
+ };
368
+ //# sourceMappingURL=profileBuilderWorkspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profileBuilderWorkspace.js","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":["_a","_b"],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ function profileColumnTypeLabel(type) {
4
+ return type ? PROFILE_COLUMN_TYPE_LABELS[type] ?? type : "string";
5
+ }
6
+ function mapTimestampColumn(columns, timestampColumn) {
7
+ return columns.map((column) => {
8
+ if (column.name === timestampColumn) {
9
+ return { ...column, type: "datetime", kind: "timestamp" };
10
+ }
11
+ if (column.kind !== "timestamp") return column;
12
+ const { kind: _kind, ...rest } = column;
13
+ return rest;
14
+ });
15
+ }
16
+ const PROFILE_COLUMN_TYPE_LABELS = {
17
+ key_value: "KeyValue{}",
18
+ key_values: "[]KeyValue",
19
+ json: "JSON"
20
+ };
21
+ exports.mapTimestampColumn = mapTimestampColumn;
22
+ exports.profileColumnTypeLabel = profileColumnTypeLabel;
23
+ //# sourceMappingURL=profileColumnModel.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profileColumnModel.cjs","sources":["../../src/profiles/profileColumnModel.ts"],"sourcesContent":["\n// One ProfileColumn, defined where the draft model is. The picker used to keep\n// a narrower copy of the same shape; two definitions of one concept drifted\n// apart unnoticed while they lived in separate modules and only collided once\n// the package exported both.\nimport type { ProfileColumn } from \"./profileWizardModel\";\n\nexport function profileColumnTypeLabel(type?: string) {\n return type ? (PROFILE_COLUMN_TYPE_LABELS[type] ?? type) : \"string\";\n}\n\n/**\n * mapTimestampColumn marks the chosen column as the profile's time range and\n * clears the mark from whichever column previously held it.\n */\nexport function mapTimestampColumn(\n columns: ProfileColumn[],\n timestampColumn: string,\n): ProfileColumn[] {\n return columns.map((column) => {\n if (column.name === timestampColumn) {\n return { ...column, type: \"datetime\", kind: \"timestamp\" };\n }\n if (column.kind !== \"timestamp\") return column;\n const { kind: _kind, ...rest } = column;\n return rest;\n });\n}\n\nconst PROFILE_COLUMN_TYPE_LABELS: Record<string, string> = {\n key_value: \"KeyValue{}\",\n key_values: \"[]KeyValue\",\n json: \"JSON\"\n};\n"],"names":[],"mappings":";;AAOO,SAAS,uBAAuB,MAAe;AACpD,SAAO,OAAQ,2BAA2B,IAAI,KAAK,OAAQ;AAC7D;AAMO,SAAS,mBACd,SACA,iBACiB;AACjB,SAAO,QAAQ,IAAI,CAAC,WAAW;AAC7B,QAAI,OAAO,SAAS,iBAAiB;AACnC,aAAO,EAAE,GAAG,QAAQ,MAAM,YAAY,MAAM,YAAA;AAAA,IAC9C;AACA,QAAI,OAAO,SAAS,YAAa,QAAO;AACxC,UAAM,EAAE,MAAM,OAAO,GAAG,SAAS;AACjC,WAAO;AAAA,EACT,CAAC;AACH;AAEA,MAAM,6BAAqD;AAAA,EACzD,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,MAAM;AACR;;;"}
@@ -0,0 +1,8 @@
1
+ import { ProfileColumn } from './profileWizardModel';
2
+ export declare function profileColumnTypeLabel(type?: string): string;
3
+ /**
4
+ * mapTimestampColumn marks the chosen column as the profile's time range and
5
+ * clears the mark from whichever column previously held it.
6
+ */
7
+ export declare function mapTimestampColumn(columns: ProfileColumn[], timestampColumn: string): ProfileColumn[];
8
+ //# sourceMappingURL=profileColumnModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profileColumnModel.d.ts","sourceRoot":"","sources":["../../src/profiles/profileColumnModel.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,wBAAgB,sBAAsB,CAAC,IAAI,CAAC,EAAE,MAAM,UAEnD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,aAAa,EAAE,EACxB,eAAe,EAAE,MAAM,GACtB,aAAa,EAAE,CASjB"}
@@ -0,0 +1,23 @@
1
+ function profileColumnTypeLabel(type) {
2
+ return type ? PROFILE_COLUMN_TYPE_LABELS[type] ?? type : "string";
3
+ }
4
+ function mapTimestampColumn(columns, timestampColumn) {
5
+ return columns.map((column) => {
6
+ if (column.name === timestampColumn) {
7
+ return { ...column, type: "datetime", kind: "timestamp" };
8
+ }
9
+ if (column.kind !== "timestamp") return column;
10
+ const { kind: _kind, ...rest } = column;
11
+ return rest;
12
+ });
13
+ }
14
+ const PROFILE_COLUMN_TYPE_LABELS = {
15
+ key_value: "KeyValue{}",
16
+ key_values: "[]KeyValue",
17
+ json: "JSON"
18
+ };
19
+ export {
20
+ mapTimestampColumn,
21
+ profileColumnTypeLabel
22
+ };
23
+ //# sourceMappingURL=profileColumnModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profileColumnModel.js","sources":["../../src/profiles/profileColumnModel.ts"],"sourcesContent":["\n// One ProfileColumn, defined where the draft model is. The picker used to keep\n// a narrower copy of the same shape; two definitions of one concept drifted\n// apart unnoticed while they lived in separate modules and only collided once\n// the package exported both.\nimport type { ProfileColumn } from \"./profileWizardModel\";\n\nexport function profileColumnTypeLabel(type?: string) {\n return type ? (PROFILE_COLUMN_TYPE_LABELS[type] ?? type) : \"string\";\n}\n\n/**\n * mapTimestampColumn marks the chosen column as the profile's time range and\n * clears the mark from whichever column previously held it.\n */\nexport function mapTimestampColumn(\n columns: ProfileColumn[],\n timestampColumn: string,\n): ProfileColumn[] {\n return columns.map((column) => {\n if (column.name === timestampColumn) {\n return { ...column, type: \"datetime\", kind: \"timestamp\" };\n }\n if (column.kind !== \"timestamp\") return column;\n const { kind: _kind, ...rest } = column;\n return rest;\n });\n}\n\nconst PROFILE_COLUMN_TYPE_LABELS: Record<string, string> = {\n key_value: \"KeyValue{}\",\n key_values: \"[]KeyValue\",\n json: \"JSON\"\n};\n"],"names":[],"mappings":"AAOO,SAAS,uBAAuB,MAAe;AACpD,SAAO,OAAQ,2BAA2B,IAAI,KAAK,OAAQ;AAC7D;AAMO,SAAS,mBACd,SACA,iBACiB;AACjB,SAAO,QAAQ,IAAI,CAAC,WAAW;AAC7B,QAAI,OAAO,SAAS,iBAAiB;AACnC,aAAO,EAAE,GAAG,QAAQ,MAAM,YAAY,MAAM,YAAA;AAAA,IAC9C;AACA,QAAI,OAAO,SAAS,YAAa,QAAO;AACxC,UAAM,EAAE,MAAM,OAAO,GAAG,SAAS;AACjC,WAAO;AAAA,EACT,CAAC;AACH;AAEA,MAAM,6BAAqD;AAAA,EACzD,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,MAAM;AACR;"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const Icon = require("../data/Icon.cjs");
5
+ const profileColumnModel = require("./profileColumnModel.cjs");
6
+ const UiSqlColumn = require("../icons/components/UiSqlColumn.cjs");
7
+ function ColumnPicker({
8
+ columns,
9
+ selected,
10
+ existing,
11
+ onChange,
12
+ timestampColumn,
13
+ onTimestampColumnChange
14
+ }) {
15
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "shrink-0 rounded-md border bg-card p-3", children: [
16
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center gap-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: [
17
+ /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { icon: UiSqlColumn.UiSqlColumn, className: "size-4" }),
18
+ "Columns from sample"
19
+ ] }),
20
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex max-h-32 flex-wrap gap-2 overflow-auto", children: columns.map((column) => /* @__PURE__ */ jsxRuntime.jsxs(
21
+ "div",
22
+ {
23
+ className: "flex cursor-pointer items-center gap-2 rounded-md border bg-background px-2 py-1.5 text-xs",
24
+ children: [
25
+ /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "flex cursor-pointer items-center gap-2", children: [
26
+ /* @__PURE__ */ jsxRuntime.jsx(
27
+ "input",
28
+ {
29
+ type: "checkbox",
30
+ checked: selected.has(column.name),
31
+ onChange: (event) => {
32
+ const next = new Set(selected);
33
+ if (event.target.checked) next.add(column.name);
34
+ else {
35
+ next.delete(column.name);
36
+ if (timestampColumn === column.name)
37
+ onTimestampColumnChange("");
38
+ }
39
+ onChange(next);
40
+ }
41
+ }
42
+ ),
43
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium", children: column.name }),
44
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-muted-foreground", children: profileColumnModel.profileColumnTypeLabel(column.type) })
45
+ ] }),
46
+ /* @__PURE__ */ jsxRuntime.jsxs("label", { className: "ml-1 flex cursor-pointer items-center gap-1 border-l pl-2 text-muted-foreground", children: [
47
+ /* @__PURE__ */ jsxRuntime.jsx(
48
+ "input",
49
+ {
50
+ type: "radio",
51
+ name: "profile-timestamp-column",
52
+ "aria-label": `Use ${column.name} for time ranges`,
53
+ checked: timestampColumn === column.name,
54
+ disabled: !selected.has(column.name),
55
+ onChange: () => onTimestampColumnChange(column.name)
56
+ }
57
+ ),
58
+ "time range"
59
+ ] }),
60
+ existing.has(column.name) ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "rounded bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground", children: "configured" }) : null
61
+ ]
62
+ },
63
+ column.name
64
+ )) })
65
+ ] });
66
+ }
67
+ exports.ColumnPicker = ColumnPicker;
68
+ //# sourceMappingURL=profileColumnPicker.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profileColumnPicker.cjs","sources":["../../src/profiles/profileColumnPicker.tsx"],"sourcesContent":["import { Icon } from \"../data/Icon\";\nimport { UiSqlColumn } from \"../icons\";\n\n// One ProfileColumn, defined where the draft model is. The picker used to keep\n// a narrower copy of the same shape; two definitions of one concept drifted\n// apart unnoticed while they lived in separate modules and only collided once\n// the package exported both.\nimport type { ProfileColumn } from \"./profileWizardModel\";\nimport { profileColumnTypeLabel } from \"./profileColumnModel\";\nexport type { ProfileColumn };\n\n\nexport function ColumnPicker({\n columns,\n selected,\n existing,\n onChange,\n timestampColumn,\n onTimestampColumnChange,\n}: {\n columns: ProfileColumn[];\n selected: Set<string>;\n existing: Set<string>;\n onChange: (next: Set<string>) => void;\n timestampColumn: string;\n onTimestampColumnChange: (next: string) => void;\n}) {\n return (\n <div className=\"shrink-0 rounded-md border bg-card p-3\">\n <div className=\"mb-2 flex items-center gap-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n <Icon icon={UiSqlColumn} className=\"size-4\" />\n Columns from sample\n </div>\n <div className=\"flex max-h-32 flex-wrap gap-2 overflow-auto\">\n {columns.map((column) => (\n <div\n key={column.name}\n className=\"flex cursor-pointer items-center gap-2 rounded-md border bg-background px-2 py-1.5 text-xs\"\n >\n <label className=\"flex cursor-pointer items-center gap-2\">\n <input\n type=\"checkbox\"\n checked={selected.has(column.name)}\n onChange={(event) => {\n const next = new Set(selected);\n if (event.target.checked) next.add(column.name);\n else {\n next.delete(column.name);\n if (timestampColumn === column.name)\n onTimestampColumnChange(\"\");\n }\n onChange(next);\n }}\n />\n <span className=\"font-medium\">{column.name}</span>\n <span className=\"text-muted-foreground\">\n {profileColumnTypeLabel(column.type)}\n </span>\n </label>\n <label className=\"ml-1 flex cursor-pointer items-center gap-1 border-l pl-2 text-muted-foreground\">\n <input\n type=\"radio\"\n name=\"profile-timestamp-column\"\n aria-label={`Use ${column.name} for time ranges`}\n checked={timestampColumn === column.name}\n disabled={!selected.has(column.name)}\n onChange={() => onTimestampColumnChange(column.name)}\n />\n time range\n </label>\n {existing.has(column.name) ? (\n <span className=\"rounded bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground\">\n configured\n </span>\n ) : null}\n </div>\n ))}\n </div>\n </div>\n );\n}\n\n"],"names":["jsxs","jsx","Icon","UiSqlColumn","profileColumnTypeLabel"],"mappings":";;;;;;AAYO,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAOG;AACD,SACEA,2BAAAA,KAAC,OAAA,EAAI,WAAU,0CACb,UAAA;AAAA,IAAAA,2BAAAA,KAAC,OAAA,EAAI,WAAU,oGACb,UAAA;AAAA,MAAAC,2BAAAA,IAACC,KAAAA,MAAA,EAAK,MAAMC,YAAAA,aAAa,WAAU,UAAS;AAAA,MAAE;AAAA,IAAA,GAEhD;AAAA,mCACC,OAAA,EAAI,WAAU,+CACZ,UAAA,QAAQ,IAAI,CAAC,WACZH,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QAEC,WAAU;AAAA,QAEV,UAAA;AAAA,UAAAA,2BAAAA,KAAC,SAAA,EAAM,WAAU,0CACf,UAAA;AAAA,YAAAC,2BAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,SAAS,SAAS,IAAI,OAAO,IAAI;AAAA,gBACjC,UAAU,CAAC,UAAU;AACnB,wBAAM,OAAO,IAAI,IAAI,QAAQ;AAC7B,sBAAI,MAAM,OAAO,QAAS,MAAK,IAAI,OAAO,IAAI;AAAA,uBACzC;AACH,yBAAK,OAAO,OAAO,IAAI;AACvB,wBAAI,oBAAoB,OAAO;AAC7B,8CAAwB,EAAE;AAAA,kBAC9B;AACA,2BAAS,IAAI;AAAA,gBACf;AAAA,cAAA;AAAA,YAAA;AAAA,YAEFA,2BAAAA,IAAC,QAAA,EAAK,WAAU,eAAe,iBAAO,MAAK;AAAA,2CAC1C,QAAA,EAAK,WAAU,yBACb,UAAAG,mBAAAA,uBAAuB,OAAO,IAAI,EAAA,CACrC;AAAA,UAAA,GACF;AAAA,UACAJ,2BAAAA,KAAC,SAAA,EAAM,WAAU,mFACf,UAAA;AAAA,YAAAC,2BAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,MAAK;AAAA,gBACL,cAAY,OAAO,OAAO,IAAI;AAAA,gBAC9B,SAAS,oBAAoB,OAAO;AAAA,gBACpC,UAAU,CAAC,SAAS,IAAI,OAAO,IAAI;AAAA,gBACnC,UAAU,MAAM,wBAAwB,OAAO,IAAI;AAAA,cAAA;AAAA,YAAA;AAAA,YACnD;AAAA,UAAA,GAEJ;AAAA,UACC,SAAS,IAAI,OAAO,IAAI,mCACtB,QAAA,EAAK,WAAU,oEAAmE,UAAA,aAAA,CAEnF,IACE;AAAA,QAAA;AAAA,MAAA;AAAA,MAtCC,OAAO;AAAA,IAAA,CAwCf,EAAA,CACH;AAAA,EAAA,GACF;AAEJ;;"}
@@ -0,0 +1,11 @@
1
+ import { ProfileColumn } from './profileWizardModel';
2
+ export type { ProfileColumn };
3
+ export declare function ColumnPicker({ columns, selected, existing, onChange, timestampColumn, onTimestampColumnChange, }: {
4
+ columns: ProfileColumn[];
5
+ selected: Set<string>;
6
+ existing: Set<string>;
7
+ onChange: (next: Set<string>) => void;
8
+ timestampColumn: string;
9
+ onTimestampColumnChange: (next: string) => void;
10
+ }): import("react/jsx-runtime").JSX.Element;
11
+ //# sourceMappingURL=profileColumnPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profileColumnPicker.d.ts","sourceRoot":"","sources":["../../src/profiles/profileColumnPicker.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,YAAY,EAAE,aAAa,EAAE,CAAC;AAG9B,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,uBAAuB,GACxB,EAAE;IACD,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACjD,2CAsDA"}
@@ -0,0 +1,68 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { Icon } from "../data/Icon.js";
3
+ import { profileColumnTypeLabel } from "./profileColumnModel.js";
4
+ import { UiSqlColumn } from "../icons/components/UiSqlColumn.js";
5
+ function ColumnPicker({
6
+ columns,
7
+ selected,
8
+ existing,
9
+ onChange,
10
+ timestampColumn,
11
+ onTimestampColumnChange
12
+ }) {
13
+ return /* @__PURE__ */ jsxs("div", { className: "shrink-0 rounded-md border bg-card p-3", children: [
14
+ /* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center gap-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: [
15
+ /* @__PURE__ */ jsx(Icon, { icon: UiSqlColumn, className: "size-4" }),
16
+ "Columns from sample"
17
+ ] }),
18
+ /* @__PURE__ */ jsx("div", { className: "flex max-h-32 flex-wrap gap-2 overflow-auto", children: columns.map((column) => /* @__PURE__ */ jsxs(
19
+ "div",
20
+ {
21
+ className: "flex cursor-pointer items-center gap-2 rounded-md border bg-background px-2 py-1.5 text-xs",
22
+ children: [
23
+ /* @__PURE__ */ jsxs("label", { className: "flex cursor-pointer items-center gap-2", children: [
24
+ /* @__PURE__ */ jsx(
25
+ "input",
26
+ {
27
+ type: "checkbox",
28
+ checked: selected.has(column.name),
29
+ onChange: (event) => {
30
+ const next = new Set(selected);
31
+ if (event.target.checked) next.add(column.name);
32
+ else {
33
+ next.delete(column.name);
34
+ if (timestampColumn === column.name)
35
+ onTimestampColumnChange("");
36
+ }
37
+ onChange(next);
38
+ }
39
+ }
40
+ ),
41
+ /* @__PURE__ */ jsx("span", { className: "font-medium", children: column.name }),
42
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: profileColumnTypeLabel(column.type) })
43
+ ] }),
44
+ /* @__PURE__ */ jsxs("label", { className: "ml-1 flex cursor-pointer items-center gap-1 border-l pl-2 text-muted-foreground", children: [
45
+ /* @__PURE__ */ jsx(
46
+ "input",
47
+ {
48
+ type: "radio",
49
+ name: "profile-timestamp-column",
50
+ "aria-label": `Use ${column.name} for time ranges`,
51
+ checked: timestampColumn === column.name,
52
+ disabled: !selected.has(column.name),
53
+ onChange: () => onTimestampColumnChange(column.name)
54
+ }
55
+ ),
56
+ "time range"
57
+ ] }),
58
+ existing.has(column.name) ? /* @__PURE__ */ jsx("span", { className: "rounded bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground", children: "configured" }) : null
59
+ ]
60
+ },
61
+ column.name
62
+ )) })
63
+ ] });
64
+ }
65
+ export {
66
+ ColumnPicker
67
+ };
68
+ //# sourceMappingURL=profileColumnPicker.js.map