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.
- tethysdash-0.18.0/.coveragerc +10 -0
- tethysdash-0.18.0/.flake8 +3 -0
- tethysdash-0.18.0/.gitignore +27 -0
- tethysdash-0.18.0/.vscode/settings.json +5 -0
- tethysdash-0.18.0/LICENSE +21 -0
- tethysdash-0.18.0/PKG-INFO +214 -0
- tethysdash-0.18.0/README.md +173 -0
- tethysdash-0.18.0/docs/plugin_example.png +0 -0
- tethysdash-0.18.0/install.yml +20 -0
- tethysdash-0.18.0/jsconfig.json +9 -0
- tethysdash-0.18.0/package-lock.json +22900 -0
- tethysdash-0.18.0/package.json +251 -0
- tethysdash-0.18.0/pyproject.toml +85 -0
- tethysdash-0.18.0/pytest.ini +4 -0
- tethysdash-0.18.0/reactapp/App.js +24 -0
- tethysdash-0.18.0/reactapp/App.scss +60 -0
- tethysdash-0.18.0/reactapp/__tests__/App.test.js +19 -0
- tethysdash-0.18.0/reactapp/__tests__/components/appTour/AppTour.test.js +1290 -0
- tethysdash-0.18.0/reactapp/__tests__/components/buttons/DashboardItemDropdown.test.js +85 -0
- tethysdash-0.18.0/reactapp/__tests__/components/buttons/TooltipButton.test.js +39 -0
- tethysdash-0.18.0/reactapp/__tests__/components/contexts/AppTourContext.test.js +64 -0
- tethysdash-0.18.0/reactapp/__tests__/components/contexts/LayoutAlertContext.test.js +83 -0
- tethysdash-0.18.0/reactapp/__tests__/components/contexts/ModalPriorityContext.test.js +102 -0
- tethysdash-0.18.0/reactapp/__tests__/components/contexts/WebSocketContext.test.js +343 -0
- tethysdash-0.18.0/reactapp/__tests__/components/dashboard/CustomAlert.test.js +49 -0
- tethysdash-0.18.0/reactapp/__tests__/components/dashboard/DashboardItem.test.js +2342 -0
- tethysdash-0.18.0/reactapp/__tests__/components/dashboard/DashboardItemDropdown.test.js +173 -0
- tethysdash-0.18.0/reactapp/__tests__/components/dashboard/DashboardLayout.test.js +324 -0
- tethysdash-0.18.0/reactapp/__tests__/components/dashboard/DashboardLayoutAlerts.test.js +69 -0
- tethysdash-0.18.0/reactapp/__tests__/components/dashboard/DashboardTabs.test.js +924 -0
- tethysdash-0.18.0/reactapp/__tests__/components/dashboard/DeleteConfirmation.test.js +45 -0
- tethysdash-0.18.0/reactapp/__tests__/components/error/DebugError.test.js +14 -0
- tethysdash-0.18.0/reactapp/__tests__/components/error/Error.test.js +9 -0
- tethysdash-0.18.0/reactapp/__tests__/components/error/ErrorBoundary.test.js +40 -0
- tethysdash-0.18.0/reactapp/__tests__/components/error/GenericError.test.js +10 -0
- tethysdash-0.18.0/reactapp/__tests__/components/error/NotFound.test.js +10 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/CSVUploader.test.js +128 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/ColorPicker.test.js +37 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/ColorPickerPopover.test.js +104 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/Confirmation.test.js +200 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/CustomPicker.test.js +28 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/DataInput.test.js +458 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/DataRadioSelect.test.js +104 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/DataSelect.test.js +80 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/DatePicker.test.js +296 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/DateRange.test.js +126 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/DraggableList.test.js +154 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/FileUpload.test.js +69 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/InputTable.test.js +205 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/MultiIinput.test.js +36 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/RuleEditor.test.js +968 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/RuleStyleEditor.test.js +113 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/Slider.test.js +2255 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/TextEditor.test.js +544 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/custom/AddMapLayer.test.js +331 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/custom/CSVUploaderMetadata.test.js +84 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/custom/DateRangeMetadata.test.js +78 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/custom/MapDrawing.test.js +144 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/custom/MapExtent.test.js +264 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/custom/SliderMetadata.test.js +311 -0
- tethysdash-0.18.0/reactapp/__tests__/components/inputs/dateUtils.test.js +279 -0
- tethysdash-0.18.0/reactapp/__tests__/components/landingPage/ContextMenu.test.js +394 -0
- tethysdash-0.18.0/reactapp/__tests__/components/landingPage/DashboardCard.test.js +1656 -0
- tethysdash-0.18.0/reactapp/__tests__/components/layout/Header.test.js +1676 -0
- tethysdash-0.18.0/reactapp/__tests__/components/layout/Layout.test.js +72 -0
- tethysdash-0.18.0/reactapp/__tests__/components/loader/AppLoader.test.js +434 -0
- tethysdash-0.18.0/reactapp/__tests__/components/loader/DashboardLoader.test.js +1014 -0
- tethysdash-0.18.0/reactapp/__tests__/components/loader/IdleTimeManager.test.js +397 -0
- tethysdash-0.18.0/reactapp/__tests__/components/loader/LoadingAnimation.test.js +64 -0
- tethysdash-0.18.0/reactapp/__tests__/components/map/DrawInteractions.test.js +512 -0
- tethysdash-0.18.0/reactapp/__tests__/components/map/LayersControl.test.js +75 -0
- tethysdash-0.18.0/reactapp/__tests__/components/map/Legend.test.js +46 -0
- tethysdash-0.18.0/reactapp/__tests__/components/map/LegendRenderer.test.js +1266 -0
- tethysdash-0.18.0/reactapp/__tests__/components/map/Map.test.js +614 -0
- tethysdash-0.18.0/reactapp/__tests__/components/map/ModuleLoader.test.js +552 -0
- tethysdash-0.18.0/reactapp/__tests__/components/map/moduleMap.test.js +95 -0
- tethysdash-0.18.0/reactapp/__tests__/components/map/utilities.test.js +2152 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/AppInfo.test.js +304 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/DashboardEditor.test.js +525 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/DashboardImport.test.js +636 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/DashboardThumbnail.test.js +123 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/DataViewer/BackgroundSettings.test.js +64 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/DataViewer/BorderSettings.test.js +263 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/DataViewer/CustomMessaging.test.js +144 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/DataViewer/DataViewer.test.js +1221 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/DataViewer/PlotlySettings.test.js +354 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/DataViewer/SettingsPane.test.js +766 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/DataViewer/VisualizationCard.test.js +188 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/DataViewer/VisualizationGroup.test.js +60 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/DataViewer/VisualizationPane.test.js +1953 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/DataViewer/VisualizationSelector.test.js +94 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/MapLayer/AttributesPane.test.js +693 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/MapLayer/LayerPane.test.js +60 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/MapLayer/LegendPane.test.js +395 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/MapLayer/MapLayer.test.js +1314 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/MapLayer/SourcePane.test.js +451 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/MapLayer/StylePane.test.js +443 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/NewDashboard.test.js +224 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/PermissionGroups.test.js +621 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/Permissions.test.js +658 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/VisualizationPermissions.test.js +926 -0
- tethysdash-0.18.0/reactapp/__tests__/components/modals/utilities.test.js +154 -0
- tethysdash-0.18.0/reactapp/__tests__/components/views/Dashboard.test.js +629 -0
- tethysdash-0.18.0/reactapp/__tests__/components/views/LandingPage.test.js +160 -0
- tethysdash-0.18.0/reactapp/__tests__/components/visualizations/Base.test.js +1642 -0
- tethysdash-0.18.0/reactapp/__tests__/components/visualizations/BasePlot.test.js +908 -0
- tethysdash-0.18.0/reactapp/__tests__/components/visualizations/Card.test.js +84 -0
- tethysdash-0.18.0/reactapp/__tests__/components/visualizations/DataTable.test.js +114 -0
- tethysdash-0.18.0/reactapp/__tests__/components/visualizations/Image.test.js +55 -0
- tethysdash-0.18.0/reactapp/__tests__/components/visualizations/LiveChat.test.js +562 -0
- tethysdash-0.18.0/reactapp/__tests__/components/visualizations/Map.test.js +2057 -0
- tethysdash-0.18.0/reactapp/__tests__/components/visualizations/ModuleLoader.test.js +498 -0
- tethysdash-0.18.0/reactapp/__tests__/components/visualizations/VariableInput.test.js +1202 -0
- tethysdash-0.18.0/reactapp/__tests__/components/visualizations/utilities.test.js +941 -0
- tethysdash-0.18.0/reactapp/__tests__/env.test.js +25 -0
- tethysdash-0.18.0/reactapp/__tests__/hooks/useDynamicScript.test.js +99 -0
- tethysdash-0.18.0/reactapp/__tests__/index.test.js +222 -0
- tethysdash-0.18.0/reactapp/__tests__/loadEnv.js +1 -0
- tethysdash-0.18.0/reactapp/__tests__/services/api/app-utils.test.js +264 -0
- tethysdash-0.18.0/reactapp/__tests__/services/api/app.test.js +293 -0
- tethysdash-0.18.0/reactapp/__tests__/services/utilities.test.js +271 -0
- tethysdash-0.18.0/reactapp/__tests__/setupTests.js +85 -0
- tethysdash-0.18.0/reactapp/__tests__/test.env +12 -0
- tethysdash-0.18.0/reactapp/__tests__/transforms/babelTransform.js +29 -0
- tethysdash-0.18.0/reactapp/__tests__/transforms/cssTransform.js +14 -0
- tethysdash-0.18.0/reactapp/__tests__/transforms/fileTransform.js +40 -0
- tethysdash-0.18.0/reactapp/__tests__/utilities/constants.js +1480 -0
- tethysdash-0.18.0/reactapp/__tests__/utilities/customRender.js +237 -0
- tethysdash-0.18.0/reactapp/__tests__/utilities/fileMock.js +1 -0
- tethysdash-0.18.0/reactapp/__tests__/utilities/handlers.js +163 -0
- tethysdash-0.18.0/reactapp/__tests__/utilities/mockWebSocket.js +29 -0
- tethysdash-0.18.0/reactapp/__tests__/utilities/server.js +6 -0
- tethysdash-0.18.0/reactapp/assets/ERDCLogo.png +0 -0
- tethysdash-0.18.0/reactapp/assets/USACE_logo.png +0 -0
- tethysdash-0.18.0/reactapp/assets/cw3e_logo.png +0 -0
- tethysdash-0.18.0/reactapp/assets/error.png +0 -0
- tethysdash-0.18.0/reactapp/assets/error404.png +0 -0
- tethysdash-0.18.0/reactapp/assets/reactLogo.svg +1 -0
- tethysdash-0.18.0/reactapp/components/appTour/AppTour.css +6 -0
- tethysdash-0.18.0/reactapp/components/appTour/AppTour.js +785 -0
- tethysdash-0.18.0/reactapp/components/buttons/HeaderButton.css +17 -0
- tethysdash-0.18.0/reactapp/components/buttons/TooltipButton.js +60 -0
- tethysdash-0.18.0/reactapp/components/contexts/AppTourContext.js +36 -0
- tethysdash-0.18.0/reactapp/components/contexts/Contexts.js +14 -0
- tethysdash-0.18.0/reactapp/components/contexts/LayoutAlertContext.js +92 -0
- tethysdash-0.18.0/reactapp/components/contexts/MapContext.js +32 -0
- tethysdash-0.18.0/reactapp/components/contexts/ModalPriorityContext.js +42 -0
- tethysdash-0.18.0/reactapp/components/contexts/WebSocketContext.js +139 -0
- tethysdash-0.18.0/reactapp/components/dashboard/CustomAlert.js +44 -0
- tethysdash-0.18.0/reactapp/components/dashboard/DashboardItem.js +474 -0
- tethysdash-0.18.0/reactapp/components/dashboard/DashboardItemDropdown.js +184 -0
- tethysdash-0.18.0/reactapp/components/dashboard/DashboardLayout.js +159 -0
- tethysdash-0.18.0/reactapp/components/dashboard/DashboardLayoutAlerts.js +42 -0
- tethysdash-0.18.0/reactapp/components/dashboard/DashboardTabs.js +270 -0
- tethysdash-0.18.0/reactapp/components/dashboard/itemDropdown.css +3 -0
- tethysdash-0.18.0/reactapp/components/error/DebugError.js +107 -0
- tethysdash-0.18.0/reactapp/components/error/Error.js +84 -0
- tethysdash-0.18.0/reactapp/components/error/ErrorBoundary.js +48 -0
- tethysdash-0.18.0/reactapp/components/error/GenericError.js +13 -0
- tethysdash-0.18.0/reactapp/components/error/NotFound.js +13 -0
- tethysdash-0.18.0/reactapp/components/inputs/CSVUploader.js +122 -0
- tethysdash-0.18.0/reactapp/components/inputs/CheckboxInput.js +52 -0
- tethysdash-0.18.0/reactapp/components/inputs/ColorPicker.js +36 -0
- tethysdash-0.18.0/reactapp/components/inputs/ColorPickerPopOver.js +81 -0
- tethysdash-0.18.0/reactapp/components/inputs/Confirmation.js +62 -0
- tethysdash-0.18.0/reactapp/components/inputs/Custom.js +6 -0
- tethysdash-0.18.0/reactapp/components/inputs/CustomPicker.js +47 -0
- tethysdash-0.18.0/reactapp/components/inputs/DataInput.js +233 -0
- tethysdash-0.18.0/reactapp/components/inputs/DataRadioSelect.js +60 -0
- tethysdash-0.18.0/reactapp/components/inputs/DataSelect.js +83 -0
- tethysdash-0.18.0/reactapp/components/inputs/DateFormat.js +33 -0
- tethysdash-0.18.0/reactapp/components/inputs/DatePicker.css +4 -0
- tethysdash-0.18.0/reactapp/components/inputs/DatePicker.js +162 -0
- tethysdash-0.18.0/reactapp/components/inputs/DateRange.js +104 -0
- tethysdash-0.18.0/reactapp/components/inputs/DeleteConfirmation.js +16 -0
- tethysdash-0.18.0/reactapp/components/inputs/DraggableList.js +83 -0
- tethysdash-0.18.0/reactapp/components/inputs/FileUpload.js +73 -0
- tethysdash-0.18.0/reactapp/components/inputs/InputTable.js +235 -0
- tethysdash-0.18.0/reactapp/components/inputs/MultiInput.js +107 -0
- tethysdash-0.18.0/reactapp/components/inputs/NormalInput.js +54 -0
- tethysdash-0.18.0/reactapp/components/inputs/RuleEditor.js +668 -0
- tethysdash-0.18.0/reactapp/components/inputs/RuleStyleEditor.js +111 -0
- tethysdash-0.18.0/reactapp/components/inputs/Slider.js +788 -0
- tethysdash-0.18.0/reactapp/components/inputs/TextArea.js +31 -0
- tethysdash-0.18.0/reactapp/components/inputs/TextEditor.css +5 -0
- tethysdash-0.18.0/reactapp/components/inputs/TextEditor.js +554 -0
- tethysdash-0.18.0/reactapp/components/inputs/Toggle.js +52 -0
- tethysdash-0.18.0/reactapp/components/inputs/custom/AddMapLayer.js +309 -0
- tethysdash-0.18.0/reactapp/components/inputs/custom/CSVUploaderMetadata.js +33 -0
- tethysdash-0.18.0/reactapp/components/inputs/custom/DateRangeMetadata.js +47 -0
- tethysdash-0.18.0/reactapp/components/inputs/custom/MapDrawing.js +136 -0
- tethysdash-0.18.0/reactapp/components/inputs/custom/MapExtent.js +248 -0
- tethysdash-0.18.0/reactapp/components/inputs/custom/SliderMetadata.js +427 -0
- tethysdash-0.18.0/reactapp/components/inputs/dateUtils.js +148 -0
- tethysdash-0.18.0/reactapp/components/landingPage/ContextMenu.js +204 -0
- tethysdash-0.18.0/reactapp/components/landingPage/DashboardCard.js +520 -0
- tethysdash-0.18.0/reactapp/components/layout/Header.js +591 -0
- tethysdash-0.18.0/reactapp/components/layout/Layout.js +43 -0
- tethysdash-0.18.0/reactapp/components/loader/AppLoader.js +548 -0
- tethysdash-0.18.0/reactapp/components/loader/DashboardLoader.js +376 -0
- tethysdash-0.18.0/reactapp/components/loader/IdleTimerManager.js +256 -0
- tethysdash-0.18.0/reactapp/components/loader/LoadingAnimation.js +50 -0
- tethysdash-0.18.0/reactapp/components/loader/LoadingAnimation.scss +164 -0
- tethysdash-0.18.0/reactapp/components/map/DrawInteractions.js +229 -0
- tethysdash-0.18.0/reactapp/components/map/LayersControl.js +159 -0
- tethysdash-0.18.0/reactapp/components/map/LegendControl.js +113 -0
- tethysdash-0.18.0/reactapp/components/map/LegendRenderer.js +713 -0
- tethysdash-0.18.0/reactapp/components/map/Map.js +389 -0
- tethysdash-0.18.0/reactapp/components/map/ModuleLoader.js +672 -0
- tethysdash-0.18.0/reactapp/components/map/moduleMap.js +18 -0
- tethysdash-0.18.0/reactapp/components/map/utilities.js +1015 -0
- tethysdash-0.18.0/reactapp/components/modals/AppInfo.js +244 -0
- tethysdash-0.18.0/reactapp/components/modals/DashboardEditor.js +313 -0
- tethysdash-0.18.0/reactapp/components/modals/DashboardImport.js +136 -0
- tethysdash-0.18.0/reactapp/components/modals/DashboardThumbnail.js +88 -0
- tethysdash-0.18.0/reactapp/components/modals/DataViewer/BackgroundSettings.js +166 -0
- tethysdash-0.18.0/reactapp/components/modals/DataViewer/BorderSettings.js +470 -0
- tethysdash-0.18.0/reactapp/components/modals/DataViewer/CustomMessaging.js +109 -0
- tethysdash-0.18.0/reactapp/components/modals/DataViewer/DataViewer.css +11 -0
- tethysdash-0.18.0/reactapp/components/modals/DataViewer/DataViewer.js +455 -0
- tethysdash-0.18.0/reactapp/components/modals/DataViewer/PlotlySettings.js +248 -0
- tethysdash-0.18.0/reactapp/components/modals/DataViewer/SettingsPane.js +273 -0
- tethysdash-0.18.0/reactapp/components/modals/DataViewer/VisualizationCard.js +174 -0
- tethysdash-0.18.0/reactapp/components/modals/DataViewer/VisualizationGroup.js +95 -0
- tethysdash-0.18.0/reactapp/components/modals/DataViewer/VisualizationPane.js +457 -0
- tethysdash-0.18.0/reactapp/components/modals/DataViewer/VisualizationSelector.js +117 -0
- tethysdash-0.18.0/reactapp/components/modals/MapLayer/AttributesPane.js +617 -0
- tethysdash-0.18.0/reactapp/components/modals/MapLayer/LayerPane.js +125 -0
- tethysdash-0.18.0/reactapp/components/modals/MapLayer/LegendPane.js +356 -0
- tethysdash-0.18.0/reactapp/components/modals/MapLayer/MapLayer.js +438 -0
- tethysdash-0.18.0/reactapp/components/modals/MapLayer/SourcePane.js +333 -0
- tethysdash-0.18.0/reactapp/components/modals/MapLayer/StylePane.js +270 -0
- tethysdash-0.18.0/reactapp/components/modals/NewDashboard.js +141 -0
- tethysdash-0.18.0/reactapp/components/modals/PermissionGroups.js +537 -0
- tethysdash-0.18.0/reactapp/components/modals/Permissions.js +393 -0
- tethysdash-0.18.0/reactapp/components/modals/VisualizationPermissions.js +363 -0
- tethysdash-0.18.0/reactapp/components/modals/noArrowInput.css +11 -0
- tethysdash-0.18.0/reactapp/components/modals/utilities.js +150 -0
- tethysdash-0.18.0/reactapp/components/modals/wideModal.css +61 -0
- tethysdash-0.18.0/reactapp/components/visualizations/Base.js +455 -0
- tethysdash-0.18.0/reactapp/components/visualizations/BasePlot.js +460 -0
- tethysdash-0.18.0/reactapp/components/visualizations/Card.js +124 -0
- tethysdash-0.18.0/reactapp/components/visualizations/DataTable.js +81 -0
- tethysdash-0.18.0/reactapp/components/visualizations/Image.js +57 -0
- tethysdash-0.18.0/reactapp/components/visualizations/LiveChat.js +693 -0
- tethysdash-0.18.0/reactapp/components/visualizations/Map.js +621 -0
- tethysdash-0.18.0/reactapp/components/visualizations/ModuleLoader.js +106 -0
- tethysdash-0.18.0/reactapp/components/visualizations/Text.js +30 -0
- tethysdash-0.18.0/reactapp/components/visualizations/VariableInput.js +365 -0
- tethysdash-0.18.0/reactapp/components/visualizations/utilities.js +483 -0
- tethysdash-0.18.0/reactapp/config/development.env +13 -0
- tethysdash-0.18.0/reactapp/config/webpack.config.js +115 -0
- tethysdash-0.18.0/reactapp/custom-bootstrap.scss +5 -0
- tethysdash-0.18.0/reactapp/hooks/useDynamicScript.js +45 -0
- tethysdash-0.18.0/reactapp/index.js +25 -0
- tethysdash-0.18.0/reactapp/services/api/app.js +117 -0
- tethysdash-0.18.0/reactapp/services/api/client.js +26 -0
- tethysdash-0.18.0/reactapp/services/api/tethys.js +28 -0
- tethysdash-0.18.0/reactapp/services/utilities.js +37 -0
- tethysdash-0.18.0/reactapp/views/Dashboard.js +44 -0
- tethysdash-0.18.0/reactapp/views/LandingPage.js +63 -0
- tethysdash-0.18.0/setup.cfg +4 -0
- tethysdash-0.18.0/tethysapp/tethysdash/__init__.py +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/alembic/README +15 -0
- tethysdash-0.18.0/tethysapp/tethysdash/alembic/env.py +106 -0
- tethysdash-0.18.0/tethysapp/tethysdash/alembic/script.py.mako +26 -0
- tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/0597a408202d_adding_variable_to_map_extent.py +73 -0
- tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/064c8e70a8a6_add_permissions.py +117 -0
- tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/115022bfef13_add_unrestricted_placement.py +51 -0
- tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/20f22416d985_add_dashboard_tabs.py +85 -0
- tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/488ef941ec3a_remove_griditem_i_contraint.py +47 -0
- tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/49b308226cca_update_permissions.py +98 -0
- tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/5ffcfd93e61f_add_dashboard_item_uuid.py +42 -0
- tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/663c69fd7709_update_table_for_landing_page.py +61 -0
- tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/78188f76ffa0_add_formats_to_date_variables.py +82 -0
- tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/9d81090ceb84_convert_tables_for_sqlite_usage.py +89 -0
- tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/b4f03a66239a_refresh_rate_to_metadata_string.py +77 -0
- tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/ba25f182726d_convert_label_to_description.py +72 -0
- tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/c1142bdd517d_update_layer_source_names.py +105 -0
- tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/c12ae6fbc947_chat_history.py +54 -0
- tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/ed97dcad9e2b_initial_db_creation.py +63 -0
- tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/ef2472c4f3c7_update_map_visualization_keys.py +98 -0
- tethysdash-0.18.0/tethysapp/tethysdash/alembic/versions/f6488db5f489_map_view_config_to_map_extent.py +81 -0
- tethysdash-0.18.0/tethysapp/tethysdash/alembic.ini +117 -0
- tethysdash-0.18.0/tethysapp/tethysdash/app.py +66 -0
- tethysdash-0.18.0/tethysapp/tethysdash/cli.py +80 -0
- tethysdash-0.18.0/tethysapp/tethysdash/collect_plugin_static.py +116 -0
- tethysdash-0.18.0/tethysapp/tethysdash/controllers.py +1001 -0
- tethysdash-0.18.0/tethysapp/tethysdash/default_card.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/default_chart.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/default_custom.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/default_dashboard.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/default_image.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/default_map.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/default_map_layer.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/default_table.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/default_text.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/default_variable_input.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/exceptions.py +6 -0
- tethysdash-0.18.0/tethysapp/tethysdash/model.py +2112 -0
- tethysdash-0.18.0/tethysapp/tethysdash/plugin_helpers.py +1040 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/css/main.css +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/ARO_Flux.geojson +24 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/ARO_Flux.json +9 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Disdrometers.geojson +64 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Disdrometers.json +9 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Microrain_Radar.geojson +46 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Microrain_Radar.json +9 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Obs_Stations.geojson +245 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Precipitation.geojson +1054 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Precipitation.json +9 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Pressure.geojson +222 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Pressure.json +9 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/SFC_Met_Soil.geojson +150 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/SFC_Met_Soil.json +9 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/SWE.geojson +222 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/SWE.json +9 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Snow_Level_Radar.geojson +65 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Snow_Level_Radar.json +9 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Streamflow.geojson +255 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Surface_Met_Obs_Stations.geojson +1569 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Temperature.geojson +854 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Temperature.json +9 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Wind.geojson +458 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/Wind.json +9 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/combined_met_data.geojson +506 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/combined_met_data_style.json +20 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/kenya_stations.geojson +600 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/kenya_sub_basins.geojson +223 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/photo_explorer_stations.geojson +10294 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/radar_points.geojson +155 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/data/plugins/radar_points_styles.json +17 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/.gitkeep +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/07ed3005922083befe70ff5480ead925.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/283.js +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/36.js +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/3f2e2579fd4472c47a163e4fed0bfecc.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/44.js +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/694.js +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/700.js +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/735.js +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/7e95381f937c28aef6a63c0f8f1fbd8f.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/807.js +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/906fa25700537a2e14554aa951de0fea.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/945.js +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/a63ad733bdcc96521b3b41f9a1e5e4e9.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/main.js +2 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/frontend/main.js.LICENSE.txt +94 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/ERDCLogo.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/NOAA_chart_bg.jpg +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/USACE_logo.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/cw3e_logo.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/default_dashboard.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/icon.gif +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/Custom Image.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/Map.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/Text.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/Variable Input.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cimss_integrated_microwave_animations.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cnrfc_10day_daily_maximum_streamflow_probability.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cnrfc_10day_hourly_maximum_streamflow_probability.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cnrfc_10day_streamflow_volume_accumulation.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cnrfc_5day_streamflow_volume_exceedance.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cnrfc_daily_briefing.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cnrfc_hefs.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cnrfc_impact_statements.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cnrfc_monthly_streamflow_volume_exceedance.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/csv.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/custom_example.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_250_hpa_winds.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_500_hpa_vorticity.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_850_hpa_temperature.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_ar_landfall.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_ar_scale_ensemble_diagnostics.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_ar_scale_plume_diagrams.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_coastal_maximum_ar_scale_and_precip_maps.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_datashare_observation_data.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_disdrometer.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_disdrometer_chart.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_disdrometer_map.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_integrated_microwave_animations.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_ivt_and_iwv_analyses_and_forecasts.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_ivt_and_relative_humidity_plots.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_ivt_cross_sections.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_ivt_ensemble_probability.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_ivt_thumbnail_ensembles.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_mrr.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_mrr_chart.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_mrr_map.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_qpe.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_qpf.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_radiometric_wind_profilers.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_radiometric_wind_profilers_chart.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_radiometric_wind_profilers_map.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_rainfall_48hr_plot.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_ssmis_products.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_streamflow_images.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_streamflow_obs.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_surface_met_plot.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_surface_meterology.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_water_storage_tracking.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_water_vapor_flux.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/cw3e_west_coast_ivt_magnitude_plumes.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/drought_drought_map_viewer.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/drought_drought_monitoring_pie_chart.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/drought_drought_monitoring_series.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/drought_drought_monitoring_table.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/drought_map.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/drought_map_layer.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/fim_synthetic_rating_curves.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/fim_synthetic_rating_curves_parameters.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/geoglows_map.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/geoglows_plots.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/jsonfiles.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/machine_learning.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/ndzarr.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/noaa_disdrometer.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/noaa_landfalling_ar_scale_frequencies_plots.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/noaa_snow_level.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/noaa_ssmis_products.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/noaa_water_vapor_flux.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/numpy.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/nwmp_data_service.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/nwmp_gauges_series.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/nwmp_layer.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/nwmp_map.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/nwmp_reaches_series.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/nyc_car_theft_chart.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/nyc_car_theft_map.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/template_card_example.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/template_image_example.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/template_map_example.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/template_map_layer_example.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/template_plot_example.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/template_table_example.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/template_text_example.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/template_variable_input_example.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/textfiles.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/tiled_cat.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/usace_california_plots.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/usace_california_plots_table.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/usace_time_series.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/usace_time_series_table.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/usgs_photo_explorer_data_time_series.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/usgs_photo_explorer_image_time_series.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/plugins/wildfire_visualizer_map.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/tethys_dash.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/public/images/visualization_settings.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/sessions.py +111 -0
- tethysdash-0.18.0/tethysapp/tethysdash/templates/tethysdash/index.html +16 -0
- tethysdash-0.18.0/tethysapp/tethysdash/tests/__init__.py +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/tests/conftest.py +585 -0
- tethysdash-0.18.0/tethysapp/tethysdash/tests/files/thumbnail.png +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/tests/files/valid_geojson.geojson +18 -0
- tethysdash-0.18.0/tethysapp/tethysdash/tests/integrated_tests/__init__.py +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/tests/integrated_tests/test_controllers.py +2401 -0
- tethysdash-0.18.0/tethysapp/tethysdash/tests/integrated_tests/test_model.py +2228 -0
- tethysdash-0.18.0/tethysapp/tethysdash/tests/integrated_tests/test_sessions.py +455 -0
- tethysdash-0.18.0/tethysapp/tethysdash/tests/integrated_tests/test_utilities.py +69 -0
- tethysdash-0.18.0/tethysapp/tethysdash/tests/integrated_tests/test_visualizations.py +232 -0
- tethysdash-0.18.0/tethysapp/tethysdash/tests/unit_tests/__init__.py +0 -0
- tethysdash-0.18.0/tethysapp/tethysdash/tests/unit_tests/test_collect_plugin_static.py +274 -0
- tethysdash-0.18.0/tethysapp/tethysdash/tests/unit_tests/test_plugin_helpers.py +850 -0
- tethysdash-0.18.0/tethysapp/tethysdash/utilities.py +85 -0
- tethysdash-0.18.0/tethysapp/tethysdash/visualizations.py +220 -0
- tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/635d22f6-136a-40b2-a608-29349cfd1f8d/be63c429-287d-4e2a-a0a8-50cf3cc76734.json +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/6434ca8d-7a70-4037-b6d4-88617567fffb/39c7f652-7508-491a-954d-bd7711076cf6.json +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/6434ca8d-7a70-4037-b6d4-88617567fffb/e07d159f-1987-45b7-a83c-0678a6838251.json +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/6ce2f644-04e9-4923-8b28-46fbd160457d/85728f99-ea80-4aa1-8b74-45e6863304fc.json +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/6ce2f644-04e9-4923-8b28-46fbd160457d/a7e2b942-d7a1-423d-993f-a039a4ee99f7.json +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/9f2a8e5d-d03c-43ed-b16e-3eced9e0eaef/4ea7d32e-37ff-4ebc-94d0-e87ab7a223c2.json +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/9f2a8e5d-d03c-43ed-b16e-3eced9e0eaef/a7c3492e-f727-46ef-b61e-65bf2977d2e4.json +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/b5fbf330-7ffc-4d43-ab91-c28fe1cdd37e/b29dcd16-97ad-424a-a19f-f10339fc2208.json +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/b5fbf330-7ffc-4d43-ab91-c28fe1cdd37e/e037568d-5b04-41d0-b387-1fca8fc4ec9c.json +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/c2b8d09c-2004-4dff-a2e8-cde5d8049f2c/cb05ce74-dd41-4ed1-ac0a-f574457c7022.json +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/c2b8d09c-2004-4dff-a2e8-cde5d8049f2c/d8517fee-64ac-490c-b180-45daa844d80e.json +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/d0d52f15-0238-4c5e-ac86-49f6856216fe/4dc5c63f-6c0c-48ee-8eaf-1c1d24425c15.json +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/d0d52f15-0238-4c5e-ac86-49f6856216fe/cab428d7-42d0-49ba-a274-12cb8886e0da.json +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/dc11818b-23ea-45ca-b9d0-2674a2ec8a56/bc0c7044-b0bb-4265-96de-3d3aa5ed8cb7.json +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/dde062c0-9716-4d6f-991a-b1b6bbdd7940/9d17973f-abf4-416f-a32f-875506b40aa0.json +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/dde062c0-9716-4d6f-991a-b1b6bbdd7940/ea2c69ba-959a-4593-9d37-99e2c40edf2a.json +1 -0
- tethysdash-0.18.0/tethysapp/tethysdash/workspaces/app_workspace/f1e9fae1-32b4-47c8-b48b-bcb73b362c99/d552bc72-7ed0-4ca8-9af3-bd688efb04fa.json +1 -0
- tethysdash-0.18.0/tethysdash.egg-info/PKG-INFO +214 -0
- tethysdash-0.18.0/tethysdash.egg-info/SOURCES.txt +486 -0
- tethysdash-0.18.0/tethysdash.egg-info/dependency_links.txt +1 -0
- tethysdash-0.18.0/tethysdash.egg-info/entry_points.txt +2 -0
- tethysdash-0.18.0/tethysdash.egg-info/requires.txt +20 -0
- tethysdash-0.18.0/tethysdash.egg-info/top_level.txt +1 -0
|
@@ -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,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.
|
|
Binary file
|
|
@@ -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:
|