@looker/api-explorer 0.9.19 → 0.9.25

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 (699) hide show
  1. package/CHANGELOG.md +135 -1
  2. package/e2e/e2e.spec.ts +6 -5
  3. package/lib/ApiExplorer.d.ts +7 -38
  4. package/lib/ApiExplorer.js +90 -71
  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.d.ts +1 -1
  10. package/lib/StandaloneApiExplorer.js +10 -21
  11. package/lib/StandaloneApiExplorer.js.map +1 -1
  12. package/lib/components/DocActivityType/DocActivityType.d.ts +2 -2
  13. package/lib/components/DocActivityType/DocActivityType.js.map +1 -1
  14. package/lib/components/DocCode/DocCode.d.ts +1 -1
  15. package/lib/components/DocCode/DocCode.js +6 -10
  16. package/lib/components/DocCode/DocCode.js.map +1 -1
  17. package/lib/components/DocMarkdown/DocMarkdown.d.ts +1 -1
  18. package/lib/components/DocMarkdown/DocMarkdown.js +13 -15
  19. package/lib/components/DocMarkdown/DocMarkdown.js.map +1 -1
  20. package/lib/components/DocMethodSummary/DocMethodSummary.d.ts +2 -2
  21. package/lib/components/DocMethodSummary/DocMethodSummary.js +1 -1
  22. package/lib/components/DocMethodSummary/DocMethodSummary.js.map +1 -1
  23. package/lib/components/DocMethodSummary/DocSummaryStatus.d.ts +2 -3
  24. package/lib/components/DocMethodSummary/DocSummaryStatus.js +3 -3
  25. package/lib/components/DocMethodSummary/DocSummaryStatus.js.map +1 -1
  26. package/lib/components/DocMethodSummary/index.d.ts +1 -0
  27. package/lib/components/DocMethodSummary/index.js +8 -0
  28. package/lib/components/DocMethodSummary/index.js.map +1 -1
  29. package/lib/components/DocMethodSummary/utils.d.ts +2 -1
  30. package/lib/components/DocMethodSummary/utils.js +24 -15
  31. package/lib/components/DocMethodSummary/utils.js.map +1 -1
  32. package/lib/components/DocPseudo/DocParam.d.ts +2 -2
  33. package/lib/components/DocPseudo/DocParam.js.map +1 -1
  34. package/lib/components/DocPseudo/DocParams.d.ts +2 -2
  35. package/lib/components/DocPseudo/DocParams.js.map +1 -1
  36. package/lib/components/DocPseudo/DocPrimaryResponse.d.ts +2 -2
  37. package/lib/components/DocPseudo/DocPrimaryResponse.js.map +1 -1
  38. package/lib/components/DocPseudo/DocPseudo.d.ts +2 -2
  39. package/lib/components/DocPseudo/DocPseudo.js.map +1 -1
  40. package/lib/components/DocRateLimited/DocRateLimited.d.ts +2 -2
  41. package/lib/components/DocRateLimited/DocRateLimited.js.map +1 -1
  42. package/lib/components/DocReferences/DocReferences.d.ts +2 -2
  43. package/lib/components/DocReferences/DocReferences.js +7 -11
  44. package/lib/components/DocReferences/DocReferences.js.map +1 -1
  45. package/lib/components/DocReferences/utils.d.ts +2 -2
  46. package/lib/components/DocReferences/utils.js +2 -28
  47. package/lib/components/DocReferences/utils.js.map +1 -1
  48. package/lib/components/DocResponses/DocResponseTypes.d.ts +3 -2
  49. package/lib/components/DocResponses/DocResponseTypes.js +3 -1
  50. package/lib/components/DocResponses/DocResponseTypes.js.map +1 -1
  51. package/lib/components/DocResponses/DocResponses.d.ts +3 -2
  52. package/lib/components/DocResponses/DocResponses.js +2 -0
  53. package/lib/components/DocResponses/DocResponses.js.map +1 -1
  54. package/lib/components/DocResponses/utils.d.ts +1 -1
  55. package/lib/components/DocResponses/utils.js.map +1 -1
  56. package/lib/components/DocSDKs/DocDeclarations.d.ts +2 -2
  57. package/lib/components/DocSDKs/DocDeclarations.js.map +1 -1
  58. package/lib/components/DocSDKs/DocSDKs.d.ts +2 -2
  59. package/lib/components/DocSDKs/DocSDKs.js +1 -1
  60. package/lib/components/DocSDKs/DocSDKs.js.map +1 -1
  61. package/lib/components/DocSDKs/utils.d.ts +1 -1
  62. package/lib/components/DocSDKs/utils.js.map +1 -1
  63. package/lib/components/DocSchema/DocSchema.d.ts +1 -1
  64. package/lib/components/DocSchema/DocSchema.js.map +1 -1
  65. package/lib/components/DocSdkUsage/DocSdkExampleCell.d.ts +1 -1
  66. package/lib/components/DocSdkUsage/DocSdkExampleCell.js.map +1 -1
  67. package/lib/components/DocSdkUsage/DocSdkUsage.d.ts +2 -2
  68. package/lib/components/DocSdkUsage/DocSdkUsage.js +4 -7
  69. package/lib/components/DocSdkUsage/DocSdkUsage.js.map +1 -1
  70. package/lib/components/DocSdkUsage/utils.d.ts +2 -2
  71. package/lib/components/DocSdkUsage/utils.js.map +1 -1
  72. package/lib/components/DocSource/DocSource.d.ts +2 -2
  73. package/lib/components/DocSource/DocSource.js +5 -7
  74. package/lib/components/DocSource/DocSource.js.map +1 -1
  75. package/lib/components/DocStatus/DocStatus.d.ts +2 -2
  76. package/lib/components/DocStatus/DocStatus.js.map +1 -1
  77. package/lib/components/DocTitle/DocTitle.d.ts +1 -1
  78. package/lib/components/DocTitle/DocTitle.js.map +1 -1
  79. package/lib/components/DocTypeSummary/DocTypeSummary.d.ts +7 -0
  80. package/lib/components/DocTypeSummary/DocTypeSummary.js +52 -0
  81. package/lib/components/DocTypeSummary/DocTypeSummary.js.map +1 -0
  82. package/lib/components/DocTypeSummary/index.d.ts +1 -0
  83. package/lib/components/DocTypeSummary/index.js +14 -0
  84. package/lib/components/DocTypeSummary/index.js.map +1 -0
  85. package/lib/components/ErrorBoundary/ErrorBoundary.js +1 -1
  86. package/lib/components/ErrorBoundary/ErrorBoundary.js.map +1 -1
  87. package/lib/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.d.ts +1 -1
  88. package/lib/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.js +152 -8
  89. package/lib/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.js.map +1 -1
  90. package/lib/components/ExploreType/ExploreProperty.d.ts +10 -7
  91. package/lib/components/ExploreType/ExploreProperty.js +14 -3
  92. package/lib/components/ExploreType/ExploreProperty.js.map +1 -1
  93. package/lib/components/ExploreType/ExploreType.d.ts +4 -2
  94. package/lib/components/ExploreType/ExploreType.js +9 -5
  95. package/lib/components/ExploreType/ExploreType.js.map +1 -1
  96. package/lib/components/ExploreType/exploreUtils.d.ts +2 -2
  97. package/lib/components/ExploreType/exploreUtils.js.map +1 -1
  98. package/lib/components/Header/Header.d.ts +5 -4
  99. package/lib/components/Header/Header.js +4 -2
  100. package/lib/components/Header/Header.js.map +1 -1
  101. package/lib/components/Header/index.d.ts +1 -1
  102. package/lib/components/Header/index.js +6 -0
  103. package/lib/components/Header/index.js.map +1 -1
  104. package/lib/components/SelectorContainer/ApiSpecSelector.d.ts +3 -3
  105. package/lib/components/SelectorContainer/ApiSpecSelector.js +3 -1
  106. package/lib/components/SelectorContainer/ApiSpecSelector.js.map +1 -1
  107. package/lib/components/SelectorContainer/SdkLanguageSelector.d.ts +1 -1
  108. package/lib/components/SelectorContainer/SdkLanguageSelector.js +7 -17
  109. package/lib/components/SelectorContainer/SdkLanguageSelector.js.map +1 -1
  110. package/lib/components/SelectorContainer/SelectorContainer.d.ts +5 -4
  111. package/lib/components/SelectorContainer/SelectorContainer.js +11 -3
  112. package/lib/components/SelectorContainer/SelectorContainer.js.map +1 -1
  113. package/lib/components/SideNav/SearchMessage.d.ts +2 -2
  114. package/lib/components/SideNav/SearchMessage.js.map +1 -1
  115. package/lib/components/SideNav/SideNav.d.ts +3 -3
  116. package/lib/components/SideNav/SideNav.js +93 -56
  117. package/lib/components/SideNav/SideNav.js.map +1 -1
  118. package/lib/components/SideNav/SideNavMethodTags.d.ts +10 -0
  119. package/lib/components/SideNav/{SideNavTags.js → SideNavMethodTags.js} +6 -6
  120. package/lib/components/SideNav/SideNavMethodTags.js.map +1 -0
  121. package/lib/components/SideNav/SideNavMethods.d.ts +5 -4
  122. package/lib/components/SideNav/SideNavMethods.js +9 -11
  123. package/lib/components/SideNav/SideNavMethods.js.map +1 -1
  124. package/lib/components/SideNav/SideNavTypeTags.d.ts +10 -0
  125. package/lib/components/SideNav/SideNavTypeTags.js +42 -0
  126. package/lib/components/SideNav/SideNavTypeTags.js.map +1 -0
  127. package/lib/components/SideNav/SideNavTypes.d.ts +8 -5
  128. package/lib/components/SideNav/SideNavTypes.js +83 -32
  129. package/lib/components/SideNav/SideNavTypes.js.map +1 -1
  130. package/lib/components/SideNav/searchUtils.d.ts +2 -2
  131. package/lib/components/SideNav/searchUtils.js +1 -1
  132. package/lib/components/SideNav/searchUtils.js.map +1 -1
  133. package/lib/components/common/Loader.d.ts +2 -2
  134. package/lib/components/common/Loader.js.map +1 -1
  135. package/lib/components/common/common.d.ts +2 -2
  136. package/lib/components/common/common.js +2 -1
  137. package/lib/components/common/common.js.map +1 -1
  138. package/lib/components/index.d.ts +4 -2
  139. package/lib/components/index.js +28 -0
  140. package/lib/components/index.js.map +1 -1
  141. package/lib/esm/ApiExplorer.js +94 -77
  142. package/lib/esm/ApiExplorer.js.map +1 -1
  143. package/lib/esm/App.js +19 -0
  144. package/lib/esm/App.js.map +1 -0
  145. package/lib/esm/StandaloneApiExplorer.js +9 -18
  146. package/lib/esm/StandaloneApiExplorer.js.map +1 -1
  147. package/lib/esm/components/DocActivityType/DocActivityType.js.map +1 -1
  148. package/lib/esm/components/DocCode/DocCode.js +5 -8
  149. package/lib/esm/components/DocCode/DocCode.js.map +1 -1
  150. package/lib/esm/components/DocMarkdown/DocMarkdown.js +10 -12
  151. package/lib/esm/components/DocMarkdown/DocMarkdown.js.map +1 -1
  152. package/lib/esm/components/DocMethodSummary/DocMethodSummary.js +1 -1
  153. package/lib/esm/components/DocMethodSummary/DocMethodSummary.js.map +1 -1
  154. package/lib/esm/components/DocMethodSummary/DocSummaryStatus.js +3 -3
  155. package/lib/esm/components/DocMethodSummary/DocSummaryStatus.js.map +1 -1
  156. package/lib/esm/components/DocMethodSummary/index.js +1 -0
  157. package/lib/esm/components/DocMethodSummary/index.js.map +1 -1
  158. package/lib/esm/components/DocMethodSummary/utils.js +24 -15
  159. package/lib/esm/components/DocMethodSummary/utils.js.map +1 -1
  160. package/lib/esm/components/DocPseudo/DocParam.js.map +1 -1
  161. package/lib/esm/components/DocPseudo/DocParams.js.map +1 -1
  162. package/lib/esm/components/DocPseudo/DocPrimaryResponse.js.map +1 -1
  163. package/lib/esm/components/DocPseudo/DocPseudo.js.map +1 -1
  164. package/lib/esm/components/DocRateLimited/DocRateLimited.js.map +1 -1
  165. package/lib/esm/components/DocReferences/DocReferences.js +5 -8
  166. package/lib/esm/components/DocReferences/DocReferences.js.map +1 -1
  167. package/lib/esm/components/DocReferences/utils.js +1 -24
  168. package/lib/esm/components/DocReferences/utils.js.map +1 -1
  169. package/lib/esm/components/DocResponses/DocResponseTypes.js +3 -1
  170. package/lib/esm/components/DocResponses/DocResponseTypes.js.map +1 -1
  171. package/lib/esm/components/DocResponses/DocResponses.js +2 -0
  172. package/lib/esm/components/DocResponses/DocResponses.js.map +1 -1
  173. package/lib/esm/components/DocResponses/utils.js.map +1 -1
  174. package/lib/esm/components/DocSDKs/DocDeclarations.js.map +1 -1
  175. package/lib/esm/components/DocSDKs/DocSDKs.js +2 -2
  176. package/lib/esm/components/DocSDKs/DocSDKs.js.map +1 -1
  177. package/lib/esm/components/DocSDKs/utils.js.map +1 -1
  178. package/lib/esm/components/DocSchema/DocSchema.js.map +1 -1
  179. package/lib/esm/components/DocSdkUsage/DocSdkExampleCell.js.map +1 -1
  180. package/lib/esm/components/DocSdkUsage/DocSdkUsage.js +6 -8
  181. package/lib/esm/components/DocSdkUsage/DocSdkUsage.js.map +1 -1
  182. package/lib/esm/components/DocSdkUsage/utils.js.map +1 -1
  183. package/lib/esm/components/DocSource/DocSource.js +4 -5
  184. package/lib/esm/components/DocSource/DocSource.js.map +1 -1
  185. package/lib/esm/components/DocStatus/DocStatus.js.map +1 -1
  186. package/lib/esm/components/DocTitle/DocTitle.js.map +1 -1
  187. package/lib/esm/components/DocTypeSummary/DocTypeSummary.js +38 -0
  188. package/lib/esm/components/DocTypeSummary/DocTypeSummary.js.map +1 -0
  189. package/lib/esm/components/DocTypeSummary/index.js +2 -0
  190. package/lib/{state/action_creators.js.map → esm/components/DocTypeSummary/index.js.map} +1 -1
  191. package/lib/esm/components/ErrorBoundary/ErrorBoundary.js +1 -1
  192. package/lib/esm/components/ErrorBoundary/ErrorBoundary.js.map +1 -1
  193. package/lib/esm/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.js +153 -6
  194. package/lib/esm/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.js.map +1 -1
  195. package/lib/esm/components/ExploreType/ExploreProperty.js +14 -3
  196. package/lib/esm/components/ExploreType/ExploreProperty.js.map +1 -1
  197. package/lib/esm/components/ExploreType/ExploreType.js +8 -4
  198. package/lib/esm/components/ExploreType/ExploreType.js.map +1 -1
  199. package/lib/esm/components/ExploreType/exploreUtils.js.map +1 -1
  200. package/lib/esm/components/Header/Header.js +2 -1
  201. package/lib/esm/components/Header/Header.js.map +1 -1
  202. package/lib/esm/components/Header/index.js +1 -1
  203. package/lib/esm/components/Header/index.js.map +1 -1
  204. package/lib/esm/components/SelectorContainer/ApiSpecSelector.js +4 -2
  205. package/lib/esm/components/SelectorContainer/ApiSpecSelector.js.map +1 -1
  206. package/lib/esm/components/SelectorContainer/SdkLanguageSelector.js +7 -12
  207. package/lib/esm/components/SelectorContainer/SdkLanguageSelector.js.map +1 -1
  208. package/lib/esm/components/SelectorContainer/SelectorContainer.js +11 -3
  209. package/lib/esm/components/SelectorContainer/SelectorContainer.js.map +1 -1
  210. package/lib/esm/components/SideNav/SearchMessage.js.map +1 -1
  211. package/lib/esm/components/SideNav/SideNav.js +95 -57
  212. package/lib/esm/components/SideNav/SideNav.js.map +1 -1
  213. package/lib/esm/components/SideNav/{SideNavTags.js → SideNavMethodTags.js} +4 -4
  214. package/lib/esm/components/SideNav/SideNavMethodTags.js.map +1 -0
  215. package/lib/esm/components/SideNav/SideNavMethods.js +9 -12
  216. package/lib/esm/components/SideNav/SideNavMethods.js.map +1 -1
  217. package/lib/esm/components/SideNav/SideNavTypeTags.js +29 -0
  218. package/lib/esm/components/SideNav/SideNavTypeTags.js.map +1 -0
  219. package/lib/esm/components/SideNav/SideNavTypes.js +84 -33
  220. package/lib/esm/components/SideNav/SideNavTypes.js.map +1 -1
  221. package/lib/esm/components/SideNav/searchUtils.js +1 -1
  222. package/lib/esm/components/SideNav/searchUtils.js.map +1 -1
  223. package/lib/esm/components/common/Loader.js.map +1 -1
  224. package/lib/esm/components/common/common.js +2 -1
  225. package/lib/esm/components/common/common.js.map +1 -1
  226. package/lib/esm/components/index.js +4 -2
  227. package/lib/esm/components/index.js.map +1 -1
  228. package/lib/esm/index.js +4 -18
  229. package/lib/esm/index.js.map +1 -1
  230. package/lib/esm/reducers/index.js +0 -1
  231. package/lib/esm/reducers/index.js.map +1 -1
  232. package/lib/esm/reducers/spec/actions.js.map +1 -1
  233. package/lib/esm/reducers/spec/reducer.js.map +1 -1
  234. package/lib/esm/reducers/spec/utils.js +7 -1
  235. package/lib/esm/reducers/spec/utils.js.map +1 -1
  236. package/lib/esm/routes/AppRouter.js +13 -15
  237. package/lib/esm/routes/AppRouter.js.map +1 -1
  238. package/lib/esm/scenes/DiffScene/DiffScene.js +65 -11
  239. package/lib/esm/scenes/DiffScene/DiffScene.js.map +1 -1
  240. package/lib/esm/scenes/DiffScene/DocDiff/DiffBanner.js.map +1 -1
  241. package/lib/esm/scenes/DiffScene/DocDiff/DiffItem.js +2 -2
  242. package/lib/esm/scenes/DiffScene/DocDiff/DiffItem.js.map +1 -1
  243. package/lib/esm/scenes/DiffScene/DocDiff/DiffLegend.js.map +1 -1
  244. package/lib/esm/scenes/DiffScene/DocDiff/DocDiff.js.map +1 -1
  245. package/lib/esm/scenes/DiffScene/DocDiff/docDiffUtils.js.map +1 -1
  246. package/lib/esm/scenes/DiffScene/diffUtils.js.map +1 -1
  247. package/lib/esm/scenes/HomeScene/HomeScene.js.map +1 -1
  248. package/lib/esm/scenes/MethodScene/MethodScene.js +41 -23
  249. package/lib/esm/scenes/MethodScene/MethodScene.js.map +1 -1
  250. package/lib/esm/scenes/MethodScene/components/DocOperation.js.map +1 -1
  251. package/lib/esm/scenes/MethodScene/components/DocRequestBody.js +3 -1
  252. package/lib/esm/scenes/MethodScene/components/DocRequestBody.js.map +1 -1
  253. package/lib/esm/scenes/{TagScene/TagScene.js → MethodTagScene/MethodTagScene.js} +16 -11
  254. package/lib/esm/scenes/MethodTagScene/MethodTagScene.js.map +1 -0
  255. package/lib/esm/scenes/MethodTagScene/index.js +2 -0
  256. package/lib/{state/reducers.js.map → esm/scenes/MethodTagScene/index.js.map} +1 -1
  257. package/lib/esm/scenes/{TagScene → MethodTagScene}/utils.js +0 -0
  258. package/lib/esm/scenes/MethodTagScene/utils.js.map +1 -0
  259. package/lib/esm/scenes/TypeScene/TypeScene.js +14 -7
  260. package/lib/esm/scenes/TypeScene/TypeScene.js.map +1 -1
  261. package/lib/esm/scenes/TypeTagScene/TypeTagScene.js +57 -0
  262. package/lib/esm/scenes/TypeTagScene/TypeTagScene.js.map +1 -0
  263. package/lib/esm/scenes/TypeTagScene/index.js +2 -0
  264. package/lib/esm/scenes/TypeTagScene/index.js.map +1 -0
  265. package/lib/esm/scenes/TypeTagScene/utils.js +8 -0
  266. package/lib/esm/scenes/TypeTagScene/utils.js.map +1 -0
  267. package/lib/esm/scenes/index.js +2 -1
  268. package/lib/esm/scenes/index.js.map +1 -1
  269. package/lib/esm/state/index.js +2 -3
  270. package/lib/esm/state/index.js.map +1 -1
  271. package/lib/esm/state/lodes/index.js +3 -0
  272. package/lib/esm/state/lodes/index.js.map +1 -0
  273. package/lib/esm/state/lodes/sagas.js +25 -0
  274. package/lib/esm/state/lodes/sagas.js.map +1 -0
  275. package/lib/esm/state/lodes/selectors.js +5 -0
  276. package/lib/esm/state/lodes/selectors.js.map +1 -0
  277. package/lib/esm/state/lodes/slice.js +30 -0
  278. package/lib/esm/state/lodes/slice.js.map +1 -0
  279. package/lib/esm/state/settings/index.js +1 -1
  280. package/lib/esm/state/settings/index.js.map +1 -1
  281. package/lib/esm/state/settings/sagas.js +59 -0
  282. package/lib/esm/state/settings/sagas.js.map +1 -0
  283. package/lib/esm/state/settings/selectors.js +6 -1
  284. package/lib/esm/state/settings/selectors.js.map +1 -1
  285. package/lib/esm/state/settings/slice.js +50 -0
  286. package/lib/esm/state/settings/slice.js.map +1 -0
  287. package/lib/esm/state/store.js +13 -3
  288. package/lib/esm/state/store.js.map +1 -1
  289. package/lib/esm/test-utils/index.js +3 -4
  290. package/lib/esm/test-utils/index.js.map +1 -1
  291. package/lib/esm/test-utils/lodes.js +12 -0
  292. package/lib/esm/test-utils/lodes.js.map +1 -0
  293. package/lib/esm/test-utils/redux.js +30 -15
  294. package/lib/esm/test-utils/redux.js.map +1 -1
  295. package/lib/esm/test-utils/router.js.map +1 -1
  296. package/lib/esm/utils/index.js +1 -2
  297. package/lib/esm/utils/index.js.map +1 -1
  298. package/lib/esm/utils/lodeUtils.js +3 -7
  299. package/lib/esm/utils/lodeUtils.js.map +1 -1
  300. package/lib/esm/utils/path.js +32 -1
  301. package/lib/esm/utils/path.js.map +1 -1
  302. package/lib/index.d.ts +4 -1
  303. package/lib/index.js +52 -23
  304. package/lib/index.js.map +1 -1
  305. package/lib/reducers/index.d.ts +0 -1
  306. package/lib/reducers/index.js +0 -13
  307. package/lib/reducers/index.js.map +1 -1
  308. package/lib/reducers/spec/actions.d.ts +1 -1
  309. package/lib/reducers/spec/actions.js.map +1 -1
  310. package/lib/reducers/spec/reducer.d.ts +2 -2
  311. package/lib/reducers/spec/reducer.js.map +1 -1
  312. package/lib/reducers/spec/utils.d.ts +3 -3
  313. package/lib/reducers/spec/utils.js +7 -1
  314. package/lib/reducers/spec/utils.js.map +1 -1
  315. package/lib/routes/AppRouter.d.ts +5 -5
  316. package/lib/routes/AppRouter.js +12 -17
  317. package/lib/routes/AppRouter.js.map +1 -1
  318. package/lib/scenes/DiffScene/DiffScene.d.ts +2 -2
  319. package/lib/scenes/DiffScene/DiffScene.js +65 -11
  320. package/lib/scenes/DiffScene/DiffScene.js.map +1 -1
  321. package/lib/scenes/DiffScene/DocDiff/DiffBanner.d.ts +2 -2
  322. package/lib/scenes/DiffScene/DocDiff/DiffBanner.js.map +1 -1
  323. package/lib/scenes/DiffScene/DocDiff/DiffItem.d.ts +3 -3
  324. package/lib/scenes/DiffScene/DocDiff/DiffItem.js +1 -1
  325. package/lib/scenes/DiffScene/DocDiff/DiffItem.js.map +1 -1
  326. package/lib/scenes/DiffScene/DocDiff/DiffLegend.d.ts +2 -2
  327. package/lib/scenes/DiffScene/DocDiff/DiffLegend.js.map +1 -1
  328. package/lib/scenes/DiffScene/DocDiff/DocDiff.d.ts +2 -2
  329. package/lib/scenes/DiffScene/DocDiff/DocDiff.js.map +1 -1
  330. package/lib/scenes/DiffScene/DocDiff/docDiffUtils.d.ts +1 -1
  331. package/lib/scenes/DiffScene/DocDiff/docDiffUtils.js.map +1 -1
  332. package/lib/scenes/DiffScene/diffUtils.d.ts +1 -1
  333. package/lib/scenes/DiffScene/diffUtils.js.map +1 -1
  334. package/lib/scenes/HomeScene/HomeScene.d.ts +2 -2
  335. package/lib/scenes/HomeScene/HomeScene.js.map +1 -1
  336. package/lib/scenes/MethodScene/MethodScene.d.ts +5 -5
  337. package/lib/scenes/MethodScene/MethodScene.js +37 -20
  338. package/lib/scenes/MethodScene/MethodScene.js.map +1 -1
  339. package/lib/scenes/MethodScene/components/DocOperation.d.ts +2 -2
  340. package/lib/scenes/MethodScene/components/DocOperation.js.map +1 -1
  341. package/lib/scenes/MethodScene/components/DocRequestBody.d.ts +3 -2
  342. package/lib/scenes/MethodScene/components/DocRequestBody.js +3 -1
  343. package/lib/scenes/MethodScene/components/DocRequestBody.js.map +1 -1
  344. package/lib/scenes/MethodTagScene/MethodTagScene.d.ts +7 -0
  345. package/lib/scenes/{TagScene/TagScene.js → MethodTagScene/MethodTagScene.js} +19 -14
  346. package/lib/scenes/MethodTagScene/MethodTagScene.js.map +1 -0
  347. package/lib/scenes/MethodTagScene/index.d.ts +1 -0
  348. package/lib/scenes/MethodTagScene/index.js +14 -0
  349. package/lib/{context/search/SearchContext.js.map → scenes/MethodTagScene/index.js.map} +1 -1
  350. package/lib/scenes/{TagScene → MethodTagScene}/utils.d.ts +1 -1
  351. package/lib/scenes/{TagScene → MethodTagScene}/utils.js +0 -0
  352. package/lib/{context/lode/index.js.map → scenes/MethodTagScene/utils.js.map} +1 -1
  353. package/lib/scenes/TypeScene/TypeScene.d.ts +2 -2
  354. package/lib/scenes/TypeScene/TypeScene.js +16 -7
  355. package/lib/scenes/TypeScene/TypeScene.js.map +1 -1
  356. package/lib/scenes/TypeTagScene/TypeTagScene.d.ts +7 -0
  357. package/lib/scenes/TypeTagScene/TypeTagScene.js +76 -0
  358. package/lib/scenes/TypeTagScene/TypeTagScene.js.map +1 -0
  359. package/lib/scenes/TypeTagScene/index.d.ts +1 -0
  360. package/lib/scenes/TypeTagScene/index.js +14 -0
  361. package/lib/{esm/state/settings/actions.js.map → scenes/TypeTagScene/index.js.map} +1 -1
  362. package/lib/scenes/TypeTagScene/utils.d.ts +2 -0
  363. package/lib/scenes/TypeTagScene/utils.js +17 -0
  364. package/lib/scenes/TypeTagScene/utils.js.map +1 -0
  365. package/lib/scenes/index.d.ts +2 -1
  366. package/lib/scenes/index.js +11 -3
  367. package/lib/scenes/index.js.map +1 -1
  368. package/lib/state/index.d.ts +2 -2
  369. package/lib/state/index.js +15 -16
  370. package/lib/state/index.js.map +1 -1
  371. package/lib/state/lodes/index.d.ts +2 -0
  372. package/lib/{reducers/search → state/lodes}/index.js +8 -8
  373. package/lib/state/lodes/index.js.map +1 -0
  374. package/lib/state/lodes/sagas.d.ts +1 -0
  375. package/lib/state/lodes/sagas.js +34 -0
  376. package/lib/state/lodes/sagas.js.map +1 -0
  377. package/lib/state/lodes/selectors.d.ts +3 -0
  378. package/lib/state/lodes/selectors.js +17 -0
  379. package/lib/state/lodes/selectors.js.map +1 -0
  380. package/lib/state/lodes/slice.d.ts +29 -0
  381. package/lib/state/lodes/slice.js +45 -0
  382. package/lib/state/lodes/slice.js.map +1 -0
  383. package/lib/state/settings/index.d.ts +1 -1
  384. package/lib/state/settings/index.js +8 -8
  385. package/lib/state/settings/index.js.map +1 -1
  386. package/lib/state/settings/sagas.d.ts +1 -0
  387. package/lib/state/settings/sagas.js +69 -0
  388. package/lib/state/settings/sagas.js.map +1 -0
  389. package/lib/state/settings/selectors.d.ts +5 -2
  390. package/lib/state/settings/selectors.js +17 -3
  391. package/lib/state/settings/selectors.js.map +1 -1
  392. package/lib/state/settings/slice.d.ts +42 -0
  393. package/lib/state/settings/slice.js +69 -0
  394. package/lib/state/settings/slice.js.map +1 -0
  395. package/lib/state/store.d.ts +10 -6
  396. package/lib/state/store.js +15 -5
  397. package/lib/state/store.js.map +1 -1
  398. package/lib/test-data/declarations.js +24 -0
  399. package/lib/test-data/declarations.js.map +1 -0
  400. package/lib/test-data/examples.js.map +1 -1
  401. package/lib/test-data/index.js +23 -0
  402. package/lib/test-data/index.js.map +1 -1
  403. package/lib/test-data/specs.js.map +1 -1
  404. package/lib/test-utils/index.d.ts +3 -4
  405. package/lib/test-utils/index.js +33 -56
  406. package/lib/test-utils/index.js.map +1 -1
  407. package/lib/test-utils/lodes.d.ts +4 -0
  408. package/lib/test-utils/lodes.js +23 -0
  409. package/lib/test-utils/lodes.js.map +1 -0
  410. package/lib/test-utils/redux.d.ts +16 -12
  411. package/lib/test-utils/redux.js +36 -17
  412. package/lib/test-utils/redux.js.map +1 -1
  413. package/lib/test-utils/router.d.ts +2 -2
  414. package/lib/test-utils/router.js.map +1 -1
  415. package/lib/utils/highlight.d.ts +1 -0
  416. package/lib/utils/index.d.ts +1 -2
  417. package/lib/utils/index.js +6 -23
  418. package/lib/utils/index.js.map +1 -1
  419. package/lib/utils/lodeUtils.d.ts +3 -3
  420. package/lib/utils/lodeUtils.js +3 -7
  421. package/lib/utils/lodeUtils.js.map +1 -1
  422. package/lib/utils/path.d.ts +3 -1
  423. package/lib/utils/path.js +36 -2
  424. package/lib/utils/path.js.map +1 -1
  425. package/package.json +22 -16
  426. package/public/Looker.3.1.json +1343 -412
  427. package/public/Looker.4.0.json +3305 -661
  428. package/src/ApiExplorer.tsx +158 -99
  429. package/src/{index.tsx → App.tsx} +1 -1
  430. package/src/StandaloneApiExplorer.tsx +13 -25
  431. package/src/components/DocActivityType/DocActivityType.tsx +3 -2
  432. package/src/components/DocCode/DocCode.tsx +7 -6
  433. package/src/components/DocMarkdown/DocMarkdown.spec.tsx +16 -11
  434. package/src/components/DocMarkdown/DocMarkdown.tsx +11 -9
  435. package/src/components/DocMethodSummary/DocMethodSummary.spec.tsx +2 -2
  436. package/src/components/DocMethodSummary/DocMethodSummary.tsx +4 -3
  437. package/src/components/DocMethodSummary/DocSummaryStatus.spec.tsx +5 -5
  438. package/src/components/DocMethodSummary/DocSummaryStatus.tsx +5 -7
  439. package/src/components/DocMethodSummary/index.tsx +1 -0
  440. package/src/components/DocMethodSummary/utils.spec.tsx +7 -7
  441. package/src/components/DocMethodSummary/utils.tsx +17 -23
  442. package/src/components/DocPseudo/DocParam.tsx +3 -2
  443. package/src/components/DocPseudo/DocParams.tsx +3 -2
  444. package/src/components/DocPseudo/DocPrimaryResponse.tsx +3 -2
  445. package/src/components/DocPseudo/DocPseudo.tsx +3 -2
  446. package/src/components/DocRateLimited/DocRateLimited.tsx +3 -2
  447. package/src/components/DocReferences/DocReferences.spec.tsx +19 -8
  448. package/src/components/DocReferences/DocReferences.tsx +10 -10
  449. package/src/components/DocReferences/utils.spec.tsx +1 -13
  450. package/src/components/DocReferences/utils.tsx +2 -36
  451. package/src/components/DocResponses/DocResponseTypes.tsx +15 -4
  452. package/src/components/DocResponses/DocResponses.spec.tsx +1 -1
  453. package/src/components/DocResponses/DocResponses.tsx +6 -4
  454. package/src/components/DocResponses/utils.ts +1 -1
  455. package/src/components/DocSDKs/DocDeclarations.tsx +3 -2
  456. package/src/components/DocSDKs/DocSDKs.spec.tsx +12 -5
  457. package/src/components/DocSDKs/DocSDKs.tsx +6 -5
  458. package/src/components/DocSDKs/utils.ts +1 -1
  459. package/src/components/DocSchema/DocSchema.tsx +2 -1
  460. package/src/components/DocSdkUsage/DocSdkExampleCell.tsx +2 -1
  461. package/src/components/DocSdkUsage/DocSdkUsage.spec.tsx +2 -2
  462. package/src/components/DocSdkUsage/DocSdkUsage.tsx +9 -7
  463. package/src/components/DocSdkUsage/utils.ts +4 -2
  464. package/src/components/DocSource/DocSource.spec.tsx +2 -1
  465. package/src/components/DocSource/DocSource.tsx +7 -4
  466. package/src/components/DocStatus/DocStatus.spec.tsx +1 -1
  467. package/src/components/DocStatus/DocStatus.tsx +3 -2
  468. package/src/components/DocTitle/DocTitle.tsx +2 -1
  469. package/src/{state/settings/reducer.spec.ts → components/DocTypeSummary/DocTypeSummary.spec.tsx} +15 -14
  470. package/src/components/DocTypeSummary/DocTypeSummary.tsx +64 -0
  471. package/src/{state/action_creators.ts → components/DocTypeSummary/index.tsx} +1 -1
  472. package/src/components/ErrorBoundary/ErrorBoundary.spec.tsx +11 -9
  473. package/src/components/ErrorBoundary/ErrorBoundary.tsx +1 -1
  474. package/src/components/ErrorBoundary/components/SomethingWentWrong/SomethingWentWrong.spec.tsx +6 -5
  475. package/src/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/SomethingWentWrongGraphic.tsx +170 -6
  476. package/src/components/ExploreType/ExploreProperty.spec.tsx +15 -6
  477. package/src/components/ExploreType/ExploreProperty.tsx +26 -12
  478. package/src/components/ExploreType/ExploreType.spec.tsx +15 -31
  479. package/src/components/ExploreType/ExploreType.tsx +13 -6
  480. package/src/components/ExploreType/exploreUtils.tsx +3 -2
  481. package/src/components/Header/Header.spec.tsx +29 -37
  482. package/src/components/Header/Header.tsx +7 -4
  483. package/src/components/Header/index.ts +1 -1
  484. package/src/components/SelectorContainer/ApiSpecSelector.spec.tsx +12 -2
  485. package/src/components/SelectorContainer/ApiSpecSelector.tsx +9 -5
  486. package/src/components/SelectorContainer/SdkLanguageSelector.spec.tsx +13 -7
  487. package/src/components/SelectorContainer/SdkLanguageSelector.tsx +7 -14
  488. package/src/components/SelectorContainer/SelectorContainer.spec.tsx +19 -25
  489. package/src/components/SelectorContainer/SelectorContainer.tsx +8 -5
  490. package/src/components/SideNav/SearchMessage.tsx +3 -2
  491. package/src/components/SideNav/SideNav.spec.tsx +28 -39
  492. package/src/components/SideNav/SideNav.tsx +102 -68
  493. package/src/components/SideNav/{SideNavTags.spec.tsx → SideNavMethodTags.spec.tsx} +10 -8
  494. package/src/components/SideNav/{SideNavTags.tsx → SideNavMethodTags.tsx} +2 -2
  495. package/src/components/SideNav/SideNavMethods.spec.tsx +9 -5
  496. package/src/components/SideNav/SideNavMethods.tsx +12 -12
  497. package/src/components/SideNav/SideNavTypeTags.spec.tsx +79 -0
  498. package/src/{context/lode/LodeContext.ts → components/SideNav/SideNavTypeTags.tsx} +26 -11
  499. package/src/components/SideNav/SideNavTypes.spec.tsx +13 -6
  500. package/src/components/SideNav/SideNavTypes.tsx +94 -43
  501. package/src/components/SideNav/{searchUtils.tsx → searchUtils.ts} +3 -3
  502. package/src/components/common/Loader.tsx +3 -2
  503. package/src/components/common/common.tsx +5 -3
  504. package/src/components/index.ts +4 -2
  505. package/src/{context/envAdaptor/index.ts → index.ts} +4 -4
  506. package/src/reducers/index.ts +0 -1
  507. package/src/reducers/spec/actions.ts +1 -1
  508. package/src/reducers/spec/reducer.spec.ts +2 -1
  509. package/src/reducers/spec/reducer.ts +5 -3
  510. package/src/reducers/spec/utils.spec.ts +1 -1
  511. package/src/reducers/spec/utils.ts +9 -4
  512. package/src/routes/AppRouter.tsx +22 -17
  513. package/src/scenes/DiffScene/DiffScene.tsx +44 -13
  514. package/src/scenes/DiffScene/DocDiff/DiffBanner.tsx +3 -2
  515. package/src/scenes/DiffScene/DocDiff/DiffItem.spec.tsx +2 -1
  516. package/src/scenes/DiffScene/DocDiff/DiffItem.tsx +6 -5
  517. package/src/scenes/DiffScene/DocDiff/DiffLegend.tsx +3 -2
  518. package/src/scenes/DiffScene/DocDiff/DocDiff.tsx +3 -2
  519. package/src/scenes/DiffScene/DocDiff/docDiffUtils.tsx +2 -7
  520. package/src/scenes/DiffScene/diffUtils.spec.ts +2 -1
  521. package/src/scenes/DiffScene/diffUtils.ts +2 -2
  522. package/src/scenes/HomeScene/HomeScene.tsx +3 -2
  523. package/src/scenes/MethodScene/MethodScene.tsx +66 -43
  524. package/src/scenes/MethodScene/components/DocOperation.tsx +3 -2
  525. package/src/scenes/MethodScene/components/DocRequestBody.spec.tsx +2 -2
  526. package/src/scenes/MethodScene/components/DocRequestBody.tsx +6 -3
  527. package/src/scenes/{TagScene/TagScene.spec.tsx → MethodTagScene/MethodTagScene.spec.tsx} +5 -5
  528. package/src/scenes/{TagScene/TagScene.tsx → MethodTagScene/MethodTagScene.tsx} +23 -16
  529. package/src/{hooks → scenes/MethodTagScene}/index.ts +1 -1
  530. package/src/scenes/{TagScene → MethodTagScene}/utils.spec.ts +1 -1
  531. package/src/scenes/{TagScene → MethodTagScene}/utils.ts +1 -1
  532. package/src/scenes/TypeScene/TypeScene.tsx +36 -24
  533. package/src/scenes/TypeTagScene/TypeTagScene.spec.tsx +103 -0
  534. package/src/scenes/TypeTagScene/TypeTagScene.tsx +93 -0
  535. package/src/scenes/{TagScene → TypeTagScene}/index.ts +1 -1
  536. package/src/{state/reducers.ts → scenes/TypeTagScene/utils.spec.ts} +8 -7
  537. package/src/{hooks/use_actions_hook.ts → scenes/TypeTagScene/utils.ts} +13 -10
  538. package/src/scenes/index.ts +2 -1
  539. package/src/state/index.ts +2 -2
  540. package/src/{reducers/search → state/lodes}/index.ts +2 -2
  541. package/src/state/lodes/sagas.spec.ts +92 -0
  542. package/src/state/{settings/reducer.ts → lodes/sagas.ts} +23 -21
  543. package/src/state/{settings/action_creators.spec.ts → lodes/selectors.spec.ts} +15 -10
  544. package/src/state/{settings/actions.ts → lodes/selectors.ts} +7 -9
  545. package/src/state/lodes/slice.ts +69 -0
  546. package/src/state/settings/index.ts +1 -1
  547. package/src/state/settings/sagas.spec.ts +121 -0
  548. package/src/state/settings/sagas.ts +79 -0
  549. package/src/state/settings/selectors.spec.ts +16 -9
  550. package/src/state/settings/selectors.ts +14 -3
  551. package/src/state/settings/slice.ts +94 -0
  552. package/src/state/store.ts +22 -8
  553. package/src/{reducers/search/actions.ts → test-data/declarations.ts} +16 -15
  554. package/src/test-data/examples.ts +1 -1
  555. package/src/test-data/index.ts +1 -0
  556. package/src/test-data/specs.ts +2 -1
  557. package/src/test-utils/index.ts +3 -14
  558. package/src/{context/search/SearchContext.ts → test-utils/lodes.tsx} +15 -16
  559. package/src/test-utils/redux.tsx +46 -26
  560. package/src/test-utils/router.tsx +3 -2
  561. package/src/utils/index.ts +7 -2
  562. package/src/utils/lodeUtils.ts +5 -7
  563. package/src/utils/path.spec.ts +17 -3
  564. package/src/utils/path.ts +54 -4
  565. package/webpack.dev.config.js +3 -0
  566. package/webpack.prod.config.js +4 -0
  567. package/lib/components/SideNav/SearchCriteriaSelector.d.ts +0 -2
  568. package/lib/components/SideNav/SearchCriteriaSelector.js +0 -57
  569. package/lib/components/SideNav/SearchCriteriaSelector.js.map +0 -1
  570. package/lib/components/SideNav/SideNavTags.d.ts +0 -9
  571. package/lib/components/SideNav/SideNavTags.js.map +0 -1
  572. package/lib/context/envAdaptor/EnvAdaptorContext.d.ts +0 -7
  573. package/lib/context/envAdaptor/EnvAdaptorContext.js +0 -18
  574. package/lib/context/envAdaptor/EnvAdaptorContext.js.map +0 -1
  575. package/lib/context/envAdaptor/index.d.ts +0 -1
  576. package/lib/context/envAdaptor/index.js +0 -20
  577. package/lib/context/envAdaptor/index.js.map +0 -1
  578. package/lib/context/index.d.ts +0 -3
  579. package/lib/context/index.js +0 -48
  580. package/lib/context/index.js.map +0 -1
  581. package/lib/context/lode/LodeContext.d.ts +0 -9
  582. package/lib/context/lode/LodeContext.js +0 -21
  583. package/lib/context/lode/LodeContext.js.map +0 -1
  584. package/lib/context/lode/index.d.ts +0 -1
  585. package/lib/context/lode/index.js +0 -20
  586. package/lib/context/search/SearchContext.d.ts +0 -9
  587. package/lib/context/search/SearchContext.js +0 -19
  588. package/lib/context/search/index.d.ts +0 -1
  589. package/lib/context/search/index.js +0 -20
  590. package/lib/context/search/index.js.map +0 -1
  591. package/lib/esm/components/SideNav/SearchCriteriaSelector.js +0 -38
  592. package/lib/esm/components/SideNav/SearchCriteriaSelector.js.map +0 -1
  593. package/lib/esm/components/SideNav/SideNavTags.js.map +0 -1
  594. package/lib/esm/context/envAdaptor/EnvAdaptorContext.js +0 -7
  595. package/lib/esm/context/envAdaptor/EnvAdaptorContext.js.map +0 -1
  596. package/lib/esm/context/envAdaptor/index.js +0 -2
  597. package/lib/esm/context/envAdaptor/index.js.map +0 -1
  598. package/lib/esm/context/index.js +0 -4
  599. package/lib/esm/context/index.js.map +0 -1
  600. package/lib/esm/context/lode/LodeContext.js +0 -11
  601. package/lib/esm/context/lode/LodeContext.js.map +0 -1
  602. package/lib/esm/context/lode/index.js +0 -2
  603. package/lib/esm/context/lode/index.js.map +0 -1
  604. package/lib/esm/context/search/SearchContext.js +0 -8
  605. package/lib/esm/context/search/SearchContext.js.map +0 -1
  606. package/lib/esm/context/search/index.js +0 -2
  607. package/lib/esm/context/search/index.js.map +0 -1
  608. package/lib/esm/hooks/index.js +0 -2
  609. package/lib/esm/hooks/index.js.map +0 -1
  610. package/lib/esm/hooks/use_actions_hook.js +0 -11
  611. package/lib/esm/hooks/use_actions_hook.js.map +0 -1
  612. package/lib/esm/reducers/search/actions.js +0 -13
  613. package/lib/esm/reducers/search/actions.js.map +0 -1
  614. package/lib/esm/reducers/search/index.js +0 -3
  615. package/lib/esm/reducers/search/index.js.map +0 -1
  616. package/lib/esm/reducers/search/reducer.js +0 -31
  617. package/lib/esm/reducers/search/reducer.js.map +0 -1
  618. package/lib/esm/scenes/MethodScene/utils.js +0 -72
  619. package/lib/esm/scenes/MethodScene/utils.js.map +0 -1
  620. package/lib/esm/scenes/TagScene/TagScene.js.map +0 -1
  621. package/lib/esm/scenes/TagScene/index.js +0 -2
  622. package/lib/esm/scenes/TagScene/index.js.map +0 -1
  623. package/lib/esm/scenes/TagScene/utils.js.map +0 -1
  624. package/lib/esm/state/action_creators.js +0 -2
  625. package/lib/esm/state/action_creators.js.map +0 -1
  626. package/lib/esm/state/reducers.js +0 -6
  627. package/lib/esm/state/reducers.js.map +0 -1
  628. package/lib/esm/state/settings/action_creators.js +0 -6
  629. package/lib/esm/state/settings/action_creators.js.map +0 -1
  630. package/lib/esm/state/settings/actions.js +0 -6
  631. package/lib/esm/state/settings/reducer.js +0 -19
  632. package/lib/esm/state/settings/reducer.js.map +0 -1
  633. package/lib/esm/test-utils/render_with_lode.js +0 -19
  634. package/lib/esm/test-utils/render_with_lode.js.map +0 -1
  635. package/lib/esm/test-utils/render_with_search.js +0 -34
  636. package/lib/esm/test-utils/render_with_search.js.map +0 -1
  637. package/lib/esm/utils/envAdaptor.js +0 -68
  638. package/lib/esm/utils/envAdaptor.js.map +0 -1
  639. package/lib/hooks/index.d.ts +0 -1
  640. package/lib/hooks/index.js +0 -14
  641. package/lib/hooks/index.js.map +0 -1
  642. package/lib/hooks/use_actions_hook.d.ts +0 -2
  643. package/lib/hooks/use_actions_hook.js +0 -24
  644. package/lib/hooks/use_actions_hook.js.map +0 -1
  645. package/lib/reducers/search/actions.d.ts +0 -4
  646. package/lib/reducers/search/actions.js +0 -25
  647. package/lib/reducers/search/actions.js.map +0 -1
  648. package/lib/reducers/search/index.d.ts +0 -2
  649. package/lib/reducers/search/index.js.map +0 -1
  650. package/lib/reducers/search/reducer.d.ts +0 -11
  651. package/lib/reducers/search/reducer.js +0 -43
  652. package/lib/reducers/search/reducer.js.map +0 -1
  653. package/lib/scenes/MethodScene/utils.d.ts +0 -3
  654. package/lib/scenes/MethodScene/utils.js +0 -81
  655. package/lib/scenes/MethodScene/utils.js.map +0 -1
  656. package/lib/scenes/TagScene/TagScene.d.ts +0 -7
  657. package/lib/scenes/TagScene/TagScene.js.map +0 -1
  658. package/lib/scenes/TagScene/index.d.ts +0 -1
  659. package/lib/scenes/TagScene/index.js +0 -14
  660. package/lib/scenes/TagScene/index.js.map +0 -1
  661. package/lib/scenes/TagScene/utils.js.map +0 -1
  662. package/lib/state/action_creators.d.ts +0 -1
  663. package/lib/state/action_creators.js +0 -19
  664. package/lib/state/reducers.d.ts +0 -4
  665. package/lib/state/reducers.js +0 -16
  666. package/lib/state/settings/action_creators.d.ts +0 -2
  667. package/lib/state/settings/action_creators.js +0 -16
  668. package/lib/state/settings/action_creators.js.map +0 -1
  669. package/lib/state/settings/actions.d.ts +0 -8
  670. package/lib/state/settings/actions.js +0 -13
  671. package/lib/state/settings/actions.js.map +0 -1
  672. package/lib/state/settings/reducer.d.ts +0 -6
  673. package/lib/state/settings/reducer.js +0 -31
  674. package/lib/state/settings/reducer.js.map +0 -1
  675. package/lib/test-utils/render_with_lode.d.ts +0 -9
  676. package/lib/test-utils/render_with_lode.js +0 -36
  677. package/lib/test-utils/render_with_lode.js.map +0 -1
  678. package/lib/test-utils/render_with_search.d.ts +0 -4
  679. package/lib/test-utils/render_with_search.js +0 -52
  680. package/lib/test-utils/render_with_search.js.map +0 -1
  681. package/lib/utils/envAdaptor.d.ts +0 -27
  682. package/lib/utils/envAdaptor.js +0 -81
  683. package/lib/utils/envAdaptor.js.map +0 -1
  684. package/src/components/ErrorBoundary/components/SomethingWentWrong/components/SomethingWentWrongGraphic/somethingWentWrong.svg +0 -45
  685. package/src/components/SideNav/SearchCriteriaSelector.tsx +0 -75
  686. package/src/context/envAdaptor/EnvAdaptorContext.ts +0 -38
  687. package/src/context/index.ts +0 -28
  688. package/src/context/lode/index.ts +0 -26
  689. package/src/context/search/index.ts +0 -26
  690. package/src/reducers/search/actions.spec.ts +0 -50
  691. package/src/reducers/search/reducer.spec.ts +0 -72
  692. package/src/reducers/search/reducer.ts +0 -66
  693. package/src/scenes/MethodScene/utils.spec.ts +0 -95
  694. package/src/scenes/MethodScene/utils.ts +0 -121
  695. package/src/state/settings/action_creators.ts +0 -33
  696. package/src/test-utils/render_with_lode.tsx +0 -74
  697. package/src/test-utils/render_with_search.tsx +0 -69
  698. package/src/utils/envAdaptor.spec.ts +0 -53
  699. package/src/utils/envAdaptor.ts +0 -120
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SideNav/SearchMessage.tsx"],"names":["React","Heading","Icon","Flex","Error","SearchMessage","search","ok","message"],"mappings":"AAyBA,OAAOA,KAAP,MAA0B,OAA1B;AAEA,SAASC,OAAT,EAAkBC,IAAlB,EAAwBC,IAAxB,QAAoC,oBAApC;AACA,SAASC,KAAT,QAAsB,8BAAtB;AAWA,OAAO,IAAMC,aAAqC,GAAG;AAAA,MAAC;AAAEC,IAAAA;AAAF,GAAD;AAAA,SACnD,0CACGA,MAAM,IAAI,CAACA,MAAM,CAACC,EAAlB,IACC,oBAAC,IAAD;AAAM,IAAA,EAAE,EAAC,OAAT;AAAiB,IAAA,EAAE,EAAC,OAApB;AAA4B,IAAA,UAAU,EAAC;AAAvC,KACE,oBAAC,OAAD;AAAS,IAAA,EAAE,EAAC,IAAZ;AAAiB,IAAA,KAAK,EAAC;AAAvB,KACE,oBAAC,IAAD;AACE,IAAA,GAAG,EAAC,YADN;AAEE,IAAA,IAAI,EAAE,oBAAC,KAAD,OAFR;AAGE,IAAA,IAAI,EAAC,SAHP;AAIE,IAAA,KAAK,EAAC;AAJR,IADF,EAOGD,MAAM,CAACE,OAPV,CADF,CAFJ,CADmD;AAAA,CAA9C","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 */\nimport React, { FC } from 'react'\nimport { ISearchResult } from '@looker/sdk-codegen'\nimport { Heading, Icon, Flex } from '@looker/components'\nimport { Error } from '@styled-icons/material/Error'\n\ninterface SearchMessageProps {\n search?: ISearchResult\n}\n\n/**\n * Renders search results message\n * @param search Search Results\n * @constructor\n */\nexport const SearchMessage: FC<SearchMessageProps> = ({ search }) => (\n <>\n {search && !search.ok && (\n <Flex pl=\"large\" pr=\"large\" alignItems=\"center\">\n <Heading as=\"h4\" color=\"critical\">\n <Icon\n key=\"resultIcon\"\n icon={<Error />}\n size=\"xxsmall\"\n color=\"critical\"\n />\n {search.message}\n </Heading>\n </Flex>\n )}\n </>\n)\n"],"file":"SearchMessage.js"}
1
+ {"version":3,"sources":["../../../../src/components/SideNav/SearchMessage.tsx"],"names":["React","Heading","Icon","Flex","Error","SearchMessage","search","ok","message"],"mappings":"AA0BA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,SAASC,OAAT,EAAkBC,IAAlB,EAAwBC,IAAxB,QAAoC,oBAApC;AACA,SAASC,KAAT,QAAsB,8BAAtB;AAWA,OAAO,IAAMC,aAAqC,GAAG;AAAA,MAAC;AAAEC,IAAAA;AAAF,GAAD;AAAA,SACnD,0CACGA,MAAM,IAAI,CAACA,MAAM,CAACC,EAAlB,IACC,oBAAC,IAAD;AAAM,IAAA,EAAE,EAAC,OAAT;AAAiB,IAAA,EAAE,EAAC,OAApB;AAA4B,IAAA,UAAU,EAAC;AAAvC,KACE,oBAAC,OAAD;AAAS,IAAA,EAAE,EAAC,IAAZ;AAAiB,IAAA,KAAK,EAAC;AAAvB,KACE,oBAAC,IAAD;AACE,IAAA,GAAG,EAAC,YADN;AAEE,IAAA,IAAI,EAAE,oBAAC,KAAD,OAFR;AAGE,IAAA,IAAI,EAAC,SAHP;AAIE,IAAA,KAAK,EAAC;AAJR,IADF,EAOGD,MAAM,CAACE,OAPV,CADF,CAFJ,CADmD;AAAA,CAA9C","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 */\nimport type { FC } from 'react'\nimport React from 'react'\nimport type { ISearchResult } from '@looker/sdk-codegen'\nimport { Heading, Icon, Flex } from '@looker/components'\nimport { Error } from '@styled-icons/material/Error'\n\ninterface SearchMessageProps {\n search?: ISearchResult\n}\n\n/**\n * Renders search results message\n * @param search Search Results\n * @constructor\n */\nexport const SearchMessage: FC<SearchMessageProps> = ({ search }) => (\n <>\n {search && !search.ok && (\n <Flex pl=\"large\" pr=\"large\" alignItems=\"center\">\n <Heading as=\"h4\" color=\"critical\">\n <Icon\n key=\"resultIcon\"\n icon={<Error />}\n size=\"xxsmall\"\n color=\"critical\"\n />\n {search.message}\n </Heading>\n </Flex>\n )}\n </>\n)\n"],"file":"SearchMessage.js"}
@@ -1,50 +1,78 @@
1
1
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
2
 
