@looker/api-explorer 0.9.22 → 0.9.27

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 (353) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/e2e/e2e.spec.ts +1 -1
  3. package/lib/ApiExplorer.d.ts +4 -43
  4. package/lib/ApiExplorer.js +71 -93
  5. package/lib/ApiExplorer.js.map +1 -1
  6. package/lib/App.d.ts +1 -0
  7. package/lib/App.js +29 -0
  8. package/lib/App.js.map +1 -0
  9. package/lib/StandaloneApiExplorer.js +36 -53
  10. package/lib/StandaloneApiExplorer.js.map +1 -1
  11. package/lib/components/Banner/Banner.d.ts +8 -0
  12. package/lib/components/Banner/Banner.js +70 -0
  13. package/lib/components/Banner/Banner.js.map +1 -0
  14. package/lib/components/Banner/index.d.ts +1 -0
  15. package/lib/components/Banner/index.js +14 -0
  16. package/lib/components/Banner/index.js.map +1 -0
  17. package/lib/components/DocMarkdown/DocMarkdown.js +5 -5
  18. package/lib/components/DocMarkdown/DocMarkdown.js.map +1 -1
  19. package/lib/components/DocSDKs/DocSDKs.js +3 -3
  20. package/lib/components/DocSDKs/DocSDKs.js.map +1 -1
  21. package/lib/components/DocSdkUsage/DocSdkUsage.js +3 -6
  22. package/lib/components/DocSdkUsage/DocSdkUsage.js.map +1 -1
  23. package/lib/components/DocSource/DocSource.js +5 -7
  24. package/lib/components/DocSource/DocSource.js.map +1 -1
  25. package/lib/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.d.ts +1 -1
  26. package/lib/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.js +152 -8
  27. package/lib/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.js.map +1 -1
  28. package/lib/components/ExploreType/ExploreType.js +3 -5
  29. package/lib/components/ExploreType/ExploreType.js.map +1 -1
  30. package/lib/components/Header/Header.d.ts +2 -5
  31. package/lib/components/Header/Header.js +1 -5
  32. package/lib/components/Header/Header.js.map +1 -1
  33. package/lib/components/SelectorContainer/ApiSpecSelector.d.ts +2 -5
  34. package/lib/components/SelectorContainer/ApiSpecSelector.js +5 -5
  35. package/lib/components/SelectorContainer/ApiSpecSelector.js.map +1 -1
  36. package/lib/components/SelectorContainer/SdkLanguageSelector.js +1 -1
  37. package/lib/components/SelectorContainer/SdkLanguageSelector.js.map +1 -1
  38. package/lib/components/SelectorContainer/SelectorContainer.d.ts +2 -5
  39. package/lib/components/SelectorContainer/SelectorContainer.js +3 -7
  40. package/lib/components/SelectorContainer/SelectorContainer.js.map +1 -1
  41. package/lib/components/SideNav/SideNav.d.ts +2 -5
  42. package/lib/components/SideNav/SideNav.js +1 -1
  43. package/lib/components/SideNav/SideNav.js.map +1 -1
  44. package/lib/components/common/Loader.d.ts +1 -1
  45. package/lib/components/common/Loader.js.map +1 -1
  46. package/lib/components/index.d.ts +1 -0
  47. package/lib/components/index.js +8 -0
  48. package/lib/components/index.js.map +1 -1
  49. package/lib/esm/ApiExplorer.js +71 -92
  50. package/lib/esm/ApiExplorer.js.map +1 -1
  51. package/lib/esm/App.js +19 -0
  52. package/lib/esm/App.js.map +1 -0
  53. package/lib/esm/StandaloneApiExplorer.js +36 -53
  54. package/lib/esm/StandaloneApiExplorer.js.map +1 -1
  55. package/lib/esm/components/Banner/Banner.js +54 -0
  56. package/lib/esm/components/Banner/Banner.js.map +1 -0
  57. package/lib/esm/components/Banner/index.js +2 -0
  58. package/lib/esm/{test-utils/envAdaptor.js.map → components/Banner/index.js.map} +1 -1
  59. package/lib/esm/components/DocMarkdown/DocMarkdown.js +3 -3
  60. package/lib/esm/components/DocMarkdown/DocMarkdown.js.map +1 -1
  61. package/lib/esm/components/DocSDKs/DocSDKs.js +2 -2
  62. package/lib/esm/components/DocSDKs/DocSDKs.js.map +1 -1
  63. package/lib/esm/components/DocSdkUsage/DocSdkUsage.js +5 -7
  64. package/lib/esm/components/DocSdkUsage/DocSdkUsage.js.map +1 -1
  65. package/lib/esm/components/DocSource/DocSource.js +4 -5
  66. package/lib/esm/components/DocSource/DocSource.js.map +1 -1
  67. package/lib/esm/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.js +153 -6
  68. package/lib/esm/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.js.map +1 -1
  69. package/lib/esm/components/ExploreType/ExploreType.js +3 -4
  70. package/lib/esm/components/ExploreType/ExploreType.js.map +1 -1
  71. package/lib/esm/components/Header/Header.js +1 -5
  72. package/lib/esm/components/Header/Header.js.map +1 -1
  73. package/lib/esm/components/SelectorContainer/ApiSpecSelector.js +4 -5
  74. package/lib/esm/components/SelectorContainer/ApiSpecSelector.js.map +1 -1
  75. package/lib/esm/components/SelectorContainer/SdkLanguageSelector.js +2 -2
  76. package/lib/esm/components/SelectorContainer/SdkLanguageSelector.js.map +1 -1
  77. package/lib/esm/components/SelectorContainer/SelectorContainer.js +3 -7
  78. package/lib/esm/components/SelectorContainer/SelectorContainer.js.map +1 -1
  79. package/lib/esm/components/SideNav/SideNav.js +2 -2
  80. package/lib/esm/components/SideNav/SideNav.js.map +1 -1
  81. package/lib/esm/components/common/Loader.js.map +1 -1
  82. package/lib/esm/components/index.js +1 -0
  83. package/lib/esm/components/index.js.map +1 -1
  84. package/lib/esm/index.js +5 -18
  85. package/lib/esm/index.js.map +1 -1
  86. package/lib/esm/routes/AppRouter.js +3 -7
  87. package/lib/esm/routes/AppRouter.js.map +1 -1
  88. package/lib/esm/scenes/DiffScene/DiffScene.js +43 -99
  89. package/lib/esm/scenes/DiffScene/DiffScene.js.map +1 -1
  90. package/lib/esm/scenes/DiffScene/DocDiff/DiffItem.js +9 -13
  91. package/lib/esm/scenes/DiffScene/DocDiff/DiffItem.js.map +1 -1
  92. package/lib/esm/scenes/DiffScene/DocDiff/DocDiff.js +2 -2
  93. package/lib/esm/scenes/DiffScene/DocDiff/DocDiff.js.map +1 -1
  94. package/lib/esm/scenes/MethodScene/MethodScene.js +12 -15
  95. package/lib/esm/scenes/MethodScene/MethodScene.js.map +1 -1
  96. package/lib/esm/state/index.js +2 -0
  97. package/lib/esm/state/index.js.map +1 -1
  98. package/lib/esm/state/lodes/index.js +3 -0
  99. package/lib/{test-utils/envAdaptor.js.map → esm/state/lodes/index.js.map} +1 -1
  100. package/lib/esm/state/lodes/sagas.js +25 -0
  101. package/lib/esm/state/lodes/sagas.js.map +1 -0
  102. package/lib/esm/state/lodes/selectors.js +5 -0
  103. package/lib/esm/state/lodes/selectors.js.map +1 -0
  104. package/lib/esm/state/lodes/slice.js +30 -0
  105. package/lib/esm/state/lodes/slice.js.map +1 -0
  106. package/lib/esm/state/settings/sagas.js +28 -16
  107. package/lib/esm/state/settings/sagas.js.map +1 -1
  108. package/lib/esm/state/settings/selectors.js +5 -5
  109. package/lib/esm/state/settings/selectors.js.map +1 -1
  110. package/lib/esm/state/settings/slice.js +8 -8
  111. package/lib/esm/state/settings/slice.js.map +1 -1
  112. package/lib/esm/state/specs/index.js +3 -0
  113. package/lib/esm/state/specs/index.js.map +1 -0
  114. package/lib/esm/state/specs/sagas.js +58 -0
  115. package/lib/esm/state/specs/sagas.js.map +1 -0
  116. package/lib/esm/state/specs/selectors.js +8 -0
  117. package/lib/esm/state/specs/selectors.js.map +1 -0
  118. package/lib/esm/state/specs/slice.js +55 -0
  119. package/lib/esm/state/specs/slice.js.map +1 -0
  120. package/lib/esm/state/store.js +57 -3
  121. package/lib/esm/state/store.js.map +1 -1
  122. package/lib/esm/test-utils/index.js +1 -2
  123. package/lib/esm/test-utils/index.js.map +1 -1
  124. package/lib/esm/test-utils/lodes.js +12 -0
  125. package/lib/esm/test-utils/lodes.js.map +1 -0
  126. package/lib/esm/test-utils/redux.js +16 -9
  127. package/lib/esm/test-utils/redux.js.map +1 -1
  128. package/lib/esm/utils/adaptorUtils.js +101 -0
  129. package/lib/esm/utils/adaptorUtils.js.map +1 -0
  130. package/lib/esm/utils/apixAdaptor.js +48 -0
  131. package/lib/esm/utils/apixAdaptor.js.map +1 -0
  132. package/lib/esm/utils/index.js +3 -2
  133. package/lib/esm/utils/index.js.map +1 -1
  134. package/lib/esm/utils/lodeUtils.js +3 -7
  135. package/lib/esm/utils/lodeUtils.js.map +1 -1
  136. package/lib/esm/utils/path.js +27 -2
  137. package/lib/esm/utils/path.js.map +1 -1
  138. package/lib/index.d.ts +5 -1
  139. package/lib/index.js +59 -17
  140. package/lib/index.js.map +1 -1
  141. package/lib/routes/AppRouter.d.ts +1 -5
  142. package/lib/routes/AppRouter.js +3 -7
  143. package/lib/routes/AppRouter.js.map +1 -1
  144. package/lib/scenes/DiffScene/DiffScene.js +45 -100
  145. package/lib/scenes/DiffScene/DiffScene.js.map +1 -1
  146. package/lib/scenes/DiffScene/DocDiff/DiffItem.js +9 -13
  147. package/lib/scenes/DiffScene/DocDiff/DiffItem.js.map +1 -1
  148. package/lib/scenes/DiffScene/DocDiff/DocDiff.js +2 -2
  149. package/lib/scenes/DiffScene/DocDiff/DocDiff.js.map +1 -1
  150. package/lib/scenes/MethodScene/MethodScene.d.ts +0 -4
  151. package/lib/scenes/MethodScene/MethodScene.js +11 -13
  152. package/lib/scenes/MethodScene/MethodScene.js.map +1 -1
  153. package/lib/state/index.d.ts +2 -0
  154. package/lib/state/index.js +26 -0
  155. package/lib/state/index.js.map +1 -1
  156. package/lib/state/lodes/index.d.ts +2 -0
  157. package/lib/state/lodes/index.js +32 -0
  158. package/lib/state/lodes/index.js.map +1 -0
  159. package/lib/state/lodes/sagas.d.ts +1 -0
  160. package/lib/state/lodes/sagas.js +34 -0
  161. package/lib/state/lodes/sagas.js.map +1 -0
  162. package/lib/state/lodes/selectors.d.ts +3 -0
  163. package/lib/state/lodes/selectors.js +17 -0
  164. package/lib/state/lodes/selectors.js.map +1 -0
  165. package/lib/state/lodes/slice.d.ts +29 -0
  166. package/lib/state/lodes/slice.js +45 -0
  167. package/lib/state/lodes/slice.js.map +1 -0
  168. package/lib/state/settings/sagas.js +28 -15
  169. package/lib/state/settings/sagas.js.map +1 -1
  170. package/lib/state/settings/selectors.d.ts +1 -1
  171. package/lib/state/settings/selectors.js +5 -5
  172. package/lib/state/settings/selectors.js.map +1 -1
  173. package/lib/state/settings/slice.d.ts +14 -14
  174. package/lib/state/settings/slice.js +13 -13
  175. package/lib/state/settings/slice.js.map +1 -1
  176. package/lib/state/specs/index.d.ts +2 -0
  177. package/lib/state/specs/index.js +32 -0
  178. package/lib/state/specs/index.js.map +1 -0
  179. package/lib/state/specs/sagas.d.ts +1 -0
  180. package/lib/state/specs/sagas.js +67 -0
  181. package/lib/state/specs/sagas.js.map +1 -0
  182. package/lib/state/specs/selectors.d.ts +4 -0
  183. package/lib/state/specs/selectors.js +20 -0
  184. package/lib/state/specs/selectors.js.map +1 -0
  185. package/lib/state/specs/slice.d.ts +49 -0
  186. package/lib/state/specs/slice.js +70 -0
  187. package/lib/state/specs/slice.js.map +1 -0
  188. package/lib/state/store.d.ts +6 -0
  189. package/lib/state/store.js +60 -2
  190. package/lib/state/store.js.map +1 -1
  191. package/lib/test-data/declarations.d.ts +2 -0
  192. package/lib/test-data/declarations.js +24 -0
  193. package/lib/test-data/declarations.js.map +1 -0
  194. package/lib/test-data/examples.d.ts +2 -0
  195. package/lib/test-data/index.d.ts +3 -0
  196. package/lib/test-data/index.js +29 -36
  197. package/lib/test-data/index.js.map +1 -1
  198. package/lib/test-data/specs.d.ts +10 -0
  199. package/lib/test-data/specs.js +6 -6
  200. package/lib/test-data/specs.js.map +1 -1
  201. package/lib/test-utils/index.d.ts +1 -2
  202. package/lib/test-utils/index.js +12 -28
  203. package/lib/test-utils/index.js.map +1 -1
  204. package/lib/test-utils/lodes.d.ts +4 -0
  205. package/lib/test-utils/lodes.js +23 -0
  206. package/lib/test-utils/lodes.js.map +1 -0
  207. package/lib/test-utils/redux.d.ts +4 -1
  208. package/lib/test-utils/redux.js +18 -9
  209. package/lib/test-utils/redux.js.map +1 -1
  210. package/lib/utils/adaptorUtils.d.ts +30 -0
  211. package/lib/utils/adaptorUtils.js +124 -0
  212. package/lib/utils/adaptorUtils.js.map +1 -0
  213. package/lib/utils/apixAdaptor.d.ts +15 -0
  214. package/lib/utils/apixAdaptor.js +67 -0
  215. package/lib/utils/apixAdaptor.js.map +1 -0
  216. package/lib/utils/index.d.ts +3 -2
  217. package/lib/utils/index.js +30 -39
  218. package/lib/utils/index.js.map +1 -1
  219. package/lib/utils/lodeUtils.d.ts +2 -2
  220. package/lib/utils/lodeUtils.js +3 -7
  221. package/lib/utils/lodeUtils.js.map +1 -1
  222. package/lib/utils/path.d.ts +3 -0
  223. package/lib/utils/path.js +32 -2
  224. package/lib/utils/path.js.map +1 -1
  225. package/package.json +11 -10
  226. package/public/Looker.3.1.json +1343 -412
  227. package/public/Looker.4.0.json +3305 -661
  228. package/src/ApiExplorer.tsx +114 -144
  229. package/src/{index.tsx → App.tsx} +0 -0
  230. package/src/StandaloneApiExplorer.tsx +38 -61
  231. package/src/components/Banner/Banner.spec.tsx +99 -0
  232. package/src/components/Banner/Banner.tsx +87 -0
  233. package/src/{reducers → components/Banner}/index.ts +1 -1
  234. package/src/components/DocMarkdown/DocMarkdown.tsx +3 -3
  235. package/src/components/DocSDKs/DocSDKs.tsx +4 -5
  236. package/src/components/DocSdkUsage/DocSdkUsage.spec.tsx +2 -2
  237. package/src/components/DocSdkUsage/DocSdkUsage.tsx +5 -5
  238. package/src/components/DocSource/DocSource.tsx +4 -3
  239. package/src/components/ErrorBoundary/components/SomethingWentWrong/SomethingWentWrong.spec.tsx +1 -1
  240. package/src/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.tsx +170 -6
  241. package/src/components/ExploreType/ExploreType.spec.tsx +0 -23
  242. package/src/components/ExploreType/ExploreType.tsx +5 -6
  243. package/src/components/ExploreType/exploreUtils.spec.tsx +1 -1
  244. package/src/components/Header/Header.spec.tsx +9 -30
  245. package/src/components/Header/Header.tsx +3 -10
  246. package/src/components/SelectorContainer/ApiSpecSelector.spec.tsx +31 -44
  247. package/src/components/SelectorContainer/ApiSpecSelector.tsx +6 -12
  248. package/src/components/SelectorContainer/SdkLanguageSelector.spec.tsx +3 -5
  249. package/src/components/SelectorContainer/SdkLanguageSelector.tsx +2 -2
  250. package/src/components/SelectorContainer/SelectorContainer.spec.tsx +7 -26
  251. package/src/components/SelectorContainer/SelectorContainer.tsx +4 -10
  252. package/src/components/SideNav/SideNav.spec.tsx +12 -45
  253. package/src/components/SideNav/SideNav.tsx +3 -9
  254. package/src/components/common/Loader.tsx +1 -1
  255. package/src/components/index.ts +1 -0
  256. package/src/{reducers/spec/index.ts → index.ts} +4 -2
  257. package/src/routes/AppRouter.tsx +26 -37
  258. package/src/scenes/DiffScene/DiffScene.tsx +47 -84
  259. package/src/scenes/DiffScene/DocDiff/DiffItem.spec.tsx +9 -16
  260. package/src/scenes/DiffScene/DocDiff/DiffItem.tsx +11 -12
  261. package/src/scenes/DiffScene/DocDiff/DocDiff.tsx +2 -2
  262. package/src/scenes/MethodScene/MethodScene.tsx +12 -18
  263. package/src/state/index.ts +2 -0
  264. package/src/{context → state/lodes}/index.ts +2 -1
  265. package/src/state/lodes/sagas.spec.ts +92 -0
  266. package/src/state/lodes/sagas.ts +51 -0
  267. package/src/state/lodes/selectors.spec.ts +42 -0
  268. package/src/{reducers/spec/actions.spec.ts → state/lodes/selectors.ts} +9 -11
  269. package/src/{test-utils/render_with_lode.tsx → state/lodes/slice.ts} +37 -37
  270. package/src/state/settings/sagas.spec.ts +25 -21
  271. package/src/state/settings/sagas.ts +16 -16
  272. package/src/state/settings/selectors.spec.ts +1 -5
  273. package/src/state/settings/selectors.ts +5 -5
  274. package/src/state/settings/slice.ts +12 -7
  275. package/src/{context/lode → state/specs}/index.ts +2 -1
  276. package/src/state/specs/sagas.spec.ts +135 -0
  277. package/src/state/specs/sagas.ts +81 -0
  278. package/src/{test-utils/envAdaptor.ts → state/specs/selectors.ts} +10 -4
  279. package/src/state/specs/slice.ts +109 -0
  280. package/src/state/store.ts +65 -2
  281. package/src/{context/lode/LodeContext.ts → test-data/declarations.ts} +17 -14
  282. package/src/test-data/index.ts +2 -8
  283. package/src/test-data/specs.ts +6 -6
  284. package/src/test-utils/index.ts +1 -5
  285. package/src/{reducers/spec/reducer.spec.ts → test-utils/lodes.tsx} +16 -19
  286. package/src/test-utils/redux.tsx +31 -8
  287. package/src/utils/adaptorUtils.ts +181 -0
  288. package/src/utils/apixAdaptor.ts +72 -0
  289. package/src/utils/index.ts +3 -8
  290. package/src/utils/lodeUtils.ts +4 -6
  291. package/src/utils/path.ts +25 -2
  292. package/webpack.dev.config.js +3 -0
  293. package/webpack.prod.config.js +4 -0
  294. package/lib/context/index.d.ts +0 -1
  295. package/lib/context/index.js +0 -20
  296. package/lib/context/index.js.map +0 -1
  297. package/lib/context/lode/LodeContext.d.ts +0 -9
  298. package/lib/context/lode/LodeContext.js +0 -21
  299. package/lib/context/lode/LodeContext.js.map +0 -1
  300. package/lib/context/lode/index.d.ts +0 -1
  301. package/lib/context/lode/index.js +0 -20
  302. package/lib/context/lode/index.js.map +0 -1
  303. package/lib/esm/context/index.js +0 -2
  304. package/lib/esm/context/index.js.map +0 -1
  305. package/lib/esm/context/lode/LodeContext.js +0 -11
  306. package/lib/esm/context/lode/LodeContext.js.map +0 -1
  307. package/lib/esm/context/lode/index.js +0 -2
  308. package/lib/esm/context/lode/index.js.map +0 -1
  309. package/lib/esm/reducers/index.js +0 -2
  310. package/lib/esm/reducers/index.js.map +0 -1
  311. package/lib/esm/reducers/spec/actions.js +0 -19
  312. package/lib/esm/reducers/spec/actions.js.map +0 -1
  313. package/lib/esm/reducers/spec/index.js +0 -4
  314. package/lib/esm/reducers/spec/index.js.map +0 -1
  315. package/lib/esm/reducers/spec/reducer.js +0 -62
  316. package/lib/esm/reducers/spec/reducer.js.map +0 -1
  317. package/lib/esm/reducers/spec/utils.js +0 -74
  318. package/lib/esm/reducers/spec/utils.js.map +0 -1
  319. package/lib/esm/test-utils/envAdaptor.js +0 -5
  320. package/lib/esm/test-utils/render_with_lode.js +0 -19
  321. package/lib/esm/test-utils/render_with_lode.js.map +0 -1
  322. package/lib/esm/utils/envAdaptor.js +0 -84
  323. package/lib/esm/utils/envAdaptor.js.map +0 -1
  324. package/lib/reducers/index.d.ts +0 -1
  325. package/lib/reducers/index.js +0 -19
  326. package/lib/reducers/index.js.map +0 -1
  327. package/lib/reducers/spec/actions.d.ts +0 -20
  328. package/lib/reducers/spec/actions.js +0 -31
  329. package/lib/reducers/spec/actions.js.map +0 -1
  330. package/lib/reducers/spec/index.d.ts +0 -3
  331. package/lib/reducers/spec/index.js +0 -45
  332. package/lib/reducers/spec/index.js.map +0 -1
  333. package/lib/reducers/spec/reducer.d.ts +0 -7
  334. package/lib/reducers/spec/reducer.js +0 -73
  335. package/lib/reducers/spec/reducer.js.map +0 -1
  336. package/lib/reducers/spec/utils.d.ts +0 -7
  337. package/lib/reducers/spec/utils.js +0 -91
  338. package/lib/reducers/spec/utils.js.map +0 -1
  339. package/lib/test-utils/envAdaptor.d.ts +0 -2
  340. package/lib/test-utils/envAdaptor.js +0 -15
  341. package/lib/test-utils/render_with_lode.d.ts +0 -7
  342. package/lib/test-utils/render_with_lode.js +0 -36
  343. package/lib/test-utils/render_with_lode.js.map +0 -1
  344. package/lib/utils/envAdaptor.d.ts +0 -31
  345. package/lib/utils/envAdaptor.js +0 -106
  346. package/lib/utils/envAdaptor.js.map +0 -1
  347. package/src/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/somethingWentWrong.svg +0 -45
  348. package/src/reducers/spec/actions.ts +0 -62
  349. package/src/reducers/spec/reducer.ts +0 -69
  350. package/src/reducers/spec/utils.spec.ts +0 -138
  351. package/src/reducers/spec/utils.ts +0 -123
  352. package/src/utils/envAdaptor.spec.ts +0 -50
  353. package/src/utils/envAdaptor.ts +0 -147
