@malloy-publisher/sdk 0.0.34 → 0.0.35

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 (332) hide show
  1. package/README.md +21 -0
  2. package/dist/{RenderedResult-9A74lwfO.cjs → RenderedResult-DphykkT6.cjs} +1 -1
  3. package/dist/client/api.d.ts +18 -0
  4. package/dist/components/ApiErrorDisplay.d.ts +13 -0
  5. package/dist/components/Model/ModelCell.d.ts +1 -6
  6. package/dist/components/Package/Config.d.ts +1 -9
  7. package/dist/components/Package/Connections.d.ts +1 -8
  8. package/dist/components/Package/Databases.d.ts +1 -9
  9. package/dist/components/Package/Models.d.ts +1 -6
  10. package/dist/components/Package/Notebooks.d.ts +2 -7
  11. package/dist/components/Package/Package.d.ts +1 -6
  12. package/dist/components/Package/PackageProvider.d.ts +14 -0
  13. package/dist/components/Package/Schedules.d.ts +1 -9
  14. package/dist/components/Package/index.d.ts +2 -1
  15. package/dist/components/Project/About.d.ts +1 -7
  16. package/dist/components/Project/ConnectionExplorer.d.ts +1 -4
  17. package/dist/components/Project/Packages.d.ts +2 -5
  18. package/dist/components/Project/Project.d.ts +11 -3
  19. package/dist/components/Project/index.d.ts +1 -1
  20. package/dist/components/QueryResult/QueryResult.d.ts +1 -6
  21. package/dist/{index-TNDWxBXR.cjs → index-nKbldp0y.cjs} +598 -598
  22. package/dist/index.cjs.js +1 -1
  23. package/package.json +1 -1
  24. package/src/components/ApiErrorDisplay.tsx +40 -0
  25. package/src/components/Home/Home.tsx +8 -1
  26. package/src/components/Model/Model.tsx +59 -28
  27. package/src/components/Model/ModelCell.tsx +26 -63
  28. package/src/components/Model/NamedQueries.tsx +2 -2
  29. package/src/components/Model/SourcesExplorer.tsx +14 -15
  30. package/src/components/MutableNotebook/ModelPicker.tsx +13 -3
  31. package/src/components/MutableNotebook/MutableCell.tsx +5 -14
  32. package/src/components/MutableNotebook/MutableNotebook.tsx +2 -2
  33. package/src/components/Notebook/Notebook.tsx +48 -24
  34. package/src/components/Package/Config.tsx +10 -18
  35. package/src/components/Package/Connections.tsx +10 -12
  36. package/src/components/Package/Databases.tsx +93 -198
  37. package/src/components/Package/FileTreeView.tsx +21 -4
  38. package/src/components/Package/Models.tsx +21 -31
  39. package/src/components/Package/Notebooks.tsx +22 -32
  40. package/src/components/Package/Package.tsx +31 -89
  41. package/src/components/Package/PackageProvider.tsx +46 -0
  42. package/src/components/Package/Schedules.tsx +10 -19
  43. package/src/components/Package/index.ts +6 -1
  44. package/src/components/Project/About.tsx +7 -15
  45. package/src/components/Project/ConnectionExplorer.tsx +131 -52
  46. package/src/components/Project/Packages.tsx +12 -13
  47. package/src/components/Project/Project.tsx +35 -16
  48. package/src/components/Project/index.ts +1 -1
  49. package/src/components/QueryResult/QueryResult.tsx +12 -15
  50. package/src/components/RenderedResult/ResultContainer.tsx +0 -1
  51. package/dist/RenderedResult-CKEsEevp.js +0 -51
  52. package/dist/abap-BmBUA35e.js +0 -6
  53. package/dist/actionscript-3-zFUbzQa9.js +0 -6
  54. package/dist/ada-CBvPkFpZ.js +0 -6
  55. package/dist/andromeeda-uXNdzNpk.js +0 -4
  56. package/dist/angular-html-0fTdLuKf.js +0 -32
  57. package/dist/angular-ts-wkniW60G.js +0 -21
  58. package/dist/apache-CVNlsSDc.js +0 -6
  59. package/dist/apex-DFk3KRB1.js +0 -6
  60. package/dist/apl-TLDHFJX6.js +0 -16
  61. package/dist/applescript-CYMR_y0g.js +0 -6
  62. package/dist/ara-4QmU5e04.js +0 -6
  63. package/dist/asciidoc-v_1bjgUg.js +0 -6
  64. package/dist/asm-RC0Yh-NZ.js +0 -6
  65. package/dist/astro-Uf8_VxKJ.js +0 -16
  66. package/dist/aurora-x-BwoVEUWZ.js +0 -4
  67. package/dist/awk-gPH8MVMW.js +0 -6
  68. package/dist/ayu-dark-CxPZkpb2.js +0 -4
  69. package/dist/ballerina-kvLnRU_e.js +0 -6
  70. package/dist/bat-BHYy44sT.js +0 -6
  71. package/dist/beancount-D-MADTs_.js +0 -6
  72. package/dist/berry-Ci9U0o4h.js +0 -6
  73. package/dist/bibtex-CX618D15.js +0 -6
  74. package/dist/bicep-iuYiPopT.js +0 -6
  75. package/dist/blade-BtR00Gx0.js +0 -18
  76. package/dist/bsl-BIXPNqL4.js +0 -8
  77. package/dist/c-DASdrs7p.js +0 -6
  78. package/dist/cadence-BDALQi26.js +0 -6
  79. package/dist/cairo-tXZKA2PT.js +0 -8
  80. package/dist/catppuccin-frappe-BrTOiad2.js +0 -4
  81. package/dist/catppuccin-latte-D-dc_R4m.js +0 -4
  82. package/dist/catppuccin-macchiato-DN4jOp0G.js +0 -4
  83. package/dist/catppuccin-mocha-B8yCE3-3.js +0 -4
  84. package/dist/clarity-CNgV2Ths.js +0 -6
  85. package/dist/clojure-CsKKFGwv.js +0 -6
  86. package/dist/cmake-Dr-A3iJx.js +0 -6
  87. package/dist/cobol-DMssKNmC.js +0 -10
  88. package/dist/codeowners-Bt9yU6NX.js +0 -6
  89. package/dist/codeql-DBNTqJi1.js +0 -6
  90. package/dist/coffee-D_GzM8k1.js +0 -8
  91. package/dist/common-lisp-r7ZEOG7T.js +0 -6
  92. package/dist/components/Package/PublisherPackageProvider.d.ts +0 -14
  93. package/dist/components/Project/TablesInSchema.d.ts +0 -10
  94. package/dist/coq-CB6Pv_W9.js +0 -6
  95. package/dist/cpp-CJF2i3ah.js +0 -18
  96. package/dist/crystal-BKWnaU3g.js +0 -18
  97. package/dist/csharp-CYWRhZ2R.js +0 -6
  98. package/dist/css-D1aVdRIU.js +0 -6
  99. package/dist/csv-DvCncUGQ.js +0 -6
  100. package/dist/cue-BXMrmvay.js +0 -6
  101. package/dist/cypher-DTm5zNR1.js +0 -6
  102. package/dist/d-D6ZXmn3l.js +0 -6
  103. package/dist/dark-plus-pUHDTVV0.js +0 -4
  104. package/dist/dart-Dz59Is3F.js +0 -6
  105. package/dist/dax-DTVGzydb.js +0 -6
  106. package/dist/desktop-Db9vb-dl.js +0 -6
  107. package/dist/diff-XmNrvgM1.js +0 -6
  108. package/dist/docker-DWH2onkn.js +0 -6
  109. package/dist/dotenv-4337wvzu.js +0 -6
  110. package/dist/dracula-BtZx2Kac.js +0 -4
  111. package/dist/dracula-soft-BKa-aqBv.js +0 -4
  112. package/dist/dream-maker-CvvfrJSx.js +0 -6
  113. package/dist/edge-CgxR-qhM.js +0 -12
  114. package/dist/elixir-DZkeSPwW.js +0 -8
  115. package/dist/elm-BKuV1HE1.js +0 -8
  116. package/dist/emacs-lisp-BAefI874.js +0 -6
  117. package/dist/erb-BLwkpXUJ.js +0 -10
  118. package/dist/erlang-CmIiwF3I.js +0 -6
  119. package/dist/everforest-dark-DMCBqXCK.js +0 -4
  120. package/dist/everforest-light-BbXl82Em.js +0 -4
  121. package/dist/fennel-DNqkz9pE.js +0 -6
  122. package/dist/fish-DIm72t2T.js +0 -6
  123. package/dist/fluent-BapTxJsC.js +0 -6
  124. package/dist/fortran-fixed-form-s9Hnb3av.js +0 -8
  125. package/dist/fortran-free-form-CNDsBFUj.js +0 -6
  126. package/dist/fsharp-Cv0x43wb.js +0 -8
  127. package/dist/gdresource-CMcKXvgJ.js +0 -10
  128. package/dist/gdscript-D7aheHm-.js +0 -6
  129. package/dist/gdshader-BGJEsM2Z.js +0 -6
  130. package/dist/genie-C9gPjc6J.js +0 -6
  131. package/dist/gherkin-bka1Exbx.js +0 -6
  132. package/dist/git-commit-BspYIY3P.js +0 -8
  133. package/dist/git-rebase--zLBTjUa.js +0 -8
  134. package/dist/github-dark-DenFmJkN.js +0 -4
  135. package/dist/github-dark-default-BJPUVz4H.js +0 -4
  136. package/dist/github-dark-dimmed-DUshB20C.js +0 -4
  137. package/dist/github-dark-high-contrast-D3aGCnF8.js +0 -4
  138. package/dist/github-light-JYsPkUQd.js +0 -4
  139. package/dist/github-light-default-D99KPAby.js +0 -4
  140. package/dist/github-light-high-contrast-BbmZE-Mp.js +0 -4
  141. package/dist/gleam-B4k9YFGD.js +0 -6
  142. package/dist/glimmer-js-DhY9umHJ.js +0 -14
  143. package/dist/glimmer-ts-CCrHcYH5.js +0 -14
  144. package/dist/glsl-XLGYNq5B.js +0 -8
  145. package/dist/gnuplot-DnWoRZt-.js +0 -6
  146. package/dist/go-BErP6iv1.js +0 -6
  147. package/dist/graphql-DWpQF4JI.js +0 -14
  148. package/dist/groovy-IWs5-NIO.js +0 -6
  149. package/dist/hack-CQrV-ytR.js +0 -10
  150. package/dist/haml-CMN0hQaL.js +0 -10
  151. package/dist/handlebars-Cc-7fXX5.js +0 -14
  152. package/dist/haskell-CtlGos0K.js +0 -6
  153. package/dist/haxe-CZZ33vZw.js +0 -6
  154. package/dist/hcl-6hOg9WP4.js +0 -6
  155. package/dist/hjson-CgwED-oz.js +0 -6
  156. package/dist/hlsl-3-lv4gi7.js +0 -6
  157. package/dist/houston-BDYrDoDW.js +0 -4
  158. package/dist/html-B0P_v3yU.js +0 -10
  159. package/dist/html-derivative-D59SHfh8.js +0 -8
  160. package/dist/http-Dcjm_K1m.js +0 -14
  161. package/dist/hxml-BNKImryz.js +0 -8
  162. package/dist/hy-C2xHhR6I.js +0 -6
  163. package/dist/imba-Drd0AMDo.js +0 -8
  164. package/dist/index-DahUc0AC.js +0 -139511
  165. package/dist/index.es.js +0 -19
  166. package/dist/ini-BUcvsX-U.js +0 -6
  167. package/dist/java-B7odJ7Ap.js +0 -6
  168. package/dist/javascript-fa8UlHZE.js +0 -6
  169. package/dist/jinja-CCSYduCH.js +0 -11
  170. package/dist/jison-BygvlveW.js +0 -8
  171. package/dist/json-71t8ZF9g.js +0 -6
  172. package/dist/json5-Z7F6rA6a.js +0 -6
  173. package/dist/jsonc-Dphhs4m2.js +0 -6
  174. package/dist/jsonl-D9jj92Gg.js +0 -6
  175. package/dist/jsonnet-DEQ7IUoJ.js +0 -6
  176. package/dist/jssm-j74e88UX.js +0 -6
  177. package/dist/jsx-Bkesy5tT.js +0 -6
  178. package/dist/julia-CiahampL.js +0 -16
  179. package/dist/kanagawa-dragon-CiKur4Hl.js +0 -4
  180. package/dist/kanagawa-lotus-BKu-smKu.js +0 -4
  181. package/dist/kanagawa-wave-CQwozSzG.js +0 -4
  182. package/dist/kotlin-DCgZY7Ii.js +0 -6
  183. package/dist/kusto-Cw029H-v.js +0 -6
  184. package/dist/laserwave-6a00oqik.js +0 -4
  185. package/dist/latex-LfGCYGw5.js +0 -8
  186. package/dist/lean-CYSet4vs.js +0 -6
  187. package/dist/less-DQA4v-Nm.js +0 -6
  188. package/dist/light-plus-CZuVqSLX.js +0 -4
  189. package/dist/liquid-CvufO3kO.js +0 -14
  190. package/dist/log-D2eRfqDn.js +0 -6
  191. package/dist/logo-QEAtGWZ9.js +0 -6
  192. package/dist/lua-BVfhNLDr.js +0 -8
  193. package/dist/luau-BjYGiqID.js +0 -6
  194. package/dist/make-BjuHP00g.js +0 -6
  195. package/dist/malloy-explorer.css +0 -468
  196. package/dist/markdown-B6guhLWd.js +0 -6
  197. package/dist/marko-CHlMS8w5.js +0 -14
  198. package/dist/material-theme-D6KBX41T.js +0 -4
  199. package/dist/material-theme-darker-CkRroheE.js +0 -4
  200. package/dist/material-theme-lighter-BUBw43Yz.js +0 -4
  201. package/dist/material-theme-ocean-ClGX14Ja.js +0 -4
  202. package/dist/material-theme-palenight-C1RVm8K1.js +0 -4
  203. package/dist/matlab-BpQlIJiw.js +0 -6
  204. package/dist/mdc-4K6B6lHG.js +0 -12
  205. package/dist/mdx-DIoECIFU.js +0 -6
  206. package/dist/mermaid-BZ7WHNIe.js +0 -6
  207. package/dist/min-dark-C7ak0t6c.js +0 -4
  208. package/dist/min-light-CKFxVcPp.js +0 -4
  209. package/dist/mipsasm-DusDYkFc.js +0 -6
  210. package/dist/mojo-CY9jaezJ.js +0 -6
  211. package/dist/monokai-C1KBYcO0.js +0 -4
  212. package/dist/move-ChphFumd.js +0 -6
  213. package/dist/narrat-Dz4d7OmN.js +0 -6
  214. package/dist/nextflow-DW0Yq9a2.js +0 -6
  215. package/dist/nginx-Can2eAjw.js +0 -8
  216. package/dist/night-owl-Bm2rzalh.js +0 -4
  217. package/dist/nim-B3r2RtQZ.js +0 -20
  218. package/dist/nix-Cg5uV_xg.js +0 -6
  219. package/dist/nord-CC5OiUXg.js +0 -4
  220. package/dist/nushell-BfRnzRWn.js +0 -6
  221. package/dist/objective-c-BGg9R27G.js +0 -6
  222. package/dist/objective-cpp-CJ3y3V_5.js +0 -6
  223. package/dist/ocaml-BZLsfx_o.js +0 -6
  224. package/dist/one-dark-pro-D7-kP8fv.js +0 -4
  225. package/dist/one-light-D9sNaUtq.js +0 -4
  226. package/dist/pascal-l2bqd7Dz.js +0 -6
  227. package/dist/perl-DaMQyPwp.js +0 -16
  228. package/dist/php-BL3EfPBi.js +0 -18
  229. package/dist/plastic-CSTz3KZp.js +0 -4
  230. package/dist/plsql-oVq_K_wH.js +0 -6
  231. package/dist/po-5jaeIyVd.js +0 -6
  232. package/dist/poimandres-C-VADXHD.js +0 -4
  233. package/dist/polar-wcLp8ci7.js +0 -6
  234. package/dist/postcss-BZ3MNRIJ.js +0 -6
  235. package/dist/powerquery-CgRa2XRw.js +0 -6
  236. package/dist/powershell-Diwyv8Eh.js +0 -6
  237. package/dist/prisma-COL_v1x4.js +0 -6
  238. package/dist/prolog-CuvJOxqT.js +0 -6
  239. package/dist/proto-o9HLmF90.js +0 -6
  240. package/dist/pug-HKe4Luo3.js +0 -12
  241. package/dist/puppet-wpGOnQp5.js +0 -6
  242. package/dist/purescript-B_1NgE2N.js +0 -6
  243. package/dist/python-xYxLFJY-.js +0 -6
  244. package/dist/qml-FlMIyjU9.js +0 -8
  245. package/dist/qmldir-BInDYbpo.js +0 -6
  246. package/dist/qss-D-h4NdUG.js +0 -6
  247. package/dist/r-F-9I-ITZ.js +0 -6
  248. package/dist/racket-BoD1TBFT.js +0 -6
  249. package/dist/raku-IaYcw19m.js +0 -6
  250. package/dist/razor-CeqqNtyB.js +0 -10
  251. package/dist/red-7y8PH7HH.js +0 -4
  252. package/dist/reg-CMUdAgIP.js +0 -6
  253. package/dist/regexp-GiFkbxS-.js +0 -6
  254. package/dist/rel-BaRn3QX7.js +0 -6
  255. package/dist/riscv-B9V3SsvW.js +0 -6
  256. package/dist/rose-pine-DhT-HZE9.js +0 -4
  257. package/dist/rose-pine-dawn-DiCjL2i4.js +0 -4
  258. package/dist/rose-pine-moon-BNmGHlcn.js +0 -4
  259. package/dist/rst-C3D6-dqL.js +0 -22
  260. package/dist/ruby-DcPLUUK3.js +0 -30
  261. package/dist/rust-Pc7DCsZD.js +0 -6
  262. package/dist/sas-tDSYjXcL.js +0 -8
  263. package/dist/sass-iCyS6eP9.js +0 -6
  264. package/dist/scala-Cly-fENF.js +0 -6
  265. package/dist/scheme-Zi24oEYu.js +0 -6
  266. package/dist/scss-DhHc4lxB.js +0 -8
  267. package/dist/sdbl-BBamrXFL.js +0 -6
  268. package/dist/shaderlab-CvqEIoL0.js +0 -8
  269. package/dist/shellscript-Dn0-btNd.js +0 -6
  270. package/dist/shellsession-8OLo3sB6.js +0 -8
  271. package/dist/slack-dark-i7wN4OET.js +0 -4
  272. package/dist/slack-ochin-ndHf0LoP.js +0 -4
  273. package/dist/smalltalk-Cns31tKw.js +0 -6
  274. package/dist/snazzy-light-BlSJXAu4.js +0 -4
  275. package/dist/solarized-dark-UTmkh7lw.js +0 -4
  276. package/dist/solarized-light-BheCkDPT.js +0 -4
  277. package/dist/solidity-BG_k8fA_.js +0 -6
  278. package/dist/soy-EwHMOVPj.js +0 -8
  279. package/dist/sparql-DhuelBut.js +0 -8
  280. package/dist/splunk-CTqDjQdo.js +0 -6
  281. package/dist/sql-DCkt643-.js +0 -6
  282. package/dist/ssh-config-DHHGll-v.js +0 -6
  283. package/dist/stata-Dok6hMw0.js +0 -8
  284. package/dist/stylus-n_9f0QQ5.js +0 -6
  285. package/dist/svelte-01qw6Rxm.js +0 -14
  286. package/dist/swift-BAWqNR8A.js +0 -6
  287. package/dist/synthwave-84-NU3C_KFZ.js +0 -4
  288. package/dist/system-verilog-Cui-g-ut.js +0 -6
  289. package/dist/systemd-CsKYQIQK.js +0 -6
  290. package/dist/talonscript-D2dGh8FO.js +0 -6
  291. package/dist/tasl-D3W8HMV6.js +0 -6
  292. package/dist/tcl-2y0Fuc4S.js +0 -6
  293. package/dist/templ-Hmy8U0DD.js +0 -12
  294. package/dist/terraform-BGW6Oerf.js +0 -6
  295. package/dist/tex-mHs7a43s.js +0 -8
  296. package/dist/tokyo-night-LhP3hHhi.js +0 -4
  297. package/dist/toml-CQSfOn0e.js +0 -6
  298. package/dist/ts-tags-DYZ4SGcN.js +0 -41
  299. package/dist/tsv-BtvSkaG0.js +0 -6
  300. package/dist/tsx-DiGsgWT8.js +0 -6
  301. package/dist/turtle-BJ2wmjPc.js +0 -6
  302. package/dist/twig-BmytkGQV.js +0 -18
  303. package/dist/typescript-buWNZFwO.js +0 -6
  304. package/dist/typespec-bLbdsxJL.js +0 -6
  305. package/dist/typst-Y9_SmXTs.js +0 -6
  306. package/dist/v-wa8Orrdd.js +0 -6
  307. package/dist/vala-DRdriFr_.js +0 -6
  308. package/dist/vb-E2_-jk4M.js +0 -6
  309. package/dist/vendor-DfRellEl.js +0 -75318
  310. package/dist/verilog-B1iBoR5_.js +0 -6
  311. package/dist/vesper-CJsaOsSM.js +0 -4
  312. package/dist/vhdl-CRVaAhXk.js +0 -6
  313. package/dist/viml-B-zWOd7Z.js +0 -6
  314. package/dist/vitesse-black-BoGvW84i.js +0 -4
  315. package/dist/vitesse-dark-Cym-eLtO.js +0 -4
  316. package/dist/vitesse-light-CcmG315c.js +0 -4
  317. package/dist/vue-Bl1uVNsA.js +0 -31
  318. package/dist/vue-html-DHr5wjBG.js +0 -10
  319. package/dist/vyper-DWutKXpa.js +0 -6
  320. package/dist/wasm-Bv5f0gKv.js +0 -6
  321. package/dist/wasm-DQxwEHae.js +0 -7
  322. package/dist/wenyan-BMYnfus1.js +0 -6
  323. package/dist/wgsl-DnPoPGDU.js +0 -6
  324. package/dist/wikitext-CntM04PE.js +0 -6
  325. package/dist/wolfram-Ws5qPlX9.js +0 -6
  326. package/dist/xml-ChBsf5uy.js +0 -8
  327. package/dist/xsl-BefjlXrd.js +0 -8
  328. package/dist/yaml-Bbg74JKr.js +0 -6
  329. package/dist/zenscript-C0RKE4nU.js +0 -6
  330. package/dist/zig-D6SXBGNm.js +0 -6
  331. package/src/components/Package/PublisherPackageProvider.tsx +0 -48
  332. package/src/components/Project/TablesInSchema.tsx +0 -84
