├── .babelrc ├── .editorconfig ├── .eslintrc.js ├── .gitattributes ├── .github ├── PULL_REQUEST_TEMPLATE.md └── workflows │ ├── ci.yml │ ├── deploy.yml │ ├── find-region-mapping-alias-duplicates.yml │ └── npm-publish.yml ├── .gitignore ├── .gitmodules ├── .husky └── pre-commit ├── .npmignore ├── .nvmrc ├── .prettierignore ├── .prettierrc ├── .vscode ├── extensions.json ├── launch.json ├── settings.json └── tasks.json ├── CHANGES.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── CONTRIBUTORS.md ├── LICENSE.md ├── README.md ├── RELEASE_GUIDE.md ├── architecture ├── 0000-record-architecture-decisions.md ├── 0001-babel-and-ts-loader.md ├── 0002-require-instead-of-import.md ├── 0003-drop-ie11-support.md ├── 0004-next-catalog-functions.md ├── 0005-root-group-ids-and-shareKeys.md ├── 0006-dynamic-groups-and-shareKeys.md ├── 0007-use-weblate-for-i18n.md ├── 0008-remove-conversion-service.md ├── 0009-story-and-catalog-routes.md ├── 0010-never-support-ie11.md ├── 0011-configurable-search-providers.md ├── 0012-do-not-use-require-for-cesium-in-ts.md └── imgs │ └── weblate_process.png ├── buildprocess ├── .eslintrc.js ├── ci-cleanup.js ├── ci-deploy.sh ├── ci-google-cloud-key.json.enc ├── ci-values.yml ├── configureWebpack.js ├── createKarmaBaseConfig.js ├── diffCatalogIndex.js ├── find-region-mapping-alias-duplicates.js ├── generate-cesium-declarations.js ├── generateCatalogIndex.ts ├── generateDocs.ts ├── jsdoc.json ├── karma-firefox.conf.js ├── karma-local.conf.js ├── patchNetworkRequests.ts ├── removeCesiumDebugPragmas.js ├── runExternalModule.js ├── runWebpack.js ├── terriajsServerGulpTask.js ├── watchWebpack.js ├── webpack-tools.config.js ├── webpack.config.dev.js └── webpack.config.make.js ├── doc ├── CNAME ├── README.md ├── acknowledgements │ └── attributions.md ├── connecting-to-data │ ├── README.md │ ├── catalog-functions.md │ ├── catalog-groups.md │ ├── catalog-items.md │ ├── catalog-references.md │ ├── catalog-type-details │ │ └── .placeholder │ ├── cross-origin-resource-sharing.md │ ├── customizing-data-appearance │ │ ├── feature-info-template.md │ │ ├── imagery-data.md │ │ ├── img │ │ │ ├── default-data-view.png │ │ │ ├── edit-style.png │ │ │ ├── feature_info_with_time_series.png │ │ │ ├── model-dim.jpeg │ │ │ ├── no_template.png │ │ │ ├── styling-side-panel.png │ │ │ └── template.png │ │ ├── model-dimensions.md │ │ ├── overview.md │ │ └── tabular-vector-data.md │ ├── item-search.md │ ├── item-search │ │ ├── indexed-item-search-provider-design-notes.md │ │ └── indexed-item-search.md │ └── open-item-search.png ├── contributing │ ├── README.md │ ├── architecture.md │ ├── development-environment.md │ ├── feature-picking.md │ ├── frontend-style-guide.md │ ├── img │ │ ├── making_a_trait.png │ │ ├── no-map.png │ │ ├── runtime.png │ │ └── stratum.png │ ├── init-sources.md │ ├── merge-master-into-mobx.md │ ├── migration-guide.md │ ├── model-layer.md │ ├── problems-and-solutions.md │ ├── result-object-and-error-handling.md │ ├── strata-examples.md │ ├── traits-in-depth.md │ ├── translation-guide-dev.md │ └── using-a-custom-version-of-cesium.md ├── customizing │ ├── README.md │ ├── client-side-config.md │ ├── cloning-and-building.md │ ├── initialization-files.md │ ├── search-providers.md │ ├── server-side-config.md │ ├── skinning.md │ └── translation-guide.md ├── deploying │ ├── README.md │ ├── controlling-in-an-iframe-or-popup.md │ ├── controlling-with-url-parameters.md │ ├── deploying-terriamap.md │ ├── deploying-with-kubernetes.md │ ├── deprecated-wms-region-mapping.md │ ├── running-through-reverse-proxy.md │ ├── setting-up-a-region-mapping-server.md │ ├── setting-up-geoserver.md │ └── using-as-a-ckan-previewer.md ├── getting-started.md ├── index-redirect.html ├── js │ └── rewrite-links.js ├── mkdocs.yml └── terria.png ├── gulpfile.js ├── lib ├── Charts │ ├── ChartData.ts │ ├── ChartView.ts │ └── getChartColorForId.ts ├── CopyrightModule.js ├── Core │ ├── AbstractConstructor.ts │ ├── AnalyticEvents │ │ └── analyticEvents.ts │ ├── AsyncLoader.ts │ ├── Class.ts │ ├── ConsoleAnalytics.ts │ ├── Constructor.ts │ ├── CorsProxy.ts │ ├── DataUri.ts │ ├── GeoJson.ts │ ├── GoogleAnalytics.ts │ ├── Json.ts │ ├── LatLonHeight.ts │ ├── Result.ts │ ├── ServerConfig.d.ts │ ├── ServerConfig.js │ ├── StandardCssColors.ts │ ├── TerriaError.ts │ ├── TypeConditionals.ts │ ├── TypeModifiers.ts │ ├── addedByUser.ts │ ├── animation.ts │ ├── containsAny.ts │ ├── createColorForIdTransformer.ts │ ├── createDiscreteTimes.ts │ ├── createTransformerAllowUndefined.ts │ ├── ensureSuffix.ts │ ├── filterOutUndefined.ts │ ├── flatten.ts │ ├── formatPropertyValue.ts │ ├── getDataType.ts │ ├── getDereferencedIfExists.ts │ ├── getPath.ts │ ├── hashEntity.ts │ ├── hashFromString.ts │ ├── injectTerms.ts │ ├── instanceOf.ts │ ├── isDefined.ts │ ├── isReadOnlyArray.ts │ ├── linkifyContent.ts │ ├── loadArrayBuffer.ts │ ├── loadBlob.ts │ ├── loadCsv.ts │ ├── loadJson.ts │ ├── loadJson5.ts │ ├── loadText.ts │ ├── loadWithXhr.d.ts │ ├── loadWithXhr.js │ ├── loadXML.ts │ ├── markdownToHtml.ts │ ├── math.ts │ ├── pollToPromise.ts │ ├── prerequisites.js │ ├── readJson.ts │ ├── readText.ts │ ├── readXml.ts │ ├── regexMatches.ts │ ├── replaceUnderscores.ts │ ├── runLater.ts │ ├── scaleToDenominator.ts │ ├── setsAreEqual.ts │ ├── sortedIndices.js │ ├── supportsWebGL.js │ ├── timeout.ts │ ├── triggerResize.ts │ ├── types.ts │ ├── uriHelpers.ts │ └── waitForDataSourceToLoad.ts ├── Language │ └── languageHelpers.ts ├── Map │ ├── Cesium │ │ ├── CesiumRenderLoopPauser.ts │ │ ├── CesiumSelectionIndicator.ts │ │ └── pickTriangle.ts │ ├── ColorMap │ │ ├── ColorMap.ts │ │ ├── ConstantColorMap.ts │ │ ├── ContinuousColorMap.ts │ │ ├── DiscreteColorMap.ts │ │ └── EnumColorMap.ts │ ├── DragPoints │ │ ├── CesiumDragPoints.js │ │ ├── DragPoints.d.ts │ │ ├── DragPoints.js │ │ └── LeafletDragPoints.js │ ├── Icons │ │ └── Maki │ │ │ ├── LICENSE.txt │ │ │ ├── MakiIcons.ts │ │ │ ├── README.md │ │ │ └── iconset-all_maki_icons.json │ ├── ImageryProvider │ │ ├── ArcGisImageServerImageryProvider.ts │ │ ├── ProtomapsImageryProvider.ts │ │ └── getUrlForImageryTile.ts │ ├── Leaflet │ │ ├── ImageryProviderLeafletGridLayer.ts │ │ ├── ImageryProviderLeafletTileLayer.ts │ │ ├── LeafletDataSourceDisplay.ts │ │ ├── LeafletScene.ts │ │ ├── LeafletSelectionIndicator.ts │ │ └── LeafletVisualizer.ts │ ├── LeafletPatched.ts │ ├── PickedFeatures │ │ ├── PickedFeatures.ts │ │ └── featureDataToGeoJson.ts │ ├── Region │ │ ├── RegionProvider.ts │ │ └── RegionProviderList.ts │ ├── SizeMap │ │ ├── ConstantPointSizeMap.ts │ │ ├── PointSizeMap.ts │ │ └── ScalePointSizeMap.ts │ └── Vector │ │ ├── EarthGravityModel1996.d.ts │ │ ├── EarthGravityModel1996.js │ │ ├── Proj4Definitions.ts │ │ ├── Protomaps │ │ ├── ProtomapsArcGisPbfSource.ts │ │ ├── ProtomapsGeojsonSource.ts │ │ ├── mapboxStyleJsonToProtomaps.ts │ │ └── tableStyleToProtomaps.ts │ │ ├── Reproject.ts │ │ ├── computeRingWindingOrder.ts │ │ ├── geoJsonGeometryFromGeoRssSimpleGeometry.js │ │ ├── geoJsonGeometryFromGmlGeometry.js │ │ ├── geoJsonGeometryFromW3cGeometry.js │ │ ├── geoRssConvertor.js │ │ ├── gmlToGeoJson.js │ │ ├── prettifyCoordinates.ts │ │ ├── prettifyProjection.ts │ │ ├── rectangleToLatLngBounds.ts │ │ └── zoomRectangleFromPoint.js ├── ModelMixins │ ├── AccessControlMixin.ts │ ├── AutoRefreshingMixin.ts │ ├── CatalogFunctionJobMixin.ts │ ├── CatalogFunctionMixin.ts │ ├── CatalogMemberMixin.ts │ ├── Cesium3dTilesMixin.ts │ ├── Cesium3dTilesStyleMixin.ts │ ├── CesiumIonMixin.ts │ ├── ChartableMixin.ts │ ├── ClippingMixin.ts │ ├── DiffableMixin.ts │ ├── DiscretelyTimeVaryingMixin.ts │ ├── ExportWebCoverageServiceMixin.ts │ ├── ExportableMixin.ts │ ├── FeatureInfoUrlTemplateMixin.ts │ ├── GeojsonMixin.ts │ ├── GetCapabilitiesMixin.ts │ ├── GltfMixin.ts │ ├── GroupMixin.ts │ ├── MappableMixin.ts │ ├── MinMaxLevelMixin.ts │ ├── ReferenceMixin.ts │ ├── SearchProviders │ │ ├── CatalogSearchProviderMixin.ts │ │ ├── LocationSearchProviderMixin.ts │ │ ├── SearchProviderMixin.ts │ │ └── WebFeatureServiceSearchProviderMixin.ts │ ├── SearchableItemMixin.ts │ ├── ShadowMixin.ts │ ├── TableMixin.ts │ ├── TileErrorHandlerMixin.ts │ ├── TimeFilterMixin.ts │ ├── TimeVarying.ts │ ├── UrlMixin.ts │ └── XmlRequestMixin.ts ├── Models │ ├── AugmentedVirtuality.ts │ ├── BaseMaps │ │ ├── BaseMapsModel.ts │ │ └── defaultBaseMaps.ts │ ├── BoxDrawing.ts │ ├── BoxDrawing │ │ └── cursors.ts │ ├── CameraView.ts │ ├── Catalog │ │ ├── Catalog.ts │ │ ├── CatalogFunctions │ │ │ ├── YDYRCatalogFunction.ts │ │ │ └── YDYRCatalogFunctionJob.ts │ │ ├── CatalogGroup.ts │ │ ├── CatalogGroups │ │ │ ├── OpenDataSoftCatalogGroup.ts │ │ │ ├── SocrataCatalogGroup.ts │ │ │ └── ThreddsCatalogGroup.ts │ │ ├── CatalogItems │ │ │ ├── ApiTableCatalogItem.ts │ │ │ ├── BingMapsCatalogItem.ts │ │ │ ├── CartoMapV1CatalogItem.ts │ │ │ ├── CartoMapV3CatalogItem.ts │ │ │ ├── Cesium3DTilesCatalogItem.ts │ │ │ ├── CesiumTerrainCatalogItem.ts │ │ │ ├── CogCatalogItem.ts │ │ │ ├── CompositeCatalogItem.ts │ │ │ ├── CsvCatalogItem.ts │ │ │ ├── CzmlCatalogItem.ts │ │ │ ├── GeoJsonCatalogItem.ts │ │ │ ├── GeoRssCatalogItem.ts │ │ │ ├── GpxCatalogItem.ts │ │ │ ├── I3SCatalogItem.ts │ │ │ ├── IonImageryCatalogItem.ts │ │ │ ├── KmlCatalogItem.ts │ │ │ ├── MapboxMapCatalogItem.ts │ │ │ ├── MapboxStyleCatalogItem.ts │ │ │ ├── MapboxVectorTileCatalogItem.ts │ │ │ ├── OpenDataSoftCatalogItem.ts │ │ │ ├── OpenStreetMapCatalogItem.ts │ │ │ ├── SenapsLocationsCatalogItem.ts │ │ │ ├── ShapefileCatalogItem.ts │ │ │ ├── SocrataMapViewCatalogItem.ts │ │ │ ├── StubCatalogItem.ts │ │ │ └── UrlTemplateImageryCatalogItem.ts │ │ ├── CatalogMemberFactory.ts │ │ ├── CatalogProvider.ts │ │ ├── CatalogReferences │ │ │ ├── CatalogIndexReference.ts │ │ │ ├── MagdaReference.ts │ │ │ ├── SplitItemReference.ts │ │ │ ├── TerriaReference.ts │ │ │ ├── ThreddsItemReference.ts │ │ │ ├── UrlReference.ts │ │ │ └── createUrlReferenceFromUrl.ts │ │ ├── Ckan │ │ │ ├── CkanCatalogGroup.ts │ │ │ ├── CkanDefaultFormatsStratum.ts │ │ │ ├── CkanDefinitions.ts │ │ │ └── CkanItemReference.ts │ │ ├── Esri │ │ │ ├── ArcGisCatalogGroup.ts │ │ │ ├── ArcGisFeatureServerCatalogGroup.ts │ │ │ ├── ArcGisFeatureServerCatalogItem.ts │ │ │ ├── ArcGisFeatureServerStratum.ts │ │ │ ├── ArcGisImageServerCatalogItem.ts │ │ │ ├── ArcGisInterfaces.ts │ │ │ ├── ArcGisMapServerCatalogGroup.ts │ │ │ ├── ArcGisMapServerCatalogItem.ts │ │ │ ├── ArcGisPortalCatalogGroup.ts │ │ │ ├── ArcGisPortalDefinitions.ts │ │ │ ├── ArcGisPortalItemReference.ts │ │ │ ├── ArcGisTerrainCatalogItem.ts │ │ │ └── esriStyleToTableStyle.ts │ │ ├── Gltf │ │ │ ├── AssImpCatalogItem.ts │ │ │ ├── GLTF.ts │ │ │ └── GltfCatalogItem.ts │ │ ├── Group.ts │ │ ├── Gtfs │ │ │ ├── GtfsCatalogItem.ts │ │ │ ├── GtfsRealtimeProtoBufReaders.ts │ │ │ ├── VehicleData.ts │ │ │ └── prettyPrintGtfsEntityField.ts │ │ ├── Ows │ │ │ ├── CswCatalogGroup.ts │ │ │ ├── CswGetRecordsTemplate.xml │ │ │ ├── CswGetRecordsWPSTemplate.xml │ │ │ ├── ExecuteWpsTemplate.xml │ │ │ ├── OwsInterfaces.ts │ │ │ ├── SensorObservationServiceCatalogItem.ts │ │ │ ├── SensorObservationServiceRequestTemplate.xml │ │ │ ├── WebFeatureServiceCapabilities.ts │ │ │ ├── WebFeatureServiceCatalogGroup.ts │ │ │ ├── WebFeatureServiceCatalogItem.ts │ │ │ ├── WebMapServiceCapabilities.ts │ │ │ ├── WebMapServiceCapabilitiesStratum.ts │ │ │ ├── WebMapServiceCatalogGroup.ts │ │ │ ├── WebMapServiceCatalogItem.ts │ │ │ ├── WebMapTileServiceCapabilities.ts │ │ │ ├── WebMapTileServiceCatalogGroup.ts │ │ │ ├── WebMapTileServiceCatalogItem.ts │ │ │ ├── WebProcessingServiceCapabilities.ts │ │ │ ├── WebProcessingServiceCatalogFunction.ts │ │ │ ├── WebProcessingServiceCatalogFunctionJob.ts │ │ │ └── WebProcessingServiceCatalogGroup.ts │ │ ├── ResultPendingCatalogItem.ts │ │ ├── SdmxJson │ │ │ ├── SdmxJsonCatalogGroup.ts │ │ │ ├── SdmxJsonCatalogItem.ts │ │ │ ├── SdmxJsonDataflowStratum.ts │ │ │ ├── SdmxJsonServerStratum.ts │ │ │ └── SdmxJsonStructureMessage.ts │ │ ├── addUserCatalogMember.ts │ │ ├── addUserFiles.ts │ │ ├── createCatalogItemFromFileOrUrl.ts │ │ ├── createStubCatalogItem.ts │ │ ├── proxyCatalogItemUrl.ts │ │ ├── registerCatalogMembers.ts │ │ └── removeUserAddedData.ts │ ├── Cesium.ts │ ├── DefaultTimelineModel.ts │ ├── Definition │ │ ├── CommonStrata.ts │ │ ├── CreateModel.ts │ │ ├── FlattenedFromTraits.ts │ │ ├── LoadableStratum.ts │ │ ├── Model.ts │ │ ├── ModelFactory.ts │ │ ├── ModelPropertiesFromTraits.ts │ │ ├── StratumFromTraits.ts │ │ ├── StratumOrder.ts │ │ ├── addModelStrataView.ts │ │ ├── createCombinedModel.ts │ │ ├── createStratumInstance.ts │ │ ├── hasTraits.ts │ │ ├── saveModelToJson.ts │ │ ├── saveStratumToJson.ts │ │ ├── updateModelFromJson.ts │ │ └── upsertModelFromJson.ts │ ├── ErrorServiceProviders │ │ ├── ErrorService.ts │ │ └── StubErrorServiceProvider.ts │ ├── Feature │ │ ├── Feature.ts │ │ ├── FeatureData.ts │ │ ├── FeatureInfoContext.ts │ │ └── ImageryLayerFeatureInfo.ts │ ├── FunctionParameters │ │ ├── BooleanParameter.ts │ │ ├── DateParameter.ts │ │ ├── DateTimeParameter.ts │ │ ├── EnumerationParameter.ts │ │ ├── FunctionParameter.ts │ │ ├── GeoJsonParameter.ts │ │ ├── InfoParameter.ts │ │ ├── LineParameter.ts │ │ ├── NumberParameter.ts │ │ ├── PointParameter.ts │ │ ├── PolygonParameter.ts │ │ ├── RectangleParameter.ts │ │ ├── RegionParameter.ts │ │ ├── RegionTypeParameter.ts │ │ ├── SelectAPolygonParameter.ts │ │ └── StringParameter.ts │ ├── GlobeOrMap.ts │ ├── HasLocalData.ts │ ├── IElementConfig.ts │ ├── InitSource.ts │ ├── Internationalization.ts │ ├── ItemSearchProviders │ │ ├── EnumIndex.ts │ │ ├── Index.ts │ │ ├── IndexedItemSearchProvider.ts │ │ ├── ItemSearchProvider.ts │ │ ├── ItemSearchProviders.ts │ │ ├── NumericIndex.ts │ │ ├── TextIndex.ts │ │ ├── Types.ts │ │ └── joinUrl.ts │ ├── Leaflet.ts │ ├── LeafletAttribution.ts │ ├── LocationMarkerUtils.ts │ ├── MapInteractionMode.ts │ ├── NoViewer.ts │ ├── RelatedMaps.ts │ ├── SearchProviders │ │ ├── AustralianGazetteerSearchProvider.ts │ │ ├── BingMapsSearchProvider.ts │ │ ├── CatalogIndex.ts │ │ ├── CatalogSearchProvider.ts │ │ ├── CesiumIonSearchProvider.ts │ │ ├── NominatimSearchProvider.ts │ │ ├── SearchBarModel.ts │ │ ├── SearchModelFactory.ts │ │ ├── SearchProviderFactory.ts │ │ ├── SearchProviderResults.ts │ │ ├── SearchResult.ts │ │ ├── StubSearchProvider.ts │ │ ├── createStubSearchProvider.ts │ │ ├── registerSearchProviders.ts │ │ └── upsertSearchProviderFromJson.ts │ ├── SelectableDimensions │ │ └── SelectableDimensions.ts │ ├── ShareDataService.ts │ ├── StoryVideoSettings.ts │ ├── Terria.ts │ ├── TimelineStack.ts │ ├── UserDrawing.ts │ ├── ViewerMode.ts │ ├── ViewingControls.ts │ ├── Workbench.ts │ ├── Workflows │ │ ├── SelectableDimensionWorkflow.ts │ │ └── TableStylingWorkflow.ts │ ├── getAncestors.ts │ ├── getToken.ts │ └── sendFeedback.ts ├── ReactViewModels │ ├── MouseCoords.ts │ ├── NotificationState.ts │ ├── SearchState.ts │ ├── ViewState.ts │ ├── defaultHelpContent.ts │ ├── defaultTerms.ts │ └── defaultTourPoints.ts ├── ReactViews │ ├── ActionBar │ │ ├── ActionBar.tsx │ │ ├── ActionBarGroup.tsx │ │ ├── ActionBarPortal.tsx │ │ ├── ActionButton.tsx │ │ └── StyledButton.tsx │ ├── Analytics │ │ ├── BooleanParameterEditor.tsx │ │ ├── BooleanParameterGroupEditor.jsx │ │ ├── DateParameterEditor.tsx │ │ ├── DateTimeParameterEditor.tsx │ │ ├── EnumerationParameterEditor.tsx │ │ ├── GenericParameterEditor.tsx │ │ ├── GeoJsonParameterEditor.jsx │ │ ├── InfoParameterEditor.tsx │ │ ├── InvokeFunction.jsx │ │ ├── LineParameterEditor.jsx │ │ ├── NumberParameterEditor.tsx │ │ ├── ParameterEditor.jsx │ │ ├── PointParameterEditor.jsx │ │ ├── PolygonParameterEditor.jsx │ │ ├── RectangleParameterEditor.jsx │ │ ├── RegionParameterEditor.jsx │ │ ├── RegionPicker.jsx │ │ ├── RegionTypeParameterEditor.jsx │ │ ├── SelectAPolygonParameterEditor.tsx │ │ ├── invoke-function.scss │ │ ├── invoke-function.scss.d.ts │ │ ├── parameter-editors.scss │ │ └── parameter-editors.scss.d.ts │ ├── BadgeBar.tsx │ ├── BottomDock │ │ ├── BottomDock.tsx │ │ ├── ChartDisclaimer.tsx │ │ ├── MapDataCount.tsx │ │ ├── Timeline │ │ │ ├── CesiumTimeline.jsx │ │ │ ├── DateFormats.ts │ │ │ ├── DatePicker │ │ │ │ ├── CenturyView.tsx │ │ │ │ ├── DateTimePickerStyles.ts │ │ │ │ ├── DayView.tsx │ │ │ │ ├── HourView.tsx │ │ │ │ ├── MonthView.tsx │ │ │ │ ├── TimeListView.tsx │ │ │ │ ├── YearView.tsx │ │ │ │ └── utils.ts │ │ │ ├── DateTimePicker.tsx │ │ │ ├── Timeline.d.ts │ │ │ ├── Timeline.jsx │ │ │ ├── TimelineControls.jsx │ │ │ ├── cesium-timeline.scss │ │ │ ├── cesium-timeline.scss.d.ts │ │ │ ├── timeline-controls.scss │ │ │ ├── timeline-controls.scss.d.ts │ │ │ ├── timeline.scss │ │ │ └── timeline.scss.d.ts │ │ └── chart-disclaimer.scss │ ├── CleanDropdownPanel │ │ └── CleanDropdownPanel.jsx │ ├── Clipboard.tsx │ ├── Context │ │ ├── ContextProviders.tsx │ │ ├── ViewStateContext.tsx │ │ └── index.ts │ ├── Custom │ │ ├── ApiTableCustomComponent.ts │ │ ├── Chart │ │ │ ├── BottomDockChart.tsx │ │ │ ├── ChartExpandAndDownloadButtons.tsx │ │ │ ├── ChartPanel.tsx │ │ │ ├── ChartPanelDownloadButton.tsx │ │ │ ├── FeatureInfoPanelChart.tsx │ │ │ ├── Glyphs.ts │ │ │ ├── Legends.jsx │ │ │ ├── LineAndPointChart.tsx │ │ │ ├── LineChart.tsx │ │ │ ├── MomentLinesChart.tsx │ │ │ ├── MomentPointsChart.tsx │ │ │ ├── PointOnMap.tsx │ │ │ ├── Tooltip.tsx │ │ │ ├── ZoomX.tsx │ │ │ ├── bottom-dock-chart.scss │ │ │ ├── bottom-dock-chart.scss.d.ts │ │ │ ├── chart-expand-and-download-buttons.scss │ │ │ ├── chart-expand-and-download-buttons.scss.d.ts │ │ │ ├── chart-panel-download-button.scss │ │ │ ├── chart-panel-download-button.scss.d.ts │ │ │ ├── chart-panel.scss │ │ │ ├── chart-panel.scss.d.ts │ │ │ ├── chart-preview.scss │ │ │ ├── chart-preview.scss.d.ts │ │ │ ├── chart.scss │ │ │ ├── chart.scss.d.ts │ │ │ ├── downloadHrefWorker.js │ │ │ ├── legends.scss.d.ts │ │ │ ├── tooltip.scss │ │ │ ├── tooltip.scss.d.ts │ │ │ ├── types.ts │ │ │ └── utils.tsx │ │ ├── ChartCustomComponent.ts │ │ ├── Collapsible │ │ │ ├── Collapsible.tsx │ │ │ └── collapsible.scss.d.ts │ │ ├── CollapsibleCustomComponent.ts │ │ ├── CsvChartCustomComponent.ts │ │ ├── CustomComponent.ts │ │ ├── ExternalLink.tsx │ │ ├── FeedbackLinkCustomComponent.tsx │ │ ├── SOSChartCustomComponent.ts │ │ ├── TerriaTooltip.tsx │ │ ├── parseCustomHtmlToReact.ts │ │ ├── parseCustomMarkdownToReact.ts │ │ └── registerCustomComponentTypes.ts │ ├── DataCatalog │ │ ├── CatalogGroup.jsx │ │ ├── CatalogItem.tsx │ │ ├── DataCatalog.jsx │ │ ├── DataCatalogGroup.tsx │ │ ├── DataCatalogItem.tsx │ │ ├── DataCatalogMember.jsx │ │ ├── DataCatalogReference.tsx │ │ ├── DisplayGroupHelper.ts │ │ ├── data-catalog-group.scss │ │ ├── data-catalog-group.scss.d.ts │ │ ├── data-catalog-item.scss.d.ts │ │ ├── data-catalog.scss │ │ ├── data-catalog.scss.d.ts │ │ └── toggleItemOnMapFromCatalog.ts │ ├── Disclaimer.d.ts │ ├── Disclaimer.jsx │ ├── Drag │ │ ├── DragWrapper.tsx │ │ └── useDraggable.ts │ ├── DragDropFile.tsx │ ├── DragDropNotification.tsx │ ├── Errors │ │ └── RaiseToUserErrorBoundary.tsx │ ├── ExplorerWindow │ │ ├── ExplorerWindow.tsx │ │ ├── ModalPopup.tsx │ │ ├── Tabs.d.ts │ │ ├── Tabs.jsx │ │ ├── Tabs │ │ │ ├── DataCatalogTab.tsx │ │ │ ├── MyDataTab │ │ │ │ ├── AddData.jsx │ │ │ │ ├── CesiumIonConnector.tsx │ │ │ │ ├── FileInput.jsx │ │ │ │ ├── MyDataTab.jsx │ │ │ │ ├── add-data.scss │ │ │ │ ├── add-data.scss.d.ts │ │ │ │ ├── cesium-ion-connector.scss │ │ │ │ ├── cesium-ion-connector.scss.d.ts │ │ │ │ ├── file-input.scss │ │ │ │ ├── file-input.scss.d.ts │ │ │ │ ├── my-data-tab.scss │ │ │ │ └── my-data-tab.scss.d.ts │ │ │ ├── data-catalog-tab.scss │ │ │ └── data-catalog-tab.scss.d.ts │ │ ├── explorer-window.scss │ │ ├── explorer-window.scss.d.ts │ │ ├── tabs.scss │ │ └── tabs.scss.d.ts │ ├── FeatureInfo │ │ ├── FeatureInfoCatalogItem.tsx │ │ ├── FeatureInfoDownload.tsx │ │ ├── FeatureInfoPanel.tsx │ │ ├── FeatureInfoPanelButton.tsx │ │ ├── FeatureInfoSection.tsx │ │ ├── feature-info-catalog-item.scss │ │ ├── feature-info-catalog-item.scss.d.ts │ │ ├── feature-info-download.scss │ │ ├── feature-info-download.scss.d.ts │ │ ├── feature-info-panel.scss │ │ ├── feature-info-panel.scss.d.ts │ │ ├── feature-info-section.scss │ │ ├── feature-info-section.scss.d.ts │ │ ├── generateCesiumInfoHTMLFromProperties.ts │ │ ├── getFeatureProperties.ts │ │ └── mustacheExpressions.ts │ ├── Feedback │ │ ├── FeedbackButtonController.ts │ │ └── FeedbackForm.tsx │ ├── Generic │ │ ├── Caret.jsx │ │ ├── CloseButton.tsx │ │ ├── Dropdown.tsx │ │ ├── Editor.jsx │ │ ├── MoreOrLess.jsx │ │ ├── OutsideClickHandler.tsx │ │ ├── PrefaceBox.tsx │ │ ├── Prompt.d.ts │ │ ├── Prompt.jsx │ │ ├── Responsive.tsx │ │ ├── Timer │ │ │ ├── Timer.jsx │ │ │ ├── drawTimer.js │ │ │ ├── timer.scss │ │ │ └── timer.scss.d.ts │ │ ├── TooltipWrapper.tsx │ │ ├── dropdown.scss │ │ ├── dropdown.scss.d.ts │ │ ├── editor.skin.min.css │ │ ├── prompt.scss │ │ └── prompt.scss.d.ts │ ├── Guide │ │ ├── Guide.jsx │ │ ├── SatelliteGuide.jsx │ │ ├── guide.scss │ │ ├── guide.scss.d.ts │ │ └── satelliteGuideData.js │ ├── HOCs │ │ ├── measureElement.tsx │ │ ├── withControlledVisibility.tsx │ │ ├── withFallback.tsx │ │ └── withTerriaRef.tsx │ ├── HelpScreens │ │ ├── HelpPrompt.tsx │ │ ├── SatelliteHelpPrompt.tsx │ │ ├── help-panel.scss │ │ ├── help-panel.scss.d.ts │ │ ├── help-screen-window.scss │ │ ├── obscure-overlay.scss │ │ └── obscure-overlay.scss.d.ts │ ├── Hooks │ │ ├── useKeyPress.js │ │ ├── useRefForTerria.ts │ │ └── useWindowSize.ts │ ├── Loader.tsx │ ├── LocationItem.jsx │ ├── Map │ │ ├── BottomBar │ │ │ ├── BottomBar.tsx │ │ │ ├── Credits │ │ │ │ ├── Credit.tsx │ │ │ │ ├── Credit.type.ts │ │ │ │ ├── Credits.tsx │ │ │ │ ├── CreditsContainer.tsx │ │ │ │ ├── DataAttribution │ │ │ │ │ └── DataAttributionModal.tsx │ │ │ │ ├── MapCreditLogo.tsx │ │ │ │ ├── MapCredits.tsx │ │ │ │ ├── Spacer.tsx │ │ │ │ ├── TerriaLogo.tsx │ │ │ │ └── index.ts │ │ │ ├── DistanceLegend.tsx │ │ │ ├── LocationBar.tsx │ │ │ └── index.ts │ │ ├── BottomLeftBar │ │ │ └── BottomLeftBar.tsx │ │ ├── MapColumn.tsx │ │ ├── MapNavigation │ │ │ ├── CollapsedNavigation.tsx │ │ │ ├── Items │ │ │ │ ├── AugmentedVirtualityTool.tsx │ │ │ │ ├── Compass │ │ │ │ │ ├── Compass.tsx │ │ │ │ │ ├── GyroscopeGuidance.d.ts │ │ │ │ │ ├── GyroscopeGuidance.jsx │ │ │ │ │ └── index.ts │ │ │ │ ├── MapNavigationItem.tsx │ │ │ │ ├── MeasureTool.ts │ │ │ │ ├── MyLocation.ts │ │ │ │ ├── ToggleSplitterTool.ts │ │ │ │ ├── ZoomControl.tsx │ │ │ │ └── index.ts │ │ │ ├── MapNavigation.tsx │ │ │ ├── filterViewerAndScreenSize.ts │ │ │ ├── index.ts │ │ │ ├── registerMapNavigations.tsx │ │ │ └── zoom_control.scss.d.ts │ │ ├── MenuBar │ │ │ ├── HelpButton │ │ │ │ ├── HelpButton.tsx │ │ │ │ ├── help-button.scss │ │ │ │ └── help-button.scss.d.ts │ │ │ ├── MenuBar.d.ts │ │ │ ├── MenuBar.jsx │ │ │ ├── StoryButton │ │ │ │ ├── StoryButton.tsx │ │ │ │ ├── story-button.scss │ │ │ │ └── story-button.scss.d.ts │ │ │ ├── menu-bar.scss │ │ │ └── menu-bar.scss.d.ts │ │ ├── Panels │ │ │ ├── BaseOuterPanel.js │ │ │ ├── DropdownPanel.jsx │ │ │ ├── HelpPanel │ │ │ │ ├── HelpPanel.d.ts │ │ │ │ ├── HelpPanel.jsx │ │ │ │ ├── HelpPanelItem.jsx │ │ │ │ ├── HelpVideoPanel.jsx │ │ │ │ ├── StyledHtml.jsx │ │ │ │ ├── TrainerPane.jsx │ │ │ │ ├── VideoGuide.d.ts │ │ │ │ ├── VideoGuide.jsx │ │ │ │ ├── help-panel.scss │ │ │ │ └── help-panel.scss.d.ts │ │ │ ├── InnerPanel.jsx │ │ │ ├── LangPanel │ │ │ │ └── LangPanel.tsx │ │ │ ├── MobilePanel.jsx │ │ │ ├── SettingPanel.tsx │ │ │ ├── SharePanel │ │ │ │ ├── AdvancedOptions │ │ │ │ │ ├── AdvancedOptions.tsx │ │ │ │ │ ├── EmbedSection.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── BuildShareLink.ts │ │ │ │ ├── Print │ │ │ │ │ ├── PrintDatasets.tsx │ │ │ │ │ ├── PrintSection.tsx │ │ │ │ │ ├── PrintSource.tsx │ │ │ │ │ ├── PrintView.tsx │ │ │ │ │ ├── PrintViewButtons.tsx │ │ │ │ │ ├── PrintViewMap.tsx │ │ │ │ │ └── PrintWorkbench.tsx │ │ │ │ ├── SharePanel.tsx │ │ │ │ ├── SharePanelContent.tsx │ │ │ │ ├── ShareUrl │ │ │ │ │ ├── ShareUrl.tsx │ │ │ │ │ ├── ShareUrlBookmark.tsx │ │ │ │ │ ├── ShareUrlWarning.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── StorySharePanel.jsx │ │ │ │ ├── StyledHr.tsx │ │ │ │ ├── share-panel.scss │ │ │ │ └── share-panel.scss.d.ts │ │ │ ├── ToolsPanel │ │ │ │ ├── CountDatasets.tsx │ │ │ │ ├── ToolsPanel.jsx │ │ │ │ ├── tools-panel.scss │ │ │ │ └── tools-panel.scss.d.ts │ │ │ ├── panel.scss │ │ │ ├── panel.scss.d.ts │ │ │ ├── setting-panel.scss │ │ │ └── setting-panel.scss.d.ts │ │ ├── ProgressBar.tsx │ │ ├── TerriaViewerWrapper │ │ │ ├── Splitter │ │ │ │ ├── Splitter.tsx │ │ │ │ └── dragHook.ts │ │ │ ├── TerriaViewerWrapper.tsx │ │ │ └── index.ts │ │ ├── Toast.tsx │ │ └── map-navigation.scss.d.ts │ ├── MapIconButton │ │ └── MapIconButton.tsx │ ├── Mobile │ │ ├── MobileHeader.d.ts │ │ ├── MobileHeader.jsx │ │ ├── MobileMenu.jsx │ │ ├── MobileMenuItem.tsx │ │ ├── MobileModalWindow.jsx │ │ ├── MobileSearch.jsx │ │ ├── mobile-header.scss │ │ ├── mobile-header.scss.d.ts │ │ ├── mobile-menu-item.scss │ │ ├── mobile-menu-item.scss.d.ts │ │ ├── mobile-menu.scss │ │ ├── mobile-menu.scss.d.ts │ │ ├── mobile-modal-window.scss │ │ ├── mobile-modal-window.scss.d.ts │ │ ├── mobile-search.scss │ │ └── mobile-search.scss.d.ts │ ├── Notification │ │ ├── MapInteractionWindow.tsx │ │ ├── Notification.tsx │ │ ├── NotificationWindow.jsx │ │ ├── map-interaction-window.scss │ │ ├── map-interaction-window.scss.d.ts │ │ ├── notification-window.scss │ │ ├── notification-window.scss.d.ts │ │ ├── shareConvertNotification.tsx │ │ └── terriaErrorNotification.tsx │ ├── Preview │ │ ├── DataPreview.jsx │ │ ├── DataPreviewMap.jsx │ │ ├── DataPreviewSections.jsx │ │ ├── DataPreviewUrl.jsx │ │ ├── Description.d.ts │ │ ├── Description.jsx │ │ ├── ExportData.tsx │ │ ├── GroupPreview.jsx │ │ ├── MappablePreview.jsx │ │ ├── MetadataTable.jsx │ │ ├── WarningBox.tsx │ │ ├── data-preview-map.scss │ │ ├── data-preview-map.scss.d.ts │ │ ├── data-preview.scss │ │ ├── data-preview.scss.d.ts │ │ ├── mappable-preview.scss │ │ ├── mappable-preview.scss.d.ts │ │ ├── metadata-table.scss │ │ └── metadata-table.scss.d.ts │ ├── PrivateIndicator │ │ └── PrivateIndicator.tsx │ ├── ReactViewHelpers │ │ └── highlightKeyword.jsx │ ├── RelatedMaps │ │ ├── RelatedMaps.tsx │ │ ├── related-maps.scss │ │ └── related-maps.scss.d.ts │ ├── Search │ │ ├── Breadcrumbs.jsx │ │ ├── LocationSearchResults.tsx │ │ ├── SearchBox.jsx │ │ ├── SearchBoxAndResults.tsx │ │ ├── SearchHeader.tsx │ │ ├── SearchResult.tsx │ │ ├── search-header.scss │ │ ├── search-header.scss.d.ts │ │ ├── sidebar-dataset-search-results.scss │ │ ├── sidebar-dataset-search-results.scss.d.ts │ │ ├── sidebar-search.scss │ │ └── sidebar-search.scss.d.ts │ ├── SelectableDimensions │ │ ├── Button.tsx │ │ ├── Checkbox.tsx │ │ ├── Color.tsx │ │ ├── ColorSchemeOptionRenderer.tsx │ │ ├── Group.tsx │ │ ├── MarkerOptionRenderer.tsx │ │ ├── Numeric.tsx │ │ ├── Select.tsx │ │ ├── SelectableDimension.tsx │ │ └── Text.tsx │ ├── SidePanel │ │ ├── Branding.tsx │ │ ├── FullScreenButton.d.ts │ │ ├── FullScreenButton.jsx │ │ ├── SidePanel.tsx │ │ ├── full_screen_button.scss │ │ ├── full_screen_button.scss.d.ts │ │ ├── side-panel.scss │ │ └── side-panel.scss.d.ts │ ├── StandardUserInterface │ │ ├── ExperimentalFeatures.tsx │ │ ├── GlobalTerriaStyles.ts │ │ ├── Portal.tsx │ │ ├── SidePanelContainer.tsx │ │ ├── StandardTheme.tsx │ │ ├── StandardUserInterface.tsx │ │ ├── TrainerBar │ │ │ └── TrainerBar.tsx │ │ ├── customizable │ │ │ ├── Groups.jsx │ │ │ ├── MenuButton.tsx │ │ │ ├── MenuItem.jsx │ │ │ ├── MenuPanel.jsx │ │ │ ├── ResponsiveSwitch.jsx │ │ │ ├── menu-button.scss │ │ │ └── menu-button.scss.d.ts │ │ ├── index.ts │ │ ├── processCustomElements.d.ts │ │ ├── processCustomElements.jsx │ │ ├── standard-user-interface.scss │ │ └── standard-user-interface.scss.d.ts │ ├── Story │ │ ├── Story.tsx │ │ ├── StoryBuilder.tsx │ │ ├── StoryEditor.d.ts │ │ ├── StoryEditor.jsx │ │ ├── StoryPanel │ │ │ ├── StoryBody.tsx │ │ │ ├── StoryButtons.tsx │ │ │ ├── StoryFooterBar.tsx │ │ │ ├── StoryPanel.tsx │ │ │ └── TitleBar.tsx │ │ ├── story-builder.scss │ │ ├── story-builder.scss.d.ts │ │ ├── story-editor.scss │ │ ├── story-editor.scss.d.ts │ │ ├── story-panel.scss │ │ └── story-panel.scss.d.ts │ ├── Tools │ │ ├── ClippingBox │ │ │ ├── ClippingBoxToolLauncher.tsx │ │ │ └── RepositionClippingBox.tsx │ │ ├── DiffTool │ │ │ ├── DatePicker.tsx │ │ │ ├── DiffTool.tsx │ │ │ ├── LocationPicker.tsx │ │ │ └── diff-tool.scss.d.ts │ │ ├── ItemSearchTool │ │ │ ├── BackButton.tsx │ │ │ ├── ErrorComponent.tsx │ │ │ ├── ItemSearchTool.tsx │ │ │ ├── LazyItemSearchTool.tsx │ │ │ ├── Loading.tsx │ │ │ ├── MapEffects.tsx │ │ │ ├── SearchForm.tsx │ │ │ └── SearchResults.tsx │ │ ├── PedestrianMode │ │ │ ├── DropPedestrianToGround.tsx │ │ │ ├── Marker.ts │ │ │ ├── MiniMap.tsx │ │ │ ├── MouseTooltip.tsx │ │ │ ├── MovementControls.tsx │ │ │ ├── MovementsController.ts │ │ │ └── PedestrianMode.tsx │ │ ├── Tool.tsx │ │ └── ToolModal.tsx │ ├── Tour │ │ ├── TourExplanationBox.tsx │ │ ├── TourIndicator.jsx │ │ ├── TourOverlay.jsx │ │ ├── TourPortal.d.ts │ │ ├── TourPortal.jsx │ │ ├── TourPrefaceBox.tsx │ │ ├── TourProgressDot.jsx │ │ └── tour-helpers.ts │ ├── Transitions │ │ ├── FadeIn │ │ │ ├── FadeIn.tsx │ │ │ ├── fade-in.scss │ │ │ └── fade-in.scss.d.ts │ │ └── SlideUpFadeIn │ │ │ ├── SlideUpFadeIn.tsx │ │ │ ├── slide-up-fade-in.scss │ │ │ └── slide-up-fade-in.scss.d.ts │ ├── WelcomeMessage │ │ ├── WelcomeMessage.d.ts │ │ ├── WelcomeMessage.jsx │ │ ├── welcome-message.scss │ │ └── welcome-message.scss.d.ts │ ├── Workbench │ │ ├── Controls │ │ │ ├── ChartItemSelector.tsx │ │ │ ├── ColorScaleRangeSection.d.ts │ │ │ ├── ColorScaleRangeSection.jsx │ │ │ ├── DateTimeSelectorSection.tsx │ │ │ ├── FilterSection.d.ts │ │ │ ├── FilterSection.jsx │ │ │ ├── GeneratedControlSection.tsx │ │ │ ├── LeftRightSection.tsx │ │ │ ├── Legend.tsx │ │ │ ├── OpacitySection.tsx │ │ │ ├── SatelliteImageryTimeFilterSection.d.ts │ │ │ ├── SatelliteImageryTimeFilterSection.jsx │ │ │ ├── ScaleWorkbenchInfo.tsx │ │ │ ├── SelectableDimensionSection.tsx │ │ │ ├── ShortReport.tsx │ │ │ ├── TimerSection.d.ts │ │ │ ├── TimerSection.jsx │ │ │ ├── ViewingControls.tsx │ │ │ ├── WorkbenchItemControls.tsx │ │ │ ├── colorscalerange-section.scss │ │ │ ├── colorscalerange-section.scss.d.ts │ │ │ ├── concept-viewer.scss.d.ts │ │ │ ├── filter-section.scss │ │ │ ├── filter-section.scss.d.ts │ │ │ ├── legend.scss │ │ │ ├── legend.scss.d.ts │ │ │ ├── satellite-imagery-time-filter-section.scss │ │ │ ├── satellite-imagery-time-filter-section.scss.d.ts │ │ │ ├── timer-section.scss │ │ │ └── timer-section.scss.d.ts │ │ ├── PositionRightOfWorkbench.tsx │ │ ├── TerrainSide.tsx │ │ ├── Workbench.tsx │ │ ├── WorkbenchButton.tsx │ │ ├── WorkbenchItem.tsx │ │ ├── WorkbenchList.tsx │ │ ├── WorkbenchSplitScreen.tsx │ │ └── sortable.css │ ├── Workflow │ │ ├── Panel.tsx │ │ ├── PanelMenu.tsx │ │ ├── SelectableDimensionWorkflow.tsx │ │ ├── WorkflowPanel.tsx │ │ └── WorkflowPanelPortal.tsx │ ├── location-item.scss │ ├── location-item.scss.d.ts │ └── useCallbackRef.ts ├── Sass │ ├── common │ │ ├── _base.scss │ │ ├── _buttons.scss │ │ ├── _default_variables.scss │ │ ├── _form.scss │ │ ├── _icons.scss │ │ ├── _labels.scss │ │ ├── _mixins.scss │ │ └── _variables.scss │ ├── exports │ │ ├── _variables-export.scss │ │ └── _variables-export.scss.d.ts │ └── global │ │ ├── _datePicker.scss │ │ ├── _datePickerOverride.scss │ │ ├── _leaflet.scss │ │ ├── _normalize.scss │ │ ├── _slider.scss │ │ ├── _sortable.scss │ │ └── global.scss ├── Styled │ ├── AnimatedSpinnerIcon.tsx │ ├── Box.tsx │ ├── Button.tsx │ ├── ButtonAsLabel.tsx │ ├── Checkbox │ │ ├── Checkbox.tsx │ │ ├── Elements │ │ │ ├── CheckboxIcon.tsx │ │ │ └── HiddenCheckbox.tsx │ │ ├── index.ts │ │ └── types.ts │ ├── Hr.tsx │ ├── Icon.tsx │ ├── IconWrapper.tsx │ ├── Input.tsx │ ├── List.tsx │ ├── Select.tsx │ ├── Spacing.tsx │ ├── Styled.types.ts │ ├── Text.tsx │ └── mixins.ts ├── Table │ ├── ColorStyleLegend.ts │ ├── Csv.ts │ ├── MergedStyleMapLegend.ts │ ├── StyleMapLegend.ts │ ├── TableAutomaticStylesStratum.ts │ ├── TableColorMap.ts │ ├── TableColumn.ts │ ├── TableColumnType.ts │ ├── TableFeatureInfoStratum.ts │ ├── TableLegendStratum.ts │ ├── TableStyle.ts │ ├── TableStyleMap.ts │ ├── createLongitudeLatitudeFeaturePerId.ts │ ├── createLongitudeLatitudeFeaturePerRow.ts │ ├── createRegionMappedImageryProvider.ts │ ├── getFeatureStyle.ts │ └── tableFeatureInfoContext.ts ├── ThirdParty │ ├── @mapbox │ │ └── togeojson │ │ │ └── index.d.ts │ ├── arcgis-pbf-parser │ │ └── index.d.ts │ ├── assimpjs │ │ └── index.d.ts │ ├── global.d.ts │ ├── html-to-react │ │ └── index.d.ts │ ├── javascript-natural-sort │ │ └── index.d.ts │ ├── mapbox__geojson-merge │ │ └── index.d.ts │ ├── mapbox__point-geometry │ │ └── index.d.ts │ ├── point-in-polygon │ │ └── index.d.ts │ ├── proj4-fully-loaded │ │ └── index.d.ts │ ├── react-anything-sortable │ │ └── index.d.ts │ ├── react-datepicker │ │ └── index.d.ts │ ├── react-shallow-testutils │ │ └── index.d.ts │ ├── styled-components │ │ └── index.d.ts │ ├── terriajs-cesium-extra │ │ └── index.d.ts │ ├── terriajs-html2canvas │ │ └── index.d.ts │ ├── thredds-catalog-crawler │ │ └── index.d.ts │ ├── worker-loader.d.ts │ ├── xml2json.d.ts │ └── xml2json.js ├── Traits │ ├── ArrayNestedStrataMap.ts │ ├── BoxDrawingTraits.ts │ ├── Decorators │ │ ├── anyTrait.ts │ │ ├── modelReferenceArrayTrait.ts │ │ ├── modelReferenceTrait.ts │ │ ├── objectArrayTrait.ts │ │ ├── objectTrait.ts │ │ ├── primitiveArrayTrait.ts │ │ └── primitiveTrait.ts │ ├── ModelReference.ts │ ├── ModelTraits.ts │ ├── NestedStrataMap.ts │ ├── SearchProviders │ │ ├── BingMapsSearchProviderTraits.ts │ │ ├── CatalogSearchProviderTraits.ts │ │ ├── CesiumIonSearchProviderTraits.ts │ │ ├── LocationSearchProviderTraits.ts │ │ ├── NominatimSearchProviderTraits.ts │ │ ├── SearchBarTraits.ts │ │ ├── SearchProviderTraits.ts │ │ └── WebFeatureServiceSearchProviderTraits.ts │ ├── Stratified.ts │ ├── Trait.ts │ ├── TraitsClasses │ │ ├── ApiRequestTraits.ts │ │ ├── ApiTableCatalogItemTraits.ts │ │ ├── ArcGisCatalogGroupTraits.ts │ │ ├── ArcGisFeatureServerCatalogGroupTraits.ts │ │ ├── ArcGisFeatureServerCatalogItemTraits.ts │ │ ├── ArcGisImageServerCatalogItemTraits.ts │ │ ├── ArcGisMapServerCatalogGroupTraits.ts │ │ ├── ArcGisMapServerCatalogItemTraits.ts │ │ ├── ArcGisPortalCatalogGroupTraits.ts │ │ ├── ArcGisPortalItemFormatTraits.ts │ │ ├── ArcGisPortalItemTraits.ts │ │ ├── ArcGisPortalSharedTraits.ts │ │ ├── ArcGisTerrainCatalogItemTraits.ts │ │ ├── AssImpCatalogItemTraits.ts │ │ ├── AttributionTraits.ts │ │ ├── AutoRefreshingTraits.ts │ │ ├── BaseMapTraits.ts │ │ ├── BingMapsCatalogItemTraits.ts │ │ ├── CartoMapV1CatalogItemTraits.ts │ │ ├── CartoMapV3CatalogItemTraits.ts │ │ ├── CatalogFunctionJobTraits.ts │ │ ├── CatalogFunctionTraits.ts │ │ ├── CatalogGroupTraits.ts │ │ ├── CatalogIndexReferenceTraits.ts │ │ ├── CatalogMemberReferenceTraits.ts │ │ ├── CatalogMemberTraits.ts │ │ ├── Cesium3DTilesCatalogItemTraits.ts │ │ ├── Cesium3dTilesTraits.ts │ │ ├── CesiumIonTraits.ts │ │ ├── CesiumTerrainCatalogItemTraits.ts │ │ ├── ChartPointOnMapTraits.ts │ │ ├── ChartTraits.ts │ │ ├── CkanCatalogGroupTraits.ts │ │ ├── CkanItemReferenceTraits.ts │ │ ├── CkanResourceFormatTraits.ts │ │ ├── CkanSharedTraits.ts │ │ ├── ClippingPlanesTraits.ts │ │ ├── CogCatalogItemTraits.ts │ │ ├── CompositeCatalogItemTraits.ts │ │ ├── CsvCatalogItemTraits.ts │ │ ├── CswCatalogGroupTraits.ts │ │ ├── CzmlCatalogItemTraits.ts │ │ ├── DiffableTraits.ts │ │ ├── DimensionTraits.ts │ │ ├── DiscreteTimeTraits.ts │ │ ├── DiscretelyTimeVaryingTraits.ts │ │ ├── ExportWebCoverageServiceTraits.ts │ │ ├── ExportableTraits.ts │ │ ├── FeatureInfoTraits.ts │ │ ├── FeaturePickingTraits.ts │ │ ├── GeoJsonCatalogItemTraits.ts │ │ ├── GeoJsonTraits.ts │ │ ├── GeoRssCatalogItemTraits.ts │ │ ├── GetCapabilitiesTraits.ts │ │ ├── GltfCatalogItemTraits.ts │ │ ├── GltfTraits.ts │ │ ├── GpxCatalogItemTraits.ts │ │ ├── GroupTraits.ts │ │ ├── GtfsCatalogItemTraits.ts │ │ ├── GtfsModelTraits.ts │ │ ├── HeadingPitchRollTraits.ts │ │ ├── HighlightColorTraits.ts │ │ ├── I3SCatalogItemTraits.ts │ │ ├── I3STraits.ts │ │ ├── ImageryProviderTraits.ts │ │ ├── IonImageryCatalogItemTraits.ts │ │ ├── ItemPropertiesTraits.ts │ │ ├── KmlCatalogItemTraits.ts │ │ ├── LatLonHeightTraits.ts │ │ ├── LayerOrderingTraits.ts │ │ ├── LegendOwnerTraits.ts │ │ ├── LegendTraits.ts │ │ ├── MagdaDistributionFormatTraits.ts │ │ ├── MagdaReferenceTraits.ts │ │ ├── MapboxMapCatalogItemTraits.ts │ │ ├── MapboxStyleCatalogItemTraits.ts │ │ ├── MapboxVectorTileCatalogItemTraits.ts │ │ ├── MappableTraits.ts │ │ ├── MinMaxLevelTraits.ts │ │ ├── OpacityTraits.ts │ │ ├── OpenDataSoftCatalogGroupTraits.ts │ │ ├── OpenDataSoftCatalogItemTraits.ts │ │ ├── OpenStreetMapCatalogItemTraits.ts │ │ ├── PlaceEditorTraits.ts │ │ ├── ReferenceTraits.ts │ │ ├── ResultPendingCatalogItemTraits.ts │ │ ├── ScaleByDistanceTraits.ts │ │ ├── SdmxCatalogGroupTraits.ts │ │ ├── SdmxCatalogItemTraits.ts │ │ ├── SdmxCommonTraits.ts │ │ ├── SearchableItemTraits.ts │ │ ├── SenapsLocationsCatalogItemTraits.ts │ │ ├── SensorObservationCatalogItemTraits.ts │ │ ├── ShadowTraits.ts │ │ ├── ShapefileCatalogItemTraits.ts │ │ ├── SocrataCatalogGroupTraits.ts │ │ ├── SocrataMapViewCatalogItemTraits.ts │ │ ├── SplitItemReferenceTraits.ts │ │ ├── SplitterTraits.ts │ │ ├── StyleTraits.ts │ │ ├── Table │ │ │ ├── ChartStyleTraits.ts │ │ │ ├── ColorStyleTraits.ts │ │ │ ├── ColumnTraits.ts │ │ │ ├── LabelStyleTraits.ts │ │ │ ├── OutlineStyleTraits.ts │ │ │ ├── PointSizeStyleTraits.ts │ │ │ ├── PointStyleTraits.ts │ │ │ ├── StyleMapTraits.ts │ │ │ ├── StyleTraits.ts │ │ │ ├── TableTraits.ts │ │ │ ├── TimeStyleTraits.ts │ │ │ └── TrailStyleTraits.ts │ │ ├── TerriaReferenceTraits.ts │ │ ├── ThreddsCatalogGroupTraits.ts │ │ ├── ThreddsItemReferenceTraits.ts │ │ ├── TimeFilterTraits.ts │ │ ├── TimeVaryingTraits.ts │ │ ├── TransformationTraits.ts │ │ ├── UrlReferenceTraits.ts │ │ ├── UrlTemplateImageryCatalogItemTraits.ts │ │ ├── UrlTraits.ts │ │ ├── WebFeatureServiceCatalogGroupTraits.ts │ │ ├── WebFeatureServiceCatalogItemTraits.ts │ │ ├── WebMapServiceCatalogGroupTraits.ts │ │ ├── WebMapServiceCatalogItemTraits.ts │ │ ├── WebMapTileServiceCatalogGroupTraits.ts │ │ ├── WebMapTileServiceCatalogItemTraits.ts │ │ ├── WebProcessingServiceCatalogFunctionJobTraits.ts │ │ ├── WebProcessingServiceCatalogFunctionTraits.ts │ │ ├── WebProcessingServiceCatalogGroupTraits.ts │ │ ├── YDYRCatalogFunctionJobTraits.ts │ │ └── YDYRCatalogFunctionTraits.ts │ ├── TraitsConstructor.ts │ ├── mixTraits.ts │ └── traitsClassToModelClass.ts └── ViewModels │ ├── CompositeBar │ ├── CompositeBarItemController.ts │ └── CompositeBarModel.ts │ ├── FeatureInfoPanel.ts │ ├── FileDragDropListener.ts │ ├── MapNavigation │ ├── MapNavigationItemController.ts │ ├── MapNavigationModel.ts │ └── MapToolbar.ts │ ├── TerriaViewer.ts │ ├── UploadDataTypes.ts │ ├── ViewingControlsMenu.ts │ ├── WorkbenchItem │ ├── Inputs.ts │ └── index.ts │ ├── updateApplicationOnHashChange.ts │ └── updateApplicationOnMessageFromParentWindow.js ├── netlify.toml ├── package.json ├── project.inlang └── settings.json ├── requirements.txt ├── terria-logo.png ├── terria-screenshot.png ├── test ├── .eslintrc.js ├── Core │ ├── CorsProxySpec.js │ ├── JsonSpec.ts │ ├── ResultSpec.ts │ ├── TerriaErrorSpec.ts │ ├── addedByUserSpec.ts │ ├── createDiscreteTimesSpec.ts │ ├── getPathSpec.ts │ ├── markdownToHtmlSpec.ts │ ├── scaleDenominatorToLevelSpec.ts │ ├── sortedIndicesSpec.js │ └── uriHelpersSpec.ts ├── Data │ └── RegionMappingJsonSpec.js ├── Helpers │ └── SimpleCatalogItem.ts ├── Language │ └── languageHelpersSpec.ts ├── Map │ ├── DragPointsSpec.js │ ├── EarthGravityModel1996Spec.js │ ├── PickedFeaturesSpec.ts │ ├── ReprojectSpec.ts │ ├── StyledHtmlSpec.tsx │ └── featureDataToGeoJsonSpec.ts ├── ModelMixins │ ├── CatalogMemberMixinSpec.ts │ ├── Cesium3dTilesMixinSpec.ts │ ├── ClippingPlanesMixinSpec.ts │ ├── DiffableMixinSpec.ts │ ├── DiscretelyTimeVaryingMixinSpec.ts │ ├── ExportWebCoverageServiceMixinSpec.ts │ ├── GltfMixinSpec.ts │ ├── MinMaxLevelMixinSpec.ts │ ├── SearchProviders │ │ └── SearchProviderMixinSpec.ts │ ├── TableMixinSpec.ts │ ├── TileErrorHandlerMixinSpec.ts │ └── TimeFilterMixinSpec.ts ├── Models │ ├── AugmentedVirtualitySpec.js │ ├── BaseMaps │ │ └── BaseMapsModelSpec.ts │ ├── BoxDrawingSpec.ts │ ├── CameraViewSpec.js │ ├── Catalog │ │ ├── CatalogFunctions │ │ │ ├── YDYRCatalogFunctionJobSpec.ts │ │ │ └── YDYRCatalogFunctionSpec.ts │ │ ├── CatalogGroupSpec.ts │ │ ├── CatalogGroups │ │ │ ├── OpenDataSoftCatalogGroupSpec.ts │ │ │ ├── SocrataCatalogGroupSpec.ts │ │ │ └── ThreddsCatalogGroupSpec.ts │ │ ├── CatalogItems │ │ │ ├── ApiTableCatalogItemSpec.ts │ │ │ ├── AssImpCatalogItemSpec.ts │ │ │ ├── BingMapsCatalogItemSpec.ts │ │ │ ├── CartoMapV1CatalogItemSpec.ts │ │ │ ├── CartoMapV3CatalogItemSpec.ts │ │ │ ├── Cesium3DTilesCatalogItemSpec.ts │ │ │ ├── CesiumTerrainCatalogItemSpec.js │ │ │ ├── CesiumTerrainCatalogItemSpec.ts │ │ │ ├── CogCatalogItemSpec.ts │ │ │ ├── CompositeCatalogItemSpec.ts │ │ │ ├── CsvCatalogItemTsSpec.ts │ │ │ ├── CzmlCatalogItemSpec.ts │ │ │ ├── GeoJsonCatalogItemSpec.ts │ │ │ ├── GeoRssCatalogItemSpec.ts │ │ │ ├── GltfCatalogItemSpec.ts │ │ │ ├── GpxCatalogItemSpec.ts │ │ │ ├── I3SCatalogItemSpec.ts │ │ │ ├── ImageryLayerCatalogItemSpec.js │ │ │ ├── IonImageryCatalogItemSpec.ts │ │ │ ├── KmlCatalogItemSpec.js │ │ │ ├── MapboxVectorTileCatalogItemSpec.ts │ │ │ ├── OpenDataSoftCatalogItemSpec.ts │ │ │ ├── OpenStreetMapCatalogItemSpec.ts │ │ │ ├── SenapsCatalogItemSpec.ts │ │ │ ├── SensorObservationServiceCatalogItemSpec.ts │ │ │ ├── ShapefileCatalogItemSpec.ts │ │ │ ├── SocrataMapViewCatalogItemSpec.ts │ │ │ ├── TerrainCatalogItemSpec.js │ │ │ └── UrlTemplateImageryCatalogItemSpec.ts │ │ ├── CatalogMemberSpec.js │ │ ├── CatalogReferences │ │ │ ├── CatalogIndexReferenceSpec.ts │ │ │ ├── SplitItemReferenceSpec.ts │ │ │ └── TerriaReferenceSpec.ts │ │ ├── Ckan │ │ │ ├── CkanCatalogGroupSpec.ts │ │ │ └── CkanItemReferenceSpec.ts │ │ ├── Gtfs │ │ │ └── GtfsCatalogItemSpec.ts │ │ ├── Ows │ │ │ ├── CswCatalogGroupSpec.ts │ │ │ ├── WebFeatureServiceCatalogGroupSpec.ts │ │ │ ├── WebFeatureServiceCatalogItemSpec.ts │ │ │ ├── WebMapServiceCatalogGroupSpec.ts │ │ │ ├── WebMapServiceCatalogItemSpec.ts │ │ │ ├── WebMapTileServiceCatalogGroupSpec.ts │ │ │ ├── WebMapTileServiceCatalogItemSpec.ts │ │ │ ├── WebProcessingServiceCatalogFunctionSpec.ts │ │ │ ├── WebProcessingServiceCatalogGroupSpec.ts │ │ │ └── WebProcessingServiceCatalogJobSpec.ts │ │ ├── SdmxJson │ │ │ ├── SdmxJsonCatalogGroupSpec.ts │ │ │ └── SdmxJsonCatalogItemSpec.ts │ │ ├── allCatalogModelsSpec.ts │ │ ├── createCombinedModelSpec.ts │ │ ├── createUrlReferenceFromUrlSpec.ts │ │ └── esri │ │ │ ├── ArcGisCatalogGroupSpec.ts │ │ │ ├── ArcGisFeatureServerCatalogGroupSpec.ts │ │ │ ├── ArcGisFeatureServerCatalogItemSpec.ts │ │ │ ├── ArcGisImageServerCatalogItemSpec.ts │ │ │ ├── ArcGisMapServerCatalogGroupSpec.ts │ │ │ ├── ArcGisMapServerCatalogItemSpec.ts │ │ │ ├── ArcGisPortalCatatalogGroupSpec.ts │ │ │ ├── ArcGisPortalReferenceItemSpec.ts │ │ │ └── esriLineStyleSpec.ts │ ├── CesiumSpec.ts │ ├── Definition │ │ ├── StratumOrderSpec.ts │ │ ├── updateModelFromJsonSpec.ts │ │ └── upsertModelFromJsonSpec.ts │ ├── ErrorServiceSpec.ts │ ├── FunctionParameters │ │ ├── DateParameterSpec.ts │ │ └── DateTimeParameterSpec.ts │ ├── ItemSearchProviders │ │ ├── CatalogIndexSpec.ts │ │ ├── IndexedItemSearchProviderSpec.ts │ │ └── NumericIndexSpec.ts │ ├── LeafletSpec.js │ ├── LeafletSpec.ts │ ├── MagdaReferenceSpec.ts │ ├── MapNavigation │ │ └── MapNavigationModelSpec.ts │ ├── MapboxMapCatalogItemSpec.ts │ ├── MapboxStyleCatalogItemSpec.ts │ ├── SearchProviders │ │ ├── AustralianGazetteerSearchProviderSpec.ts │ │ ├── BingMapsSearchProviderSpec.ts │ │ ├── CesiumIonSearchProviderSpec.ts │ │ └── LocationSearchProviderSpec.ts │ ├── SelectableDimensionSpec.ts │ ├── TerriaSpec.ts │ ├── TimeSeriesStackSpec.js │ ├── TimelineStackSpec.ts │ ├── UserDrawingSpec.ts │ ├── WorkbenchSpec.ts │ ├── Workflows │ │ └── SelectableDimensionWorkflowSpec.ts │ ├── getAncestorsSpec.ts │ ├── parseCustomHtmlToReactSpec.js │ ├── parseCustomHtmlToReactSpec.tsx │ ├── parseCustomMarkdownToReactSpec.js │ └── parseCustomMarkdownToReactTsSpec.ts ├── ReactViewModels │ ├── NotificationStateSpec.ts │ └── ViewStateSpec.ts ├── ReactViews │ ├── BottomDock │ │ ├── BottomDockSpec.tsx │ │ └── MapDataCountSpec.tsx │ ├── ChartSpec.jsx │ ├── ClipboardSpec.tsx │ ├── Custom │ │ └── Chart │ │ │ ├── BottomDockChartSpec.tsx │ │ │ ├── ChartCustomComponentSpec.tsx │ │ │ ├── CsvChartCustomComponentSpec.tsx │ │ │ ├── FeatureInfoPanelChartSpec.tsx │ │ │ ├── MomentPointsChartSpec.tsx │ │ │ └── PointOnMapSpec.tsx │ ├── DataCatalog │ │ ├── CatalogGroupSpec.tsx │ │ └── DataCatalogItemSpec.tsx │ ├── DataCatalogSpec.jsx │ ├── DateTimePicker │ │ └── DateTimePickerSpec.tsx │ ├── DimensionSelectorSectionSpec.tsx │ ├── DisclaimerSpec.tsx │ ├── Drag │ │ └── DragWrapperSpec.tsx │ ├── FeatureInfoPanelSpec.tsx │ ├── FeatureInfoSectionSpec.tsx │ ├── Generic │ │ └── PromptSpec.tsx │ ├── Map │ │ ├── Navigation │ │ │ └── Compass │ │ │ │ ├── CompassSpec.tsx │ │ │ │ └── GyroscopeGuidanceSpec.tsx │ │ └── Panels │ │ │ ├── HelpPanel │ │ │ ├── HelpPanelSpec.tsx │ │ │ └── VideoGuideSpec.tsx │ │ │ ├── LangPanel │ │ │ └── LangPanelSpec.tsx │ │ │ └── SharePanel │ │ │ └── BuildShareLinkSpec.ts │ ├── MeasureToolSpec.jsx │ ├── Mobile │ │ └── MobileHeaderSpec.tsx │ ├── MoreShallowTools.ts │ ├── Preview │ │ └── DescriptionSpec.tsx │ ├── ScalesSpec.jsx │ ├── Search │ │ ├── BreadcrumbsSpec.tsx │ │ ├── SearchBoxAndResultsSpec.tsx │ │ └── SearchBoxSpec.tsx │ ├── ShortReportSpec.tsx │ ├── SidePanel │ │ └── BrandingSpec.tsx │ ├── StandardUserInterface │ │ └── TrainerBar │ │ │ ├── TrainerBarSpec.tsx │ │ │ └── test-help-content.js │ ├── StandardUserInterfaceSpec.jsx │ ├── Story │ │ ├── StoryPanel │ │ │ └── StoryBodySpec.tsx │ │ └── StorySpec.jsx │ ├── TimelineSpec.jsx │ ├── ToolSpec.tsx │ ├── Tools │ │ ├── ItemSearchTool │ │ │ ├── ItemSearchToolSpec.tsx │ │ │ ├── MockSearchableItem.ts │ │ │ ├── SearchFormSpec.tsx │ │ │ └── SearchResultsSpec.tsx │ │ └── PedestrianMode │ │ │ └── MovementsControllerSpec.ts │ ├── Tour │ │ └── TourPortalSpec.tsx │ ├── WarningBoxSpec.tsx │ ├── WelcomeMessageSpec.tsx │ ├── Workbench │ │ ├── Controls │ │ │ ├── ChartItemSelectorSpec.tsx │ │ │ ├── DateTimePickerSpec.tsx │ │ │ ├── DateTimeSelectorSectionSpec.tsx │ │ │ ├── FilterSectionSpec.tsx │ │ │ ├── IdealZoomSpec.tsx │ │ │ ├── LegendSpec.tsx │ │ │ └── ViewingControlsSpec.tsx │ │ └── WorkbenchItemSpec.jsx │ ├── Workflows │ │ └── WorkflowPanelSpec.tsx │ ├── renderAndSubscribeSpec.js │ └── withContext.tsx ├── SpecHelpers.ts ├── SpecMain.ts ├── Table │ ├── CsvSpec.ts │ ├── TableColumnSpec.ts │ └── TableStyleSpec.ts ├── Traits │ ├── UrlTraitsSpec.ts │ ├── objectArrayTraitSpec.ts │ ├── objectTraitSpec.ts │ └── traitsClassToModelClassSpec.ts ├── Types │ ├── FlattenedFromTraitsSpec.ts │ ├── ModelPropertiesFromTraitsSpec.ts │ ├── StratumFromTraitsSpec.ts │ ├── TraitsForTesting.ts │ ├── TypeChecks.ts │ ├── TypeConditionalsSpec.ts │ └── TypeModifiersSpec.ts ├── Utility │ ├── CustomMatchers.js │ └── loadAndStubTextResources.js ├── ViewModels │ ├── FeatureInfoPanelSpec.ts │ ├── MapNavigation │ │ └── MapToolbarSpec.ts │ ├── TerriaViewerSpec.ts │ ├── UploadDataTypesSpec.ts │ └── ViewingControlsMenuSpec.ts └── jasmine.d.ts ├── tsconfig-node.json ├── tsconfig.json ├── wwwroot ├── SpecRunner.html ├── cesium-ion-oauth2.html ├── data │ ├── WW15MGH.DAC │ ├── regionMapping.json │ └── regionids │ │ ├── region_map-ABARES_CODE_ABARES_Ag_Regions.json │ │ ├── region_map-ABARES_NAME_ABARES_Ag_Regions.json │ │ ├── region_map-ADD_2016_AUST_ADD_CODE16.json │ │ ├── region_map-ADD_2016_AUST_ADD_NAME16.json │ │ ├── region_map-AEC_FED_2017_AMLS_FED_ABB.json │ │ ├── region_map-CED_CODE18_CED_2018.json │ │ ├── region_map-CED_NAME18_CED_2018.json │ │ ├── region_map-CommonwealthElectoralDivision_2007_ced_code_2007.json │ │ ├── region_map-CommonwealthElectoralDivision_2007_ced_name_2007.json │ │ ├── region_map-CommonwealthElectoralDivision_2010_ced_code_2010.json │ │ ├── region_map-CommonwealthElectoralDivision_2010_ced_name_2010.json │ │ ├── region_map-CommonwealthElectoralDivision_2013_ced_code_2013.json │ │ ├── region_map-CommonwealthElectoralDivision_2013_ced_name_2013.json │ │ ├── region_map-ELB_NAME_2019_ELB_2019.json │ │ ├── region_map-ELB_NAME_2021_ELB_2021.json │ │ ├── region_map-FID_ADD_2011_AUST_ADD_CODE.json │ │ ├── region_map-FID_ADD_2011_AUST_ADD_NAME.json │ │ ├── region_map-FID_AUS_2011_AUST_AUS_CODE.json │ │ ├── region_map-FID_AUS_ESA_09_ESA_CODE.json │ │ ├── region_map-FID_AUS_ESA_09_ESA_NAME.json │ │ ├── region_map-FID_CED_2011_AUST_CED_CODE.json │ │ ├── region_map-FID_CED_2011_AUST_CED_NAME.json │ │ ├── region_map-FID_CED_2013_AUST_CED_CODE13.json │ │ ├── region_map-FID_CED_2013_AUST_CED_NAME13.json │ │ ├── region_map-FID_CED_2016_AUST_CED_CODE16.json │ │ ├── region_map-FID_CED_2016_AUST_CED_NAME16.json │ │ ├── region_map-FID_COM20111216_ELB_region_ELECT_DIV.json │ │ ├── region_map-FID_COM20160509_ELB_DIV_ID.json │ │ ├── region_map-FID_COM20160509_ELB_ELECT_DIV.json │ │ ├── region_map-FID_GCCSA_2011_AUST_GCC_CODE11.json │ │ ├── region_map-FID_GCCSA_2011_AUST_GCC_NAME11.json │ │ ├── region_map-FID_IARE_2011_AUST_IA_CODE11.json │ │ ├── region_map-FID_ILOC_2011_AUST_IL_CODE11.json │ │ ├── region_map-FID_IREG_2011_AUST_IR_CODE11.json │ │ ├── region_map-FID_LGA_2011_AUST_LGA_CODE11.json │ │ ├── region_map-FID_LGA_2011_AUST_LGA_NAME11.json │ │ ├── region_map-FID_LGA_2011_AUST_STE_NAME11.json │ │ ├── region_map-FID_LGA_2013_AUST_LGA_CODE13.json │ │ ├── region_map-FID_LGA_2013_AUST_LGA_NAME13.json │ │ ├── region_map-FID_LGA_2013_AUST_STE_NAME11.json │ │ ├── region_map-FID_LGA_2013_AUST_STE_NAME13.json │ │ ├── region_map-FID_LGA_2015_AUST_LGA_CODE15.json │ │ ├── region_map-FID_LGA_2015_AUST_LGA_NAME15.json │ │ ├── region_map-FID_LGA_2015_AUST_STE_NAME15.json │ │ ├── region_map-FID_NRMR_2011_AUST_NRMR_CODE.json │ │ ├── region_map-FID_NRMR_2011_AUST_NRMR_NAME.json │ │ ├── region_map-FID_PHN_boundaries_AUS_Sep2015_V5_PHN_Code.json │ │ ├── region_map-FID_POA_2011_AUST_POA_CODE.json │ │ ├── region_map-FID_RA_2011_AUST_RA_CODE11.json │ │ ├── region_map-FID_SA1_2011_AUST_SA1_7DIG11.json │ │ ├── region_map-FID_SA1_2011_AUST_SA1_MAIN11.json │ │ ├── region_map-FID_SA2_2011_AUST_SA2_5DIG11.json │ │ ├── region_map-FID_SA2_2011_AUST_SA2_MAIN11.json │ │ ├── region_map-FID_SA2_2011_AUST_SA2_NAME11.json │ │ ├── region_map-FID_SA3_2011_AUST_SA3_CODE11.json │ │ ├── region_map-FID_SA3_2011_AUST_SA3_NAME11.json │ │ ├── region_map-FID_SA4_2011_AUST_SA4_CODE11.json │ │ ├── region_map-FID_SA4_2011_AUST_SA4_NAME11.json │ │ ├── region_map-FID_SED_2011_AUST_SED_CODE.json │ │ ├── region_map-FID_SED_2011_AUST_SED_NAME.json │ │ ├── region_map-FID_SOSR_2011_AUST_SSR_CODE11.json │ │ ├── region_map-FID_SOS_2011_AUST_SOS_CODE11.json │ │ ├── region_map-FID_SSC_2011_AUST_SSC_CODE.json │ │ ├── region_map-FID_SSC_2011_AUST_SSC_NAME.json │ │ ├── region_map-FID_STE_2011_AUST_STE_CODE11.json │ │ ├── region_map-FID_STE_2011_AUST_STE_NAME11.json │ │ ├── region_map-FID_SUA_2011_AUST_SUA_CODE11.json │ │ ├── region_map-FID_SUA_2011_AUST_SUA_NAME11.json │ │ ├── region_map-FID_TM_WORLD_BORDERS_ISO2.json │ │ ├── region_map-FID_TM_WORLD_BORDERS_ISO3.json │ │ ├── region_map-FID_TM_WORLD_BORDERS_NAME.json │ │ ├── region_map-FID_TR_2013_AUST_TR_CODE13.json │ │ ├── region_map-FID_TR_2015_AUST_TR_CODE15.json │ │ ├── region_map-FID_UCL_2011_AUST_UCL_CODE11.json │ │ ├── region_map-GCCSA_2016_AUST_GCC_CODE16.json │ │ ├── region_map-GCCSA_2016_AUST_GCC_NAME16.json │ │ ├── region_map-GCCSA_2021_GCCSA_2021.json │ │ ├── region_map-GCCSA_NAME_2021_GCCSA_2021.json │ │ ├── region_map-LGA_2016_AUST_LGA_CODE16.json │ │ ├── region_map-LGA_2017_AUST_LGA_CODE17.json │ │ ├── region_map-LGA_2017_AUST_LGA_NAME17.json │ │ ├── region_map-LGA_2018_AUST_LGA_CODE18.json │ │ ├── region_map-LGA_2018_AUST_LGA_NAME18.json │ │ ├── region_map-LGA_2019_LGA_2019.json │ │ ├── region_map-LGA_2021_LGA_2021.json │ │ ├── region_map-NZ_AU2017_HD_Clipped_AU2017.json │ │ ├── region_map-NZ_AU2017_HD_Clipped_AU2017_NAM.json │ │ ├── region_map-NZ_MB2017_HD_Clipped_MB2017.json │ │ ├── region_map-POA_2016_AUST_POA_CODE16.json │ │ ├── region_map-RRA_Name_Regional_Recovery_Areas.json │ │ ├── region_map-SA1_2016_AUST_SA1_7DIG16.json │ │ ├── region_map-SA1_2016_AUST_SA1_MAIN16.json │ │ ├── region_map-SA1_2021_SA1_2021.json │ │ ├── region_map-SA2_2016_AUST_SA2_5DIG16.json │ │ ├── region_map-SA2_2016_AUST_SA2_MAIN16.json │ │ ├── region_map-SA2_2016_AUST_SA2_NAME16.json │ │ ├── region_map-SA2_2021_SA2_2021.json │ │ ├── region_map-SA2_NAME_2021_SA2_2021.json │ │ ├── region_map-SA3_2016_AUST_SA3_CODE16.json │ │ ├── region_map-SA3_2016_AUST_SA3_NAME16.json │ │ ├── region_map-SA3_2021_SA3_2021.json │ │ ├── region_map-SA3_NAME_2021_SA3_2021.json │ │ ├── region_map-SA4_2016_AUST_SA4_CODE16.json │ │ ├── region_map-SA4_2016_AUST_SA4_NAME16.json │ │ ├── region_map-SA4_2021_SA4_2021.json │ │ ├── region_map-SA4_NAME_2021_SA4_2021.json │ │ ├── region_map-SED_CODE16_SED_2016.json │ │ ├── region_map-SED_CODE18_SED_2018.json │ │ ├── region_map-SED_NAME16_SED_2016.json │ │ ├── region_map-SED_NAME18_SED_2018.json │ │ ├── region_map-SSC_2016_AUST_SSC_CODE16.json │ │ ├── region_map-SSC_2016_AUST_SSC_NAME16.json │ │ ├── region_map-STE_2016_AUST_STE_CODE16.json │ │ ├── region_map-STE_2016_AUST_STE_NAME16.json │ │ ├── region_map-fid_asgc06_cd_CD_CODE06.json │ │ ├── region_map-fid_asgc06_sla_SLA_5DIGIT.json │ │ ├── region_map-fid_asgc06_sla_SLA_CODE06.json │ │ ├── region_map-fid_asgc06_sla_SLA_NAME06.json │ │ ├── region_map-ibra7_regions_REG_CODE_7.json │ │ ├── region_map-ibra7_regions_REG_NAME_7.json │ │ ├── region_map-ibra7_subregions_SUB_CODE_7.json │ │ └── region_map-ibra7_subregions_SUB_NAME_7.json ├── images │ ├── Australia.png │ ├── NM-LocationTarget.svg │ ├── TimelineIcons.png │ ├── ajax-loader.gif │ ├── ar-realign-guide.gif │ ├── australian-topo.png │ ├── bing-aerial-labels-wide-low-quality.jpg │ ├── bing-aerial-labels-wide.png │ ├── bing-aerial-labels.png │ ├── bing-aerial.png │ ├── bing-maps-roads.png │ ├── blank.png │ ├── compass-rotation-marker.svg │ ├── data-stories-getting-started.jpg │ ├── difference-pin.png │ ├── feature.gif │ ├── google_on_non_white_hdpi.png │ ├── guides │ │ ├── satellite-feature.jpg │ │ ├── satellite-location.jpg │ │ ├── satellite-styles.jpg │ │ ├── satellite-time.jpg │ │ └── satellite-zoom.jpg │ ├── height-controls.svg │ ├── hydro.png │ ├── icons │ │ ├── about.svg │ │ ├── accordion-close.svg │ │ ├── accordion-open.svg │ │ ├── add.svg │ │ ├── ar-hover.svg │ │ ├── ar-hover0.svg │ │ ├── ar-hover1.svg │ │ ├── ar-hover2.svg │ │ ├── ar-off.svg │ │ ├── ar-on.svg │ │ ├── ar-realign.svg │ │ ├── ar-reset-alignment.svg │ │ ├── arrow-down.svg │ │ ├── back-to-start.svg │ │ ├── backward.svg │ │ ├── bar-chart.svg │ │ ├── bulb.svg │ │ ├── calendar.svg │ │ ├── calendar2.svg │ │ ├── cancel.svg │ │ ├── checkbox-checked.svg │ │ ├── checkbox-indeterminate.svg │ │ ├── checkbox-off.svg │ │ ├── checkbox-on.svg │ │ ├── checkbox.svg │ │ ├── circle-empty.svg │ │ ├── circlef-full.svg │ │ ├── close-circle-20.svg │ │ ├── close-circle.svg │ │ ├── close-light.svg │ │ ├── close-tool.svg │ │ ├── close.svg │ │ ├── closed.svg │ │ ├── collapse.svg │ │ ├── compare-both-panels.svg │ │ ├── compare-left-panel.svg │ │ ├── compare-right-panel.svg │ │ ├── compare.svg │ │ ├── compass-inner-arrows.svg │ │ ├── compass-inner-background.svg │ │ ├── compass-inner.svg │ │ ├── compass-outer-enlarged.svg │ │ ├── compass-outer-skeleton.svg │ │ ├── compass-outer.svg │ │ ├── compass-rotation-marker.svg │ │ ├── controls.svg │ │ ├── data.svg │ │ ├── dataCatalog.svg │ │ ├── date-picker-icon.svg │ │ ├── decrease.svg │ │ ├── difference.svg │ │ ├── disable.svg │ │ ├── dismiss-20.svg │ │ ├── download-new.svg │ │ ├── download.svg │ │ ├── drag-drop.svg │ │ ├── edit-story.svg │ │ ├── editor.svg │ │ ├── enable.svg │ │ ├── expand.svg │ │ ├── expandAll.svg │ │ ├── external-link.svg │ │ ├── eye.svg │ │ ├── feedback.svg │ │ ├── file.svg │ │ ├── folder-open.svg │ │ ├── folder.svg │ │ ├── forward.svg │ │ ├── gallery.svg │ │ ├── geolocation.svg │ │ ├── getting-started-icon.svg │ │ ├── globe.svg │ │ ├── help-2.svg │ │ ├── help-thick.svg │ │ ├── help.svg │ │ ├── increase.svg │ │ ├── info.svg │ │ ├── interact.svg │ │ ├── left-small.svg │ │ ├── left.svg │ │ ├── line-chart.svg │ │ ├── link.svg │ │ ├── loader.svg │ │ ├── localfile.svg │ │ ├── location-thick.svg │ │ ├── location.svg │ │ ├── location2.svg │ │ ├── lock.svg │ │ ├── loop.svg │ │ ├── map-data-active.svg │ │ ├── map-data-inactive.svg │ │ ├── map.svg │ │ ├── maximize.svg │ │ ├── measure.svg │ │ ├── menu-dotted.svg │ │ ├── menu.svg │ │ ├── minimize.svg │ │ ├── minus.svg │ │ ├── more-items.svg │ │ ├── next.svg │ │ ├── one-two-three.svg │ │ ├── opened.svg │ │ ├── pause.svg │ │ ├── pedestrian.svg │ │ ├── play-inverted.svg │ │ ├── play-story.svg │ │ ├── play.svg │ │ ├── plus-list-20.svg │ │ ├── plus.svg │ │ ├── previous.svg │ │ ├── pulling-away-layers-icon.svg │ │ ├── questionmark.svg │ │ ├── radio-off.svg │ │ ├── radio-on.svg │ │ ├── recapture.svg │ │ ├── refresh.svg │ │ ├── remotefile.svg │ │ ├── remove.svg │ │ ├── revert.svg │ │ ├── right-small.svg │ │ ├── right.svg │ │ ├── right2.svg │ │ ├── satellite.svg │ │ ├── search.svg │ │ ├── selected.svg │ │ ├── settings.svg │ │ ├── share.svg │ │ ├── show-less.svg │ │ ├── show-more.svg │ │ ├── sphere.svg │ │ ├── splitter.svg │ │ ├── splitterOff.svg │ │ ├── splitterOn.svg │ │ ├── story.svg │ │ ├── switch-off.svg │ │ ├── switch-on.svg │ │ ├── sydney_bus_icon_smaller.png │ │ ├── take-the-tour-icon.svg │ │ ├── timeline.svg │ │ ├── trashcan.svg │ │ ├── upload-thin.svg │ │ ├── upload.svg │ │ ├── user.svg │ │ ├── video.svg │ │ ├── view-story.svg │ │ ├── zoom-in.svg │ │ ├── zoom-out.svg │ │ └── zoom-reset.svg │ ├── map-paperPin.svg │ ├── map-pin.png │ ├── map-pin.svg │ ├── minimap-nav.svg │ ├── mouse-control.svg │ ├── natural-earth.png │ ├── openstreetmap.png │ ├── panel-bg.png │ ├── preview.svg │ ├── terria-watermark.svg │ ├── time-series-guide.jpg │ ├── wasd.svg │ └── welcome-bg.jpg ├── index.html ├── languages │ ├── ar │ │ └── translation.json │ ├── ca │ │ └── translation.json │ ├── cs │ │ └── translation.json │ ├── de │ │ └── translation.json │ ├── el │ │ └── translation.json │ ├── en │ │ └── translation.json │ ├── es │ │ └── translation.json │ ├── eu │ │ └── translation.json │ ├── fr │ │ └── translation.json │ ├── id │ │ └── translation.json │ ├── it │ │ └── translation.json │ ├── ja │ │ └── translation.json │ ├── km │ │ └── translation.json │ ├── ko │ │ └── translation.json │ ├── lo │ │ └── translation.json │ ├── lzh │ │ └── translation.json │ ├── my │ │ └── translation.json │ ├── nb_NO │ │ └── translation.json │ ├── pt_BR │ │ └── translation.json │ ├── ru │ │ └── translation.json │ ├── si │ │ └── translation.json │ ├── sw │ │ └── translation.json │ ├── ta │ │ └── translation.json │ ├── th │ │ └── translation.json │ ├── tr │ │ └── translation.json │ ├── vi │ │ └── translation.json │ └── zh_Hans │ │ └── translation.json ├── models │ └── prism-train.glb ├── test │ ├── ArcGisFeatureServer │ │ ├── Parks │ │ │ ├── 3.json │ │ │ └── layer.json │ │ ├── Redlands_Emergency_Vehicles │ │ │ └── featureServer.json │ │ ├── Tiled │ │ │ ├── act-veg-map.json │ │ │ ├── feature-pick.geojson │ │ │ └── test-tile.pbf │ │ ├── Water_Network │ │ │ ├── 2.json │ │ │ └── layer.json │ │ ├── Water_Network_Multi │ │ │ ├── 2.json │ │ │ ├── layer.json │ │ │ ├── layerB.json │ │ │ └── layerC.json │ │ ├── Wildfire │ │ │ └── 1.json │ │ └── styles │ │ │ ├── layer.json │ │ │ └── lines.json │ ├── ArcGisImageServer │ │ ├── rasterFns │ │ │ ├── imageserver.json │ │ │ └── legend.json │ │ ├── tile │ │ │ ├── identify.json │ │ │ ├── imageserver.json │ │ │ └── legend.json │ │ └── time │ │ │ ├── identify.json │ │ │ ├── imageserver.json │ │ │ └── legend.json │ ├── ArcGisMapServer │ │ ├── Dynamic_National_Map_Hydrography_and_Marine │ │ │ ├── 31.json │ │ │ ├── 32.json │ │ │ ├── layers.json │ │ │ ├── legend.json │ │ │ ├── mapserver.json │ │ │ └── token.json │ │ ├── LayerWithTiles │ │ │ ├── layers.json │ │ │ ├── legend.json │ │ │ └── mapserver.json │ │ ├── Redlands_Emergency_Vehicles │ │ │ ├── 17.json │ │ │ └── mapServer.json │ │ ├── Residential_Dwelling_Density │ │ │ └── mapServer.json │ │ ├── SingleFusedMapCache │ │ │ ├── layers.json │ │ │ ├── legend.json │ │ │ └── mapserver.json │ │ └── time-enabled.json │ ├── ArcGisPortal │ │ ├── group-2dfa6cfea7774d9585700059e1fc8219-items-search.json │ │ ├── group-c86af18fa4a74336b1feee2a0ee4883d-items-search.json │ │ ├── group-search-results.json │ │ ├── item-data.json │ │ ├── item.json │ │ ├── search-result.json │ │ └── user-info.json │ ├── ArcGisServer │ │ └── sampleserver6 │ │ │ ├── 911CallsHotspotMS.json │ │ │ ├── AGP.json │ │ │ ├── CensusMS.json │ │ │ ├── CommercialDamageAssessmentFS.json │ │ │ ├── CommercialDamageAssessmentMS.json │ │ │ ├── CommunityAddressingFS.json │ │ │ ├── CommunityAddressingMS.json │ │ │ ├── Elevation.json │ │ │ └── services.json │ ├── AssImp │ │ ├── README.md │ │ ├── cube_texture.png │ │ ├── cube_with_materials.mtl │ │ ├── cube_with_materials.obj │ │ └── zip-test.zip │ ├── CKAN │ │ ├── search-result.json │ │ ├── taxation-statistics-package.json │ │ ├── taxation-statistics-wms-resource.json │ │ ├── vic-wms-layer-resource.json │ │ └── wms-no-layer-resource.json │ ├── CZML │ │ ├── Vehicle.czml │ │ ├── glowing_polyline.czml │ │ ├── simple.czml │ │ ├── timeVaryingDescription.czml │ │ ├── verysimple.czml │ │ ├── withProperties.czml │ │ └── withTimeVaryingProperties.czml │ ├── CartoMapV3 │ │ ├── query-geojson-response.json │ │ ├── query-response.json │ │ ├── table-geojson-response.json │ │ └── table-response.json │ ├── Cesium3DTiles │ │ └── tileset.json │ ├── GeoJSON │ │ ├── EsriEnvelope.geojson │ │ ├── api-list.geojson │ │ ├── api.geojson │ │ ├── bike_racks.geojson │ │ ├── bike_racks.zip │ │ ├── cemeteries.geojson │ │ ├── cemeteries.zip │ │ ├── empty-geoms.geojson │ │ ├── gme.geojson │ │ ├── gme.zip │ │ ├── height.geojson │ │ ├── multipoint.geojson │ │ ├── multipolygon.geojson │ │ ├── points.geojson │ │ ├── polygon.geojson │ │ ├── polygon.topojson │ │ ├── polyline.geojson │ │ ├── test-descriptions.geojson │ │ ├── test-styles.geojson │ │ ├── time-based-automatic-styles.geojson │ │ ├── time-based.geojson │ │ └── two_features.geojson │ ├── GeoRSS │ │ ├── atom │ │ │ ├── atom.xml │ │ │ ├── badItem.xml │ │ │ ├── box.xml │ │ │ ├── combineGeometry.xml │ │ │ ├── gmlLineString.xml │ │ │ ├── gmlPoint.xml │ │ │ ├── gmlPolygon.xml │ │ │ ├── line.xml │ │ │ ├── point.xml │ │ │ ├── polygon.xml │ │ │ └── w3cPoint.xml │ │ ├── geoRssName.xml │ │ ├── geoRssWithoutName.xml │ │ └── rss2 │ │ │ ├── badItem.xml │ │ │ ├── box.xml │ │ │ ├── combineGeometry.xml │ │ │ ├── gmlLineString.xml │ │ │ ├── gmlPoint.xml │ │ │ ├── gmlPolygon.xml │ │ │ ├── line.xml │ │ │ ├── point.xml │ │ │ ├── polygon.xml │ │ │ ├── rss2.xml │ │ │ └── w3cPoint.xml │ ├── GetCapabilities │ │ ├── BOM.xml │ │ ├── GeographicOnly.xml │ │ └── WebMercatorAndGeographic.xml │ ├── IndexedItemSearchProvider │ │ ├── 0.csv │ │ ├── 1.csv │ │ └── resultsData.csv │ ├── JSON-api │ │ ├── position_api_response.json │ │ └── value_api_response.json │ ├── KML │ │ ├── vic_police.kml │ │ └── vic_police.kmz │ ├── Magda │ │ ├── map-config-basic.json │ │ ├── map-config-dereferenced-new.json │ │ ├── map-config-dereferenced.json │ │ ├── map-config-inline-init.json │ │ ├── map-config-v7.json │ │ └── shareKeys │ │ │ ├── 12f26f07-f39e-4753-979d-2de01af54bd1.json │ │ │ ├── 6b24aa39-1aa7-48d1-b6a6-9e755aff4476.json │ │ │ ├── bfc69476-1c85-4208-9046-4f736bab9b8e.json │ │ │ ├── map-config-example-new.json │ │ │ └── map-config-example-old.json │ ├── SDMX-JSON │ │ ├── agency-scheme.json │ │ ├── category-scheme.json │ │ ├── data-noregion.csv │ │ ├── data-region-time.csv │ │ ├── data-region.csv │ │ ├── data-single-region-time.csv │ │ ├── dataflow-noregion.json │ │ ├── dataflow-region-time.json │ │ ├── dataflow-region.json │ │ └── old │ │ │ ├── data-as-obs-repeated-dim.json │ │ │ ├── data-as-observations.json │ │ │ ├── data-foo-2013.json │ │ │ ├── data-foo-BD2-2011_2013.json │ │ │ ├── data-foo-BD2-2013.json │ │ │ ├── data-foo2-2013.json │ │ │ ├── data-no-concepts-2013.json │ │ │ ├── data-nonspatial.json │ │ │ ├── data-ste-no-year.json │ │ │ ├── dataflow-foo.json │ │ │ └── regionMappingSdmx.json │ ├── Senaps │ │ ├── locations.json │ │ ├── locations_filtered.json │ │ ├── streams.json │ │ └── streams_filtered.json │ ├── Shapefile │ │ ├── bike_racks.zip │ │ └── cemeteries.zip │ ├── Socrata │ │ ├── facets.json │ │ ├── search.json │ │ └── view.json │ ├── Terria │ │ └── applyInitData │ │ │ ├── FeatureServer │ │ │ ├── esri_feature_server.json │ │ │ └── esri_feature_server_no_tiling.json │ │ │ ├── MagdaReference │ │ │ ├── group_record.json │ │ │ └── wms_record.json │ │ │ ├── MapServer │ │ │ ├── mapServerSimpleGroup.json │ │ │ └── mapServerWithError.json │ │ │ └── WmsServer │ │ │ └── capabilities.xml │ ├── WCS │ │ └── DescribeCoverage.xml │ ├── WFS │ │ ├── getCapabilities.xml │ │ └── getWithFilter.xml │ ├── WMS │ │ ├── bad_datetime.xml │ │ ├── colorscalerange.xml │ │ ├── comma_sep_datetimes.xml │ │ ├── comma_sep_datetimes_inherited.xml │ │ ├── comms_geoserver.xml │ │ ├── multiple_metadata_url.xml │ │ ├── multiple_style_legend_url.xml │ │ ├── ncwms2_service.xml │ │ ├── ncwms_service.xml │ │ ├── no_legend_url.xml │ │ ├── period_date_notime.xml │ │ ├── period_datetimes.xml │ │ ├── period_datetimes_crossing_leap_second.xml │ │ ├── period_datetimes_many_intervals.xml │ │ ├── period_datetimes_multiple_units.xml │ │ ├── single_metadata_url.xml │ │ ├── single_period_datetimes.xml │ │ ├── single_style_legend_url.xml │ │ ├── single_style_multiple_legend_urls.xml │ │ ├── styles_and_dimensions.xml │ │ ├── wms_1_1_1.xml │ │ ├── wms_crs.xml │ │ ├── wms_esri.xml │ │ ├── wms_esri_2.xml │ │ └── wms_nested_groups.xml │ ├── WMTS │ │ └── with_tilematrix.xml │ ├── WPS │ │ ├── ExecuteResponse.xml │ │ ├── FailedExecuteResponse.xml │ │ ├── GetCapabilities.xml │ │ ├── PendingExecuteResponse.xml │ │ └── ProcessDescriptions.xml │ ├── cogs │ │ ├── 32756.tif │ │ └── 4326.tif │ ├── csv │ │ ├── 100addresses.csv │ │ ├── 3000s.csv │ │ ├── 55k-SA1s.csv │ │ ├── CED_2018_CED_CODE18.csv │ │ ├── CED_2018_CED_NAME18.csv │ │ ├── ELB_2019_ELB_NAME_2019.csv │ │ ├── RDA_LGA_2015_16.csv │ │ ├── SED_2016_SED_CODE16.csv │ │ ├── SED_2016_SED_NAME16.csv │ │ ├── SED_2018_SED_CODE18.csv │ │ ├── SED_2018_SED_NAME18.csv │ │ ├── address_to_lat_long.csv │ │ ├── bad-dates.csv │ │ ├── blank_line.csv │ │ ├── dupe_lgas.csv │ │ ├── gccsa.csv │ │ ├── iare.csv │ │ ├── iloc.csv │ │ ├── ireg.csv │ │ ├── lat_lon-missing_val.csv │ │ ├── lat_lon.csv │ │ ├── lat_lon_badvalue.csv │ │ ├── lat_lon_blankvalue.csv │ │ ├── lat_lon_date_value.csv │ │ ├── lat_lon_enum.csv │ │ ├── lat_lon_enum_date_id.csv │ │ ├── lat_lon_enum_date_id2.csv │ │ ├── lat_lon_enum_date_id_update.csv │ │ ├── lat_lon_enum_date_id_with_regions.csv │ │ ├── lat_lon_enum_date_year.csv │ │ ├── lat_lon_enum_lots.csv │ │ ├── lat_lon_enum_lots2.csv │ │ ├── lat_lon_enum_moving_date_unsorted.csv │ │ ├── lat_lon_enum_postcode.csv │ │ ├── lat_lon_enum_val.csv │ │ ├── lat_lon_name_url_col.csv │ │ ├── lat_lon_name_value.csv │ │ ├── lat_lon_novals.csv │ │ ├── lat_lon_nullvalue.csv │ │ ├── lat_lon_timeseries.csv │ │ ├── lat_lon_val.csv │ │ ├── lat_lon_val_with_duplicate_row.csv │ │ ├── lat_long_enum_moving_date.csv │ │ ├── legend-decimal-places.csv │ │ ├── lga_code_2011.csv │ │ ├── lga_code_2015.csv │ │ ├── lga_elevation_date.csv │ │ ├── lga_fuzzy_val.csv │ │ ├── lga_state_disambig.csv │ │ ├── lga_value_enum.csv │ │ ├── lga_value_enum2.csv │ │ ├── mini_ced.xml │ │ ├── minimal.csv │ │ ├── missingNumberFormatting.csv │ │ ├── org_lat_lon_missing.csv │ │ ├── parking-sensor-data.csv │ │ ├── phn.csv │ │ ├── postcode_date_value.csv │ │ ├── postcode_date_value_missing_date.csv │ │ ├── postcode_enum.csv │ │ ├── postcode_enum_lots.csv │ │ ├── postcode_enum_lots2.csv │ │ ├── postcode_lga_val_enum.csv │ │ ├── postcode_novals.csv │ │ ├── postcode_val_enum.csv │ │ ├── postcode_val_enum2.csv │ │ ├── postcode_val_enum_start_end.csv │ │ ├── postcode_val_enum_time.csv │ │ ├── postcode_year_value.csv │ │ ├── postcodetest.csv │ │ ├── ra.csv │ │ ├── regionMapping.json │ │ ├── regionMappingDupeIds.json │ │ ├── sample_aremi_available_distribution_capacity.csv │ │ ├── sample_aremi_peak_day_capacity.csv │ │ ├── sos.csv │ │ ├── sosr.csv │ │ ├── sua.csv │ │ ├── sua_name.csv │ │ ├── tr.csv │ │ ├── ucl.csv │ │ ├── val_enum_postcode.csv │ │ └── youth-unemployment-rate-2018.csv │ ├── csv_nongeo │ │ ├── A_1d.csv │ │ ├── A_2d.csv │ │ ├── A_5d.csv │ │ ├── B_1d.csv │ │ ├── B_2d.csv │ │ ├── B_5d.csv │ │ ├── C_1d.csv │ │ ├── C_2d.csv │ │ ├── C_5d.csv │ │ ├── time_series.csv │ │ ├── time_series2.csv │ │ ├── x_height.csv │ │ ├── xy.csv │ │ └── xy2.csv │ ├── csw │ │ ├── Example1GetDomain.xml │ │ ├── Example1GetRecordsPage1.xml │ │ ├── Example1GetRecordsPage2.xml │ │ ├── Example1GetRecordsPage3.xml │ │ └── ReferencesWithoutProtocol.xml │ ├── gltf │ │ └── Cesium_Air.glb │ ├── gpx │ │ └── example.gpx │ ├── gtfs │ │ ├── bus.png │ │ └── vic-metro-vehicle-positions.pbf │ ├── init │ │ ├── arcgis.json │ │ ├── bom.json │ │ ├── cesium3dtiles.json │ │ ├── charts.json │ │ ├── composite.json │ │ ├── configProxy.json │ │ ├── csv.json │ │ ├── csw.json │ │ ├── czml-with-template-0.json │ │ ├── czml-with-template-1.json │ │ ├── czml-with-template.json │ │ ├── czml.json │ │ ├── geojson-with-template.json │ │ ├── gltf.json │ │ ├── ion.json │ │ ├── openEnablePopups.json │ │ ├── polling.json │ │ ├── sdmx-abs.json │ │ ├── sdmx.json │ │ ├── serverconfig.json │ │ ├── sos.json │ │ ├── terrain.json │ │ ├── terriaAnalytics.json │ │ ├── test-dateFormat.json │ │ ├── test-tablestyle.json │ │ ├── timeseries.json │ │ ├── wfs.json │ │ ├── wms-v8.json │ │ ├── wms.json │ │ └── wps.json │ ├── mvt │ │ ├── nsw-lga-mvt │ │ │ ├── 9 │ │ │ │ └── 470 │ │ │ │ │ └── 307.pbf │ │ │ ├── 10 │ │ │ │ ├── 941 │ │ │ │ │ ├── 614.pbf │ │ │ │ │ └── 615.pbf │ │ │ │ └── 942 │ │ │ │ │ ├── 614.pbf │ │ │ │ │ └── 615.pbf │ │ │ └── 11 │ │ │ │ └── 1883 │ │ │ │ └── 1230.pbf │ │ └── single-layer-mvt │ │ │ ├── 0 │ │ │ └── 0 │ │ │ │ └── 0.pbf │ │ │ ├── 1 │ │ │ └── 1 │ │ │ │ └── 1.pbf │ │ │ ├── 2 │ │ │ └── 3 │ │ │ │ └── 2.pbf │ │ │ ├── 3 │ │ │ ├── 6 │ │ │ │ └── 4.pbf │ │ │ └── 7 │ │ │ │ ├── 4.pbf │ │ │ │ └── 5.pbf │ │ │ ├── 4 │ │ │ ├── 12 │ │ │ │ └── 9.pbf │ │ │ ├── 13 │ │ │ │ ├── 8.pbf │ │ │ │ └── 9.pbf │ │ │ └── 14 │ │ │ │ ├── 10.pbf │ │ │ │ ├── 8.pbf │ │ │ │ └── 9.pbf │ │ │ └── metadata.json │ ├── ods │ │ ├── datasets-over-100-1.json │ │ ├── datasets-over-100-2.json │ │ ├── datasets.json │ │ ├── facets.json │ │ ├── weather-station-100.json │ │ ├── weather-station-dataset.json │ │ └── weather-station-groupby.json │ ├── regionMapping │ │ ├── additionalRegion.json │ │ └── region_map-SOME_OTHER_REGION.json │ ├── sos │ │ ├── GetFeatureOfInterestRequest.xml │ │ ├── GetFeatureOfInterestResponse.xml │ │ ├── GetFeatureOfInterestResponse_Invalid.xml │ │ ├── GetFeatureOfInterestResponse_NoMembers.xml │ │ ├── GetObservationResponse_Daily.xml │ │ └── GetObservationResponse_Yearly.xml │ ├── stories │ │ └── TerriaJS App │ │ │ └── my-story │ └── thredds │ │ ├── catalog.xml │ │ ├── sub-catalog-a │ │ └── catalog.xml │ │ └── sub-catalog-b │ │ ├── c_from_b.xml │ │ └── catalog.xml └── third_party │ ├── SpecRunner.html │ └── jasmine-2.99.0 │ ├── MIT.LICENSE │ ├── boot.js │ ├── console.js │ ├── jasmine-html.js │ ├── jasmine.css │ ├── jasmine.js │ └── jasmine_favicon.png └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | [ 4 | "@babel/preset-env", 5 | { 6 | "corejs": 3, 7 | "useBuiltIns": "usage" 8 | } 9 | ], 10 | ["@babel/preset-react", { "runtime": "automatic" }], 11 | ["@babel/preset-typescript", { "allowNamespaces": true }] 12 | ], 13 | "plugins": [ 14 | ["@babel/plugin-proposal-decorators", { "legacy": true }], 15 | "babel-plugin-styled-components" 16 | ], 17 | "assumptions": { 18 | "setPublicClassFields": false 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true 10 | 11 | [*.md] 12 | trim_trailing_whitespace = false 13 | 14 | [doc/**.md] 15 | # mkdocs requires 4 spaces. With 2 space indents, nested lists do not work 16 | indent_size = 4 17 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | CHANGES.md merge=union 2 | *.enc binary 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Update .prettierignore whenever this file changes 2 | docs/ 3 | node_modules/ 4 | .idea/ 5 | build/ 6 | error.log 7 | output.log 8 | npm-debug.log 9 | .DS_Store 10 | terria.lib.js 11 | terriajs-server.log 12 | terriajs.pid 13 | /wwwroot/doc/ 14 | /wwwroot/schema/ 15 | /wwwroot/user-guide/ 16 | /coverage/ 17 | package-lock.json 18 | *.swp 19 | dist 20 | .history/ 21 | ts-out/ 22 | 23 | # Catalog index generation files 24 | catalog-index*.json 25 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/.gitmodules -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | npx pretty-quick --staged 5 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | .history/ 2 | Cesium/Tools/ 3 | Cesium/ThirdParty/ 4 | Cesium/Apps/ 5 | Cesium/Documentation/ 6 | Cesium/launches/ 7 | Cesium/Specs/ 8 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v20.18.3 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "none", 3 | "tabWidth": 2 4 | } 5 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["inlang.vs-code-extension"] 3 | } 4 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "typescript.tsdk": "node_modules/typescript/lib" 3 | } 4 | -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | // See https://go.microsoft.com/fwlink/?LinkId=733558 3 | // for the documentation about the tasks.json format 4 | "version": "2.0.0", 5 | "tasks": [ 6 | { 7 | "type": "npm", 8 | "script": "build-for-node", 9 | "problemMatcher": ["$tsc"], 10 | "group": "build" 11 | } 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /architecture/0000-record-architecture-decisions.md: -------------------------------------------------------------------------------- 1 | # 0. Record architecture decisions 2 | 3 | Date: 2019-07-18 4 | 5 | ## Status 6 | 7 | Accepted 8 | 9 | ## Context 10 | 11 | We need to record the architectural decisions made on this project. 12 | 13 | ## Decision 14 | 15 | We will use Architecture Decision Records, as [described by Michael Nygard](http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions). 16 | 17 | ## Consequences 18 | 19 | We will have to write docs. 😱 20 | 21 | See Michael Nygard's article, linked above. For a lightweight ADR toolset, see Nat Pryce's [adr-tools](https://github.com/npryce/adr-tools). 22 | -------------------------------------------------------------------------------- /architecture/imgs/weblate_process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/architecture/imgs/weblate_process.png -------------------------------------------------------------------------------- /buildprocess/.eslintrc.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | module.exports = { 4 | env: { 5 | browser: false, 6 | node: true 7 | }, 8 | rules: { 9 | "no-sync": 0 10 | } 11 | }; 12 | -------------------------------------------------------------------------------- /buildprocess/ci-google-cloud-key.json.enc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/buildprocess/ci-google-cloud-key.json.enc -------------------------------------------------------------------------------- /buildprocess/jsdoc.json: -------------------------------------------------------------------------------- 1 | { 2 | "tags": { 3 | "allowUnknownTags": true, 4 | "dictionaries": ["jsdoc", "closure"] 5 | }, 6 | "source": { 7 | "includePattern": ".+\\.((js(doc)?))$", 8 | "excludePattern": "((^|\\/|\\\\)_)|(^ThirdParty/)" 9 | }, 10 | "plugins": ["plugins/markdown"], 11 | "opts": { 12 | "recurse": true, 13 | "encoding": "utf8", 14 | "destination": "./wwwroot/doc/reference/" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /buildprocess/karma-firefox.conf.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var createKarmaBaseConfig = require("./createKarmaBaseConfig"); 4 | 5 | module.exports = function (config) { 6 | var options = Object.assign({}, createKarmaBaseConfig(config), { 7 | browsers: ["Firefox"] 8 | }); 9 | 10 | config.set(options); 11 | }; 12 | -------------------------------------------------------------------------------- /buildprocess/karma-local.conf.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var createKarmaBaseConfig = require("./createKarmaBaseConfig"); 4 | 5 | module.exports = function (config) { 6 | var options = Object.assign({}, createKarmaBaseConfig(config), { 7 | detectBrowsers: { 8 | enabled: true, 9 | usePhantomJS: false 10 | } 11 | }); 12 | 13 | options.frameworks.push("detectBrowsers"); 14 | options.reporters.push("coverage-istanbul"); 15 | options.coverageIstanbulReporter = { 16 | reports: ["html", "text-summary", "lcovonly"] 17 | }; 18 | config.set(options); 19 | }; 20 | -------------------------------------------------------------------------------- /buildprocess/removeCesiumDebugPragmas.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | var regexp = 4 | /\/\/>>includeStart\('debug', pragmas\.debug\);?[^]*?\/\/>>includeEnd\('debug'\);?/g; 5 | 6 | module.exports = function (source) { 7 | if (this && this.cacheable) { 8 | this.cacheable(); 9 | } 10 | return source.replace(regexp, ""); 11 | }; 12 | -------------------------------------------------------------------------------- /buildprocess/runExternalModule.js: -------------------------------------------------------------------------------- 1 | var spawnSync = require("child_process").spawnSync; 2 | var PluginError = require("plugin-error"); 3 | 4 | function runExternalModule(module, args) { 5 | var modulePath = require.resolve(module); 6 | 7 | var result = spawnSync("node", [modulePath].concat(args), { 8 | stdio: "inherit", 9 | shell: false 10 | }); 11 | if (result.status !== 0) { 12 | throw new PluginError(module, "External module exited with an error.", { 13 | showStack: false 14 | }); 15 | } 16 | } 17 | 18 | module.exports = runExternalModule; 19 | -------------------------------------------------------------------------------- /buildprocess/webpack.config.dev.js: -------------------------------------------------------------------------------- 1 | module.exports = require("./webpack.config.make")(true); 2 | -------------------------------------------------------------------------------- /doc/CNAME: -------------------------------------------------------------------------------- 1 | docs.terria.io -------------------------------------------------------------------------------- /doc/connecting-to-data/catalog-functions.md: -------------------------------------------------------------------------------- 1 | # Catalog Functions 2 | 3 | This file is automatically generated 4 | 5 | See https://docs.terria.io/guide/connecting-to-data/catalog-functions/ 6 | -------------------------------------------------------------------------------- /doc/connecting-to-data/catalog-groups.md: -------------------------------------------------------------------------------- 1 | # Catalog Groups 2 | 3 | This file is automatically generated 4 | 5 | See https://docs.terria.io/guide/connecting-to-data/catalog-groups/ 6 | -------------------------------------------------------------------------------- /doc/connecting-to-data/catalog-items.md: -------------------------------------------------------------------------------- 1 | # Catalog Items 2 | 3 | This file is automatically generated 4 | 5 | See https://docs.terria.io/guide/connecting-to-data/catalog-items/ 6 | -------------------------------------------------------------------------------- /doc/connecting-to-data/catalog-references.md: -------------------------------------------------------------------------------- 1 | # Catalog References 2 | 3 | This file is automatically generated 4 | 5 | See https://docs.terria.io/guide/connecting-to-data/catalog-references/ 6 | -------------------------------------------------------------------------------- /doc/connecting-to-data/catalog-type-details/.placeholder: -------------------------------------------------------------------------------- 1 | This directory is used for auto-generated documentation - see buildprocess/generateDocs.ts 2 | -------------------------------------------------------------------------------- /doc/connecting-to-data/customizing-data-appearance/img/default-data-view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/doc/connecting-to-data/customizing-data-appearance/img/default-data-view.png -------------------------------------------------------------------------------- /doc/connecting-to-data/customizing-data-appearance/img/edit-style.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/doc/connecting-to-data/customizing-data-appearance/img/edit-style.png -------------------------------------------------------------------------------- /doc/connecting-to-data/customizing-data-appearance/img/feature_info_with_time_series.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/doc/connecting-to-data/customizing-data-appearance/img/feature_info_with_time_series.png -------------------------------------------------------------------------------- /doc/connecting-to-data/customizing-data-appearance/img/model-dim.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/doc/connecting-to-data/customizing-data-appearance/img/model-dim.jpeg -------------------------------------------------------------------------------- /doc/connecting-to-data/customizing-data-appearance/img/no_template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/doc/connecting-to-data/customizing-data-appearance/img/no_template.png -------------------------------------------------------------------------------- /doc/connecting-to-data/customizing-data-appearance/img/styling-side-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/doc/connecting-to-data/customizing-data-appearance/img/styling-side-panel.png -------------------------------------------------------------------------------- /doc/connecting-to-data/customizing-data-appearance/img/template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/doc/connecting-to-data/customizing-data-appearance/img/template.png -------------------------------------------------------------------------------- /doc/connecting-to-data/open-item-search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/doc/connecting-to-data/open-item-search.png -------------------------------------------------------------------------------- /doc/contributing/img/making_a_trait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/doc/contributing/img/making_a_trait.png -------------------------------------------------------------------------------- /doc/contributing/img/no-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/doc/contributing/img/no-map.png -------------------------------------------------------------------------------- /doc/contributing/img/runtime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/doc/contributing/img/runtime.png -------------------------------------------------------------------------------- /doc/contributing/img/stratum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/doc/contributing/img/stratum.png -------------------------------------------------------------------------------- /doc/customizing/server-side-config.md: -------------------------------------------------------------------------------- 1 | Coming soon! 2 | 3 | In the meantime, see [https://github.com/TerriaJS/terriajs-server](https://github.com/TerriaJS/terriajs-server). 4 | -------------------------------------------------------------------------------- /doc/index-redirect.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | User Guide 7 | 8 | 9 | -------------------------------------------------------------------------------- /doc/terria.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/doc/terria.png -------------------------------------------------------------------------------- /lib/Charts/ChartData.ts: -------------------------------------------------------------------------------- 1 | export interface ChartPoint { 2 | readonly x: number | Date; 3 | readonly y: number; 4 | } 5 | -------------------------------------------------------------------------------- /lib/Charts/getChartColorForId.ts: -------------------------------------------------------------------------------- 1 | import createColorForIdTransformer from "../Core/createColorForIdTransformer"; 2 | 3 | export default createColorForIdTransformer(); 4 | -------------------------------------------------------------------------------- /lib/Core/AbstractConstructor.ts: -------------------------------------------------------------------------------- 1 | type AbstractConstructor = abstract new (...args: any[]) => T; 2 | export default AbstractConstructor; 3 | -------------------------------------------------------------------------------- /lib/Core/Class.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * A class whose instances are of type T. The class may be abstract. 3 | */ 4 | export default interface Class { 5 | prototype: T; 6 | } 7 | -------------------------------------------------------------------------------- /lib/Core/Constructor.ts: -------------------------------------------------------------------------------- 1 | type Constructor = new (...args: any[]) => T; 2 | export default Constructor; 3 | -------------------------------------------------------------------------------- /lib/Core/LatLonHeight.ts: -------------------------------------------------------------------------------- 1 | export default interface LatLonHeight { 2 | latitude: number; 3 | longitude: number; 4 | height?: number; 5 | } 6 | 7 | export function isLatLonHeight(obj: any): obj is LatLonHeight { 8 | if (obj) { 9 | return ( 10 | Number.isFinite(obj.latitude) && 11 | Number.isFinite(obj.longitude) && 12 | (Number.isFinite(obj.height) || obj.height === undefined) 13 | ); 14 | } else return false; 15 | } 16 | -------------------------------------------------------------------------------- /lib/Core/ServerConfig.d.ts: -------------------------------------------------------------------------------- 1 | declare class ServerConfig { 2 | config: unknown; 3 | init(serverConfigUrl: string): Promise; 4 | } 5 | 6 | export default ServerConfig; 7 | -------------------------------------------------------------------------------- /lib/Core/ensureSuffix.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Ensures that the given `str` ends with the given `char`. 3 | * 4 | */ 5 | export default function ensureSuffix(str: string, char: string): string { 6 | return str.endsWith(char) ? str : `${str}${char}`; 7 | } 8 | -------------------------------------------------------------------------------- /lib/Core/filterOutUndefined.ts: -------------------------------------------------------------------------------- 1 | import { NotUndefined } from "./TypeModifiers"; 2 | 3 | export default function filterOutUndefined(array: Array) { 4 | return array.filter((x) => x !== undefined) as Array>; 5 | } 6 | -------------------------------------------------------------------------------- /lib/Core/flatten.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Flattens an array of arrays, into an array, eg. [[0, 1], [2, 3], [4, 5]] => [0, 1, 2, 3, 4, 5]. 3 | * Based on the example at 4 | * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce 5 | 6 | */ 7 | export default function flatten(arrayOfArrays: T[][]): T[] { 8 | return arrayOfArrays.reduce(function (a, b) { 9 | return a.concat(b); 10 | }, []); 11 | } 12 | -------------------------------------------------------------------------------- /lib/Core/getDereferencedIfExists.ts: -------------------------------------------------------------------------------- 1 | import { BaseModel } from "../Models/Definition/Model"; 2 | import GroupMixin from "../ModelMixins/GroupMixin"; 3 | import ReferenceMixin from "../ModelMixins/ReferenceMixin"; 4 | 5 | export default function getDereferencedIfExists( 6 | item: BaseModel | GroupMixin.Instance 7 | ): BaseModel | GroupMixin.Instance { 8 | if (ReferenceMixin.isMixedInto(item) && item.target) { 9 | return item.target; 10 | } 11 | return item; 12 | } 13 | -------------------------------------------------------------------------------- /lib/Core/hashFromString.ts: -------------------------------------------------------------------------------- 1 | /** Returns a 32-bit integer hash of a string. '' => 0. */ 2 | 3 | export default function hashFromString(s: string) { 4 | return Math.abs( 5 | s.split("").reduce(function (prev, c) { 6 | const hash = (prev << 5) - prev + c.charCodeAt(0); 7 | return hash; 8 | }, 0) 9 | ); 10 | } 11 | -------------------------------------------------------------------------------- /lib/Core/isDefined.ts: -------------------------------------------------------------------------------- 1 | export default function isDefined(value: T | undefined | null): value is T { 2 | return value !== undefined && value !== null; 3 | } 4 | -------------------------------------------------------------------------------- /lib/Core/isReadOnlyArray.ts: -------------------------------------------------------------------------------- 1 | export default function isReadOnlyArray( 2 | value?: T | ReadonlyArray 3 | ): value is ReadonlyArray { 4 | return Array.isArray(value); 5 | } 6 | -------------------------------------------------------------------------------- /lib/Core/loadArrayBuffer.ts: -------------------------------------------------------------------------------- 1 | import Resource from "terriajs-cesium/Source/Core/Resource"; 2 | 3 | export default function loadArrayBuffer( 4 | urlOrResource: string, 5 | headers?: any 6 | ): Promise { 7 | return Resource.fetchArrayBuffer({ url: urlOrResource, headers: headers })!; 8 | } 9 | -------------------------------------------------------------------------------- /lib/Core/loadText.ts: -------------------------------------------------------------------------------- 1 | import Resource from "terriajs-cesium/Source/Core/Resource"; 2 | 3 | async function loadText(urlOrResource: string | Resource): Promise { 4 | const resource = (Resource as any).createIfNeeded(urlOrResource) as Resource; 5 | const response = resource.fetchText(); 6 | if (response === undefined) { 7 | throw new Error("Request throttled"); 8 | } 9 | return response; 10 | } 11 | 12 | export default loadText; 13 | -------------------------------------------------------------------------------- /lib/Core/loadWithXhr.d.ts: -------------------------------------------------------------------------------- 1 | import Resource from "terriajs-cesium/Source/Core/Resource"; 2 | 3 | interface Options extends Resource.ConstructorOptions { 4 | responseType?: string; 5 | headers?: any; 6 | overrideMimeType?: string; 7 | method?: "GET" | "POST" | "PUT"; 8 | data?: any; 9 | } 10 | 11 | declare function loadWithXhr(options: Options): Promise; 12 | 13 | export default loadWithXhr; 14 | -------------------------------------------------------------------------------- /lib/Core/math.ts: -------------------------------------------------------------------------------- 1 | export function getMax(nums: number[]) { 2 | let len = nums.length; 3 | if (len === 0) return undefined; 4 | 5 | let max = -Infinity; 6 | 7 | while (len--) { 8 | max = nums[len] > max ? nums[len] : max; 9 | } 10 | return max; 11 | } 12 | 13 | export function getMin(nums: number[]) { 14 | let len = nums.length; 15 | if (len === 0) return undefined; 16 | 17 | let min = Infinity; 18 | 19 | while (len--) { 20 | min = nums[len] < min ? nums[len] : min; 21 | } 22 | return min; 23 | } 24 | -------------------------------------------------------------------------------- /lib/Core/prerequisites.js: -------------------------------------------------------------------------------- 1 | // Use this file to install polyfills and configure packages. 2 | 3 | import { configure } from "mobx"; 4 | 5 | configure({ 6 | computedRequiresReaction: true, 7 | enforceActions: "observed" 8 | }); 9 | -------------------------------------------------------------------------------- /lib/Core/regexMatches.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Returns array of capture groups for each match 3 | */ 4 | 5 | export function regexMatches(regex: RegExp, str: string) { 6 | const m: string[][] = []; 7 | let matches: RegExpExecArray | null; 8 | 9 | while ((matches = regex.exec(str))) { 10 | matches.splice(0, 1); 11 | m.push(matches.map(decodeURIComponent)); 12 | } 13 | return m; 14 | } 15 | -------------------------------------------------------------------------------- /lib/Core/replaceUnderscores.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Replace all underscores in the string with spaces. If the argument is not a string, return it unchanged. 3 | * @param string The string to replace. If the argument is not a string, does nothing. 4 | * @return The argument with all underscores replaced with spaces. If the argument is not a string, returns the argument unchanged. 5 | */ 6 | function replaceUnderscores(str: any): typeof str { 7 | return typeof str === "string" || str instanceof String 8 | ? str.replace(/_/g, " ") 9 | : str; 10 | } 11 | 12 | export default replaceUnderscores; 13 | -------------------------------------------------------------------------------- /lib/Core/runLater.ts: -------------------------------------------------------------------------------- 1 | import defaultValue from "terriajs-cesium/Source/Core/defaultValue"; 2 | 3 | export default function runLater( 4 | functionToRunLater: () => T, 5 | milliseconds?: number 6 | ) { 7 | milliseconds = defaultValue(milliseconds, 0); 8 | 9 | return new Promise((resolve, reject) => { 10 | setTimeout(() => { 11 | try { 12 | resolve(functionToRunLater()); 13 | } catch (e) { 14 | reject(e); 15 | } 16 | }, milliseconds); 17 | }); 18 | } 19 | -------------------------------------------------------------------------------- /lib/Core/setsAreEqual.ts: -------------------------------------------------------------------------------- 1 | export function setsAreEqual(left: Set | T[], right: Set | T[]) { 2 | if (Array.isArray(left)) left = new Set(left); 3 | 4 | if (Array.isArray(right)) right = new Set(right); 5 | 6 | if (left === right) { 7 | return true; 8 | } 9 | 10 | if (left.size !== right.size) { 11 | return false; 12 | } 13 | 14 | const union = new Set([...left, ...right]); 15 | 16 | return union.size === left.size && union.size === right.size; 17 | } 18 | -------------------------------------------------------------------------------- /lib/Core/timeout.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Returns a promise that resolves in milliseconds. 3 | */ 4 | export default function timeout(milliseconds: number): Promise { 5 | return new Promise((resolve) => window.setTimeout(resolve, milliseconds)); 6 | } 7 | -------------------------------------------------------------------------------- /lib/Core/triggerResize.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Trigger a window resize event. 3 | */ 4 | export default function triggerResize() { 5 | try { 6 | window.dispatchEvent(new Event("resize")); 7 | } catch (_e) { 8 | const evt = window.document.createEvent("UIEvents"); 9 | evt.initUIEvent("resize", true, false, window, 0); 10 | window.dispatchEvent(evt); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /lib/Core/types.ts: -------------------------------------------------------------------------------- 1 | export type constVoid = () => void; 2 | -------------------------------------------------------------------------------- /lib/Core/uriHelpers.ts: -------------------------------------------------------------------------------- 1 | import type URI from "urijs"; 2 | 3 | export const getUriWithoutPath = (anyUri: URI) => { 4 | if (!anyUri) { 5 | return undefined; 6 | } 7 | const port = anyUri.port(); 8 | const portToConcat = port ? `:${port}` : ""; 9 | const uriWithoutPath = `${anyUri.protocol()}://${anyUri.hostname()}${portToConcat}/`; 10 | return uriWithoutPath; 11 | }; 12 | -------------------------------------------------------------------------------- /lib/Map/ColorMap/ColorMap.ts: -------------------------------------------------------------------------------- 1 | import Color from "terriajs-cesium/Source/Core/Color"; 2 | import JsonValue from "../../Core/Json"; 3 | 4 | export default abstract class ColorMap { 5 | abstract mapValueToColor(value: JsonValue | undefined): Readonly; 6 | } 7 | -------------------------------------------------------------------------------- /lib/Map/DragPoints/DragPoints.d.ts: -------------------------------------------------------------------------------- 1 | import CustomDataSource from "terriajs-cesium/Source/DataSources/CustomDataSource"; 2 | import Terria from "../../Models/Terria"; 3 | 4 | declare class DragPoints { 5 | constructor( 6 | terria: Terria, 7 | pointMovedCallback: (draggableObjects: CustomDataSource) => void 8 | ); 9 | 10 | setUp(): void; 11 | updateDraggableObjects(draggableObjects: CustomDataSource): void; 12 | getDragCount(): number; 13 | resetDragCount(): void; 14 | destroy(): void; 15 | } 16 | 17 | export default DragPoints; 18 | -------------------------------------------------------------------------------- /lib/Map/Icons/Maki/README.md: -------------------------------------------------------------------------------- 1 | # Maki Icons 2 | 3 | https://labs.mapbox.com/maki-icons/ 4 | 5 | ## How to generate 6 | 7 | https://labs.mapbox.com/maki-icons/editor/ 8 | 9 | We only use the [`iconset-all_maki_icons.json`](./iconset-all_maki_icons.json) file, not the individual SVGs 10 | -------------------------------------------------------------------------------- /lib/Map/Leaflet/LeafletScene.ts: -------------------------------------------------------------------------------- 1 | import CesiumEvent from "terriajs-cesium/Source/Core/Event"; 2 | import L from "leaflet"; 3 | 4 | export default class LeafletScene { 5 | readonly map: L.Map; 6 | readonly featureClicked = new CesiumEvent(); 7 | readonly featureMousedown = new CesiumEvent(); 8 | constructor(map: L.Map) { 9 | this.map = map; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /lib/Map/SizeMap/ConstantPointSizeMap.ts: -------------------------------------------------------------------------------- 1 | import PointSizeMap from "./PointSizeMap"; 2 | 3 | export default class ConstantPointSizeMap extends PointSizeMap { 4 | constructor(readonly pointSize: number) { 5 | super(); 6 | } 7 | 8 | mapValueToPointSize(_value: string | number | null | undefined): number { 9 | return this.pointSize; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /lib/Map/SizeMap/PointSizeMap.ts: -------------------------------------------------------------------------------- 1 | export default abstract class PointSizeMap { 2 | abstract mapValueToPointSize( 3 | value: string | number | null | undefined 4 | ): number; 5 | } 6 | -------------------------------------------------------------------------------- /lib/Map/Vector/EarthGravityModel1996.d.ts: -------------------------------------------------------------------------------- 1 | declare class EarthGravityModel1996 { 2 | readonly minimumHeight: number; 3 | readonly maximumHeight: number; 4 | 5 | constructor(gridFileUrl: string); 6 | 7 | getHeight(longitude: number, latitude: number): Promise; 8 | } 9 | 10 | export default EarthGravityModel1996; 11 | -------------------------------------------------------------------------------- /lib/Models/Catalog/CatalogGroup.ts: -------------------------------------------------------------------------------- 1 | import CatalogMemberMixin from "../../ModelMixins/CatalogMemberMixin"; 2 | import GroupMixin from "../../ModelMixins/GroupMixin"; 3 | import CatalogGroupTraits from "../../Traits/TraitsClasses/CatalogGroupTraits"; 4 | import CreateModel from "../Definition/CreateModel"; 5 | 6 | export default class CatalogGroup extends GroupMixin( 7 | CatalogMemberMixin(CreateModel(CatalogGroupTraits)) 8 | ) { 9 | static readonly type = "group"; 10 | 11 | get type() { 12 | return CatalogGroup.type; 13 | } 14 | 15 | protected forceLoadMembers(): Promise { 16 | return Promise.resolve(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /lib/Models/Catalog/CatalogMemberFactory.ts: -------------------------------------------------------------------------------- 1 | import ModelFactory from "../Definition/ModelFactory"; 2 | 3 | const CatalogMemberFactory = new ModelFactory(); 4 | export default CatalogMemberFactory; 5 | -------------------------------------------------------------------------------- /lib/Models/Catalog/removeUserAddedData.ts: -------------------------------------------------------------------------------- 1 | import { BaseModel } from "../Definition/Model"; 2 | import Terria from "../Terria"; 3 | import CommonStrata from "../Definition/CommonStrata"; 4 | 5 | /** 6 | * Remove a user added data item or group 7 | */ 8 | export default function (terria: Terria, target: BaseModel) { 9 | terria.catalog.userAddedDataGroup.remove(CommonStrata.user, target); 10 | } 11 | -------------------------------------------------------------------------------- /lib/Models/Definition/CommonStrata.ts: -------------------------------------------------------------------------------- 1 | enum CommonStrata { 2 | defaults = "defaults", 3 | underride = "underride", 4 | definition = "definition", 5 | override = "override", 6 | user = "user" 7 | } 8 | 9 | export default CommonStrata; 10 | -------------------------------------------------------------------------------- /lib/Models/ErrorServiceProviders/ErrorService.ts: -------------------------------------------------------------------------------- 1 | import TerriaError from "../../Core/TerriaError"; 2 | import { ConfigParameters } from "../Terria"; 3 | export interface ErrorServiceOptions { 4 | provider?: string; 5 | configuration: any; 6 | } 7 | 8 | /** 9 | * The interface that all valid error service providers must implement. 10 | */ 11 | export interface ErrorServiceProvider { 12 | init: (config: ConfigParameters) => void; 13 | error: (error: string | Error | TerriaError) => void; 14 | } 15 | -------------------------------------------------------------------------------- /lib/Models/ErrorServiceProviders/StubErrorServiceProvider.ts: -------------------------------------------------------------------------------- 1 | import TerriaError from "../../Core/TerriaError"; 2 | import { ErrorServiceProvider } from "./ErrorService"; 3 | 4 | /** 5 | * A stub error service provider that does nothing. 6 | */ 7 | export default class StubErrorServiceProvider implements ErrorServiceProvider { 8 | init() {} 9 | error(_error: string | Error | TerriaError) {} 10 | } 11 | -------------------------------------------------------------------------------- /lib/Models/Feature/FeatureInfoContext.ts: -------------------------------------------------------------------------------- 1 | import { JsonObject } from "../../Core/Json"; 2 | import TerriaFeature from "./Feature"; 3 | 4 | /** This model can be used to inject properties into FeatureInfoSections context. These properties will be accessible from featureInfoTemplate mustache template. 5 | */ 6 | interface FeatureInfoContext { 7 | featureInfoContext: (f: TerriaFeature) => JsonObject | undefined; 8 | } 9 | 10 | namespace FeatureInfoContext { 11 | export function is(model: any): model is FeatureInfoContext { 12 | return "featureInfoContext" in model; 13 | } 14 | } 15 | 16 | export default FeatureInfoContext; 17 | -------------------------------------------------------------------------------- /lib/Models/FunctionParameters/RegionTypeParameter.ts: -------------------------------------------------------------------------------- 1 | import FunctionParameter from "./FunctionParameter"; 2 | 3 | export default class RegionTypeParameter extends FunctionParameter { 4 | static readonly type = "regionType"; 5 | readonly type = "regionType"; 6 | } 7 | -------------------------------------------------------------------------------- /lib/Models/FunctionParameters/StringParameter.ts: -------------------------------------------------------------------------------- 1 | import FunctionParameter from "./FunctionParameter"; 2 | 3 | export default class StringParameter extends FunctionParameter { 4 | static readonly type = "string"; 5 | readonly type = "string"; 6 | } 7 | -------------------------------------------------------------------------------- /lib/Models/HasLocalData.ts: -------------------------------------------------------------------------------- 1 | interface HasLocalData { 2 | hasLocalData: boolean; 3 | setFileInput(file: File): void; 4 | } 5 | 6 | namespace HasLocalData { 7 | export function is(model: any): model is HasLocalData { 8 | return "hasLocalData" in model; 9 | } 10 | } 11 | 12 | export default HasLocalData; 13 | -------------------------------------------------------------------------------- /lib/Models/IElementConfig.ts: -------------------------------------------------------------------------------- 1 | export default interface IElementConfig { 2 | visible?: boolean; 3 | } 4 | -------------------------------------------------------------------------------- /lib/Models/ItemSearchProviders/ItemSearchProviders.ts: -------------------------------------------------------------------------------- 1 | import Constructor from "../../Core/Constructor"; 2 | import ItemSearchProvider from "./ItemSearchProvider"; 3 | import IndexedItemSearchProvider from "./IndexedItemSearchProvider"; 4 | 5 | export const ItemSearchProviders: Map< 6 | string, 7 | Constructor 8 | > = new Map([["indexed", IndexedItemSearchProvider]]); 9 | 10 | export function registerItemSearchProvider( 11 | type: string, 12 | providerClass: Constructor 13 | ) { 14 | ItemSearchProviders.set(type, providerClass); 15 | } 16 | -------------------------------------------------------------------------------- /lib/Models/ItemSearchProviders/Types.ts: -------------------------------------------------------------------------------- 1 | export type IndexBase = { 2 | type: IndexType; 3 | load(indexRootUrl: string, valueHint: QueryType): Promise; 4 | search(query: QueryType, queryOptions?: any): Promise>; 5 | }; 6 | 7 | export enum IndexType { 8 | numeric = "numeric", 9 | enum = "enum", 10 | text = "text" 11 | } 12 | 13 | export const indexTypes = Object.keys(IndexType); 14 | -------------------------------------------------------------------------------- /lib/Models/ItemSearchProviders/joinUrl.ts: -------------------------------------------------------------------------------- 1 | import URI from "urijs"; 2 | 3 | export default function joinUrl(rootUrl: string, url: string) { 4 | const uri = URI(url); 5 | return uri.is("absolute") ? url : uri.absoluteTo(rootUrl).toString(); 6 | } 7 | -------------------------------------------------------------------------------- /lib/Models/SearchProviders/SearchModelFactory.ts: -------------------------------------------------------------------------------- 1 | import LocationSearchProviderMixin from "../../ModelMixins/SearchProviders/LocationSearchProviderMixin"; 2 | import { ModelConstructor } from "../Definition/Model"; 3 | import ModelFactory from "../Definition/ModelFactory"; 4 | 5 | export class SearchModelFactory extends ModelFactory { 6 | register( 7 | type: string, 8 | constructor: ModelConstructor 9 | ) { 10 | super.register(type, constructor); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /lib/Models/SearchProviders/SearchProviderFactory.ts: -------------------------------------------------------------------------------- 1 | import { SearchModelFactory } from "./SearchModelFactory"; 2 | 3 | const SearchProviderFactory = new SearchModelFactory(); 4 | export default SearchProviderFactory; 5 | -------------------------------------------------------------------------------- /lib/Models/StoryVideoSettings.ts: -------------------------------------------------------------------------------- 1 | export interface StoryVideoSettings { 2 | videoUrl: string; 3 | } 4 | -------------------------------------------------------------------------------- /lib/ReactViews/Analytics/InfoParameterEditor.tsx: -------------------------------------------------------------------------------- 1 | import { observer } from "mobx-react"; 2 | import { Component } from "react"; 3 | import InfoParameter from "../../Models/FunctionParameters/InfoParameter"; 4 | import parseCustomMarkdownToReact from "../Custom/parseCustomMarkdownToReact"; 5 | 6 | @observer 7 | export default class InfoParameterEditor extends Component<{ 8 | parameter: InfoParameter; 9 | }> { 10 | render() { 11 | return ( 12 |
13 | {this.props.parameter.value && 14 | parseCustomMarkdownToReact(this.props.parameter.value)} 15 |
16 | ); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /lib/ReactViews/BottomDock/Timeline/DatePicker/utils.ts: -------------------------------------------------------------------------------- 1 | export const monthNames = [ 2 | "Jan", 3 | "Feb", 4 | "Mar", 5 | "Apr", 6 | "May", 7 | "Jun", 8 | "Jul", 9 | "Aug", 10 | "Sep", 11 | "Oct", 12 | "Nov", 13 | "Dec" 14 | ]; 15 | 16 | export const daysInMonth = (month: number, year: number) => { 17 | const n = new Date(year, month, 0).getDate(); 18 | 19 | return Array.from(Array(n).keys()); 20 | }; 21 | -------------------------------------------------------------------------------- /lib/ReactViews/BottomDock/Timeline/Timeline.d.ts: -------------------------------------------------------------------------------- 1 | import type { Component } from "react"; 2 | import IElementConfig from "../../../Models/IElementConfig"; 3 | import Terria from "../../../Models/Terria"; 4 | 5 | interface PropsType { 6 | terria: Terria; 7 | locale?: unknown; 8 | elementConfig?: IElementConfig; 9 | } 10 | 11 | declare class Timeline extends Component {} 12 | 13 | export default Timeline; 14 | -------------------------------------------------------------------------------- /lib/ReactViews/BottomDock/Timeline/cesium-timeline.scss.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace CesiumTimelineScssNamespace { 2 | export interface ICesiumTimelineScss { 3 | cesiumTimeline: string; 4 | } 5 | } 6 | 7 | declare const CesiumTimelineScssModule: CesiumTimelineScssNamespace.ICesiumTimelineScss & { 8 | /** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */ 9 | locals: CesiumTimelineScssNamespace.ICesiumTimelineScss; 10 | }; 11 | 12 | export = CesiumTimelineScssModule; 13 | -------------------------------------------------------------------------------- /lib/ReactViews/BottomDock/Timeline/timeline-controls.scss: -------------------------------------------------------------------------------- 1 | @use "../../../Sass/common/_variables"; 2 | 3 | .controls { 4 | display: table-cell; 5 | width: 120px; 6 | vertical-align: middle; 7 | } 8 | 9 | .timeline__control { 10 | height: 29px; 11 | width: 29px; 12 | composes: btn from "../../../Sass/common/_buttons.scss"; 13 | svg { 14 | height: 25px; 15 | width: 25px; 16 | fill: #ffffff; 17 | } 18 | 19 | &.is-active { 20 | svg { 21 | fill: variables.$color-primary; 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /lib/ReactViews/BottomDock/chart-disclaimer.scss: -------------------------------------------------------------------------------- 1 | @use "../../Sass/common/variables"; 2 | @use "../../Sass/common/mixins"; 3 | 4 | .chart-disclaimer-panel { 5 | background: #9a4b4b; 6 | color: white; 7 | padding: 1px variables.$padding; 8 | font-size: 0.8rem; 9 | p { 10 | margin: variables.$padding 0px; 11 | a, 12 | a:visited { 13 | color: white; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /lib/ReactViews/Context/ContextProviders.tsx: -------------------------------------------------------------------------------- 1 | import { ReactNode } from "react"; 2 | import { DefaultTheme, ThemeProvider } from "styled-components"; 3 | import ViewState from "../../ReactViewModels/ViewState"; 4 | import { ViewStateProvider } from "./ViewStateContext"; 5 | 6 | export const ContextProviders = (props: { 7 | viewState: ViewState; 8 | theme: DefaultTheme | ((theme: DefaultTheme) => DefaultTheme); 9 | children: ReactNode[]; 10 | }) => ( 11 | 12 | {props.children} 13 | 14 | ); 15 | -------------------------------------------------------------------------------- /lib/ReactViews/Context/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./ViewStateContext"; 2 | export * from "./ContextProviders"; 3 | -------------------------------------------------------------------------------- /lib/ReactViews/Custom/Chart/Glyphs.ts: -------------------------------------------------------------------------------- 1 | import { 2 | GlyphCircle, 3 | GlyphCross, 4 | GlyphDiamond, 5 | GlyphSquare, 6 | GlyphStar, 7 | GlyphTriangle, 8 | GlyphWye 9 | } from "@visx/glyph"; 10 | 11 | const Glyphs = { 12 | circle: GlyphCircle, 13 | cross: GlyphCross, 14 | diamond: GlyphDiamond, 15 | square: GlyphSquare, 16 | star: GlyphStar, 17 | triangle: GlyphTriangle, 18 | wye: GlyphWye 19 | }; 20 | 21 | export type GlyphStyle = keyof typeof Glyphs; 22 | 23 | export default Glyphs; 24 | -------------------------------------------------------------------------------- /lib/ReactViews/Custom/Chart/bottom-dock-chart.scss: -------------------------------------------------------------------------------- 1 | @use "../../../Sass/common/_variables"; 2 | @use "../../../Sass/common/mixins"; 3 | 4 | .empty { 5 | text-align: center; 6 | margin-top: 130px; 7 | } 8 | -------------------------------------------------------------------------------- /lib/ReactViews/Custom/Chart/bottom-dock-chart.scss.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace BottomDockChartScssNamespace { 2 | export interface IBottomDockChartScss { 3 | empty: string; 4 | } 5 | } 6 | 7 | declare const BottomDockChartScssModule: BottomDockChartScssNamespace.IBottomDockChartScss & { 8 | /** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */ 9 | locals: BottomDockChartScssNamespace.IBottomDockChartScss; 10 | }; 11 | 12 | export = BottomDockChartScssModule; 13 | -------------------------------------------------------------------------------- /lib/ReactViews/Custom/Chart/chart-panel-download-button.scss.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace ChartPanelDownloadButtonScssNamespace { 2 | export interface IChartPanelDownloadButtonScss { 3 | "btn-download": string; 4 | btnDownload: string; 5 | } 6 | } 7 | 8 | declare const ChartPanelDownloadButtonScssModule: ChartPanelDownloadButtonScssNamespace.IChartPanelDownloadButtonScss & { 9 | /** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */ 10 | locals: ChartPanelDownloadButtonScssNamespace.IChartPanelDownloadButtonScss; 11 | }; 12 | 13 | export = ChartPanelDownloadButtonScssModule; 14 | -------------------------------------------------------------------------------- /lib/ReactViews/Custom/Chart/chart.scss: -------------------------------------------------------------------------------- 1 | @use "../../../Sass/common/_variables"; 2 | @use "../../../Sass/common/mixins"; 3 | 4 | .noData { 5 | display: flex; 6 | justify-content: center; 7 | align-items: center; 8 | } 9 | -------------------------------------------------------------------------------- /lib/ReactViews/Custom/Chart/chart.scss.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'noData': string; 5 | } 6 | declare var cssExports: CssExports; 7 | export = cssExports; 8 | -------------------------------------------------------------------------------- /lib/ReactViews/Custom/Chart/legends.scss.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'legends': string; 5 | } 6 | declare var cssExports: CssExports; 7 | export = cssExports; 8 | -------------------------------------------------------------------------------- /lib/ReactViews/Custom/Chart/types.ts: -------------------------------------------------------------------------------- 1 | import type { scaleLinear, scaleTime } from "@visx/scale"; 2 | 3 | export type XScale = 4 | | ReturnType> 5 | | ReturnType>; 6 | export type YScale = ReturnType>; 7 | 8 | export interface Scales { 9 | x: XScale; 10 | y: YScale; 11 | } 12 | 13 | export type ChartZoomFunction = (scales: { 14 | x: (arg0: number | Date) => number; 15 | y: (arg0: number) => number; 16 | }) => void; 17 | 18 | export interface ChartZoomHandle { 19 | doZoom: ChartZoomFunction; 20 | } 21 | -------------------------------------------------------------------------------- /lib/ReactViews/Custom/Collapsible/collapsible.scss.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'body': string; 5 | 'btn': string; 6 | 'header': string; 7 | 'is-inverse': string; 8 | 'is-open': string; 9 | 'isInverse': string; 10 | 'isOpen': string; 11 | 'root': string; 12 | } 13 | declare var cssExports: CssExports; 14 | export = cssExports; 15 | -------------------------------------------------------------------------------- /lib/ReactViews/DataCatalog/data-catalog.scss.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace DataCatalogScssNamespace { 2 | export interface IDataCatalogScss { 3 | "data-catalog": string; 4 | dataCatalog: string; 5 | label: string; 6 | } 7 | } 8 | 9 | declare const DataCatalogScssModule: DataCatalogScssNamespace.IDataCatalogScss & { 10 | /** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */ 11 | locals: DataCatalogScssNamespace.IDataCatalogScss; 12 | }; 13 | 14 | export = DataCatalogScssModule; 15 | -------------------------------------------------------------------------------- /lib/ReactViews/Disclaimer.d.ts: -------------------------------------------------------------------------------- 1 | import type { Component } from "react"; 2 | 3 | declare class Disclaimer extends Component {} 4 | 5 | export default Disclaimer; 6 | -------------------------------------------------------------------------------- /lib/ReactViews/ExplorerWindow/Tabs.d.ts: -------------------------------------------------------------------------------- 1 | import type { Component } from "react"; 2 | import Terria from "../../Models/Terria"; 3 | import ViewState from "../../ReactViewModels/ViewState"; 4 | 5 | interface PropsType { 6 | terria: Terria; 7 | viewState: ViewState; 8 | tabs?: unknown[]; 9 | } 10 | 11 | declare class Tabs extends Component {} 12 | 13 | export default Tabs; 14 | -------------------------------------------------------------------------------- /lib/ReactViews/ExplorerWindow/Tabs/MyDataTab/file-input.scss.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace FileInputScssNamespace { 2 | export interface IFileInputScss { 3 | btn: string; 4 | "btn--hover": string; 5 | btnHover: string; 6 | "file-input": string; 7 | fileInput: string; 8 | input: string; 9 | } 10 | } 11 | 12 | declare const FileInputScssModule: FileInputScssNamespace.IFileInputScss & { 13 | /** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */ 14 | locals: FileInputScssNamespace.IFileInputScss; 15 | }; 16 | 17 | export = FileInputScssModule; 18 | -------------------------------------------------------------------------------- /lib/ReactViews/FeatureInfo/feature-info-catalog-item.scss: -------------------------------------------------------------------------------- 1 | @use "../../Sass/common/_variables"; 2 | 3 | .group { 4 | } 5 | 6 | .sections { 7 | composes: list-reset from "../../Sass/common/_base.scss"; 8 | } 9 | 10 | .message-item { 11 | background: variables.$info-color; 12 | color: variables.$dark; 13 | padding: 5px 8px; 14 | } 15 | -------------------------------------------------------------------------------- /lib/ReactViews/Generic/Caret.jsx: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | 3 | export const Caret = styled.div` 4 | content: ""; 5 | display: block; 6 | position: absolute; 7 | z-index: ${(props) => (props.zIndex ? `${props.zIndex}` : `-1`)}; 8 | 9 | height: ${(props) => (props.size ? `${props.size}px` : `20px`)}; 10 | width: ${(props) => (props.size ? `${props.size}px` : `20px`)}; 11 | 12 | background: ${(props) => 13 | props.background ? `${props.background}` : `${props.theme.textLight}`}; 14 | 15 | transform: rotate(45deg); 16 | `; 17 | 18 | export default Caret; 19 | -------------------------------------------------------------------------------- /lib/ReactViews/Generic/PrefaceBox.tsx: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | import Box from "../../Styled/Box"; 3 | 4 | interface PropTypes { 5 | pseudoBg?: boolean; 6 | [spread: string]: any; 7 | } 8 | 9 | export const PrefaceBox = styled(Box)` 10 | position: fixed; 11 | width: 100%; 12 | height: 100%; 13 | background: ${(p) => (p.pseudoBg ? "black" : "transparent")}; 14 | z-index: 1000; 15 | opacity: ${(p) => (p.pseudoBg ? 0.45 : 1)}; 16 | `; 17 | -------------------------------------------------------------------------------- /lib/ReactViews/Generic/Prompt.d.ts: -------------------------------------------------------------------------------- 1 | import type { PureComponent } from "react"; 2 | 3 | interface PropsType { 4 | content: React.ReactNode; 5 | isVisible?: boolean; 6 | displayDelay: number; 7 | dismissText: string; 8 | dismissAction: () => void; 9 | centered?: boolean; 10 | caretTopOffset?: number; 11 | caretLeftOffset?: number; 12 | caretSize?: number; 13 | promptWidth?: number; 14 | promptTopOffset?: number; 15 | promptLeftOffset?: number; 16 | } 17 | 18 | declare class Prompt extends PureComponent {} 19 | 20 | export default Prompt; 21 | -------------------------------------------------------------------------------- /lib/ReactViews/Generic/Timer/timer.scss: -------------------------------------------------------------------------------- 1 | .timer { 2 | fill: currentColor; 3 | height: fit-content; 4 | line-height: 0; 5 | } 6 | 7 | .background-circle { 8 | opacity: 0.4; 9 | } 10 | 11 | .elapsedTime { 12 | /*! keep */ 13 | // We ask SASS not to delete this empty selector so that the Timer can import its class name 14 | } 15 | -------------------------------------------------------------------------------- /lib/ReactViews/Generic/Timer/timer.scss.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace TimerScssNamespace { 2 | export interface ITimerScss { 3 | "background-circle": string; 4 | backgroundCircle: string; 5 | elapsedTime: string; 6 | timer: string; 7 | } 8 | } 9 | 10 | declare const TimerScssModule: TimerScssNamespace.ITimerScss & { 11 | /** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */ 12 | locals: TimerScssNamespace.ITimerScss; 13 | }; 14 | 15 | export = TimerScssModule; 16 | -------------------------------------------------------------------------------- /lib/ReactViews/Generic/prompt.scss.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'btn': string; 5 | 'isVisible': string; 6 | 'prompt': string; 7 | } 8 | declare var cssExports: CssExports; 9 | export = cssExports; 10 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/BottomBar/Credits/Credit.type.ts: -------------------------------------------------------------------------------- 1 | export interface ICredit { 2 | url: string; 3 | text: string; 4 | } 5 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/BottomBar/Credits/Credits.tsx: -------------------------------------------------------------------------------- 1 | import { FC } from "react"; 2 | import { Credit } from "./Credit"; 3 | import { ICredit } from "./Credit.type"; 4 | 5 | interface ICreditsProps { 6 | credits?: ICredit[]; 7 | } 8 | 9 | export const Credits: FC = ({ credits }) => { 10 | if (!credits || credits.length === 0) { 11 | return null; 12 | } 13 | return ( 14 | <> 15 | {credits.map((credit, index) => ( 16 | 21 | ))} 22 | 23 | ); 24 | }; 25 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/BottomBar/Credits/CreditsContainer.tsx: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | import Box from "../../../../Styled/Box"; 3 | 4 | export const CreditsContainer = styled(Box).attrs(() => ({ 5 | styledHeight: "30px", 6 | styledMaxHeight: "30px", 7 | verticalCenter: true, 8 | gap: true 9 | }))` 10 | a { 11 | text-decoration: underline; 12 | cursor: pointer; 13 | color: ${(props) => props.theme.textLight}; 14 | display: flex; 15 | align-items: center; 16 | } 17 | img { 18 | height: 24px; 19 | } 20 | `; 21 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/BottomBar/Credits/Spacer.tsx: -------------------------------------------------------------------------------- 1 | import { useTheme } from "styled-components"; 2 | 3 | export const Spacer = () => { 4 | const theme = useTheme(); 5 | return ( 6 | 9 | ); 10 | }; 11 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/BottomBar/Credits/TerriaLogo.tsx: -------------------------------------------------------------------------------- 1 | import { FC } from "react"; 2 | import Box from "../../../../Styled/Box"; 3 | import logo from "../../../../../wwwroot/images/terria-watermark.svg"; 4 | 5 | export const TerriaLogo: FC = () => { 6 | return ( 7 | 13 | 14 | 15 | ); 16 | }; 17 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/BottomBar/Credits/index.ts: -------------------------------------------------------------------------------- 1 | export { type ICredit } from "./Credit.type"; 2 | export { MapCredits } from "./MapCredits"; 3 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/BottomBar/index.ts: -------------------------------------------------------------------------------- 1 | export { BottomBar } from "./BottomBar"; 2 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/MapNavigation/Items/Compass/GyroscopeGuidance.d.ts: -------------------------------------------------------------------------------- 1 | import ViewState from "../../../../../ReactViewModels/ViewState"; 2 | 3 | interface PropsType { 4 | viewState: ViewState; 5 | handleHelp?: () => void; 6 | onClose: () => void; 7 | } 8 | 9 | export declare const GyroscopeGuidance: React.FC; 10 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/MapNavigation/Items/Compass/index.ts: -------------------------------------------------------------------------------- 1 | import Compass from "./Compass"; 2 | 3 | export { COMPASS_TOOL_ID } from "./Compass"; 4 | export { Compass }; 5 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/MapNavigation/Items/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | AR_TOOL_ID, 3 | AugmentedVirtualityController, 4 | AugmentedVirtualityHoverController, 5 | AugmentedVirtualityRealign, 6 | AugmentedVirtualityRealignController 7 | } from "./AugmentedVirtualityTool"; 8 | export * from "./Compass"; 9 | export { Control, MapNavigationItem } from "./MapNavigationItem"; 10 | export { MeasureTool } from "./MeasureTool"; 11 | export { MyLocation } from "./MyLocation"; 12 | export { ToggleSplitterController } from "./ToggleSplitterTool"; 13 | export { ZoomControl, ZOOM_CONTROL_ID } from "./ZoomControl"; 14 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/MapNavigation/index.ts: -------------------------------------------------------------------------------- 1 | export { CollapsedNavigation } from "./CollapsedNavigation"; 2 | export { MapNavigation } from "./MapNavigation"; 3 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/MapNavigation/zoom_control.scss.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'decrease': string; 5 | 'increase': string; 6 | 'list': string; 7 | 'refresh': string; 8 | 'zoomControl': string; 9 | } 10 | declare var cssExports: CssExports; 11 | export = cssExports; 12 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/MenuBar/HelpButton/help-button.scss: -------------------------------------------------------------------------------- 1 | .helpBtn { 2 | composes: btn from "../../../../Sass/common/_buttons.scss"; 3 | composes: btn--map from "../../../../Sass/common/_buttons.scss"; 4 | } 5 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/MenuBar/HelpButton/help-button.scss.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace HelpButtonScssNamespace { 2 | export interface IHelpButtonScss { 3 | helpBtn: string; 4 | } 5 | } 6 | 7 | declare const HelpButtonScssModule: HelpButtonScssNamespace.IHelpButtonScss & { 8 | /** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */ 9 | locals: HelpButtonScssNamespace.IHelpButtonScss; 10 | }; 11 | 12 | export = HelpButtonScssModule; 13 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/MenuBar/MenuBar.d.ts: -------------------------------------------------------------------------------- 1 | import IElementConfig from "../../../Models/IElementConfig"; 2 | 3 | interface PropsType { 4 | animationDuration?: number; 5 | menuItems: React.ReactElement[]; 6 | menuLeftItems: React.ReactElement[]; 7 | elementConfig?: IElementConfig; 8 | } 9 | 10 | declare const MenuBar: React.FC; 11 | export default MenuBar; 12 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/MenuBar/StoryButton/story-button.scss: -------------------------------------------------------------------------------- 1 | @use "../../../../Sass/common/_variables"; 2 | 3 | .storyBtn { 4 | composes: btn from "../../../../Sass/common/_buttons.scss"; 5 | composes: btn--map from "../../../../Sass/common/_buttons.scss"; 6 | 7 | &:hover, 8 | &:focus { 9 | svg { 10 | fill: #ffffff; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/MenuBar/StoryButton/story-button.scss.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace StoryButtonScssNamespace { 2 | export interface IStoryButtonScss { 3 | storyBtn: string; 4 | } 5 | } 6 | 7 | declare const StoryButtonScssModule: StoryButtonScssNamespace.IStoryButtonScss & { 8 | /** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */ 9 | locals: StoryButtonScssNamespace.IStoryButtonScss; 10 | }; 11 | 12 | export = StoryButtonScssModule; 13 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/Panels/HelpPanel/HelpPanel.d.ts: -------------------------------------------------------------------------------- 1 | import type { Component } from "react"; 2 | 3 | declare class HelpPanel extends Component {} 4 | export default HelpPanel; 5 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/Panels/HelpPanel/VideoGuide.d.ts: -------------------------------------------------------------------------------- 1 | import type { Component } from "react"; 2 | import ViewState from "../../../../ReactViewModels/ViewState"; 3 | 4 | interface PropsType { 5 | viewState: ViewState; 6 | videoName: string; 7 | videoLink: string; 8 | background: string; 9 | // A number between 0 and 1.0 10 | backgroundOpacity?: number; 11 | } 12 | 13 | declare class VideoGuide extends Component {} 14 | export default VideoGuide; 15 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/Panels/SharePanel/AdvancedOptions/index.ts: -------------------------------------------------------------------------------- 1 | export { AdvancedOptions } from "./AdvancedOptions"; 2 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/Panels/SharePanel/Print/PrintSource.tsx: -------------------------------------------------------------------------------- 1 | import dateFormat from "dateformat"; 2 | 3 | interface Props { 4 | link: string; 5 | } 6 | 7 | const PrintSource = (props: Props) => { 8 | return ( 9 |
10 |

11 | This map was created using{" "} 12 | {window.location.origin} on{" "} 13 | {dateFormat()} 14 |

15 |

16 | An interactive version of this map can be found here:{" "} 17 | {props.link} 18 |

19 |
20 | ); 21 | }; 22 | 23 | export default PrintSource; 24 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/Panels/SharePanel/ShareUrl/index.ts: -------------------------------------------------------------------------------- 1 | export { type IShareUrlRef, ShareUrl } from "./ShareUrl"; 2 | export { ShareUrlBookmark } from "./ShareUrlBookmark"; 3 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/Panels/SharePanel/StyledHr.tsx: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | 3 | import Hr from "../../../../Styled/Hr"; 4 | 5 | export const StyledHr = styled(Hr).attrs((props) => ({ 6 | size: 1, 7 | borderBottomColor: props.theme.darkWithOverlay 8 | }))` 9 | margin: 10px -10px; 10 | `; 11 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/Panels/ToolsPanel/tools-panel.scss: -------------------------------------------------------------------------------- 1 | @use "../../../../Sass/common/_variables"; 2 | .toolsPanel { 3 | width: 200px; 4 | } 5 | 6 | .submit { 7 | composes: btn from "../../../../Sass/common/_buttons.scss"; 8 | composes: btn-primary from "../../../../Sass/common/_buttons.scss"; 9 | margin: 10px auto; 10 | display: block; 11 | // prevent jump when button content change 12 | height: 45px; 13 | svg { 14 | fill: #fff; 15 | } 16 | } 17 | 18 | .results { 19 | padding: 7px; 20 | } 21 | 22 | .dropdown-inner { 23 | width: 400px; 24 | } 25 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/Panels/ToolsPanel/tools-panel.scss.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace ToolsPanelScssNamespace { 2 | export interface IToolsPanelScss { 3 | "dropdown-inner": string; 4 | dropdownInner: string; 5 | results: string; 6 | submit: string; 7 | toolsPanel: string; 8 | } 9 | } 10 | 11 | declare const ToolsPanelScssModule: ToolsPanelScssNamespace.IToolsPanelScss & { 12 | /** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */ 13 | locals: ToolsPanelScssNamespace.IToolsPanelScss; 14 | }; 15 | 16 | export = ToolsPanelScssModule; 17 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/Panels/setting-panel.scss: -------------------------------------------------------------------------------- 1 | @use "../../../Sass/common/_variables"; 2 | @use "../../../Sass/common/mixins"; 3 | 4 | .dropdown-inner { 5 | width: variables.$setting-panel; 6 | } 7 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/Panels/setting-panel.scss.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace SettingPanelScssNamespace { 2 | export interface ISettingPanelScss { 3 | "dropdown-inner": string; 4 | dropdownInner: string; 5 | } 6 | } 7 | 8 | declare const SettingPanelScssModule: SettingPanelScssNamespace.ISettingPanelScss & { 9 | /** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */ 10 | locals: SettingPanelScssNamespace.ISettingPanelScss; 11 | }; 12 | 13 | export = SettingPanelScssModule; 14 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/TerriaViewerWrapper/index.ts: -------------------------------------------------------------------------------- 1 | export { TerriaViewerWrapper } from "./TerriaViewerWrapper"; 2 | -------------------------------------------------------------------------------- /lib/ReactViews/Map/map-navigation.scss.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'control': string; 5 | 'controls': string; 6 | 'map-navigation': string; 7 | 'mapNavigation': string; 8 | 'navs': string; 9 | 'with-time-series-controls': string; 10 | 'withTimeSeriesControls': string; 11 | } 12 | declare var cssExports: CssExports; 13 | export = cssExports; 14 | -------------------------------------------------------------------------------- /lib/ReactViews/Mobile/MobileHeader.d.ts: -------------------------------------------------------------------------------- 1 | import { i18n } from "i18next"; 2 | import { type Component } from "react"; 3 | 4 | interface PropsType { 5 | version?: string; 6 | menuLeftItems: React.ReactNode[]; 7 | menuItems: React.ReactNode[]; 8 | i18n?: i18n; 9 | } 10 | 11 | declare class MobileHeader extends Component {} 12 | export default MobileHeader; 13 | -------------------------------------------------------------------------------- /lib/ReactViews/Mobile/mobile-menu-item.scss.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace MobileMenuItemScssNamespace { 2 | export interface IMobileMenuItemScss { 3 | icon: string; 4 | link: string; 5 | root: string; 6 | } 7 | } 8 | 9 | declare const MobileMenuItemScssModule: MobileMenuItemScssNamespace.IMobileMenuItemScss & { 10 | /** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */ 11 | locals: MobileMenuItemScssNamespace.IMobileMenuItemScss; 12 | }; 13 | 14 | export = MobileMenuItemScssModule; 15 | -------------------------------------------------------------------------------- /lib/ReactViews/Mobile/mobile-menu.scss: -------------------------------------------------------------------------------- 1 | @use "../../Sass/common/_variables"; 2 | @use "../../Sass/common/mixins"; 3 | 4 | .overlay { 5 | position: fixed; 6 | left: 0; 7 | right: 0; 8 | top: 0; 9 | bottom: 0; 10 | } 11 | 12 | .mobile-nav { 13 | composes: list-reset from "../../Sass/common/_base.scss"; 14 | position: absolute; 15 | left: 0; 16 | right: 0; 17 | top: variables.$mobile-header-height; 18 | background: variables.$mobile-main-bg; 19 | color: variables.$mobile-text; 20 | text-align: left; 21 | 22 | &--hidden { 23 | left: -9999px; 24 | height: 0; 25 | width: 0; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /lib/ReactViews/Mobile/mobile-menu.scss.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace MobileMenuScssNamespace { 2 | export interface IMobileMenuScss { 3 | "mobile-nav": string; 4 | "mobile-nav--hidden": string; 5 | mobileNav: string; 6 | mobileNavHidden: string; 7 | overlay: string; 8 | } 9 | } 10 | 11 | declare const MobileMenuScssModule: MobileMenuScssNamespace.IMobileMenuScss & { 12 | /** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */ 13 | locals: MobileMenuScssNamespace.IMobileMenuScss; 14 | }; 15 | 16 | export = MobileMenuScssModule; 17 | -------------------------------------------------------------------------------- /lib/ReactViews/Notification/map-interaction-window.scss.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace MapInteractionWindowScssNamespace { 2 | export interface IMapInteractionWindowScss { 3 | btn: string; 4 | content: string; 5 | isActive: string; 6 | window: string; 7 | } 8 | } 9 | 10 | declare const MapInteractionWindowScssModule: MapInteractionWindowScssNamespace.IMapInteractionWindowScss & { 11 | /** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */ 12 | locals: MapInteractionWindowScssNamespace.IMapInteractionWindowScss; 13 | }; 14 | 15 | export = MapInteractionWindowScssModule; 16 | -------------------------------------------------------------------------------- /lib/ReactViews/Preview/Description.d.ts: -------------------------------------------------------------------------------- 1 | import type { Component } from "react"; 2 | import { BaseModel } from "../../Models/Definition/Model"; 3 | 4 | interface PropsType { 5 | item: BaseModel; 6 | printView?: boolean; 7 | } 8 | 9 | declare class Description extends Component {} 10 | 11 | export default Description; 12 | -------------------------------------------------------------------------------- /lib/ReactViews/Preview/data-preview-map.scss.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace DataPreviewMapScssNamespace { 2 | export interface IDataPreviewMapScss { 3 | badge: string; 4 | map: string; 5 | placeholder: string; 6 | "terria-preview": string; 7 | terriaPreview: string; 8 | } 9 | } 10 | 11 | declare const DataPreviewMapScssModule: DataPreviewMapScssNamespace.IDataPreviewMapScss & { 12 | /** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */ 13 | locals: DataPreviewMapScssNamespace.IDataPreviewMapScss; 14 | }; 15 | 16 | export = DataPreviewMapScssModule; 17 | -------------------------------------------------------------------------------- /lib/ReactViews/Preview/metadata-table.scss: -------------------------------------------------------------------------------- 1 | @use "sass:color"; 2 | 3 | @use "../../Sass/common/_variables"; 4 | @use "../../Sass/common/mixins"; 5 | 6 | .root table { 7 | overflow-x: auto; 8 | } 9 | 10 | .root table tr:nth-child(odd) { 11 | background-color: color.adjust(variables.$faint-bg, $lightness: -8%); 12 | } 13 | .root table tr:nth-child(even) { 14 | background-color: variables.$faint-bg; 15 | } 16 | 17 | .root th { 18 | @extend %unwrap; 19 | text-align: left; 20 | padding: 3px; 21 | } 22 | 23 | .root .value { 24 | @extend %unwrap; 25 | padding: 3px; 26 | } 27 | -------------------------------------------------------------------------------- /lib/ReactViews/Preview/metadata-table.scss.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace MetadataTableScssNamespace { 2 | export interface IMetadataTableScss { 3 | root: string; 4 | value: string; 5 | } 6 | } 7 | 8 | declare const MetadataTableScssModule: MetadataTableScssNamespace.IMetadataTableScss & { 9 | /** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */ 10 | locals: MetadataTableScssNamespace.IMetadataTableScss; 11 | }; 12 | 13 | export = MetadataTableScssModule; 14 | -------------------------------------------------------------------------------- /lib/ReactViews/ReactViewHelpers/highlightKeyword.jsx: -------------------------------------------------------------------------------- 1 | export default function highlightKeyword(searchResult, keywordToHighlight) { 2 | if (!keywordToHighlight) return searchResult; 3 | const parts = searchResult.split(new RegExp(`(${keywordToHighlight})`, "gi")); 4 | return ( 5 | <> 6 | {parts.map((part, i) => ( 7 | 15 | {part} 16 | 17 | ))} 18 | 19 | ); 20 | } 21 | -------------------------------------------------------------------------------- /lib/ReactViews/RelatedMaps/related-maps.scss: -------------------------------------------------------------------------------- 1 | @use "../../Sass/common/_variables"; 2 | 3 | .dropdown-inner { 4 | padding: 10px; 5 | font-size: 0.9rem; 6 | width: 600px; 7 | 8 | @media (max-width: variables.$mobile) { 9 | max-width: fit-content; 10 | } 11 | } 12 | 13 | .image { 14 | float: left; 15 | margin-right: 10px; 16 | margin-bottom: 10px; 17 | width: 200px; 18 | height: 150px; 19 | } 20 | -------------------------------------------------------------------------------- /lib/ReactViews/RelatedMaps/related-maps.scss.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace RelatedMapsScssNamespace { 2 | export interface IRelatedMapsScss { 3 | "dropdown-inner": string; 4 | dropdownInner: string; 5 | image: string; 6 | } 7 | } 8 | 9 | declare const RelatedMapsScssModule: RelatedMapsScssNamespace.IRelatedMapsScss & { 10 | /** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */ 11 | locals: RelatedMapsScssNamespace.IRelatedMapsScss; 12 | }; 13 | 14 | export = RelatedMapsScssModule; 15 | -------------------------------------------------------------------------------- /lib/ReactViews/Search/search-header.scss: -------------------------------------------------------------------------------- 1 | @use "../../Sass/common/_variables"; 2 | 3 | .no-results { 4 | composes: label from "../../Sass/common/_labels.scss"; 5 | padding-left: variables.$padding; 6 | font-size: variables.$font-size-mid-small; 7 | } 8 | -------------------------------------------------------------------------------- /lib/ReactViews/Search/search-header.scss.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'no-results': string; 5 | 'noResults': string; 6 | } 7 | declare var cssExports: CssExports; 8 | export = cssExports; 9 | -------------------------------------------------------------------------------- /lib/ReactViews/Search/sidebar-dataset-search-results.scss.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'colorPrimary': string; 5 | 'colorSecondary': string; 6 | 'dark': string; 7 | 'heading': string; 8 | 'isOpen': string; 9 | 'items': string; 10 | 'light': string; 11 | 'provider-result': string; 12 | 'providerResult': string; 13 | } 14 | declare var cssExports: CssExports; 15 | export = cssExports; 16 | -------------------------------------------------------------------------------- /lib/ReactViews/SelectableDimensions/MarkerOptionRenderer.tsx: -------------------------------------------------------------------------------- 1 | import { getMakiIcon } from "../../Map/Icons/Maki/MakiIcons"; 2 | import { OptionRenderer } from "../../Models/SelectableDimensions/SelectableDimensions"; 3 | 4 | export const MarkerOptionRenderer: OptionRenderer = (option) => ( 5 |
6 | {" "} 12 | {option.value} 13 |
14 | ); 15 | -------------------------------------------------------------------------------- /lib/ReactViews/SidePanel/FullScreenButton.d.ts: -------------------------------------------------------------------------------- 1 | import type { Component } from "react"; 2 | import type IElementConfig from "../../Models/IElementConfig"; 3 | 4 | interface PropsType { 5 | btnText: string; 6 | minified: boolean; 7 | animationDuration?: number; 8 | elementConfig?: IElementConfig; 9 | } 10 | 11 | declare class FullScreenButton extends Component {} 12 | 13 | export default FullScreenButton; 14 | -------------------------------------------------------------------------------- /lib/ReactViews/SidePanel/side-panel.scss.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'addData': string; 5 | 'body': string; 6 | 'button': string; 7 | 'header': string; 8 | 'uploadData': string; 9 | 'workbenchEmpty': string; 10 | } 11 | declare var cssExports: CssExports; 12 | export = cssExports; 13 | -------------------------------------------------------------------------------- /lib/ReactViews/StandardUserInterface/StandardTheme.tsx: -------------------------------------------------------------------------------- 1 | import Variables from "../../Sass/exports/_variables-export.scss"; 2 | import Mixins from "../../Styled/mixins"; 3 | 4 | export const terriaTheme = { 5 | ...Variables, 6 | ...Mixins 7 | }; 8 | 9 | export type TerriaTheme = typeof terriaTheme; 10 | -------------------------------------------------------------------------------- /lib/ReactViews/StandardUserInterface/customizable/MenuItem.jsx: -------------------------------------------------------------------------------- 1 | import MenuButton from "./MenuButton"; 2 | import responsiveSwitch from "./ResponsiveSwitch"; 3 | import withControlledVisibility from "../../HOCs/withControlledVisibility"; 4 | import MobileMenuItem from "../../Mobile/MobileMenuItem"; 5 | 6 | const MenuItem = withControlledVisibility( 7 | responsiveSwitch(MenuButton, MobileMenuItem) 8 | ); 9 | 10 | export default MenuItem; 11 | -------------------------------------------------------------------------------- /lib/ReactViews/StandardUserInterface/customizable/MenuPanel.jsx: -------------------------------------------------------------------------------- 1 | import DropdownPanel from "../../Map/Panels/DropdownPanel"; 2 | import MobilePanel from "../../Map/Panels/MobilePanel"; 3 | import withControlledVisibility from "../../HOCs/withControlledVisibility"; 4 | import responsiveSwitch from "./ResponsiveSwitch"; 5 | 6 | const MenuPanel = withControlledVisibility( 7 | responsiveSwitch(DropdownPanel, MobilePanel) 8 | ); 9 | 10 | export default MenuPanel; 11 | -------------------------------------------------------------------------------- /lib/ReactViews/StandardUserInterface/customizable/menu-button.scss: -------------------------------------------------------------------------------- 1 | @use "../../../Sass/common/_variables"; 2 | 3 | .btn--about-link { 4 | composes: btn from "../../../Sass/common/_buttons.scss"; 5 | composes: btn--map from "../../../Sass/common/_buttons.scss"; 6 | border-radius: variables.$radius-small; 7 | border: 0; 8 | svg { 9 | // fill: #6487ae; 10 | // margin: 0 3px 0 4px; 11 | vertical-align: middle; 12 | } 13 | 14 | span { 15 | line-height: 1.5; 16 | } 17 | 18 | &:hover, 19 | &:focus { 20 | border: 0; 21 | svg { 22 | fill: variables.$text-light; 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /lib/ReactViews/StandardUserInterface/customizable/menu-button.scss.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace MenuButtonScssNamespace { 2 | export interface IMenuButtonScss { 3 | "btn--about-link": string; 4 | btnAboutLink: string; 5 | } 6 | } 7 | 8 | declare const MenuButtonScssModule: MenuButtonScssNamespace.IMenuButtonScss & { 9 | /** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */ 10 | locals: MenuButtonScssNamespace.IMenuButtonScss; 11 | }; 12 | 13 | export = MenuButtonScssModule; 14 | -------------------------------------------------------------------------------- /lib/ReactViews/StandardUserInterface/index.ts: -------------------------------------------------------------------------------- 1 | export { 2 | StandardUserInterface, 3 | StandardUserInterface as default 4 | } from "./StandardUserInterface"; 5 | export { terriaTheme } from "./StandardTheme"; 6 | -------------------------------------------------------------------------------- /lib/ReactViews/StandardUserInterface/processCustomElements.d.ts: -------------------------------------------------------------------------------- 1 | type GroupElementKeys = 2 | | "menu" 3 | | "menuLeft" 4 | | "nav" 5 | | "experimentalMenu" 6 | | "feedback"; 7 | 8 | declare function processCustomElements( 9 | isSmallScreen: boolean, 10 | customUI: React.ReactNode 11 | ): Record; 12 | 13 | export default processCustomElements; 14 | -------------------------------------------------------------------------------- /lib/ReactViews/Story/StoryEditor.d.ts: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import Terria from "../../Models/Terria"; 3 | import { StoryData } from "./StoryBuilder"; 4 | 5 | interface PropsType { 6 | story?: StoryData; 7 | removeStory: (id: number) => void; 8 | saveStory: (story: StoryData) => void; 9 | exitEditingMode: () => void; 10 | terria: Terria; 11 | } 12 | 13 | declare class StoryEditor extends React.Component {} 14 | 15 | export default StoryEditor; 16 | -------------------------------------------------------------------------------- /lib/ReactViews/Story/story-panel.scss.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace StoryPanelScssNamespace { 2 | export interface IStoryPanelScss { 3 | "is-mounted": string; 4 | isMounted: string; 5 | left: string; 6 | right: string; 7 | "story-container": string; 8 | storyContainer: string; 9 | } 10 | } 11 | 12 | declare const StoryPanelScssModule: StoryPanelScssNamespace.IStoryPanelScss & { 13 | /** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */ 14 | locals: StoryPanelScssNamespace.IStoryPanelScss; 15 | }; 16 | 17 | export = StoryPanelScssModule; 18 | -------------------------------------------------------------------------------- /lib/ReactViews/Tools/DiffTool/diff-tool.scss.d.ts: -------------------------------------------------------------------------------- 1 | // This file is automatically generated. 2 | // Please do not change this file! 3 | interface CssExports { 4 | 'leftDatePickerPopup': string; 5 | 'rightDatePickerPopup': string; 6 | } 7 | declare var cssExports: CssExports; 8 | export = cssExports; 9 | -------------------------------------------------------------------------------- /lib/ReactViews/Tools/ItemSearchTool/ErrorComponent.tsx: -------------------------------------------------------------------------------- 1 | import { FC } from "react"; 2 | 3 | import Text from "../../../Styled/Text"; 4 | 5 | interface ErrorComponentProps { 6 | children: React.ReactNode; 7 | } 8 | 9 | const ErrorComponent: FC = ({ children }) => { 10 | return ( 11 | 12 | {children} 13 | 14 | ); 15 | }; 16 | 17 | export default ErrorComponent; 18 | -------------------------------------------------------------------------------- /lib/ReactViews/Tools/ItemSearchTool/Loading.tsx: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | import Loader from "../../Loader"; 3 | 4 | const Loading = styled(Loader).attrs((props) => ({ 5 | light: true, 6 | message: props.children 7 | }))` 8 | align-self: center; 9 | `; 10 | 11 | export default Loading; 12 | -------------------------------------------------------------------------------- /lib/ReactViews/Tour/TourIndicator.jsx: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | import { RawButton } from "../../Styled/Button"; 3 | 4 | const TourIndicator = styled(RawButton)` 5 | position: absolute; 6 | top: -10px; 7 | width: 14px; 8 | height: 14px; 9 | border-radius: 50%; 10 | background-color: ${(p) => p.theme.colorPrimary}; 11 | `; 12 | 13 | export default TourIndicator; 14 | -------------------------------------------------------------------------------- /lib/ReactViews/Tour/TourPortal.d.ts: -------------------------------------------------------------------------------- 1 | export declare const TourExplanation: React.FC< 2 | React.PropsWithChildren 3 | >; 4 | export declare const TourPreface: React.FC>; 5 | 6 | declare const TourPortal: React.FC>; 7 | 8 | export default TourPortal; 9 | -------------------------------------------------------------------------------- /lib/ReactViews/Tour/TourPrefaceBox.tsx: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | import Box from "../../Styled/Box"; 3 | 4 | export const TourPrefaceBox = styled(Box)<{ pseudoBg?: boolean }>` 5 | position: fixed; 6 | width: 100%; 7 | height: 100%; 8 | background: ${(p) => (p.pseudoBg ? "black" : "transparent")}; 9 | z-index: 1000; 10 | opacity: ${(p) => (p.pseudoBg ? 0.45 : 1)}; 11 | `; 12 | 13 | export default TourPrefaceBox; 14 | -------------------------------------------------------------------------------- /lib/ReactViews/Tour/TourProgressDot.jsx: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | import { RawButton } from "../../Styled/Button"; 3 | 4 | export const TourProgressDot = styled(RawButton)` 5 | display: inline-block; 6 | box-sizing: border-box; 7 | height: 7px; 8 | width: 7px; 9 | border: 1px solid ${(p) => p.theme.colorPrimary}; 10 | 11 | background-color: ${(p) => (p.active ? p.theme.colorPrimary : "transparent")}; 12 | 13 | margin-left: 8px; 14 | border-radius: 50%; 15 | `; 16 | 17 | export default TourProgressDot; 18 | -------------------------------------------------------------------------------- /lib/ReactViews/Transitions/FadeIn/fade-in.scss: -------------------------------------------------------------------------------- 1 | .enter { 2 | opacity: 0; 3 | } 4 | .enter-active { 5 | opacity: 1; 6 | transition: opacity 300ms; 7 | } 8 | .exit { 9 | opacity: 1; 10 | } 11 | .exit-active { 12 | opacity: 0; 13 | transition: opacity 300ms; 14 | } 15 | -------------------------------------------------------------------------------- /lib/ReactViews/Transitions/FadeIn/fade-in.scss.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace FadeInScssNamespace { 2 | export interface IFadeInScss { 3 | enter: string; 4 | "enter-active": string; 5 | enterActive: string; 6 | exit: string; 7 | "exit-active": string; 8 | exitActive: string; 9 | } 10 | } 11 | 12 | declare const FadeInScssModule: FadeInScssNamespace.IFadeInScss & { 13 | /** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */ 14 | locals: FadeInScssNamespace.IFadeInScss; 15 | }; 16 | 17 | export = FadeInScssModule; 18 | -------------------------------------------------------------------------------- /lib/ReactViews/Transitions/SlideUpFadeIn/slide-up-fade-in.scss: -------------------------------------------------------------------------------- 1 | .enter { 2 | opacity: 0; 3 | transform: translateY(30%); 4 | } 5 | .enter-active { 6 | opacity: 1; 7 | transform: translateY(0); 8 | transition: opacity 300ms, transform 300ms; 9 | } 10 | .exit { 11 | opacity: 1; 12 | transform: translateY(0); 13 | } 14 | .exit-active { 15 | opacity: 0; 16 | transform: translateY(30%); 17 | transition: opacity 300ms, transform 300ms; 18 | } 19 | -------------------------------------------------------------------------------- /lib/ReactViews/WelcomeMessage/WelcomeMessage.d.ts: -------------------------------------------------------------------------------- 1 | import type { Component } from "react"; 2 | 3 | interface WelcomeMessagePurePropsType { 4 | showWelcomeMessage: boolean; 5 | setShowWelcomeMessage: (show: boolean) => void; 6 | isTopElement: boolean; 7 | } 8 | 9 | export declare const WelcomeMessagePure: React.FC; 10 | 11 | declare class WelcomeMessage extends Component {} 12 | export default WelcomeMessage; 13 | -------------------------------------------------------------------------------- /lib/ReactViews/Workbench/Controls/ColorScaleRangeSection.d.ts: -------------------------------------------------------------------------------- 1 | import type { Component } from "react"; 2 | import { BaseModel } from "../../../Models/Definition/Model"; 3 | 4 | interface PropsType { 5 | item: BaseModel; 6 | minValue: number; 7 | maxValue: number; 8 | } 9 | 10 | declare class ColorScaleRangeSection extends Component {} 11 | export default ColorScaleRangeSection; 12 | -------------------------------------------------------------------------------- /lib/ReactViews/Workbench/Controls/FilterSection.d.ts: -------------------------------------------------------------------------------- 1 | import type { Component } from "react"; 2 | import { BaseModel } from "../../../Models/Definition/Model"; 3 | 4 | interface PropsType { 5 | item: BaseModel; 6 | } 7 | 8 | declare class FilterSection extends Component {} 9 | export default FilterSection; 10 | -------------------------------------------------------------------------------- /lib/ReactViews/Workbench/Controls/SatelliteImageryTimeFilterSection.d.ts: -------------------------------------------------------------------------------- 1 | import type { Component } from "react"; 2 | import { BaseModel } from "../../../Models/Definition/Model"; 3 | 4 | interface PropsType { 5 | item: BaseModel; 6 | } 7 | 8 | declare class SatelliteImageryTimeFilterSection extends Component {} 9 | export default SatelliteImageryTimeFilterSection; 10 | -------------------------------------------------------------------------------- /lib/ReactViews/Workbench/Controls/TimerSection.d.ts: -------------------------------------------------------------------------------- 1 | import type { Component } from "react"; 2 | import { BaseModel } from "../../../Models/Definition/Model"; 3 | 4 | declare class TimerSection extends Component<{ item: BaseModel }> {} 5 | export default TimerSection; 6 | -------------------------------------------------------------------------------- /lib/ReactViews/Workbench/Controls/colorscalerange-section.scss: -------------------------------------------------------------------------------- 1 | @use "../../../Sass/common/_variables"; 2 | 3 | .colorscalerange { 4 | font-size: variables.$font-size-mid-small; 5 | label { 6 | margin-right: variables.$padding-small; 7 | } 8 | } 9 | 10 | .title { 11 | margin-top: 10px; 12 | margin-bottom: 5px; 13 | font-weight: bold; 14 | } 15 | 16 | .btn { 17 | composes: btn from "../../../Sass/common/_buttons.scss"; 18 | composes: btn-primary from "../../../Sass/common/_buttons.scss"; 19 | margin-top: 10px; 20 | } 21 | 22 | .field { 23 | composes: field from "../../../Sass/common/_form.scss"; 24 | } 25 | -------------------------------------------------------------------------------- /lib/ReactViews/Workbench/Controls/filter-section.scss: -------------------------------------------------------------------------------- 1 | @use "../../../Sass/common/_variables"; 2 | .filters { 3 | composes: clearfix from "../../../Sass/common/_base.scss"; 4 | padding: variables.$padding 0; 5 | border-bottom: 1px solid variables.$border-color; 6 | font-size: variables.$font-size-mini; 7 | label { 8 | margin-right: variables.$padding-small; 9 | float: left; 10 | width: 80px; 11 | } 12 | input[type="range"] { 13 | width: calc(100% - 85px); 14 | } 15 | } 16 | 17 | .filter { 18 | display: flex; 19 | label { 20 | flex-basis: 100px; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /lib/ReactViews/Workbench/Controls/filter-section.scss.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace FilterSectionScssNamespace { 2 | export interface IFilterSectionScss { 3 | filter: string; 4 | filters: string; 5 | } 6 | } 7 | 8 | declare const FilterSectionScssModule: FilterSectionScssNamespace.IFilterSectionScss & { 9 | /** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */ 10 | locals: FilterSectionScssNamespace.IFilterSectionScss; 11 | }; 12 | 13 | export = FilterSectionScssModule; 14 | -------------------------------------------------------------------------------- /lib/ReactViews/Workbench/Controls/timer-section.scss: -------------------------------------------------------------------------------- 1 | @use "../../../Sass/common/_variables"; 2 | 3 | .section { 4 | background: variables.$dark; 5 | margin-top: 10px; 6 | display: flex; 7 | padding: 0 variables.$padding; 8 | // align-items: center; 9 | align-content: flex-start; 10 | 11 | font-weight: variables.$font-weight-light; 12 | font-size: variables.$font-size-mid-small; 13 | } 14 | 15 | .timer-container { 16 | padding-right: 10px; 17 | } 18 | -------------------------------------------------------------------------------- /lib/ReactViews/Workbench/Controls/timer-section.scss.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace TimerSectionScssNamespace { 2 | export interface ITimerSectionScss { 3 | section: string; 4 | "timer-container": string; 5 | timerContainer: string; 6 | } 7 | } 8 | 9 | declare const TimerSectionScssModule: TimerSectionScssNamespace.ITimerSectionScss & { 10 | /** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */ 11 | locals: TimerSectionScssNamespace.ITimerSectionScss; 12 | }; 13 | 14 | export = TimerSectionScssModule; 15 | -------------------------------------------------------------------------------- /lib/ReactViews/Workbench/sortable.css: -------------------------------------------------------------------------------- 1 | .ui-sortable .ui-sortable-placeholder.visible { 2 | opacity: 0.2; 3 | } 4 | 5 | .ui-sortable .ui-sortable-item { 6 | cursor: auto; 7 | } 8 | -------------------------------------------------------------------------------- /lib/ReactViews/location-item.scss: -------------------------------------------------------------------------------- 1 | .location { 2 | padding: 8px; 3 | } 4 | -------------------------------------------------------------------------------- /lib/ReactViews/location-item.scss.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace LocationItemScssNamespace { 2 | export interface ILocationItemScss { 3 | location: string; 4 | } 5 | } 6 | 7 | declare const LocationItemScssModule: LocationItemScssNamespace.ILocationItemScss & { 8 | /** WARNING: Only available when `css-loader` is used without `style-loader` or `mini-css-extract-plugin` */ 9 | locals: LocationItemScssNamespace.ILocationItemScss; 10 | }; 11 | 12 | export = LocationItemScssModule; 13 | -------------------------------------------------------------------------------- /lib/Sass/common/_icons.scss: -------------------------------------------------------------------------------- 1 | .icon { 2 | max-height: 30px; 3 | max-width: 30px; 4 | } 5 | -------------------------------------------------------------------------------- /lib/Sass/common/_labels.scss: -------------------------------------------------------------------------------- 1 | @use "_variables"; 2 | 3 | .label { 4 | vertical-align: middle; 5 | padding: variables.$padding; 6 | display: block; 7 | line-height: variables.$btn-default-line-height; 8 | font-family: variables.$font-base; 9 | } 10 | 11 | .no-results { 12 | padding: variables.$padding !important; 13 | margin-bottom: variables.$padding; 14 | } 15 | -------------------------------------------------------------------------------- /lib/Sass/common/_variables.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * Wrapper around TerriaJS variables allowing us to easy override them from TerriaMap. 3 | * For the default values of variables check ./_default_variables.scss 4 | */ 5 | 6 | @forward "terriajs-variables"; 7 | -------------------------------------------------------------------------------- /lib/Sass/global/_sortable.scss: -------------------------------------------------------------------------------- 1 | @use "sass:meta"; 2 | :global { 3 | @include meta.load-css("~react-anything-sortable/sortable"); 4 | } 5 | -------------------------------------------------------------------------------- /lib/Sass/global/global.scss: -------------------------------------------------------------------------------- 1 | @use "leaflet"; 2 | @use "datePicker"; 3 | @use "normalize"; 4 | @use "datePickerOverride"; 5 | @use "slider"; 6 | @use "sortable"; 7 | -------------------------------------------------------------------------------- /lib/Styled/AnimatedSpinnerIcon.tsx: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | 3 | import { StyledIcon, GLYPHS } from "./Icon"; 4 | 5 | const AnimatedSpinnerIcon = styled(StyledIcon).attrs({ 6 | glyph: GLYPHS.loader 7 | })` 8 | animation: spin 2s infinite linear; 9 | 10 | @keyframes spin { 11 | 0% { 12 | transform: rotate(0deg); 13 | } 14 | 100% { 15 | transform: rotate(359deg); 16 | } 17 | } 18 | `; 19 | 20 | export default AnimatedSpinnerIcon; 21 | -------------------------------------------------------------------------------- /lib/Styled/Checkbox/index.ts: -------------------------------------------------------------------------------- 1 | export { default } from "./Checkbox"; 2 | -------------------------------------------------------------------------------- /lib/Styled/Hr.tsx: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | 3 | interface IProps { 4 | fullWidth?: boolean; 5 | size: number; 6 | borderBottomColor: string; 7 | } 8 | 9 | export const Hr = styled.hr` 10 | margin: 0; 11 | border: none; 12 | ${(props) => props.fullWidth && `width: 100%;`} 13 | border-bottom: ${(props) => props.size}px solid; 14 | border-bottom-color: ${(props) => props.borderBottomColor}; 15 | `; 16 | 17 | export default Hr; 18 | -------------------------------------------------------------------------------- /lib/Styled/IconWrapper.tsx: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | 3 | interface IconWrapperProps { 4 | width?: number; 5 | marginRight?: boolean; 6 | wide?: boolean; 7 | } 8 | 9 | export const IconWrapper = styled.span` 10 | display: grid; 11 | 12 | // ${(props) => `width: ${props.width || 16}px`}; 13 | & > * { 14 | margin: auto; 15 | } 16 | ${(props) => props.marginRight && `margin-right: 8px;`} 17 | 18 | flex-shrink: 0; 19 | ${(props) => props.wide && `margin: auto 16px;`} 20 | `; 21 | 22 | export default IconWrapper; 23 | -------------------------------------------------------------------------------- /lib/Table/TableColumnType.ts: -------------------------------------------------------------------------------- 1 | enum TableColumnType { 2 | longitude, 3 | latitude, 4 | height, 5 | time, 6 | scalar, 7 | enum, 8 | region, 9 | text, 10 | address, 11 | hidden 12 | } 13 | 14 | export function stringToTableColumnType( 15 | s: string 16 | ): TableColumnType | undefined { 17 | return TableColumnType[s as keyof typeof TableColumnType]; 18 | } 19 | 20 | export default TableColumnType; 21 | -------------------------------------------------------------------------------- /lib/ThirdParty/@mapbox/togeojson/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module "@mapbox/togeojson"; 2 | -------------------------------------------------------------------------------- /lib/ThirdParty/arcgis-pbf-parser/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module "arcgis-pbf-parser"; 2 | -------------------------------------------------------------------------------- /lib/ThirdParty/assimpjs/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module "assimpjs"; 2 | -------------------------------------------------------------------------------- /lib/ThirdParty/global.d.ts: -------------------------------------------------------------------------------- 1 | declare module "*.DAC"; 2 | declare module "*.css"; 3 | declare module "*.csv"; 4 | declare module "*.xml"; 5 | declare module "*.svg"; 6 | declare module "*.png"; 7 | declare module "*.jpg"; 8 | -------------------------------------------------------------------------------- /lib/ThirdParty/html-to-react/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module "html-to-react/lib/utils" { 2 | export * from "html-to-react/types/utils"; 3 | } 4 | -------------------------------------------------------------------------------- /lib/ThirdParty/javascript-natural-sort/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module "javascript-natural-sort"; 2 | -------------------------------------------------------------------------------- /lib/ThirdParty/mapbox__geojson-merge/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module "@mapbox/geojson-merge" { 2 | export function merge(json: any): any; 3 | } 4 | -------------------------------------------------------------------------------- /lib/ThirdParty/mapbox__point-geometry/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module "@mapbox/point-geometry" { 2 | export default class Point { 3 | x: number; 4 | y: number; 5 | constructor(x: number, y: number); 6 | sub(p: Point): Point; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /lib/ThirdParty/point-in-polygon/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module "point-in-polygon"; 2 | -------------------------------------------------------------------------------- /lib/ThirdParty/proj4-fully-loaded/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module "proj4-fully-loaded"; 2 | -------------------------------------------------------------------------------- /lib/ThirdParty/react-anything-sortable/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module "react-anything-sortable"; 2 | -------------------------------------------------------------------------------- /lib/ThirdParty/react-datepicker/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module "react-datepicker"; 2 | -------------------------------------------------------------------------------- /lib/ThirdParty/react-shallow-testutils/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module "react-shallow-testutils"; 2 | -------------------------------------------------------------------------------- /lib/ThirdParty/terriajs-html2canvas/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module "terriajs-html2canvas"; 2 | -------------------------------------------------------------------------------- /lib/ThirdParty/thredds-catalog-crawler/index.d.ts: -------------------------------------------------------------------------------- 1 | declare module "thredds-catalog-crawler/src/entryBrowser"; 2 | -------------------------------------------------------------------------------- /lib/ThirdParty/worker-loader.d.ts: -------------------------------------------------------------------------------- 1 | declare module "worker-loader!*" { 2 | type value = { 3 | new (): Worker; 4 | }; 5 | const value: value; 6 | export default value; 7 | } 8 | -------------------------------------------------------------------------------- /lib/ThirdParty/xml2json.d.ts: -------------------------------------------------------------------------------- 1 | export default function xml2json( 2 | xml: XMLDocument | string | undefined, 3 | extended?: boolean 4 | ): any; 5 | -------------------------------------------------------------------------------- /lib/Traits/SearchProviders/CatalogSearchProviderTraits.ts: -------------------------------------------------------------------------------- 1 | import primitiveTrait from "../Decorators/primitiveTrait"; 2 | import mixTraits from "../mixTraits"; 3 | import SearchProviderTraits from "./SearchProviderTraits"; 4 | 5 | export default class CatalogSearchProviderTraits extends mixTraits( 6 | SearchProviderTraits 7 | ) { 8 | @primitiveTrait({ 9 | type: "string", 10 | name: "Name", 11 | description: "Name of the search provider." 12 | }) 13 | name: string = "Catalog items"; 14 | } 15 | -------------------------------------------------------------------------------- /lib/Traits/SearchProviders/SearchProviderTraits.ts: -------------------------------------------------------------------------------- 1 | import ModelTraits from "../ModelTraits"; 2 | import primitiveTrait from "../Decorators/primitiveTrait"; 3 | 4 | export default class SearchProviderTraits extends ModelTraits { 5 | @primitiveTrait({ 6 | type: "string", 7 | name: "Name", 8 | description: "Name of the search provider." 9 | }) 10 | name: string = "unknown"; 11 | 12 | @primitiveTrait({ 13 | type: "number", 14 | name: "Minimum characters", 15 | description: "Minimum number of characters required for search to start", 16 | isNullable: true 17 | }) 18 | minCharacters?: number; 19 | } 20 | -------------------------------------------------------------------------------- /lib/Traits/Stratified.ts: -------------------------------------------------------------------------------- 1 | import StratumFromTraits from "../Models/Definition/StratumFromTraits"; 2 | import ModelTraits from "./ModelTraits"; 3 | import TraitsConstructor from "./TraitsConstructor"; 4 | 5 | export default interface Stratified { 6 | readonly TraitsClass: TraitsConstructor; 7 | readonly strata: Map>; 8 | readonly strataTopToBottom: ReadonlyMap>; 9 | } 10 | -------------------------------------------------------------------------------- /lib/Traits/TraitsClasses/ArcGisTerrainCatalogItemTraits.ts: -------------------------------------------------------------------------------- 1 | import mixTraits from "../mixTraits"; 2 | import CatalogMemberTraits from "./CatalogMemberTraits"; 3 | import LegendOwnerTraits from "./LegendOwnerTraits"; 4 | import MappableTraits from "./MappableTraits"; 5 | import UrlTraits from "./UrlTraits"; 6 | 7 | export default class ArcGisTerrainCatalogItemTraits extends mixTraits( 8 | UrlTraits, 9 | MappableTraits, 10 | CatalogMemberTraits, 11 | LegendOwnerTraits 12 | ) {} 13 | -------------------------------------------------------------------------------- /lib/Traits/TraitsClasses/AttributionTraits.ts: -------------------------------------------------------------------------------- 1 | import ModelTraits from "../ModelTraits"; 2 | import primitiveTrait from "../Decorators/primitiveTrait"; 3 | 4 | export default class AttributionTraits extends ModelTraits { 5 | @primitiveTrait({ 6 | name: "Attribution", 7 | description: "The attribution to display with the data.", 8 | type: "string" 9 | }) 10 | attribution?: string; 11 | } 12 | -------------------------------------------------------------------------------- /lib/Traits/TraitsClasses/CatalogFunctionTraits.ts: -------------------------------------------------------------------------------- 1 | import { JsonObject } from "../../Core/Json"; 2 | import anyTrait from "../Decorators/anyTrait"; 3 | import mixTraits from "../mixTraits"; 4 | import CatalogMemberTraits from "./CatalogMemberTraits"; 5 | import LegendOwnerTraits from "./LegendOwnerTraits"; 6 | 7 | export default class CatalogFunctionTraits extends mixTraits( 8 | CatalogMemberTraits, 9 | LegendOwnerTraits 10 | ) { 11 | @anyTrait({ 12 | name: "Parameters", 13 | description: "Function parameters (only contains key-value pairs)." 14 | }) 15 | parameters?: JsonObject; 16 | } 17 | -------------------------------------------------------------------------------- /lib/Traits/TraitsClasses/CatalogGroupTraits.ts: -------------------------------------------------------------------------------- 1 | import CatalogMemberTraits from "./CatalogMemberTraits"; 2 | import GroupTraits from "./GroupTraits"; 3 | import mixTraits from "../mixTraits"; 4 | 5 | export default class CatalogGroupTraits extends mixTraits( 6 | GroupTraits, 7 | CatalogMemberTraits 8 | ) {} 9 | -------------------------------------------------------------------------------- /lib/Traits/TraitsClasses/ChartPointOnMapTraits.ts: -------------------------------------------------------------------------------- 1 | import LatLonHeightTraits from "./LatLonHeightTraits"; 2 | import ModelTraits from "../ModelTraits"; 3 | import objectTrait from "../Decorators/objectTrait"; 4 | 5 | export default class ChartPointOnMapTraits extends ModelTraits { 6 | @objectTrait({ 7 | name: "Chart expand point on map", 8 | description: 9 | "The point on map where the current chart for the item was generated from. A marker will be shown at this point if the chart is active.", 10 | type: LatLonHeightTraits 11 | }) 12 | chartPointOnMap?: LatLonHeightTraits; 13 | } 14 | -------------------------------------------------------------------------------- /lib/Traits/TraitsClasses/DiscreteTimeTraits.ts: -------------------------------------------------------------------------------- 1 | import ModelTraits from "../ModelTraits"; 2 | import primitiveTrait from "../Decorators/primitiveTrait"; 3 | 4 | export default class DiscreteTimeTraits extends ModelTraits { 5 | @primitiveTrait({ 6 | name: "Time", 7 | description: "The discrete time, expressed as an ISO8601 string.", 8 | type: "string" 9 | }) 10 | time?: string; 11 | 12 | @primitiveTrait({ 13 | name: "Tag", 14 | description: 15 | "The tag associated with this time. If a tag is not specified, the time itself is used as the tag.", 16 | type: "string" 17 | }) 18 | tag?: string; 19 | } 20 | -------------------------------------------------------------------------------- /lib/Traits/TraitsClasses/ExportableTraits.ts: -------------------------------------------------------------------------------- 1 | import primitiveTrait from "../Decorators/primitiveTrait"; 2 | import ModelTraits from "../ModelTraits"; 3 | 4 | export default class ExportableTraits extends ModelTraits { 5 | @primitiveTrait({ 6 | name: "Disable export", 7 | description: "Disable user export functionality", 8 | type: "boolean" 9 | }) 10 | disableExport?: boolean = false; 11 | } 12 | -------------------------------------------------------------------------------- /lib/Traits/TraitsClasses/FeaturePickingTraits.ts: -------------------------------------------------------------------------------- 1 | import ModelTraits from "../ModelTraits"; 2 | import primitiveTrait from "../Decorators/primitiveTrait"; 3 | 4 | export default class FeaturePickingTraits extends ModelTraits { 5 | @primitiveTrait({ 6 | name: "Allow feature picking", 7 | type: "boolean", 8 | description: 9 | "Indicates whether features in this catalog item can be selected by clicking them on the map." 10 | }) 11 | allowFeaturePicking = true; 12 | } 13 | -------------------------------------------------------------------------------- /lib/Traits/TraitsClasses/GpxCatalogItemTraits.ts: -------------------------------------------------------------------------------- 1 | import primitiveTrait from "../Decorators/primitiveTrait"; 2 | import mixTraits from "../mixTraits"; 3 | import CatalogMemberTraits from "./CatalogMemberTraits"; 4 | import { GeoJsonTraits } from "./GeoJsonTraits"; 5 | import LegendOwnerTraits from "./LegendOwnerTraits"; 6 | 7 | export default class GpxCatalogItemTraits extends mixTraits( 8 | GeoJsonTraits, 9 | CatalogMemberTraits, 10 | LegendOwnerTraits 11 | ) { 12 | @primitiveTrait({ 13 | type: "string", 14 | name: "GPX String", 15 | description: "A GPX string." 16 | }) 17 | gpxString?: string; 18 | } 19 | -------------------------------------------------------------------------------- /lib/Traits/TraitsClasses/HighlightColorTraits.ts: -------------------------------------------------------------------------------- 1 | import ModelTraits from "../ModelTraits"; 2 | import primitiveTrait from "../Decorators/primitiveTrait"; 3 | 4 | export default class HighlightColorTraits extends ModelTraits { 5 | @primitiveTrait({ 6 | name: "Highlight color", 7 | type: "string", 8 | description: 9 | "The color used to highlight a feature when it is picked. If not set, this defaults to `Terria.baseMapContrastColor`" 10 | }) 11 | get highlightColor(): string | undefined { 12 | return; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /lib/Traits/TraitsClasses/I3SCatalogItemTraits.ts: -------------------------------------------------------------------------------- 1 | import { traitClass } from "../Trait"; 2 | import mixTraits from "../mixTraits"; 3 | import I3STraits from "./I3STraits"; 4 | import Cesium3DTilesCatalogItemTraits from "./Cesium3DTilesCatalogItemTraits"; 5 | 6 | @traitClass({ 7 | description: `Creates an I3S item in the catalog from an slpk.`, 8 | example: { 9 | type: "I3S", 10 | name: "CoM Melbourne 3D Photo Mesh", 11 | id: "some-unique-id" 12 | } 13 | }) 14 | export default class I3SCatalogItemTraits extends mixTraits( 15 | Cesium3DTilesCatalogItemTraits, 16 | I3STraits 17 | ) {} 18 | -------------------------------------------------------------------------------- /lib/Traits/TraitsClasses/LayerOrderingTraits.ts: -------------------------------------------------------------------------------- 1 | import ModelTraits from "../ModelTraits"; 2 | import primitiveTrait from "../Decorators/primitiveTrait"; 3 | 4 | export default class LayerOrderingTraits extends ModelTraits { 5 | @primitiveTrait({ 6 | type: "boolean", 7 | name: "Keep on top", 8 | description: "Keeps the layer on top of all other imagery layers." 9 | }) 10 | keepOnTop = false; 11 | 12 | @primitiveTrait({ 13 | type: "boolean", 14 | name: "Supports reordering", 15 | description: "Does this layer support reordering in the workbench." 16 | }) 17 | supportsReordering = true; 18 | } 19 | -------------------------------------------------------------------------------- /lib/Traits/TraitsClasses/OpacityTraits.ts: -------------------------------------------------------------------------------- 1 | import primitiveTrait from "../Decorators/primitiveTrait"; 2 | import ModelTraits from "../ModelTraits"; 3 | 4 | export default class OpacityTraits extends ModelTraits { 5 | @primitiveTrait({ 6 | type: "number", 7 | name: "Opacity", 8 | description: "The opacity of the item." 9 | }) 10 | opacity: number = 0.8; 11 | 12 | @primitiveTrait({ 13 | type: "boolean", 14 | name: "Disable opacity control", 15 | description: 16 | "When true, the user will be unable to change the opacity of the item" 17 | }) 18 | disableOpacityControl: boolean = false; 19 | } 20 | -------------------------------------------------------------------------------- /lib/Traits/TraitsClasses/ReferenceTraits.ts: -------------------------------------------------------------------------------- 1 | import primitiveTrait from "../Decorators/primitiveTrait"; 2 | import mixTraits from "../mixTraits"; 3 | import { ItemPropertiesTraits } from "./ItemPropertiesTraits"; 4 | export default class ReferenceTraits extends mixTraits(ItemPropertiesTraits) { 5 | @primitiveTrait({ 6 | type: "boolean", 7 | name: "Is catalog item open in workbench", 8 | description: "Whether the item in the workbench open or collapsed." 9 | }) 10 | isOpenInWorkbench?: boolean = true; 11 | } 12 | -------------------------------------------------------------------------------- /lib/Traits/TraitsClasses/ResultPendingCatalogItemTraits.ts: -------------------------------------------------------------------------------- 1 | import mixTraits from "../mixTraits"; 2 | import CatalogMemberTraits from "./CatalogMemberTraits"; 3 | 4 | class ResultPendingCatalogItemTraits extends mixTraits(CatalogMemberTraits) {} 5 | 6 | export default ResultPendingCatalogItemTraits; 7 | -------------------------------------------------------------------------------- /lib/Traits/TraitsClasses/SplitItemReferenceTraits.ts: -------------------------------------------------------------------------------- 1 | import primitiveTrait from "../Decorators/primitiveTrait"; 2 | import mixTraits from "../mixTraits"; 3 | import ReferenceTraits from "./ReferenceTraits"; 4 | 5 | export default class SplitItemReferenceTraits extends mixTraits( 6 | ReferenceTraits 7 | ) { 8 | @primitiveTrait({ 9 | type: "string", 10 | name: "Split source item id", 11 | description: "The ID of the original item from which the split was created." 12 | }) 13 | splitSourceItemId?: string; 14 | } 15 | -------------------------------------------------------------------------------- /lib/Traits/TraitsClasses/ThreddsItemReferenceTraits.ts: -------------------------------------------------------------------------------- 1 | import CatalogMemberReferenceTraits from "./CatalogMemberReferenceTraits"; 2 | import mixTraits from "../mixTraits"; 3 | import UrlTraits from "./UrlTraits"; 4 | 5 | export default class ThreddsItemReferenceTraits extends mixTraits( 6 | UrlTraits, 7 | CatalogMemberReferenceTraits 8 | ) {} 9 | -------------------------------------------------------------------------------- /lib/Traits/TraitsClasses/UrlReferenceTraits.ts: -------------------------------------------------------------------------------- 1 | import CatalogMemberReferenceTraits from "./CatalogMemberReferenceTraits"; 2 | import mixTraits from "../mixTraits"; 3 | import primitiveTrait from "../Decorators/primitiveTrait"; 4 | import UrlTraits from "./UrlTraits"; 5 | 6 | export default class UrlReferenceTraits extends mixTraits( 7 | CatalogMemberReferenceTraits, 8 | UrlTraits 9 | ) { 10 | @primitiveTrait({ 11 | name: "Allow Load", 12 | description: 13 | "Whether it's ok to attempt to load the URL and detect failures.", 14 | type: "boolean" 15 | }) 16 | allowLoad?: boolean = true; 17 | } 18 | -------------------------------------------------------------------------------- /lib/Traits/TraitsClasses/WebProcessingServiceCatalogGroupTraits.ts: -------------------------------------------------------------------------------- 1 | import CatalogMemberTraits from "./CatalogMemberTraits"; 2 | import GetCapabilitiesTraits from "./GetCapabilitiesTraits"; 3 | import GroupTraits from "./GroupTraits"; 4 | import mixTraits from "../mixTraits"; 5 | import UrlTraits from "./UrlTraits"; 6 | import LegendOwnerTraits from "./LegendOwnerTraits"; 7 | 8 | export default class WebProcessingServiceCatalogGroupTraits extends mixTraits( 9 | UrlTraits, 10 | GroupTraits, 11 | GetCapabilitiesTraits, 12 | CatalogMemberTraits, 13 | LegendOwnerTraits 14 | ) {} 15 | -------------------------------------------------------------------------------- /lib/Traits/TraitsClasses/YDYRCatalogFunctionTraits.ts: -------------------------------------------------------------------------------- 1 | import mixTraits from "../mixTraits"; 2 | import CatalogFunctionTraits from "./CatalogFunctionTraits"; 3 | import UrlTraits from "./UrlTraits"; 4 | 5 | export default class YDYRCatalogFunctionTraits extends mixTraits( 6 | UrlTraits, 7 | CatalogFunctionTraits 8 | ) {} 9 | -------------------------------------------------------------------------------- /lib/Traits/TraitsConstructor.ts: -------------------------------------------------------------------------------- 1 | import ModelTraits from "./ModelTraits"; 2 | import Trait from "./Trait"; 3 | import { JsonObject } from "../Core/Json"; 4 | 5 | export default interface TraitsConstructor { 6 | new (...args: any[]): T; 7 | prototype: T; 8 | traits: { 9 | [key: string]: Trait; 10 | }; 11 | description?: string; 12 | example?: JsonObject; 13 | } 14 | -------------------------------------------------------------------------------- /lib/ViewModels/UploadDataTypes.ts: -------------------------------------------------------------------------------- 1 | export { 2 | default as getDataTypes, 3 | addOrReplaceLocalFileUploadType, 4 | addOrReplaceRemoteFileUploadType, 5 | type LocalDataType, 6 | type RemoteDataType 7 | } from "../Core/getDataType"; 8 | export { registerUrlHandlerForCatalogMemberType } from "../Models/Catalog/CatalogReferences/UrlReference"; 9 | -------------------------------------------------------------------------------- /lib/ViewModels/WorkbenchItem/index.ts: -------------------------------------------------------------------------------- 1 | export * as Inputs from "./Inputs"; 2 | -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | command = "yarn gulp docs" 3 | publish = "wwwroot/doc" 4 | [build.environment] 5 | NODE_VERSION = "20" 6 | NODE_OPTIONS = "--max_old_space_size=4096" 7 | NETLIFY_USE_YARN = "true" 8 | PYTHON_VERSION = "3.13" 9 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | click==8.1.8 2 | ghp-import==2.1.0 3 | Jinja2==3.1.6 4 | Markdown==3.8 5 | MarkupSafe==3.0.2 6 | mergedeep==1.3.4 7 | mkdocs==1.6.1 8 | mkdocs-get-deps==0.2.0 9 | mkdocs-material==9.6.12 10 | packaging==25.0 11 | pathspec==0.12.1 12 | platformdirs==4.3.7 13 | python-dateutil==2.9.0.post0 14 | PyYAML==6.0.2 15 | pyyaml_env_tag==0.1 16 | six==1.17.0 17 | watchdog==6.0.0 18 | -------------------------------------------------------------------------------- /terria-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/terria-logo.png -------------------------------------------------------------------------------- /terria-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/terria-screenshot.png -------------------------------------------------------------------------------- /test/.eslintrc.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | module.exports = { 4 | env: { 5 | jasmine: true 6 | } 7 | }; 8 | -------------------------------------------------------------------------------- /test/Core/sortedIndicesSpec.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | import sortedIndices from "../../lib/Core/sortedIndices"; 4 | 5 | describe("sortedIndices", function () { 6 | it("works", function () { 7 | var data = ["c", "a", "b", "d"]; 8 | var indices = sortedIndices(data); 9 | expect(indices).toEqual([1, 2, 0, 3]); 10 | }); 11 | }); 12 | -------------------------------------------------------------------------------- /test/Data/RegionMappingJsonSpec.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | // Tests will not build if this import statement is not valid. 4 | import RegionMappingJson from "../../wwwroot/data/regionMapping.json"; 5 | 6 | describe("RegionMappingJson", function () { 7 | it("is valid JSON", function () { 8 | expect(RegionMappingJson).toEqual(RegionMappingJson); 9 | }); 10 | }); 11 | -------------------------------------------------------------------------------- /test/ModelMixins/ClippingPlanesMixinSpec.ts: -------------------------------------------------------------------------------- 1 | describe("ClippingPlanesMixin", function () { 2 | it("can create a simple clipping planes collection"); 3 | it("can create a box clipping planes collection"); 4 | it("can create box clipping plane graphics"); 5 | }); 6 | -------------------------------------------------------------------------------- /test/ModelMixins/MinMaxLevelMixinSpec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/test/ModelMixins/MinMaxLevelMixinSpec.ts -------------------------------------------------------------------------------- /test/SpecHelpers.ts: -------------------------------------------------------------------------------- 1 | export function xml(text: string) { 2 | return new DOMParser().parseFromString(text, "application/xml"); 3 | } 4 | -------------------------------------------------------------------------------- /test/Traits/traitsClassToModelClassSpec.ts: -------------------------------------------------------------------------------- 1 | import traitsClassToModelClass from "../../lib/Traits/traitsClassToModelClass"; 2 | import UrlTraits from "../../lib/Traits/TraitsClasses/UrlTraits"; 3 | 4 | describe("traitsClassToModelClass", function () { 5 | it("memoizes correctly", function () { 6 | expect(traitsClassToModelClass(UrlTraits)).toBe( 7 | traitsClassToModelClass(UrlTraits) 8 | ); 9 | }); 10 | }); 11 | -------------------------------------------------------------------------------- /test/Types/TypeConditionalsSpec.ts: -------------------------------------------------------------------------------- 1 | import { expectTrue, expectFalse } from "./TypeChecks"; 2 | import { AllowsNull, Equals } from "../../lib/Core/TypeConditionals"; 3 | import { CopyNull } from "../../lib/Core/TypeModifiers"; 4 | 5 | expectTrue>(); 6 | expectFalse>(); 7 | expectTrue>(); 8 | 9 | expectTrue, string | null>>(); 10 | -------------------------------------------------------------------------------- /test/Types/TypeModifiersSpec.ts: -------------------------------------------------------------------------------- 1 | import { Equals } from "../../lib/Core/TypeConditionals"; 2 | import { CopyUndefined } from "../../lib/Core/TypeModifiers"; 3 | import { expectTrue } from "./TypeChecks"; 4 | 5 | expectTrue< 6 | Equals, string | undefined> 7 | >(); 8 | expectTrue, string>>(); 9 | expectTrue< 10 | Equals, undefined | string> 11 | >(); 12 | -------------------------------------------------------------------------------- /test/jasmine.d.ts: -------------------------------------------------------------------------------- 1 | declare module "jasmine-enzyme"; 2 | -------------------------------------------------------------------------------- /tsconfig-node.json: -------------------------------------------------------------------------------- 1 | // This tsconfig is used to build the model layer only for use in a node.js app. 2 | // Build with ./node_modules/.bin/tsc -p tsconfig-node.json 3 | { 4 | "extends": "./tsconfig.json", 5 | "compilerOptions": { 6 | "outDir": "dist", 7 | "types": [ 8 | "terriajs-cesium", 9 | "mapbox__geojson-merge", 10 | "mapbox__point-geometry", 11 | "terriajs-html2canvas", 12 | "styled-components", // eventually it will be required anyway for SSR. 13 | "react" 14 | ] 15 | }, 16 | "include": ["./lib/**/*"] 17 | } 18 | -------------------------------------------------------------------------------- /wwwroot/data/WW15MGH.DAC: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/data/WW15MGH.DAC -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-ABARES_CODE_ABARES_Ag_Regions.json: -------------------------------------------------------------------------------- 1 | {"layer":"ABARES_Ag_Regions","property":"AbaresCode","values":[111,121,122,123,131,132,221,222,223,231,311,312,313,314,321,322,332,411,421,422,431,511,512,521,522,531,631,711,712,713,714,331]} -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-ADD_2016_AUST_ADD_CODE16.json: -------------------------------------------------------------------------------- 1 | {"layer":"ADD_2016_AUST","property":"ADD_CODE16","values":["D05","D06","D02","D13","D07","D91","D10","D12","D04","D08","D03","D11","D09","D01","D94","D97"]} -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-ADD_2016_AUST_ADD_NAME16.json: -------------------------------------------------------------------------------- 1 | {"layer":"ADD_2016_AUST","property":"ADD_NAME16","values":["North Western Plateau","Pilbara-Gascoyne","Lake Eyre Basin","Tasmania","South Australian Gulf","Unclassified (Aust.)","South West Coast","Tanami-Timor Sea Coast","North East Coast","South East Coast (NSW)","Murray-Darling Basin","South Western Plateau","South East Coast (Victoria)","Carpentaria Coast","No usual address (Aust.)","Migratory - Offshore - Shipping (Aust.)"]} -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-FID_ADD_2011_AUST_ADD_CODE.json: -------------------------------------------------------------------------------- 1 | {"layer":"FID_ADD_2011_AUST","property":"ADD_CODE","values":["D91","D94","D97","D02","D05","D03","D06","D09","D08","D10","D12","D07","D01","D04","D11"]} -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-FID_ADD_2011_AUST_ADD_NAME.json: -------------------------------------------------------------------------------- 1 | {"layer":"FID_ADD_2011_AUST","property":"ADD_NAME","values":["Unclassified (Aust.)","No usual address (Aust.)","Migratory - Offshore - Shipping (Aust.)","Indian Ocean","North East Coast","Lake Eyre","North Western Plateau","South West Coast","South East Coast","South Western Plateau","Timor Sea","South Australian Gulf","Gulf Of Carpentaria","Murray-Darling","Tasmania"]} -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-FID_AUS_2011_AUST_AUS_CODE.json: -------------------------------------------------------------------------------- 1 | {"layer":"region_map:FID_AUS_2011_AUST","property":"AUS_CODE","values": [0]} 2 | -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-FID_GCCSA_2011_AUST_GCC_CODE11.json: -------------------------------------------------------------------------------- 1 | {"layer":"region_map:FID_GCCSA_2011_AUST","property":"GCC_CODE11","values": ["19499","19799","1GSYD","1RNSW","29499","29799","2GMEL","2RVIC","39499","39799","3GBRI","3RQLD","49499","49799","4GADE","4RSAU","59499","59799","5GPER","5RWAU","69499","69799","6GHOB","6RTAS","79499","79799","7GDAR","7RNTE","89499","89799","8ACTE","99499","99799","9OTER"]} 2 | -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-FID_IREG_2011_AUST_IR_CODE11.json: -------------------------------------------------------------------------------- 1 | {"layer":"region_map:FID_IREG_2011_AUST","property":"IR_CODE11","values": [101,102,103,104,105,106,107,194,197,201,202,294,297,301,302,303,304,305,306,307,308,394,397,401,402,403,494,497,501,502,503,504,505,506,507,508,594,597,694,697,701,702,703,704,705,706,707,794,797,801,894,897,901,902,994,997,601]} 2 | -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-FID_LGA_2013_AUST_STE_NAME13.json: -------------------------------------------------------------------------------- 1 | {"layer":"region_map:FID_LGA_2013_AUST","property":"STE_NAME13","values": [" 2 | 3 | No such attribute: STE_NAME13 4 | 5 | 6 | "]} 7 | -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-FID_LGA_2015_AUST_STE_NAME15.json: -------------------------------------------------------------------------------- 1 | {"layer":"region_map:FID_LGA_2015_AUST","property":"STE_NAME15","values": [" 2 | 3 | No such attribute: STE_NAME15 4 | 5 | 6 | "]} 7 | -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-FID_NRMR_2011_AUST_NRMR_CODE.json: -------------------------------------------------------------------------------- 1 | {"layer":"FID_NRMR_2011_AUST","property":"NRMR_CODE","values":["101","102","103","104","105","106","107","108","109","110","111","112","113","114","194","197","201","202","203","204","205","206","207","208","209","210","294","297","301","302","303","304","305","306","307","308","309","310","311","312","313","314","315","394","397","401","402","403","404","405","406","407","408","494","497","501","502","503","504","505","506","594","597","601","602","603","694","697","701","794","797","801","894","897","901","902","903","994","997"]} -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-FID_PHN_boundaries_AUS_Sep2015_V5_PHN_Code.json: -------------------------------------------------------------------------------- 1 | {"layer":"region_map:FID_PHN_boundaries_AUS_Sep2015_V5","property":"PHN_Code","values": ["PHN401","PHN801","PHN301","PHN302","PHN101","PHN306","PHN402","PHN503","PHN304","PHN202","PHN204","PHN303","PHN206","PHN108","PHN205","PHN110","PHN104","PHN109","PHN201","PHN307","PHN102","PHN701","PHN501","PHN502","PHN203","PHN106","PHN105","PHN601","PHN107","PHN305","PHN103"]} 2 | -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-FID_RA_2011_AUST_RA_CODE11.json: -------------------------------------------------------------------------------- 1 | {"layer":"region_map:FID_RA_2011_AUST","property":"RA_CODE11","values": [10,11,12,13,14,15,19,20,21,22,23,25,29,30,31,32,33,34,35,39,40,41,42,43,44,45,49,50,51,52,53,54,55,59,61,62,63,64,65,69,72,73,74,75,79,80,81,85,89,91,94,95,99]} 2 | -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-FID_SA4_2011_AUST_SA4_CODE11.json: -------------------------------------------------------------------------------- 1 | {"layer":"region_map:FID_SA4_2011_AUST","property":"SA4_CODE11","values": [101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,197,199,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,297,299,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,397,399,401,402,403,404,405,406,407,497,499,501,502,503,504,505,506,507,508,509,597,599,601,602,603,604,697,699,701,702,797,799,801,897,899,901,997,999]} 2 | -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-FID_SOSR_2011_AUST_SSR_CODE11.json: -------------------------------------------------------------------------------- 1 | {"layer":"region_map:FID_SOSR_2011_AUST","property":"SSR_CODE11","values": [101,102,103,111,112,113,114,115,121,122,131,179,199,201,203,211,212,213,214,215,221,222,231,279,299,301,302,303,311,312,313,314,315,321,322,331,379,399,401,412,413,414,415,421,422,431,479,499,501,511,512,513,514,515,521,522,531,579,599,603,611,612,613,614,615,621,622,631,679,699,703,712,714,715,721,722,731,779,799,802,822,831,879,899,915,922,931,979,999]} 2 | -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-FID_SOS_2011_AUST_SOS_CODE11.json: -------------------------------------------------------------------------------- 1 | {"layer":"region_map:FID_SOS_2011_AUST","property":"SOS_CODE11","values": [10,11,12,13,17,19,20,21,22,23,27,29,30,31,32,33,37,39,40,41,42,43,47,49,50,51,52,53,57,59,60,61,62,63,67,69,70,71,72,73,77,79,80,82,83,87,89,91,92,93,97,99]} 2 | -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-FID_STE_2011_AUST_STE_CODE11.json: -------------------------------------------------------------------------------- 1 | {"layer":"region_map:FID_STE_2011_AUST","property":"STE_CODE11","values": [1,2,3,4,5,6,7,8,9]} 2 | -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-FID_STE_2011_AUST_STE_NAME11.json: -------------------------------------------------------------------------------- 1 | {"layer":"region_map:FID_STE_2011_AUST","property":"STE_NAME11","values": ["New South Wales","Victoria","Queensland","South Australia","Western Australia","Tasmania","Northern Territory","Australian Capital Territory","Other Territories"]} 2 | -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-GCCSA_2016_AUST_GCC_CODE16.json: -------------------------------------------------------------------------------- 1 | {"layer":"GCCSA_2016_AUST","property":"GCC_CODE16","values":["1RNSW","1GSYD","2RVIC","2GMEL","3GBRI","3RQLD","4RSAU","4GADE","5GPER","5RWAU","6GHOB","6RTAS","7RNTE","7GDAR","8ACTE","9OTER","19499","19799","29499","29799","39499","39799","49499","49799","59499","59799","69499","69799","79499","79799","89499","89799","99499","99799"]} -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-GCCSA_2021_GCCSA_2021.json: -------------------------------------------------------------------------------- 1 | {"layer":"GCCSA_2021","property":"GCC_CODE21","values":["1GSYD","1RNSW","19499","19799","2GMEL","2RVIC","29499","29799","3GBRI","3RQLD","39499","39799","4GADE","4RSAU","49499","49799","5GPER","5RWAU","59499","59799","6GHOB","6RTAS","69499","69799","7GDAR","7RNTE","79499","79799","8ACTE","89499","89799","9OTER","99499","99799","ZZZZZ"]} -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-RRA_Name_Regional_Recovery_Areas.json: -------------------------------------------------------------------------------- 1 | {"layer":"Regional_Recovery_Areas","property":"RRA_Name","values":["West Victoria","South SA","South WA","Tasmania","NT","South East QLD","North WA","Central NSW","South West NSW","East Victoria","North NSW","South West QLD","North QLD","North West QLD","Townsville Region","South East NSW","North SA"]} -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-STE_2016_AUST_STE_CODE16.json: -------------------------------------------------------------------------------- 1 | {"layer":"STE_2016_AUST","property":"STE_CODE16","values":["1","2","3","4","5","6","7","8","9"]} -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-STE_2016_AUST_STE_NAME16.json: -------------------------------------------------------------------------------- 1 | {"layer":"STE_2016_AUST","property":"STE_NAME16","values":["New South Wales","Victoria","Queensland","South Australia","Western Australia","Tasmania","Northern Territory","Australian Capital Territory","Other Territories"]} -------------------------------------------------------------------------------- /wwwroot/data/regionids/region_map-ibra7_regions_REG_CODE_7.json: -------------------------------------------------------------------------------- 1 | {"layer":"ibra7_regions","property":"REG_CODE_7","values":["ARC","ARP","AUA","AVW","BBN","BBS","BEL","BHC","BRT","CAR","CEA","CEK","CER","CHC","CMC","COO","COP","COS","CYP","DAB","DAC","DAL","DEU","DMR","DRP","EIU","ESP","EYB","FIN","FLB","FUR","GAS","GAW","GES","GFU","GID","GSD","GUC","GUP","GVD","HAM","ITI","JAF","KAN","KIN","LSD","MAC","MAL","MDD","MGD","MII","MUL","MUR","NAN","NCP","NET","NNC","NOK","NSS","NUL","OVP","PCK","PIL","PSI","RIV","SAI","SCP","SEC","SEH","SEQ","SSD","STP","STU","SVP","SWA","SYB","TAN","TCH","TIW","TNM","TNS","TSE","TSR","TWE","VIB","VIM","WAR","WET","YAL"]} -------------------------------------------------------------------------------- /wwwroot/images/Australia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/Australia.png -------------------------------------------------------------------------------- /wwwroot/images/TimelineIcons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/TimelineIcons.png -------------------------------------------------------------------------------- /wwwroot/images/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/ajax-loader.gif -------------------------------------------------------------------------------- /wwwroot/images/ar-realign-guide.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/ar-realign-guide.gif -------------------------------------------------------------------------------- /wwwroot/images/australian-topo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/australian-topo.png -------------------------------------------------------------------------------- /wwwroot/images/bing-aerial-labels-wide-low-quality.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/bing-aerial-labels-wide-low-quality.jpg -------------------------------------------------------------------------------- /wwwroot/images/bing-aerial-labels-wide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/bing-aerial-labels-wide.png -------------------------------------------------------------------------------- /wwwroot/images/bing-aerial-labels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/bing-aerial-labels.png -------------------------------------------------------------------------------- /wwwroot/images/bing-aerial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/bing-aerial.png -------------------------------------------------------------------------------- /wwwroot/images/bing-maps-roads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/bing-maps-roads.png -------------------------------------------------------------------------------- /wwwroot/images/blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/blank.png -------------------------------------------------------------------------------- /wwwroot/images/data-stories-getting-started.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/data-stories-getting-started.jpg -------------------------------------------------------------------------------- /wwwroot/images/difference-pin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/difference-pin.png -------------------------------------------------------------------------------- /wwwroot/images/feature.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/feature.gif -------------------------------------------------------------------------------- /wwwroot/images/google_on_non_white_hdpi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/google_on_non_white_hdpi.png -------------------------------------------------------------------------------- /wwwroot/images/guides/satellite-feature.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/guides/satellite-feature.jpg -------------------------------------------------------------------------------- /wwwroot/images/guides/satellite-location.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/guides/satellite-location.jpg -------------------------------------------------------------------------------- /wwwroot/images/guides/satellite-styles.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/guides/satellite-styles.jpg -------------------------------------------------------------------------------- /wwwroot/images/guides/satellite-time.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/guides/satellite-time.jpg -------------------------------------------------------------------------------- /wwwroot/images/guides/satellite-zoom.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/guides/satellite-zoom.jpg -------------------------------------------------------------------------------- /wwwroot/images/hydro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/hydro.png -------------------------------------------------------------------------------- /wwwroot/images/icons/about.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /wwwroot/images/icons/accordion-close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /wwwroot/images/icons/accordion-open.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /wwwroot/images/icons/arrow-down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /wwwroot/images/icons/calendar2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /wwwroot/images/icons/cancel.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /wwwroot/images/icons/circlef-full.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /wwwroot/images/icons/close-light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /wwwroot/images/icons/close-tool.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /wwwroot/images/icons/closed.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /wwwroot/images/icons/compare-left-panel.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /wwwroot/images/icons/compare-right-panel.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /wwwroot/images/icons/compare.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /wwwroot/images/icons/compass-inner-background.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/icons/compass-inner-background.svg -------------------------------------------------------------------------------- /wwwroot/images/icons/compass-outer-skeleton.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /wwwroot/images/icons/controls.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /wwwroot/images/icons/dataCatalog.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /wwwroot/images/icons/difference.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /wwwroot/images/icons/download-new.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /wwwroot/images/icons/feedback.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /wwwroot/images/icons/increase.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /wwwroot/images/icons/info.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /wwwroot/images/icons/location-thick.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /wwwroot/images/icons/location2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /wwwroot/images/icons/lock.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /wwwroot/images/icons/menu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /wwwroot/images/icons/minus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /wwwroot/images/icons/one-two-three.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /wwwroot/images/icons/opened.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /wwwroot/images/icons/pedestrian.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /wwwroot/images/icons/play-inverted.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /wwwroot/images/icons/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /wwwroot/images/icons/remove.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /wwwroot/images/icons/right2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /wwwroot/images/icons/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /wwwroot/images/icons/switch-off.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /wwwroot/images/icons/switch-on.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /wwwroot/images/icons/sydney_bus_icon_smaller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/icons/sydney_bus_icon_smaller.png -------------------------------------------------------------------------------- /wwwroot/images/icons/trashcan.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /wwwroot/images/icons/upload-thin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /wwwroot/images/icons/upload.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /wwwroot/images/icons/user.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /wwwroot/images/icons/zoom-in.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /wwwroot/images/icons/zoom-out.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /wwwroot/images/map-pin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/map-pin.png -------------------------------------------------------------------------------- /wwwroot/images/natural-earth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/natural-earth.png -------------------------------------------------------------------------------- /wwwroot/images/openstreetmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/openstreetmap.png -------------------------------------------------------------------------------- /wwwroot/images/panel-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/panel-bg.png -------------------------------------------------------------------------------- /wwwroot/images/time-series-guide.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/time-series-guide.jpg -------------------------------------------------------------------------------- /wwwroot/images/welcome-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/images/welcome-bg.jpg -------------------------------------------------------------------------------- /wwwroot/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | TerriaJS 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /wwwroot/languages/el/translation.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /wwwroot/languages/eu/translation.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /wwwroot/languages/lo/translation.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /wwwroot/languages/lzh/translation.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /wwwroot/languages/ru/translation.json: -------------------------------------------------------------------------------- 1 | { 2 | "general": { 3 | "confirm": "Подтвердить", 4 | "delete": "Удалить", 5 | "cancel": "Отменить", 6 | "back": "Назад", 7 | "close": "Закрыть", 8 | "open": "Открыть" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /wwwroot/languages/si/translation.json: -------------------------------------------------------------------------------- 1 | { 2 | "models": { 3 | "webProcessingService": { 4 | "errorDetails": "දෝෂ විස්තර" 5 | } 6 | }, 7 | "zoomCotrol": { 8 | "zoomOut": "කුඩාලනය කරන්න", 9 | "zoomReset": "විශාලනය නැවත සකසන්න", 10 | "zoomIn": "විශාලනය කරන්න" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /wwwroot/languages/tr/translation.json: -------------------------------------------------------------------------------- 1 | { 2 | "general": { 3 | "next": "Sonra", 4 | "skip": "Geç", 5 | "back": "Geri", 6 | "delete": "Sil", 7 | "cancel": "İptal", 8 | "confirm": "Onayla", 9 | "close": "Kapat", 10 | "open": "Aç", 11 | "prev": "Önce" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /wwwroot/languages/vi/translation.json: -------------------------------------------------------------------------------- 1 | { 2 | "general": { 3 | "close": "Đóng" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /wwwroot/models/prism-train.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/models/prism-train.glb -------------------------------------------------------------------------------- /wwwroot/test/ArcGisFeatureServer/Tiled/test-tile.pbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/ArcGisFeatureServer/Tiled/test-tile.pbf -------------------------------------------------------------------------------- /wwwroot/test/ArcGisImageServer/tile/identify.json: -------------------------------------------------------------------------------- 1 | { 2 | "objectId": 0, 3 | "name": "Pixel", 4 | "value": "178, 135, 99, 255", 5 | "location": { 6 | "x": 15865828.500025423, 7 | "y": -2553895.2233379674, 8 | "spatialReference": { "wkid": 102100, "latestWkid": 3857 } 9 | }, 10 | "properties": null, 11 | "catalogItems": null, 12 | "catalogItemVisibilities": [] 13 | } 14 | -------------------------------------------------------------------------------- /wwwroot/test/ArcGisImageServer/time/identify.json: -------------------------------------------------------------------------------- 1 | { 2 | "objectId": 0, 3 | "name": "Pixel", 4 | "value": "8", 5 | "location": { 6 | "x": 128.2904493061971, 7 | "y": -18.296866690954595, 8 | "spatialReference": { "wkid": 4326, "latestWkid": 4326 } 9 | }, 10 | "properties": null, 11 | "catalogItems": null, 12 | "catalogItemVisibilities": [] 13 | } 14 | -------------------------------------------------------------------------------- /wwwroot/test/ArcGisMapServer/Dynamic_National_Map_Hydrography_and_Marine/token.json: -------------------------------------------------------------------------------- 1 | { 2 | "token": "fakeToken" 3 | } 4 | -------------------------------------------------------------------------------- /wwwroot/test/ArcGisServer/sampleserver6/AGP.json: -------------------------------------------------------------------------------- 1 | { 2 | "currentVersion": 10.71, 3 | "folders": [], 4 | "services": [ 5 | { 6 | "name": "AGP/Census", 7 | "type": "MapServer" 8 | }, 9 | { 10 | "name": "AGP/Hurricanes", 11 | "type": "MapServer" 12 | }, 13 | { 14 | "name": "AGP/USA", 15 | "type": "MapServer" 16 | }, 17 | { 18 | "name": "AGP/WindTurbines", 19 | "type": "MapServer" 20 | } 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /wwwroot/test/AssImp/cube_texture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/AssImp/cube_texture.png -------------------------------------------------------------------------------- /wwwroot/test/AssImp/zip-test.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/AssImp/zip-test.zip -------------------------------------------------------------------------------- /wwwroot/test/CartoMapV3/query-geojson-response.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "features": [ 4 | { 5 | "type": "Feature", 6 | "geometry": { 7 | "type": "Point", 8 | "coordinates": [23.167256, 54.365886] 9 | }, 10 | "properties": { 11 | "cartodb_id": 34098, 12 | "gps_code": null, 13 | "name": "Airport" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /wwwroot/test/CartoMapV3/table-geojson-response.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "FeatureCollection", 3 | "features": [ 4 | { 5 | "type": "Feature", 6 | "geometry": { 7 | "type": "Point", 8 | "coordinates": [29.474258423, 0.50274682] 9 | }, 10 | "properties": { 11 | "cartodb_id": 16048, 12 | "gps_code": null, 13 | "name": "Beni" 14 | } 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /wwwroot/test/GeoJSON/bike_racks.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/GeoJSON/bike_racks.zip -------------------------------------------------------------------------------- /wwwroot/test/GeoJSON/cemeteries.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/GeoJSON/cemeteries.zip -------------------------------------------------------------------------------- /wwwroot/test/GeoJSON/gme.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/GeoJSON/gme.zip -------------------------------------------------------------------------------- /wwwroot/test/GeoJSON/multipoint.geojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Feature", 3 | "bbox": [-10.0, -10.0, 10.0, 10.0], 4 | "properties": { 5 | "foo": "hi", 6 | "bar": "bye" 7 | }, 8 | "geometry": { 9 | "type": "MultiPoint", 10 | "coordinates": [ 11 | [100.0, 0.0], 12 | [101.0, 0.0], 13 | [101.0, 1.0], 14 | [100.0, 1.0], 15 | [100.0, 0.0] 16 | ] 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /wwwroot/test/GeoJSON/polygon.geojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Feature", 3 | "bbox": [100, -0, 101, 1], 4 | "properties": { 5 | "foo": "hi", 6 | "bar": "bye" 7 | }, 8 | "geometry": { 9 | "type": "Polygon", 10 | "coordinates": [ 11 | [ 12 | [100.0, 0.0], 13 | [101.0, 0.0], 14 | [101.0, 1.0], 15 | [100.0, 1.0], 16 | [100.0, 0.0] 17 | ], 18 | [ 19 | [100.2, 0.2], 20 | [100.8, 0.2], 21 | [100.8, 0.8], 22 | [100.2, 0.8], 23 | [100.2, 0.2] 24 | ] 25 | ] 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /wwwroot/test/GeoJSON/polygon.topojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Topology", 3 | "transform": { 4 | "scale": [0.1000100010001, 0.1000100010001], 5 | "translate": [0, 0] 6 | }, 7 | "objects": { 8 | "polygon": { 9 | "type": "Polygon", 10 | "arcs": [[0]] 11 | } 12 | }, 13 | "arcs": [ 14 | [ 15 | [0, 0], 16 | [0, 9999], 17 | [9999, 0], 18 | [0, -9999], 19 | [-9999, 0] 20 | ] 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /wwwroot/test/GeoJSON/polyline.geojson: -------------------------------------------------------------------------------- 1 | { 2 | "type": "Feature", 3 | "properties": { 4 | "foo": "hi", 5 | "bar": "bye", 6 | "stroke-width": 1 7 | }, 8 | "geometry": { 9 | "type": "MultiLineString", 10 | "coordinates": [ 11 | [ 12 | [100.0, 0.0], 13 | [101.0, 1.0] 14 | ], 15 | [ 16 | [102.0, 2.0], 17 | [103.0, 3.0] 18 | ] 19 | ] 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /wwwroot/test/GeoRSS/geoRssName.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | GeoRSS feed sample 4 | To aid in unit testing 5 | 6 | 2020-02-26T18:30:02Z 7 | 8 | TerriaJS 9 | groldan@example.com 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /wwwroot/test/GeoRSS/geoRssWithoutName.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /wwwroot/test/IndexedItemSearchProvider/0.csv: -------------------------------------------------------------------------------- 1 | "dataRowId","value" 2 | "0","41.05868090027645" 3 | "9","49.31570606346128" 4 | "8","55.5886499551195" 5 | "2","70.66820640757398" 6 | "1","129.72936362510384" 7 | "7","140.56542322629983" 8 | "4","143.1852647930275" 9 | "5","144.23447802311017" 10 | "6","148.01597472549275" 11 | "3","166.3851293279508" 12 | -------------------------------------------------------------------------------- /wwwroot/test/IndexedItemSearchProvider/1.csv: -------------------------------------------------------------------------------- 1 | "dataRowId","value" 2 | "1","5936.118207969156" 3 | "5","9209.863550408007" 4 | "0","9404.110103236468" 5 | "3","12616.047411799836" 6 | "8","13104.825923050099" 7 | "6","13916.228410752614" 8 | "9","16491.917143184735" 9 | "4","17793.077760504537" 10 | "2","18409.171154641655" 11 | "7","18533.654256735022" 12 | -------------------------------------------------------------------------------- /wwwroot/test/JSON-api/position_api_response.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": 1, 4 | "latitude": -37.25, 5 | "longitude": 145.25, 6 | "some": { "embedded": ["first_element 1", "second_element 1"] } 7 | }, 8 | { 9 | "id": 2, 10 | "latitude": -37, 11 | "longitude": 145.5, 12 | "some": { "embedded": ["first_element 2", "second_element 2"] } 13 | }, 14 | { 15 | "id": 3, 16 | "latitude": -37.1, 17 | "longitude": 145.7, 18 | "some": { "embedded": ["first_element 3", "second_element 3"] } 19 | } 20 | ] 21 | -------------------------------------------------------------------------------- /wwwroot/test/JSON-api/value_api_response.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": 1, 4 | "value": 8 5 | }, 6 | { 7 | "id": 2, 8 | "value": 9 9 | }, 10 | { 11 | "id": 3, 12 | "value": 7 13 | } 14 | ] 15 | -------------------------------------------------------------------------------- /wwwroot/test/KML/vic_police.kmz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/KML/vic_police.kmz -------------------------------------------------------------------------------- /wwwroot/test/Magda/map-config-basic.json: -------------------------------------------------------------------------------- 1 | { 2 | "aspects": { 3 | "terria-config": { 4 | "initializationUrls": ["https://example.foo.bar/init.json"], 5 | "parameters": { 6 | "appName": "TestTerriaMap" 7 | } 8 | }, 9 | "group": { 10 | "members": ["a-member"] 11 | } 12 | }, 13 | "id": "map-config-basic", 14 | "name": "Terria Configuration", 15 | "tenantId": 0 16 | } 17 | -------------------------------------------------------------------------------- /wwwroot/test/Magda/map-config-v7.json: -------------------------------------------------------------------------------- 1 | { 2 | "aspects": { 3 | "terria-config": { 4 | "v7initializationUrls": ["https://example.foo.bar/initv7.json"], 5 | "parameters": { 6 | "appName": "TestTerriaMap" 7 | } 8 | }, 9 | "group": { 10 | "members": ["a-member"] 11 | } 12 | }, 13 | "id": "map-config-basic", 14 | "name": "Terria Configuration", 15 | "tenantId": 0 16 | } 17 | -------------------------------------------------------------------------------- /wwwroot/test/Senaps/streams_filtered.json: -------------------------------------------------------------------------------- 1 | { 2 | "_links": { 3 | "self": { 4 | "href": "https://senaps.io/api/sensor/v2/streams?id=*SHT31DIS_ALL*&locationid=boorowa.temprh.site5a" 5 | } 6 | }, 7 | "count": 1, 8 | "_embedded": { 9 | "streams": [ 10 | { 11 | "_links": { 12 | "self": { 13 | "href": "https://senaps.io/api/sensor/v2/streams/tdfnode.0.323831395a368714-99.SHT31DIS_ALL.temperature" 14 | } 15 | }, 16 | "id": "tdfnode.0.323831395a368714-99.SHT31DIS_ALL.temperature" 17 | } 18 | ] 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /wwwroot/test/Shapefile/bike_racks.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/Shapefile/bike_racks.zip -------------------------------------------------------------------------------- /wwwroot/test/Shapefile/cemeteries.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/Shapefile/cemeteries.zip -------------------------------------------------------------------------------- /wwwroot/test/cogs/32756.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/cogs/32756.tif -------------------------------------------------------------------------------- /wwwroot/test/cogs/4326.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/cogs/4326.tif -------------------------------------------------------------------------------- /wwwroot/test/csv/CED_2018_CED_CODE18.csv: -------------------------------------------------------------------------------- 1 | CED_CODE18,Value 2 | 103,36 3 | 105,19 4 | 107,15 5 | 114,45 6 | 119,6 7 | 120,48 8 | 121,15 9 | 135,90 10 | 137,29 11 | 138,67 12 | 139,15 13 | 141,2 14 | 145,90 15 | 147,5 16 | 202,98 17 | 204,79 18 | 205,2 19 | 209,79 20 | 210,90 21 | 211,22 22 | 219,25 23 | 222,99 24 | 226,69 25 | 229,6 26 | 231,34 27 | 232,59 28 | 235,13 29 | 297,28 30 | 313,92 31 | 320,56 32 | 327,42 33 | 330,28 34 | 401,98 35 | 407,99 36 | 513,30 37 | 514,34 38 | 515,98 39 | 597,19 40 | 694,58 41 | 802,6 42 | 997,31 -------------------------------------------------------------------------------- /wwwroot/test/csv/ELB_2019_ELB_NAME_2019.csv: -------------------------------------------------------------------------------- 1 | ELB_NAME_2019,Value 2 | Banks,14 3 | Bennelong,84 4 | Blaxland,60 5 | Bradfield,32 6 | Cook,74 7 | Cowper,31 8 | Dobell,79 9 | Lindsay,37 10 | Newcastle,49 11 | Parramatta,4 12 | Paterson,13 13 | BRISBANE,66 14 | GRIFFITH,90 15 | LONGMAN,45 16 | MARANOA,96 17 | MCPHERSON,19 18 | RANKIN,33 19 | RYAN,93 20 | Grey,81 21 | Spence,21 22 | Ballarat,9 23 | Casey,3 24 | Deakin,44 25 | Fraser,16 26 | Gellibrand,49 27 | Gorton,20 28 | La Trobe,10 29 | Lalor,59 30 | Mallee,29 31 | Maribyrnong,85 32 | Monash,33 33 | Hasluck,10 34 | Moore,0 35 | O'Connor,49 36 | Perth,97 -------------------------------------------------------------------------------- /wwwroot/test/csv/address_to_lat_long.csv: -------------------------------------------------------------------------------- 1 | Station name,Address 2 | BELCONNEN HOUSE,120 Thynne St Bruce ACT 2617 3 | NICTA CRL,"Tower A, 7 London Circuit, Canberra City ACT 2601" 4 | NICTA ATP,"Australian Technology Park Level 5, 13 Garden Street Eveleigh NSW 2015" 5 | NICTA VICTORIA,115 Batman Street West Melbourne VIC 3003 6 | SYDNEY OPERA HOUSE,"Sydney Opera House, Bennelong Point, Sydney NSW 2000" 7 | ALICE SPRINGS HOUSE,34 Battarbee Street Araluen NT 0870 8 | -------------------------------------------------------------------------------- /wwwroot/test/csv/bad-dates.csv: -------------------------------------------------------------------------------- 1 | date,number,lat,lon 2 | 202012,12,-37,145 3 | 202012,13,-37,145 4 | 202012,14,-37,145 -------------------------------------------------------------------------------- /wwwroot/test/csv/dupe_lgas.csv: -------------------------------------------------------------------------------- 1 | lga_name,val1,enum,fourdigits 2 | Yarra,2,dogs,3068 3 | Boroondara,42.42,the universe,3124 4 | Boroondara,6,dogs,3125 5 | Boroondara,4,boots,3126 6 | Boroondara,3,cats,3127 7 | Melbourne,5,whatever,3000 8 | Timbuktu,6,blah,1234 9 | -------------------------------------------------------------------------------- /wwwroot/test/csv/gccsa.csv: -------------------------------------------------------------------------------- 1 | GCCSA_code_2011,Urban 2 | 2GMEL,Yes 3 | 2RVIC,No 4 | 1RNSW,No 5 | 8ACTE,Yes 6 | 1GSYD,Yes 7 | 3GBRI,Yes 8 | 3RQLD,No 9 | 4RSAU,No 10 | 4GADE,Yes 11 | 7RNTE,No 12 | 7GDAR,Yes 13 | 5RWAU,No 14 | 5GPER,Yes 15 | 6RTAS,No 16 | 6GHOB,Yes -------------------------------------------------------------------------------- /wwwroot/test/csv/iare.csv: -------------------------------------------------------------------------------- 1 | IARE_code,Number 2 | 702004,1 3 | 402003,4 4 | 702001,3 5 | 503004,6 6 | 702014,5 7 | 702013,3 8 | 402001,2 9 | 702008,4 -------------------------------------------------------------------------------- /wwwroot/test/csv/iloc.csv: -------------------------------------------------------------------------------- 1 | ILOC_code_2011, 2 | 30600201,4 3 | 30601201,2 4 | 30601001,1 5 | 30600801,3 6 | 30600101,4 7 | 10300606,5 8 | 10300202,6 9 | 10300102,2 10 | 10200802,3 -------------------------------------------------------------------------------- /wwwroot/test/csv/ireg.csv: -------------------------------------------------------------------------------- 1 | IREG_code,number 2 | 501,1 3 | 502,2 4 | 503,3 5 | 504,4 6 | 505,5 7 | 506,6 8 | 507,7 9 | 508,8 10 | 301,1 11 | 302,2 12 | 303,3 13 | 401,1 14 | 402,2 15 | 403,3 -------------------------------------------------------------------------------- /wwwroot/test/csv/lat_lon-missing_val.csv: -------------------------------------------------------------------------------- 1 | lat,lon,value 2 | -37,145,5 3 | -37.5,145,3 4 | -38,,1 5 | -37,145.5,-1 6 | -37.25,145.25,3 -------------------------------------------------------------------------------- /wwwroot/test/csv/lat_lon.csv: -------------------------------------------------------------------------------- 1 | lat,lon 2 | -40,140 3 | -39,139 4 | -38,135 5 | -37,145 6 | -37.5,145 7 | -37,145.5 8 | -40,135 9 | -33,145 10 | -33,130 -------------------------------------------------------------------------------- /wwwroot/test/csv/lat_lon_badvalue.csv: -------------------------------------------------------------------------------- 1 | lat,lon,value 2 | -37,145,5 3 | -37.5,145,bad 4 | -37,145.5,0 5 | -------------------------------------------------------------------------------- /wwwroot/test/csv/lat_lon_blankvalue.csv: -------------------------------------------------------------------------------- 1 | lat,lon,value 2 | -37,145,5 3 | -37.5,145, 4 | -37,145.5,0 -------------------------------------------------------------------------------- /wwwroot/test/csv/lat_lon_date_value.csv: -------------------------------------------------------------------------------- 1 | lat,lon,date,value 2 | -37.0,144.0,2015-08-07,1 3 | -37.0,144.5,2015-08-07,2 4 | -37.5,144.0,2015-08-07,3 5 | -37.5,144.5,2015-08-07,4 6 | -37.0,144.0,2015-08-08,4 7 | -37.0,144.5,2015-08-08,3 8 | -37.5,144.0,2015-08-08,2 9 | -37.5,144.5,2015-08-08,1 10 | -37.0,144.0,2015-08-09,2 11 | -37.0,144.5,2015-08-09,2 12 | -37.5,144.0,2015-08-09,3 13 | -37.5,144.5,2015-08-09,3 14 | -------------------------------------------------------------------------------- /wwwroot/test/csv/lat_lon_enum.csv: -------------------------------------------------------------------------------- 1 | lat,lon,enum 2 | -37,145,hello 3 | -37.5,145,boots 4 | -38,145,frogs 5 | -37,145.5,boots 6 | -37.25,145.25,hello 7 | -------------------------------------------------------------------------------- /wwwroot/test/csv/lat_lon_enum_date_id_update.csv: -------------------------------------------------------------------------------- 1 | lat,lon,enum,date,id,value 2 | -20,100,hovering,2015-08-05,feature B,13 3 | -37,110,going!,2015-08-06,feature B,6 4 | -30,142,going!,2015-08-07,feature B,16 5 | -30,145.5,bonk,2015-08-02,feature C,13 6 | -20,135,bonk,2015-08-01,feature E,4 7 | -36,143,moo,2015-08-02,feature E,16 8 | -30,150,hovering,2015-08-01,feature F,5 9 | -30,120,hovering,2015-08-02,feature F,15 10 | -36,120,moo,2015-08-03,feature F,5 11 | -36,150,hovering,2015-08-04,feature F,15 12 | -30,150,hovering,2015-08-05,feature F,5 13 | -30,120,hovering,2015-08-06,feature F,15 14 | -36,120,moo,2015-08-07,feature F,5 15 | -------------------------------------------------------------------------------- /wwwroot/test/csv/lat_lon_enum_date_year.csv: -------------------------------------------------------------------------------- 1 | lat,lon,enum,date1,year 2 | -37,145,moving,2015-08-01,2011 3 | -36,145,stationary,2015-08-01,2012 4 | -37,145.1,moving,2015-08-02,2013 5 | -36,145,stationary,2015-08-02,2013 6 | -36.5,145.05,blip,2015-08-02,2012 7 | -37,145.2,moving,2015-08-03,2011 -------------------------------------------------------------------------------- /wwwroot/test/csv/lat_lon_enum_lots.csv: -------------------------------------------------------------------------------- 1 | lat,lon,enum 2 | -37,141,dogs 3 | -39,142,mice 4 | -38,143,frogs 5 | -37,144,eels 6 | -36,147,dogs 7 | -27,145,cats 8 | -29,145,cats 9 | -28,144,frogs 10 | -27,146,puppies 11 | -26,147,ferrets 12 | -37,135,cats 13 | -38,135,cats 14 | -39,135,cats 15 | -40,135.5,eels 16 | -36,134,dogs 17 | -25,135,cats 18 | -26,133,cats 19 | -28,136,turtles 20 | -27,137,guinea pigs 21 | -24,138,cats 22 | -25,140,unicorns -------------------------------------------------------------------------------- /wwwroot/test/csv/lat_lon_enum_lots2.csv: -------------------------------------------------------------------------------- 1 | lat,lon,enum 2 | -37,141,dogs 3 | -39,142,mice 4 | -38,143,frogs 5 | -37,144,eels 6 | -36,147,dogs 7 | -27,145,cats 8 | -29,145,cats 9 | -28,144,frogs 10 | -27,146,puppies 11 | -26,147,ferrets 12 | -37,135,cats 13 | -38,135,cats 14 | -39,135,cats 15 | -40,135.5,eels 16 | -36,134,dogs 17 | -25,135,cats 18 | -26,133,cats 19 | -28,136,turtles 20 | -27,137,guinea pigs 21 | -24,138,cats -------------------------------------------------------------------------------- /wwwroot/test/csv/lat_lon_enum_moving_date_unsorted.csv: -------------------------------------------------------------------------------- 1 | lat,lon,enum,date 2 | -36,145,stationary,2015-08-05 3 | -37,145,moving,2015-08-01 4 | -37,145.4,moving,2015-08-05 5 | -37,145.5,moving,2015-08-06 6 | -37,145.1,moving,2015-08-02 7 | -36.5,145.05,blip,2015-08-02 8 | -37,145.2,moving,2015-08-03 9 | -37,145.3,moving,2015-08-04 10 | -36,145,stationary,2015-08-04 11 | -36,145,stationary,2015-08-01 12 | -36,145,stationary,2015-08-02 13 | -36,145,stationary,2015-08-03 14 | -36,145,stationary,2015-08-06 15 | -------------------------------------------------------------------------------- /wwwroot/test/csv/lat_lon_enum_postcode.csv: -------------------------------------------------------------------------------- 1 | lat,lon,enum,postcode 2 | -37,145,hello,2001 3 | -37.5,145,boots,2010 4 | -38,145,frogs,2011 5 | -37,145.5,boots,3001 6 | -37.25,145.25,hello,3012 7 | -------------------------------------------------------------------------------- /wwwroot/test/csv/lat_lon_enum_val.csv: -------------------------------------------------------------------------------- 1 | lat,lon,enum,val 2 | -37,145,hello,6 3 | -37.5,145,boots,7 4 | -38,145,frogs,5 5 | -37,145.5,boots,6.5 6 | -37.25,145.25,hello,5.5 7 | -------------------------------------------------------------------------------- /wwwroot/test/csv/lat_lon_name_url_col.csv: -------------------------------------------------------------------------------- 1 | lat,lon,name,url,col 2 | -30,128,Ganymede,build/TerriaJS/test/csv_nongeo/A,1 3 | -23,136,Betelgeuse,build/TerriaJS/test/csv_nongeo/B,2 4 | -30,134,Aldebran,,1 5 | -23,130,Rigel,build/TerriaJS/test/csv_nongeo/C,2 6 | -------------------------------------------------------------------------------- /wwwroot/test/csv/lat_lon_name_value.csv: -------------------------------------------------------------------------------- 1 | lat,lon,name,value 2 | -35,142,Alice,15 3 | -36.5,145,John,-5 4 | -38,139,Polly,30 5 | -------------------------------------------------------------------------------- /wwwroot/test/csv/lat_lon_novals.csv: -------------------------------------------------------------------------------- 1 | lat,lon 2 | -37,145 3 | -37.5,145 4 | -38,145 5 | -37,145.5 6 | -37.25,145.25 -------------------------------------------------------------------------------- /wwwroot/test/csv/lat_lon_nullvalue.csv: -------------------------------------------------------------------------------- 1 | lat,lon,value 2 | -37,145,50 3 | -37.5,145, 4 | -37,145.5,55 5 | -37.5,145.5,60 6 | -------------------------------------------------------------------------------- /wwwroot/test/csv/lat_lon_timeseries.csv: -------------------------------------------------------------------------------- 1 | lat,lon,Time,Capacity,Utilisation 2 | -37,144,2014-04-02T00:00:00+1000,0.5,2 3 | -37,144.5,2014-04-02T01:05:05+1000,0.5,2 4 | -37.5,144,2014-04-02T02:10:10+1000,0.05,4 5 | -37.5,144.5,2014-04-02T03:15:15+1000,0.05,4 6 | -37,144,2014-04-02T04:20:20+1000,0.35,10 7 | -37,144.5,2014-04-02T05:25:25+1000,0.35,10 8 | -37.5,144,2014-04-02T06:30:30+1000,0.8,15 9 | -37.5,144.5,2014-04-02T07:35:35+1000,0.8,15 10 | -37,144,2014-04-02T08:40:40+1000,0.3,9 11 | -37,144.5,2014-04-02T09:45:45+1000,0.3,9 12 | -37.5,144,2014-04-02T10:50:50+1000,0.1,4.5 13 | -------------------------------------------------------------------------------- /wwwroot/test/csv/lat_lon_val.csv: -------------------------------------------------------------------------------- 1 | lat,lon,value 2 | -37,145,5 3 | -37.5,145,3 4 | -38,145,1 5 | -37,145.5,-1 6 | -37.25,145.25,3 -------------------------------------------------------------------------------- /wwwroot/test/csv/lat_lon_val_with_duplicate_row.csv: -------------------------------------------------------------------------------- 1 | lat,lon,value 2 | -37,145,5 3 | -37.5,145,3 4 | -38,145,1 5 | -37,145.5,-1 6 | -37.25,145.25,7 7 | -37.25,145.25,7 -------------------------------------------------------------------------------- /wwwroot/test/csv/lat_long_enum_moving_date.csv: -------------------------------------------------------------------------------- 1 | lat,lon,enum,date 2 | -37,145,moving,2015-08-01 3 | -36,145,stationary,2015-08-01 4 | -37,145.1,moving,2015-08-02 5 | -36,145,stationary,2015-08-02 6 | -36.5,145.05,blip,2015-08-02 7 | -37,145.2,moving,2015-08-03 8 | -36,145,stationary,2015-08-03 9 | -37,145.3,moving,2015-08-04 10 | -36,145,stationary,2015-08-04 11 | -37,145.4,moving,2015-08-05 12 | -36,145,stationary,2015-08-05 13 | -37,145.5,moving,2015-08-06 14 | -36,145,stationary,2015-08-06 15 | -------------------------------------------------------------------------------- /wwwroot/test/csv/lga_code_2011.csv: -------------------------------------------------------------------------------- 1 | lga_code_2011,number 2 | 36710,1 3 | 41140,2 4 | -------------------------------------------------------------------------------- /wwwroot/test/csv/lga_code_2015.csv: -------------------------------------------------------------------------------- 1 | lga_code_2015,number 2 | 35740,1 3 | 36720,2 -------------------------------------------------------------------------------- /wwwroot/test/csv/lga_elevation_date.csv: -------------------------------------------------------------------------------- 1 | LGA_NAME,elevation,date 2 | Stonnington,100,1974-03-02 3 | Boroondara,150,1974-03-05 4 | -------------------------------------------------------------------------------- /wwwroot/test/csv/lga_fuzzy_val.csv: -------------------------------------------------------------------------------- 1 | lga_name,val1,enum,fourdigits 2 | Yarra,2,dogs,3068 3 | Boroondara,42.42,the universe,3124 4 | Melbourne,5,whatever,3000 5 | -------------------------------------------------------------------------------- /wwwroot/test/csv/lga_state_disambig.csv: -------------------------------------------------------------------------------- 1 | LGA_NAME,State,StateCapital 2 | Baw Baw,Vic,Melbourne 3 | Campbelltown,NSW,Sydney 4 | Campbelltown,SA,Adelaide 5 | Wellington,Vic,Melbourne 6 | Wellington,NSW,Sydney 7 | City of Melbourne, VIC,Melbourne 8 | Moreland Council,Victoria,Melbourne 9 | Greater Geelong (C),Vic,Melbourne 10 | -------------------------------------------------------------------------------- /wwwroot/test/csv/lga_value_enum.csv: -------------------------------------------------------------------------------- 1 | lga_code_2013,value,enum,letter 2 | 54970,10,first value,A 3 | 10300,9,this value,B -------------------------------------------------------------------------------- /wwwroot/test/csv/lga_value_enum2.csv: -------------------------------------------------------------------------------- 1 | lga_code_2013,value,enum,letter 2 | 54970,876,other thing,C 3 | 10300,1234,the future,A -------------------------------------------------------------------------------- /wwwroot/test/csv/minimal.csv: -------------------------------------------------------------------------------- 1 | string,number,date,lat,lon 2 | hello,1,2015-08-01,-38,145 3 | goodbye,-1.5,2015-12-31,-37,145 4 | -------------------------------------------------------------------------------- /wwwroot/test/csv/missingNumberFormatting.csv: -------------------------------------------------------------------------------- 1 | Vals,Bar,Lon,Lat 2 | 10.0,thing1,150.0,-35.0 3 | -,thing2,140.0,-30 4 | -------------------------------------------------------------------------------- /wwwroot/test/csv/org_lat_lon_missing.csv: -------------------------------------------------------------------------------- 1 | Organisation name,Lat,Lon 2 | Test1,-33.283905,151.421979 3 | Test2,-33.283629,151.423008 4 | Test3,-33.283557,151.421449 5 | Test4,, -------------------------------------------------------------------------------- /wwwroot/test/csv/phn.csv: -------------------------------------------------------------------------------- 1 | phn_code,number 2 | PHN106,6 3 | PHN105,5 4 | PHN104,4 5 | PHN103,3 6 | PHN102,2 7 | PHN101,1 8 | PHN107,7 9 | PHN108,8 10 | PHN109,9 11 | PHN110,10 12 | PHN201,1 13 | PHN202,2 14 | PHN203,3 15 | PHN204,4 16 | PHN205,5 17 | PHN301,1 18 | PHN302,2 19 | PHN303,3 20 | PHN304,4 21 | -------------------------------------------------------------------------------- /wwwroot/test/csv/postcode_date_value.csv: -------------------------------------------------------------------------------- 1 | postcode,date,value 2 | 3121,2015-08-07,1 3 | 3122,2015-08-07,2 4 | 3123,2015-08-07,3 5 | 3124,2015-08-07,4 6 | 3121,2015-08-08,4 7 | 3122,2015-08-08,3 8 | 3121,2015-08-09,2 9 | 3122,2015-08-09,2 10 | 3123,2015-08-09,3 11 | 3124,2015-08-09,3 12 | -------------------------------------------------------------------------------- /wwwroot/test/csv/postcode_date_value_missing_date.csv: -------------------------------------------------------------------------------- 1 | postcode,date,value 2 | 3121,2015-08-07,1 3 | 3122,2015-08-07,2 4 | 3123,2015-08-07,3 5 | 3124,2015-08-07,4 6 | 3121,2015-08-08,4 7 | 3122,,3 8 | 3121,2015-08-09,2 9 | 3122,2015-08-09,2 10 | 3123,2015-08-09,3 11 | 3124,2015-08-09,3 12 | -------------------------------------------------------------------------------- /wwwroot/test/csv/postcode_enum.csv: -------------------------------------------------------------------------------- 1 | postcode,enum 2 | 3068,dogs 3 | 3124,boots 4 | 3125,dogs 5 | 3126,boots 6 | 3127,cats 7 | 3000,whatever 8 | -------------------------------------------------------------------------------- /wwwroot/test/csv/postcode_enum_lots.csv: -------------------------------------------------------------------------------- 1 | postcode,enum 2 | 3124,cats 3 | 3068,dogs 4 | 3125,dogs 5 | 3126,eels 6 | 3127,cats 7 | 3000,turtles 8 | 2068,dogs 9 | 2024,eels 10 | 2125,ferrets 11 | 2127,cats 12 | 2060,mice 13 | 2168,puppies 14 | 2224,eels 15 | 2225,frogs 16 | 2226,guinea pigs 17 | 2227,dogs 18 | 3201,mice 19 | 2061,dogs 20 | 2126,unicorns 21 | -------------------------------------------------------------------------------- /wwwroot/test/csv/postcode_enum_lots2.csv: -------------------------------------------------------------------------------- 1 | postcode,enum 2 | 3124,cats 3 | 3068,dogs 4 | 3125,dogs 5 | 3126,eels 6 | 3127,cats 7 | 3000,turtles 8 | 2068,dogs 9 | 2024,eels 10 | 2125,ferrets 11 | 2127,cats 12 | 2060,mice 13 | 2168,puppies 14 | 2224,eels 15 | 2225,frogs 16 | 2226,guinea pigs 17 | 2227,dogs 18 | 3201,mice 19 | 2061,dogs 20 | -------------------------------------------------------------------------------- /wwwroot/test/csv/postcode_lga_val_enum.csv: -------------------------------------------------------------------------------- 1 | lga_name,val1,enum,postcode 2 | Yarra,2,dogs,3068 3 | Boorondara,42.42,the universe,3124 4 | Boorondara,6,dogs,3125 5 | Boorondara,4,boots,3126 6 | Boorondara,3,cats,3127 7 | Melbourne,5,whatever,3000 8 | -------------------------------------------------------------------------------- /wwwroot/test/csv/postcode_novals.csv: -------------------------------------------------------------------------------- 1 | postcode 2 | 3000 3 | 3001 4 | 3002 5 | 3003 6 | 3004 -------------------------------------------------------------------------------- /wwwroot/test/csv/postcode_val_enum.csv: -------------------------------------------------------------------------------- 1 | postcode,val1,enum 2 | 3068,2,dogs 3 | 3124,42.42,the universe 4 | 3125,6,dogs 5 | 3126,4,boots 6 | 3127,3,cats 7 | 3000,5,whatever 8 | -------------------------------------------------------------------------------- /wwwroot/test/csv/postcode_val_enum2.csv: -------------------------------------------------------------------------------- 1 | postcode,val1,enum 2 | 3068,12,hyenas 3 | 3124,142.42,the universe 4 | 3125,16,hyenas 5 | 3127,13,lions 6 | 3000,15,things 7 | 3129,12,new 8 | -------------------------------------------------------------------------------- /wwwroot/test/csv/postcode_val_enum_start_end.csv: -------------------------------------------------------------------------------- 1 | start_date,end_date,postcode,val1,enum 2 | 2016-01-01T00:00:00Z,2016-03-01T00:00:00Z,6762,2,alpha 3 | 2016-02-01T00:00:00Z,2016-04-01T00:00:00Z,6725,7,beta 4 | 2016-03-01T00:00:00Z,2016-05-01T00:00:00Z,6710,-3,gamma 5 | 2016-04-01T00:00:00Z,2016-05-01T00:00:00Z,6642,-8,delta 6 | 2016-02-01T00:00:00Z,2016-03-01T00:00:00Z,0872,-3,epsilon-A 7 | 2016-03-01T00:00:00Z,2016-06-01T00:00:00Z,0872,4,epsilon-B 8 | 2016-01-01T00:00:00Z,2016-06-01T00:00:00Z,6429,9,phi 9 | 2016-01-01T00:00:00Z,2016-02-01T00:00:00Z,6722,6,zeta-A 10 | 2016-02-01T00:00:00Z,2016-06-01T00:00:00Z,6722,10,zeta-B -------------------------------------------------------------------------------- /wwwroot/test/csv/postcode_val_enum_time.csv: -------------------------------------------------------------------------------- 1 | time,postcode,val1,enum 2 | 2016-01-01T00:00:00Z,3124,2,alpha 3 | 2016-01-01T00:00:00Z,3125,7,beta 4 | 2016-01-02T00:00:00Z,3124,-3,gamma 5 | 2016-01-02T00:00:00Z,3125,-8,delta 6 | 2016-01-03T00:00:00Z,3124,4,omega 7 | 2016-01-03T00:00:00Z,3125,9,zeta 8 | -------------------------------------------------------------------------------- /wwwroot/test/csv/postcode_year_value.csv: -------------------------------------------------------------------------------- 1 | postcode,date,value 2 | 3121,2015,1 3 | 3122,2015,2 4 | 3123,2015,3 5 | 3124,2015,4 6 | 3121,2016,4 7 | 3122,2016,3 8 | 3123,2016,2 9 | 3124,2016,1 10 | 3121,2017,2 11 | 3122,2017,2 12 | 3123,2017,3 13 | 3124,2017,3 14 | -------------------------------------------------------------------------------- /wwwroot/test/csv/postcodetest.csv: -------------------------------------------------------------------------------- 1 | postcode,value 2 | 3068,1 3 | 2000,2 4 | 5,-1 5 | four thousand,-4 -------------------------------------------------------------------------------- /wwwroot/test/csv/ra.csv: -------------------------------------------------------------------------------- 1 | ra_code_2011,2nd_digit 2 | 10,0 3 | 11,1 4 | 12,2 5 | 13,3 6 | 14,4 7 | 20,0 8 | 21,1 9 | 22,2 10 | 23,3 11 | 30,0 12 | 31,1 13 | 32,2 14 | 33,3 15 | 34,4 16 | 40,0 17 | 41,1 18 | 42,2 19 | 43,3 20 | 44,4 21 | 50,0 22 | 51,2 23 | 52,2 24 | 53,3 25 | 54,4 26 | 61,2 27 | 62,2 28 | 63,3 29 | 64,4 30 | 72,2 31 | 73,3 32 | 74,4 33 | 80,0 34 | 81,1 -------------------------------------------------------------------------------- /wwwroot/test/csv/sos.csv: -------------------------------------------------------------------------------- 1 | SOS_code_2011,Type 2 | 10,0 3 | 11,1 4 | 12,2 5 | 13,3 6 | 20,0 7 | 21,1 8 | 22,2 9 | 23,3 10 | 30,0 11 | 31,1 12 | 32,2 13 | 33,3 14 | 40,0 15 | 41,1 16 | 42,2 17 | 43,3 -------------------------------------------------------------------------------- /wwwroot/test/csv/sosr.csv: -------------------------------------------------------------------------------- 1 | SOSR_code_2011,color 2 | 603,2 3 | 611,1 4 | 614,3 5 | 621,4 6 | 622,5 7 | 631,10 8 | -------------------------------------------------------------------------------- /wwwroot/test/csv/sua.csv: -------------------------------------------------------------------------------- 1 | SUA_code_2011,Color 2 | 2022,1 3 | 2005,2 4 | 2003,3 5 | 2004,4 6 | 2007,1 7 | 2017,2 8 | 2020,3 9 | 2002,4 10 | 2016,1 11 | 2019,2 12 | 2014,3 13 | 2021,4 -------------------------------------------------------------------------------- /wwwroot/test/csv/sua_name.csv: -------------------------------------------------------------------------------- 1 | SUA_name_2011,Color 2 | Warragul - Drouin,2 3 | Moe-Newborough,3 4 | Melbourne,4 5 | Traralgon Morwell,1 6 | Sale,2 7 | Bairnsdale,3 -------------------------------------------------------------------------------- /wwwroot/test/csv/tr.csv: -------------------------------------------------------------------------------- 1 | tr_code,color 2 | 4R010,1 3 | 4R020,2 4 | 4R030,3 5 | 4R040,4 6 | 4R050,5 7 | 4R060,6 8 | 2R030,3 9 | 2R050,5 10 | 2R020,2 11 | 1R070,1 -------------------------------------------------------------------------------- /wwwroot/test/csv/ucl.csv: -------------------------------------------------------------------------------- 1 | ucl_code_2011,number 2 | 301001,10 3 | 321065,5 4 | 315080,4 5 | 313003,5 6 | 315054,4 7 | 303002,7 8 | 122072,5 9 | 131777,0 10 | 331777,0 11 | 302001,8 -------------------------------------------------------------------------------- /wwwroot/test/csv/val_enum_postcode.csv: -------------------------------------------------------------------------------- 1 | val1,enum,postcode 2 | 2,dogs,3068 3 | 42.42,the universe,6765 4 | 6,dogs,3125 5 | 4,boots,3126 6 | 3,cats,3127 7 | 5,whatever,3123 8 | -------------------------------------------------------------------------------- /wwwroot/test/csv_nongeo/time_series.csv: -------------------------------------------------------------------------------- 1 | Time,Capacity,Power 2 | 2015-10-19T00:10:00+1000,0.1,0.085 3 | 2015-10-19T01:15:00+1000,0.2,0.14 4 | 2015-10-19T02:20:00+1000,0.3,0.3 5 | 2015-10-19T03:25:00+1000,0,0 6 | 2015-10-19T04:30:00+1000,0.1,0 7 | 2015-10-19T05:35:00+1000,-0.4,0 8 | 2015-10-19T06:40:00+1000,0.4,0.3 9 | 2015-10-19T07:45:00+1000,0.1,0.1 -------------------------------------------------------------------------------- /wwwroot/test/csv_nongeo/time_series2.csv: -------------------------------------------------------------------------------- 1 | Time,Capacity,Utilisation 2 | 2014-04-02T00:00:00+1000,0.5,2 3 | 2014-04-02T00:10:00+1000,0.05,4 4 | 2014-04-02T00:20:00+1000,0.35,10 5 | 2014-04-02T00:30:00+1000,0.8,15 6 | 2014-04-02T00:40:00+1000,0.3,9 7 | 2014-04-02T00:50:00+1000,0.1,4.5 8 | 2014-04-02T01:00:00+1000,0.9,6 9 | -------------------------------------------------------------------------------- /wwwroot/test/csv_nongeo/x_height.csv: -------------------------------------------------------------------------------- 1 | x,z,plant height 2 | 1,-1,2 3 | 3,-3,4 4 | 5,-5,6 5 | 7,-7,3 6 | 10,-10,9 7 | 12,-12,2 -------------------------------------------------------------------------------- /wwwroot/test/csv_nongeo/xy.csv: -------------------------------------------------------------------------------- 1 | x,y 2 | 1,2 3 | 3,4 4 | 5,6 5 | 7,3 6 | 10,9 7 | 12,2 -------------------------------------------------------------------------------- /wwwroot/test/csv_nongeo/xy2.csv: -------------------------------------------------------------------------------- 1 | x,y 2 | 1,2 3 | 3,4 4 | 5,6 5 | 7,3 6 | 10,-3 7 | 12,5 8 | 15,8 9 | 18,6 -------------------------------------------------------------------------------- /wwwroot/test/gltf/Cesium_Air.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/gltf/Cesium_Air.glb -------------------------------------------------------------------------------- /wwwroot/test/gtfs/bus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/gtfs/bus.png -------------------------------------------------------------------------------- /wwwroot/test/gtfs/vic-metro-vehicle-positions.pbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/gtfs/vic-metro-vehicle-positions.pbf -------------------------------------------------------------------------------- /wwwroot/test/init/configProxy.json: -------------------------------------------------------------------------------- 1 | { 2 | "parameters": { 3 | "corsProxyBaseUrl": "/myproxy/" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /wwwroot/test/init/czml-with-template-0.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test CZML with properties", 3 | "type": "czml", 4 | "url": "test/CZML/withProperties.czml", 5 | "featureInfoTemplate": { 6 | "name": "{{Name}} {{Asset type}}", 7 | "template": "
Name:{{Name}}
Type:{{Type}}

{{#Support table}}{{/Support table}}
YearCapacity
{{Year}}{{Capacity}}
" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /wwwroot/test/init/czml-with-template-1.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test CZML with time-varying properties", 3 | "type": "czml", 4 | "url": "test/CZML/withTimeVaryingProperties.czml", 5 | "featureInfoTemplate": { 6 | "name": "{{Name}} {{Asset type}}", 7 | "template": "
Name:{{Name}}
Type:{{Type}}

{{#Support table}}{{/Support table}}
YearCapacity
{{Year}}{{Capacity}}
" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /wwwroot/test/init/geojson-with-template.json: -------------------------------------------------------------------------------- 1 | { 2 | "catalog": [ 3 | { 4 | "name": "Sample group", 5 | "type": "group", 6 | "isOpen": false, 7 | "items": [ 8 | { 9 | "name": "Sample GeoJSON Data", 10 | "type": "geojson", 11 | "url": "test/GeoJSON/two_features.geojson", 12 | "featureInfoTemplate": "A {{type}} made of {{material}} with {{funding_ba}} funding." 13 | } 14 | ] 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /wwwroot/test/init/gltf.json: -------------------------------------------------------------------------------- 1 | { 2 | "catalog": [ 3 | { 4 | "name": "glTF", 5 | "type": "group", 6 | "items": [ 7 | { 8 | "name": "Cesium Air", 9 | "type": "gltf", 10 | "url": "https://cesiumjs.org/Cesium/Apps/SampleData/models/CesiumAir/Cesium_Air.glb", 11 | "origin": { 12 | "longitude": 151.197, 13 | "latitude": -33.895, 14 | "height": 180.0 15 | }, 16 | "upAxis": "Y", 17 | "forwardAxis": "X" 18 | } 19 | ] 20 | } 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /wwwroot/test/init/ion.json: -------------------------------------------------------------------------------- 1 | { 2 | "catalog": [ 3 | { 4 | "name": "Cesium Ion", 5 | "type": "group", 6 | "items": [ 7 | { 8 | "name": "PAMap Terrain", 9 | "type": "cesium-terrain", 10 | "ionAssetId": 3957 11 | }, 12 | { 13 | "name": "Earth at Night", 14 | "type": "ion-imagery", 15 | "ionAssetId": 3812 16 | } 17 | ] 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /wwwroot/test/init/serverconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "allowProxyFor": ["example.com", "csiro.au"], 3 | "proxyAllDomains": false 4 | } 5 | -------------------------------------------------------------------------------- /wwwroot/test/init/wps.json: -------------------------------------------------------------------------------- 1 | { 2 | "catalog": [ 3 | { 4 | "name": "Web Processing Service (WPS)", 5 | "type": "group", 6 | "isOpen": true, 7 | "members": [ 8 | { 9 | "name": "Australian Wave Energy Atlas PyWPS Server", 10 | "type": "wps-getCapabilities", 11 | "url": "http://oa-gis.csiro.au/wps" 12 | }, 13 | { 14 | "name": "geoglam", 15 | "type": "wps-getCapabilities", 16 | "url": "http://gsky.nci.org.au/ows/geoglam" 17 | } 18 | ] 19 | } 20 | ] 21 | } 22 | -------------------------------------------------------------------------------- /wwwroot/test/mvt/nsw-lga-mvt/10/941/614.pbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/mvt/nsw-lga-mvt/10/941/614.pbf -------------------------------------------------------------------------------- /wwwroot/test/mvt/nsw-lga-mvt/10/941/615.pbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/mvt/nsw-lga-mvt/10/941/615.pbf -------------------------------------------------------------------------------- /wwwroot/test/mvt/nsw-lga-mvt/10/942/614.pbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/mvt/nsw-lga-mvt/10/942/614.pbf -------------------------------------------------------------------------------- /wwwroot/test/mvt/nsw-lga-mvt/10/942/615.pbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/mvt/nsw-lga-mvt/10/942/615.pbf -------------------------------------------------------------------------------- /wwwroot/test/mvt/nsw-lga-mvt/11/1883/1230.pbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/mvt/nsw-lga-mvt/11/1883/1230.pbf -------------------------------------------------------------------------------- /wwwroot/test/mvt/nsw-lga-mvt/9/470/307.pbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/mvt/nsw-lga-mvt/9/470/307.pbf -------------------------------------------------------------------------------- /wwwroot/test/mvt/single-layer-mvt/0/0/0.pbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/mvt/single-layer-mvt/0/0/0.pbf -------------------------------------------------------------------------------- /wwwroot/test/mvt/single-layer-mvt/1/1/1.pbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/mvt/single-layer-mvt/1/1/1.pbf -------------------------------------------------------------------------------- /wwwroot/test/mvt/single-layer-mvt/2/3/2.pbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/mvt/single-layer-mvt/2/3/2.pbf -------------------------------------------------------------------------------- /wwwroot/test/mvt/single-layer-mvt/3/6/4.pbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/mvt/single-layer-mvt/3/6/4.pbf -------------------------------------------------------------------------------- /wwwroot/test/mvt/single-layer-mvt/3/7/4.pbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/mvt/single-layer-mvt/3/7/4.pbf -------------------------------------------------------------------------------- /wwwroot/test/mvt/single-layer-mvt/3/7/5.pbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/mvt/single-layer-mvt/3/7/5.pbf -------------------------------------------------------------------------------- /wwwroot/test/mvt/single-layer-mvt/4/12/9.pbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/mvt/single-layer-mvt/4/12/9.pbf -------------------------------------------------------------------------------- /wwwroot/test/mvt/single-layer-mvt/4/13/8.pbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/mvt/single-layer-mvt/4/13/8.pbf -------------------------------------------------------------------------------- /wwwroot/test/mvt/single-layer-mvt/4/13/9.pbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/mvt/single-layer-mvt/4/13/9.pbf -------------------------------------------------------------------------------- /wwwroot/test/mvt/single-layer-mvt/4/14/10.pbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/mvt/single-layer-mvt/4/14/10.pbf -------------------------------------------------------------------------------- /wwwroot/test/mvt/single-layer-mvt/4/14/8.pbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/mvt/single-layer-mvt/4/14/8.pbf -------------------------------------------------------------------------------- /wwwroot/test/mvt/single-layer-mvt/4/14/9.pbf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/test/mvt/single-layer-mvt/4/14/9.pbf -------------------------------------------------------------------------------- /wwwroot/test/regionMapping/region_map-SOME_OTHER_REGION.json: -------------------------------------------------------------------------------- 1 | { 2 | "layer": "SOME_OTHER_REGION", 3 | "property": "SOME_OTHER_REGION", 4 | "values": ["this is not a real region IDs file"] 5 | } 6 | -------------------------------------------------------------------------------- /wwwroot/third_party/jasmine-2.99.0/jasmine_favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TerriaJS/terriajs/a5550dcd697544d6035467b874e9a82da425d909/wwwroot/third_party/jasmine-2.99.0/jasmine_favicon.png --------------------------------------------------------------------------------