tethysdash 0.18.0__tar.gz

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 (488) hide show
  1. tethysdash-0.18.0/.coveragerc +10 -0
  2. tethysdash-0.18.0/.flake8 +3 -0
  3. tethysdash-0.18.0/.gitignore +27 -0
  4. tethysdash-0.18.0/.vscode/settings.json +5 -0
  5. tethysdash-0.18.0/LICENSE +21 -0
  6. tethysdash-0.18.0/PKG-INFO +214 -0
  7. tethysdash-0.18.0/README.md +173 -0
  8. tethysdash-0.18.0/docs/plugin_example.png +0 -0
  9. tethysdash-0.18.0/install.yml +20 -0
  10. tethysdash-0.18.0/jsconfig.json +9 -0
  11. tethysdash-0.18.0/package-lock.json +22900 -0
  12. tethysdash-0.18.0/package.json +251 -0
  13. tethysdash-0.18.0/pyproject.toml +85 -0
  14. tethysdash-0.18.0/pytest.ini +4 -0
  15. tethysdash-0.18.0/reactapp/App.js +24 -0
  16. tethysdash-0.18.0/reactapp/App.scss +60 -0
  17. tethysdash-0.18.0/reactapp/__tests__/App.test.js +19 -0
  18. tethysdash-0.18.0/reactapp/__tests__/components/appTour/AppTour.test.js +1290 -0
  19. tethysdash-0.18.0/reactapp/__tests__/components/buttons/DashboardItemDropdown.test.js +85 -0
  20. tethysdash-0.18.0/reactapp/__tests__/components/buttons/TooltipButton.test.js +39 -0
  21. tethysdash-0.18.0/reactapp/__tests__/components/contexts/AppTourContext.test.js +64 -0
  22. tethysdash-0.18.0/reactapp/__tests__/components/contexts/LayoutAlertContext.test.js +83 -0
  23. tethysdash-0.18.0/reactapp/__tests__/components/contexts/ModalPriorityContext.test.js +102 -0
  24. tethysdash-0.18.0/reactapp/__tests__/components/contexts/WebSocketContext.test.js +343 -0
  25. tethysdash-0.18.0/reactapp/__tests__/components/dashboard/CustomAlert.test.js +49 -0
  26. tethysdash-0.18.0/reactapp/__tests__/components/dashboard/DashboardItem.test.js +2342 -0
  27. tethysdash-0.18.0/reactapp/__tests__/components/dashboard/DashboardItemDropdown.test.js +173 -0
  28. tethysdash-0.18.0/reactapp/__tests__/components/dashboard/DashboardLayout.test.js +324 -0
  29. tethysdash-0.18.0/reactapp/__tests__/components/dashboard/DashboardLayoutAlerts.test.js +69 -0
  30. tethysdash-0.18.0/reactapp/__tests__/components/dashboard/DashboardTabs.test.js +924 -0
  31. tethysdash-0.18.0/reactapp/__tests__/components/dashboard/DeleteConfirmation.test.js +45 -0
  32. tethysdash-0.18.0/reactapp/__tests__/components/error/DebugError.test.js +14 -0
  33. tethysdash-0.18.0/reactapp/__tests__/components/error/Error.test.js +9 -0
  34. tethysdash-0.18.0/reactapp/__tests__/components/error/ErrorBoundary.test.js +40 -0
  35. tethysdash-0.18.0/reactapp/__tests__/components/error/GenericError.test.js +10 -0
  36. tethysdash-0.18.0/reactapp/__tests__/components/error/NotFound.test.js +10 -0
  37. tethysdash-0.18.0/reactapp/__tests__/components/inputs/CSVUploader.test.js +128 -0
  38. tethysdash-0.18.0/reactapp/__tests__/components/inputs/ColorPicker.test.js +37 -0
  39. tethysdash-0.18.0/reactapp/__tests__/components/inputs/ColorPickerPopover.test.js +104 -0
  40. tethysdash-0.18.0/reactapp/__tests__/components/inputs/Confirmation.test.js +200 -0
  41. tethysdash-0.18.0/reactapp/__tests__/components/inputs/CustomPicker.test.js +28 -0
  42. tethysdash-0.18.0/reactapp/__tests__/components/inputs/DataInput.test.js +458 -0
  43. tethysdash-0.18.0/reactapp/__tests__/components/inputs/DataRadioSelect.test.js +104 -0
  44. tethysdash-0.18.0/reactapp/__tests__/components/inputs/DataSelect.test.js +80 -0
  45. tethysdash-0.18.0/reactapp/__tests__/components/inputs/DatePicker.test.js +296 -0
  46. tethysdash-0.18.0/reactapp/__tests__/components/inputs/DateRange.test.js +126 -0
  47. tethysdash-0.18.0/reactapp/__tests__/components/inputs/DraggableList.test.js +154 -0
  48. tethysdash-0.18.0/reactapp/__tests__/components/inputs/FileUpload.test.js +69 -0
  49. tethysdash-0.18.0/reactapp/__tests__/components/inputs/InputTable.test.js +205 -0
  50. tethysdash-0.18.0/reactapp/__tests__/components/inputs/MultiIinput.test.js +36 -0
  51. tethysdash-0.18.0/reactapp/__tests__/components/inputs/RuleEditor.test.js +968 -0
  52. tethysdash-0.18.0/reactapp/__tests__/components/inputs/RuleStyleEditor.test.js +113 -0
  53. tethysdash-0.18.0/reactapp/__tests__/components/inputs/Slider.test.js +2255 -0
  54. tethysdash-0.18.0/reactapp/__tests__/components/inputs/TextEditor.test.js +544 -0
  55. tethysdash-0.18.0/reactapp/__tests__/components/inputs/custom/AddMapLayer.test.js +331 -0
  56. tethysdash-0.18.0/reactapp/__tests__/components/inputs/custom/CSVUploaderMetadata.test.js +84 -0
  57. tethysdash-0.18.0/reactapp/__tests__/components/inputs/custom/DateRangeMetadata.test.js +78 -0
  58. tethysdash-0.18.0/reactapp/__tests__/components/inputs/custom/MapDrawing.test.js +144 -0
  59. tethysdash-0.18.0/reactapp/__tests__/components/inputs/custom/MapExtent.test.js +264 -0
  60. tethysdash-0.18.0/reactapp/__tests__/components/inputs/custom/SliderMetadata.test.js +311 -0
  61. tethysdash-0.18.0/reactapp/__tests__/components/inputs/dateUtils.test.js +279 -0
  62. tethysdash-0.18.0/reactapp/__tests__/components/landingPage/ContextMenu.test.js +394 -0
  63. tethysdash-0.18.0/reactapp/__tests__/components/landingPage/DashboardCard.test.js +1656 -0
  64. tethysdash-0.18.0/reactapp/__tests__/components/layout/Header.test.js +1676 -0
  65. tethysdash-0.18.0/reactapp/__tests__/components/layout/Layout.test.js +72 -0
  66. tethysdash-0.18.0/reactapp/__tests__/components/loader/AppLoader.test.js +434 -0
  67. tethysdash-0.18.0/reactapp/__tests__/components/loader/DashboardLoader.test.js +1014 -0
  68. tethysdash-0.18.0/reactapp/__tests__/components/loader/IdleTimeManager.test.js +397 -0
  69. tethysdash-0.18.0/reactapp/__tests__/components/loader/LoadingAnimation.test.js +64 -0
  70. tethysdash-0.18.0/reactapp/__tests__/components/map/DrawInteractions.test.js +512 -0
  71. tethysdash-0.18.0/reactapp/__tests__/components/map/LayersControl.test.js +75 -0
  72. tethysdash-0.18.0/reactapp/__tests__/components/map/Legend.test.js +46 -0
  73. tethysdash-0.18.0/reactapp/__tests__/components/map/LegendRenderer.test.js +1266 -0
  74. tethysdash-0.18.0/reactapp/__tests__/components/map/Map.test.js +614 -0
  75. tethysdash-0.18.0/reactapp/__tests__/components/map/ModuleLoader.test.js +552 -0
  76. tethysdash-0.18.0/reactapp/__tests__/components/map/moduleMap.test.js +95 -0
  77. tethysdash-0.18.0/reactapp/__tests__/components/map/utilities.test.js +2152 -0
  78. tethysdash-0.18.0/reactapp/__tests__/components/modals/AppInfo.test.js +304 -0
  79. tethysdash-0.18.0/reactapp/__tests__/components/modals/DashboardEditor.test.js +525 -0
  80. tethysdash-0.18.0/reactapp/__tests__/components/modals/DashboardImport.test.js +636 -0
  81. tethysdash-0.18.0/reactapp/__tests__/components/modals/DashboardThumbnail.test.js +123 -0
  82. tethysdash-0.18.0/reactapp/__tests__/components/modals/DataViewer/BackgroundSettings.test.js +64 -0
  83. tethysdash-0.18.0/reactapp/__tests__/components/modals/DataViewer/BorderSettings.test.js +263 -0
  84. tethysdash-0.18.0/reactapp/__tests__/components/modals/DataViewer/CustomMessaging.test.js +144 -0
  85. tethysdash-0.18.0/reactapp/__tests__/components/modals/DataViewer/DataViewer.test.js +1221 -0
  86. tethysdash-0.18.0/reactapp/__tests__/components/modals/DataViewer/PlotlySettings.test.js +354 -0
  87. tethysdash-0.18.0/reactapp/__tests__/components/modals/DataViewer/SettingsPane.test.js +766 -0
  88. tethysdash-0.18.0/reactapp/__tests__/components/modals/DataViewer/VisualizationCard.test.js +188 -0
  89. tethysdash-0.18.0/reactapp/__tests__/components/modals/DataViewer/VisualizationGroup.test.js +60 -0
  90. tethysdash-0.18.0/reactapp/__tests__/components/modals/DataViewer/VisualizationPane.test.js +1953 -0
  91. tethysdash-0.18.0/reactapp/__tests__/components/modals/DataViewer/VisualizationSelector.test.js +94 -0
  92. tethysdash-0.18.0/reactapp/__tests__/components/modals/MapLayer/AttributesPane.test.js +693 -0
  93. tethysdash-0.18.0/reactapp/__tests__/components/modals/MapLayer/LayerPane.test.js +60 -0
  94. tethysdash-0.18.0/reactapp/__tests__/components/modals/MapLayer/LegendPane.test.js +395 -0
  95. tethysdash-0.18.0/reactapp/__tests__/components/modals/MapLayer/MapLayer.test.js +1314 -0
  96. tethysdash-0.18.0/reactapp/__tests__/components/modals/MapLayer/SourcePane.test.js +451 -0
  97. tethysdash-0.18.0/reactapp/__tests__/components/modals/MapLayer/StylePane.test.js +443 -0
  98. tethysdash-0.18.0/reactapp/__tests__/components/modals/NewDashboard.test.js +224 -0
  99. tethysdash-0.18.0/reactapp/__tests__/components/modals/PermissionGroups.test.js +621 -0
  100. tethysdash-0.18.0/reactapp/__tests__/components/modals/Permissions.test.js +658 -0
  101. tethysdash-0.18.0/reactapp/__tests__/components/modals/VisualizationPermissions.test.js +926 -0
  102. tethysdash-0.18.0/reactapp/__tests__/components/modals/utilities.test.js +154 -0
  103. tethysdash-0.18.0/reactapp/__tests__/components/views/Dashboard.test.js +629 -0
  104. tethysdash-0.18.0/reactapp/__tests__/components/views/LandingPage.test.js +160 -0
  105. tethysdash-0.18.0/reactapp/__tests__/components/visualizations/Base.test.js +1642 -0
  106. tethysdash-0.18.0/reactapp/__tests__/components/visualizations/BasePlot.test.js +908 -0
  107. tethysdash-0.18.0/reactapp/__tests__/components/visualizations/Card.test.js +84 -0
  108. tethysdash-0.18.0/reactapp/__tests__/components/visualizations/DataTable.test.js +114 -0
  109. tethysdash-0.18.0/reactapp/__tests__/components/visualizations/Image.test.js +55 -0
  110. tethysdash-0.18.0/reactapp/__tests__/components/visualizations/LiveChat.test.js +562 -0
  111. tethysdash-0.18.0/reactapp/__tests__/components/visualizations/Map.test.js +2057 -0
  112. tethysdash-0.18.0/reactapp/__tests__/components/visualizations/ModuleLoader.test.js +498 -0
  113. tethysdash-0.18.0/reactapp/__tests__/components/visualizations/VariableInput.test.js +1202 -0
  114. tethysdash-0.18.0/reactapp/__tests__/components/visualizations/utilities.test.js +941 -0
  115. tethysdash-0.18.0/reactapp/__tests__/env.test.js +25 -0
  116. tethysdash-0.18.0/reactapp/__tests__/hooks/useDynamicScript.test.js +99 -0
  117. tethysdash-0.18.0/reactapp/__tests__/index.test.js +222 -0
  118. tethysdash-0.18.0/reactapp/__tests__/loadEnv.js +1 -0
  119. tethysdash-0.18.0/reactapp/__tests__/services/api/app-utils.test.js +264 -0
  120. tethysdash-0.18.0/reactapp/__tests__/services/api/app.test.js +293 -0
  121. tethysdash-0.18.0/reactapp/__tests__/services/utilities.test.js +271 -0
  122. tethysdash-0.18.0/reactapp/__tests__/setupTests.js +85 -0
  123. tethysdash-0.18.0/reactapp/__tests__/test.env +12 -0
  124. tethysdash-0.18.0/reactapp/__tests__/transforms/babelTransform.js +29 -0
  125. tethysdash-0.18.0/reactapp/__tests__/transforms/cssTransform.js +14 -0
  126. tethysdash-0.18.0/reactapp/__tests__/transforms/fileTransform.js +40 -0
  127. tethysdash-0.18.0/reactapp/__tests__/utilities/constants.js +1480 -0
  128. tethysdash-0.18.0/reactapp/__tests__/utilities/customRender.js +237 -0
  129. tethysdash-0.18.0/reactapp/__tests__/utilities/fileMock.js +1 -0
  130. tethysdash-0.18.0/reactapp/__tests__/utilities/handlers.js +163 -0
  131. tethysdash-0.18.0/reactapp/__tests__/utilities/mockWebSocket.js +29 -0
  132. tethysdash-0.18.0/reactapp/__tests__/utilities/server.js +6 -0
  133. tethysdash-0.18.0/reactapp/assets/ERDCLogo.png +0 -0
  134. tethysdash-0.18.0/reactapp/assets/USACE_logo.png +0 -0
  135. tethysdash-0.18.0/reactapp/assets/cw3e_logo.png +0 -0
  136. tethysdash-0.18.0/reactapp/assets/error.png +0 -0
  137. tethysdash-0.18.0/reactapp/assets/error404.png +0 -0
  138. tethysdash-0.18.0/reactapp/assets/reactLogo.svg +1 -0
  139. tethysdash-0.18.0/reactapp/components/appTour/AppTour.css +6 -0
  140. tethysdash-0.18.0/reactapp/components/appTour/AppTour.js +785 -0
  141. tethysdash-0.18.0/reactapp/components/buttons/HeaderButton.css +17 -0
  142. tethysdash-0.18.0/reactapp/components/buttons/TooltipButton.js +60 -0
  143. tethysdash-0.18.0/reactapp/components/contexts/AppTourContext.js +36 -0
  144. tethysdash-0.18.0/reactapp/components/contexts/Contexts.js +14 -0
  145. tethysdash-0.18.0/reactapp/components/contexts/LayoutAlertContext.js +92 -0
  146. tethysdash-0.18.0/reactapp/components/contexts/MapContext.js +32 -0
  147. tethysdash-0.18.0/reactapp/components/contexts/ModalPriorityContext.js +42 -0
  148. tethysdash-0.18.0/reactapp/components/contexts/WebSocketContext.js +139 -0
  149. tethysdash-0.18.0/reactapp/components/dashboard/CustomAlert.js +44 -0
  150. tethysdash-0.18.0/reactapp/components/dashboard/DashboardItem.js +474 -0
  151. tethysdash-0.18.0/reactapp/components/dashboard/DashboardItemDropdown.js +184 -0
  152. tethysdash-0.18.0/reactapp/components/dashboard/DashboardLayout.js +159 -0
  153. tethysdash-0.18.0/reactapp/components/dashboard/DashboardLayoutAlerts.js +42 -0
  154. tethysdash-0.18.0/reactapp/components/dashboard/DashboardTabs.js +270 -0
  155. tethysdash-0.18.0/reactapp/components/dashboard/itemDropdown.css +3 -0
  156. tethysdash-0.18.0/reactapp/components/error/DebugError.js +107 -0
  157. tethysdash-0.18.0/reactapp/components/error/Error.js +84 -0
  158. tethysdash-0.18.0/reactapp/components/error/ErrorBoundary.js +48 -0
  159. tethysdash-0.18.0/reactapp/components/error/GenericError.js +13 -0
  160. tethysdash-0.18.0/reactapp/components/error/NotFound.js +13 -0
  161. tethysdash-0.18.0/reactapp/components/inputs/CSVUploader.js +122 -0
  162. tethysdash-0.18.0/reactapp/components/inputs/CheckboxInput.js +52 -0
  163. tethysdash-0.18.0/reactapp/components/inputs/ColorPicker.js +36 -0
  164. tethysdash-0.18.0/reactapp/components/inputs/ColorPickerPopOver.js +81 -0
  165. tethysdash-0.18.0/reactapp/components/inputs/Confirmation.js +62 -0
  166. tethysdash-0.18.0/reactapp/components/inputs/Custom.js +6 -0
  167. tethysdash-0.18.0/reactapp/components/inputs/CustomPicker.js +47 -0
  168. tethysdash-0.18.0/reactapp/components/inputs/DataInput.js +233 -0
  169. tethysdash-0.18.0/reactapp/components/inputs/DataRadioSelect.js +60 -0
  170. tethysdash-0.18.0/reactapp/components/inputs/DataSelect.js +83 -0
  171. tethysdash-0.18.0/reactapp/components/inputs/DateFormat.js +33 -0
  172. tethysdash-0.18.0/reactapp/components/inputs/DatePicker.css +4 -0
  173. tethysdash-0.18.0/reactapp/components/inputs/DatePicker.js +162 -0
  174. tethysdash-0.18.0/reactapp/components/inputs/DateRange.js +104 -0
  175. tethysdash-0.18.0/reactapp/components/inputs/DeleteConfirmation.js +16 -0
  176. tethysdash-0.18.0/reactapp/components/inputs/DraggableList.js +83 -0
  177. tethysdash-0.18.0/reactapp/components/inputs/FileUpload.js +73 -0
  178. tethysdash-0.18.0/reactapp/components/inputs/InputTable.js +235 -0
  179. tethysdash-0.18.0/reactapp/components/inputs/MultiInput.js +107 -0
  180. tethysdash-0.18.0/reactapp/components/inputs/NormalInput.js +54 -0
  181. tethysdash-0.18.0/reactapp/components/inputs/RuleEditor.js +668 -0
  182. tethysdash-0.18.0/reactapp/components/inputs/RuleStyleEditor.js +111 -0
  183. tethysdash-0.18.0/reactapp/components/inputs/Slider.js +788 -0
  184. tethysdash-0.18.0/reactapp/components/inputs/TextArea.js +31 -0
  185. tethysdash-0.18.0/reactapp/components/inputs/TextEditor.css +5 -0
  186. tethysdash-0.18.0/reactapp/components/inputs/TextEditor.js +554 -0
  187. tethysdash-0.18.0/reactapp/components/inputs/Toggle.js +52 -0
  188. tethysdash-0.18.0/reactapp/components/inputs/custom/AddMapLayer.js +309 -0
  189. tethysdash-0.18.0/reactapp/components/inputs/custom/CSVUploaderMetadata.js +33 -0
  190. tethysdash-0.18.0/reactapp/components/inputs/custom/DateRangeMetadata.js +47 -0
  191. tethysdash-0.18.0/reactapp/components/inputs/custom/MapDrawing.js +136 -0
  192. tethysdash-0.18.0/reactapp/components/inputs/custom/MapExtent.js +248 -0
  193. tethysdash-0.18.0/reactapp/components/inputs/custom/SliderMetadata.js +427 -0
  194. tethysdash-0.18.0/reactapp/components/inputs/dateUtils.js +148 -0
  195. tethysdash-0.18.0/reactapp/components/landingPage/ContextMenu.js +204 -0
  196. tethysdash-0.18.0/reactapp/components/landingPage/DashboardCard.js +520 -0
  197. tethysdash-0.18.0/reactapp/components/layout/Header.js +591 -0
  198. tethysdash-0.18.0/reactapp/components/layout/Layout.js +43 -0
  199. tethysdash-0.18.0/reactapp/components/loader/AppLoader.js +548 -0
  200. tethysdash-0.18.0/reactapp/components/loader/DashboardLoader.js +376 -0
  201. tethysdash-0.18.0/reactapp/components/loader/IdleTimerManager.js +256 -0
  202. tethysdash-0.18.0/reactapp/components/loader/LoadingAnimation.js +50 -0
  203. tethysdash-0.18.0/reactapp/components/loader/LoadingAnimation.scss +164 -0
  204. tethysdash-0.18.0/reactapp/components/map/DrawInteractions.js +229 -0
  205. tethysdash-0.18.0/reactapp/components/map/LayersControl.js +159 -0
  206. tethysdash-0.18.0/reactapp/components/map/LegendControl.js +113 -0
  207. tethysdash-0.18.0/reactapp/components/map/LegendRenderer.js +713 -0
  208. tethysdash-0.18.0/reactapp/components/map/Map.js +389 -0
  209. tethysdash-0.18.0/reactapp/components/map/ModuleLoader.js +672 -0
  210. tethysdash-0.18.0/reactapp/components/map/moduleMap.js +18 -0
  211. tethysdash-0.18.0/reactapp/components/map/utilities.js +1015 -0
  212. tethysdash-0.18.0/reactapp/components/modals/AppInfo.js +244 -0
  213. tethysdash-0.18.0/reactapp/components/modals/DashboardEditor.js +313 -0
  214. tethysdash-0.18.0/reactapp/components/modals/DashboardImport.js +136 -0
  215. tethysdash-0.18.0/reactapp/components/modals/DashboardThumbnail.js +88 -0
  216. tethysdash-0.18.0/reactapp/components/modals/DataViewer/BackgroundSettings.js +166 -0
  217. tethysdash-0.18.0/reactapp/components/modals/DataViewer/BorderSettings.js +470 -0
  218. tethysdash-0.18.0/reactapp/components/modals/DataViewer/CustomMessaging.js +109 -0
  219. tethysdash-0.18.0/reactapp/components/modals/DataViewer/DataViewer.css +11 -0
  220. tethysdash-0.18.0/reactapp/components/modals/DataViewer/DataViewer.js +455 -0
  221. tethysdash-0.18.0/reactapp/components/modals/DataViewer/PlotlySettings.js +248 -0
  222. tethysdash-0.18.0/reactapp/components/modals/DataViewer/SettingsPane.js +273 -0
  223. tethysdash-0.18.0/reactapp/components/modals/DataViewer/VisualizationCard.js +174 -0
  224. tethysdash-0.18.0/reactapp/components/modals/DataViewer/VisualizationGroup.js +95 -0
  225. tethysdash-0.18.0/reactapp/components/modals/DataViewer/VisualizationPane.js +457 -0
  226. tethysdash-0.18.0/reactapp/components/modals/DataViewer/VisualizationSelector.js +117 -0
  227. tethysdash-0.18.0/reactapp/components/modals/MapLayer/AttributesPane.js +617 -0
  228. tethysdash-0.18.0/reactapp/components/modals/MapLayer/LayerPane.js +125 -0
  229. tethysdash-0.18.0/reactapp/components/modals/MapLayer/LegendPane.js +356 -0
  230. tethysdash-0.18.0/reactapp/components/modals/MapLayer/MapLayer.js +438 -0
  231. tethysdash-0.18.0/reactapp/components/modals/MapLayer/SourcePane.js +333 -0
  232. tethysdash-0.18.0/reactapp/components/modals/MapLayer/StylePane.js +270 -0
  233. tethysdash-0.18.0/reactapp/components/modals/NewDashboard.js +141 -0
  234. tethysdash-0.18.0/reactapp/components/modals/PermissionGroups.js +537 -0
  235. tethysdash-0.18.0/reactapp/components/modals/Permissions.js +393 -0
  236. tethysdash-0.18.0/reactapp/components/modals/VisualizationPermissions.js +363 -0
  237. tethysdash-0.18.0/reactapp/components/modals/noArrowInput.css +11 -0
  238. tethysdash-0.18.0/reactapp/components/modals/utilities.js +150 -0
  239. tethysdash-0.18.0/reactapp/components/modals/wideModal.css +61 -0
  240. tethysdash-0.18.0/reactapp/components/visualizations/Base.js +455 -0
  241. tethysdash-0.18.0/reactapp/components/visualizations/BasePlot.js +460 -0
  242. tethysdash-0.18.0/reactapp/components/visualizations/Card.js +124 -0
  243. tethysdash-0.18.0/reactapp/components/visualizations/DataTable.js +81 -0
  244. tethysdash-0.18.0/reactapp/components/visualizations/Image.js +57 -0
  245. tethysdash-0.18.0/reactapp/components/visualizations/LiveChat.js +693 -0
  246. tethysdash-0.18.0/reactapp/components/visualizations/Map.js +621 -0
  247. tethysdash-0.18.0/reactapp/components/visualizations/ModuleLoader.js +106 -0
  248. tethysdash-0.18.0/reactapp/components/visualizations/Text.js +30 -0
  249. tethysdash-0.18.0/reactapp/components/visualizations/VariableInput.js +365 -0
  250. tethysdash-0.18.0/reactapp/components/visualizations/utilities.js +483 -0
  251. tethysdash-0.18.0/reactapp/config/development.env +13 -0
  252. tethysdash-0.18.0/reactapp/config/webpack.config.js +115 -0
  253. tethysdash-0.18.0/reactapp/custom-bootstrap.scss +5 -0
  254. tethysdash-0.18.0/reactapp/hooks/useDynamicScript.js +45 -0
  255. tethysdash-0.18.0/reactapp/index.js +25 -0
  256. tethysdash-0.18.0/reactapp/services/api/app.js +117 -0
  257. tethysdash-0.18.0/reactapp/services/api/client.js +26 -0
  258. tethysdash-0.18.0/reactapp/services/api/tethys.js +28 -0
  259. tethysdash-0.18.0/reactapp/services/utilities.js +37 -0
  260. tethysdash-0.18.0/reactapp/views/Dashboard.js +44 -0
  261. tethysdash-0.18.0/reactapp/views/LandingPage.js +63 -0
  262. tethysdash-0.18.0/setup.cfg +4 -0
  263. tethysdash-0.18.0/tethysapp/tethysdash/__init__.py +1 -0
  264. tethysdash-0.18.0/tethysapp/tethysdash/alembic/README +15 -0
  265. tethysdash-0.18.0/tethysapp/tethysdash/alembic/env.py +106 -0
  266. tethysdash-0.18.0/tethysapp/tethysdash/alembic/script.py.mako +26 -0
  267. tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/0597a408202d_adding_variable_to_map_extent.py +73 -0
  268. tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/064c8e70a8a6_add_permissions.py +117 -0
  269. tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/115022bfef13_add_unrestricted_placement.py +51 -0
  270. tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/20f22416d985_add_dashboard_tabs.py +85 -0
  271. tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/488ef941ec3a_remove_griditem_i_contraint.py +47 -0
  272. tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/49b308226cca_update_permissions.py +98 -0
  273. tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/5ffcfd93e61f_add_dashboard_item_uuid.py +42 -0
  274. tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/663c69fd7709_update_table_for_landing_page.py +61 -0
  275. tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/78188f76ffa0_add_formats_to_date_variables.py +82 -0
  276. tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/9d81090ceb84_convert_tables_for_sqlite_usage.py +89 -0
  277. tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/b4f03a66239a_refresh_rate_to_metadata_string.py +77 -0
  278. tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/ba25f182726d_convert_label_to_description.py +72 -0
  279. tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/c1142bdd517d_update_layer_source_names.py +105 -0
  280. tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/c12ae6fbc947_chat_history.py +54 -0
  281. tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/ed97dcad9e2b_initial_db_creation.py +63 -0
  282. tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/ef2472c4f3c7_update_map_visualization_keys.py +98 -0
  283. tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/f6488db5f489_map_view_config_to_map_extent.py +81 -0
  284. tethysdash-0.18.0/tethysapp/tethysdash/alembic.ini +117 -0
  285. tethysdash-0.18.0/tethysapp/tethysdash/app.py +66 -0
  286. tethysdash-0.18.0/tethysapp/tethysdash/cli.py +80 -0
  287. tethysdash-0.18.0/tethysapp/tethysdash/collect_plugin_static.py +116 -0
  288. tethysdash-0.18.0/tethysapp/tethysdash/controllers.py +1001 -0
  289. tethysdash-0.18.0/tethysapp/tethysdash/default_card.png +0 -0
  290. tethysdash-0.18.0/tethysapp/tethysdash/default_chart.png +0 -0
  291. tethysdash-0.18.0/tethysapp/tethysdash/default_custom.png +0 -0
  292. tethysdash-0.18.0/tethysapp/tethysdash/default_dashboard.png +0 -0
  293. tethysdash-0.18.0/tethysapp/tethysdash/default_image.png +0 -0
  294. tethysdash-0.18.0/tethysapp/tethysdash/default_map.png +0 -0
  295. tethysdash-0.18.0/tethysapp/tethysdash/default_map_layer.png +0 -0
  296. tethysdash-0.18.0/tethysapp/tethysdash/default_table.png +0 -0
  297. tethysdash-0.18.0/tethysapp/tethysdash/default_text.png +0 -0
  298. tethysdash-0.18.0/tethysapp/tethysdash/default_variable_input.png +0 -0
  299. tethysdash-0.18.0/tethysapp/tethysdash/exceptions.py +6 -0
  300. tethysdash-0.18.0/tethysapp/tethysdash/model.py +2112 -0
  301. tethysdash-0.18.0/tethysapp/tethysdash/plugin_helpers.py +1040 -0
  302. tethysdash-0.18.0/tethysapp/tethysdash/public/css/main.css +0 -0
  303. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/ARO_Flux.geojson +24 -0
  304. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/ARO_Flux.json +9 -0
  305. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Disdrometers.geojson +64 -0
  306. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Disdrometers.json +9 -0
  307. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Microrain_Radar.geojson +46 -0
  308. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Microrain_Radar.json +9 -0
  309. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Obs_Stations.geojson +245 -0
  310. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Precipitation.geojson +1054 -0
  311. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Precipitation.json +9 -0
  312. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Pressure.geojson +222 -0
  313. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Pressure.json +9 -0
  314. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/SFC_Met_Soil.geojson +150 -0
  315. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/SFC_Met_Soil.json +9 -0
  316. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/SWE.geojson +222 -0
  317. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/SWE.json +9 -0
  318. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Snow_Level_Radar.geojson +65 -0
  319. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Snow_Level_Radar.json +9 -0
  320. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Streamflow.geojson +255 -0
  321. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Surface_Met_Obs_Stations.geojson +1569 -0
  322. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Temperature.geojson +854 -0
  323. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Temperature.json +9 -0
  324. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Wind.geojson +458 -0
  325. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Wind.json +9 -0
  326. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/combined_met_data.geojson +506 -0
  327. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/combined_met_data_style.json +20 -0
  328. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/kenya_stations.geojson +600 -0
  329. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/kenya_sub_basins.geojson +223 -0
  330. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/photo_explorer_stations.geojson +10294 -0
  331. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/radar_points.geojson +155 -0
  332. tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/radar_points_styles.json +17 -0
  333. tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/.gitkeep +0 -0
  334. tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/07ed3005922083befe70ff5480ead925.png +0 -0
  335. tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/283.js +1 -0
  336. tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/36.js +1 -0
  337. tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/3f2e2579fd4472c47a163e4fed0bfecc.png +0 -0
  338. tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/44.js +1 -0
  339. tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/694.js +1 -0
  340. tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/700.js +1 -0
  341. tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/735.js +1 -0
  342. tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/7e95381f937c28aef6a63c0f8f1fbd8f.png +0 -0
  343. tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/807.js +1 -0
  344. tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/906fa25700537a2e14554aa951de0fea.png +0 -0
  345. tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/945.js +1 -0
  346. tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/a63ad733bdcc96521b3b41f9a1e5e4e9.png +0 -0
  347. tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/main.js +2 -0
  348. tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/main.js.LICENSE.txt +94 -0
  349. tethysdash-0.18.0/tethysapp/tethysdash/public/images/ERDCLogo.png +0 -0
  350. tethysdash-0.18.0/tethysapp/tethysdash/public/images/NOAA_chart_bg.jpg +0 -0
  351. tethysdash-0.18.0/tethysapp/tethysdash/public/images/USACE_logo.png +0 -0
  352. tethysdash-0.18.0/tethysapp/tethysdash/public/images/cw3e_logo.png +0 -0
  353. tethysdash-0.18.0/tethysapp/tethysdash/public/images/default_dashboard.png +0 -0
  354. tethysdash-0.18.0/tethysapp/tethysdash/public/images/icon.gif +0 -0
  355. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/Custom Image.png +0 -0
  356. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/Map.png +0 -0
  357. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/Text.png +0 -0
  358. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/Variable Input.png +0 -0
  359. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cimss_integrated_microwave_animations.png +0 -0
  360. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cnrfc_10day_daily_maximum_streamflow_probability.png +0 -0
  361. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cnrfc_10day_hourly_maximum_streamflow_probability.png +0 -0
  362. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cnrfc_10day_streamflow_volume_accumulation.png +0 -0
  363. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cnrfc_5day_streamflow_volume_exceedance.png +0 -0
  364. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cnrfc_daily_briefing.png +0 -0
  365. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cnrfc_hefs.png +0 -0
  366. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cnrfc_impact_statements.png +0 -0
  367. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cnrfc_monthly_streamflow_volume_exceedance.png +0 -0
  368. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/csv.png +0 -0
  369. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/custom_example.png +0 -0
  370. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_250_hpa_winds.png +0 -0
  371. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_500_hpa_vorticity.png +0 -0
  372. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_850_hpa_temperature.png +0 -0
  373. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_ar_landfall.png +0 -0
  374. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_ar_scale_ensemble_diagnostics.png +0 -0
  375. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_ar_scale_plume_diagrams.png +0 -0
  376. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_coastal_maximum_ar_scale_and_precip_maps.png +0 -0
  377. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_datashare_observation_data.png +0 -0
  378. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_disdrometer.png +0 -0
  379. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_disdrometer_chart.png +0 -0
  380. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_disdrometer_map.png +0 -0
  381. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_integrated_microwave_animations.png +0 -0
  382. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_ivt_and_iwv_analyses_and_forecasts.png +0 -0
  383. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_ivt_and_relative_humidity_plots.png +0 -0
  384. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_ivt_cross_sections.png +0 -0
  385. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_ivt_ensemble_probability.png +0 -0
  386. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_ivt_thumbnail_ensembles.png +0 -0
  387. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_mrr.png +0 -0
  388. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_mrr_chart.png +0 -0
  389. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_mrr_map.png +0 -0
  390. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_qpe.png +0 -0
  391. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_qpf.png +0 -0
  392. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_radiometric_wind_profilers.png +0 -0
  393. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_radiometric_wind_profilers_chart.png +0 -0
  394. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_radiometric_wind_profilers_map.png +0 -0
  395. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_rainfall_48hr_plot.png +0 -0
  396. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_ssmis_products.png +0 -0
  397. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_streamflow_images.png +0 -0
  398. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_streamflow_obs.png +0 -0
  399. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_surface_met_plot.png +0 -0
  400. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_surface_meterology.png +0 -0
  401. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_water_storage_tracking.png +0 -0
  402. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_water_vapor_flux.png +0 -0
  403. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_west_coast_ivt_magnitude_plumes.png +0 -0
  404. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/drought_drought_map_viewer.png +0 -0
  405. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/drought_drought_monitoring_pie_chart.png +0 -0
  406. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/drought_drought_monitoring_series.png +0 -0
  407. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/drought_drought_monitoring_table.png +0 -0
  408. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/drought_map.png +0 -0
  409. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/drought_map_layer.png +0 -0
  410. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/fim_synthetic_rating_curves.png +0 -0
  411. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/fim_synthetic_rating_curves_parameters.png +0 -0
  412. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/geoglows_map.png +0 -0
  413. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/geoglows_plots.png +0 -0
  414. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/jsonfiles.png +0 -0
  415. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/machine_learning.png +0 -0
  416. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/ndzarr.png +0 -0
  417. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/noaa_disdrometer.png +0 -0
  418. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/noaa_landfalling_ar_scale_frequencies_plots.png +0 -0
  419. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/noaa_snow_level.png +0 -0
  420. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/noaa_ssmis_products.png +0 -0
  421. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/noaa_water_vapor_flux.png +0 -0
  422. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/numpy.png +0 -0
  423. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/nwmp_data_service.png +0 -0
  424. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/nwmp_gauges_series.png +0 -0
  425. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/nwmp_layer.png +0 -0
  426. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/nwmp_map.png +0 -0
  427. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/nwmp_reaches_series.png +0 -0
  428. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/nyc_car_theft_chart.png +0 -0
  429. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/nyc_car_theft_map.png +0 -0
  430. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/template_card_example.png +0 -0
  431. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/template_image_example.png +0 -0
  432. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/template_map_example.png +0 -0
  433. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/template_map_layer_example.png +0 -0
  434. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/template_plot_example.png +0 -0
  435. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/template_table_example.png +0 -0
  436. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/template_text_example.png +0 -0
  437. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/template_variable_input_example.png +0 -0
  438. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/textfiles.png +0 -0
  439. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/tiled_cat.png +0 -0
  440. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/usace_california_plots.png +0 -0
  441. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/usace_california_plots_table.png +0 -0
  442. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/usace_time_series.png +0 -0
  443. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/usace_time_series_table.png +0 -0
  444. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/usgs_photo_explorer_data_time_series.png +0 -0
  445. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/usgs_photo_explorer_image_time_series.png +0 -0
  446. tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/wildfire_visualizer_map.png +0 -0
  447. tethysdash-0.18.0/tethysapp/tethysdash/public/images/tethys_dash.png +0 -0
  448. tethysdash-0.18.0/tethysapp/tethysdash/public/images/visualization_settings.png +0 -0
  449. tethysdash-0.18.0/tethysapp/tethysdash/sessions.py +111 -0
  450. tethysdash-0.18.0/tethysapp/tethysdash/templates/tethysdash/index.html +16 -0
  451. tethysdash-0.18.0/tethysapp/tethysdash/tests/__init__.py +0 -0
  452. tethysdash-0.18.0/tethysapp/tethysdash/tests/conftest.py +585 -0
  453. tethysdash-0.18.0/tethysapp/tethysdash/tests/files/thumbnail.png +0 -0
  454. tethysdash-0.18.0/tethysapp/tethysdash/tests/files/valid_geojson.geojson +18 -0
  455. tethysdash-0.18.0/tethysapp/tethysdash/tests/integrated_tests/__init__.py +0 -0
  456. tethysdash-0.18.0/tethysapp/tethysdash/tests/integrated_tests/test_controllers.py +2401 -0
  457. tethysdash-0.18.0/tethysapp/tethysdash/tests/integrated_tests/test_model.py +2228 -0
  458. tethysdash-0.18.0/tethysapp/tethysdash/tests/integrated_tests/test_sessions.py +455 -0
  459. tethysdash-0.18.0/tethysapp/tethysdash/tests/integrated_tests/test_utilities.py +69 -0
  460. tethysdash-0.18.0/tethysapp/tethysdash/tests/integrated_tests/test_visualizations.py +232 -0
  461. tethysdash-0.18.0/tethysapp/tethysdash/tests/unit_tests/__init__.py +0 -0
  462. tethysdash-0.18.0/tethysapp/tethysdash/tests/unit_tests/test_collect_plugin_static.py +274 -0
  463. tethysdash-0.18.0/tethysapp/tethysdash/tests/unit_tests/test_plugin_helpers.py +850 -0
  464. tethysdash-0.18.0/tethysapp/tethysdash/utilities.py +85 -0
  465. tethysdash-0.18.0/tethysapp/tethysdash/visualizations.py +220 -0
  466. tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/635d22f6-136a-40b2-a608-29349cfd1f8d/be63c429-287d-4e2a-a0a8-50cf3cc76734.json +1 -0
  467. tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/6434ca8d-7a70-4037-b6d4-88617567fffb/39c7f652-7508-491a-954d-bd7711076cf6.json +1 -0
  468. tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/6434ca8d-7a70-4037-b6d4-88617567fffb/e07d159f-1987-45b7-a83c-0678a6838251.json +1 -0
  469. tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/6ce2f644-04e9-4923-8b28-46fbd160457d/85728f99-ea80-4aa1-8b74-45e6863304fc.json +1 -0
  470. tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/6ce2f644-04e9-4923-8b28-46fbd160457d/a7e2b942-d7a1-423d-993f-a039a4ee99f7.json +1 -0
  471. tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/9f2a8e5d-d03c-43ed-b16e-3eced9e0eaef/4ea7d32e-37ff-4ebc-94d0-e87ab7a223c2.json +1 -0
  472. tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/9f2a8e5d-d03c-43ed-b16e-3eced9e0eaef/a7c3492e-f727-46ef-b61e-65bf2977d2e4.json +1 -0
  473. tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/b5fbf330-7ffc-4d43-ab91-c28fe1cdd37e/b29dcd16-97ad-424a-a19f-f10339fc2208.json +1 -0
  474. tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/b5fbf330-7ffc-4d43-ab91-c28fe1cdd37e/e037568d-5b04-41d0-b387-1fca8fc4ec9c.json +1 -0
  475. tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/c2b8d09c-2004-4dff-a2e8-cde5d8049f2c/cb05ce74-dd41-4ed1-ac0a-f574457c7022.json +1 -0
  476. tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/c2b8d09c-2004-4dff-a2e8-cde5d8049f2c/d8517fee-64ac-490c-b180-45daa844d80e.json +1 -0
  477. tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/d0d52f15-0238-4c5e-ac86-49f6856216fe/4dc5c63f-6c0c-48ee-8eaf-1c1d24425c15.json +1 -0
  478. tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/d0d52f15-0238-4c5e-ac86-49f6856216fe/cab428d7-42d0-49ba-a274-12cb8886e0da.json +1 -0
  479. tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/dc11818b-23ea-45ca-b9d0-2674a2ec8a56/bc0c7044-b0bb-4265-96de-3d3aa5ed8cb7.json +1 -0
  480. tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/dde062c0-9716-4d6f-991a-b1b6bbdd7940/9d17973f-abf4-416f-a32f-875506b40aa0.json +1 -0
  481. tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/dde062c0-9716-4d6f-991a-b1b6bbdd7940/ea2c69ba-959a-4593-9d37-99e2c40edf2a.json +1 -0
  482. tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/f1e9fae1-32b4-47c8-b48b-bcb73b362c99/d552bc72-7ed0-4ca8-9af3-bd688efb04fa.json +1 -0
  483. tethysdash-0.18.0/tethysdash.egg-info/PKG-INFO +214 -0
  484. tethysdash-0.18.0/tethysdash.egg-info/SOURCES.txt +486 -0
  485. tethysdash-0.18.0/tethysdash.egg-info/dependency_links.txt +1 -0
  486. tethysdash-0.18.0/tethysdash.egg-info/entry_points.txt +2 -0
  487. tethysdash-0.18.0/tethysdash.egg-info/requires.txt +20 -0
  488. tethysdash-0.18.0/tethysdash.egg-info/top_level.txt +1 -0