@@ -12,36 +12,33 @@ import {
12
12
  DialogContent,
13
13
  DialogTitle,
14
14
  IconButton,
15
+ Switch,
16
+ FormControlLabel,
15
17
  Table,
16
18
  TableBody,
17
19
  TableCell,
18
20
  TableContainer,
19
21
  TableHead,
20
22
  TableRow,
21
- Switch,
22
- FormControlLabel,
23
23
  } from "@mui/material";
24
24
  import { QueryClient, useQuery } from "@tanstack/react-query";
25
25
  import { ConnectionsApi } from "../../client/api";
26
26
  import { Configuration } from "../../client/configuration";
27
- import TablesInSchema from "./TablesInSchema";
27
+ import { useProject } from "./Project";
28
+ import { ApiErrorDisplay } from "../ApiErrorDisplay";
28
29
 
29
30
  const connectionsApi = new ConnectionsApi(new Configuration());
30
31
  const queryClient = new QueryClient();
31
32
 
32
33
  interface ConnectionExplorerProps {
33
- server?: string;
34
- projectName: string;
35
34
  connectionName: string;
36
- accessToken?: string;
37
35
  }
38
36
 
39
37
  export default function ConnectionExplorer({
40
- server,
41
- projectName,
42
38
  connectionName,
43
- accessToken,
44
39
  }: ConnectionExplorerProps) {
40
+ const { server, projectName, accessToken } = useProject();
41
+
45
42
  const [selectedTable, setSelectedTable] = React.useState<string | undefined>(
46
43
  undefined,
47
44
  );
@@ -61,6 +58,7 @@ export default function ConnectionExplorer({
61
58
  },
62
59
  }),