package/CHANGELOG.md CHANGED
@@ -5,6 +5,132 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ### [0.9.27](https://www.github.com/looker-open-source/sdk-codegen/compare/api-explorer-v0.9.26...api-explorer-v0.9.27) (2022-02-14)
9
+
10
+
11
+ ### Features
12
+
13
+ * Added 4.0 GA stable banner to api explorer ([#956](https://www.github.com/looker-open-source/sdk-codegen/issues/956)) ([c59b5d4](https://www.github.com/looker-open-source/sdk-codegen/commit/c59b5d4d14189329fd9d95b31d3801dd27bd1c08))
14
+
15
+
16
+ ### Bug Fixes
17
+
18
+ * Fix broken apix test because of 22.0 build ([#968](https://www.github.com/looker-open-source/sdk-codegen/issues/968)) ([45a9a69](https://www.github.com/looker-open-source/sdk-codegen/commit/45a9a6915be0fbcfdbd3ee6152a59d9d8728b3ca))
19
+ * runtime error for API Explorer ([#973](https://www.github.com/looker-open-source/sdk-codegen/issues/973)) ([4823fcb](https://www.github.com/looker-open-source/sdk-codegen/commit/4823fcb56d38bde5ae2f80d02a946b5bd3eeb834))
20
+
21
+
22
+ ### Dependencies
23
+
24
+ * The following workspace dependencies were updated
25
+ * dependencies
26
+ * @looker/extension-utils bumped from ^0.1.3 to ^0.1.4
27
+ * @looker/code-editor bumped from ^0.1.17 to ^0.1.18
28
+ * @looker/run-it bumped from ^0.9.26 to ^0.9.27
29
+ * @looker/sdk-codegen bumped from ^21.3.2 to ^21.4.0
30
+ * devDependencies
31
+ * @looker/sdk-codegen-scripts bumped from ^21.2.1 to ^21.2.2
32
+
33
+ ### [0.9.26](https://www.github.com/looker-open-source/sdk-codegen/compare/api-explorer-v0.9.23...api-explorer-v0.9.26) (2022-01-27)
34
+
35
+
36
+ ### Features
37
+
38
+ * OAuthConfigProvider ([209f399](https://www.github.com/looker-open-source/sdk-codegen/commit/209f399a089beb28405a178d3dc8f769478ae97b))
39
+
40
+
41
+ ### Bug Fixes
42
+
43
+ * enum naming and registration ([#918](https://www.github.com/looker-open-source/sdk-codegen/issues/918)) ([9d4a6cb](https://www.github.com/looker-open-source/sdk-codegen/commit/9d4a6cbfac5defad3a35389e2d46947d2135d349))
44
+
45
+
46
+ ### Dependencies
47
+
48
+ * The following workspace dependencies were updated
49
+ * dependencies
50
+ * @looker/sdk bumped from ^21.20.0 to ^21.20.1
51
+ * devDependencies
52
+ * @looker/sdk-node bumped from ^21.20.0 to ^21.20.1
53
+
54
+ ### [0.9.26](https://www.github.com/looker-open-source/sdk-codegen/compare/api-explorer-v0.9.25...api-explorer-v0.9.26) (2021-12-20)
55
+
56
+
57
+ ### Dependencies
58
+
59
+ * The following workspace dependencies were updated
60
+ * dependencies
61
+ * @looker/extension-utils bumped from ^0.1.2 to ^0.1.3
62
+ * @looker/code-editor bumped from ^0.1.16 to ^0.1.17
63
+ * @looker/run-it bumped from ^0.9.25 to ^0.9.26
64
+ * @looker/sdk-codegen bumped from ^21.3.0 to ^21.3.1
65
+ * @looker/sdk-rtl bumped from ^21.3.0 to ^21.3.1
66
+ * devDependencies
67
+ * @looker/sdk-codegen-scripts bumped from ^21.2.0 to ^21.2.1
68
+
69
+ ### [0.9.25](https://www.github.com/looker-open-source/sdk-codegen/compare/api-explorer-v0.9.24...api-explorer-v0.9.25) (2021-12-16)
70
+
71
+
72
+ ### Dependencies
73
+
74
+ * The following workspace dependencies were updated
75
+ * dependencies
76
+ * @looker/extension-utils bumped from ^0.1.1 to ^0.1.2
77
+ * @looker/code-editor bumped from ^0.1.15 to ^0.1.16
78
+ * @looker/run-it bumped from ^0.9.24 to ^0.9.25
79
+ * @looker/sdk-codegen bumped from ^21.2.1 to ^21.3.0
80
+ * @looker/sdk-rtl bumped from ^21.2.0 to ^21.3.0
81
+ * devDependencies
82
+ * @looker/sdk-codegen-scripts bumped from ^21.1.4 to ^21.2.0
83
+
84
+ ### [0.9.24](https://www.github.com/looker-open-source/sdk-codegen/compare/api-explorer-v0.9.23...api-explorer-v0.9.24) (2021-12-06)
85
+
86
+
87
+ ### Features
88
+
89
+ * OAuthConfigProvider ([209f399](https://www.github.com/looker-open-source/sdk-codegen/commit/209f399a089beb28405a178d3dc8f769478ae97b))
90
+
91
+
92
+ ### Bug Fixes
93
+
94
+ * enum naming and registration ([#918](https://www.github.com/looker-open-source/sdk-codegen/issues/918)) ([9d4a6cb](https://www.github.com/looker-open-source/sdk-codegen/commit/9d4a6cbfac5defad3a35389e2d46947d2135d349))
95
+
96
+
97
+ ### Dependencies
98
+
99
+ * The following workspace dependencies were updated
100
+ * dependencies
101
+ * @looker/extension-utils bumped from ^0.1.0 to ^0.1.1
102
+ * @looker/code-editor bumped from ^0.1.14 to ^0.1.15
103
+ * @looker/run-it bumped from ^0.9.23 to ^0.9.24
104
+ * @looker/sdk-codegen bumped from ^21.2.0 to ^21.2.1
105
+ * devDependencies
106
+ * @looker/sdk-codegen-scripts bumped from ^21.1.3 to ^21.1.4
107
+
108
+ ### [0.9.23](https://www.github.com/looker-open-source/sdk-codegen/compare/api-explorer-v0.9.22...api-explorer-v0.9.23) (2021-11-10)
109
+
110
+
111
+ ### Features
112
+
113
+ * create @looker/extension-utils ([#886](https://www.github.com/looker-open-source/sdk-codegen/issues/886)) ([9d1720d](https://www.github.com/looker-open-source/sdk-codegen/commit/9d1720d9a4cec00c45195dd9c716d9a2a929264f))
114
+
115
+
116
+ ### Bug Fixes
117
+
118
+ * api explorer initialization ([#885](https://www.github.com/looker-open-source/sdk-codegen/issues/885)) ([b08b08e](https://www.github.com/looker-open-source/sdk-codegen/commit/b08b08e9767725e19a573bac0385320bb903490d))
119
+
120
+
121
+ ### Dependencies
122
+
123
+ * The following workspace dependencies were updated
124
+ * dependencies
125
+ * @looker/code-editor bumped from ^0.1.13 to ^0.1.14
126
+ * @looker/run-it bumped from ^0.9.22 to ^0.9.23
127
+ * @looker/sdk bumped from ^21.18.1 to ^21.20.0
128
+ * @looker/sdk-codegen bumped from ^21.1.1 to ^21.2.0
129
+ * @looker/sdk-rtl bumped from ^21.1.1 to ^21.2.0
130
+ * devDependencies
131
+ * @looker/sdk-codegen-scripts bumped from ^21.1.2 to ^21.1.3
132
+ * @looker/sdk-node bumped from ^21.18.1 to ^21.20.0
133
+
8
134
  ### [0.9.22](https://www.github.com/looker-open-source/sdk-codegen/compare/api-explorer-v0.9.21...api-explorer-v0.9.22) (2021-10-27)
9
135
 
10
136
 
package/e2e/e2e.spec.ts CHANGED
@@ -173,7 +173,7 @@ describe('API Explorer', () => {
173
173
  'ul[aria-label="spec selector"] > li:last-child'
174
174
  )
175
175
  await expect(page).toMatchElement('h2', {
176
- text: 'Looker API 4.0 (Experimental) Reference',
176
+ text: 'Looker API 4.0 (Beta) Reference',
177
177
  })
178
178
  })
179
179
  })
@@ -1,48 +1,9 @@
1
1
  import type { FC } from 'react';
2
- import React from 'react';
3
- import type { SpecList } from '@looker/sdk-codegen';
4
- import type { RunItSetter } from '@looker/run-it';
5
- import type { IApixEnvAdaptor } from './utils';
2
+ import type { IApixAdaptor } from './utils';
6
3
  export interface ApiExplorerProps {
7
- specs: SpecList;
8
- envAdaptor: IApixEnvAdaptor;
9
- setVersionsUrl: RunItSetter;
10
- exampleLodeUrl?: string;
4
+ adaptor: IApixAdaptor;
5
+ examplesLodeUrl?: string;
11
6
  declarationsLodeUrl?: string;
12
7
  headless?: boolean;
13
8
  }
14
- export declare const BodyOverride: import("styled-components").GlobalStyleComponent<{}, import("styled-components").DefaultTheme>;
15
- declare const ApiExplorer: FC<ApiExplorerProps>;
16
- export declare const AsideBorder: import("styled-components").StyledComponent<React.ForwardRefExoticComponent<import("styled-system").ColorProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>, string | number | symbol> & import("@looker/components").SimpleLayoutProps & import("styled-system").BorderRadiusProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>, string | number | symbol> & {
17
- border?: string | boolean | undefined;
18
- borderBottom?: string | boolean | undefined;
19
- borderLeft?: string | boolean | undefined;
20
- borderRight?: string | boolean | undefined;
21
- borderTop?: string | boolean | undefined;
22
- borderX?: string | boolean | undefined;
23
- borderY?: string | boolean | undefined;
24
- } & import("@looker/design-tokens").TypographyProps & {
25
- color?: any;
26
- } & import("@looker/design-tokens").CompatibleHTMLProps<HTMLElement> & {
27
- collapse?: boolean | undefined;
28
- scrollWithin?: boolean | undefined;
29
- width?: import("styled-system").ResponsiveValue<string | import("@looker/components/Layout/Semantics/Aside/asideWidth").AsideSizeRamp, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
30
- } & React.RefAttributes<HTMLDivElement>>, import("styled-components").DefaultTheme, import("styled-system").ColorProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>, string | number | symbol> & import("@looker/components").SimpleLayoutProps & import("styled-system").BorderRadiusProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>, string | number | symbol> & {
31
- border?: string | boolean | undefined;
32
- borderBottom?: string | boolean | undefined;
33
- borderLeft?: string | boolean | undefined;
34
- borderRight?: string | boolean | undefined;
35
- borderTop?: string | boolean | undefined;
36
- borderX?: string | boolean | undefined;
37
- borderY?: string | boolean | undefined;
38
- } & import("@looker/design-tokens").TypographyProps & {
39
- color?: any;
40
- } & import("@looker/design-tokens").CompatibleHTMLProps<HTMLElement> & {
41
- collapse?: boolean | undefined;
42
- scrollWithin?: boolean | undefined;
43
- width?: import("styled-system").ResponsiveValue<string | import("@looker/components/Layout/Semantics/Aside/asideWidth").AsideSizeRamp, Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>> | undefined;
44
- } & {
45
- isOpen: boolean;
46
- headless: boolean;
47
- }, never>;
48
- export default ApiExplorer;
9
+ export declare const ApiExplorer: FC<ApiExplorerProps>;
@@ -3,29 +3,25 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.AsideBorder = exports.BodyOverride = void 0;
6
+ exports.ApiExplorer = void 0;
7
7
 
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
 
10
- var _reactRouter = require("react-router");
11
-
12
10
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
13
11
 
14
12
  var _components = require("@looker/components");
15
13
 
16
- var _runIt = require("@looker/run-it");
17
-
18
14
  var _FirstPage = require("@styled-icons/material/FirstPage");
19
15
 
20
16
  var _LastPage = require("@styled-icons/material/LastPage");
21
17
 
22
- var _context = require("./context");
18
+ var _extensionUtils = require("@looker/extension-utils");
23
19
 
24
- var _utils = require("./utils");
20
+ var _reactRedux = require("react-redux");
25
21
 
26
- var _components2 = require("./components");
22
+ var _reactRouterDom = require("react-router-dom");
27
23
 
28
- var _reducers = require("./reducers");
24
+ var _components2 = require("./components");
29
25
 
30
26
  var _routes = require("./routes");
31
27
 
@@ -33,49 +29,46 @@ var _lodeUtils = require("./utils/lodeUtils");
33
29
 
34
30
  var _state = require("./state");
35
31
 
32
+ var _utils = require("./utils");
33
+
36
34
  var _templateObject;
37
35
 
38
36
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
39
37
 
40
38
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
41
39
 
42
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
43
-
44
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
45
-
46
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
47
-
48
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
49
-
50
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
51
-
52
40
  function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
53
41
 
54
42
  var BodyOverride = (0, _styledComponents.createGlobalStyle)(_templateObject || (_templateObject = _taggedTemplateLiteral([" html { height: 100%; overflow: hidden; } "])));
55
- exports.BodyOverride = BodyOverride;
56
43
 
57
44
  var ApiExplorer = _ref => {
45
+ var _location$pathname2;
46
+
58
47
  var {
59
- specs,
60
- envAdaptor,
61
- setVersionsUrl,
62
- exampleLodeUrl = 'https://raw.githubusercontent.com/looker-open-source/sdk-codegen/main/examplesIndex.json',
48
+ adaptor,
49
+ examplesLodeUrl = 'https://raw.githubusercontent.com/looker-open-source/sdk-codegen/main/examplesIndex.json',
63
50
  declarationsLodeUrl = "".concat(_lodeUtils.apixFilesHost, "/declarationsIndex.json"),
64
51
  headless = false
65
52
  } = _ref;
53
+ (0, _state.useSettingStoreState)();
54
+ (0, _state.useLodesStoreState)();
55
+ var {
56
+ working,
57
+ description
58
+ } = (0, _state.useSpecStoreState)();
59
+ var specs = (0, _reactRedux.useSelector)(_state.selectSpecs);
60
+ var spec = (0, _reactRedux.useSelector)(_state.selectCurrentSpec);
66
61
  var {
67
- initialized
68
- } = (0, _state.useSettingsStoreState)();
62
+ initLodesAction
63
+ } = (0, _state.useLodeActions)();
69
64
  var {
70
- initAction
71
- } = (0, _state.useActions)();
72
- var location = (0, _reactRouter.useLocation)();
73
- var oauthReturn = location.pathname === "/".concat(_utils.oAuthPath);
74
- var [specState, specDispatch] = (0, _react.useReducer)(_reducers.specReducer, (0, _reducers.initDefaultSpecState)(specs, location));
65
+ initSettingsAction
66
+ } = (0, _state.useSettingActions)();
75
67
  var {
76
- spec
77
- } = specState;
78
- var [lode, setLode] = (0, _react.useState)(_context.defaultLodeContextValue);
68
+ initSpecsAction,
69
+ setCurrentSpecAction
70
+ } = (0, _state.useSpecActions)();
71
+ var location = (0, _reactRouterDom.useLocation)();
79
72
  var [hasNavigation, setHasNavigation] = (0, _react.useState)(true);
80
73
 
81
74
  var toggleNavigation = target => setHasNavigation(target || !hasNavigation);
@@ -85,11 +78,30 @@ var ApiExplorer = _ref => {
85
78
  setHasNavigation(currentHasNavigation => !currentHasNavigation);
86
79
  }
87
80
  }, []);
81
+ (0, _extensionUtils.registerEnvAdaptor)(adaptor);
88
82
  (0, _react.useEffect)(() => {
89
- (0, _utils.registerEnvAdaptor)(envAdaptor);
90
- initAction();
91
- return () => (0, _utils.unregisterEnvAdaptor)();
83
+ initSettingsAction();
84
+ initLodesAction({
85
+ examplesLodeUrl,
86
+ declarationsLodeUrl
87
+ });
88
+ var specKey = (0, _utils.getSpecKey)(location);
89
+ initSpecsAction({
90
+ specKey
91
+ });
92
+ return () => (0, _extensionUtils.unregisterEnvAdaptor)();
92
93
  }, []);
94
+ (0, _react.useEffect)(() => {
95
+ var _location$pathname;
96
+
97
+ var maybeSpec = (_location$pathname = location.pathname) === null || _location$pathname === void 0 ? void 0 : _location$pathname.split('/')[1];
98
+
99
+ if (spec && maybeSpec && maybeSpec !== _utils.diffPath && maybeSpec !== spec.key) {
100
+ setCurrentSpecAction({
101
+ currentSpecKey: maybeSpec
102
+ });
103
+ }
104
+ }, [location.pathname, spec]);
93
105
  (0, _react.useEffect)(() => {
94
106
  if (headless) {
95
107
  window.addEventListener('message', hasNavigationToggle);
@@ -101,56 +113,30 @@ var ApiExplorer = _ref => {
101
113
  }
102
114
  };
103
115
  }, [headless, hasNavigationToggle]);
104
- (0, _react.useEffect)(() => {
105
- var loadSpec = function () {
106
- var _ref2 = _asyncToGenerator(function* () {
107
- if (!spec.api) {
108
- try {
109
- var newSpec = _objectSpread({}, spec);
110
-
111
- var api = yield (0, _runIt.fallbackFetch)(newSpec, _runIt.funFetch);
112
-
113
- if (api) {
114
- spec.api = api;
115
- specDispatch((0, _reducers.updateSpecApi)(spec.key, api));
116
- }
117
- } catch (error) {
118
- console.error(error);
119
- }
120
- }
121
- });
116
+ var themeOverrides = adaptor.themeOverrides();
117
+ var neededSpec = (_location$pathname2 = location.pathname) === null || _location$pathname2 === void 0 ? void 0 : _location$pathname2.split('/')[1];
122
118
 
123
- return function loadSpec() {
124
- return _ref2.apply(this, arguments);
125
- };
126
- }();
119
+ if (!neededSpec || neededSpec === _utils.diffPath) {
120
+ neededSpec = spec === null || spec === void 0 ? void 0 : spec.key;
121
+ }
127
122
 
128
- if (!oauthReturn) {
129
- loadSpec();
130
- }
131
- }, [spec, location]);
132
- (0, _react.useEffect)(() => {
133
- (0, _utils.getLoded)(exampleLodeUrl, declarationsLodeUrl).then(resp => setLode(resp));
134
- }, [exampleLodeUrl, declarationsLodeUrl]);
135
- var themeOverrides = envAdaptor.themeOverrides();
136
123
  return _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_components.ComponentsProvider, {
137
124
  loadGoogleFonts: themeOverrides.loadGoogleFonts,
138
125
  themeCustomizations: themeOverrides.themeCustomizations
139
- }, !initialized ? _react.default.createElement(_components2.Loader, {
140
- message: "Initializing",
126
+ }, working || !neededSpec || neededSpec !== spec.key ? _react.default.createElement(_components2.Loader, {
127
+ message: description,
141
128
  themeOverrides: themeOverrides
142
129
  }) : _react.default.createElement(_components2.ErrorBoundary, {
143
- logError: envAdaptor.logError.bind(envAdaptor)
144
- }, _react.default.createElement(_context.LodeContext.Provider, {
145
- value: _objectSpread({}, lode)
146
- }, _react.default.createElement(_components.Page, {
130
+ logError: adaptor.logError.bind(adaptor)
131
+ }, _react.default.createElement(_components2.Banner, {
132
+ adaptor: adaptor,
133
+ specs: specs
134
+ }), _react.default.createElement(_components.Page, {
147
135
  style: {
148
136
  overflow: 'hidden'
149
137
  }
150
138
  }, !headless && _react.default.createElement(_components2.Header, {
151
- specs: specs,
152
139
  spec: spec,
153
- specDispatch: specDispatch,
154
140
  toggleNavigation: toggleNavigation
155
141
  }), _react.default.createElement(_components.Layout, {
156
142
  hasAside: true,
@@ -179,37 +165,29 @@ var ApiExplorer = _ref => {
179
165
  mb: "u3",
180
166
  appearance: "light"
181
167
  }), _react.default.createElement(_components2.SelectorContainer, {
182
- ml: "large",
183
- mr: "large",
184
- specs: specs,
185
168
  spec: spec,
186
- specDispatch: specDispatch
169
+ ml: "large",
170
+ mr: "large"
187
171
  }))), hasNavigation && _react.default.createElement(_components2.SideNav, {
188
172
  headless: headless,
189
- specs: specs,
190
- spec: spec,
191
- specDispatch: specDispatch
192
- })), oauthReturn && _react.default.createElement(_runIt.OAuthScene, null), !oauthReturn && spec.api && _react.default.createElement(_routes.AppRouter, {
193
- api: spec.api,
173
+ spec: spec
174
+ })), _react.default.createElement(_routes.AppRouter, {
194
175
  specKey: spec.key,
176
+ api: spec.api,
195
177
  specs: specs,
196
- toggleNavigation: toggleNavigation,
197
- envAdaptor: envAdaptor,
198
- setVersionsUrl: setVersionsUrl
199
- })))))), !headless && _react.default.createElement(BodyOverride, null));
178
+ toggleNavigation: toggleNavigation
179
+ }))))), !headless && _react.default.createElement(BodyOverride, null));
200
180
  };