3
- import React, { useContext, useEffect, useState } from 'react';
4
- import { Heading, TabList, Tab, TabPanel, TabPanels, useTabs, InputSearch, SpaceVertical } from '@looker/components';
5
- import { CriteriaToSet } from '@looker/sdk-codegen';
6
- import { useRouteMatch } from 'react-router-dom';
7
- import { SearchContext } from '../../context';
8
- import { setPattern } from '../../reducers';
3
+ import React, { useEffect, useState } from 'react';
4
+ import { useHistory, useLocation } from 'react-router-dom';
5
+ import { TabList, Tab, TabPanel, TabPanels, useTabs, InputSearch } from '@looker/components';
6
+ import { criteriaToSet, tagTypes } from '@looker/sdk-codegen';
7
+ import { useSelector } from 'react-redux';
9
8
  import { useWindowSize } from '../../utils';
10
9
  import { HEADER_REM } from '../Header';
11
- import { SelectorContainer } from '../SelectorContainer';
12
- import { SideNavTags } from './SideNavTags';
13
- import { SideNavTypes } from './SideNavTypes';
10
+ import { selectSearchCriteria, useSettingActions } from '../../state';
11
+ import { SideNavMethodTags } from './SideNavMethodTags';
12
+ import { SideNavTypeTags } from './SideNavTypeTags';
14
13
  import { useDebounce, countMethods, countTypes } from './searchUtils';