63
60
  retry: false,
61
+ throwOnError: false,
64
62
  },
65
63
  queryClient,
66
64
  );
@@ -100,9 +98,10 @@ export default function ConnectionExplorer({
100
98
  </Typography>
101
99
  )}
102
100
  {isError && (
103
- <Typography variant="body2" sx={{ p: "10px", m: "auto" }}>
104
- {`${projectName} > ${connectionName} - ${error.message}`}
105
- </Typography>
101
+ <ApiErrorDisplay
102
+ error={error}
103
+ context={`${projectName} > ${connectionName}`}
104
+ />
106
105
  )}
107
106
  {isSuccess && data.data.length === 0 && (
108
107
  <Typography variant="body2">No Schemas</Typography>
@@ -142,11 +141,8 @@ export default function ConnectionExplorer({
142
141
  {selectedSchema && (
143
142
  <Paper sx={{ p: 2 }}>
144
143
  <TablesInSchema
145
- server={server}
146
- projectName={projectName}
147
144
  connectionName={connectionName}
148
145
  schemaName={selectedSchema}
149
- accessToken={accessToken}
150
146
  onTableClick={(tableName) => {
151
147
  setSelectedTable(tableName);
152
148
  }}
@@ -156,12 +152,9 @@ export default function ConnectionExplorer({
156
152
  </Grid>
157
153
  {selectedTable && (
158
154
  <TableViewer
159
- server={server}
160
- projectName={projectName}
161
155
  connectionName={connectionName}
162
156
  schemaName={selectedSchema}
163
157
  tableName={selectedTable}
164
- accessToken={accessToken}
165
158
  onClose={() => setSelectedTable(undefined)}
166
159
  />
167
160
  )}
@@ -170,23 +163,20 @@ export default function ConnectionExplorer({
170
163
  }
171
164
 
172
165
  type TableViewerProps = {
173
- server: string;
174
- projectName: string;
175
166
  connectionName: string;
176
167
  schemaName: string;
177
168
  tableName: string;
178
- accessToken: string;
179
169
  onClose: () => void;
180
170
  };
171
+
181
172
  function TableViewer({
182
- server,
183
- projectName,
184
173
  connectionName,
185
174
  schemaName,
186
175
  tableName,
187
- accessToken,
188
176
  onClose,
189
177
  }: TableViewerProps) {
178
+ const { server, projectName, accessToken } = useProject();
179
+
190
180
  const { data, isSuccess, isError, error, isLoading } = useQuery(
191
181
  {
192
182
  queryKey: [
@@ -212,15 +202,17 @@ function TableViewer({
212
202
  },
213
203
  ),
214
204
  retry: false,
205
+ throwOnError: false,
215
206
  },
216
207
  queryClient,
217
208
  );
209
+
218
210
  if (isSuccess && data) {
219
211
  console.log(data);
220
212
  }
213
+
221
214
  return (
222
- // TODO(jjs) - Add a min height to the dialog, so when it loads the UI is not so jarring.
223
- <Dialog open={true} onClose={onclose} maxWidth="sm" fullWidth>
215
+ <Dialog open={true} onClose={onClose} maxWidth="sm" fullWidth>
224
216
  <DialogTitle>
225
217
  Table: {schemaName}.{tableName}
226
218
  <Typography
@@ -228,7 +220,9 @@ function TableViewer({
228
220
  variant="body2"
229
221
  fontFamily="monospace"
230
222
  component="span"
231
- ></Typography>
223
+ >
224
+ {tableName}
225
+ </Typography>
232
226
  <IconButton
233
227
  aria-label="close"
234
228
  onClick={onClose}
@@ -248,32 +242,117 @@ function TableViewer({
248
242
  </IconButton>
249
243
  </DialogTitle>
250
244
  <DialogContent>
251
- <TableContainer>
252
- <Table
253
- size="small"
254
- sx={{ "& .MuiTableCell-root": { padding: "10px" } }}
255
- >
256
- <TableHead>
257
- <TableRow>
258
- <TableCell>NAME</TableCell>
259
- <TableCell>TYPE</TableCell>
260
- </TableRow>
261
- </TableHead>
262
- <TableBody>
263
- {isSuccess &&
264
- data &&
265
- data.data.columns.map((row) => (
266
- <TableRow key={row.name}>
267
- <TableCell>{row.name}</TableCell>
268
- <TableCell>{row.type}</TableCell>
269
- </TableRow>
270
- ))}
271
- {isLoading && <div>Loading...</div>}
272
- {isError && <div>Error: {error.message}</div>}
273
- </TableBody>
274
- </Table>
275
- </TableContainer>
245
+ {isLoading && (
246
+ <Typography variant="body2" sx={{ p: "20px", m: "auto" }}>
247
+ Fetching Table Details...
248
+ </Typography>
249
+ )}
250
+ {isError && (
251
+ <ApiErrorDisplay
252
+ error={error}
253
+ context={`${projectName} > ${connectionName} > ${schemaName}.${tableName}`}
254
+ />
255
+ )}
256
+ {isSuccess && data && (
257
+ <TableContainer>
258
+ <Table
259
+ size="small"
260
+ sx={{ "& .MuiTableCell-root": { padding: "10px" } }}
261
+ >
262
+ <TableHead>
263
+ <TableRow>
264
+ <TableCell>NAME</TableCell>
265
+ <TableCell>TYPE</TableCell>
266
+ </TableRow>
267
+ </TableHead>
268
+ <TableBody>
269
+ {data.data.columns?.map(
270
+ (column: { name: string; type: string }) => (
271
+ <TableRow key={column.name}>
272
+ <TableCell>{column.name}</TableCell>
273
+ <TableCell>{column.type}</TableCell>
274
+ </TableRow>
275
+ ),
276
+ )}
277
+ </TableBody>
278
+ </Table>
279
+ </TableContainer>
280
+ )}
276
281
  </DialogContent>
277
282
  </Dialog>
278
283
  );
279
284
  }
285
+
286
+ interface TablesInSchemaProps {
287
+ connectionName: string;
288
+ schemaName: string;
289
+ onTableClick: (tableName: string) => void;
290
+ }
291
+
292
+ function TablesInSchema({
293
+ connectionName,
294
+ schemaName,
295
+ onTableClick,
296
+ }: TablesInSchemaProps) {
297
+ const { server, projectName, accessToken } = useProject();
298
+
299
+ const { data, isSuccess, isError, error, isLoading } = useQuery(
300
+ {
301
+ queryKey: [
302
+ "tablesInSchema",
303
+ server,
304
+ projectName,
305
+ connectionName,
306
+ schemaName,
307
+ ],
308
+ queryFn: () =>
309
+ connectionsApi.listTables(projectName, connectionName, schemaName, {
310
+ baseURL: server,
311
+ withCredentials: !accessToken,
312
+ headers: {
313
+ Authorization: accessToken && `Bearer ${accessToken}`,
314
+ },
315
+ }),
316
+ retry: false,
317
+ throwOnError: false,
318
+ },
319
+ queryClient,
320
+ );
321
+
322
+ return (
323
+ <>
324
+ <Typography variant="overline" fontWeight="bold">
325
+ Tables in {schemaName}
326
+ </Typography>
327
+ <Divider />
328
+ <Box sx={{ mt: "10px", maxHeight: "600px", overflowY: "auto" }}>
329
+ {isLoading && (
330
+ <Typography variant="body2" sx={{ p: "20px", m: "auto" }}>
331
+ Fetching Tables...
332
+ </Typography>
333
+ )}
334
+ {isError && (
335
+ <ApiErrorDisplay
336
+ error={error}
337
+ context={`${projectName} > ${connectionName} > ${schemaName}`}
338
+ />
339
+ )}
340
+ {isSuccess && data.data.length === 0 && (
341
+ <Typography variant="body2">No Tables</Typography>
342
+ )}
343
+ {isSuccess && data.data.length > 0 && (
344
+ <List dense disablePadding>
345
+ {data.data.map((tableName: string) => (
346
+ <ListItemButton
347
+ key={tableName}
348
+ onClick={() => onTableClick(tableName)}
349
+ >
350
+ <ListItemText primary={tableName} />
351
+ </ListItemButton>
352
+ ))}
353
+ </List>
354
+ )}
355
+ </Box>
356
+ </>
357
+ );
358
+ }
@@ -2,23 +2,19 @@ import { Box, Divider, Grid, Typography } from "@mui/material";
2
2
  import { Configuration, PackagesApi } from "../../client";
3
3
  import { StyledCard, StyledCardContent, StyledCardMedia } from "../styles";
4
4
  import { QueryClient, useQuery } from "@tanstack/react-query";
5
+ import { useProject } from "./Project";
6
+ import { ApiErrorDisplay } from "../ApiErrorDisplay";
5
7
 
6
8
  const packagesApi = new PackagesApi(new Configuration());
7
9
  const queryClient = new QueryClient();
8
10
 
9
- interface ProjectProps {
10
- server?: string;
11
- projectName: string;
11
+ interface PackagesProps {
12
12
  navigate: (to: string, event?: React.MouseEvent) => void;
13
- accessToken?: string;
14
13
  }
15
14
 
16
- export default function Project({
17
- server,
18
- projectName,
19
- navigate,
20
- accessToken,
21
- }: ProjectProps) {
15
+ export default function Packages({ navigate }: PackagesProps) {
16
+ const { server, projectName, accessToken } = useProject();
17
+
22
18
  const { data, isSuccess, isError, error } = useQuery(
23
19
  {
24
20
  queryKey: ["packages", server, projectName],
@@ -30,6 +26,8 @@ export default function Project({
30
26
  Authorization: accessToken && `Bearer ${accessToken}`,
31
27
  },
32
28
  }),
29
+ retry: false,
30
+ throwOnError: false,
33
31
  },
34
32
  queryClient,
35
33
  );
@@ -100,9 +98,10 @@ export default function Project({
100
98
  </StyledCard>
101
99
  )}
102
100
  {isError && (
103
- <Typography variant="body2" sx={{ p: "10px", m: "auto" }}>
104
- {error.message}
105
- </Typography>
101
+ <ApiErrorDisplay
102
+ error={error}
103
+ context={`${projectName} > Packages`}
104
+ />
106
105
  )}
107
106
  </>
108
107
  );
@@ -1,20 +1,48 @@
1
1
  import { Grid } from "@mui/material";
2
2
  import About from "./About";
3
3
  import Packages from "./Packages";
4
+ import { createContext, useContext, ReactNode } from "react";
4
5
 
5
- interface ProjectProps {
6
+ export interface ProjectContextProps {
6
7
  server?: string;
7
8
  projectName: string;
8
- navigate: (to: string, event?: React.MouseEvent) => void;
9
9
  accessToken?: string;
10
10
  }
11
11
 
12
- export default function Project({
12
+ const ProjectContext = createContext<ProjectContextProps | undefined>(
13
+ undefined,
14
+ );
15
+
16
+ interface ProjectProviderProps extends ProjectContextProps {
17
+ children: ReactNode;
18
+ }
19
+
20
+ export const ProjectProvider = ({
13
21
  server,
14
22
  projectName,
15
- navigate,
16
23
  accessToken,
17
- }: ProjectProps) {
24
+ children,
25
+ }: ProjectProviderProps) => {
26
+ return (
27
+ <ProjectContext.Provider value={{ server, projectName, accessToken }}>
28
+ {children}
29
+ </ProjectContext.Provider>
30
+ );
31
+ };
32
+
33
+ export function useProject() {
34
+ const context = useContext(ProjectContext);
35
+ if (!context) {
36
+ throw new Error("useProject must be used within a ProjectProvider");
37
+ }
38
+ return context;
39
+ }
40
+
41
+ interface ProjectProps {
42
+ navigate: (to: string, event?: React.MouseEvent) => void;
43
+ }
44
+
45
+ export default function Project({ navigate }: ProjectProps) {
18
46
  return (
19
47
  <Grid
20
48
  container
@@ -23,19 +51,10 @@ export default function Project({
23
51
  sx={{ mb: (theme) => theme.spacing(2) }}
24
52
  >
25
53
  <Grid size={{ xs: 12, md: 12 }}>
26
- <Packages
27
- server={server}
28
- projectName={projectName}
29
- navigate={navigate}
30
- accessToken={accessToken}
31
- />
54
+ <Packages navigate={navigate} />
32
55
  </Grid>
33
56
  <Grid size={{ xs: 12, md: 12 }}>
34
- <About
35
- server={server}
36
- projectName={projectName}
37
- accessToken={accessToken}
38
- />
57
+ <About />
39
58
  </Grid>
40
59
  </Grid>
41
60
  );
@@ -1 +1 @@
1
- export { default as Project } from "./Project";
1
+ export { default as Project, ProjectProvider, useProject } from "./Project";
@@ -3,6 +3,8 @@ import { Configuration, QueryresultsApi } from "../../client";
3
3
  import axios from "axios";
4
4
  import { Typography } from "@mui/material";
5
5
  import { QueryClient, useQuery } from "@tanstack/react-query";
6
+ import { usePackage } from "../Package/PackageProvider";
7
+ import { ApiErrorDisplay } from "../ApiErrorDisplay";
6
8
 
7
9
  const RenderedResult = lazy(() => import("../RenderedResult/RenderedResult"));
8
10
 
@@ -11,28 +13,21 @@ const queryResultsApi = new QueryresultsApi(new Configuration());
11
13
  const queryClient = new QueryClient();
12
14
 
13
15
  interface QueryResultProps {
14
- server?: string;
15
- projectName: string;
16
- packageName: string;
17
16
  modelPath: string;
18
- versionId?: string;
19
17
  query?: string;
20
18
  sourceName?: string;
21
19
  queryName?: string;
22
- accessToken?: string;
23
20
  }
24
21
 
25
22
  export default function QueryResult({
26
- server,
27
- projectName,
28
- packageName,
29
23
  modelPath,
30
- versionId,
31
24
  query,
32
25
  sourceName,
33
26
  queryName,
34
- accessToken,
35
27
  }: QueryResultProps) {
28
+ const { server, projectName, packageName, versionId, accessToken } =
29
+ usePackage();
30
+
36
31
  const { data, isSuccess, isError, error } = useQuery(
37
32
  {
38
33
  queryKey: [
@@ -45,7 +40,6 @@ export default function QueryResult({
45
40
  query,
46
41
  sourceName,
47
42
  queryName,
48
- accessToken,
49
43
  ],
50
44
  queryFn: () =>
51
45
  queryResultsApi.executeQuery(
@@ -64,6 +58,8 @@ export default function QueryResult({
64
58
  },
65
59
  },
66
60
  ),
61
+ retry: false,
62
+ throwOnError: false,
67
63
  },
68
64
  queryClient,
69
65
  );
@@ -76,14 +72,15 @@ export default function QueryResult({
76
72
  </Typography>
77
73
  )}
78
74
  {isSuccess && (
79
- <Suspense fallback="Loading malloy...">
75
+ <Suspense fallback={<div>Loading...</div>}>
80
76
  <RenderedResult result={data.data.result} />
81
77
  </Suspense>
82
78
  )}
83
79
  {isError && (
84
- <Typography variant="body2" sx={{ p: "10px", m: "auto" }}>
85
- {`${projectName} > ${packageName} > ${modelPath} > ${versionId} - ${error.message}`}
86
- </Typography>
80
+ <ApiErrorDisplay
81
+ context={`${projectName} > ${packageName} > ${modelPath}`}
82
+ error={error}
83
+ />
87
84
  )}
88
85
  </>
89
86
  );
@@ -122,7 +122,6 @@ export default function ResultContainer({
122
122
  result={result}
123
123
  height={renderedHeight}
124
124
  isFillElement={(isFill) => {
125
- console.log("isFill", isFill);
126
125
  setIsFillElement(isFill);
127
126
  }}
128
127
  onSizeChange={handleSizeChange}
@@ -1,51 +0,0 @@
1
- import { j as m } from "./vendor-DfRellEl.js";
2
- import { i as a } from "./index-DahUc0AC.js";
3
- import { useRef as p, useEffect as f } from "react";
4
- function w({
5
- result: r,
6
- height: n,
7
- isFillElement: i,
8
- onSizeChange: s,
9
- onDrill: d
10
- }) {
11
- const e = p(null);
12
- f(() => {
13
- if (e.current) {
14
- const t = l.createViz();
15
- for (; e.current.firstChild; )
16
- e.current.removeChild(e.current.firstChild);
17
- t.setResult(JSON.parse(r)), t.render(e.current);
18
- }
19
- }, [r, e]), f(() => {
20
- if (!e.current) return;
21
- const t = e.current, o = () => {
22
- if (t) {
23
- const u = t.offsetHeight;
24
- u > 0 ? s && s(u) : i && t.firstChild && (t.firstChild.offsetHeight == 0 ? i(!0) : i(!1));
25
- }
26
- }, h = setTimeout(o, 100), c = new MutationObserver(o);
27
- return c.observe(t, {
28
- childList: !0,
29
- subtree: !0,
30
- attributes: !0
31
- }), () => {
32
- clearTimeout(h), c.disconnect();
33
- };
34
- }, [s, r]);
35
- const l = new a.MalloyRenderer({
36
- onClick: d
37
- });
38
- return /* @__PURE__ */ m.jsx(
39
- "div",
40
- {
41
- ref: e,
42
- style: {
43
- width: "100%",
44
- height: n ? `${n}px` : "100%"
45
- }
46
- }
47
- );
48
- }
49
- export {
50
- w as default
51
- };
@@ -1,6 +0,0 @@
1
- const n = Object.freeze(JSON.parse('{"displayName":"ABAP","fileTypes":["abap","ABAP"],"foldingStartMarker":"/\\\\*\\\\*|\\\\{\\\\s*$","foldingStopMarker":"\\\\*\\\\*/|^\\\\s*\\\\}","name":"abap","patterns":[{"captures":{"1":{"name":"punctuation.definition.comment.abap"}},"match":"^\\\\*.*\\\\n?","name":"comment.line.full.abap"},{"captures":{"1":{"name":"punctuation.definition.comment.abap"}},"match":"\\".*\\\\n?","name":"comment.line.partial.abap"},{"match":"(?<![^\\\\s])##.*?(?=([\\\\.:,\\\\s]))","name":"comment.line.pragma.abap"},{"match":"(?i)(?<=(?:\\\\s|~|-))(?<=(?:->|=>))([a-z_\\\\/][a-z_0-9\\\\/]*)(?=\\\\s+(?:=|\\\\+=|-=|\\\\*=|\\\\/=|&&=|&=)\\\\s+)","name":"variable.other.abap"},{"match":"\\\\b[0-9]+(\\\\b|\\\\.|,)","name":"constant.numeric.abap"},{"match":"(?ix)(^|\\\\s+)((PUBLIC|PRIVATE|PROTECTED)\\\\sSECTION)(?=\\\\s+|:|\\\\.)","name":"storage.modifier.class.abap"},{"begin":"(?<!\\\\\\\\)(\\\\|)(.*?)","beginCaptures":{"1":{"name":"constant.character.escape.abap"}},"end":"(?<!\\\\\\\\)(\\\\||(\\\\\\\\\\\\\\\\\\\\|))","endCaptures":{"1":{"name":"constant.character.escape.abap"}},"name":"string.interpolated.abap","patterns":[{"match":"({ )|( })","name":"constant.character.escape"},{"match":"\\\\\\\\\\\\|","name":"constant.character.escape.abap"},{"match":"(?ix)(?<=\\\\s)(align|alpha|case|country|currency|date|decimals|exponent|number|pad|sign|style|time|timestamp|timezone|width|xsd|zero)(?=\\\\s\\\\=)","name":"entity.name.property.stringtemplate.abap"},{"match":"(?ix)(?<=\\\\=\\\\s)(center|engineering|environment|in|iso|left|leftplus|leftspace|lower|no|out|raw|right|rightplus|rightspace|scale_preserving|scale_preserving_scientific|scientific|scientific_with_leading_zero|sign_as_postfix|simple|space|upper|user|yes)(?=\\\\s)","name":"entity.value.property.stringtemplate.abap"}]},{"begin":"\'","end":"\'","name":"string.quoted.single.abap","patterns":[{"match":"\'\'","name":"constant.character.escape.abap"}]},{"begin":"`","end":"`","name":"string.quoted.single.abap","patterns":[{"match":"``","name":"constant.character.escape.abap"}]},{"begin":"(?i)^\\\\s*(class)\\\\s([a-z_\\\\/][a-z_0-9\\\\/]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.block.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","name":"meta.block.begin.implementation.abap","patterns":[{"match":"(?ix)(^|\\\\s+)(definition|implementation|public|inheriting\\\\s+from|final|deferred|abstract|shared\\\\s+memory\\\\s+enabled|(global|local)*\\\\s*friends|(create\\\\s+(public|protected|private))|for\\\\s+behavior\\\\s+of|for\\\\s+testing|risk\\\\s+level\\\\s+(critical|dangerous|harmless))|duration\\\\s(short|medium|long)(?=\\\\s+|\\\\.)","name":"storage.modifier.class.abap"},{"begin":"(?=[A-Za-z_][A-Za-z0-9_]*)","contentName":"entity.name.type.block.abap","end":"(?![A-Za-z0-9_])","patterns":[{"include":"#generic_names"}]}]},{"begin":"(?ix)^\\\\s*(method)\\\\s(?:([a-z_\\\\/][a-z_0-9\\\\/]*)~)?([a-z_\\\\/][a-z_0-9\\\\/]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.abap"},"3":{"name":"entity.name.function.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","patterns":[{"match":"(?ix)(?<=^|\\\\s)(BY\\\\s+DATABASE(\\\\s+PROCEDURE|\\\\s+FUNCTION|\\\\s+GRAPH\\\\s+WORKSPACE)|BY\\\\s+KERNEL\\\\s+MODULE)(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"match":"(?ix)(?<=^|\\\\s)(FOR\\\\s+(HDB|LLANG))(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"match":"(?ix)(?<=\\\\s)(OPTIONS\\\\s+(READ-ONLY|DETERMINISTIC|SUPPRESS\\\\s+SYNTAX\\\\s+ERRORS))(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"match":"(?ix)(?<=^|\\\\s)(LANGUAGE\\\\s+(SQLSCRIPT|SQL|GRAPH))(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"},{"captures":{"1":{"name":"storage.modifier.method.abap"}},"match":"(?ix)(?<=\\\\s)(USING)\\\\s+([a-z_\\\\/][a-z_0-9\\\\/=\\\\>]*)+(?=\\\\s+|\\\\.)"},{"begin":"(?=[A-Za-z_][A-Za-z0-9_]*)","end":"(?![A-Za-z0-9_])","patterns":[{"include":"#generic_names"}]}]},{"begin":"(?ix)^\\\\s*(INTERFACE)\\\\s([a-z_\\\\/][a-z_0-9\\\\/]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","patterns":[{"match":"(?ix)(?<=^|\\\\s)(DEFERRED|PUBLIC)(?=\\\\s+|\\\\.)","name":"storage.modifier.method.abap"}]},{"begin":"(?ix)^\\\\s*(FORM)\\\\s([a-z_\\\\/][a-z_0-9\\\\/\\\\-\\\\?]*)","beginCaptures":{"1":{"name":"storage.type.block.abap"},"2":{"name":"entity.name.type.abap"}},"end":"\\\\s*\\\\.\\\\s*\\\\n?","patterns":[{"match":"(?ix)(?<=^|\\\\s)(USING|TABLES|CHANGING|RAISING|IMPLEMENTATION|DEFINITION)(?=\\\\s+|\\\\.)","name":"storage.modifier.form.abap"},{"include":"#abaptypes"},{"include":"#keywords_followed_by_braces"}]},{"match":"(?i)(endclass|endmethod|endform|endinterface)","name":"storage.type.block.end.abap"},{"match":"(?i)(<[A-Za-z_][A-Za-z0-9_]*>)","name":"variable.other.field.symbol.abap"},{"include":"#keywords"},{"include":"#abap_constants"},{"include":"#reserved_names"},{"include":"#operators"},{"include":"#builtin_functions"},{"include":"#abaptypes"},{"include":"#system_fields"},{"include":"#sql_functions"},{"include":"#sql_types"}],"repository":{"abap_constants":{"match":"(?ix)(?<=\\\\s)(initial|null|@?space|@?abap_true|@?abap_false|@?abap_undefined|table_line|\\n %_final|%_hints|%_predefined|col_background|col_group|col_heading|col_key|col_negative|col_normal|col_positive|col_total|\\n\\t\\t\\t\\tadabas|as400|db2|db6|hdb|oracle|sybase|mssqlnt|pos_low|pos_high)(?=\\\\s|\\\\.|,)","name":"constant.language.abap"},"abaptypes":{"patterns":[{"match":"(?ix)\\\\s(abap_bool|string|xstring|any|clike|csequence|numeric|xsequence|decfloat|decfloat16|decfloat34|utclong|simple|int8|c|n|i|p|f|d|t|x)(?=\\\\s|\\\\.|,)","name":"support.type.abap"},{"match":"(?ix)\\\\s(TYPE|REF|TO|LIKE|LINE|OF|STRUCTURE|STANDARD|SORTED|HASHED|INDEX|TABLE|WITH|UNIQUE|NON-UNIQUE|SECONDARY|DEFAULT|KEY)(?=\\\\s|\\\\.|,)","name":"keyword.control.simple.abap"}]},"arithmetic_operator":{"match":"(?i)(?<=\\\\s)(\\\\+|\\\\-|\\\\*|\\\\*\\\\*|\\\\/|%|DIV|MOD|BIT-AND|BIT-OR|BIT-XOR|BIT-NOT)(?=\\\\s)","name":"keyword.control.simple.abap"},"builtin_functions":{"match":"(?ix)(?<=\\\\s)(abs|sign|ceil|floor|trunc|frac|acos|asin|atan|cos|sin|tan|cosh|sinh|tanh|exp|log|log10|sqrt|strlen|xstrlen|charlen|lines|numofchar|dbmaxlen|round|rescale|nmax|nmin|cmax|cmin|boolc|boolx|xsdbool|contains|contains_any_of|contains_any_not_of|matches|line_exists|ipow|char_off|count|count_any_of|count_any_not_of|distance|condense|concat_lines_of|escape|find|find_end|find_any_of|find_any_not_of|insert|match|repeat|replace|reverse|segment|shift_left|shift_right|substring|substring_after|substring_from|substring_before|substring_to|to_upper|to_lower|to_mixed|from_mixed|translate|bit-set|line_index)(?=\\\\()","name":"entity.name.function.builtin.abap"},"comparison_operator":{"match":"(?i)(?<=\\\\s)(<|>|<\\\\=|>\\\\=|\\\\=|<>|eq|ne|lt|le|gt|ge|cs|cp|co|cn|ca|na|ns|np|byte-co|byte-cn|byte-ca|byte-na|byte-cs|byte-ns|o|z|m)(?=\\\\s)","name":"keyword.control.simple.abap"},"control_keywords":{"match":"(?ix)(^|\\\\s)(\\n\\t at|case|catch|continue|do|elseif|else|endat|endcase|endcatch|enddo|endif|\\n\\t endloop|endon|endtry|endwhile|if|loop|on|raise|try|while)(?=\\\\s|\\\\.|:)","name":"keyword.control.flow.abap"},"generic_names":{"match":"[A-Za-z_][A-Za-z0-9_]*"},"keywords":{"patterns":[{"include":"#main_keywords"},{"include":"#text_symbols"},{"include":"#control_keywords"},{"include":"#keywords_followed_by_braces"}]},"keywords_followed_by_braces":{"captures":{"1":{"name":"keyword.control.simple.abap"},"2":{"name":"variable.other.abap"}},"match":"(?ix)\\\\b(data|value|field-symbol|final|reference|resumable)\\\\((<?[a-z_\\\\/][a-z_0-9\\\\/]*>?)\\\\)"},"logical_operator":{"match":"(?i)(?<=\\\\s)(not|or|and)(?=\\\\s)","name":"keyword.control.simple.abap"},"main_keywords":{"match":"(?ix)(?<=^|\\\\s)(\\nabap-source|\\nabstract|\\naccept|\\naccepting|\\naccess|\\naccording|\\naction|\\nactivation|\\nactual|\\nadd|\\nadd-corresponding|\\nadjacent|\\nafter|\\nalias|\\naliases|\\nall|\\nallocate|\\namdp|\\nanalysis|\\nanalyzer|\\nappend|\\nappending|\\napplication|\\narchive|\\narea|\\narithmetic|\\nas|\\nascending|\\nassert|\\nassign|\\nassigned|\\nassigning|\\nassociation|\\nasynchronous|\\nat|\\nattributes|\\nauthority|\\nauthority-check|\\nauthorization|\\nauto|\\nback|\\nbackground|\\nbackward|\\nbadi|\\nbase|\\nbefore|\\nbegin|\\nbehavior|\\nbetween|\\nbinary|\\nbit|\\nblank|\\nblanks|\\nblock|\\nblocks|\\nbound|\\nboundaries|\\nbounds|\\nboxed|\\nbreak|\\nbreak-point|\\nbuffer|\\nby|\\nbypassing|\\nbyte|\\nbyte-order|\\ncall|\\ncalling|\\ncast|\\ncasting|\\ncds|\\ncentered|\\nchange|\\nchanging|\\nchannels|\\nchar-to-hex|\\ncharacter|\\ncheck|\\ncheckbox|\\ncid|\\ncircular|\\nclass|\\nclass-data|\\nclass-events|\\nclass-method|\\nclass-methods|\\nclass-pool|\\ncleanup|\\nclear|\\nclient|\\nclients|\\nclock|\\nclone|\\nclose|\\ncnt|\\ncode|\\ncollect|\\ncolor|\\ncolumn|\\ncomment|\\ncomments|\\ncommit|\\ncommon|\\ncommunication|\\ncomparing|\\ncomponent|\\ncomponents|\\ncompression|\\ncompute|\\nconcatenate|\\ncond|\\ncondense|\\ncondition|\\nconnection|\\nconstant|\\nconstants|\\ncontext|\\ncontexts|\\ncontrol|\\ncontrols|\\nconv|\\nconversion|\\nconvert|\\ncopy|\\ncorresponding|\\ncount|\\ncountry|\\ncover|\\ncreate|\\ncurrency|\\ncurrent|\\ncursor|\\ncustomer-function|\\ndata|\\ndatabase|\\ndatainfo|\\ndataset|\\ndate|\\ndaylight|\\nddl|\\ndeallocate|\\ndecimals|\\ndeclarations|\\ndeep|\\ndefault|\\ndeferred|\\ndefine|\\ndelete|\\ndeleting|\\ndemand|\\ndescending|\\ndescribe|\\ndestination|\\ndetail|\\ndetermine|\\ndialog|\\ndid|\\ndirectory|\\ndiscarding|\\ndisplay|\\ndisplay-mode|\\ndistance|\\ndistinct|\\ndivide|\\ndivide-corresponding|\\ndummy|\\nduplicate|\\nduplicates|\\nduration|\\nduring|\\ndynpro|\\nedit|\\neditor-call|\\nempty|\\nenabled|\\nenabling|\\nencoding|\\nend|\\nend-enhancement-section|\\nend-of-definition|\\nend-of-page|\\nend-of-selection|\\nend-test-injection|\\nend-test-seam|\\nendenhancement|\\nendexec|\\nendfunction|\\nendian|\\nending|\\nendmodule|\\nendprovide|\\nendselect|\\nendwith|\\nenhancement|\\nenhancement-point|\\nenhancement-section|\\nenhancements|\\nentities|\\nentity|\\nentries|\\nentry|\\nenum|\\nequiv|\\nerrors|\\nescape|\\nescaping|\\nevent|\\nevents|\\nexact|\\nexcept|\\nexception|\\nexception-table|\\nexceptions|\\nexcluding|\\nexec|\\nexecute|\\nexists|\\nexit|\\nexit-command|\\nexpanding|\\nexplicit|\\nexponent|\\nexport|\\nexporting|\\nextended|\\nextension|\\nextract|\\nfail|\\nfailed|\\nfeatures|\\nfetch|\\nfield|\\nfield-groups|\\nfield-symbols|\\nfields|\\nfile|\\nfill|\\nfilter|\\nfilters|\\nfinal|\\nfind|\\nfirst|\\nfirst-line|\\nfixed-point|\\nflush|\\nfollowing|\\nfor|\\nformat|\\nforward|\\nfound|\\nframe|\\nframes|\\nfree|\\nfrom|\\nfull|\\nfunction|\\nfunction-pool|\\ngenerate|\\nget|\\ngiving|\\ngraph|\\ngroup|\\ngroups|\\nhandle|\\nhandler|\\nhashed|\\nhaving|\\nheader|\\nheaders|\\nheading|\\nhelp-id|\\nhelp-request|\\nhide|\\nhint|\\nhold|\\nhotspot|\\nicon|\\nid|\\nidentification|\\nidentifier|\\nignore|\\nignoring|\\nimmediately|\\nimplemented|\\nimplicit|\\nimport|\\nimporting|\\nin|\\ninactive|\\nincl|\\ninclude|\\nincludes|\\nincluding|\\nincrement|\\nindex|\\nindex-line|\\nindicators|\\ninfotypes|\\ninheriting|\\ninit|\\ninitial|\\ninitialization|\\ninner|\\ninput|\\ninsert|\\ninstance|\\ninstances|\\nintensified|\\ninterface|\\ninterface-pool|\\ninterfaces|\\ninternal|\\nintervals|\\ninto|\\ninverse|\\ninverted-date|\\nis|\\njob|\\njoin|\\nkeep|\\nkeeping|\\nkernel|\\nkey|\\nkeys|\\nkeywords|\\nkind|\\nlanguage|\\nlast|\\nlate|\\nlayout|\\nleading|\\nleave|\\nleft|\\nleft-justified|\\nlegacy|\\nlength|\\nlet|\\nlevel|\\nlevels|\\nlike|\\nline|\\nline-count|\\nline-selection|\\nline-size|\\nlinefeed|\\nlines|\\nlink|\\nlist|\\nlist-processing|\\nlistbox|\\nload|\\nload-of-program|\\nlocal|\\nlocale|\\nlock|\\nlocks|\\nlog-point|\\nlogical|\\nlower|\\nmapped|\\nmapping|\\nmargin|\\nmark|\\nmask|\\nmatch|\\nmatchcode|\\nmaximum|\\nmembers|\\nmemory|\\nmesh|\\nmessage|\\nmessage-id|\\nmessages|\\nmessaging|\\nmethod|\\nmethods|\\nmode|\\nmodif|\\nmodifier|\\nmodify|\\nmodule|\\nmove|\\nmove-corresponding|\\nmultiply|\\nmultiply-corresponding|\\nname|\\nnametab|\\nnative|\\nnested|\\nnesting|\\nnew|\\nnew-line|\\nnew-page|\\nnew-section|\\nnext|\\nno-display|\\nno-extension|\\nno-gap|\\nno-gaps|\\nno-grouping|\\nno-heading|\\nno-scrolling|\\nno-sign|\\nno-title|\\nno-zero|\\nnodes|\\nnon-unicode|\\nnon-unique|\\nnumber|\\nobject|\\nobjects|\\nobjmgr|\\nobligatory|\\noccurence|\\noccurences|\\noccurrence|\\noccurrences|\\noccurs|\\nof|\\noffset|\\non|\\nonly|\\nopen|\\noptional|\\noption|\\noptions|\\norder|\\nothers|\\nout|\\nouter|\\noutput|\\noutput-length|\\noverflow|\\noverlay|\\npack|\\npackage|\\npadding|\\npage|\\nparameter|\\nparameter-table|\\nparameters|\\npart|\\npartially|\\npcre|\\nperform|\\nperforming|\\npermissions|\\npf-status|\\nplaces|\\npool|\\nposition|\\npragmas|\\npreceding|\\nprecompiled|\\npreferred|\\npreserving|\\nprimary|\\nprint|\\nprint-control|\\nprivate|\\nprivileged|\\nprocedure|\\nprocess|\\nprogram|\\nproperty|\\nprotected|\\nprovide|\\npush|\\npushbutton|\\nput|\\nquery|\\nqueue-only|\\nqueueonly|\\nquickinfo|\\nradiobutton|\\nraising|\\nrange|\\nranges|\\nread|\\nread-only|\\nreceive|\\nreceived|\\nreceiving|\\nredefinition|\\nreduce|\\nref|\\nreference|\\nrefresh|\\nregex|\\nreject|\\nrenaming|\\nreplace|\\nreplacement|\\nreplacing|\\nreport|\\nreported|\\nrequest|\\nrequested|\\nrequired|\\nreserve|\\nreset|\\nresolution|\\nrespecting|\\nresponse|\\nrestore|\\nresult|\\nresults|\\nresumable|\\nresume|\\nretry|\\nreturn|\\nreturning|\\nright|\\nright-justified|\\nrollback|\\nrows|\\nrp-provide-from-last|\\nrun|\\nsap|\\nsap-spool|\\nsave|\\nsaving|\\nscan|\\nscreen|\\nscroll|\\nscroll-boundary|\\nscrolling|\\nsearch|\\nseconds|\\nsection|\\nselect|\\nselect-options|\\nselection|\\nselection-screen|\\nselection-set|\\nselection-sets|\\nselection-table|\\nselections|\\nsend|\\nseparate|\\nseparated|\\nsession|\\nset|\\nshared|\\nshift|\\nshortdump|\\nshortdump-id|\\nsign|\\nsimple|\\nsimulation|\\nsingle|\\nsize|\\nskip|\\nskipping|\\nsmart|\\nsome|\\nsort|\\nsortable|\\nsorted|\\nsource|\\nspecified|\\nsplit|\\nspool|\\nspots|\\nsql|\\nstable|\\nstamp|\\nstandard|\\nstart-of-selection|\\nstarting|\\nstate|\\nstatement|\\nstatements|\\nstatic|\\nstatics|\\nstatusinfo|\\nstep|\\nstep-loop|\\nstop|\\nstructure|\\nstructures|\\nstyle|\\nsubkey|\\nsubmatches|\\nsubmit|\\nsubroutine|\\nsubscreen|\\nsubstring|\\nsubtract|\\nsubtract-corresponding|\\nsuffix|\\nsum|\\nsummary|\\nsupplied|\\nsupply|\\nsuppress|\\nswitch|\\nsymbol|\\nsyntax-check|\\nsyntax-trace|\\nsystem-call|\\nsystem-exceptions|\\ntab|\\ntabbed|\\ntable|\\ntables|\\ntableview|\\ntabstrip|\\ntarget|\\ntask|\\ntasks|\\ntest|\\ntest-injection|\\ntest-seam|\\ntesting|\\ntext|\\ntextpool|\\nthen|\\nthrow|\\ntime|\\ntimes|\\ntitle|\\ntitlebar|\\nto|\\ntokens|\\ntop-lines|\\ntop-of-page|\\ntrace-file|\\ntrace-table|\\ntrailing|\\ntransaction|\\ntransfer|\\ntransformation|\\ntranslate|\\ntransporting|\\ntrmac|\\ntruncate|\\ntruncation|\\ntype|\\ntype-pool|\\ntype-pools|\\ntypes|\\nuline|\\nunassign|\\nunbounded|\\nunder|\\nunicode|\\nunion|\\nunique|\\nunit|\\nunix|\\nunpack|\\nuntil|\\nunwind|\\nup|\\nupdate|\\nupper|\\nuser|\\nuser-command|\\nusing|\\nutf-8|\\nuuid|\\nvalid|\\nvalidate|\\nvalue|\\nvalue-request|\\nvalues|\\nvary|\\nvarying|\\nversion|\\nvia|\\nvisible|\\nwait|\\nwhen|\\nwhere|\\nwindow|\\nwindows|\\nwith|\\nwith-heading|\\nwith-title|\\nwithout|\\nword|\\nwork|\\nworkspace|\\nwrite|\\nxml|\\nzone\\n\\t\\t \\t)(?=\\\\s|\\\\.|:|,)","name":"keyword.control.simple.abap"},"operators":{"patterns":[{"include":"#other_operator"},{"include":"#arithmetic_operator"},{"include":"#comparison_operator"},{"include":"#logical_operator"}]},"other_operator":{"match":"(?<=\\\\s)(&&|&|\\\\?=|\\\\+=|-=|\\\\/=|\\\\*=|&&=|&=)(?=\\\\s)","name":"keyword.control.simple.abap"},"reserved_names":{"match":"(?ix)(?<=\\\\s)(me|super)(?=\\\\s|\\\\.|,|->)","name":"constant.language.abap"},"sql_functions":{"match":"(?ix)(?<=\\\\s)(\\nabap_system_timezone|\\nabap_user_timezone|\\nabs|\\nadd_days|\\nadd_months|\\nallow_precision_loss|\\nas_geo_json|\\navg|\\nbintohex|\\ncast|\\nceil|\\ncoalesce|\\nconcat_with_space|\\nconcat|\\ncorr_spearman|\\ncorr|\\ncount|\\ncurrency_conversion|\\ndatn_add_days|\\ndatn_add_months|\\ndatn_days_between|\\ndats_add_days|\\ndats_add_months|\\ndats_days_between|\\ndats_from_datn|\\ndats_is_valid|\\ndats_tims_to_tstmp|\\ndats_to_datn|\\ndayname|\\ndays_between|\\ndense_rank|\\ndivision|\\ndiv|\\nextract_day|\\nextract_hour|\\nextract_minute|\\nextract_month|\\nextract_second|\\nextract_year|\\nfirst_value|\\nfloor|\\ngrouping|\\nhextobin|\\ninitcap|\\ninstr|\\nis_valid|\\nlag|\\nlast_value|\\nlead|\\nleft|\\nlength|\\nlike_regexpr|\\nlocate_regexpr_after|\\nlocate_regexpr|\\nlocate|\\nlower|\\nlpad|\\nltrim|\\nmax|\\nmedian|\\nmin|\\nmod|\\nmonthname|\\nntile|\\noccurrences_regexpr|\\nover|\\nproduct|\\nrank|\\nreplace_regexpr|\\nreplace|\\nrigth|\\nround|\\nrow_number|\\nrpad|\\nrtrim|\\nstddev|\\nstring_agg|\\nsubstring_regexpr|\\nsubstring|\\nsum|\\ntims_from_timn|\\ntims_is_valid|\\ntims_to_timn|\\nto_blob|\\nto_clob|\\ntstmp_add_seconds|\\ntstmp_current_utctimestamp|\\ntstmp_is_valid|\\ntstmp_seconds_between|\\ntstmp_to_dats|\\ntstmp_to_dst|\\ntstmp_to_tims|\\ntstmpl_from_utcl|\\ntstmpl_to_utcl|\\nunit_conversion|\\nupper|\\nutcl_add_seconds|\\nutcl_current|\\nutcl_seconds_between|\\nuuid|\\nvar|\\nweekday\\n )(?=\\\\()","name":"entity.name.function.sql.abap"},"sql_types":{"match":"(?ix)(?<=\\\\s)(char|clnt|cuky|curr|datn|dats|dec|decfloat16|decfloat34|fltp|int1|int2|int4|int8|lang|numc|quan|raw|sstring|timn|tims|unit|utclong)(?=\\\\s|\\\\(|\\\\))","name":"entity.name.type.sql.abap"},"system_fields":{"captures":{"1":{"name":"variable.language.abap"},"2":{"name":"variable.language.abap"}},"match":"(?ix)\\\\b(sy)-(abcde|batch|binpt|calld|callr|colno|cpage|cprog|cucol|curow|datar|datlo|datum|dayst|dbcnt|dbnam|dbsysc|dyngr|dynnr|fdayw|fdpos|host|index|langu|ldbpg|lilli|linct|linno|linsz|lisel|listi|loopc|lsind|macol|mandt|marow|modno|msgid|msgli|msgno|msgty|msgv[1-4]|opsysc|pagno|pfkey|repid|saprl|scols|slset|spono|srows|staco|staro|stepl|subrc|sysid|tabix|tcode|tfill|timlo|title|tleng|tvar[0-9]|tzone|ucomm|uline|uname|uzeit|vline|wtitl|zonlo)(?=\\\\.|\\\\s)"},"text_symbols":{"captures":{"1":{"name":"keyword.control.simple.abap"},"2":{"name":"constant.numeric.abap"}},"match":"(?ix)(?<=^|\\\\s)(text)-([A-Z0-9]{1,3})(?=\\\\s|\\\\.|:|,)"}},"scopeName":"source.abap"}')), e = [
2
- n
3
- ];
4
- export {
5
- e as default
6
- };