201
181
 
182
+ exports.ApiExplorer = ApiExplorer;
202
183
  var AsideBorder = (0, _styledComponents.default)(_components.Aside).withConfig({
203
184
  displayName: "ApiExplorer__AsideBorder",
204
185
  componentId: "sc-1ynh530-0"
205
- })(["width:", ";"], _ref3 => {
186
+ })(["width:", ";"], _ref2 => {
206
187
  var {
207
188
  isOpen,
208
189
  headless
209
- } = _ref3;
190
+ } = _ref2;
210
191
  return isOpen ? '20rem' : headless ? '2.75rem' : '0rem';
211
192
  });
212
- exports.AsideBorder = AsideBorder;
213
- var _default = ApiExplorer;
214
- exports.default = _default;
215
193
  //# sourceMappingURL=ApiExplorer.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ApiExplorer.tsx"],"names":["BodyOverride","createGlobalStyle","ApiExplorer","specs","envAdaptor","setVersionsUrl","exampleLodeUrl","declarationsLodeUrl","apixFilesHost","headless","initialized","initAction","location","oauthReturn","pathname","oAuthPath","specState","specDispatch","specReducer","spec","lode","setLode","defaultLodeContextValue","hasNavigation","setHasNavigation","toggleNavigation","target","hasNavigationToggle","e","origin","window","data","action","currentHasNavigation","addEventListener","removeEventListener","loadSpec","api","newSpec","funFetch","key","error","console","then","resp","themeOverrides","loadGoogleFonts","themeCustomizations","logError","bind","overflow","HEADER_TOGGLE_LABEL","AsideBorder","Aside","isOpen"],"mappings":"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","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type { FC } from 'react'\nimport React, { useReducer, useState, useEffect, useCallback } from 'react'\nimport { useLocation } from 'react-router'\nimport styled, { createGlobalStyle } from 'styled-components'\nimport {\n Aside,\n ComponentsProvider,\n Divider,\n Heading,\n IconButton,\n Layout,\n Page,\n Space,\n} from '@looker/components'\nimport type { SpecList } from '@looker/sdk-codegen'\nimport type { RunItSetter } from '@looker/run-it'\nimport { funFetch, fallbackFetch, OAuthScene } from '@looker/run-it'\nimport { FirstPage } from '@styled-icons/material/FirstPage'\nimport { LastPage } from '@styled-icons/material/LastPage'\n\nimport { LodeContext, defaultLodeContextValue } from './context'\nimport type { IApixEnvAdaptor } from './utils'\nimport {\n getLoded,\n oAuthPath,\n registerEnvAdaptor,\n unregisterEnvAdaptor,\n} from './utils'\nimport {\n Header,\n SideNav,\n ErrorBoundary,\n Loader,\n SelectorContainer,\n HEADER_TOGGLE_LABEL,\n} from './components'\nimport { specReducer, initDefaultSpecState, updateSpecApi } from './reducers'\nimport { AppRouter } from './routes'\nimport { apixFilesHost } from './utils/lodeUtils'\nimport { useActions, useSettingsStoreState } from './state'\n\nexport interface ApiExplorerProps {\n specs: SpecList\n envAdaptor: IApixEnvAdaptor\n setVersionsUrl: RunItSetter\n exampleLodeUrl?: string\n declarationsLodeUrl?: string\n headless?: boolean\n}\n\nexport const BodyOverride = createGlobalStyle` html { height: 100%; overflow: hidden; } `\n\nconst ApiExplorer: FC<ApiExplorerProps> = ({\n specs,\n envAdaptor,\n setVersionsUrl,\n exampleLodeUrl = 'https://raw.githubusercontent.com/looker-open-source/sdk-codegen/main/examplesIndex.json',\n declarationsLodeUrl = `${apixFilesHost}/declarationsIndex.json`,\n headless = false,\n}) => {\n const { initialized } = useSettingsStoreState()\n const { initAction } = useActions()\n const location = useLocation()\n const oauthReturn = location.pathname === `/${oAuthPath}`\n const [specState, specDispatch] = useReducer(\n specReducer,\n initDefaultSpecState(specs, location)\n )\n const { spec } = specState\n\n const [lode, setLode] = useState(defaultLodeContextValue)\n\n const [hasNavigation, setHasNavigation] = useState(true)\n const toggleNavigation = (target?: boolean) =>\n setHasNavigation(target || !hasNavigation)\n\n const hasNavigationToggle = useCallback((e: MessageEvent<any>) => {\n if (e.origin === window.origin && e.data.action === 'toggle_sidebar') {\n setHasNavigation((currentHasNavigation) => !currentHasNavigation)\n }\n }, [])\n\n useEffect(() => {\n registerEnvAdaptor(envAdaptor)\n initAction()\n\n return () => unregisterEnvAdaptor()\n }, [])\n\n useEffect(() => {\n if (headless) {\n window.addEventListener('message', hasNavigationToggle)\n }\n return () => {\n if (headless) {\n window.removeEventListener('message', hasNavigationToggle)\n }\n }\n }, [headless, hasNavigationToggle])\n\n useEffect(() => {\n const loadSpec = async () => {\n if (!spec.api) {\n try {\n const newSpec = { ...spec }\n const api = await fallbackFetch(newSpec, funFetch)\n if (api) {\n spec.api = api\n specDispatch(updateSpecApi(spec.key, api))\n }\n } catch (error) {\n console.error(error)\n }\n }\n }\n if (!oauthReturn) {\n loadSpec()\n }\n }, [spec, location])\n\n useEffect(() => {\n getLoded(exampleLodeUrl, declarationsLodeUrl).then((resp) => setLode(resp))\n }, [exampleLodeUrl, declarationsLodeUrl])\n\n const themeOverrides = envAdaptor.themeOverrides()\n\n return (\n <>\n <ComponentsProvider\n loadGoogleFonts={themeOverrides.loadGoogleFonts}\n themeCustomizations={themeOverrides.themeCustomizations}\n >\n {!initialized ? (\n <Loader message=\"Initializing\" themeOverrides={themeOverrides} />\n ) : (\n <ErrorBoundary logError={envAdaptor.logError.bind(envAdaptor)}>\n <LodeContext.Provider value={{ ...lode }}>\n <Page style={{ overflow: 'hidden' }}>\n {!headless && (\n <Header\n specs={specs}\n spec={spec}\n specDispatch={specDispatch}\n toggleNavigation={toggleNavigation}\n />\n )}\n <Layout hasAside height=\"100%\">\n <AsideBorder\n borderRight\n isOpen={hasNavigation}\n headless={headless}\n >\n {headless && (\n <>\n <Space\n alignItems=\"center\"\n py=\"u3\"\n px={hasNavigation ? 'u5' : '0'}\n justifyContent={\n hasNavigation ? 'space-between' : 'center'\n }\n >\n {hasNavigation && (\n <Heading\n as=\"h2\"\n fontSize=\"xsmall\"\n fontWeight=\"bold\"\n color=\"text2\"\n >\n API DOCUMENTATION\n </Heading>\n )}\n <IconButton\n size=\"xsmall\"\n shape=\"round\"\n icon={hasNavigation ? <FirstPage /> : <LastPage />}\n label={HEADER_TOGGLE_LABEL}\n onClick={() => toggleNavigation()}\n />\n </Space>\n {hasNavigation && (\n <>\n <Divider mb=\"u3\" appearance=\"light\" />\n <SelectorContainer\n ml=\"large\"\n mr=\"large\"\n specs={specs}\n spec={spec}\n specDispatch={specDispatch}\n />\n </>\n )}\n </>\n )}\n {hasNavigation && (\n <SideNav\n headless={headless}\n specs={specs}\n spec={spec}\n specDispatch={specDispatch}\n />\n )}\n </AsideBorder>\n {oauthReturn && <OAuthScene />}\n {!oauthReturn && spec.api && (\n <AppRouter\n api={spec.api}\n specKey={spec.key}\n specs={specs}\n toggleNavigation={toggleNavigation}\n envAdaptor={envAdaptor}\n setVersionsUrl={setVersionsUrl}\n />\n )}\n </Layout>\n </Page>\n </LodeContext.Provider>\n </ErrorBoundary>\n )}\n </ComponentsProvider>\n {!headless && <BodyOverride />}\n </>\n )\n}\n\nexport const AsideBorder = styled(Aside)<{\n isOpen: boolean\n headless: boolean\n}>`\n width: ${({ isOpen, headless }) =>\n isOpen ? '20rem' : headless ? '2.75rem' : '0rem'};\n`\nexport default ApiExplorer\n"],"file":"ApiExplorer.js"}