15
14
  import { SearchMessage } from './SearchMessage';
16
15
  export var SideNav = _ref => {
17
16
  var {
18
17
  headless = false,
19
- specs,
20
- spec,
21
- specDispatch
18
+ spec
22
19
  } = _ref;
23
- var api = spec.api || {};
20
+ var history = useHistory();
21
+ var location = useLocation();
24
22
  var specKey = spec.key;
25
23
  var tabNames = ['methods', 'types'];
26
- var match = useRouteMatch("/:specKey/:sideNavTab?");
27
- var defaultIndex = tabNames.indexOf('methods');
24
+ var pathParts = location.pathname.split('/');
25
+ var sideNavTab = pathParts[1] === 'diff' ? pathParts[3] : pathParts[2];
26
+ var defaultIndex = tabNames.indexOf(sideNavTab);
28
27
 
29
- if (match && match.params.sideNavTab) {
30
- defaultIndex = tabNames.indexOf(match.params.sideNavTab);
28
+ if (defaultIndex < 0) {
29
+ defaultIndex = tabNames.indexOf('methods');
31
30
  }
32
31
 
32
+ var onTabChange = index => {
33
+ var parts = location.pathname.split('/');
34
+
35
+ if (parts[1] === 'diff') {
36
+ if (parts[3] !== tabNames[index]) {
37
+ parts[3] = tabNames[index];
38
+ history.push(parts.join('/'));
39
+ }
40
+ } else {
41
+ if (parts[2] !== tabNames[index]) {
42
+ parts[2] = tabNames[index];
43
+ history.push(parts.join('/'));
44
+ }
45
+ }
46
+ };
47
+
33
48
  var tabs = useTabs({
34
- defaultIndex
49
+ defaultIndex,
50
+ onChange: onTabChange
35
51
  });
52
+ var searchCriteria = useSelector(selectSearchCriteria);
36
53
  var {
37
- searchSettings,
38
- setSearchSettings
39
- } = useContext(SearchContext);
40
- var [pattern, setSearchPattern] = useState(searchSettings.pattern);
54
+ setSearchPatternAction
55
+ } = useSettingActions();
56
+ var [pattern, setSearchPattern] = useState('');
41
57
  var debouncedPattern = useDebounce(pattern, 250);
42
- var [searchResults, setSearchResults] = useState();
43
- var searchCriteria = CriteriaToSet(searchSettings.criteria);
44
- var [tags, setTags] = useState(api.tags || {});
45
- var [types, setTypes] = useState(api.types || {});
46
- var [methodCount, setMethodCount] = useState(countMethods(tags));
47
- var [typeCount, setTypeCount] = useState(countTypes(types));
58
+ var [sideNavState, setSideNavState] = useState(() => {
59
+ var _spec$api, _spec$api2, _spec$api3, _spec$api4;
60
+
61
+ return {
62
+ tags: (spec === null || spec === void 0 ? void 0 : (_spec$api = spec.api) === null || _spec$api === void 0 ? void 0 : _spec$api.tags) || {},
63
+ typeTags: (spec === null || spec === void 0 ? void 0 : (_spec$api2 = spec.api) === null || _spec$api2 === void 0 ? void 0 : _spec$api2.typeTags) || {},
64
+ methodCount: countMethods((spec === null || spec === void 0 ? void 0 : (_spec$api3 = spec.api) === null || _spec$api3 === void 0 ? void 0 : _spec$api3.tags) || {}),
65
+ typeCount: countTypes((spec === null || spec === void 0 ? void 0 : (_spec$api4 = spec.api) === null || _spec$api4 === void 0 ? void 0 : _spec$api4.types) || {}),
66
+ searchResults: undefined
67
+ };
68
+ });
69
+ var {
70
+ tags,
71
+ typeTags,
72
+ methodCount,
73
+ typeCount,
74
+ searchResults
75
+ } = sideNavState;
48
76
 
49
77
  var handleInputChange = value => {
50
78
  setSearchPattern(value);
@@ -54,46 +82,55 @@ export var SideNav = _ref => {
54
82
  var results;
55
83
  var newTags;
56
84
  var newTypes;
85
+ var newTypeTags;
86
+ var api = spec.api || {};
57
87
 
58
- if (debouncedPattern) {
59
- results = api.search(pattern, searchCriteria);
88
+ if (debouncedPattern && api.search) {
89
+ results = api.search(pattern, criteriaToSet(searchCriteria));
60
90
  newTags = results.tags;
61
91
  newTypes = results.types;
92
+ newTypeTags = tagTypes(api, results.types);
62
93
  } else {
63
94
  newTags = api.tags || {};
64
95
  newTypes = api.types || {};
96
+ newTypeTags = api.typeTags || {};
65
97
  }
66
98
 
67
- setTags(newTags);
68
- setTypes(newTypes);
69
- setMethodCount(countMethods(newTags));
70
- setTypeCount(countTypes(newTypes));
71
- setSearchResults(results);
72
- setSearchSettings(setPattern(debouncedPattern));
73
- }, [debouncedPattern, specKey, spec]);
99
+ setSideNavState({
100
+ tags: newTags,
101
+ typeTags: newTypeTags,
102
+ typeCount: countTypes(newTypes),
103
+ methodCount: countMethods(newTags),
104
+ searchResults: results
105
+ });
106
+ setSearchPatternAction({
107
+ searchPattern: debouncedPattern
108
+ });
109
+ }, [debouncedPattern, specKey, spec, setSearchPatternAction, pattern, searchCriteria]);
110
+ useEffect(() => {
111
+ var {
112
+ selectedIndex,
113
+ onSelectTab
114
+ } = tabs;
115
+
116
+ if (defaultIndex !== selectedIndex) {
117
+ onSelectTab(defaultIndex);
118
+ }
119
+ }, [defaultIndex, tabs]);
74
120
  var size = useWindowSize();