@@ -0,0 +1,10 @@
1
+ [run]
2
+ omit =
3
+ *app.py,
4
+ */.tethys/*,
5
+ */tests/*,
6
+ */alembic/*
7
+ source = tethysapp/tethysdash
8
+
9
+ [report]
10
+ skip_covered = True
@@ -0,0 +1,3 @@
1
+ [flake8]
2
+ max-line-length = 88
3
+ exclude = ./node_modules/
@@ -0,0 +1,27 @@
1
+ *.pydevproject
2
+ *.project
3
+ *.egg-info
4
+ *.class
5
+ *.pyo
6
+ *.pyc
7
+ *.db
8
+ *.sqlite
9
+ *.DS_Store
10
+ *__pycache__
11
+ .idea/
12
+ services.yml
13
+ node_modules*
14
+ tethysapp/tethysdash/workspaces/
15
+ reactapp/config/production.env
16
+ test.py
17
+ .coverage
18
+ launch.json
19
+ cache
20
+ coverage
21
+ data
22
+ build
23
+ dist
24
+
25
+
26
+ tethysapp/tethysdash/public/images/plugins/*
27
+ tethysapp/tethysdash/public/data/plugins/*
@@ -0,0 +1,5 @@
1
+ {
2
+ "editor.rulers": [88],
3
+ "terminal.integrated.cwd": "",
4
+ "terminal.integrated.splitCwd": "workspaceRoot"
5
+ }
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Aquaveo
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,214 @@
1
+ Metadata-Version: 2.4
2
+ Name: tethysdash
3
+ Version: 0.18.0
4
+ Summary: A Tethys App for no code/low code web application development app
5
+ Author-email: Corey Krewson <ckrewson@aquaveo.com>
6
+ Project-URL: homepage, https://tethysdashdocs.readthedocs.io/en/latest/
7
+ Project-URL: documentation, https://tethysdashdocs.readthedocs.io/en/latest/
8
+ Project-URL: repository, https://github.com/tethysplatform/tethysapp-tethys_dash
9
+ Classifier: Environment :: Web Environment
10
+ Classifier: Framework :: Django
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Operating System :: OS Independent
13
+ Classifier: Programming Language :: Python
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Topic :: Internet :: WWW/HTTP
17
+ Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
18
+ Description-Content-Type: text/markdown
19
+ License-File: LICENSE
20
+ Requires-Dist: hjson==3.1
21
+ Requires-Dist: nh3==0.2.21
22
+ Requires-Dist: beautifulsoup4==4.13.4
23
+ Requires-Dist: better_profanity==0.7.0
24
+ Requires-Dist: bleach==6.1.0
25
+ Requires-Dist: bleach[css]
26
+ Requires-Dist: channels_redis==4.3.0
27
+ Requires-Dist: django-redis==6.0.0
28
+ Requires-Dist: cssutils==2.11.1
29
+ Requires-Dist: pytest-django
30
+ Requires-Dist: pytest-mock
31
+ Requires-Dist: pytest-cov
32
+ Requires-Dist: pytest-asyncio
33
+ Requires-Dist: intake==2.0.7
34
+ Requires-Dist: djangorestframework
35
+ Requires-Dist: alembic==1.14.0
36
+ Requires-Dist: xmltodict==0.14.2
37
+ Requires-Dist: psycopg2-binary==2.9.11
38
+ Requires-Dist: geoalchemy2==0.18.4
39
+ Requires-Dist: tethys-platform>=4.5.0
40
+ Dynamic: license-file
41
+
42
+ # TethysDash
43
+
44
+ This app was created using an experimental Tethys + React app scaffold. It uses React for the frontend of the app and Tethys as the backend. For more detailed information, check the [official TethysDash documentation](https://tethysdashdocs.readthedocs.io/en/latest/index.html)
45
+
46
+ ## Quick Installation
47
+
48
+ 1. If creating a new python environment, create and activate it
49
+
50
+ ```
51
+ python3 -m venv test_env
52
+ source test_env/bin/activate
53
+ ```
54
+
55
+ 2. Install TethysDash
56
+
57
+ ```
58
+ pip install tethysdash
59
+ ```
60
+
61
+ 3. Setup Tethys and TethysDash Databases and Services
62
+
63
+ ```
64
+ tethysdash setup
65
+ ```
66
+
67
+ 4. Start Tethys Portal
68
+
69
+ ```
70
+ tethysdash start
71
+ ```
72
+
73
+ ## Development Installation
74
+
75
+ You need to install both the Tethys dependencies and the node dependencies:
76
+
77
+ 1. Open Terminal and activate tethys env
78
+
79
+ ```
80
+ conda activate tethys
81
+ ```
82
+
83
+ 2. Clone the Repo
84
+
85
+ ```
86
+ git clone https://github.com/tethysplatform/tethysapp-tethys_dash
87
+ ```
88
+
89
+ 3. Install the app in Tethys Platform
90
+
91
+ ```
92
+ cd tethysapp-tethys_dash/
93
+ tethys install -d
94
+ ```
95
+
96
+ 4. Create Persistence Store (if not done already) (update connection string as needed)
97
+
98
+ ```
99
+ ## Command Line Interface (CLI)
100
+
101
+ After installing tethysdash, you can use the CLI tool:
102
+
103
+ ```
104
+
105
+ tethysdash
106
+
107
+ ```
108
+
109
+ This will run the CLI entry point defined in the package. You can add arguments as needed:
110
+
111
+ ```
112
+
113
+ tethysdash <arguments>
114
+
115
+ ```
116
+
117
+ For example:
118
+
119
+ ```
120
+
121
+ tethysdash --help
122
+
123
+ ```
124
+
125
+ ### Setup Command
126
+
127
+ To run Tethys portal and database setup commands, use:
128
+
129
+ ```
130
+
131
+ tethysdash setup
132
+
133
+ ```
134
+
135
+ This will execute:
136
+
137
+ - `tethys gen portal_config`
138
+ - `tethys db configure`
139
+
140
+ You must have the `tethys` CLI available in your environment.
141
+ tethys services create persistent -n primary_db -c postgres:mysecretpassword@localhost:5432
142
+ ```
143
+
144
+ 5. Connect Persistence Store to TethysDash
145
+
146
+ ```
147
+ tethys link persistent:primary_db tethysdash:ps_database:primary_db
148
+ ```
149
+
150
+ 6. Setup Environment Variables (not necessary unless connection values are different)
151
+
152
+ ```
153
+ export POSTGRES_PASSWORD=mysecretpassword
154
+ export TETHYS_DB_HOST=localhost
155
+ export TETHYSDASH_DB_NAME=tethysdash_primary_db
156
+ export TETHYS_DB_PORT=5432
157
+ ```
158
+
159
+ 7. Setup TethysDash DB Tables
160
+
161
+ ```
162
+ tethys syncstores tethysdash
163
+ ```
164
+
165
+ 8. Install Plugin Examples (not necessary but recommended)
166
+
167
+ ```
168
+ cd ..
169
+ git clone https://github.com/FIRO-Tethys/tethysdash_examples
170
+ cd tethysdash_examples
171
+ pip install -e .
172
+ ```
173
+
174
+ ## Frontend Development
175
+
176
+ The webpack dev server is configured to proxy the Tethys development server (see `webpack.config.js`). The app endpoint will be handled by the webpack development server and all other endpoints will be handled by the Tethys (Django) development server. As such, you will need to start both in separate terminals.
177
+
178
+ 1. Install the node and dependencies
179
+
180
+ ```
181
+ cd tethysapp-tethysdash
182
+ npm install --dev
183
+ ```
184
+
185
+ 2. Start Tethys development server
186
+
187
+ ```
188
+ tethys manage start
189
+ ```
190
+
191
+ 3. Start webpack development server (in separate terminal)
192
+
193
+ ```
194
+ npm start
195
+ ```
196
+
197
+ ## Frontend Build
198
+
199
+ Webpack is configured to bundle and build the React app into the `tethysapp/<app_package>/public/frontend` directory. Before building a Python distribution for release, you should build using this command:
200
+
201
+ ```
202
+ npm run build
203
+ ```
204
+
205
+ ## Frontend Test
206
+
207
+ Use the following commands to lint and test the React portion of the app.
208
+
209
+ ```
210
+ npm run lint
211
+ npm run test
212
+ ```
213
+
214
+ The linting capability is powered by [eslint](https://eslint.org/) and a number of plugins for React. The testing capabilities include [jest](https://jestjs.io/), [jsdom](https://github.com/jsdom/jsdom#readme), [testing-framework](https://testing-library.com/), [user-event](https://testing-library.com/docs/user-event/intro/), and a few other JavaScript testing utilties to make it easy to test the frontend of the React-Tethys app.
@@ -0,0 +1,173 @@
1
+ # TethysDash
2
+
3
+ This app was created using an experimental Tethys + React app scaffold. It uses React for the frontend of the app and Tethys as the backend. For more detailed information, check the [official TethysDash documentation](https://tethysdashdocs.readthedocs.io/en/latest/index.html)
4
+
5
+ ## Quick Installation
6
+
7
+ 1. If creating a new python environment, create and activate it
8
+
9
+ ```
10
+ python3 -m venv test_env
11
+ source test_env/bin/activate
12
+ ```
13
+
14
+ 2. Install TethysDash
15
+
16
+ ```
17
+ pip install tethysdash
18
+ ```
19
+
20
+ 3. Setup Tethys and TethysDash Databases and Services
21
+
22
+ ```
23
+ tethysdash setup
24
+ ```
25
+
26
+ 4. Start Tethys Portal
27
+
28
+ ```
29
+ tethysdash start
30
+ ```
31
+
32
+ ## Development Installation
33
+
34
+ You need to install both the Tethys dependencies and the node dependencies:
35
+
36
+ 1. Open Terminal and activate tethys env
37
+
38
+ ```
39
+ conda activate tethys
40
+ ```
41
+
42
+ 2. Clone the Repo
43
+
44
+ ```
45
+ git clone https://github.com/tethysplatform/tethysapp-tethys_dash
46
+ ```
47
+
48
+ 3. Install the app in Tethys Platform
49
+
50
+ ```
51
+ cd tethysapp-tethys_dash/
52
+ tethys install -d
53
+ ```
54
+
55
+ 4. Create Persistence Store (if not done already) (update connection string as needed)
56
+
57
+ ```
58
+ ## Command Line Interface (CLI)
59
+
60
+ After installing tethysdash, you can use the CLI tool:
61
+
62
+ ```
63
+
64
+ tethysdash
65
+
66
+ ```
67
+
68
+ This will run the CLI entry point defined in the package. You can add arguments as needed:
69
+
70
+ ```
71
+
72
+ tethysdash <arguments>
73
+
74
+ ```
75
+
76
+ For example:
77
+
78
+ ```
79
+
80
+ tethysdash --help
81
+
82
+ ```
83
+
84
+ ### Setup Command
85
+
86
+ To run Tethys portal and database setup commands, use:
87
+
88
+ ```
89
+
90
+ tethysdash setup
91
+
92
+ ```
93
+
94
+ This will execute:
95
+
96
+ - `tethys gen portal_config`
97
+ - `tethys db configure`
98
+
99
+ You must have the `tethys` CLI available in your environment.
100
+ tethys services create persistent -n primary_db -c postgres:mysecretpassword@localhost:5432
101
+ ```
102
+
103
+ 5. Connect Persistence Store to TethysDash
104
+
105
+ ```
106
+ tethys link persistent:primary_db tethysdash:ps_database:primary_db
107
+ ```
108
+
109
+ 6. Setup Environment Variables (not necessary unless connection values are different)
110
+
111
+ ```
112
+ export POSTGRES_PASSWORD=mysecretpassword
113
+ export TETHYS_DB_HOST=localhost
114
+ export TETHYSDASH_DB_NAME=tethysdash_primary_db
115
+ export TETHYS_DB_PORT=5432
116
+ ```
117
+
118
+ 7. Setup TethysDash DB Tables
119
+
120
+ ```
121
+ tethys syncstores tethysdash
122
+ ```
123
+
124
+ 8. Install Plugin Examples (not necessary but recommended)
125
+
126
+ ```
127
+ cd ..
128
+ git clone https://github.com/FIRO-Tethys/tethysdash_examples
129
+ cd tethysdash_examples
130
+ pip install -e .
131
+ ```
132
+
133
+ ## Frontend Development
134
+
135
+ The webpack dev server is configured to proxy the Tethys development server (see `webpack.config.js`). The app endpoint will be handled by the webpack development server and all other endpoints will be handled by the Tethys (Django) development server. As such, you will need to start both in separate terminals.
136
+
137
+ 1. Install the node and dependencies
138
+
139
+ ```
140
+ cd tethysapp-tethysdash
141
+ npm install --dev
142
+ ```
143
+
144
+ 2. Start Tethys development server
145
+
146
+ ```
147
+ tethys manage start
148
+ ```
149
+
150
+ 3. Start webpack development server (in separate terminal)
151
+
152
+ ```
153
+ npm start
154
+ ```
155
+
156
+ ## Frontend Build
157
+
158
+ Webpack is configured to bundle and build the React app into the `tethysapp/<app_package>/public/frontend` directory. Before building a Python distribution for release, you should build using this command:
159
+
160
+ ```
161
+ npm run build
162
+ ```
163
+
164
+ ## Frontend Test
165
+
166
+ Use the following commands to lint and test the React portion of the app.
167
+
168
+ ```
169
+ npm run lint
170
+ npm run test
171
+ ```
172
+
173
+ The linting capability is powered by [eslint](https://eslint.org/) and a number of plugins for React. The testing capabilities include [jest](https://jestjs.io/), [jsdom](https://github.com/jsdom/jsdom#readme), [testing-framework](https://testing-library.com/), [user-event](https://testing-library.com/docs/user-event/intro/), and a few other JavaScript testing utilties to make it easy to test the frontend of the React-Tethys app.
@@ -0,0 +1,20 @@
1
+ # This file should be committed to your app code.
2
+ version: 1.1
3
+ # This should be greater or equal to your tethys-platform in your environment
4
+ tethys_version: ">=4.0.0"
5
+ # This should match the app - package name in your setup.py
6
+ name: tethysdash
7
+
8
+ requirements:
9
+ # Putting in a skip true param will skip the entire section. Ignoring the option will assume it be set to False
10
+ skip: false
11
+ conda:
12
+ channels:
13
+ - conda-forge
14
+ packages:
15
+ - nodejs
16
+ - pandas
17
+
18
+ pip:
19
+
20
+ post:
@@ -0,0 +1,9 @@
1
+ {
2
+ "compilerOptions": {
3
+ "baseUrl": "reactapp",
4
+ "module": "CommonJS",
5
+ "target": "ES6"
6
+ },
7
+ "include": ["reactapp"],
8
+ "exclude": ["node_modules", "tethysapp"]
9
+ }