1
+ {"version":3,"sources":["../src/ApiExplorer.tsx"],"names":["BodyOverride","createGlobalStyle","ApiExplorer","adaptor","examplesLodeUrl","declarationsLodeUrl","apixFilesHost","headless","working","description","specs","selectSpecs","spec","selectCurrentSpec","initLodesAction","initSettingsAction","initSpecsAction","setCurrentSpecAction","location","hasNavigation","setHasNavigation","toggleNavigation","target","hasNavigationToggle","e","origin","window","data","action","currentHasNavigation","specKey","maybeSpec","pathname","split","diffPath","key","currentSpecKey","addEventListener","removeEventListener","themeOverrides","neededSpec","loadGoogleFonts","themeCustomizations","logError","bind","overflow","HEADER_TOGGLE_LABEL","api","AsideBorder","Aside","isOpen"],"mappings":";;;;;;;AA2BA;;AACA;;AACA;;AAUA;;AACA;;AACA;;AAIA;;AACA;;AAGA;;AASA;;AACA;;AACA;;AAUA;;;;;;;;;;AASA,IAAMA,YAAY,OAAGC,mCAAH,gHAAlB;;AAEO,IAAMC,WAAiC,GAAG,QAK3C;AAAA;;AAAA,MAL4C;AAChDC,IAAAA,OADgD;AAEhDC,IAAAA,eAAe,GAAG,0FAF8B;AAGhDC,IAAAA,mBAAmB,aAAMC,wBAAN,4BAH6B;AAIhDC,IAAAA,QAAQ,GAAG;AAJqC,GAK5C;AACJ;AACA;AACA,MAAM;AAAEC,IAAAA,OAAF;AAAWC,IAAAA;AAAX,MAA2B,+BAAjC;AACA,MAAMC,KAAK,GAAG,6BAAYC,kBAAZ,CAAd;AACA,MAAMC,IAAI,GAAG,6BAAYC,wBAAZ,CAAb;AACA,MAAM;AAAEC,IAAAA;AAAF,MAAsB,4BAA5B;AACA,MAAM;AAAEC,IAAAA;AAAF,MAAyB,+BAA/B;AACA,MAAM;AAAEC,IAAAA,eAAF;AAAmBC,IAAAA;AAAnB,MAA4C,4BAAlD;AAEA,MAAMC,QAAQ,GAAG,kCAAjB;AACA,MAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoC,qBAAS,IAAT,CAA1C;;AACA,MAAMC,gBAAgB,GAAIC,MAAD,IACvBF,gBAAgB,CAACE,MAAM,IAAI,CAACH,aAAZ,CADlB;;AAGA,MAAMI,mBAAmB,GAAG,wBAAaC,CAAD,IAA0B;AAChE,QAAIA,CAAC,CAACC,MAAF,KAAaC,MAAM,CAACD,MAApB,IAA8BD,CAAC,CAACG,IAAF,CAAOC,MAAP,KAAkB,gBAApD,EAAsE;AACpER,MAAAA,gBAAgB,CAAES,oBAAD,IAA0B,CAACA,oBAA5B,CAAhB;AACD;AACF,GAJ2B,EAIzB,EAJyB,CAA5B;AAMA,0CAAmB1B,OAAnB;AAEA,wBAAU,MAAM;AACdY,IAAAA,kBAAkB;AAClBD,IAAAA,eAAe,CAAC;AAAEV,MAAAA,eAAF;AAAmBC,MAAAA;AAAnB,KAAD,CAAf;AAEA,QAAMyB,OAAO,GAAG,uBAAWZ,QAAX,CAAhB;AACAF,IAAAA,eAAe,CAAC;AAAEc,MAAAA;AAAF,KAAD,CAAf;AACA,WAAO,MAAM,2CAAb;AACD,GAPD,EAOG,EAPH;AASA,wBAAU,MAAM;AAAA;;AACd,QAAMC,SAAS,yBAAGb,QAAQ,CAACc,QAAZ,uDAAG,mBAAmBC,KAAnB,CAAyB,GAAzB,EAA8B,CAA9B,CAAlB;;AACA,QAAIrB,IAAI,IAAImB,SAAR,IAAqBA,SAAS,KAAKG,eAAnC,IAA+CH,SAAS,KAAKnB,IAAI,CAACuB,GAAtE,EAA2E;AACzElB,MAAAA,oBAAoB,CAAC;AAAEmB,QAAAA,cAAc,EAAEL;AAAlB,OAAD,CAApB;AACD;AACF,GALD,EAKG,CAACb,QAAQ,CAACc,QAAV,EAAoBpB,IAApB,CALH;AAOA,wBAAU,MAAM;AACd,QAAIL,QAAJ,EAAc;AACZmB,MAAAA,MAAM,CAACW,gBAAP,CAAwB,SAAxB,EAAmCd,mBAAnC;AACD;;AACD,WAAO,MAAM;AACX,UAAIhB,QAAJ,EAAc;AACZmB,QAAAA,MAAM,CAACY,mBAAP,CAA2B,SAA3B,EAAsCf,mBAAtC;AACD;AACF,KAJD;AAKD,GATD,EASG,CAAChB,QAAD,EAAWgB,mBAAX,CATH;AAWA,MAAMgB,cAAc,GAAGpC,OAAO,CAACoC,cAAR,EAAvB;AAEA,MAAIC,UAAU,0BAAGtB,QAAQ,CAACc,QAAZ,wDAAG,oBAAmBC,KAAnB,CAAyB,GAAzB,EAA8B,CAA9B,CAAjB;;AACA,MAAI,CAACO,UAAD,IAAeA,UAAU,KAAKN,eAAlC,EAA4C;AAC1CM,IAAAA,UAAU,GAAG5B,IAAH,aAAGA,IAAH,uBAAGA,IAAI,CAAEuB,GAAnB;AACD;;AAED,SACE,4DACE,6BAAC,8BAAD;AACE,IAAA,eAAe,EAAEI,cAAc,CAACE,eADlC;AAEE,IAAA,mBAAmB,EAAEF,cAAc,CAACG;AAFtC,KAIGlC,OAAO,IAAI,CAACgC,UAAZ,IAA0BA,UAAU,KAAK5B,IAAI,CAACuB,GAA9C,GACC,6BAAC,mBAAD;AAAQ,IAAA,OAAO,EAAE1B,WAAjB;AAA8B,IAAA,cAAc,EAAE8B;AAA9C,IADD,GAGC,6BAAC,0BAAD;AAAe,IAAA,QAAQ,EAAEpC,OAAO,CAACwC,QAAR,CAAiBC,IAAjB,CAAsBzC,OAAtB;AAAzB,KACE,6BAAC,mBAAD;AAAQ,IAAA,OAAO,EAAEA,OAAjB;AAA0B,IAAA,KAAK,EAAEO;AAAjC,IADF,EAEE,6BAAC,gBAAD;AAAM,IAAA,KAAK,EAAE;AAAEmC,MAAAA,QAAQ,EAAE;AAAZ;AAAb,KACG,CAACtC,QAAD,IACC,6BAAC,mBAAD;AAAQ,IAAA,IAAI,EAAEK,IAAd;AAAoB,IAAA,gBAAgB,EAAES;AAAtC,IAFJ,EAIE,6BAAC,kBAAD;AAAQ,IAAA,QAAQ,MAAhB;AAAiB,IAAA,MAAM,EAAC;AAAxB,KACE,6BAAC,WAAD;AACE,IAAA,WAAW,MADb;AAEE,IAAA,MAAM,EAAEF,aAFV;AAGE,IAAA,QAAQ,EAAEZ;AAHZ,KAKGA,QAAQ,IACP,4DACE,6BAAC,iBAAD;AACE,IAAA,UAAU,EAAC,QADb;AAEE,IAAA,EAAE,EAAC,IAFL;AAGE,IAAA,EAAE,EAAEY,aAAa,GAAG,IAAH,GAAU,GAH7B;AAIE,IAAA,cAAc,EACZA,aAAa,GAAG,eAAH,GAAqB;AALtC,KAQGA,aAAa,IACZ,6BAAC,mBAAD;AACE,IAAA,EAAE,EAAC,IADL;AAEE,IAAA,QAAQ,EAAC,QAFX;AAGE,IAAA,UAAU,EAAC,MAHb;AAIE,IAAA,KAAK,EAAC;AAJR,yBATJ,EAkBE,6BAAC,sBAAD;AACE,IAAA,IAAI,EAAC,QADP;AAEE,IAAA,KAAK,EAAC,OAFR;AAGE,IAAA,IAAI,EAAEA,aAAa,GAAG,6BAAC,oBAAD,OAAH,GAAmB,6BAAC,kBAAD,OAHxC;AAIE,IAAA,KAAK,EAAE2B,gCAJT;AAKE,IAAA,OAAO,EAAE,MAAMzB,gBAAgB;AALjC,IAlBF,CADF,EA2BGF,aAAa,IACZ,4DACE,6BAAC,mBAAD;AAAS,IAAA,EAAE,EAAC,IAAZ;AAAiB,IAAA,UAAU,EAAC;AAA5B,IADF,EAEE,6BAAC,8BAAD;AACE,IAAA,IAAI,EAAEP,IADR;AAEE,IAAA,EAAE,EAAC,OAFL;AAGE,IAAA,EAAE,EAAC;AAHL,IAFF,CA5BJ,CANJ,EA6CGO,aAAa,IAAI,6BAAC,oBAAD;AAAS,IAAA,QAAQ,EAAEZ,QAAnB;AAA6B,IAAA,IAAI,EAAEK;AAAnC,IA7CpB,CADF,EAgDE,6BAAC,iBAAD;AACE,IAAA,OAAO,EAAEA,IAAI,CAACuB,GADhB;AAEE,IAAA,GAAG,EAAEvB,IAAI,CAACmC,GAFZ;AAGE,IAAA,KAAK,EAAErC,KAHT;AAIE,IAAA,gBAAgB,EAAEW;AAJpB,IAhDF,CAJF,CAFF,CAPJ,CADF,EAyEG,CAACd,QAAD,IAAa,6BAAC,YAAD,OAzEhB,CADF;AA6ED,CA3IM;;;AA6IP,IAAMyC,WAAW,GAAG,+BAAOC,iBAAP,CAAH;AAAA;AAAA;AAAA,oBAIN;AAAA,MAAC;AAAEC,IAAAA,MAAF;AAAU3C,IAAAA;AAAV,GAAD;AAAA,SACP2C,MAAM,GAAG,OAAH,GAAa3C,QAAQ,GAAG,SAAH,GAAe,MADnC;AAAA,CAJM,CAAjB","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport type { FC } from 'react'\nimport React, { useState, useEffect, useCallback } from 'react'\nimport styled, { createGlobalStyle } from 'styled-components'\nimport {\n Aside,\n ComponentsProvider,\n Divider,\n Heading,\n IconButton,\n Layout,\n Page,\n Space,\n} from '@looker/components'\nimport { FirstPage } from '@styled-icons/material/FirstPage'\nimport { LastPage } from '@styled-icons/material/LastPage'\nimport {\n registerEnvAdaptor,\n unregisterEnvAdaptor,\n} from '@looker/extension-utils'\nimport { useSelector } from 'react-redux'\nimport { useLocation } from 'react-router-dom'\n\nimport type { IApixAdaptor } from './utils'\nimport {\n Header,\n SideNav,\n ErrorBoundary,\n SelectorContainer,\n HEADER_TOGGLE_LABEL,\n Loader,\n Banner,\n} from './components'\nimport { AppRouter } from './routes'\nimport { apixFilesHost } from './utils/lodeUtils'\nimport {\n useSettingActions,\n useSettingStoreState,\n useLodeActions,\n useLodesStoreState,\n useSpecActions,\n useSpecStoreState,\n selectSpecs,\n selectCurrentSpec,\n} from './state'\nimport { getSpecKey, diffPath } from './utils'\n\nexport interface ApiExplorerProps {\n adaptor: IApixAdaptor\n examplesLodeUrl?: string\n declarationsLodeUrl?: string\n headless?: boolean\n}\n\nconst BodyOverride = createGlobalStyle` html { height: 100%; overflow: hidden; } `\n\nexport const ApiExplorer: FC<ApiExplorerProps> = ({\n adaptor,\n examplesLodeUrl = 'https://raw.githubusercontent.com/looker-open-source/sdk-codegen/main/examplesIndex.json',\n declarationsLodeUrl = `${apixFilesHost}/declarationsIndex.json`,\n headless = false,\n}) => {\n useSettingStoreState()\n useLodesStoreState()\n const { working, description } = useSpecStoreState()\n const specs = useSelector(selectSpecs)\n const spec = useSelector(selectCurrentSpec)\n const { initLodesAction } = useLodeActions()\n const { initSettingsAction } = useSettingActions()\n const { initSpecsAction, setCurrentSpecAction } = useSpecActions()\n\n const location = useLocation()\n const [hasNavigation, setHasNavigation] = useState(true)\n const toggleNavigation = (target?: boolean) =>\n setHasNavigation(target || !hasNavigation)\n\n const hasNavigationToggle = useCallback((e: MessageEvent<any>) => {\n if (e.origin === window.origin && e.data.action === 'toggle_sidebar') {\n setHasNavigation((currentHasNavigation) => !currentHasNavigation)\n }\n }, [])\n\n registerEnvAdaptor(adaptor)\n\n useEffect(() => {\n initSettingsAction()\n initLodesAction({ examplesLodeUrl, declarationsLodeUrl })\n\n const specKey = getSpecKey(location)\n initSpecsAction({ specKey })\n return () => unregisterEnvAdaptor()\n }, [])\n\n useEffect(() => {\n const maybeSpec = location.pathname?.split('/')[1]\n if (spec && maybeSpec && maybeSpec !== diffPath && maybeSpec !== spec.key) {\n setCurrentSpecAction({ currentSpecKey: maybeSpec })\n }\n }, [location.pathname, spec])\n\n useEffect(() => {\n if (headless) {\n window.addEventListener('message', hasNavigationToggle)\n }\n return () => {\n if (headless) {\n window.removeEventListener('message', hasNavigationToggle)\n }\n }\n }, [headless, hasNavigationToggle])\n\n const themeOverrides = adaptor.themeOverrides()\n\n let neededSpec = location.pathname?.split('/')[1]\n if (!neededSpec || neededSpec === diffPath) {\n neededSpec = spec?.key\n }\n\n return (\n <>\n <ComponentsProvider\n loadGoogleFonts={themeOverrides.loadGoogleFonts}\n themeCustomizations={themeOverrides.themeCustomizations}\n >\n {working || !neededSpec || neededSpec !== spec.key ? (\n <Loader message={description} themeOverrides={themeOverrides} />\n ) : (\n <ErrorBoundary logError={adaptor.logError.bind(adaptor)}>\n <Banner adaptor={adaptor} specs={specs} />\n <Page style={{ overflow: 'hidden' }}>\n {!headless && (\n <Header spec={spec} toggleNavigation={toggleNavigation} />\n )}\n <Layout hasAside height=\"100%\">\n <AsideBorder\n borderRight\n isOpen={hasNavigation}\n headless={headless}\n >\n {headless && (\n <>\n <Space\n alignItems=\"center\"\n py=\"u3\"\n px={hasNavigation ? 'u5' : '0'}\n justifyContent={\n hasNavigation ? 'space-between' : 'center'\n }\n >\n {hasNavigation && (\n <Heading\n as=\"h2\"\n fontSize=\"xsmall\"\n fontWeight=\"bold\"\n color=\"text2\"\n >\n API DOCUMENTATION\n </Heading>\n )}\n <IconButton\n size=\"xsmall\"\n shape=\"round\"\n icon={hasNavigation ? <FirstPage /> : <LastPage />}\n label={HEADER_TOGGLE_LABEL}\n onClick={() => toggleNavigation()}\n />\n </Space>\n {hasNavigation && (\n <>\n <Divider mb=\"u3\" appearance=\"light\" />\n <SelectorContainer\n spec={spec}\n ml=\"large\"\n mr=\"large\"\n />\n </>\n )}\n </>\n )}\n {hasNavigation && <SideNav headless={headless} spec={spec} />}\n </AsideBorder>\n <AppRouter\n specKey={spec.key}\n api={spec.api!}\n specs={specs}\n toggleNavigation={toggleNavigation}\n />\n </Layout>\n </Page>\n </ErrorBoundary>\n )}\n </ComponentsProvider>\n {!headless && <BodyOverride />}\n </>\n )\n}\n\nconst AsideBorder = styled(Aside)<{\n isOpen: boolean\n headless: boolean\n}>`\n width: ${({ isOpen, headless }) =>\n isOpen ? '20rem' : headless ? '2.75rem' : '0rem'};\n`\n"],"file":"ApiExplorer.js"}
package/lib/App.d.ts ADDED
@@ -0,0 +1 @@
1
+ export {};
package/lib/App.js ADDED
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+
5
+ var _reactRouterDom = require("react-router-dom");
6
+
7
+ var _reactDom = _interopRequireDefault(require("react-dom"));
8
+
9
+ var _styledComponents = require("styled-components");
10
+
11
+ var _StandaloneApiExplorer = require("./StandaloneApiExplorer");
12
+
13
+ var _templateObject;
14
+
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+
17
+ function _taggedTemplateLiteral(strings, raw) { if (!raw) { raw = strings.slice(0); } return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
18
+
19
+ var BodyReset = (0, _styledComponents.createGlobalStyle)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n body {\n margin: 0;\n }\n"])));
20
+ var basename = window.LOOKER_DEV_PORTAL ? window.LOOKER_DEV_PORTAL.basename : undefined;
21
+ var versionsUrl = new URL('versions.json', window.location.origin).toString();
22
+
23
+ _reactDom.default.render(_react.default.createElement(_reactRouterDom.BrowserRouter, {
24
+ basename: basename
25
+ }, _react.default.createElement(_StandaloneApiExplorer.StandaloneApiExplorer, {
26
+ versionsUrl: versionsUrl,
27
+ headless: !!basename
28
+ }), _react.default.createElement(BodyReset, null)), document.getElementById('container'));
29
+ //# sourceMappingURL=App.js.map
package/lib/App.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/App.tsx"],"names":["BodyReset","createGlobalStyle","basename","window","LOOKER_DEV_PORTAL","undefined","versionsUrl","URL","location","origin","toString","ReactDOM","render","document","getElementById"],"mappings":";;AA0BA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,SAAS,OAAGC,mCAAH,uGAAf;AAMA,IAAMC,QAAQ,GAAIC,MAAD,CAAgBC,iBAAhB,GACZD,MAAD,CAAgBC,iBAAhB,CAAkCF,QADrB,GAEbG,SAFJ;AAIA,IAAMC,WAAW,GAAG,IAAIC,GAAJ,CAClB,eADkB,EAEjBJ,MAAD,CAAgBK,QAAhB,CAAyBC,MAFP,EAGlBC,QAHkB,EAApB;;AAKAC,kBAASC,MAAT,CACE,6BAAC,6BAAD;AAAQ,EAAA,QAAQ,EAAEV;AAAlB,GACE,6BAAC,4CAAD;AAAuB,EAAA,WAAW,EAAEI,WAApC;AAAiD,EAAA,QAAQ,EAAE,CAAC,CAACJ;AAA7D,EADF,EAEE,6BAAC,SAAD,OAFF,CADF,EAKEW,QAAQ,CAACC,cAAT,CAAwB,WAAxB,CALF","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport React from 'react'\nimport { BrowserRouter as Router } from 'react-router-dom'\nimport ReactDOM from 'react-dom'\nimport { createGlobalStyle } from 'styled-components'\nimport { StandaloneApiExplorer } from './StandaloneApiExplorer'\n\nconst BodyReset = createGlobalStyle`\n body {\n margin: 0;\n }\n`\n\nconst basename = (window as any).LOOKER_DEV_PORTAL\n ? (window as any).LOOKER_DEV_PORTAL.basename\n : undefined\n\nconst versionsUrl = new URL(\n 'versions.json',\n (window as any).location.origin\n).toString()\n\nReactDOM.render(\n <Router basename={basename}>\n <StandaloneApiExplorer versionsUrl={versionsUrl} headless={!!basename} />\n <BodyReset />\n </Router>,\n document.getElementById('container')\n)\n"],"file":"App.js"}