75
121
  var headlessOffset = headless ? 200 : 120;
76
122
  var menuH = size.height - 16 * HEADER_REM - headlessOffset;
77
- return React.createElement("nav", null, React.createElement(SpaceVertical, {
78
- alignItems: "center",
79
- p: "large",
80
- gap: "xsmall"
81
- }, headless && React.createElement(SpaceVertical, null, React.createElement(Heading, {
82
- as: "h5",
83
- color: "key",
84
- fontWeight: "bold"
85
- }, "API Documentation"), React.createElement(SelectorContainer, {
86
- specs: specs,
87
- spec: spec,
88
- specDispatch: specDispatch
89
- })), React.createElement(InputSearch, {
123
+ return React.createElement("nav", null, React.createElement(InputSearch, {
124
+ pl: "large",
125
+ pr: "large",
126
+ pb: "large",
127
+ pt: headless ? 'u3' : 'large',
90
128
  "aria-label": "Search",
91
129
  onChange: handleInputChange,
92
130
  placeholder: "Search",
93
131
  value: pattern,
94
- isClearable: true,
95
- changeOnSelect: true
96
- })), React.createElement(SearchMessage, {
132
+ isClearable: true
133
+ }), React.createElement(SearchMessage, {
97
134
  search: searchResults
98
135
  }), React.createElement(TabList, _extends({}, tabs, {
99
136
  distribute: true
@@ -101,13 +138,14 @@ export var SideNav = _ref => {
101
138
  pt: "xsmall",
102
139
  height: "".concat(menuH, "px"),
103
140
  overflow: "auto"
104
- }), React.createElement(TabPanel, null, React.createElement(SideNavTags, {
141
+ }), React.createElement(TabPanel, null, React.createElement(SideNavMethodTags, {
105
142
  tags: tags,
106
143
  specKey: specKey,
107
144
  defaultOpen: !!searchResults
108
- })), React.createElement(TabPanel, null, React.createElement(SideNavTypes, {
109
- types: types,
110
- specKey: specKey
145
+ })), React.createElement(TabPanel, null, React.createElement(SideNavTypeTags, {
146
+ tags: typeTags,
147
+ specKey: specKey,
148
+ defaultOpen: !!searchResults
111
149
  }))));
112
150
  };
113
151
  //# sourceMappingURL=SideNav.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SideNav/SideNav.tsx"],"names":["React","useContext","useEffect","useState","Heading","TabList","Tab","TabPanel","TabPanels","useTabs","InputSearch","SpaceVertical","CriteriaToSet","useRouteMatch","SearchContext","setPattern","useWindowSize","HEADER_REM","SelectorContainer","SideNavTags","SideNavTypes","useDebounce","countMethods","countTypes","SearchMessage","SideNav","headless","specs","spec","specDispatch","api","specKey","key","tabNames","match","defaultIndex","indexOf","params","sideNavTab","tabs","searchSettings","setSearchSettings","pattern","setSearchPattern","debouncedPattern","searchResults","setSearchResults","searchCriteria","criteria","tags","setTags","types","setTypes","methodCount","setMethodCount","typeCount","setTypeCount","handleInputChange","value","results","newTags","newTypes","search","size","headlessOffset","menuH","height"],"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 React, { FC, useContext, useEffect, useState, Dispatch } from 'react'\nimport {\n Heading,\n TabList,\n Tab,\n TabPanel,\n TabPanels,\n useTabs,\n InputSearch,\n SpaceVertical,\n} from '@looker/components'\nimport {\n SpecItem,\n SpecList,\n CriteriaToSet,\n ISearchResult,\n ApiModel,\n} from '@looker/sdk-codegen'\nimport { useRouteMatch } from 'react-router-dom'\n\nimport { SearchContext } from '../../context'\nimport { setPattern, SpecAction } from '../../reducers'\nimport { useWindowSize } from '../../utils'\nimport { HEADER_REM } from '../Header'\nimport { SelectorContainer } from '../SelectorContainer'\nimport { SideNavTags } from './SideNavTags'\nimport { SideNavTypes } from './SideNavTypes'\nimport { useDebounce, countMethods, countTypes } from './searchUtils'\nimport { SearchMessage } from './SearchMessage'\n\ninterface SideNavProps {\n headless?: boolean\n /** Specs to choose from */\n specs: SpecList\n /** Current selected spec */\n spec: SpecItem\n /** Spec state setter */\n specDispatch: Dispatch<SpecAction>\n}\n\ninterface SideNavParams {\n sideNavTab: string\n}\n\nexport const SideNav: FC<SideNavProps> = ({\n headless = false,\n specs,\n spec,\n specDispatch,\n}) => {\n const api = spec.api || ({} as ApiModel)\n const specKey = spec.key\n const tabNames = ['methods', 'types']\n const match = useRouteMatch<SideNavParams>(`/:specKey/:sideNavTab?`)\n let defaultIndex = tabNames.indexOf('methods')\n if (match && match.params.sideNavTab) {\n defaultIndex = tabNames.indexOf(match.params.sideNavTab)\n }\n const tabs = useTabs({ defaultIndex })\n const { searchSettings, setSearchSettings } = useContext(SearchContext)\n const [pattern, setSearchPattern] = useState(searchSettings.pattern)\n const debouncedPattern = useDebounce(pattern, 250)\n const [searchResults, setSearchResults] = useState<ISearchResult>()\n const searchCriteria = CriteriaToSet(searchSettings.criteria)\n const [tags, setTags] = useState(api.tags || {})\n const [types, setTypes] = useState(api.types || {})\n const [methodCount, setMethodCount] = useState(countMethods(tags))\n const [typeCount, setTypeCount] = useState(countTypes(types))\n\n const handleInputChange = (value: string) => {\n setSearchPattern(value)\n }\n\n useEffect(() => {\n let results\n let newTags\n let newTypes\n if (debouncedPattern) {\n results = api.search(pattern, searchCriteria)\n newTags = results.tags\n newTypes = results.types\n } else {\n newTags = api.tags || {}\n newTypes = api.types || {}\n }\n\n setTags(newTags)\n setTypes(newTypes)\n setMethodCount(countMethods(newTags))\n setTypeCount(countTypes(newTypes))\n setSearchResults(results)\n setSearchSettings(setPattern(debouncedPattern!))\n }, [debouncedPattern, specKey, spec])\n\n const size = useWindowSize()\n const headlessOffset = headless ? 200 : 120\n const menuH = size.height - 16 * HEADER_REM - headlessOffset\n\n return (\n <nav>\n <SpaceVertical alignItems=\"center\" p=\"large\" gap=\"xsmall\">\n {headless && (\n <SpaceVertical>\n <Heading as=\"h5\" color=\"key\" fontWeight=\"bold\">\n API Documentation\n </Heading>\n <SelectorContainer\n specs={specs}\n spec={spec}\n specDispatch={specDispatch}\n />\n </SpaceVertical>\n )}\n <InputSearch\n aria-label=\"Search\"\n onChange={handleInputChange}\n placeholder=\"Search\"\n value={pattern}\n isClearable\n changeOnSelect\n />\n </SpaceVertical>\n <SearchMessage search={searchResults} />\n <TabList {...tabs} distribute>\n <Tab>Methods ({methodCount})</Tab>\n <Tab>Types ({typeCount})</Tab>\n </TabList>\n <TabPanels {...tabs} pt=\"xsmall\" height={`${menuH}px`} overflow=\"auto\">\n <TabPanel>\n <SideNavTags\n tags={tags}\n specKey={specKey}\n defaultOpen={!!searchResults}\n />\n </TabPanel>\n <TabPanel>\n <SideNavTypes types={types} specKey={specKey} />\n </TabPanel>\n </TabPanels>\n </nav>\n )\n}\n"],"file":"SideNav.js"}
1
+ {"version":3,"sources":["../../../../src/components/SideNav/SideNav.tsx"],"names":["React","useEffect","useState","useHistory","useLocation","TabList","Tab","TabPanel","TabPanels","useTabs","InputSearch","criteriaToSet","tagTypes","useSelector","useWindowSize","HEADER_REM","selectSearchCriteria","useSettingActions","SideNavMethodTags","SideNavTypeTags","useDebounce","countMethods","countTypes","SearchMessage","SideNav","headless","spec","history","location","specKey","key","tabNames","pathParts","pathname","split","sideNavTab","defaultIndex","indexOf","onTabChange","index","parts","push","join","tabs","onChange","searchCriteria","setSearchPatternAction","pattern","setSearchPattern","debouncedPattern","sideNavState","setSideNavState","tags","api","typeTags","methodCount","typeCount","types","searchResults","undefined","handleInputChange","value","results","newTags","newTypes","newTypeTags","search","searchPattern","selectedIndex","onSelectTab","size","headlessOffset","menuH","height"],"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, Dispatch } from 'react'\nimport React, { useEffect, useState } from 'react'\nimport { useHistory, useLocation } from 'react-router-dom'\nimport {\n TabList,\n Tab,\n TabPanel,\n TabPanels,\n useTabs,\n InputSearch,\n} from '@looker/components'\nimport type {\n SpecItem,\n SpecList,\n ISearchResult,\n ApiModel,\n TagList,\n TypeTagList,\n} from '@looker/sdk-codegen'\nimport { criteriaToSet, tagTypes } from '@looker/sdk-codegen'\nimport { useSelector } from 'react-redux'\n\nimport type { SpecAction } from '../../reducers'\nimport { useWindowSize } from '../../utils'\nimport { HEADER_REM } from '../Header'\nimport { selectSearchCriteria, useSettingActions } from '../../state'\nimport { SideNavMethodTags } from './SideNavMethodTags'\nimport { SideNavTypeTags } from './SideNavTypeTags'\nimport { useDebounce, countMethods, countTypes } from './searchUtils'\nimport { SearchMessage } from './SearchMessage'\n\ninterface SideNavState {\n tags: TagList\n typeTags: TypeTagList\n methodCount: number\n typeCount: number\n searchResults?: ISearchResult\n}\n\ninterface SideNavProps {\n headless?: boolean\n /** Specs to choose from */\n specs: SpecList\n /** Current selected spec */\n spec: SpecItem\n /** Spec state setter */\n specDispatch: Dispatch<SpecAction>\n}\n\nexport const SideNav: FC<SideNavProps> = ({ headless = false, spec }) => {\n const history = useHistory()\n const location = useLocation()\n const specKey = spec.key\n const tabNames = ['methods', 'types']\n const pathParts = location.pathname.split('/')\n const sideNavTab = pathParts[1] === 'diff' ? pathParts[3] : pathParts[2]\n let defaultIndex = tabNames.indexOf(sideNavTab)\n if (defaultIndex < 0) {\n defaultIndex = tabNames.indexOf('methods')\n }\n const onTabChange = (index: number) => {\n const parts = location.pathname.split('/')\n if (parts[1] === 'diff') {\n if (parts[3] !== tabNames[index]) {\n parts[3] = tabNames[index]\n history.push(parts.join('/'))\n }\n } else {\n if (parts[2] !== tabNames[index]) {\n parts[2] = tabNames[index]\n history.push(parts.join('/'))\n }\n }\n }\n const tabs = useTabs({ defaultIndex, onChange: onTabChange })\n const searchCriteria = useSelector(selectSearchCriteria)\n const { setSearchPatternAction } = useSettingActions()\n\n const [pattern, setSearchPattern] = useState('')\n const debouncedPattern = useDebounce(pattern, 250)\n const [sideNavState, setSideNavState] = useState<SideNavState>(() => ({\n tags: spec?.api?.tags || {},\n typeTags: spec?.api?.typeTags || {},\n methodCount: countMethods(spec?.api?.tags || {}),\n typeCount: countTypes(spec?.api?.types || {}),\n searchResults: undefined,\n }))\n const { tags, typeTags, methodCount, typeCount, searchResults } = sideNavState\n\n const handleInputChange = (value: string) => {\n setSearchPattern(value)\n }\n\n useEffect(() => {\n let results\n let newTags\n let newTypes\n let newTypeTags\n const api = spec.api || ({} as ApiModel)\n\n if (debouncedPattern && api.search) {\n results = api.search(pattern, criteriaToSet(searchCriteria))\n newTags = results.tags\n newTypes = results.types\n newTypeTags = tagTypes(api, results.types)\n } else {\n newTags = api.tags || {}\n newTypes = api.types || {}\n newTypeTags = api.typeTags || {}\n }\n\n setSideNavState({\n tags: newTags,\n typeTags: newTypeTags,\n typeCount: countTypes(newTypes),\n methodCount: countMethods(newTags),\n searchResults: results,\n })\n setSearchPatternAction({ searchPattern: debouncedPattern })\n }, [\n debouncedPattern,\n specKey,\n spec,\n setSearchPatternAction,\n pattern,\n searchCriteria,\n ])\n\n useEffect(() => {\n const { selectedIndex, onSelectTab } = tabs\n if (defaultIndex !== selectedIndex) {\n onSelectTab(defaultIndex)\n }\n }, [defaultIndex, tabs])\n\n const size = useWindowSize()\n const headlessOffset = headless ? 200 : 120\n const menuH = size.height - 16 * HEADER_REM - headlessOffset\n\n return (\n <nav>\n <InputSearch\n pl=\"large\"\n pr=\"large\"\n pb=\"large\"\n pt={headless ? 'u3' : 'large'}\n aria-label=\"Search\"\n onChange={handleInputChange}\n placeholder=\"Search\"\n value={pattern}\n isClearable\n />\n <SearchMessage search={searchResults} />\n <TabList {...tabs} distribute>\n <Tab>Methods ({methodCount})</Tab>\n <Tab>Types ({typeCount})</Tab>\n </TabList>\n <TabPanels {...tabs} pt=\"xsmall\" height={`${menuH}px`} overflow=\"auto\">\n <TabPanel>\n <SideNavMethodTags\n tags={tags}\n specKey={specKey}\n defaultOpen={!!searchResults}\n />\n </TabPanel>\n <TabPanel>\n <SideNavTypeTags\n tags={typeTags}\n specKey={specKey}\n defaultOpen={!!searchResults}\n />\n </TabPanel>\n </TabPanels>\n </nav>\n )\n}\n"],"file":"SideNav.js"}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import styled from 'styled-components';
3
3
  import { SideNavMethods } from './SideNavMethods';
4
- export var SideNavTags = styled(_ref => {
4
+ export var SideNavMethodTags = styled(_ref => {
5
5
  var {
6
6
  tags,
7
7
  specKey,
@@ -18,12 +18,12 @@ export var SideNavTags = styled(_ref => {
18
18
  specKey: specKey
19
19
  })));
20
20
  }).withConfig({
21
- displayName: "SideNavTags",
22
- componentId: "ej0zn7-0"
21
+ displayName: "SideNavMethodTags",
22
+ componentId: "m8q23l-0"
23
23
  })(["padding:0 ", ";"], _ref2 => {
24
24
  var {
25
25
  theme
26
26
  } = _ref2;
27
27
  return theme.space.large;
28
28
  });
29
- //# sourceMappingURL=SideNavTags.js.map
29
+ //# sourceMappingURL=SideNavMethodTags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/SideNav/SideNavMethodTags.tsx"],"names":["React","styled","SideNavMethods","SideNavMethodTags","tags","specKey","className","defaultOpen","Object","keys","map","tag","theme","space","large"],"mappings":"AA0BA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AAEA,SAASC,cAAT,QAA+B,kBAA/B;AASA,OAAO,IAAMC,iBAAiB,GAAGF,MAAM,CACrC;AAAA,MAAC;AAAEG,IAAAA,IAAF;AAAQC,IAAAA,OAAR;AAAiBC,IAAAA,SAAjB;AAA4BC,IAAAA;AAA5B,GAAD;AAAA,SACE;AAAK,IAAA,SAAS,EAAED;AAAhB,KACGE,MAAM,CAACC,IAAP,CAAYL,IAAZ,EAAkBM,GAAlB,CAAuBC,GAAD,IACrB,oBAAC,cAAD;AACE,IAAA,GAAG,EAAEA,GADP;AAEE,IAAA,WAAW,EAAEJ,WAFf;AAGE,IAAA,GAAG,EAAEI,GAHP;AAIE,IAAA,OAAO,EAAEP,IAAI,CAACO,GAAD,CAJf;AAKE,IAAA,OAAO,EAAEN;AALX,IADD,CADH,CADF;AAAA,CADqC,CAAT;AAAA;AAAA;AAAA,wBAef;AAAA,MAAC;AAAEO,IAAAA;AAAF,GAAD;AAAA,SAAeA,KAAK,CAACC,KAAN,CAAYC,KAA3B;AAAA,CAfe,CAAvB","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 styled from 'styled-components'\nimport type { TagList } from '@looker/sdk-codegen'\nimport { SideNavMethods } from './SideNavMethods'\n\ninterface TagsProps {\n tags: TagList\n specKey: string\n defaultOpen?: boolean\n className?: string\n}\n\nexport const SideNavMethodTags = styled(\n ({ tags, specKey, className, defaultOpen }: TagsProps) => (\n <div className={className}>\n {Object.keys(tags).map((tag) => (\n <SideNavMethods\n key={tag}\n defaultOpen={defaultOpen}\n tag={tag}\n methods={tags[tag]}\n specKey={specKey}\n />\n ))}\n </div>\n )\n)`\n padding: 0 ${({ theme }) => theme.space.large};\n`\n"],"file":"SideNavMethodTags.js"}
@@ -1,23 +1,20 @@
1
- import React, { useContext, useEffect, useState } from 'react';
1
+ import React, { useEffect, useState } from 'react';
2
2
  import styled from 'styled-components';
3
3
  import { Accordion2, Heading } from '@looker/components';
4
+ import { useSelector } from 'react-redux';
4
5
  import { useHistory, useRouteMatch } from 'react-router-dom';
5
6
  import { Link } from '../Link';
6
7
  import { buildMethodPath, highlightHTML } from '../../utils';
7
- import { SearchContext } from '../../context';
8
+ import { selectSearchPattern } from '../../state';
8
9
  export var SideNavMethods = styled(_ref => {
9
10
  var {
10
11
  className,
11
- defaultOpen = false,
12
12
  methods,
13
13
  tag,
14
- specKey
14
+ specKey,
15
+ defaultOpen = false
15
16
  } = _ref;
16
- var {
17
- searchSettings: {
18
- pattern
19
- }
20
- } = useContext(SearchContext);
17
+ var searchPattern = useSelector(selectSearchPattern);
21
18
  var match = useRouteMatch("/:specKey/methods/:methodTag/:methodName?");
22
19
  var [isOpen, setIsOpen] = useState(defaultOpen);
23
20
  var history = useHistory();
@@ -32,7 +29,7 @@ export var SideNavMethods = styled(_ref => {
32
29
  useEffect(() => {
33
30
  var status = match ? defaultOpen || match.params.methodTag === tag : defaultOpen;
34
31
  setIsOpen(status);
35
- }, [defaultOpen]);
32
+ }, [defaultOpen, match, tag]);
36
33
  return React.createElement(Accordion2, {
37
34
  isOpen: isOpen,
38
35
  toggleOpen: handleOpen,
@@ -41,12 +38,12 @@ export var SideNavMethods = styled(_ref => {
41
38
  as: "h4",
42
39
  fontSize: "small",
43
40
  py: "xsmall"
44
- }, highlightHTML(pattern, tag))
41
+ }, highlightHTML(searchPattern, tag))
45
42
  }, React.createElement("ul", null, Object.values(methods).map(method => React.createElement("li", {
46
43
  key: method.name
47
44
  }, React.createElement(Link, {
48
45
  to: "".concat(buildMethodPath(specKey, tag, method.name))
49
- }, highlightHTML(pattern, method.summary))))));
46
+ }, highlightHTML(searchPattern, method.summary))))));
50
47
  }).withConfig({
51
48
  displayName: "SideNavMethods",
52
49
  componentId: "sc-1qqmwk8-0"
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/SideNav/SideNavMethods.tsx"],"names":["React","useContext","useEffect","useState","styled","Accordion2","Heading","useHistory","useRouteMatch","Link","buildMethodPath","highlightHTML","SearchContext","SideNavMethods","className","defaultOpen","methods","tag","specKey","searchSettings","pattern","match","isOpen","setIsOpen","history","handleOpen","_isOpen","push","status","params","methodTag","Object","values","map","method","name","summary","theme","fonts","brand","colors","key","fontWeights","semiBold","ui2","space","xxsmall","ui1","radii","medium","xsmall"],"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 React, { useContext, useEffect, useState } from 'react'\nimport styled from 'styled-components'\nimport { Accordion2, Heading } from '@looker/components'\nimport { MethodList } from '@looker/sdk-codegen'\nimport { useHistory, useRouteMatch } from 'react-router-dom'\nimport { Link } from '../Link'\nimport { buildMethodPath, highlightHTML } from '../../utils'\nimport { SearchContext } from '../../context'\n\ninterface MethodsProps {\n className?: string\n defaultOpen?: boolean\n methods: MethodList\n tag: string\n specKey: string\n}\n\nexport const SideNavMethods = styled(\n ({ className, defaultOpen = false, methods, tag, specKey }: MethodsProps) => {\n const {\n searchSettings: { pattern },\n } = useContext(SearchContext)\n const match = useRouteMatch<{ methodTag: string }>(\n `/:specKey/methods/:methodTag/:methodName?`\n )\n const [isOpen, setIsOpen] = useState(defaultOpen)\n const history = useHistory()\n\n const handleOpen = () => {\n const _isOpen = !isOpen\n setIsOpen(_isOpen)\n if (_isOpen) history.push(`/${specKey}/methods/${tag}`)\n }\n\n useEffect(() => {\n const status = match\n ? defaultOpen || match.params.methodTag === tag\n : defaultOpen\n setIsOpen(status)\n }, [defaultOpen])\n\n /* TODO: Fix highlighting. It is applied but it is somehow being overridden */\n return (\n <Accordion2\n isOpen={isOpen}\n toggleOpen={handleOpen}\n className={className}\n label={\n <Heading as=\"h4\" fontSize=\"small\" py=\"xsmall\">\n {highlightHTML(pattern, tag)}\n </Heading>\n }\n >\n <ul>\n {Object.values(methods).map((method) => (\n <li key={method.name}>\n <Link to={`${buildMethodPath(specKey, tag, method.name)}`}>\n {highlightHTML(pattern, method.summary)}\n </Link>\n </li>\n ))}\n </ul>\n </Accordion2>\n )\n }\n)`\n font-family: ${({ theme }) => theme.fonts.brand};\n\n [aria-controls]:hover,\n [aria-expanded='true'] {\n h4,\n svg {\n color: ${({ theme }) => theme.colors.key};\n }\n }\n\n [aria-expanded='true'] h4 {\n font-weight: ${({ theme }) => theme.fontWeights.semiBold};\n }\n\n ul {\n border-left: dashed 1px ${({ theme }) => theme.colors.ui2};\n list-style: none;\n margin: 0;\n padding: 0;\n padding-left: ${({ theme }) => theme.space.xxsmall};\n padding-top: ${({ theme }) => theme.space.xxsmall};\n }\n\n [aria-current] {\n background: ${({ theme }) => theme.colors.ui1};\n font-weight: ${({ theme }) => theme.fontWeights.semiBold};\n }\n\n ${Link} {\n border-radius: ${({ theme }) => theme.radii.medium};\n display: block;\n overflow: hidden;\n padding: ${({ theme }) => theme.space.xsmall};\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover,\n &:focus,\n &.active {\n background: ${({ theme }) => theme.colors.ui1};\n }\n }\n`\n"],"file":"SideNavMethods.js"}
1
+ {"version":3,"sources":["../../../../src/components/SideNav/SideNavMethods.tsx"],"names":["React","useEffect","useState","styled","Accordion2","Heading","useSelector","useHistory","useRouteMatch","Link","buildMethodPath","highlightHTML","selectSearchPattern","SideNavMethods","className","methods","tag","specKey","defaultOpen","searchPattern","match","isOpen","setIsOpen","history","handleOpen","_isOpen","push","status","params","methodTag","Object","values","map","method","name","summary","theme","fonts","brand","colors","key","fontWeights","semiBold","ui2","space","xxsmall","ui1","radii","medium","xsmall"],"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 React, { useEffect, useState } from 'react'\nimport styled from 'styled-components'\nimport { Accordion2, Heading } from '@looker/components'\nimport type { MethodList } from '@looker/sdk-codegen'\nimport { useSelector } from 'react-redux'\nimport { useHistory, useRouteMatch } from 'react-router-dom'\n\nimport { Link } from '../Link'\nimport { buildMethodPath, highlightHTML } from '../../utils'\nimport { selectSearchPattern } from '../../state'\n\ninterface MethodsProps {\n methods: MethodList\n tag: string\n specKey: string\n className?: string\n defaultOpen?: boolean\n}\n\nexport const SideNavMethods = styled(\n ({ className, methods, tag, specKey, defaultOpen = false }: MethodsProps) => {\n const searchPattern = useSelector(selectSearchPattern)\n const match = useRouteMatch<{ methodTag: string }>(\n `/:specKey/methods/:methodTag/:methodName?`\n )\n const [isOpen, setIsOpen] = useState(defaultOpen)\n const history = useHistory()\n\n const handleOpen = () => {\n const _isOpen = !isOpen\n setIsOpen(_isOpen)\n if (_isOpen) history.push(`/${specKey}/methods/${tag}`)\n }\n\n useEffect(() => {\n const status = match\n ? defaultOpen || match.params.methodTag === tag\n : defaultOpen\n setIsOpen(status)\n }, [defaultOpen, match, tag])\n\n /* TODO: Fix highlighting. It is applied but it is somehow being overridden */\n return (\n <Accordion2\n isOpen={isOpen}\n toggleOpen={handleOpen}\n className={className}\n label={\n <Heading as=\"h4\" fontSize=\"small\" py=\"xsmall\">\n {highlightHTML(searchPattern, tag)}\n </Heading>\n }\n >\n <ul>\n {Object.values(methods).map((method) => (\n <li key={method.name}>\n <Link to={`${buildMethodPath(specKey, tag, method.name)}`}>\n {highlightHTML(searchPattern, method.summary)}\n </Link>\n </li>\n ))}\n </ul>\n </Accordion2>\n )\n }\n)`\n font-family: ${({ theme }) => theme.fonts.brand};\n\n [aria-controls]:hover,\n [aria-expanded='true'] {\n h4,\n svg {\n color: ${({ theme }) => theme.colors.key};\n }\n }\n\n [aria-expanded='true'] h4 {\n font-weight: ${({ theme }) => theme.fontWeights.semiBold};\n }\n\n ul {\n border-left: dashed 1px ${({ theme }) => theme.colors.ui2};\n list-style: none;\n margin: 0;\n padding: 0;\n padding-left: ${({ theme }) => theme.space.xxsmall};\n padding-top: ${({ theme }) => theme.space.xxsmall};\n }\n\n [aria-current] {\n background: ${({ theme }) => theme.colors.ui1};\n font-weight: ${({ theme }) => theme.fontWeights.semiBold};\n }\n\n ${Link} {\n border-radius: ${({ theme }) => theme.radii.medium};\n display: block;\n overflow: hidden;\n padding: ${({ theme }) => theme.space.xsmall};\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:hover,\n &:focus,\n &.active {\n background: ${({ theme }) => theme.colors.ui1};\n }\n }\n`\n"],"file":"SideNavMethods.js"}
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+ import { SideNavTypes } from './SideNavTypes';
4
+ export var SideNavTypeTags = styled(_ref => {
5
+ var {
6
+ tags,
7
+ specKey,
8
+ className,
9
+ defaultOpen
10
+ } = _ref;
11
+ return React.createElement("div", {
12
+ className: className
13
+ }, Object.keys(tags).map(tag => React.createElement(SideNavTypes, {
14
+ key: tag,
15
+ defaultOpen: defaultOpen,
16
+ types: tags[tag],
17
+ tag: tag,
18
+ specKey: specKey
19
+ })));
20
+ }).withConfig({
21
+ displayName: "SideNavTypeTags",
22
+ componentId: "u6qlhq-0"
23
+ })(["padding:0 ", ";"], _ref2 => {
24
+ var {
25
+ theme
26
+ } = _ref2;
27
+ return theme.space.large;
28
+ });
29
+ //# sourceMappingURL=SideNavTypeTags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/SideNav/SideNavTypeTags.tsx"],"names":["React","styled","SideNavTypes","SideNavTypeTags","tags","specKey","className","defaultOpen","Object","keys","map","tag","theme","space","large"],"mappings":"AA0BA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AAEA,SAASC,YAAT,QAA6B,gBAA7B;AASA,OAAO,IAAMC,eAAe,GAAGF,MAAM,CACnC;AAAA,MAAC;AAAEG,IAAAA,IAAF;AAAQC,IAAAA,OAAR;AAAiBC,IAAAA,SAAjB;AAA4BC,IAAAA;AAA5B,GAAD;AAAA,SACE;AAAK,IAAA,SAAS,EAAED;AAAhB,KACGE,MAAM,CAACC,IAAP,CAAYL,IAAZ,EAAkBM,GAAlB,CAAuBC,GAAD,IACrB,oBAAC,YAAD;AACE,IAAA,GAAG,EAAEA,GADP;AAEE,IAAA,WAAW,EAAEJ,WAFf;AAGE,IAAA,KAAK,EAAEH,IAAI,CAACO,GAAD,CAHb;AAIE,IAAA,GAAG,EAAEA,GAJP;AAKE,IAAA,OAAO,EAAEN;AALX,IADD,CADH,CADF;AAAA,CADmC,CAAT;AAAA;AAAA;AAAA,wBAeb;AAAA,MAAC;AAAEO,IAAAA;AAAF,GAAD;AAAA,SAAeA,KAAK,CAACC,KAAN,CAAYC,KAA3B;AAAA,CAfa,CAArB","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 styled from 'styled-components'\nimport type { TypeTagList } from '@looker/sdk-codegen'\nimport { SideNavTypes } from './SideNavTypes'\n\ninterface TypeTagsProps {\n tags: TypeTagList\n specKey: string\n defaultOpen?: boolean\n className?: string\n}\n\nexport const SideNavTypeTags = styled(\n ({ tags, specKey, className, defaultOpen }: TypeTagsProps) => (\n <div className={className}>\n {Object.keys(tags).map((tag) => (\n <SideNavTypes\n key={tag}\n defaultOpen={defaultOpen}\n types={tags[tag]}\n tag={tag}\n specKey={specKey}\n />\n ))}\n </div>\n )\n)`\n padding: 0 ${({ theme }) => theme.space.large};\n`\n"],"file":"SideNavTypeTags.js"}
@@ -1,55 +1,106 @@
1
- import React, { useContext } from 'react';
2
- import { Heading } from '@looker/components';
3
- import { IntrinsicType } from '@looker/sdk-codegen';
1
+ import React, { useEffect, useState } from 'react';
4
2
  import styled from 'styled-components';
3
+ import { Accordion2, Heading } from '@looker/components';
4
+ import { useHistory, useRouteMatch } from 'react-router-dom';
5
+ import { useSelector } from 'react-redux';
5
6
  import { Link } from '../Link';
6
7
  import { buildTypePath, highlightHTML } from '../../utils';
7
- import { SearchContext } from '../../context';
8
- export var SideNavTypes = _ref => {
8
+ import { selectSearchPattern } from '../../state';
9
+ export var SideNavTypes = styled(_ref => {
9
10
  var {
11
+ className,
10
12
  types,
11
- specKey
13
+ tag,
14
+ specKey,
15
+ defaultOpen = false
12
16
  } = _ref;
13
- var {
14
- searchSettings: {
15
- pattern
16
- }
17
- } = useContext(SearchContext);
18
- return React.createElement(React.Fragment, null, Object.values(types).filter(type => !(type instanceof IntrinsicType)).map(type => React.createElement(SideNavLink, {
19
- key: type.name,
20
- to: "".concat(buildTypePath(specKey, type.name))
21
- }, React.createElement(Heading, {
22
- as: "h5",
23
- truncate: true
24
- }, highlightHTML(pattern, type.name)))));
25
- };
26
- var SideNavLink = styled(Link).withConfig({
27
- displayName: "SideNavTypes__SideNavLink",
17
+ var searchPattern = useSelector(selectSearchPattern);
18
+ var match = useRouteMatch("/:specKey/types/:typeTag/:typeName?");
19
+ var [isOpen, setIsOpen] = useState(defaultOpen);
20
+ var history = useHistory();
21
+
22
+ var handleOpen = () => {
23
+ var _isOpen = !isOpen;
24
+
25
+ setIsOpen(_isOpen);
26
+ if (_isOpen) history.push("/".concat(specKey, "/types/").concat(tag));
27
+ };
28
+
29
+ useEffect(() => {
30
+ var status = match ? defaultOpen || match.params.typeTag === tag : defaultOpen;
31
+ setIsOpen(status);
32
+ }, [defaultOpen]);
33
+ return React.createElement(Accordion2, {
34
+ isOpen: isOpen,
35
+ toggleOpen: handleOpen,
36
+ className: className,
37
+ label: React.createElement(Heading, {
38
+ as: "h4",
39
+ fontSize: "small",
40
+ py: "xsmall"
41
+ }, highlightHTML(searchPattern, tag))
42
+ }, React.createElement("ul", null, Object.values(types).map(type => React.createElement("li", {
43
+ key: type.name
44
+ }, React.createElement(Link, {
45
+ to: "".concat(buildTypePath(specKey, tag, type.name))
46
+ }, highlightHTML(searchPattern, type.name))))));
47
+ }).withConfig({
48
+ displayName: "SideNavTypes",
28
49
  componentId: "vqik31-0"
29
- })(["display:block;padding:", ";&:hover,&:focus{", "{color:", ";}}&.active{", "{color:", ";font-weight:", ";}}"], _ref2 => {
30
- var {
31
- theme: {
32
- space: {
33
- xsmall,
34
- large
35
- }
36
- }
50
+ })(["font-family:", ";[aria-controls]:hover,[aria-expanded='true']{h4,svg{color:", ";}}[aria-expanded='true'] h4{font-weight:", ";}ul{border-left:dashed 1px ", ";list-style:none;margin:0;padding:0;padding-left:", ";padding-top:", ";}[aria-current]{background:", ";font-weight:", ";}", "{border-radius:", ";display:block;overflow:hidden;padding:", ";text-overflow:ellipsis;white-space:nowrap;&:hover,&:focus,&.active{background:", ";}}"], _ref2 => {
51
+ var {
52
+ theme
37
53
  } = _ref2;
38
- return "".concat(xsmall, " ").concat(large);
39
- }, Heading, _ref3 => {
54
+ return theme.fonts.brand;
55
+ }, _ref3 => {
40
56
  var {
41
57
  theme
42
58
  } = _ref3;
43
59
  return theme.colors.key;
44
- }, Heading, _ref4 => {
60
+ }, _ref4 => {
45
61
  var {
46
62
  theme
47
63
  } = _ref4;
48
- return theme.colors.key;
64
+ return theme.fontWeights.semiBold;
49
65
  }, _ref5 => {
50
66
  var {
51
67
  theme
52
68
  } = _ref5;
69
+ return theme.colors.ui2;
70
+ }, _ref6 => {
71
+ var {
72
+ theme
73
+ } = _ref6;
74
+ return theme.space.xxsmall;
75
+ }, _ref7 => {
76
+ var {
77
+ theme
78
+ } = _ref7;
79
+ return theme.space.xxsmall;
80
+ }, _ref8 => {
81
+ var {
82
+ theme
83
+ } = _ref8;
84
+ return theme.colors.ui1;
85
+ }, _ref9 => {
86
+ var {
87
+ theme
88
+ } = _ref9;
53
89
  return theme.fontWeights.semiBold;
90
+ }, Link, _ref10 => {
91
+ var {
92
+ theme
93
+ } = _ref10;
94
+ return theme.radii.medium;
95
+ }, _ref11 => {
96
+ var {
97
+ theme
98
+ } = _ref11;
99
+ return theme.space.xsmall;
100
+ }, _ref12 => {
101
+ var {
102
+ theme
103
+ } = _ref12;
104
+ return theme.colors.ui1;
54
105
  });
55
106
  //# sourceMappingURL=SideNavTypes.js.map