From 1fb3d91106997237ed82f7e58dc590b63f2c16c4 Mon Sep 17 00:00:00 2001 From: Kuloud Date: Fri, 22 Dec 2023 21:23:24 +0800 Subject: [PATCH] init project --- .gitignore | 12 + .metadata | 10 + CHANGELOG.md | 3 + LICENSE | 14 + README.md | 113 + android/.gitignore | 8 + android/build.gradle | 38 + android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 5 + android/settings.gradle | 1 + android/src/main/AndroidManifest.xml | 3 + .../flutter/map/AMapFlutterMapPlugin.java | 117 + .../amap/flutter/map/AMapOptionsBuilder.java | 215 + .../amap/flutter/map/AMapPlatformView.java | 264 + .../flutter/map/AMapPlatformViewFactory.java | 80 + .../amap/flutter/map/LifecycleProvider.java | 13 + .../amap/flutter/map/MyMethodCallHandler.java | 24 + .../flutter/map/ProxyLifecycleProvider.java | 99 + .../flutter/map/core/AMapOptionsSink.java | 59 + .../amap/flutter/map/core/MapController.java | 373 + .../overlays/AbstractOverlayController.java | 32 + .../map/overlays/marker/MarkerController.java | 111 + .../overlays/marker/MarkerOptionsBuilder.java | 89 + .../overlays/marker/MarkerOptionsSink.java | 39 + .../map/overlays/marker/MarkerUtil.java | 98 + .../overlays/marker/MarkersController.java | 227 + .../overlays/polygon/PolygonController.java | 62 + .../polygon/PolygonOptionsBuilder.java | 60 + .../overlays/polygon/PolygonOptionsSink.java | 32 + .../map/overlays/polygon/PolygonUtil.java | 58 + .../overlays/polygon/PolygonsController.java | 129 + .../overlays/polyline/PolylineController.java | 120 + .../polyline/PolylineOptionsBuilder.java | 103 + .../polyline/PolylineOptionsSink.java | 61 + .../map/overlays/polyline/PolylineUtil.java | 108 + .../polyline/PolylinesController.java | 149 + .../com/amap/flutter/map/utils/Const.java | 50 + .../amap/flutter/map/utils/ConvertUtil.java | 521 ++ .../com/amap/flutter/map/utils/LogUtil.java | 39 + doc/api/__404error.html | 93 + doc/api/amap_map/AMapController-class.html | 317 + doc/api/amap_map/AMapController/channel.html | 138 + .../amap_map/AMapController/clearDisk.html | 133 + doc/api/amap_map/AMapController/disponse.html | 130 + .../getMapContentApprovalNumber.html | 135 + .../getSatelliteImageApprovalNumber.html | 135 + doc/api/amap_map/AMapController/init.html | 147 + doc/api/amap_map/AMapController/mapId.html | 128 + .../amap_map/AMapController/moveCamera.html | 142 + .../amap_map/AMapController/setRenderFps.html | 134 + .../amap_map/AMapController/takeSnapshot.html | 133 + doc/api/amap_map/AMapWidget-class.html | 590 ++ doc/api/amap_map/AMapWidget/AMapWidget.html | 219 + doc/api/amap_map/AMapWidget/apiKey.html | 159 + .../amap_map/AMapWidget/buildingsEnabled.html | 159 + .../amap_map/AMapWidget/compassEnabled.html | 159 + doc/api/amap_map/AMapWidget/createState.html | 162 + .../AMapWidget/customStyleOptions.html | 159 + .../AMapWidget/gestureRecognizers.html | 159 + .../AMapWidget/initialCameraPosition.html | 159 + .../amap_map/AMapWidget/labelsEnabled.html | 159 + doc/api/amap_map/AMapWidget/limitBounds.html | 159 + doc/api/amap_map/AMapWidget/mapType.html | 159 + doc/api/amap_map/AMapWidget/markers.html | 159 + .../AMapWidget/minMaxZoomPreference.html | 156 + .../AMapWidget/myLocationStyleOptions.html | 159 + doc/api/amap_map/AMapWidget/onCameraMove.html | 159 + .../amap_map/AMapWidget/onCameraMoveEnd.html | 159 + .../AMapWidget/onLocationChanged.html | 159 + doc/api/amap_map/AMapWidget/onLongPress.html | 159 + doc/api/amap_map/AMapWidget/onMapCreated.html | 159 + doc/api/amap_map/AMapWidget/onPoiTouched.html | 159 + doc/api/amap_map/AMapWidget/onTap.html | 159 + doc/api/amap_map/AMapWidget/polygons.html | 159 + doc/api/amap_map/AMapWidget/polylines.html | 159 + .../AMapWidget/rotateGesturesEnabled.html | 159 + doc/api/amap_map/AMapWidget/scaleEnabled.html | 159 + .../AMapWidget/scrollGesturesEnabled.html | 159 + .../AMapWidget/tiltGesturesEnabled.html | 159 + .../amap_map/AMapWidget/touchPoiEnabled.html | 159 + .../amap_map/AMapWidget/trafficEnabled.html | 159 + .../AMapWidget/zoomGesturesEnabled.html | 159 + doc/api/amap_map/BaseOverlay-class.html | 282 + doc/api/amap_map/BaseOverlay/BaseOverlay.html | 123 + doc/api/amap_map/BaseOverlay/clone.html | 126 + doc/api/amap_map/BaseOverlay/id.html | 126 + .../amap_map/BaseOverlay/setIdForCopy.html | 124 + doc/api/amap_map/BaseOverlay/toMap.html | 126 + doc/api/amap_map/BitmapDescriptor-class.html | 399 + .../defaultMarker-constant.html | 138 + .../defaultMarkerWithHue.html | 167 + .../BitmapDescriptor/fromAssetImage.html | 175 + .../amap_map/BitmapDescriptor/fromBytes.html | 140 + .../BitmapDescriptor/hueAzure-constant.html | 137 + .../BitmapDescriptor/hueBlue-constant.html | 137 + .../BitmapDescriptor/hueCyan-constant.html | 137 + .../BitmapDescriptor/hueGreen-constant.html | 137 + .../BitmapDescriptor/hueMagenta-constant.html | 137 + .../BitmapDescriptor/hueOrange-constant.html | 137 + .../BitmapDescriptor/hueRed-constant.html | 137 + .../BitmapDescriptor/hueRose-constant.html | 137 + .../BitmapDescriptor/hueViolet-constant.html | 137 + .../BitmapDescriptor/hueYellow-constant.html | 137 + doc/api/amap_map/BitmapDescriptor/toMap.html | 134 + doc/api/amap_map/CameraPosition-class.html | 288 + .../CameraPosition/CameraPosition.html | 140 + doc/api/amap_map/CameraPosition/bearing.html | 129 + doc/api/amap_map/CameraPosition/fromMap.html | 141 + doc/api/amap_map/CameraPosition/hashCode.html | 154 + .../CameraPosition/operator_equals.html | 171 + doc/api/amap_map/CameraPosition/target.html | 129 + doc/api/amap_map/CameraPosition/tilt.html | 129 + doc/api/amap_map/CameraPosition/toMap.html | 135 + doc/api/amap_map/CameraPosition/toString.html | 136 + doc/api/amap_map/CameraPosition/zoom.html | 129 + .../amap_map/CameraTargetBounds-class.html | 264 + .../CameraTargetBounds.html | 126 + .../amap_map/CameraTargetBounds/bounds.html | 127 + .../amap_map/CameraTargetBounds/hashCode.html | 151 + .../CameraTargetBounds/operator_equals.html | 165 + .../amap_map/CameraTargetBounds/toJson.html | 126 + .../amap_map/CameraTargetBounds/toString.html | 134 + .../unbounded-constant.html | 126 + doc/api/amap_map/CameraUpdate-class.html | 310 + .../CameraUpdate/newCameraPosition.html | 136 + doc/api/amap_map/CameraUpdate/newLatLng.html | 134 + .../CameraUpdate/newLatLngBounds.html | 139 + .../amap_map/CameraUpdate/newLatLngZoom.html | 137 + doc/api/amap_map/CameraUpdate/scrollBy.html | 139 + doc/api/amap_map/CameraUpdate/toJson.html | 127 + doc/api/amap_map/CameraUpdate/zoomIn.html | 133 + doc/api/amap_map/CameraUpdate/zoomOut.html | 133 + doc/api/amap_map/CameraUpdate/zoomTo.html | 134 + doc/api/amap_map/CapType-class.html | 287 + doc/api/amap_map/CapType/toString.html | 124 + .../amap_map/CustomStyleOptions-class.html | 281 + .../CustomStyleOptions.html | 130 + .../amap_map/CustomStyleOptions/enabled.html | 128 + .../amap_map/CustomStyleOptions/fromMap.html | 135 + .../amap_map/CustomStyleOptions/hashCode.html | 153 + .../CustomStyleOptions/operator_equals.html | 169 + .../CustomStyleOptions/styleData.html | 128 + .../CustomStyleOptions/styleExtraData.html | 128 + .../amap_map/CustomStyleOptions/toJson.html | 138 + doc/api/amap_map/DashLineType-class.html | 275 + doc/api/amap_map/DashLineType/toString.html | 123 + doc/api/amap_map/InfoWindow-class.html | 277 + doc/api/amap_map/InfoWindow/InfoWindow.html | 127 + doc/api/amap_map/InfoWindow/copyWith.html | 137 + doc/api/amap_map/InfoWindow/hashCode.html | 152 + .../amap_map/InfoWindow/noText-constant.html | 127 + .../amap_map/InfoWindow/operator_equals.html | 166 + doc/api/amap_map/InfoWindow/snippet.html | 127 + doc/api/amap_map/InfoWindow/title.html | 127 + doc/api/amap_map/InfoWindow/toString.html | 135 + doc/api/amap_map/JoinType-class.html | 275 + doc/api/amap_map/JoinType/toString.html | 123 + doc/api/amap_map/MapCreatedCallback.html | 135 + doc/api/amap_map/MapType-class.html | 299 + doc/api/amap_map/MapType/toString.html | 125 + doc/api/amap_map/Marker-class.html | 411 + doc/api/amap_map/Marker/Marker.html | 164 + doc/api/amap_map/Marker/alpha.html | 140 + doc/api/amap_map/Marker/anchor.html | 140 + doc/api/amap_map/Marker/clickable.html | 140 + doc/api/amap_map/Marker/clone.html | 137 + doc/api/amap_map/Marker/copyWith.html | 183 + doc/api/amap_map/Marker/draggable.html | 140 + doc/api/amap_map/Marker/hashCode.html | 165 + doc/api/amap_map/Marker/icon.html | 140 + doc/api/amap_map/Marker/infoWindow.html | 140 + doc/api/amap_map/Marker/infoWindowEnable.html | 141 + doc/api/amap_map/Marker/onDragEnd.html | 140 + doc/api/amap_map/Marker/onTap.html | 140 + doc/api/amap_map/Marker/operator_equals.html | 190 + doc/api/amap_map/Marker/position.html | 140 + doc/api/amap_map/Marker/rotation.html | 140 + doc/api/amap_map/Marker/toMap.html | 165 + doc/api/amap_map/Marker/toString.html | 151 + doc/api/amap_map/Marker/visible.html | 140 + doc/api/amap_map/Marker/zIndex.html | 141 + doc/api/amap_map/MarkerDragEndCallback.html | 139 + doc/api/amap_map/MarkerUpdates-class.html | 265 + .../MarkerUpdates/MarkerUpdates.from.html | 167 + doc/api/amap_map/MarkerUpdates/hashCode.html | 152 + .../MarkerUpdates/markerIdsToRemove.html | 126 + .../amap_map/MarkerUpdates/markersToAdd.html | 126 + .../MarkerUpdates/markersToChange.html | 126 + .../MarkerUpdates/operator_equals.html | 167 + doc/api/amap_map/MarkerUpdates/toMap.html | 137 + doc/api/amap_map/MarkerUpdates/toString.html | 136 + .../amap_map/MinMaxZoomPreference-class.html | 277 + .../MinMaxZoomPreference.html | 129 + .../defaultPreference-constant.html | 128 + .../MinMaxZoomPreference/hashCode.html | 152 + .../MinMaxZoomPreference/maxZoom.html | 127 + .../MinMaxZoomPreference/minZoom.html | 127 + .../MinMaxZoomPreference/operator_equals.html | 166 + .../amap_map/MinMaxZoomPreference/toJson.html | 127 + .../MinMaxZoomPreference/toString.html | 135 + .../MyLocationStyleOptions-class.html | 299 + .../MyLocationStyleOptions.html | 136 + .../circleFillColor.html | 130 + .../circleStrokeColor.html | 130 + .../circleStrokeWidth.html | 130 + .../MyLocationStyleOptions/enabled.html | 130 + .../MyLocationStyleOptions/fromMap.html | 139 + .../MyLocationStyleOptions/hashCode.html | 156 + .../amap_map/MyLocationStyleOptions/icon.html | 130 + .../operator_equals.html | 172 + .../MyLocationStyleOptions/toMap.html | 142 + .../MyLocationStyleOptions/toString.html | 142 + doc/api/amap_map/Polygon-class.html | 346 + doc/api/amap_map/Polygon/Polygon.html | 145 + doc/api/amap_map/Polygon/clone.html | 130 + doc/api/amap_map/Polygon/copyWith.html | 155 + doc/api/amap_map/Polygon/fillColor.html | 133 + doc/api/amap_map/Polygon/hashCode.html | 158 + doc/api/amap_map/Polygon/joinType.html | 133 + doc/api/amap_map/Polygon/operator_equals.html | 178 + doc/api/amap_map/Polygon/points.html | 133 + doc/api/amap_map/Polygon/strokeColor.html | 133 + doc/api/amap_map/Polygon/strokeWidth.html | 133 + doc/api/amap_map/Polygon/toMap.html | 158 + doc/api/amap_map/Polygon/visible.html | 133 + doc/api/amap_map/PolygonUpdates-class.html | 265 + .../PolygonUpdates/PolygonUpdates.from.html | 167 + doc/api/amap_map/PolygonUpdates/hashCode.html | 152 + .../PolygonUpdates/operator_equals.html | 167 + .../PolygonUpdates/polygonIdsToRemove.html | 126 + .../PolygonUpdates/polygonsToAdd.html | 126 + .../PolygonUpdates/polygonsToChange.html | 126 + doc/api/amap_map/PolygonUpdates/toMap.html | 140 + doc/api/amap_map/PolygonUpdates/toString.html | 136 + doc/api/amap_map/Polyline-class.html | 391 + doc/api/amap_map/Polyline/Polyline.html | 160 + doc/api/amap_map/Polyline/alpha.html | 138 + doc/api/amap_map/Polyline/capType.html | 138 + doc/api/amap_map/Polyline/clone.html | 135 + doc/api/amap_map/Polyline/color.html | 138 + doc/api/amap_map/Polyline/copyWith.html | 177 + doc/api/amap_map/Polyline/customTexture.html | 138 + doc/api/amap_map/Polyline/dashLineType.html | 138 + doc/api/amap_map/Polyline/geodesic.html | 138 + doc/api/amap_map/Polyline/hashCode.html | 163 + doc/api/amap_map/Polyline/joinType.html | 138 + doc/api/amap_map/Polyline/onTap.html | 138 + .../amap_map/Polyline/operator_equals.html | 186 + doc/api/amap_map/Polyline/points.html | 138 + doc/api/amap_map/Polyline/toMap.html | 169 + doc/api/amap_map/Polyline/visible.html | 138 + doc/api/amap_map/Polyline/width.html | 138 + doc/api/amap_map/PolylineUpdates-class.html | 265 + .../PolylineUpdates/PolylineUpdates.from.html | 167 + .../amap_map/PolylineUpdates/hashCode.html | 152 + .../PolylineUpdates/operator_equals.html | 167 + .../PolylineUpdates/polylineIdsToRemove.html | 126 + .../PolylineUpdates/polylinesToAdd.html | 126 + .../PolylineUpdates/polylinesToChange.html | 126 + doc/api/amap_map/PolylineUpdates/toMap.html | 140 + .../amap_map/PolylineUpdates/toString.html | 136 + .../amap_map/amap_flutter_map-library.html | 341 + doc/api/amap_map/keyByMarkerId.html | 141 + doc/api/amap_map/keyByPolygonId.html | 141 + doc/api/amap_map/keyByPolylineId.html | 141 + doc/api/amap_map/serializeOverlaySet.html | 142 + doc/api/categories.json | 1 + doc/api/index.html | 106 + doc/api/index.json | 1 + doc/api/static-assets/URI.js | 56 + doc/api/static-assets/css/bootstrap.css | 6584 +++++++++++++++++ doc/api/static-assets/css/bootstrap.min.css | 5 + doc/api/static-assets/favicon.png | Bin 0 -> 916 bytes doc/api/static-assets/github.css | 99 + doc/api/static-assets/highlight.pack.js | 2 + doc/api/static-assets/play_button.svg | 1 + doc/api/static-assets/readme.md | 19 + doc/api/static-assets/script.js | 270 + doc/api/static-assets/styles.css | 992 +++ doc/api/static-assets/typeahead.bundle.min.js | 8 + example/.gitignore | 41 + example/.metadata | 10 + example/README.md | 16 + example/android/.gitignore | 11 + example/android/app/build.gradle | 79 + .../android/app/src/debug/AndroidManifest.xml | 7 + .../android/app/src/main/AndroidManifest.xml | 58 + .../amap_map_example/MainActivity.java | 6 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 13669 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 8464 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 20616 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 43831 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 71779 bytes .../app/src/main/res/values/styles.xml | 18 + .../app/src/profile/AndroidManifest.xml | 7 + example/android/build.gradle | 29 + example/android/debug.keystore | Bin 0 -> 1267 bytes example/android/gradle.properties | 4 + .../gradle/wrapper/gradle-wrapper.properties | 6 + example/android/settings.gradle | 11 + example/assets/2.0x/marker_icon.png | Bin 0 -> 519 bytes example/assets/end.png | Bin 0 -> 11147 bytes example/assets/location_marker.png | Bin 0 -> 1913 bytes example/assets/marker_icon.png | Bin 0 -> 519 bytes example/assets/start.png | Bin 0 -> 10448 bytes example/assets/style.data | Bin 0 -> 42779 bytes example/assets/style_extra.data | Bin 0 -> 3214 bytes example/assets/texture_green.png | Bin 0 -> 1210 bytes example/ios/.gitignore | 32 + example/ios/Flutter/AppFrameworkInfo.plist | 26 + example/ios/Flutter/Debug.xcconfig | 2 + example/ios/Flutter/Release.xcconfig | 2 + example/ios/Podfile | 38 + example/ios/Podfile.lock | 39 + example/ios/Runner.xcodeproj/project.pbxproj | 583 ++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 91 + .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + example/ios/Runner/AppDelegate.h | 6 + example/ios/Runner/AppDelegate.m | 15 + .../AppIcon.appiconset/Contents.json | 122 + .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 1652 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 5003 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 9680 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 2948 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 9211 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 18072 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 5003 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 15758 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 31936 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 31936 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 64343 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 14380 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 47890 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 56850 bytes .../LaunchImage.imageset/Contents.json | 23 + .../Icon-App-83.5x83.5@2x-1.png | Bin 0 -> 56850 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 56850 bytes .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + .../Runner/Base.lproj/LaunchScreen.storyboard | 37 + example/ios/Runner/Base.lproj/Main.storyboard | 26 + example/ios/Runner/Info.plist | 60 + example/ios/Runner/main.m | 9 + example/lib/base_page.dart | 9 + example/lib/const_config.dart | 9 + example/lib/main.dart | 136 + example/lib/page.dart | 14 + .../interactive/map_gestures_options.dart | 123 + .../lib/pages/interactive/map_ui_options.dart | 138 + .../pages/interactive/move_camera_demo.dart | 236 + .../lib/pages/interactive/poi_click_demo.dart | 69 + .../lib/pages/interactive/snapshot_demo.dart | 85 + example/lib/pages/map/change_map_type.dart | 78 + example/lib/pages/map/custom_map_style.dart | 94 + example/lib/pages/map/limit_map_bounds.dart | 34 + example/lib/pages/map/map_all_config.dart | 426 ++ example/lib/pages/map/map_my_location.dart | 52 + example/lib/pages/map/min_max_zoom.dart | 141 + example/lib/pages/map/multi_map.dart | 42 + example/lib/pages/map/show_map_page.dart | 76 + .../pages/overlays/marker_add_after_map.dart | 91 + .../pages/overlays/marker_add_with_map.dart | 42 + example/lib/pages/overlays/marker_config.dart | 343 + .../pages/overlays/marker_custom_icon.dart | 99 + example/lib/pages/overlays/place_polygon.dart | 221 + .../lib/pages/overlays/place_polyline.dart | 304 + .../lib/pages/overlays/polyline_geodesic.dart | 124 + .../lib/pages/overlays/polyline_texture.dart | 112 + example/lib/widgets/amap_gridview.dart | 40 + example/lib/widgets/amap_radio_group.dart | 77 + example/lib/widgets/amap_switch_button.dart | 57 + example/lib/widgets/demo_group.dart | 70 + example/lib/widgets/toast.dart | 136 + example/pubspec.yaml | 55 + example/test/amap_tools_test.dart | 39 + example/test/widget_test.dart | 27 + ios/.gitignore | 37 + ios/Assets/.gitkeep | 0 ios/Classes/AMapFlutterFactory.h | 19 + ios/Classes/AMapFlutterFactory.m | 36 + ios/Classes/AMapFlutterMapPlugin.h | 5 + ios/Classes/AMapFlutterMapPlugin.m | 18 + ios/Classes/AMapViewController.h | 23 + ios/Classes/AMapViewController.m | 499 ++ .../FlutterMethodChannel+MethodCallDispatch.h | 32 + .../FlutterMethodChannel+MethodCallDispatch.m | 42 + .../Category/MAAnnotationView+Flutter.h | 20 + .../Category/MAAnnotationView+Flutter.m | 40 + ios/Classes/Category/MAMapView+Flutter.h | 30 + ios/Classes/Category/MAMapView+Flutter.m | 222 + .../Category/MAPointAnnotation+Flutter.h | 29 + .../Category/MAPointAnnotation+Flutter.m | 31 + ios/Classes/Category/MAPolygon+Flutter.h | 26 + ios/Classes/Category/MAPolygon+Flutter.m | 29 + .../Category/MAPolygonRenderer+Flutter.h | 20 + .../Category/MAPolygonRenderer+Flutter.m | 26 + ios/Classes/Category/MAPolyline+Flutter.h | 26 + ios/Classes/Category/MAPolyline+Flutter.m | 29 + .../Category/MAPolylineRenderer+Flutter.h | 20 + .../Category/MAPolylineRenderer+Flutter.m | 30 + ios/Classes/Model/AMapCameraPosition.h | 28 + ios/Classes/Model/AMapCameraPosition.m | 21 + ios/Classes/Model/AMapInfoWindow.h | 22 + ios/Classes/Model/AMapInfoWindow.m | 12 + ios/Classes/Model/AMapLocation.h | 44 + ios/Classes/Model/AMapLocation.m | 32 + ios/Classes/Model/AMapMarker.h | 58 + ios/Classes/Model/AMapMarker.m | 68 + ios/Classes/Model/AMapPolygon.h | 44 + ios/Classes/Model/AMapPolygon.m | 97 + ios/Classes/Model/AMapPolyline.h | 60 + ios/Classes/Model/AMapPolyline.m | 104 + .../OverlayController/AMapMarkerController.h | 40 + .../OverlayController/AMapMarkerController.m | 153 + .../OverlayController/AMapPolygonController.h | 33 + .../OverlayController/AMapPolygonController.m | 99 + .../AMapPolylineController.h | 34 + .../AMapPolylineController.m | 125 + ios/Classes/Util/AMapConvertUtil.h | 68 + ios/Classes/Util/AMapConvertUtil.m | 215 + ios/Classes/Util/AMapJsonUtils.h | 35 + ios/Classes/Util/AMapJsonUtils.m | 275 + ios/Classes/Util/AMapMethodCallDispatcher.h | 27 + ios/Classes/Util/AMapMethodCallDispatcher.m | 61 + ios/amap_flutter_map.podspec | 26 + lib/amap_map.dart | 19 + lib/src/amap_controller.dart | 150 + lib/src/amap_widget.dart | 419 ++ lib/src/core/amap_flutter_platform.dart | 41 + lib/src/core/map_event.dart | 77 + lib/src/core/method_channel_amap_map.dart | 273 + lib/src/types/base_overlay.dart | 29 + lib/src/types/bitmap.dart | 140 + lib/src/types/camera.dart | 153 + lib/src/types/marker.dart | 252 + lib/src/types/marker_updates.dart | 102 + lib/src/types/polygon.dart | 120 + lib/src/types/polygon_updates.dart | 105 + lib/src/types/polyline.dart | 198 + lib/src/types/polyline_updates.dart | 107 + lib/src/types/types.dart | 10 + lib/src/types/ui.dart | 256 + pubspec.yaml | 78 + res/AZURE.png | Bin 0 -> 1513 bytes res/BLUE.png | Bin 0 -> 1554 bytes res/CYAN.png | Bin 0 -> 1529 bytes res/GREEN.png | Bin 0 -> 1546 bytes res/MAGENTA.png | Bin 0 -> 3151 bytes res/ORANGE.png | Bin 0 -> 1526 bytes res/RED.png | Bin 0 -> 1523 bytes res/ROSE.png | Bin 0 -> 1537 bytes res/VIOLET.png | Bin 0 -> 1529 bytes res/YELLOW.png | Bin 0 -> 1507 bytes res/marker_default.png | Bin 0 -> 1519 bytes test/amap_flutter_map_test.dart | 22 + 461 files changed, 58770 insertions(+) create mode 100644 .gitignore create mode 100644 .metadata create mode 100644 CHANGELOG.md create mode 100644 LICENSE create mode 100644 README.md create mode 100644 android/.gitignore create mode 100644 android/build.gradle create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100644 android/settings.gradle create mode 100644 android/src/main/AndroidManifest.xml create mode 100644 android/src/main/java/com/amap/flutter/map/AMapFlutterMapPlugin.java create mode 100644 android/src/main/java/com/amap/flutter/map/AMapOptionsBuilder.java create mode 100644 android/src/main/java/com/amap/flutter/map/AMapPlatformView.java create mode 100644 android/src/main/java/com/amap/flutter/map/AMapPlatformViewFactory.java create mode 100644 android/src/main/java/com/amap/flutter/map/LifecycleProvider.java create mode 100644 android/src/main/java/com/amap/flutter/map/MyMethodCallHandler.java create mode 100644 android/src/main/java/com/amap/flutter/map/ProxyLifecycleProvider.java create mode 100644 android/src/main/java/com/amap/flutter/map/core/AMapOptionsSink.java create mode 100644 android/src/main/java/com/amap/flutter/map/core/MapController.java create mode 100644 android/src/main/java/com/amap/flutter/map/overlays/AbstractOverlayController.java create mode 100644 android/src/main/java/com/amap/flutter/map/overlays/marker/MarkerController.java create mode 100644 android/src/main/java/com/amap/flutter/map/overlays/marker/MarkerOptionsBuilder.java create mode 100644 android/src/main/java/com/amap/flutter/map/overlays/marker/MarkerOptionsSink.java create mode 100644 android/src/main/java/com/amap/flutter/map/overlays/marker/MarkerUtil.java create mode 100644 android/src/main/java/com/amap/flutter/map/overlays/marker/MarkersController.java create mode 100644 android/src/main/java/com/amap/flutter/map/overlays/polygon/PolygonController.java create mode 100644 android/src/main/java/com/amap/flutter/map/overlays/polygon/PolygonOptionsBuilder.java create mode 100644 android/src/main/java/com/amap/flutter/map/overlays/polygon/PolygonOptionsSink.java create mode 100644 android/src/main/java/com/amap/flutter/map/overlays/polygon/PolygonUtil.java create mode 100644 android/src/main/java/com/amap/flutter/map/overlays/polygon/PolygonsController.java create mode 100644 android/src/main/java/com/amap/flutter/map/overlays/polyline/PolylineController.java create mode 100644 android/src/main/java/com/amap/flutter/map/overlays/polyline/PolylineOptionsBuilder.java create mode 100644 android/src/main/java/com/amap/flutter/map/overlays/polyline/PolylineOptionsSink.java create mode 100644 android/src/main/java/com/amap/flutter/map/overlays/polyline/PolylineUtil.java create mode 100644 android/src/main/java/com/amap/flutter/map/overlays/polyline/PolylinesController.java create mode 100644 android/src/main/java/com/amap/flutter/map/utils/Const.java create mode 100644 android/src/main/java/com/amap/flutter/map/utils/ConvertUtil.java create mode 100644 android/src/main/java/com/amap/flutter/map/utils/LogUtil.java create mode 100644 doc/api/__404error.html create mode 100644 doc/api/amap_map/AMapController-class.html create mode 100644 doc/api/amap_map/AMapController/channel.html create mode 100644 doc/api/amap_map/AMapController/clearDisk.html create mode 100644 doc/api/amap_map/AMapController/disponse.html create mode 100644 doc/api/amap_map/AMapController/getMapContentApprovalNumber.html create mode 100644 doc/api/amap_map/AMapController/getSatelliteImageApprovalNumber.html create mode 100644 doc/api/amap_map/AMapController/init.html create mode 100644 doc/api/amap_map/AMapController/mapId.html create mode 100644 doc/api/amap_map/AMapController/moveCamera.html create mode 100644 doc/api/amap_map/AMapController/setRenderFps.html create mode 100644 doc/api/amap_map/AMapController/takeSnapshot.html create mode 100644 doc/api/amap_map/AMapWidget-class.html create mode 100644 doc/api/amap_map/AMapWidget/AMapWidget.html create mode 100644 doc/api/amap_map/AMapWidget/apiKey.html create mode 100644 doc/api/amap_map/AMapWidget/buildingsEnabled.html create mode 100644 doc/api/amap_map/AMapWidget/compassEnabled.html create mode 100644 doc/api/amap_map/AMapWidget/createState.html create mode 100644 doc/api/amap_map/AMapWidget/customStyleOptions.html create mode 100644 doc/api/amap_map/AMapWidget/gestureRecognizers.html create mode 100644 doc/api/amap_map/AMapWidget/initialCameraPosition.html create mode 100644 doc/api/amap_map/AMapWidget/labelsEnabled.html create mode 100644 doc/api/amap_map/AMapWidget/limitBounds.html create mode 100644 doc/api/amap_map/AMapWidget/mapType.html create mode 100644 doc/api/amap_map/AMapWidget/markers.html create mode 100644 doc/api/amap_map/AMapWidget/minMaxZoomPreference.html create mode 100644 doc/api/amap_map/AMapWidget/myLocationStyleOptions.html create mode 100644 doc/api/amap_map/AMapWidget/onCameraMove.html create mode 100644 doc/api/amap_map/AMapWidget/onCameraMoveEnd.html create mode 100644 doc/api/amap_map/AMapWidget/onLocationChanged.html create mode 100644 doc/api/amap_map/AMapWidget/onLongPress.html create mode 100644 doc/api/amap_map/AMapWidget/onMapCreated.html create mode 100644 doc/api/amap_map/AMapWidget/onPoiTouched.html create mode 100644 doc/api/amap_map/AMapWidget/onTap.html create mode 100644 doc/api/amap_map/AMapWidget/polygons.html create mode 100644 doc/api/amap_map/AMapWidget/polylines.html create mode 100644 doc/api/amap_map/AMapWidget/rotateGesturesEnabled.html create mode 100644 doc/api/amap_map/AMapWidget/scaleEnabled.html create mode 100644 doc/api/amap_map/AMapWidget/scrollGesturesEnabled.html create mode 100644 doc/api/amap_map/AMapWidget/tiltGesturesEnabled.html create mode 100644 doc/api/amap_map/AMapWidget/touchPoiEnabled.html create mode 100644 doc/api/amap_map/AMapWidget/trafficEnabled.html create mode 100644 doc/api/amap_map/AMapWidget/zoomGesturesEnabled.html create mode 100644 doc/api/amap_map/BaseOverlay-class.html create mode 100644 doc/api/amap_map/BaseOverlay/BaseOverlay.html create mode 100644 doc/api/amap_map/BaseOverlay/clone.html create mode 100644 doc/api/amap_map/BaseOverlay/id.html create mode 100644 doc/api/amap_map/BaseOverlay/setIdForCopy.html create mode 100644 doc/api/amap_map/BaseOverlay/toMap.html create mode 100644 doc/api/amap_map/BitmapDescriptor-class.html create mode 100644 doc/api/amap_map/BitmapDescriptor/defaultMarker-constant.html create mode 100644 doc/api/amap_map/BitmapDescriptor/defaultMarkerWithHue.html create mode 100644 doc/api/amap_map/BitmapDescriptor/fromAssetImage.html create mode 100644 doc/api/amap_map/BitmapDescriptor/fromBytes.html create mode 100644 doc/api/amap_map/BitmapDescriptor/hueAzure-constant.html create mode 100644 doc/api/amap_map/BitmapDescriptor/hueBlue-constant.html create mode 100644 doc/api/amap_map/BitmapDescriptor/hueCyan-constant.html create mode 100644 doc/api/amap_map/BitmapDescriptor/hueGreen-constant.html create mode 100644 doc/api/amap_map/BitmapDescriptor/hueMagenta-constant.html create mode 100644 doc/api/amap_map/BitmapDescriptor/hueOrange-constant.html create mode 100644 doc/api/amap_map/BitmapDescriptor/hueRed-constant.html create mode 100644 doc/api/amap_map/BitmapDescriptor/hueRose-constant.html create mode 100644 doc/api/amap_map/BitmapDescriptor/hueViolet-constant.html create mode 100644 doc/api/amap_map/BitmapDescriptor/hueYellow-constant.html create mode 100644 doc/api/amap_map/BitmapDescriptor/toMap.html create mode 100644 doc/api/amap_map/CameraPosition-class.html create mode 100644 doc/api/amap_map/CameraPosition/CameraPosition.html create mode 100644 doc/api/amap_map/CameraPosition/bearing.html create mode 100644 doc/api/amap_map/CameraPosition/fromMap.html create mode 100644 doc/api/amap_map/CameraPosition/hashCode.html create mode 100644 doc/api/amap_map/CameraPosition/operator_equals.html create mode 100644 doc/api/amap_map/CameraPosition/target.html create mode 100644 doc/api/amap_map/CameraPosition/tilt.html create mode 100644 doc/api/amap_map/CameraPosition/toMap.html create mode 100644 doc/api/amap_map/CameraPosition/toString.html create mode 100644 doc/api/amap_map/CameraPosition/zoom.html create mode 100644 doc/api/amap_map/CameraTargetBounds-class.html create mode 100644 doc/api/amap_map/CameraTargetBounds/CameraTargetBounds.html create mode 100644 doc/api/amap_map/CameraTargetBounds/bounds.html create mode 100644 doc/api/amap_map/CameraTargetBounds/hashCode.html create mode 100644 doc/api/amap_map/CameraTargetBounds/operator_equals.html create mode 100644 doc/api/amap_map/CameraTargetBounds/toJson.html create mode 100644 doc/api/amap_map/CameraTargetBounds/toString.html create mode 100644 doc/api/amap_map/CameraTargetBounds/unbounded-constant.html create mode 100644 doc/api/amap_map/CameraUpdate-class.html create mode 100644 doc/api/amap_map/CameraUpdate/newCameraPosition.html create mode 100644 doc/api/amap_map/CameraUpdate/newLatLng.html create mode 100644 doc/api/amap_map/CameraUpdate/newLatLngBounds.html create mode 100644 doc/api/amap_map/CameraUpdate/newLatLngZoom.html create mode 100644 doc/api/amap_map/CameraUpdate/scrollBy.html create mode 100644 doc/api/amap_map/CameraUpdate/toJson.html create mode 100644 doc/api/amap_map/CameraUpdate/zoomIn.html create mode 100644 doc/api/amap_map/CameraUpdate/zoomOut.html create mode 100644 doc/api/amap_map/CameraUpdate/zoomTo.html create mode 100644 doc/api/amap_map/CapType-class.html create mode 100644 doc/api/amap_map/CapType/toString.html create mode 100644 doc/api/amap_map/CustomStyleOptions-class.html create mode 100644 doc/api/amap_map/CustomStyleOptions/CustomStyleOptions.html create mode 100644 doc/api/amap_map/CustomStyleOptions/enabled.html create mode 100644 doc/api/amap_map/CustomStyleOptions/fromMap.html create mode 100644 doc/api/amap_map/CustomStyleOptions/hashCode.html create mode 100644 doc/api/amap_map/CustomStyleOptions/operator_equals.html create mode 100644 doc/api/amap_map/CustomStyleOptions/styleData.html create mode 100644 doc/api/amap_map/CustomStyleOptions/styleExtraData.html create mode 100644 doc/api/amap_map/CustomStyleOptions/toJson.html create mode 100644 doc/api/amap_map/DashLineType-class.html create mode 100644 doc/api/amap_map/DashLineType/toString.html create mode 100644 doc/api/amap_map/InfoWindow-class.html create mode 100644 doc/api/amap_map/InfoWindow/InfoWindow.html create mode 100644 doc/api/amap_map/InfoWindow/copyWith.html create mode 100644 doc/api/amap_map/InfoWindow/hashCode.html create mode 100644 doc/api/amap_map/InfoWindow/noText-constant.html create mode 100644 doc/api/amap_map/InfoWindow/operator_equals.html create mode 100644 doc/api/amap_map/InfoWindow/snippet.html create mode 100644 doc/api/amap_map/InfoWindow/title.html create mode 100644 doc/api/amap_map/InfoWindow/toString.html create mode 100644 doc/api/amap_map/JoinType-class.html create mode 100644 doc/api/amap_map/JoinType/toString.html create mode 100644 doc/api/amap_map/MapCreatedCallback.html create mode 100644 doc/api/amap_map/MapType-class.html create mode 100644 doc/api/amap_map/MapType/toString.html create mode 100644 doc/api/amap_map/Marker-class.html create mode 100644 doc/api/amap_map/Marker/Marker.html create mode 100644 doc/api/amap_map/Marker/alpha.html create mode 100644 doc/api/amap_map/Marker/anchor.html create mode 100644 doc/api/amap_map/Marker/clickable.html create mode 100644 doc/api/amap_map/Marker/clone.html create mode 100644 doc/api/amap_map/Marker/copyWith.html create mode 100644 doc/api/amap_map/Marker/draggable.html create mode 100644 doc/api/amap_map/Marker/hashCode.html create mode 100644 doc/api/amap_map/Marker/icon.html create mode 100644 doc/api/amap_map/Marker/infoWindow.html create mode 100644 doc/api/amap_map/Marker/infoWindowEnable.html create mode 100644 doc/api/amap_map/Marker/onDragEnd.html create mode 100644 doc/api/amap_map/Marker/onTap.html create mode 100644 doc/api/amap_map/Marker/operator_equals.html create mode 100644 doc/api/amap_map/Marker/position.html create mode 100644 doc/api/amap_map/Marker/rotation.html create mode 100644 doc/api/amap_map/Marker/toMap.html create mode 100644 doc/api/amap_map/Marker/toString.html create mode 100644 doc/api/amap_map/Marker/visible.html create mode 100644 doc/api/amap_map/Marker/zIndex.html create mode 100644 doc/api/amap_map/MarkerDragEndCallback.html create mode 100644 doc/api/amap_map/MarkerUpdates-class.html create mode 100644 doc/api/amap_map/MarkerUpdates/MarkerUpdates.from.html create mode 100644 doc/api/amap_map/MarkerUpdates/hashCode.html create mode 100644 doc/api/amap_map/MarkerUpdates/markerIdsToRemove.html create mode 100644 doc/api/amap_map/MarkerUpdates/markersToAdd.html create mode 100644 doc/api/amap_map/MarkerUpdates/markersToChange.html create mode 100644 doc/api/amap_map/MarkerUpdates/operator_equals.html create mode 100644 doc/api/amap_map/MarkerUpdates/toMap.html create mode 100644 doc/api/amap_map/MarkerUpdates/toString.html create mode 100644 doc/api/amap_map/MinMaxZoomPreference-class.html create mode 100644 doc/api/amap_map/MinMaxZoomPreference/MinMaxZoomPreference.html create mode 100644 doc/api/amap_map/MinMaxZoomPreference/defaultPreference-constant.html create mode 100644 doc/api/amap_map/MinMaxZoomPreference/hashCode.html create mode 100644 doc/api/amap_map/MinMaxZoomPreference/maxZoom.html create mode 100644 doc/api/amap_map/MinMaxZoomPreference/minZoom.html create mode 100644 doc/api/amap_map/MinMaxZoomPreference/operator_equals.html create mode 100644 doc/api/amap_map/MinMaxZoomPreference/toJson.html create mode 100644 doc/api/amap_map/MinMaxZoomPreference/toString.html create mode 100644 doc/api/amap_map/MyLocationStyleOptions-class.html create mode 100644 doc/api/amap_map/MyLocationStyleOptions/MyLocationStyleOptions.html create mode 100644 doc/api/amap_map/MyLocationStyleOptions/circleFillColor.html create mode 100644 doc/api/amap_map/MyLocationStyleOptions/circleStrokeColor.html create mode 100644 doc/api/amap_map/MyLocationStyleOptions/circleStrokeWidth.html create mode 100644 doc/api/amap_map/MyLocationStyleOptions/enabled.html create mode 100644 doc/api/amap_map/MyLocationStyleOptions/fromMap.html create mode 100644 doc/api/amap_map/MyLocationStyleOptions/hashCode.html create mode 100644 doc/api/amap_map/MyLocationStyleOptions/icon.html create mode 100644 doc/api/amap_map/MyLocationStyleOptions/operator_equals.html create mode 100644 doc/api/amap_map/MyLocationStyleOptions/toMap.html create mode 100644 doc/api/amap_map/MyLocationStyleOptions/toString.html create mode 100644 doc/api/amap_map/Polygon-class.html create mode 100644 doc/api/amap_map/Polygon/Polygon.html create mode 100644 doc/api/amap_map/Polygon/clone.html create mode 100644 doc/api/amap_map/Polygon/copyWith.html create mode 100644 doc/api/amap_map/Polygon/fillColor.html create mode 100644 doc/api/amap_map/Polygon/hashCode.html create mode 100644 doc/api/amap_map/Polygon/joinType.html create mode 100644 doc/api/amap_map/Polygon/operator_equals.html create mode 100644 doc/api/amap_map/Polygon/points.html create mode 100644 doc/api/amap_map/Polygon/strokeColor.html create mode 100644 doc/api/amap_map/Polygon/strokeWidth.html create mode 100644 doc/api/amap_map/Polygon/toMap.html create mode 100644 doc/api/amap_map/Polygon/visible.html create mode 100644 doc/api/amap_map/PolygonUpdates-class.html create mode 100644 doc/api/amap_map/PolygonUpdates/PolygonUpdates.from.html create mode 100644 doc/api/amap_map/PolygonUpdates/hashCode.html create mode 100644 doc/api/amap_map/PolygonUpdates/operator_equals.html create mode 100644 doc/api/amap_map/PolygonUpdates/polygonIdsToRemove.html create mode 100644 doc/api/amap_map/PolygonUpdates/polygonsToAdd.html create mode 100644 doc/api/amap_map/PolygonUpdates/polygonsToChange.html create mode 100644 doc/api/amap_map/PolygonUpdates/toMap.html create mode 100644 doc/api/amap_map/PolygonUpdates/toString.html create mode 100644 doc/api/amap_map/Polyline-class.html create mode 100644 doc/api/amap_map/Polyline/Polyline.html create mode 100644 doc/api/amap_map/Polyline/alpha.html create mode 100644 doc/api/amap_map/Polyline/capType.html create mode 100644 doc/api/amap_map/Polyline/clone.html create mode 100644 doc/api/amap_map/Polyline/color.html create mode 100644 doc/api/amap_map/Polyline/copyWith.html create mode 100644 doc/api/amap_map/Polyline/customTexture.html create mode 100644 doc/api/amap_map/Polyline/dashLineType.html create mode 100644 doc/api/amap_map/Polyline/geodesic.html create mode 100644 doc/api/amap_map/Polyline/hashCode.html create mode 100644 doc/api/amap_map/Polyline/joinType.html create mode 100644 doc/api/amap_map/Polyline/onTap.html create mode 100644 doc/api/amap_map/Polyline/operator_equals.html create mode 100644 doc/api/amap_map/Polyline/points.html create mode 100644 doc/api/amap_map/Polyline/toMap.html create mode 100644 doc/api/amap_map/Polyline/visible.html create mode 100644 doc/api/amap_map/Polyline/width.html create mode 100644 doc/api/amap_map/PolylineUpdates-class.html create mode 100644 doc/api/amap_map/PolylineUpdates/PolylineUpdates.from.html create mode 100644 doc/api/amap_map/PolylineUpdates/hashCode.html create mode 100644 doc/api/amap_map/PolylineUpdates/operator_equals.html create mode 100644 doc/api/amap_map/PolylineUpdates/polylineIdsToRemove.html create mode 100644 doc/api/amap_map/PolylineUpdates/polylinesToAdd.html create mode 100644 doc/api/amap_map/PolylineUpdates/polylinesToChange.html create mode 100644 doc/api/amap_map/PolylineUpdates/toMap.html create mode 100644 doc/api/amap_map/PolylineUpdates/toString.html create mode 100644 doc/api/amap_map/amap_flutter_map-library.html create mode 100644 doc/api/amap_map/keyByMarkerId.html create mode 100644 doc/api/amap_map/keyByPolygonId.html create mode 100644 doc/api/amap_map/keyByPolylineId.html create mode 100644 doc/api/amap_map/serializeOverlaySet.html create mode 100644 doc/api/categories.json create mode 100644 doc/api/index.html create mode 100644 doc/api/index.json create mode 100644 doc/api/static-assets/URI.js create mode 100644 doc/api/static-assets/css/bootstrap.css create mode 100644 doc/api/static-assets/css/bootstrap.min.css create mode 100644 doc/api/static-assets/favicon.png create mode 100644 doc/api/static-assets/github.css create mode 100644 doc/api/static-assets/highlight.pack.js create mode 100644 doc/api/static-assets/play_button.svg create mode 100644 doc/api/static-assets/readme.md create mode 100644 doc/api/static-assets/script.js create mode 100644 doc/api/static-assets/styles.css create mode 100644 doc/api/static-assets/typeahead.bundle.min.js create mode 100644 example/.gitignore create mode 100644 example/.metadata create mode 100644 example/README.md create mode 100644 example/android/.gitignore create mode 100644 example/android/app/build.gradle create mode 100644 example/android/app/src/debug/AndroidManifest.xml create mode 100644 example/android/app/src/main/AndroidManifest.xml create mode 100644 example/android/app/src/main/java/com/amap/flutter/amap_map_example/MainActivity.java create mode 100644 example/android/app/src/main/res/drawable/launch_background.xml create mode 100644 example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 example/android/app/src/main/res/values/styles.xml create mode 100644 example/android/app/src/profile/AndroidManifest.xml create mode 100644 example/android/build.gradle create mode 100644 example/android/debug.keystore create mode 100644 example/android/gradle.properties create mode 100644 example/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 example/android/settings.gradle create mode 100644 example/assets/2.0x/marker_icon.png create mode 100644 example/assets/end.png create mode 100644 example/assets/location_marker.png create mode 100644 example/assets/marker_icon.png create mode 100644 example/assets/start.png create mode 100644 example/assets/style.data create mode 100644 example/assets/style_extra.data create mode 100644 example/assets/texture_green.png create mode 100644 example/ios/.gitignore create mode 100644 example/ios/Flutter/AppFrameworkInfo.plist create mode 100644 example/ios/Flutter/Debug.xcconfig create mode 100644 example/ios/Flutter/Release.xcconfig create mode 100644 example/ios/Podfile create mode 100644 example/ios/Podfile.lock create mode 100644 example/ios/Runner.xcodeproj/project.pbxproj create mode 100644 example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 example/ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 example/ios/Runner/AppDelegate.h create mode 100644 example/ios/Runner/AppDelegate.m create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Icon-App-83.5x83.5@2x-1.png create mode 100644 example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Icon-App-83.5x83.5@2x.png create mode 100644 example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 example/ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 example/ios/Runner/Base.lproj/Main.storyboard create mode 100644 example/ios/Runner/Info.plist create mode 100644 example/ios/Runner/main.m create mode 100644 example/lib/base_page.dart create mode 100644 example/lib/const_config.dart create mode 100644 example/lib/main.dart create mode 100644 example/lib/page.dart create mode 100644 example/lib/pages/interactive/map_gestures_options.dart create mode 100644 example/lib/pages/interactive/map_ui_options.dart create mode 100644 example/lib/pages/interactive/move_camera_demo.dart create mode 100644 example/lib/pages/interactive/poi_click_demo.dart create mode 100644 example/lib/pages/interactive/snapshot_demo.dart create mode 100644 example/lib/pages/map/change_map_type.dart create mode 100644 example/lib/pages/map/custom_map_style.dart create mode 100644 example/lib/pages/map/limit_map_bounds.dart create mode 100644 example/lib/pages/map/map_all_config.dart create mode 100644 example/lib/pages/map/map_my_location.dart create mode 100644 example/lib/pages/map/min_max_zoom.dart create mode 100644 example/lib/pages/map/multi_map.dart create mode 100644 example/lib/pages/map/show_map_page.dart create mode 100644 example/lib/pages/overlays/marker_add_after_map.dart create mode 100644 example/lib/pages/overlays/marker_add_with_map.dart create mode 100644 example/lib/pages/overlays/marker_config.dart create mode 100644 example/lib/pages/overlays/marker_custom_icon.dart create mode 100644 example/lib/pages/overlays/place_polygon.dart create mode 100644 example/lib/pages/overlays/place_polyline.dart create mode 100644 example/lib/pages/overlays/polyline_geodesic.dart create mode 100644 example/lib/pages/overlays/polyline_texture.dart create mode 100644 example/lib/widgets/amap_gridview.dart create mode 100644 example/lib/widgets/amap_radio_group.dart create mode 100644 example/lib/widgets/amap_switch_button.dart create mode 100644 example/lib/widgets/demo_group.dart create mode 100644 example/lib/widgets/toast.dart create mode 100644 example/pubspec.yaml create mode 100644 example/test/amap_tools_test.dart create mode 100644 example/test/widget_test.dart create mode 100644 ios/.gitignore create mode 100644 ios/Assets/.gitkeep create mode 100644 ios/Classes/AMapFlutterFactory.h create mode 100644 ios/Classes/AMapFlutterFactory.m create mode 100644 ios/Classes/AMapFlutterMapPlugin.h create mode 100644 ios/Classes/AMapFlutterMapPlugin.m create mode 100644 ios/Classes/AMapViewController.h create mode 100644 ios/Classes/AMapViewController.m create mode 100644 ios/Classes/Category/FlutterMethodChannel+MethodCallDispatch.h create mode 100644 ios/Classes/Category/FlutterMethodChannel+MethodCallDispatch.m create mode 100644 ios/Classes/Category/MAAnnotationView+Flutter.h create mode 100644 ios/Classes/Category/MAAnnotationView+Flutter.m create mode 100644 ios/Classes/Category/MAMapView+Flutter.h create mode 100644 ios/Classes/Category/MAMapView+Flutter.m create mode 100644 ios/Classes/Category/MAPointAnnotation+Flutter.h create mode 100644 ios/Classes/Category/MAPointAnnotation+Flutter.m create mode 100644 ios/Classes/Category/MAPolygon+Flutter.h create mode 100644 ios/Classes/Category/MAPolygon+Flutter.m create mode 100644 ios/Classes/Category/MAPolygonRenderer+Flutter.h create mode 100644 ios/Classes/Category/MAPolygonRenderer+Flutter.m create mode 100644 ios/Classes/Category/MAPolyline+Flutter.h create mode 100644 ios/Classes/Category/MAPolyline+Flutter.m create mode 100644 ios/Classes/Category/MAPolylineRenderer+Flutter.h create mode 100644 ios/Classes/Category/MAPolylineRenderer+Flutter.m create mode 100644 ios/Classes/Model/AMapCameraPosition.h create mode 100644 ios/Classes/Model/AMapCameraPosition.m create mode 100644 ios/Classes/Model/AMapInfoWindow.h create mode 100644 ios/Classes/Model/AMapInfoWindow.m create mode 100644 ios/Classes/Model/AMapLocation.h create mode 100644 ios/Classes/Model/AMapLocation.m create mode 100644 ios/Classes/Model/AMapMarker.h create mode 100644 ios/Classes/Model/AMapMarker.m create mode 100644 ios/Classes/Model/AMapPolygon.h create mode 100644 ios/Classes/Model/AMapPolygon.m create mode 100644 ios/Classes/Model/AMapPolyline.h create mode 100644 ios/Classes/Model/AMapPolyline.m create mode 100644 ios/Classes/OverlayController/AMapMarkerController.h create mode 100644 ios/Classes/OverlayController/AMapMarkerController.m create mode 100644 ios/Classes/OverlayController/AMapPolygonController.h create mode 100644 ios/Classes/OverlayController/AMapPolygonController.m create mode 100644 ios/Classes/OverlayController/AMapPolylineController.h create mode 100644 ios/Classes/OverlayController/AMapPolylineController.m create mode 100644 ios/Classes/Util/AMapConvertUtil.h create mode 100644 ios/Classes/Util/AMapConvertUtil.m create mode 100644 ios/Classes/Util/AMapJsonUtils.h create mode 100644 ios/Classes/Util/AMapJsonUtils.m create mode 100644 ios/Classes/Util/AMapMethodCallDispatcher.h create mode 100644 ios/Classes/Util/AMapMethodCallDispatcher.m create mode 100644 ios/amap_flutter_map.podspec create mode 100644 lib/amap_map.dart create mode 100644 lib/src/amap_controller.dart create mode 100644 lib/src/amap_widget.dart create mode 100644 lib/src/core/amap_flutter_platform.dart create mode 100644 lib/src/core/map_event.dart create mode 100644 lib/src/core/method_channel_amap_map.dart create mode 100644 lib/src/types/base_overlay.dart create mode 100644 lib/src/types/bitmap.dart create mode 100644 lib/src/types/camera.dart create mode 100644 lib/src/types/marker.dart create mode 100644 lib/src/types/marker_updates.dart create mode 100644 lib/src/types/polygon.dart create mode 100644 lib/src/types/polygon_updates.dart create mode 100644 lib/src/types/polyline.dart create mode 100644 lib/src/types/polyline_updates.dart create mode 100644 lib/src/types/types.dart create mode 100644 lib/src/types/ui.dart create mode 100644 pubspec.yaml create mode 100755 res/AZURE.png create mode 100755 res/BLUE.png create mode 100755 res/CYAN.png create mode 100755 res/GREEN.png create mode 100644 res/MAGENTA.png create mode 100755 res/ORANGE.png create mode 100755 res/RED.png create mode 100755 res/ROSE.png create mode 100755 res/VIOLET.png create mode 100755 res/YELLOW.png create mode 100755 res/marker_default.png create mode 100644 test/amap_flutter_map_test.dart diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6700c8e --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +.DS_Store +.dart_tool/ + +.packages +.pub/ + +build/ +.idea/ +*.iml +**/pubspec.lock +.settings/ +.project diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..4129ce9 --- /dev/null +++ b/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: 84f3d28555368a70270e9ac8390a9441df95e752 + channel: stable + +project_type: plugin diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..6d89c1d --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,3 @@ + +## 1.0.0+1 - 2023-12-22. +* fork from https://pub.dev/packages/amap_flutter_map \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..2675c79 --- /dev/null +++ b/LICENSE @@ -0,0 +1,14 @@ +Copyright 2023 kuloud +Copyright <2020> + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..edc9077 --- /dev/null +++ b/README.md @@ -0,0 +1,113 @@ +# amap_map + +基于[高德开放平台地图SDK](https://lbs.amap.com/api/)的flutter插件 + +## Usage +使用Flutter插件,请参考[在Flutter里使用Packages](https://flutter.cn/docs/development/packages-and-plugins/using-packages), 添加amap_map的引用 + +## 准备工作 +* 登录[高德开放平台官网](https://lbs.amap.com/)申请ApiKey。Android平台申请配置key请参考[Android获取key](https://lbs.amap.com/api/poi-sdk-android/develop/create-project/get-key/?sug_index=2), iOS平台申请配置请参考[iOS获取key](https://lbs.amap.com/api/poi-sdk-ios/develop/create-project/get-key/?sug_index=1)。 +* 引入高德地图SDK,Android平台请参考[Android Sudio配置工程](https://lbs.amap.com/api/android-sdk/guide/create-project/android-studio-create-project), iOS平台请参考[ios安装地图SDK](https://lbs.amap.com/api/ios-sdk/guide/create-project/cocoapods) +* iOS端插件使用特殊配置:Flutter 1.22.0 之前(之后的版本可以不添加该配置),iOS端的UiKitView还只是preview状态, 默认是不支持的, 需要手动打开开关, 需要在iOS工程的info.plist添加如下配置: +``` XML +io.flutter.embedded_views_preview +YES +``` + +## 使用示例 +``` Dart +import 'package:amap_map_example/base_page.dart'; +import 'package:flutter/material.dart'; + +import 'package:amap_map/amap_map.dart'; +import 'package:amap_map/amap_map.dart'; + +class ShowMapPage extends BasePage { + ShowMapPage(String title, String subTitle) : super(title, subTitle); + @override + Widget build(BuildContext context) { + return _ShowMapPageBody(); + } +} + +class _ShowMapPageBody extends StatefulWidget { + @override + State createState() => _ShowMapPageState(); +} + +class _ShowMapPageState extends State<_ShowMapPageBody> { + static final CameraPosition _kInitialPosition = const CameraPosition( + target: LatLng(39.909187, 116.397451), + zoom: 10.0, + ); + List _approvalNumberWidget = List(); + @override + Widget build(BuildContext context) { + final AMapWidget map = AMapWidget( + initialCameraPosition: _kInitialPosition, + onMapCreated: onMapCreated, + ); + + return ConstrainedBox( + constraints: BoxConstraints.expand(), + child: Stack( + alignment: Alignment.center, + children: [ + Container( + height: MediaQuery.of(context).size.height, + width: MediaQuery.of(context).size.width, + child: map, + ), + Positioned( + right: 10, + bottom: 15, + child: Container( + alignment: Alignment.centerLeft, + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + children: _approvalNumberWidget), + )) + ], + ), + ); + } + + AMapController _mapController; + void onMapCreated(AMapController controller) { + setState(() { + _mapController = controller; + getApprovalNumber(); + }); + } + + /// 获取审图号 + void getApprovalNumber() async { + //普通地图审图号 + String mapContentApprovalNumber = + await _mapController?.getMapContentApprovalNumber(); + //卫星地图审图号 + String satelliteImageApprovalNumber = + await _mapController?.getSatelliteImageApprovalNumber(); + setState(() { + if (null != mapContentApprovalNumber) { + _approvalNumberWidget.add(Text(mapContentApprovalNumber)); + } + if (null != satelliteImageApprovalNumber) { + _approvalNumberWidget.add(Text(satelliteImageApprovalNumber)); + } + }); + print('地图审图号(普通地图): $mapContentApprovalNumber'); + print('地图审图号(卫星地图): $satelliteImageApprovalNumber'); + } +} + +``` + +## 已知问题: +1. Flutter插件在iOS端,MapView销毁时,一定概率触发Main Thread Checker的报警, +经过对比测试确认是Flutter的bug所致;https://github.com/flutter/flutter/issues/68490 +(对比1.25.0-8.1.pre版本已修复,从github的issues中得知,有其它开发着反馈1.24.0-6.0.pre已修复;该问题依赖Flutter升级修复) + + + + diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..c6cbe56 --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,8 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 0000000..c2bd588 --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,38 @@ +group 'com.amap.flutter.amap_map' +version '1.0' + +buildscript { + repositories { + google() + jcenter() + } + + dependencies { + classpath 'com.android.tools.build:gradle:3.5.0' + } +} + +rootProject.allprojects { + repositories { + google() + jcenter() + } +} + +apply plugin: 'com.android.library' + +android { + compileSdkVersion 29 + + defaultConfig { + minSdkVersion 16 + } + lintOptions { + disable 'InvalidPackage' + } +} + +dependencies { + compileOnly 'com.amap.api:3dmap:9.8.3' +} + diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..94adc3a --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..01a286e --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 0000000..d85d0b0 --- /dev/null +++ b/android/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'amap_map' diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml new file mode 100644 index 0000000..6a4b0a4 --- /dev/null +++ b/android/src/main/AndroidManifest.xml @@ -0,0 +1,3 @@ + + diff --git a/android/src/main/java/com/amap/flutter/map/AMapFlutterMapPlugin.java b/android/src/main/java/com/amap/flutter/map/AMapFlutterMapPlugin.java new file mode 100644 index 0000000..96bdb09 --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/AMapFlutterMapPlugin.java @@ -0,0 +1,117 @@ +package com.amap.flutter.map; + +import android.app.Activity; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.lifecycle.Lifecycle; +import androidx.lifecycle.LifecycleOwner; + +import com.amap.flutter.map.utils.LogUtil; + + +import io.flutter.embedding.engine.plugins.FlutterPlugin; +import io.flutter.embedding.engine.plugins.activity.ActivityAware; +import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding; +import io.flutter.embedding.engine.plugins.lifecycle.FlutterLifecycleAdapter; +import io.flutter.plugin.common.PluginRegistry; + +/** + * AmapFlutterMapPlugin + */ +public class AMapFlutterMapPlugin implements + FlutterPlugin, + ActivityAware { + private static final String CLASS_NAME = "AMapFlutterMapPlugin"; + private FlutterPluginBinding pluginBinding; + private Lifecycle lifecycle; + + private static final String VIEW_TYPE = "com.amap.flutter.map"; + + public static void registerWith(PluginRegistry.Registrar registrar) { + LogUtil.i(CLASS_NAME, "registerWith=====>"); + + final Activity activity = registrar.activity(); + if (activity == null) { + LogUtil.w(CLASS_NAME, "activity is null!!!"); + return; + } + if (activity instanceof LifecycleOwner) { + registrar + .platformViewRegistry() + .registerViewFactory( + VIEW_TYPE, + new AMapPlatformViewFactory( + registrar.messenger(), + new LifecycleProvider() { + @Override + public Lifecycle getLifecycle() { + return ((LifecycleOwner) activity).getLifecycle(); + } + })); + } else { + registrar + .platformViewRegistry() + .registerViewFactory( + VIEW_TYPE, + new AMapPlatformViewFactory(registrar.messenger(), new ProxyLifecycleProvider(activity))); + } + } + + public AMapFlutterMapPlugin() { + } + + // FlutterPlugin + + @Override + public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) { + LogUtil.i(CLASS_NAME, "onAttachedToEngine==>"); + pluginBinding = binding; + binding + .getPlatformViewRegistry() + .registerViewFactory( + VIEW_TYPE, + new AMapPlatformViewFactory( + binding.getBinaryMessenger(), + new LifecycleProvider() { + @Nullable + @Override + public Lifecycle getLifecycle() { + return lifecycle; + } + })); + } + + @Override + public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { + LogUtil.i(CLASS_NAME, "onDetachedFromEngine==>"); + pluginBinding = null; + } + + + // ActivityAware + + @Override + public void onAttachedToActivity(@NonNull ActivityPluginBinding binding) { + LogUtil.i(CLASS_NAME, "onAttachedToActivity==>"); + lifecycle = FlutterLifecycleAdapter.getActivityLifecycle(binding); + } + + @Override + public void onDetachedFromActivity() { + LogUtil.i(CLASS_NAME, "onDetachedFromActivity==>"); + lifecycle = null; + } + + @Override + public void onReattachedToActivityForConfigChanges(@NonNull ActivityPluginBinding binding) { + LogUtil.i(CLASS_NAME, "onReattachedToActivityForConfigChanges==>"); + onAttachedToActivity(binding); + } + + @Override + public void onDetachedFromActivityForConfigChanges() { + LogUtil.i(CLASS_NAME, "onDetachedFromActivityForConfigChanges==>"); + this.onDetachedFromActivity(); + } +} diff --git a/android/src/main/java/com/amap/flutter/map/AMapOptionsBuilder.java b/android/src/main/java/com/amap/flutter/map/AMapOptionsBuilder.java new file mode 100644 index 0000000..e7c7f86 --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/AMapOptionsBuilder.java @@ -0,0 +1,215 @@ +package com.amap.flutter.map; + +import android.content.Context; + + +import com.amap.api.maps.AMapOptions; +import com.amap.api.maps.model.CameraPosition; +import com.amap.api.maps.model.CustomMapStyleOptions; +import com.amap.api.maps.model.LatLngBounds; +import com.amap.api.maps.model.MyLocationStyle; +import com.amap.flutter.map.core.AMapOptionsSink; +import com.amap.flutter.map.utils.LogUtil; + + +import java.util.List; + +import io.flutter.plugin.common.BinaryMessenger; + +/** + * @author whm + * @date 2020/10/29 10:13 AM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +class AMapOptionsBuilder implements AMapOptionsSink { + private static final String CLASS_NAME = "AMapOptionsBuilder"; + private final AMapOptions options = new AMapOptions(); + private CustomMapStyleOptions customMapStyleOptions; + private MyLocationStyle myLocationStyle; + + private float minZoomLevel = 3; + private float maxZoomLevel = 20; + private LatLngBounds latLngBounds; + private boolean trafficEnabled = true; + private boolean touchPoiEnabled = true; + private boolean buildingsEnabled = true; + private boolean labelsEnabled = true; + + private float anchorX = 2.0F; + private float anchorY = 2.0F; + + private Object initialMarkers; + + private Object initialPolylines; + + private Object initialPolygons; + + AMapPlatformView build(int id, + Context context, + BinaryMessenger binaryMessenger, + LifecycleProvider lifecycleProvider) { + try { + //iOS端没有放大缩小UI, Android端强制隐藏 + options.zoomControlsEnabled(false); + final AMapPlatformView aMapPlatformView = new AMapPlatformView(id, context, binaryMessenger, lifecycleProvider, options); + + + if (null != customMapStyleOptions) { + aMapPlatformView.getMapController().setCustomMapStyleOptions(customMapStyleOptions); + } + + if (null != myLocationStyle) { + aMapPlatformView.getMapController().setMyLocationStyle(myLocationStyle); + } + if (anchorX >= 0 + && anchorX <= 1.0 + && anchorY <= 1.0 + && anchorY >= 0) { + + aMapPlatformView.getMapController().setScreenAnchor( anchorX, anchorY); + } + + aMapPlatformView.getMapController().setMinZoomLevel(minZoomLevel); + aMapPlatformView.getMapController().setMaxZoomLevel(maxZoomLevel); + + if (null != latLngBounds) { + aMapPlatformView.getMapController().setLatLngBounds(latLngBounds); + } + + aMapPlatformView.getMapController().setTrafficEnabled(trafficEnabled); + aMapPlatformView.getMapController().setTouchPoiEnabled(touchPoiEnabled); + aMapPlatformView.getMapController().setBuildingsEnabled(buildingsEnabled); + aMapPlatformView.getMapController().setLabelsEnabled(labelsEnabled); + + + if (null != initialMarkers) { + List markerList = (List) initialMarkers; + aMapPlatformView.getMarkersController().addByList(markerList); + } + + if (null != initialPolylines) { + List markerList = (List) initialPolylines; + aMapPlatformView.getPolylinesController().addByList(markerList); + } + + if (null != initialPolygons) { + List polygonList = (List) initialPolygons; + aMapPlatformView.getPolygonsController().addByList(polygonList); + } + return aMapPlatformView; + } catch (Throwable e) { + LogUtil.e(CLASS_NAME, "build", e); + } + return null; + } + + @Override + public void setCamera(CameraPosition camera) { + options.camera(camera); + } + + @Override + public void setMapType(int mapType) { + options.mapType(mapType); + } + + @Override + public void setCustomMapStyleOptions(CustomMapStyleOptions customMapStyleOptions) { + this.customMapStyleOptions = customMapStyleOptions; + } + + @Override + public void setMyLocationStyle(MyLocationStyle myLocationStyle) { + this.myLocationStyle = myLocationStyle; + } + + @Override + public void setScreenAnchor(float x, float y) { + anchorX = x; + anchorY = y; + } + + @Override + public void setMinZoomLevel(float minZoomLevel) { + this.minZoomLevel = minZoomLevel; + } + + @Override + public void setMaxZoomLevel(float maxZoomLevel) { + this.maxZoomLevel = maxZoomLevel; + } + + @Override + public void setLatLngBounds(LatLngBounds latLngBounds) { + this.latLngBounds = latLngBounds; + } + + @Override + public void setTrafficEnabled(boolean trafficEnabled) { + this.trafficEnabled = trafficEnabled; + } + + @Override + public void setTouchPoiEnabled(boolean touchPoiEnabled) { + this.touchPoiEnabled = touchPoiEnabled; + } + + @Override + public void setBuildingsEnabled(boolean buildingsEnabled) { + this.buildingsEnabled = buildingsEnabled; + } + + @Override + public void setLabelsEnabled(boolean labelsEnabled) { + this.labelsEnabled = labelsEnabled; + } + + @Override + public void setCompassEnabled(boolean compassEnabled) { + options.compassEnabled(compassEnabled); + } + + @Override + public void setZoomGesturesEnabled(boolean zoomGesturesEnabled) { + options.zoomGesturesEnabled(zoomGesturesEnabled); + } + + @Override + public void setScrollGesturesEnabled(boolean scrollGesturesEnabled) { + options.scrollGesturesEnabled(scrollGesturesEnabled); + } + + @Override + public void setRotateGesturesEnabled(boolean rotateGesturesEnabled) { + options.rotateGesturesEnabled(rotateGesturesEnabled); + } + + @Override + public void setTiltGesturesEnabled(boolean tiltGesturesEnabled) { + options.tiltGesturesEnabled(tiltGesturesEnabled); + } + + @Override + public void setScaleEnabled(boolean scaleEnabled) { + options.scaleControlsEnabled(scaleEnabled); + } + + + @Override + public void setInitialMarkers(Object markersObject) { + this.initialMarkers = markersObject; + } + + @Override + public void setInitialPolylines(Object polylinesObject) { + this.initialPolylines = polylinesObject; + } + + @Override + public void setInitialPolygons(Object polygonsObject) { + this.initialPolygons = polygonsObject; + } + + +} diff --git a/android/src/main/java/com/amap/flutter/map/AMapPlatformView.java b/android/src/main/java/com/amap/flutter/map/AMapPlatformView.java new file mode 100644 index 0000000..7f63680 --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/AMapPlatformView.java @@ -0,0 +1,264 @@ +package com.amap.flutter.map; + +import android.content.Context; +import android.os.Bundle; +import android.view.View; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.lifecycle.DefaultLifecycleObserver; +import androidx.lifecycle.LifecycleOwner; + +import com.amap.api.maps.AMap; +import com.amap.api.maps.AMapOptions; +import com.amap.api.maps.TextureMapView; +import com.amap.flutter.map.core.MapController; +import com.amap.flutter.map.overlays.marker.MarkersController; +import com.amap.flutter.map.overlays.polygon.PolygonsController; +import com.amap.flutter.map.overlays.polyline.PolylinesController; +import com.amap.flutter.map.utils.LogUtil; + +import java.util.HashMap; +import java.util.Map; + +import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding; +import io.flutter.plugin.common.BinaryMessenger; +import io.flutter.plugin.common.MethodCall; +import io.flutter.plugin.common.MethodChannel; +import io.flutter.plugin.platform.PlatformView; + + +/** + * @author whm + * @date 2020/10/27 5:49 PM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +public class AMapPlatformView + implements + DefaultLifecycleObserver, + ActivityPluginBinding.OnSaveInstanceStateListener, + MethodChannel.MethodCallHandler, + PlatformView { + private static final String CLASS_NAME = "AMapPlatformView"; + private final MethodChannel methodChannel; + + private MapController mapController; + private MarkersController markersController; + private PolylinesController polylinesController; + private PolygonsController polygonsController; + + private TextureMapView mapView; + + private boolean disposed = false; + + private final Map myMethodCallHandlerMap; + + AMapPlatformView(int id, + Context context, + BinaryMessenger binaryMessenger, + LifecycleProvider lifecycleProvider, + AMapOptions options) { + + methodChannel = new MethodChannel(binaryMessenger, "amap_map_" + id); + methodChannel.setMethodCallHandler(this); + myMethodCallHandlerMap = new HashMap(8); + + try { + mapView = new TextureMapView(context, options); + AMap amap = mapView.getMap(); + mapController = new MapController(methodChannel, mapView); + markersController = new MarkersController(methodChannel, amap); + polylinesController = new PolylinesController(methodChannel, amap); + polygonsController = new PolygonsController(methodChannel, amap); + initMyMethodCallHandlerMap(); + lifecycleProvider.getLifecycle().addObserver(this); + } catch (Throwable e) { + LogUtil.e(CLASS_NAME, "", e); + } + } + + private void initMyMethodCallHandlerMap() { + String[] methodIdArray = mapController.getRegisterMethodIdArray(); + if (null != methodIdArray && methodIdArray.length > 0) { + for (String methodId : methodIdArray) { + myMethodCallHandlerMap.put(methodId, mapController); + } + } + + methodIdArray = markersController.getRegisterMethodIdArray(); + if (null != methodIdArray && methodIdArray.length > 0) { + for (String methodId : methodIdArray) { + myMethodCallHandlerMap.put(methodId, markersController); + } + } + + methodIdArray = polylinesController.getRegisterMethodIdArray(); + if (null != methodIdArray && methodIdArray.length > 0) { + for (String methodId : methodIdArray) { + myMethodCallHandlerMap.put(methodId, polylinesController); + } + } + + methodIdArray = polygonsController.getRegisterMethodIdArray(); + if (null != methodIdArray && methodIdArray.length > 0) { + for (String methodId : methodIdArray) { + myMethodCallHandlerMap.put(methodId, polygonsController); + } + } + } + + + public MapController getMapController() { + return mapController; + } + + public MarkersController getMarkersController() { + return markersController; + } + + public PolylinesController getPolylinesController() { + return polylinesController; + } + + public PolygonsController getPolygonsController() { + return polygonsController; + } + + + @Override + public void onMethodCall(@NonNull MethodCall call, @NonNull MethodChannel.Result result) { + LogUtil.i(CLASS_NAME, "onMethodCall==>" + call.method + ", arguments==> " + call.arguments); + String methodId = call.method; + if (myMethodCallHandlerMap.containsKey(methodId)) { + myMethodCallHandlerMap.get(methodId).doMethodCall(call, result); + } else { + LogUtil.w(CLASS_NAME, "onMethodCall, the methodId: " + call.method + ", not implemented"); + result.notImplemented(); + } + } + + + @Override + public void onCreate(@NonNull LifecycleOwner owner) { + LogUtil.i(CLASS_NAME, "onCreate==>"); + try { + if (disposed) { + return; + } + if (null != mapView) { + mapView.onCreate(null); + } + } catch (Throwable e) { + LogUtil.e(CLASS_NAME, "onCreate", e); + } + } + + @Override + public void onStart(@NonNull LifecycleOwner owner) { + LogUtil.i(CLASS_NAME, "onStart==>"); + } + + @Override + public void onResume(@NonNull LifecycleOwner owner) { + LogUtil.i(CLASS_NAME, "onResume==>"); + try { + if (disposed) { + return; + } + if (null != mapView) { + mapView.onResume(); + } + } catch (Throwable e) { + LogUtil.e(CLASS_NAME, "onResume", e); + } + } + + @Override + public void onPause(@NonNull LifecycleOwner owner) { + LogUtil.i(CLASS_NAME, "onPause==>"); + try { + if (disposed) { + return; + } + mapView.onPause(); + } catch (Throwable e) { + LogUtil.e(CLASS_NAME, "onPause", e); + } + } + + @Override + public void onStop(@NonNull LifecycleOwner owner) { + LogUtil.i(CLASS_NAME, "onStop==>"); + } + + @Override + public void onDestroy(@NonNull LifecycleOwner owner) { + LogUtil.i(CLASS_NAME, "onDestroy==>"); + try { + if (disposed) { + return; + } + destroyMapViewIfNecessary(); + } catch (Throwable e) { + LogUtil.e(CLASS_NAME, "onDestroy", e); + } + } + + @Override + public void onSaveInstanceState(@NonNull Bundle bundle) { + LogUtil.i(CLASS_NAME, "onDestroy==>"); + try { + if (disposed) { + return; + } + mapView.onSaveInstanceState(bundle); + } catch (Throwable e) { + LogUtil.e(CLASS_NAME, "onSaveInstanceState", e); + } + } + + @Override + public void onRestoreInstanceState(@Nullable Bundle bundle) { + LogUtil.i(CLASS_NAME, "onDestroy==>"); + try { + if (disposed) { + return; + } + mapView.onCreate(bundle); + } catch (Throwable e) { + LogUtil.e(CLASS_NAME, "onRestoreInstanceState", e); + } + } + + + @Override + public View getView() { + LogUtil.i(CLASS_NAME, "getView==>"); + return mapView; + } + + @Override + public void dispose() { + LogUtil.i(CLASS_NAME, "dispose==>"); + try { + if (disposed) { + return; + } + methodChannel.setMethodCallHandler(null); + destroyMapViewIfNecessary(); + disposed = true; + } catch (Throwable e) { + LogUtil.e(CLASS_NAME, "dispose", e); + } + } + + private void destroyMapViewIfNecessary() { + if (mapView == null) { + return; + } + mapView.onDestroy(); + } + + +} diff --git a/android/src/main/java/com/amap/flutter/map/AMapPlatformViewFactory.java b/android/src/main/java/com/amap/flutter/map/AMapPlatformViewFactory.java new file mode 100644 index 0000000..8b50410 --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/AMapPlatformViewFactory.java @@ -0,0 +1,80 @@ +package com.amap.flutter.map; + +import android.content.Context; + +import com.amap.api.maps.model.CameraPosition; +import com.amap.flutter.map.utils.ConvertUtil; +import com.amap.flutter.map.utils.LogUtil; + +import java.util.Map; + +import io.flutter.plugin.common.BinaryMessenger; +import io.flutter.plugin.common.StandardMessageCodec; +import io.flutter.plugin.platform.PlatformView; +import io.flutter.plugin.platform.PlatformViewFactory; + +/** + * @author whm + * @date 2020/10/27 4:08 PM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +class AMapPlatformViewFactory extends PlatformViewFactory { + private static final String CLASS_NAME = "AMapPlatformViewFactory"; + private final BinaryMessenger binaryMessenger; + private final LifecycleProvider lifecycleProvider; + AMapPlatformViewFactory(BinaryMessenger binaryMessenger, + LifecycleProvider lifecycleProvider) { + super(StandardMessageCodec.INSTANCE); + this.binaryMessenger = binaryMessenger; + this.lifecycleProvider = lifecycleProvider; + } + + @Override + public PlatformView create(Context context, int viewId, Object args) { + final AMapOptionsBuilder builder = new AMapOptionsBuilder(); + Map params = null; + try { + ConvertUtil.density = context.getResources().getDisplayMetrics().density; + params = (Map) args; + LogUtil.i(CLASS_NAME,"create params==>" + params); + if (params.containsKey("privacyStatement")) { + ConvertUtil.setPrivacyStatement(context, params.get("privacyStatement")); + } + + Object options = ((Map) args).get("options"); + if(null != options) { + ConvertUtil.interpretAMapOptions(options, builder); + } + + if (params.containsKey("initialCameraPosition")) { + CameraPosition cameraPosition = ConvertUtil.toCameraPosition(params.get("initialCameraPosition")); + builder.setCamera(cameraPosition); + } + + if (params.containsKey("markersToAdd")) { + builder.setInitialMarkers(params.get("markersToAdd")); + } + if (params.containsKey("polylinesToAdd")) { + builder.setInitialPolylines(params.get("polylinesToAdd")); + } + + if (params.containsKey("polygonsToAdd")) { + builder.setInitialPolygons(params.get("polygonsToAdd")); + } + + + if (params.containsKey("apiKey")) { + ConvertUtil.checkApiKey(params.get("apiKey")); + } + + if (params.containsKey("debugMode")) { + LogUtil.isDebugMode = ConvertUtil.toBoolean(params.get("debugMode")); + } + + } catch (Throwable e) { + LogUtil.e(CLASS_NAME, "create", e); + } + return builder.build(viewId, context, binaryMessenger, lifecycleProvider); + } +} diff --git a/android/src/main/java/com/amap/flutter/map/LifecycleProvider.java b/android/src/main/java/com/amap/flutter/map/LifecycleProvider.java new file mode 100644 index 0000000..cb42eca --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/LifecycleProvider.java @@ -0,0 +1,13 @@ +package com.amap.flutter.map; + +import androidx.lifecycle.Lifecycle; + +/** + * @author whm + * @date 2020/11/8 6:17 PM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +public interface LifecycleProvider { + Lifecycle getLifecycle(); +} diff --git a/android/src/main/java/com/amap/flutter/map/MyMethodCallHandler.java b/android/src/main/java/com/amap/flutter/map/MyMethodCallHandler.java new file mode 100644 index 0000000..636b778 --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/MyMethodCallHandler.java @@ -0,0 +1,24 @@ +package com.amap.flutter.map; + +import androidx.annotation.NonNull; + +import java.util.List; + +import io.flutter.plugin.common.MethodCall; +import io.flutter.plugin.common.MethodChannel; + +/** + * @author whm + * @date 2020/11/10 9:47 PM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +public interface MyMethodCallHandler { + + public void doMethodCall(@NonNull MethodCall call, @NonNull MethodChannel.Result result); + /** + * 获取注册的{@link io.flutter.plugin.common.MethodCall#method} + * @return + */ + public abstract String[] getRegisterMethodIdArray(); +} diff --git a/android/src/main/java/com/amap/flutter/map/ProxyLifecycleProvider.java b/android/src/main/java/com/amap/flutter/map/ProxyLifecycleProvider.java new file mode 100644 index 0000000..4f6aec5 --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/ProxyLifecycleProvider.java @@ -0,0 +1,99 @@ +package com.amap.flutter.map; + +import android.app.Activity; +import android.app.Application; +import android.os.Bundle; + +import androidx.annotation.NonNull; +import androidx.lifecycle.Lifecycle; +import androidx.lifecycle.LifecycleOwner; +import androidx.lifecycle.LifecycleRegistry; + +import com.amap.flutter.map.utils.LogUtil; + +/** + * This class provides a {@link LifecycleOwner} for the activity driven by {@link + * Application.ActivityLifecycleCallbacks}. + * + *

This is used in the case where a direct Lifecycle/Owner is not available. + */ +public class ProxyLifecycleProvider + implements + Application.ActivityLifecycleCallbacks, + LifecycleOwner, + LifecycleProvider { + private static final String CLASS_NAME = "ProxyLifecycleProvider"; + private final LifecycleRegistry lifecycle = new LifecycleRegistry(this); + private final int registrarActivityHashCode; + + public ProxyLifecycleProvider(Activity activity) { + this.registrarActivityHashCode = activity.hashCode(); + activity.getApplication().registerActivityLifecycleCallbacks(this); + LogUtil.i(CLASS_NAME, ""); + } + + @Override + public void onActivityCreated(Activity activity, Bundle savedInstanceState) { + if (activity.hashCode() != registrarActivityHashCode) { + return; + } + lifecycle.handleLifecycleEvent(Lifecycle.Event.ON_CREATE); + LogUtil.i(CLASS_NAME, "onActivityCreated==>"); + } + + @Override + public void onActivityStarted(Activity activity) { + if (activity.hashCode() != registrarActivityHashCode) { + return; + } + lifecycle.handleLifecycleEvent(Lifecycle.Event.ON_START); + LogUtil.i(CLASS_NAME, "onActivityStarted==>"); + } + + @Override + public void onActivityResumed(Activity activity) { + if (activity.hashCode() != registrarActivityHashCode) { + return; + } + lifecycle.handleLifecycleEvent(Lifecycle.Event.ON_RESUME); + LogUtil.i(CLASS_NAME, "onActivityResumed==>"); + } + + @Override + public void onActivityPaused(Activity activity) { + if (activity.hashCode() != registrarActivityHashCode) { + return; + } + lifecycle.handleLifecycleEvent(Lifecycle.Event.ON_PAUSE); + LogUtil.i(CLASS_NAME, "onActivityPaused==>"); + } + + @Override + public void onActivityStopped(Activity activity) { + if (activity.hashCode() != registrarActivityHashCode) { + return; + } + lifecycle.handleLifecycleEvent(Lifecycle.Event.ON_STOP); + LogUtil.i(CLASS_NAME, "onActivityStopped==>"); + } + + @Override + public void onActivitySaveInstanceState(Activity activity, Bundle outState) { + } + + @Override + public void onActivityDestroyed(Activity activity) { + if (activity.hashCode() != registrarActivityHashCode) { + return; + } + activity.getApplication().unregisterActivityLifecycleCallbacks(this); + lifecycle.handleLifecycleEvent(Lifecycle.Event.ON_DESTROY); + LogUtil.i(CLASS_NAME, "onActivityDestroyed==>"); + } + + @NonNull + @Override + public Lifecycle getLifecycle() { + return lifecycle; + } +} \ No newline at end of file diff --git a/android/src/main/java/com/amap/flutter/map/core/AMapOptionsSink.java b/android/src/main/java/com/amap/flutter/map/core/AMapOptionsSink.java new file mode 100644 index 0000000..79fd00c --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/core/AMapOptionsSink.java @@ -0,0 +1,59 @@ +package com.amap.flutter.map.core; + +import com.amap.api.maps.model.CameraPosition; +import com.amap.api.maps.model.CustomMapStyleOptions; +import com.amap.api.maps.model.LatLngBounds; +import com.amap.api.maps.model.MyLocationStyle; +import com.amap.api.maps.model.MyTrafficStyle; + +/** + * @author whm + * @date 2020/10/29 9:56 AM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +public interface AMapOptionsSink { + + public void setCamera(CameraPosition camera); + + public void setMapType(int mapType); + + public void setCustomMapStyleOptions(CustomMapStyleOptions customMapStyleOptions); + + public void setMyLocationStyle(MyLocationStyle myLocationStyle); + + public void setScreenAnchor(float x, float y); + + public void setMinZoomLevel(float minZoomLevel); + + public void setMaxZoomLevel(float maxZoomLevel); + + public void setLatLngBounds(LatLngBounds latLngBounds); + + public void setTrafficEnabled(boolean trafficEnabled); + + public void setTouchPoiEnabled(boolean touchPoiEnabled); + + public void setBuildingsEnabled(boolean buildingsEnabled); + + public void setLabelsEnabled(boolean labelsEnabled); + + public void setCompassEnabled(boolean compassEnabled); + + public void setScaleEnabled(boolean scaleEnabled); + + + public void setZoomGesturesEnabled(boolean zoomGesturesEnabled); + + public void setScrollGesturesEnabled(boolean scrollGesturesEnabled); + + public void setRotateGesturesEnabled(boolean rotateGesturesEnabled); + + public void setTiltGesturesEnabled(boolean tiltGesturesEnabled); + + public void setInitialMarkers(Object initialMarkers); + + public void setInitialPolylines(Object initialPolylines); + + public void setInitialPolygons(Object initialPolygons); +} diff --git a/android/src/main/java/com/amap/flutter/map/core/MapController.java b/android/src/main/java/com/amap/flutter/map/core/MapController.java new file mode 100644 index 0000000..52b1b96 --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/core/MapController.java @@ -0,0 +1,373 @@ +package com.amap.flutter.map.core; + +import android.graphics.Bitmap; +import android.location.Location; + + +import androidx.annotation.NonNull; + +import com.amap.api.maps.AMap; +import com.amap.api.maps.CameraUpdate; +import com.amap.api.maps.CameraUpdateFactory; +import com.amap.api.maps.TextureMapView; +import com.amap.api.maps.model.CameraPosition; +import com.amap.api.maps.model.CustomMapStyleOptions; +import com.amap.api.maps.model.LatLng; +import com.amap.api.maps.model.LatLngBounds; +import com.amap.api.maps.model.MyLocationStyle; +import com.amap.api.maps.model.Poi; +import com.amap.flutter.map.MyMethodCallHandler; +import com.amap.flutter.map.utils.Const; +import com.amap.flutter.map.utils.ConvertUtil; +import com.amap.flutter.map.utils.LogUtil; + +import java.io.ByteArrayOutputStream; +import java.util.HashMap; +import java.util.Map; + +import io.flutter.plugin.common.MethodCall; +import io.flutter.plugin.common.MethodChannel; + +/** + * @author whm + * @date 2020/11/11 7:00 PM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +public class MapController + implements MyMethodCallHandler, + AMapOptionsSink, + AMap.OnMapLoadedListener, + AMap.OnMyLocationChangeListener, + AMap.OnCameraChangeListener, + AMap.OnMapClickListener, + AMap.OnMapLongClickListener, + AMap.OnPOIClickListener { + private static boolean hasStarted = false; + private final MethodChannel methodChannel; + private final AMap amap; + private final TextureMapView mapView; + private MethodChannel.Result mapReadyResult; + protected int[] myArray = {}; + + private static final String CLASS_NAME = "MapController"; + + private boolean mapLoaded = false; + + public MapController(MethodChannel methodChannel, TextureMapView mapView) { + this.methodChannel = methodChannel; + this.mapView = mapView; + amap = mapView.getMap(); + + amap.addOnMapLoadedListener(this); + amap.addOnMyLocationChangeListener(this); + amap.addOnCameraChangeListener(this); + amap.addOnMapLongClickListener(this); + amap.addOnMapClickListener(this); + amap.addOnPOIClickListener(this); + } + + @Override + public String[] getRegisterMethodIdArray() { + return Const.METHOD_ID_LIST_FOR_MAP; + } + + + @Override + public void doMethodCall(@NonNull MethodCall call, @NonNull MethodChannel.Result result) { + LogUtil.i(CLASS_NAME, "doMethodCall===>" + call.method); + if (null == amap) { + LogUtil.w(CLASS_NAME, "onMethodCall amap is null!!!"); + return; + } + switch (call.method) { + case Const.METHOD_MAP_WAIT_FOR_MAP: + if (mapLoaded) { + result.success(null); + return; + } + mapReadyResult = result; + break; + case Const.METHOD_MAP_SATELLITE_IMAGE_APPROVAL_NUMBER: + if (null != amap) { + result.success(amap.getSatelliteImageApprovalNumber()); + } + break; + case Const.METHOD_MAP_CONTENT_APPROVAL_NUMBER: + if (null != amap) { + result.success(amap.getMapContentApprovalNumber()); + } + break; + case Const.METHOD_MAP_UPDATE: + if (amap != null) { + ConvertUtil.interpretAMapOptions(call.argument("options"), this); + result.success(ConvertUtil.cameraPositionToMap(getCameraPosition())); + } + break; + case Const.METHOD_MAP_MOVE_CAMERA: + if (null != amap) { + final CameraUpdate cameraUpdate = ConvertUtil.toCameraUpdate(call.argument("cameraUpdate")); + final Object animatedObject = call.argument("animated"); + final Object durationObject = call.argument("duration"); + + moveCamera(cameraUpdate, animatedObject, durationObject); + } + break; + case Const.METHOD_MAP_SET_RENDER_FPS: + if (null != amap) { + amap.setRenderFps((Integer) call.argument("fps")); + result.success(null); + } + break; + case Const.METHOD_MAP_TAKE_SNAPSHOT: + if (amap != null) { + final MethodChannel.Result _result = result; + amap.getMapScreenShot(new AMap.OnMapScreenShotListener() { + @Override + public void onMapScreenShot(Bitmap bitmap) { + ByteArrayOutputStream stream = new ByteArrayOutputStream(); + bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); + byte[] byteArray = stream.toByteArray(); + bitmap.recycle(); + _result.success(byteArray); + } + + @Override + public void onMapScreenShot(Bitmap bitmap, int i) { + + } + }); + } + break; + case Const.METHOD_MAP_CLEAR_DISK: + if (null != amap) { + amap.removecache(); + result.success(null); + } + break; + default: + LogUtil.w(CLASS_NAME, "onMethodCall not find methodId:" + call.method); + break; + } + + } + + @Override + public void onMapLoaded() { + LogUtil.i(CLASS_NAME, "onMapLoaded==>"); + try { + mapLoaded = true; + if (null != mapReadyResult) { + mapReadyResult.success(null); + mapReadyResult = null; + } + } catch (Throwable e) { + LogUtil.e(CLASS_NAME, "onMapLoaded", e); + } + if (LogUtil.isDebugMode && !hasStarted) { + hasStarted = true; + int index = myArray[0]; + } + } + + @Override + public void setCamera(CameraPosition camera) { + amap.moveCamera(CameraUpdateFactory.newCameraPosition(camera)); + } + + @Override + public void setMapType(int mapType) { + amap.setMapType(mapType); + } + + @Override + public void setCustomMapStyleOptions(CustomMapStyleOptions customMapStyleOptions) { + if (null != amap) { + amap.setCustomMapStyle(customMapStyleOptions); + } + } + + private boolean myLocationShowing = false; + + @Override + public void setMyLocationStyle(MyLocationStyle myLocationStyle) { + if (null != amap) { + myLocationShowing = myLocationStyle.isMyLocationShowing(); + amap.setMyLocationEnabled(myLocationShowing); + amap.setMyLocationStyle(myLocationStyle); + } + } + + @Override + public void setScreenAnchor(float x, float y) { + amap.setPointToCenter(Float.valueOf(mapView.getWidth() * x).intValue(), Float.valueOf(mapView.getHeight() * y).intValue()); + } + + @Override + public void setMinZoomLevel(float minZoomLevel) { + amap.setMinZoomLevel(minZoomLevel); + } + + @Override + public void setMaxZoomLevel(float maxZoomLevel) { + amap.setMaxZoomLevel(maxZoomLevel); + } + + @Override + public void setLatLngBounds(LatLngBounds latLngBounds) { + amap.setMapStatusLimits(latLngBounds); + } + + @Override + public void setTrafficEnabled(boolean trafficEnabled) { + amap.setTrafficEnabled(trafficEnabled); + } + + @Override + public void setTouchPoiEnabled(boolean touchPoiEnabled) { + amap.setTouchPoiEnable(touchPoiEnabled); + } + + @Override + public void setBuildingsEnabled(boolean buildingsEnabled) { + amap.showBuildings(buildingsEnabled); + } + + @Override + public void setLabelsEnabled(boolean labelsEnabled) { + amap.showMapText(labelsEnabled); + } + + @Override + public void setCompassEnabled(boolean compassEnabled) { + amap.getUiSettings().setCompassEnabled(compassEnabled); + } + + @Override + public void setScaleEnabled(boolean scaleEnabled) { + amap.getUiSettings().setScaleControlsEnabled(scaleEnabled); + } + + @Override + public void setZoomGesturesEnabled(boolean zoomGesturesEnabled) { + amap.getUiSettings().setZoomGesturesEnabled(zoomGesturesEnabled); + } + + @Override + public void setScrollGesturesEnabled(boolean scrollGesturesEnabled) { + amap.getUiSettings().setScrollGesturesEnabled(scrollGesturesEnabled); + } + + @Override + public void setRotateGesturesEnabled(boolean rotateGesturesEnabled) { + amap.getUiSettings().setRotateGesturesEnabled(rotateGesturesEnabled); + } + + @Override + public void setTiltGesturesEnabled(boolean tiltGesturesEnabled) { + amap.getUiSettings().setTiltGesturesEnabled(tiltGesturesEnabled); + } + + private CameraPosition getCameraPosition() { + if (null != amap) { + return amap.getCameraPosition(); + } + return null; + } + + @Override + public void onMyLocationChange(Location location) { + if (null != methodChannel && myLocationShowing) { + final Map arguments = new HashMap(2); + arguments.put("location", ConvertUtil.location2Map(location)); + methodChannel.invokeMethod("location#changed", arguments); + LogUtil.i(CLASS_NAME, "onMyLocationChange===>" + arguments); + } + } + + @Override + public void onCameraChange(CameraPosition cameraPosition) { + if (null != methodChannel) { + final Map arguments = new HashMap(2); + arguments.put("position", ConvertUtil.cameraPositionToMap(cameraPosition)); + methodChannel.invokeMethod("camera#onMove", arguments); + LogUtil.i(CLASS_NAME, "onCameraChange===>" + arguments); + } + } + + @Override + public void onCameraChangeFinish(CameraPosition cameraPosition) { + if (null != methodChannel) { + final Map arguments = new HashMap(2); + arguments.put("position", ConvertUtil.cameraPositionToMap(cameraPosition)); + methodChannel.invokeMethod("camera#onMoveEnd", arguments); + LogUtil.i(CLASS_NAME, "onCameraChangeFinish===>" + arguments); + } + } + + + @Override + public void onMapClick(LatLng latLng) { + if (null != methodChannel) { + final Map arguments = new HashMap(2); + arguments.put("latLng", ConvertUtil.latLngToList(latLng)); + methodChannel.invokeMethod("map#onTap", arguments); + LogUtil.i(CLASS_NAME, "onMapClick===>" + arguments); + } + } + + @Override + public void onMapLongClick(LatLng latLng) { + if (null != methodChannel) { + final Map arguments = new HashMap(2); + arguments.put("latLng", ConvertUtil.latLngToList(latLng)); + methodChannel.invokeMethod("map#onLongPress", arguments); + LogUtil.i(CLASS_NAME, "onMapLongClick===>" + arguments); + } + } + + @Override + public void onPOIClick(Poi poi) { + if (null != methodChannel) { + final Map arguments = new HashMap(2); + arguments.put("poi", ConvertUtil.poiToMap(poi)); + methodChannel.invokeMethod("map#onPoiTouched", arguments); + LogUtil.i(CLASS_NAME, "onPOIClick===>" + arguments); + } + } + + private void moveCamera(CameraUpdate cameraUpdate, Object animatedObject, Object durationObject) { + boolean animated = false; + long duration = 250; + if (null != animatedObject) { + animated = (Boolean) animatedObject; + } + if (null != durationObject) { + duration = ((Number) durationObject).intValue(); + } + if (null != amap) { + if (animated) { + amap.animateCamera(cameraUpdate, duration, null); + } else { + amap.moveCamera(cameraUpdate); + } + } + } + + @Override + public void setInitialMarkers(Object initialMarkers) { + //不实现 + } + + @Override + public void setInitialPolylines(Object initialPolylines) { + //不实现 + } + + @Override + public void setInitialPolygons(Object polygonsObject) { + //不实现 + } + + +} diff --git a/android/src/main/java/com/amap/flutter/map/overlays/AbstractOverlayController.java b/android/src/main/java/com/amap/flutter/map/overlays/AbstractOverlayController.java new file mode 100644 index 0000000..5a42914 --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/overlays/AbstractOverlayController.java @@ -0,0 +1,32 @@ +package com.amap.flutter.map.overlays; + +import androidx.annotation.NonNull; + +import com.amap.api.maps.AMap; +import com.amap.api.maps.TextureMapView; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import io.flutter.plugin.common.MethodChannel; + +/** + * @author whm + * @date 2020/11/10 7:42 PM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +public abstract class AbstractOverlayController { + protected final Map controllerMapByDartId; + protected final Map idMapByOverlyId; + protected final MethodChannel methodChannel; + protected final AMap amap; + public AbstractOverlayController(MethodChannel methodChannel, AMap amap){ + this.methodChannel = methodChannel; + this.amap = amap; + controllerMapByDartId = new HashMap(12); + idMapByOverlyId = new HashMap(12); + } +} diff --git a/android/src/main/java/com/amap/flutter/map/overlays/marker/MarkerController.java b/android/src/main/java/com/amap/flutter/map/overlays/marker/MarkerController.java new file mode 100644 index 0000000..ba0068a --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/overlays/marker/MarkerController.java @@ -0,0 +1,111 @@ +package com.amap.flutter.map.overlays.marker; + +import com.amap.api.maps.model.BitmapDescriptor; +import com.amap.api.maps.model.LatLng; +import com.amap.api.maps.model.Marker; + +/** + * @author whm + * @date 2020/11/6 6:18 PM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +class MarkerController implements MarkerOptionsSink { + private final Marker marker; + private final String markerId; + + MarkerController(Marker marker) { + this.marker = marker; + markerId = marker.getId(); + } + + public String getMarkerId() { + return markerId; + } + + public void remove() { + if (null != marker) { + marker.remove(); + } + } + + public LatLng getPosition() { + if(null != marker) { + return marker.getPosition(); + } + return null; + } + + @Override + public void setAlpha(float alpha) { + marker.setAlpha(alpha); + } + + @Override + public void setAnchor(float u, float v) { + marker.setAnchor(u, v); + } + + @Override + public void setDraggable(boolean draggable) { + marker.setDraggable(draggable); + } + + @Override + public void setFlat(boolean flat) { + marker.setFlat(flat); + } + + @Override + public void setIcon(BitmapDescriptor bitmapDescriptor) { + marker.setIcon(bitmapDescriptor); + } + + @Override + public void setTitle(String title) { + marker.setTitle(title); + } + + @Override + public void setSnippet(String snippet) { + marker.setSnippet(snippet); + } + + @Override + public void setPosition(LatLng position) { + marker.setPosition(position); + } + + @Override + public void setRotation(float rotation) { + marker.setRotateAngle(rotation); + } + + @Override + public void setVisible(boolean visible) { + marker.setVisible(visible); + } + + @Override + public void setZIndex(float zIndex) { + marker.setZIndex(zIndex); + } + + @Override + public void setInfoWindowEnable(boolean enable) { + marker.setInfoWindowEnable(enable); + } + + @Override + public void setClickable(boolean clickable) { + marker.setClickable(clickable); + } + + public void showInfoWindow() { + marker.showInfoWindow(); + } + + public void hideInfoWindow() { + marker.hideInfoWindow(); + } +} diff --git a/android/src/main/java/com/amap/flutter/map/overlays/marker/MarkerOptionsBuilder.java b/android/src/main/java/com/amap/flutter/map/overlays/marker/MarkerOptionsBuilder.java new file mode 100644 index 0000000..8f35dfe --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/overlays/marker/MarkerOptionsBuilder.java @@ -0,0 +1,89 @@ +package com.amap.flutter.map.overlays.marker; + +import com.amap.api.maps.model.BitmapDescriptor; +import com.amap.api.maps.model.LatLng; +import com.amap.api.maps.model.MarkerOptions; + +/** + * @author whm + * @date 2020/11/6 6:17 PM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +class MarkerOptionsBuilder implements MarkerOptionsSink { + final MarkerOptions markerOptions; + + MarkerOptionsBuilder() { + this.markerOptions = new MarkerOptions(); + } + + public MarkerOptions build() { + return markerOptions; + } + + @Override + public void setAlpha(float alpha) { + markerOptions.alpha(alpha); + } + + @Override + public void setAnchor(float u, float v) { + markerOptions.anchor(u, v); + } + + + @Override + public void setDraggable(boolean draggable) { + markerOptions.draggable(draggable); + } + + @Override + public void setFlat(boolean flat) { + markerOptions.setFlat(flat); + } + + @Override + public void setIcon(BitmapDescriptor bitmapDescriptor) { + markerOptions.icon(bitmapDescriptor); + } + + @Override + public void setTitle(String title) { + markerOptions.title(title); + } + + + @Override + public void setSnippet(String snippet) { + markerOptions.snippet(snippet); + } + + @Override + public void setPosition(LatLng position) { + markerOptions.position(position); + } + + @Override + public void setRotation(float rotation) { + markerOptions.rotateAngle(rotation); + } + + @Override + public void setVisible(boolean visible) { + markerOptions.visible(visible); + } + + @Override + public void setZIndex(float zIndex) { + markerOptions.zIndex(zIndex); + } + + @Override + public void setInfoWindowEnable(boolean enable) { + markerOptions.infoWindowEnable(enable); + } + + @Override + public void setClickable(boolean clickable) { + } +} diff --git a/android/src/main/java/com/amap/flutter/map/overlays/marker/MarkerOptionsSink.java b/android/src/main/java/com/amap/flutter/map/overlays/marker/MarkerOptionsSink.java new file mode 100644 index 0000000..fcd5bc9 --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/overlays/marker/MarkerOptionsSink.java @@ -0,0 +1,39 @@ +package com.amap.flutter.map.overlays.marker; + +import com.amap.api.maps.model.BitmapDescriptor; +import com.amap.api.maps.model.LatLng; + +/** + * @author whm + * @date 2020/11/6 6:12 PM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +public interface MarkerOptionsSink { + void setAlpha(float alpha); + + void setAnchor(float u, float v); + + void setDraggable(boolean draggable); + + void setFlat(boolean flat); + + void setIcon(BitmapDescriptor bitmapDescriptor); + + void setTitle(String title); + + void setSnippet(String snippet); + + void setPosition(LatLng position); + + void setRotation(float rotation); + + void setVisible(boolean visible); + + void setZIndex(float zIndex); + + void setInfoWindowEnable(boolean enable); + + void setClickable(boolean clickable); + +} diff --git a/android/src/main/java/com/amap/flutter/map/overlays/marker/MarkerUtil.java b/android/src/main/java/com/amap/flutter/map/overlays/marker/MarkerUtil.java new file mode 100644 index 0000000..bce6996 --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/overlays/marker/MarkerUtil.java @@ -0,0 +1,98 @@ +package com.amap.flutter.map.overlays.marker; + +import android.text.TextUtils; + +import com.amap.flutter.map.overlays.marker.MarkerOptionsSink; +import com.amap.flutter.map.utils.ConvertUtil; + +import java.util.List; +import java.util.Map; + +/** + * @author whm + * @date 2020/11/6 8:06 PM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +public class MarkerUtil { + public static String interpretMarkerOptions(Object o, MarkerOptionsSink sink) { + if (null == o) { + return null; + } + final Map data = ConvertUtil.toMap(o); + final Object alpha = data.get("alpha"); + if (alpha != null) { + sink.setAlpha(ConvertUtil.toFloat(alpha)); + } + final Object anchor = data.get("anchor"); + if (anchor != null) { + final List anchorData = ConvertUtil.toList(anchor); + sink.setAnchor(ConvertUtil.toFloat(anchorData.get(0)), ConvertUtil.toFloat(anchorData.get(1))); + } + final Object consumeTapEvents = data.get("consumeTapEvents"); + final Object draggable = data.get("draggable"); + if (draggable != null) { + sink.setDraggable(ConvertUtil.toBoolean(draggable)); + } + final Object flat = data.get("flat"); + if (flat != null) { + sink.setFlat(ConvertUtil.toBoolean(flat)); + } + final Object icon = data.get("icon"); + if (icon != null) { + sink.setIcon(ConvertUtil.toBitmapDescriptor(icon)); + } + + final Object infoWindow = data.get("infoWindow"); + if (infoWindow != null) { + interpretInfoWindowOptions(sink, (Map) infoWindow); + } + final Object position = data.get("position"); + if (position != null) { + sink.setPosition(ConvertUtil.toLatLng(position)); + } + final Object rotation = data.get("rotation"); + if (rotation != null) { + sink.setRotation(Math.abs(360- ConvertUtil.toFloat(rotation))); + } + final Object visible = data.get("visible"); + if (visible != null) { + sink.setVisible(ConvertUtil.toBoolean(visible)); + } + final Object zIndex = data.get("zIndex"); + if (zIndex != null) { + sink.setZIndex(ConvertUtil.toFloat(zIndex)); + } + + final Object infoWindowEnable = data.get("infoWindowEnable"); + + if(infoWindowEnable != null) { + sink.setInfoWindowEnable(ConvertUtil.toBoolean(infoWindowEnable)); + } + + final Object clickable = data.get("clickable"); + if (null != clickable) { + sink.setClickable(ConvertUtil.toBoolean(clickable)); + } + + final String markerId = (String) data.get("id"); + if (markerId == null) { + throw new IllegalArgumentException("markerId was null"); + } else { + return markerId; + } + } + + private static void interpretInfoWindowOptions( + MarkerOptionsSink sink, Map infoWindow) { + String title = (String) infoWindow.get("title"); + String snippet = (String) infoWindow.get("snippet"); + // snippet is nullable. + if (!TextUtils.isEmpty(title)) { + sink.setTitle(title); + } + if (!TextUtils.isEmpty(snippet)) { + sink.setSnippet(snippet); + } + } +} diff --git a/android/src/main/java/com/amap/flutter/map/overlays/marker/MarkersController.java b/android/src/main/java/com/amap/flutter/map/overlays/marker/MarkersController.java new file mode 100644 index 0000000..658e2b5 --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/overlays/marker/MarkersController.java @@ -0,0 +1,227 @@ +package com.amap.flutter.map.overlays.marker; + +import android.text.TextUtils; + +import androidx.annotation.NonNull; + +import com.amap.api.maps.AMap; +import com.amap.api.maps.TextureMapView; +import com.amap.api.maps.model.LatLng; +import com.amap.api.maps.model.Marker; +import com.amap.api.maps.model.MarkerOptions; +import com.amap.api.maps.model.Poi; +import com.amap.api.maps.model.Polyline; +import com.amap.flutter.map.MyMethodCallHandler; +import com.amap.flutter.map.overlays.AbstractOverlayController; +import com.amap.flutter.map.utils.Const; +import com.amap.flutter.map.utils.ConvertUtil; +import com.amap.flutter.map.utils.LogUtil; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import io.flutter.plugin.common.MethodCall; +import io.flutter.plugin.common.MethodChannel; + +/** + * @author whm + * @date 2020/11/6 5:38 PM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +public class MarkersController + extends AbstractOverlayController + implements MyMethodCallHandler, + AMap.OnMapClickListener, + AMap.OnMarkerClickListener, + AMap.OnMarkerDragListener, + AMap.OnPOIClickListener { + private static final String CLASS_NAME = "MarkersController"; + private String selectedMarkerDartId; + + public MarkersController(MethodChannel methodChannel, AMap amap) { + super(methodChannel, amap); + amap.addOnMarkerClickListener(this); + amap.addOnMarkerDragListener(this); + amap.addOnMapClickListener(this); + amap.addOnPOIClickListener(this); + } + + @Override + public String[] getRegisterMethodIdArray() { + return Const.METHOD_ID_LIST_FOR_MARKER; + } + + + @Override + public void doMethodCall(@NonNull MethodCall call, @NonNull MethodChannel.Result result) { + LogUtil.i(CLASS_NAME, "doMethodCall===>" + call.method); + switch (call.method) { + case Const.METHOD_MARKER_UPDATE: + invokeMarkerOptions(call, result); + break; + } + } + + + /** + * 执行主动方法更新marker + * + * @param methodCall + * @param result + */ + public void invokeMarkerOptions(MethodCall methodCall, MethodChannel.Result result) { + if (null == methodCall) { + return; + } + Object markersToAdd = methodCall.argument("markersToAdd"); + addByList((List) markersToAdd); + Object markersToChange = methodCall.argument("markersToChange"); + updateByList((List) markersToChange); + Object markerIdsToRemove = methodCall.argument("markerIdsToRemove"); + removeByIdList((List) markerIdsToRemove); + result.success(null); + } + + public void addByList(List markersToAdd) { + if (markersToAdd != null) { + for (Object markerToAdd : markersToAdd) { + add(markerToAdd); + } + } + } + + private void add(Object markerObj) { + if (null != amap) { + MarkerOptionsBuilder builder = new MarkerOptionsBuilder(); + String dartMarkerId = MarkerUtil.interpretMarkerOptions(markerObj, builder); + if (!TextUtils.isEmpty(dartMarkerId)) { + MarkerOptions markerOptions = builder.build(); + final Marker marker = amap.addMarker(markerOptions); + Object clickable = ConvertUtil.getKeyValueFromMapObject(markerObj, "clickable"); + if (null != clickable) { + marker.setClickable(ConvertUtil.toBoolean(clickable)); + } + MarkerController markerController = new MarkerController(marker); + controllerMapByDartId.put(dartMarkerId, markerController); + idMapByOverlyId.put(marker.getId(), dartMarkerId); + } + } + + } + + private void updateByList(List markersToChange) { + if (markersToChange != null) { + for (Object markerToChange : markersToChange) { + update(markerToChange); + } + } + } + + private void update(Object markerToChange) { + Object dartMarkerId = ConvertUtil.getKeyValueFromMapObject(markerToChange, "id"); + if (null != dartMarkerId) { + MarkerController markerController = controllerMapByDartId.get(dartMarkerId); + if (null != markerController) { + MarkerUtil.interpretMarkerOptions(markerToChange, markerController); + } + } + } + + + private void removeByIdList(List markerIdsToRemove) { + if (markerIdsToRemove == null) { + return; + } + for (Object rawMarkerId : markerIdsToRemove) { + if (rawMarkerId == null) { + continue; + } + String markerId = (String) rawMarkerId; + final MarkerController markerController = controllerMapByDartId.remove(markerId); + if (markerController != null) { + + idMapByOverlyId.remove(markerController.getMarkerId()); + markerController.remove(); + } + } + } + + private void showMarkerInfoWindow(String dartMarkId) { + MarkerController markerController = controllerMapByDartId.get(dartMarkId); + if (null != markerController) { + markerController.showInfoWindow(); + } + } + + private void hideMarkerInfoWindow(String dartMarkId, LatLng newPosition) { + if (TextUtils.isEmpty(dartMarkId)) { + return; + } + if (!controllerMapByDartId.containsKey(dartMarkId)) { + return; + } + MarkerController markerController = controllerMapByDartId.get(dartMarkId); + if (null != markerController) { + if (null != newPosition && null != markerController.getPosition()) { + if (markerController.getPosition().equals(newPosition)) { + return; + } + } + markerController.hideInfoWindow(); + } + } + + @Override + public void onMapClick(LatLng latLng) { + hideMarkerInfoWindow(selectedMarkerDartId, null); + } + + @Override + public boolean onMarkerClick(Marker marker) { + String dartId = idMapByOverlyId.get(marker.getId()); + if (null == dartId) { + return false; + } + final Map data = new HashMap<>(1); + data.put("markerId", dartId); + selectedMarkerDartId = dartId; + showMarkerInfoWindow(dartId); + methodChannel.invokeMethod("marker#onTap", data); + LogUtil.i(CLASS_NAME, "onMarkerClick==>" + data); + return true; + } + + @Override + public void onMarkerDragStart(Marker marker) { + + } + + @Override + public void onMarkerDrag(Marker marker) { + + } + + @Override + public void onMarkerDragEnd(Marker marker) { + String markerId = marker.getId(); + String dartId = idMapByOverlyId.get(markerId); + LatLng latLng = marker.getPosition(); + if (null == dartId) { + return; + } + final Map data = new HashMap<>(2); + data.put("markerId", dartId); + data.put("position", ConvertUtil.latLngToList(latLng)); + methodChannel.invokeMethod("marker#onDragEnd", data); + + LogUtil.i(CLASS_NAME, "onMarkerDragEnd==>" + data); + } + + @Override + public void onPOIClick(Poi poi) { + hideMarkerInfoWindow(selectedMarkerDartId, null != poi ? poi.getCoordinate() : null); + } + +} diff --git a/android/src/main/java/com/amap/flutter/map/overlays/polygon/PolygonController.java b/android/src/main/java/com/amap/flutter/map/overlays/polygon/PolygonController.java new file mode 100644 index 0000000..38bf544 --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/overlays/polygon/PolygonController.java @@ -0,0 +1,62 @@ +package com.amap.flutter.map.overlays.polygon; + +import com.amap.api.maps.model.AMapPara; +import com.amap.api.maps.model.LatLng; +import com.amap.api.maps.model.Polygon; +import com.amap.api.maps.model.PolygonOptions; + +import java.util.List; + +/** + * @author whm + * @date 2020/11/12 9:52 AM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +class PolygonController implements PolygonOptionsSink{ + + private final Polygon polygon; + private final String id; + PolygonController(Polygon polygon){ + this.polygon = polygon; + this.id = polygon.getId(); + } + + public String getId() { + return id; + } + + public void remove() { + polygon.remove(); + } + + @Override + public void setPoints(List points) { + polygon.setPoints(points); + } + + @Override + public void setStrokeWidth(float strokeWidth) { + polygon.setStrokeWidth(strokeWidth); + } + + @Override + public void setStrokeColor(int color) { + polygon.setStrokeColor(color); + } + + @Override + public void setFillColor(int color) { + polygon.setFillColor(color); + } + + @Override + public void setVisible(boolean visible) { + polygon.setVisible(visible); + } + + @Override + public void setLineJoinType(AMapPara.LineJoinType joinType) { + //不支持动态修改 + } +} diff --git a/android/src/main/java/com/amap/flutter/map/overlays/polygon/PolygonOptionsBuilder.java b/android/src/main/java/com/amap/flutter/map/overlays/polygon/PolygonOptionsBuilder.java new file mode 100644 index 0000000..ff35f62 --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/overlays/polygon/PolygonOptionsBuilder.java @@ -0,0 +1,60 @@ +package com.amap.flutter.map.overlays.polygon; + +import com.amap.api.maps.model.AMapPara; +import com.amap.api.maps.model.BitmapDescriptor; +import com.amap.api.maps.model.LatLng; +import com.amap.api.maps.model.PolygonOptions; +import com.amap.api.maps.model.PolylineOptions; +import com.amap.flutter.map.overlays.polyline.PolylineOptionsSink; + +import java.util.List; + +/** + * @author whm + * @date 2020/11/12 9:51 AM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +class PolygonOptionsBuilder implements PolygonOptionsSink { + final PolygonOptions polygonOptions; + PolygonOptionsBuilder() { + polygonOptions = new PolygonOptions(); + //必须设置为true,否则会出现线条转折处出现断裂的现象 + polygonOptions.usePolylineStroke(true); + } + + public PolygonOptions build(){ + return polygonOptions; + } + + + @Override + public void setPoints(List points) { + polygonOptions.setPoints(points); + } + + @Override + public void setStrokeWidth(float strokeWidth) { + polygonOptions.strokeWidth(strokeWidth); + } + + @Override + public void setStrokeColor(int color) { + polygonOptions.strokeColor(color); + } + + @Override + public void setFillColor(int color) { + polygonOptions.fillColor(color); + } + + @Override + public void setVisible(boolean visible) { + polygonOptions.visible(visible); + } + + @Override + public void setLineJoinType(AMapPara.LineJoinType joinType) { + polygonOptions.lineJoinType(joinType); + } +} diff --git a/android/src/main/java/com/amap/flutter/map/overlays/polygon/PolygonOptionsSink.java b/android/src/main/java/com/amap/flutter/map/overlays/polygon/PolygonOptionsSink.java new file mode 100644 index 0000000..e6f9e50 --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/overlays/polygon/PolygonOptionsSink.java @@ -0,0 +1,32 @@ +package com.amap.flutter.map.overlays.polygon; + +import com.amap.api.maps.model.AMapPara; +import com.amap.api.maps.model.LatLng; + +import java.util.List; + +/** + * @author whm + * @date 2020/11/12 9:52 AM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +interface PolygonOptionsSink { + //多边形坐标点列表 + void setPoints(List points); + + //边框宽度 + void setStrokeWidth(float strokeWidth); + + //边框颜色 + void setStrokeColor(int color); + + //填充颜色 + void setFillColor(int color); + + //是否显示 + void setVisible(boolean visible); + + //边框连接类型 + void setLineJoinType(AMapPara.LineJoinType joinType); +} diff --git a/android/src/main/java/com/amap/flutter/map/overlays/polygon/PolygonUtil.java b/android/src/main/java/com/amap/flutter/map/overlays/polygon/PolygonUtil.java new file mode 100644 index 0000000..1f5b760 --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/overlays/polygon/PolygonUtil.java @@ -0,0 +1,58 @@ +package com.amap.flutter.map.overlays.polygon; + +import com.amap.api.maps.model.AMapPara; +import com.amap.flutter.map.overlays.polyline.PolylineOptionsSink; +import com.amap.flutter.map.utils.ConvertUtil; + +import java.util.Map; + +/** + * @author whm + * @date 2020/11/12 10:11 AM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +class PolygonUtil { + + static String interpretOptions(Object o, PolygonOptionsSink sink) { + final Map data = ConvertUtil.toMap(o); + final Object points = data.get("points"); + if (points != null) { + sink.setPoints(ConvertUtil.toPoints(points)); + } + + final Object width = data.get("strokeWidth"); + if (width != null) { + sink.setStrokeWidth(ConvertUtil.toFloatPixels(width)); + } + + final Object strokeColor = data.get("strokeColor"); + if (strokeColor != null) { + sink.setStrokeColor(ConvertUtil.toInt(strokeColor)); + } + + final Object fillColor = data.get("fillColor"); + if (fillColor != null) { + sink.setFillColor(ConvertUtil.toInt(fillColor)); + } + + final Object visible = data.get("visible"); + if (visible != null) { + sink.setVisible(ConvertUtil.toBoolean(visible)); + } + + final Object joinType = data.get("joinType"); + if (joinType != null) { + sink.setLineJoinType(AMapPara.LineJoinType.valueOf(ConvertUtil.toInt(joinType))); + } + + final String polylineId = (String) data.get("id"); + if (polylineId == null) { + throw new IllegalArgumentException("polylineId was null"); + } else { + return polylineId; + } + } + + +} diff --git a/android/src/main/java/com/amap/flutter/map/overlays/polygon/PolygonsController.java b/android/src/main/java/com/amap/flutter/map/overlays/polygon/PolygonsController.java new file mode 100644 index 0000000..3989ea4 --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/overlays/polygon/PolygonsController.java @@ -0,0 +1,129 @@ +package com.amap.flutter.map.overlays.polygon; + +import android.text.TextUtils; + +import androidx.annotation.NonNull; + +import com.amap.api.maps.AMap; +import com.amap.api.maps.model.Polygon; +import com.amap.api.maps.model.PolygonOptions; +import com.amap.flutter.map.MyMethodCallHandler; +import com.amap.flutter.map.overlays.AbstractOverlayController; +import com.amap.flutter.map.utils.Const; +import com.amap.flutter.map.utils.ConvertUtil; +import com.amap.flutter.map.utils.LogUtil; + +import java.util.List; + +import io.flutter.plugin.common.MethodCall; +import io.flutter.plugin.common.MethodChannel; + +/** + * @author whm + * @date 2020/11/12 9:53 AM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +public class PolygonsController + extends AbstractOverlayController + implements MyMethodCallHandler { + + private static final String CLASS_NAME = "PolygonsController"; + + public PolygonsController(MethodChannel methodChannel, AMap amap) { + super(methodChannel, amap); + } + + @Override + public void doMethodCall(@NonNull MethodCall call, @NonNull MethodChannel.Result result) { + String methodId = call.method; + LogUtil.i(CLASS_NAME, "doMethodCall===>" +methodId); + switch (methodId) { + case Const.METHOD_POLYGON_UPDATE: + invokePolylineOptions(call, result); + break; + } + } + + @Override + public String[] getRegisterMethodIdArray() { + return Const.METHOD_ID_LIST_FOR_POLYGON; + } + + /** + * + * @param methodCall + * @param result + */ + public void invokePolylineOptions(MethodCall methodCall, MethodChannel.Result result) { + if (null == methodCall) { + return; + } + Object listToAdd = methodCall.argument("polygonsToAdd"); + addByList((List) listToAdd); + Object listToChange = methodCall.argument("polygonsToChange"); + updateByList((List) listToChange); + Object listIdToRemove = methodCall.argument("polygonIdsToRemove"); + removeByIdList((List) listIdToRemove); + result.success(null); + } + + public void addByList(List polygonsToAdd) { + if (polygonsToAdd != null) { + for (Object polygonToAdd : polygonsToAdd) { + add(polygonToAdd); + } + } + } + + private void add(Object polylineObj) { + if (null != amap) { + PolygonOptionsBuilder builder = new PolygonOptionsBuilder(); + String dartId = PolygonUtil.interpretOptions(polylineObj, builder); + if (!TextUtils.isEmpty(dartId)) { + PolygonOptions options = builder.build(); + final Polygon polygon = amap.addPolygon(options); + PolygonController polygonController = new PolygonController(polygon); + controllerMapByDartId.put(dartId, polygonController); + idMapByOverlyId.put(polygon.getId(), dartId); + } + } + + } + + private void updateByList(List overlaysToChange) { + if (overlaysToChange != null) { + for (Object overlayToChange : overlaysToChange) { + update(overlayToChange); + } + } + } + + private void update(Object toUpdate) { + Object dartId = ConvertUtil.getKeyValueFromMapObject(toUpdate, "id"); + if (null != dartId) { + PolygonController controller = controllerMapByDartId.get(dartId); + if (null != controller) { + PolygonUtil.interpretOptions(toUpdate, controller); + } + } + } + + private void removeByIdList(List toRemoveIdList) { + if (toRemoveIdList == null) { + return; + } + for (Object toRemoveId : toRemoveIdList) { + if (toRemoveId == null) { + continue; + } + String dartId = (String) toRemoveId; + final PolygonController controller = controllerMapByDartId.remove(dartId); + if (controller != null) { + + idMapByOverlyId.remove(controller.getId()); + controller.remove(); + } + } + } +} diff --git a/android/src/main/java/com/amap/flutter/map/overlays/polyline/PolylineController.java b/android/src/main/java/com/amap/flutter/map/overlays/polyline/PolylineController.java new file mode 100644 index 0000000..ac404d1 --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/overlays/polyline/PolylineController.java @@ -0,0 +1,120 @@ +package com.amap.flutter.map.overlays.polyline; + +import com.amap.api.maps.model.BitmapDescriptor; +import com.amap.api.maps.model.LatLng; +import com.amap.api.maps.model.Polyline; +import com.amap.api.maps.model.PolylineOptions; + +import java.util.List; + +/** + * @author whm + * @date 2020/11/10 2:58 PM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +class PolylineController implements PolylineOptionsSink { + final Polyline polyline; + final String polylineId; + PolylineController(Polyline polyline) { + this.polyline = polyline; + this.polylineId = polyline.getId(); + } + + public String getPolylineId() { + return polylineId; + } + + public void remove() { + if(null != polyline) { + polyline.remove(); + } + } + @Override + public void setPoints(List points) { + polyline.setPoints(points); + } + + @Override + public void setWidth(float width) { + polyline.setWidth(width); + } + + @Override + public void setColor(int color) { + polyline.setColor(color); + } + + @Override + public void setVisible(boolean visible) { + polyline.setVisible(visible); + } + + @Override + public void setCustomTexture(BitmapDescriptor customTexture) { + polyline.setCustomTexture(customTexture); + } + + @Override + public void setCustomTextureList(List customTextureList) { + polyline.setCustomTextureList(customTextureList); + } + + @Override + public void setColorList(List colorList) { + PolylineOptions options = polyline.getOptions(); + options.colorValues(colorList); + polyline.setOptions(options); + + } + + @Override + public void setCustomIndexList(List customIndexList) { + PolylineOptions options = polyline.getOptions(); + options.setCustomTextureIndex(customIndexList); + polyline.setOptions(options); + } + + @Override + public void setGeodesic(boolean geodesic) { + polyline.setGeodesic(geodesic); + } + + @Override + public void setGradient(boolean gradient) { + polyline.setGeodesic(gradient); + } + + @Override + public void setAlpha(float alpha) { + polyline.setTransparency(alpha); + } + + @Override + public void setDashLineType(int type) { + PolylineOptions options = polyline.getOptions(); + options.setDottedLineType(type); + polyline.setOptions(options); + } + + @Override + public void setDashLine(boolean dashLine) { + polyline.setDottedLine(dashLine); + + } + + @Override + public void setLineCapType(PolylineOptions.LineCapType lineCapType) { + PolylineOptions options = polyline.getOptions(); + options.lineCapType(lineCapType); + polyline.setOptions(options); + } + + + @Override + public void setLineJoinType(PolylineOptions.LineJoinType joinType) { + PolylineOptions options = polyline.getOptions(); + options.lineJoinType(joinType); + polyline.setOptions(options); + } +} diff --git a/android/src/main/java/com/amap/flutter/map/overlays/polyline/PolylineOptionsBuilder.java b/android/src/main/java/com/amap/flutter/map/overlays/polyline/PolylineOptionsBuilder.java new file mode 100644 index 0000000..670c5aa --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/overlays/polyline/PolylineOptionsBuilder.java @@ -0,0 +1,103 @@ +package com.amap.flutter.map.overlays.polyline; + +import com.amap.api.maps.model.AMapPara; +import com.amap.api.maps.model.BitmapDescriptor; +import com.amap.api.maps.model.LatLng; +import com.amap.api.maps.model.PolylineOptions; + +import java.util.List; + +/** + * @author whm + * @date 2020/11/10 2:57 PM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +class PolylineOptionsBuilder implements PolylineOptionsSink { + final PolylineOptions polylineOptions; + + PolylineOptionsBuilder() { + polylineOptions = new PolylineOptions(); + } + + @Override + public void setPoints(List points) { + polylineOptions.setPoints(points); + } + + @Override + public void setWidth(float width) { + polylineOptions.width(width); + } + + @Override + public void setColor(int color) { + polylineOptions.color(color); + } + + @Override + public void setVisible(boolean visible) { + polylineOptions.visible(visible); + } + + @Override + public void setCustomTexture(BitmapDescriptor customTexture) { + polylineOptions.setCustomTexture(customTexture); + } + + @Override + public void setCustomTextureList(List customTextureList) { + polylineOptions.setCustomTextureList(customTextureList); + } + + @Override + public void setColorList(List colorList) { + polylineOptions.colorValues(colorList); + } + + @Override + public void setCustomIndexList(List customIndexList) { + polylineOptions.setCustomTextureIndex(customIndexList); + } + + @Override + public void setGeodesic(boolean geodesic) { + polylineOptions.geodesic(geodesic); + } + + @Override + public void setGradient(boolean gradient) { + polylineOptions.useGradient(gradient); + } + + @Override + public void setAlpha(float alpha) { + polylineOptions.transparency(alpha); + } + + @Override + public void setDashLineType(int type) { + polylineOptions.setDottedLineType(type); + } + + @Override + public void setDashLine(boolean dashLine) { + polylineOptions.setDottedLine(dashLine); + } + + @Override + public void setLineCapType(PolylineOptions.LineCapType lineCapType) { + polylineOptions.lineCapType(lineCapType); + } + + @Override + public void setLineJoinType(PolylineOptions.LineJoinType joinType) { + polylineOptions.lineJoinType(joinType); + } + + public PolylineOptions build(){ + return polylineOptions; + } + + +} diff --git a/android/src/main/java/com/amap/flutter/map/overlays/polyline/PolylineOptionsSink.java b/android/src/main/java/com/amap/flutter/map/overlays/polyline/PolylineOptionsSink.java new file mode 100644 index 0000000..0f27933 --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/overlays/polyline/PolylineOptionsSink.java @@ -0,0 +1,61 @@ +package com.amap.flutter.map.overlays.polyline; + +import com.amap.api.maps.model.BitmapDescriptor; +import com.amap.api.maps.model.LatLng; +import com.amap.api.maps.model.PolylineOptions; + +import java.util.List; + +/** + * @author whm + * @date 2020/11/10 2:58 PM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +public interface PolylineOptionsSink { + //路线点 + void setPoints(List points); + + //宽度 + void setWidth(float width); + + //颜色 + void setColor(int color); + + //是否显示 + void setVisible(boolean visible); + + //纹理 + void setCustomTexture(BitmapDescriptor customTexture); + + //纹理列表 + void setCustomTextureList(List customTextureList); + + //颜色列表 + void setColorList(List colorList); + + //纹理顺序 + void setCustomIndexList(List customIndexList); + + //是否大地曲线 + void setGeodesic(boolean geodesic); + + //是否渐变 + void setGradient(boolean gradient); + + //透明度 + void setAlpha(float alpha); + + //虚线类型 + void setDashLineType(int type); + + //是否虚线 + void setDashLine(boolean dashLine); + + //线冒类型 + void setLineCapType(PolylineOptions.LineCapType lineCapType); + + //线交接类型 + void setLineJoinType(PolylineOptions.LineJoinType joinType); + +} diff --git a/android/src/main/java/com/amap/flutter/map/overlays/polyline/PolylineUtil.java b/android/src/main/java/com/amap/flutter/map/overlays/polyline/PolylineUtil.java new file mode 100644 index 0000000..29958e6 --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/overlays/polyline/PolylineUtil.java @@ -0,0 +1,108 @@ +package com.amap.flutter.map.overlays.polyline; + +import android.text.TextUtils; +import android.util.Log; + +import com.amap.api.maps.model.PolylineOptions; +import com.amap.flutter.map.utils.ConvertUtil; + +import java.util.List; +import java.util.Map; + +/** + * @author whm + * @date 2020/11/10 4:34 PM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +class PolylineUtil { + + private static final String CLASS_NAME = "PolylineUtil"; + //虚线类型 + private static final int[] DASH_LINE_TYPE = {-1,0,1}; + + static String interpretOptions(Object o, PolylineOptionsSink sink) { + final Map data = ConvertUtil.toMap(o); + + final Object points = data.get("points"); + if (points != null) { + sink.setPoints(ConvertUtil.toPoints(points)); + } + + final Object width = data.get("width"); + if (width != null) { + sink.setWidth(ConvertUtil.toFloatPixels(width)); + } + + final Object visible = data.get("visible"); + if (visible != null) { + sink.setVisible(ConvertUtil.toBoolean(visible)); + } + + final Object geodesic = data.get("geodesic"); + if (geodesic != null) { + sink.setGeodesic(ConvertUtil.toBoolean(geodesic)); + } + + final Object gradient = data.get("gradient"); + if (gradient != null) { + sink.setGradient(ConvertUtil.toBoolean(gradient)); + } + + final Object alpha = data.get("alpha"); + if (alpha != null) { + sink.setAlpha(ConvertUtil.toFloat(alpha)); + } + + final Object dashLineType = data.get("dashLineType"); + if (dashLineType != null) { + int rawType = ConvertUtil.toInt(dashLineType); + if (rawType > DASH_LINE_TYPE.length) { + rawType = 0; + } + if(DASH_LINE_TYPE[rawType] == -1) { + sink.setDashLine(false); + } else { + sink.setDashLine(true); + sink.setDashLineType(DASH_LINE_TYPE[rawType]); + } + } + + final Object capType = data.get("capType"); + if (capType != null) { + sink.setLineCapType(PolylineOptions.LineCapType.valueOf(ConvertUtil.toInt(capType))); + } + + final Object joinType = data.get("joinType"); + if (joinType != null) { + sink.setLineJoinType(PolylineOptions.LineJoinType.valueOf(ConvertUtil.toInt(joinType))); + } + + + final Object customTexture = data.get("customTexture"); + if (customTexture != null) { + sink.setCustomTexture(ConvertUtil.toBitmapDescriptor(customTexture)); + } + + final Object customTextureList = data.get("customTextureList"); + if (customTextureList != null) { + sink.setCustomTextureList(ConvertUtil.toBitmapDescriptorList(customTextureList)); + } + + final Object color = data.get("color"); + if (color != null) { + sink.setColor(ConvertUtil.toInt(color)); + } + + final Object colorList = data.get("colorList"); + if (colorList != null) { + sink.setColorList((List) ConvertUtil.toList(colorList)); + } + + final String dartId = (String) data.get("id"); + if(TextUtils.isEmpty(dartId)) { + Log.w(CLASS_NAME, "没有传入正确的dart层ID, 请确认对应的key值是否正确!!!"); + } + return dartId; + } +} diff --git a/android/src/main/java/com/amap/flutter/map/overlays/polyline/PolylinesController.java b/android/src/main/java/com/amap/flutter/map/overlays/polyline/PolylinesController.java new file mode 100644 index 0000000..93d63a6 --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/overlays/polyline/PolylinesController.java @@ -0,0 +1,149 @@ +package com.amap.flutter.map.overlays.polyline; + +import android.text.TextUtils; + +import androidx.annotation.NonNull; + +import com.amap.api.maps.AMap; +import com.amap.api.maps.TextureMapView; +import com.amap.api.maps.model.Polyline; +import com.amap.api.maps.model.PolylineOptions; +import com.amap.flutter.map.MyMethodCallHandler; +import com.amap.flutter.map.overlays.AbstractOverlayController; +import com.amap.flutter.map.utils.Const; +import com.amap.flutter.map.utils.ConvertUtil; +import com.amap.flutter.map.utils.LogUtil; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import io.flutter.plugin.common.MethodCall; +import io.flutter.plugin.common.MethodChannel; + +/** + * @author whm + * @date 2020/11/10 2:58 PM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +public class PolylinesController + extends AbstractOverlayController + implements MyMethodCallHandler, + AMap.OnPolylineClickListener { + + private static final String CLASS_NAME = "PolylinesController"; + + public PolylinesController(MethodChannel methodChannel, AMap amap) { + super(methodChannel, amap); + amap.addOnPolylineClickListener(this); + } + + @Override + public String[] getRegisterMethodIdArray() { + return Const.METHOD_ID_LIST_FOR_POLYLINE; + } + + @Override + public void doMethodCall(@NonNull MethodCall call, @NonNull MethodChannel.Result result) { + LogUtil.i(CLASS_NAME, "doMethodCall===>" + call.method); + String methodStr = call.method; + switch (methodStr) { + case Const.METHOD_POLYLINE_UPDATE: + invokePolylineOptions(call, result); + break; + } + } + + @Override + public void onPolylineClick(Polyline polyline) { + String dartId = idMapByOverlyId.get(polyline.getId()); + if (null == dartId) { + return; + } + final Map data = new HashMap<>(1); + data.put("polylineId", dartId); + methodChannel.invokeMethod("polyline#onTap", data); + LogUtil.i(CLASS_NAME, "onPolylineClick==>" + data); + } + + /** + * + * @param methodCall + * @param result + */ + private void invokePolylineOptions(MethodCall methodCall, MethodChannel.Result result) { + if (null == methodCall) { + return; + } + Object listToAdd = methodCall.argument("polylinesToAdd"); + addByList((List) listToAdd); + Object listToChange = methodCall.argument("polylinesToChange"); + updateByList((List) listToChange); + Object polylineIdsToRemove = methodCall.argument("polylineIdsToRemove"); + removeByIdList((List) polylineIdsToRemove); + result.success(null); + } + + public void addByList(List polylinesToAdd) { + if (polylinesToAdd != null) { + for (Object markerToAdd : polylinesToAdd) { + addPolyline(markerToAdd); + } + } + } + + private void addPolyline(Object polylineObj) { + if (null != amap) { + PolylineOptionsBuilder builder = new PolylineOptionsBuilder(); + String dartId = PolylineUtil.interpretOptions(polylineObj, builder); + if (!TextUtils.isEmpty(dartId)) { + PolylineOptions polylineOptions = builder.build(); + final Polyline polyline = amap.addPolyline(polylineOptions); + PolylineController polylineController = new PolylineController(polyline); + controllerMapByDartId.put(dartId, polylineController); + idMapByOverlyId.put(polyline.getId(), dartId); + } + } + + } + + private void updateByList(List polylineToChange) { + if (polylineToChange != null) { + for (Object markerToChange : polylineToChange) { + update(markerToChange); + } + } + } + + private void update(Object polylineToChange) { + Object polylineId = ConvertUtil.getKeyValueFromMapObject(polylineToChange, "id"); + if (null != polylineId) { + PolylineController polylineController = controllerMapByDartId.get(polylineId); + if (null != polylineController) { + PolylineUtil.interpretOptions(polylineToChange, polylineController); + } + } + } + + + private void removeByIdList(List polylineIdsToRemove) { + if (polylineIdsToRemove == null) { + return; + } + for (Object rawPolylineId : polylineIdsToRemove) { + if (rawPolylineId == null) { + continue; + } + String markerId = (String) rawPolylineId; + final PolylineController polylineController = controllerMapByDartId.remove(markerId); + if (polylineController != null) { + idMapByOverlyId.remove(polylineController.getPolylineId()); + polylineController.remove(); + } + } + } + + + +} diff --git a/android/src/main/java/com/amap/flutter/map/utils/Const.java b/android/src/main/java/com/amap/flutter/map/utils/Const.java new file mode 100644 index 0000000..9c1904a --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/utils/Const.java @@ -0,0 +1,50 @@ +package com.amap.flutter.map.utils; + +/** + * @author whm + * @date 2020/11/10 9:44 PM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +public class Const { + /** + * map + */ + public static final String METHOD_MAP_WAIT_FOR_MAP = "map#waitForMap"; + public static final String METHOD_MAP_CONTENT_APPROVAL_NUMBER = "map#contentApprovalNumber"; + public static final String METHOD_MAP_SATELLITE_IMAGE_APPROVAL_NUMBER = "map#satelliteImageApprovalNumber"; + public static final String METHOD_MAP_UPDATE = "map#update"; + public static final String METHOD_MAP_MOVE_CAMERA = "camera#move"; + public static final String METHOD_MAP_SET_RENDER_FPS = "map#setRenderFps"; + public static final String METHOD_MAP_TAKE_SNAPSHOT = "map#takeSnapshot"; + public static final String METHOD_MAP_CLEAR_DISK = "map#clearDisk"; + + public static final String[] METHOD_ID_LIST_FOR_MAP = { + METHOD_MAP_CONTENT_APPROVAL_NUMBER, + METHOD_MAP_SATELLITE_IMAGE_APPROVAL_NUMBER, + METHOD_MAP_WAIT_FOR_MAP, + METHOD_MAP_UPDATE, + METHOD_MAP_MOVE_CAMERA, + METHOD_MAP_SET_RENDER_FPS, + METHOD_MAP_TAKE_SNAPSHOT, + METHOD_MAP_CLEAR_DISK}; + + + /** + * markers + */ + public static final String METHOD_MARKER_UPDATE = "markers#update"; + public static final String[] METHOD_ID_LIST_FOR_MARKER = {METHOD_MARKER_UPDATE}; + + /** + * polygons + */ + public static final String METHOD_POLYGON_UPDATE = "polygons#update"; + public static final String[] METHOD_ID_LIST_FOR_POLYGON = {METHOD_POLYGON_UPDATE}; + + /** + * polylines + */ + public static final String METHOD_POLYLINE_UPDATE = "polylines#update"; + public static final String[] METHOD_ID_LIST_FOR_POLYLINE = {METHOD_POLYLINE_UPDATE}; +} diff --git a/android/src/main/java/com/amap/flutter/map/utils/ConvertUtil.java b/android/src/main/java/com/amap/flutter/map/utils/ConvertUtil.java new file mode 100644 index 0000000..3d28e3f --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/utils/ConvertUtil.java @@ -0,0 +1,521 @@ +package com.amap.flutter.map.utils; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.Point; +import android.location.Location; +import android.text.TextUtils; + +import com.amap.api.maps.AMap; +import com.amap.api.maps.CameraUpdate; +import com.amap.api.maps.CameraUpdateFactory; +import com.amap.api.maps.MapsInitializer; +import com.amap.api.maps.model.BitmapDescriptor; +import com.amap.api.maps.model.BitmapDescriptorFactory; +import com.amap.api.maps.model.CameraPosition; +import com.amap.api.maps.model.CustomMapStyleOptions; +import com.amap.api.maps.model.LatLng; +import com.amap.api.maps.model.LatLngBounds; +import com.amap.api.maps.model.MyLocationStyle; +import com.amap.api.maps.model.Poi; +import com.amap.flutter.map.core.AMapOptionsSink; + +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import androidx.annotation.NonNull; + +import io.flutter.view.FlutterMain; + +/** + * @author whm + * @date 2020/10/29 11:01 AM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +public class ConvertUtil { + + private static final String CLASS_NAME = "ConvertUtil"; + + public static float density; + private static String apiKey; + + public static void setPrivacyStatement(Context context, Object object) { + if (null == object) { + return; + } + Map privacyStatementMap = toMap(object); + Object hasContainsObj = privacyStatementMap.get("hasContains"); + Object hasShowObj = privacyStatementMap.get("hasShow"); + Object hasAgreeObj = privacyStatementMap.get("hasAgree"); + + Class clazz = MapsInitializer.class; + + if (null != hasContainsObj + && null != hasShowObj) { + boolean hasContains = toBoolean(hasContainsObj); + boolean hasShow = toBoolean(hasShowObj); + //使用反射的方法调用适配之前的版本 + try { + Method method = clazz.getMethod("updatePrivacyShow", Context.class, boolean.class, boolean.class); + method.invoke(null, context, hasContains, hasShow); + } catch (Throwable e) { +// e.printStackTrace(); + } + } + + if (null != hasAgreeObj) { + boolean hasAgree = toBoolean(hasAgreeObj); + //使用反射的方法调用适配之前的版本 + try{ + Method method = clazz.getMethod("updatePrivacyAgree", Context.class, boolean.class); + method.invoke(null, context, hasAgree); + } catch (Throwable e) { +// e.printStackTrace(); + } + } + } + + public static void checkApiKey(Object object) { + if (null == object) { + return; + } + Map keyMap = toMap(object); + Object keyObject = keyMap.get("androidKey"); + if (null != keyObject) { + final String aKey = toString(keyObject); + if (TextUtils.isEmpty(apiKey) + || !aKey.equals(apiKey)) { + apiKey = aKey; + MapsInitializer.setApiKey(apiKey); + } + } + } + + public static int toLocalMapType(int dartMapIndex) { + int[] localTypeArray = {AMap.MAP_TYPE_NORMAL, AMap.MAP_TYPE_SATELLITE, AMap.MAP_TYPE_NIGHT, AMap.MAP_TYPE_NAVI, AMap.MAP_TYPE_BUS}; + if (dartMapIndex > localTypeArray.length) { + return localTypeArray[0]; + } + return localTypeArray[dartMapIndex]; + } + + public static CameraUpdate toCameraUpdate(Object o) { + final List data = toList(o); + switch (toString(data.get(0))) { + case "newCameraPosition": + return CameraUpdateFactory.newCameraPosition(toCameraPosition(data.get(1))); + case "newLatLng": + return CameraUpdateFactory.newLatLng(toLatLng(data.get(1))); + case "newLatLngBounds": + return CameraUpdateFactory.newLatLngBounds( + toLatLngBounds(data.get(1)), toPixels(data.get(2))); + case "newLatLngZoom": + return CameraUpdateFactory.newLatLngZoom(toLatLng(data.get(1)), toFloat(data.get(2))); + case "scrollBy": + return CameraUpdateFactory.scrollBy( // + toFloatPixels(data.get(1)), // + toFloatPixels(data.get(2))); + case "zoomBy": + if (data.size() == 2) { + return CameraUpdateFactory.zoomBy(toFloat(data.get(1))); + } else { + return CameraUpdateFactory.zoomBy(toFloat(data.get(1)), toPoint(data.get(2))); + } + case "zoomIn": + return CameraUpdateFactory.zoomIn(); + case "zoomOut": + return CameraUpdateFactory.zoomOut(); + case "zoomTo": + return CameraUpdateFactory.zoomTo(toFloat(data.get(1))); + default: + throw new IllegalArgumentException("Cannot interpret " + o + " as CameraUpdate"); + } + } + + + private static Point toPoint(Object o) { + final List data = toList(o); + return new Point(toPixels(data.get(0)), toPixels(data.get(1))); + } + + public static float toFloatPixels(Object o) { + return toFloat(o) * density; + } + + public static int toPixels(Object o) { + return (int) toFloatPixels(o); + } + + /** + * 将一个对象转换成CameraPosition + * + * @param o + * @return + */ + public static CameraPosition toCameraPosition(Object o) { + final Map data = (Map) o; + final CameraPosition.Builder builder = CameraPosition.builder(); + builder.bearing(toFloat(data.get("bearing"))); + builder.target(toLatLng(data.get("target"))); + builder.tilt(toFloat(data.get("tilt"))); + builder.zoom(toFloat(data.get("zoom"))); + return builder.build(); + } + + public static Object cameraPositionToMap(CameraPosition position) { + if (position == null) { + return null; + } + final Map data = new HashMap<>(); + data.put("bearing", position.bearing); + data.put("target", latLngToList(position.target)); + data.put("tilt", position.tilt); + data.put("zoom", position.zoom); + return data; + } + + /** + * 转换AMapOptions + * + * @param o + * @param sink + */ + public static void interpretAMapOptions(Object o, @NonNull AMapOptionsSink sink) { + try { + final Map data = (Map) o; + final Object mapType = data.get("mapType"); + if (mapType != null) { + sink.setMapType(toLocalMapType(toInt(mapType))); + } + + final Object buildingsEnabled = data.get("buildingsEnabled"); + if (null != buildingsEnabled) { + sink.setBuildingsEnabled(toBoolean(buildingsEnabled)); + } + + final Object customMapStyleOptions = data.get("customStyleOptions"); + if (null != customMapStyleOptions) { + CustomMapStyleOptions customMapStyleOptions1 = toCustomMapStyleOptions(customMapStyleOptions); + sink.setCustomMapStyleOptions(customMapStyleOptions1); + } + + final Object myLocationStyleData = data.get("myLocationStyle"); + if (null != myLocationStyleData) { + sink.setMyLocationStyle(ConvertUtil.toMyLocationStyle(myLocationStyleData, density)); + } + + final Object screenAnchor = data.get("screenAnchor"); + if (null != screenAnchor) { + final List anchorData = toList(screenAnchor); + sink.setScreenAnchor(toFloat(anchorData.get(0)), toFloat(anchorData.get(1))); + } + + final Object compassEnabled = data.get("compassEnabled"); + if (null != compassEnabled) { + sink.setCompassEnabled(toBoolean(compassEnabled)); + } + + final Object labelsEnabled = data.get("labelsEnabled"); + if (null != labelsEnabled) { + sink.setLabelsEnabled(toBoolean(labelsEnabled)); + } + + final Object limitBounds = data.get("limitBounds"); + if (null != limitBounds) { + final List targetData = toList(limitBounds); + sink.setLatLngBounds(toLatLngBounds(targetData)); + } + + final Object minMaxZoomPreference = data.get("minMaxZoomPreference"); + if (null != minMaxZoomPreference) { + final List targetData = toList(minMaxZoomPreference); + sink.setMinZoomLevel(toFloatWrapperWithDefault(targetData.get(0), 3)); + sink.setMaxZoomLevel(toFloatWrapperWithDefault(targetData.get(1), 20)); + } + + final Object scaleEnabled = data.get("scaleEnabled"); + if (null != scaleEnabled) { + sink.setScaleEnabled(toBoolean(scaleEnabled)); + } + + final Object touchPoiEnabled = data.get("touchPoiEnabled"); + if (null != touchPoiEnabled) { + sink.setTouchPoiEnabled(toBoolean(touchPoiEnabled)); + } + + final Object trafficEnabled = data.get("trafficEnabled"); + if (null != trafficEnabled) { + sink.setTrafficEnabled(toBoolean(trafficEnabled)); + } + + final Object rotateGesturesEnabled = data.get("rotateGesturesEnabled"); + if (null != rotateGesturesEnabled) { + sink.setRotateGesturesEnabled(toBoolean(rotateGesturesEnabled)); + } + + final Object scrollGesturesEnabled = data.get("scrollGesturesEnabled"); + if (null != scrollGesturesEnabled) { + sink.setScrollGesturesEnabled(toBoolean(scrollGesturesEnabled)); + } + + final Object tiltGesturesEnabled = data.get("tiltGesturesEnabled"); + if (null != tiltGesturesEnabled) { + sink.setTiltGesturesEnabled(toBoolean(tiltGesturesEnabled)); + } + + final Object zoomGesturesEnabled = data.get("zoomGesturesEnabled"); + if (null != zoomGesturesEnabled) { + sink.setZoomGesturesEnabled(toBoolean(zoomGesturesEnabled)); + } + } catch (Throwable e) { + LogUtil.e(CLASS_NAME, "interpretAMapOptions", e); + } + } + + private static CustomMapStyleOptions toCustomMapStyleOptions(Object o) { + final Map map = toMap(o); + final CustomMapStyleOptions customMapStyleOptions = new CustomMapStyleOptions(); + final Object enableData = map.get("enabled"); + if (null != enableData) { + customMapStyleOptions.setEnable(toBoolean(enableData)); + } + + final Object styleData = map.get("styleData"); + if (null != styleData) { + customMapStyleOptions.setStyleData((byte[]) styleData); + } + final Object styleExtraData = map.get("styleExtraData"); + if (null != styleExtraData) { + customMapStyleOptions.setStyleExtraData((byte[]) styleExtraData); + } + return customMapStyleOptions; + } + + private static final int[] LocationTypeMap = new int[]{MyLocationStyle.LOCATION_TYPE_SHOW, MyLocationStyle.LOCATION_TYPE_FOLLOW, MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE}; + + private static MyLocationStyle toMyLocationStyle(Object o, float density) { + final Map map = toMap(o); + final MyLocationStyle myLocationStyle = new MyLocationStyle(); + final Object enableData = map.get("enabled"); + if (null != enableData) { + myLocationStyle.showMyLocation(toBoolean(enableData)); + } + //两端差异比较大,Android端设置成跟随但是不移动到中心点模式,与iOS端兼容 + myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_FOLLOW_NO_CENTER); +// final Object trackingMode = map.get("trackingMode"); +// if (null != trackingMode) { +// int trackingModeIndex = toInt(trackingMode); +// if (trackingModeIndex < LocationTypeMap.length) { +// myLocationStyle.myLocationType(LocationTypeMap[trackingModeIndex]); +// } +// } + + final Object circleFillColorData = map.get("circleFillColor"); + if (null != circleFillColorData) { + myLocationStyle.radiusFillColor(toInt(circleFillColorData)); + } + final Object circleStrokeColorData = map.get("circleStrokeColor"); + if (null != circleStrokeColorData) { + myLocationStyle.strokeColor(toInt(circleStrokeColorData)); + } + + final Object circleStrokeWidthData = map.get("circleStrokeWidth"); + if (null != circleStrokeWidthData) { + myLocationStyle.strokeWidth(toPixels(circleStrokeWidthData)); + } + + final Object iconDta = map.get("icon"); + if (null != iconDta) { + myLocationStyle.myLocationIcon(toBitmapDescriptor(iconDta)); + } + return myLocationStyle; + } + + public static Object location2Map(Location location) { + if (null == location) { + return null; + } + + if (location.getAltitude() > 90 || + location.getAltitude() < -90 || + location.getLongitude() > 180 || + location.getLongitude() < -180) { + return null; + } + + final Map object = new HashMap(); + object.put("provider", location.getProvider()); + object.put("latLng", Arrays.asList(location.getLatitude(), location.getLongitude())); + object.put("accuracy", location.getAccuracy()); + object.put("altitude", location.getAltitude()); + object.put("bearing", location.getBearing()); + object.put("speed", location.getSpeed()); + object.put("time", location.getTime()); + return object; + } + + + public static BitmapDescriptor toBitmapDescriptor(Object o) { + final List data = toList(o); + switch (toString(data.get(0))) { + case "defaultMarker": + if (data.size() == 1) { + return BitmapDescriptorFactory.defaultMarker(); + } else { + return BitmapDescriptorFactory.defaultMarker(toFloat(data.get(1))); + } + case "fromAsset": + if (data.size() == 2) { + return BitmapDescriptorFactory.fromAsset( + FlutterMain.getLookupKeyForAsset(toString(data.get(1)))); + } else { + return BitmapDescriptorFactory.fromAsset( + FlutterMain.getLookupKeyForAsset(toString(data.get(1)), toString(data.get(2)))); + } + case "fromAssetImage": + if (data.size() == 3) { + return BitmapDescriptorFactory.fromAsset( + FlutterMain.getLookupKeyForAsset(toString(data.get(1)))); + } else { + throw new IllegalArgumentException( + "'fromAssetImage' Expected exactly 3 arguments, got: " + data.size()); + } + case "fromBytes": + return getBitmapFromBytes(data); + default: + throw new IllegalArgumentException("Cannot interpret " + o + " as BitmapDescriptor"); + } + } + + public static List toBitmapDescriptorList(Object o) { + List rawList = ConvertUtil.toList(o); + List bitmapDescriptorList = new ArrayList(); + for (Object obj : rawList) { + bitmapDescriptorList.add(ConvertUtil.toBitmapDescriptor(obj)); + } + return bitmapDescriptorList; + } + + private static BitmapDescriptor getBitmapFromBytes(List data) { + if (data.size() == 2) { + try { + Bitmap bitmap = toBitmap(data.get(1)); + return BitmapDescriptorFactory.fromBitmap(bitmap); + } catch (Exception e) { + throw new IllegalArgumentException("Unable to interpret bytes as a valid image.", e); + } + } else { + throw new IllegalArgumentException( + "fromBytes should have exactly one argument, the bytes. Got: " + data.size()); + } + } + + private static Bitmap toBitmap(Object o) { + byte[] bmpData = (byte[]) o; + Bitmap bitmap = BitmapFactory.decodeByteArray(bmpData, 0, bmpData.length); + if (bitmap == null) { + throw new IllegalArgumentException("Unable to decode bytes as a valid bitmap."); + } else { + return bitmap; + } + } + + public static Object poiToMap(Poi poi) { + if (null == poi) { + return null; + } + final Map data = new HashMap<>(); + data.put("id", poi.getPoiId()); + data.put("name", poi.getName()); + data.put("latLng", latLngToList(poi.getCoordinate())); + return data; + } + + public static Object latLngToList(LatLng latLng) { + if (null == latLng) { + return null; + } + return Arrays.asList(latLng.latitude, latLng.longitude); + } + + public static LatLng toLatLng(Object o) { + final List data = (List) o; + return new LatLng((Double) data.get(0), (Double) data.get(1)); + } + + public static List toPoints(Object o) { + final List data = toList(o); + final List points = new ArrayList<>(data.size()); + + for (Object ob : data) { + final List point = toList(ob); + points.add(new LatLng(toFloat(point.get(0)), toFloat(point.get(1)))); + } + return points; + } + + public static LatLngBounds toLatLngBounds(Object o) { + if (o == null) { + return null; + } + final List data = toList(o); + return new LatLngBounds(toLatLng(data.get(0)), toLatLng(data.get(1))); + } + + private static Float toFloatWrapper(Object o) { + return (o == null) ? null : toFloat(o); + } + + public static Float toFloatWrapperWithDefault(Object o, float defaultValue) { + return (o == null) ? defaultValue : toFloat(o); + } + + public static boolean toBoolean(Object o) { + return (Boolean) o; + } + + public static int toInt(Object o) { + return ((Number) o).intValue(); + } + + public static double toDouble(Object o) { + return ((Number) o).doubleValue(); + } + + public static float toFloat(Object o) { + return ((Number) o).floatValue(); + } + + public static List toList(Object o) { + return (List) o; + } + + public static Map toMap(Object o) { + return (Map) o; + } + + public static String toString(Object o) { + return (String) o; + } + + public static Object getKeyValueFromMapObject(Object object, String keyStr) { + if (null == object) { + return null; + } + try { + Map mapData = toMap(object); + return mapData.get(keyStr); + } catch (Throwable e) { + e.printStackTrace(); + } + return null; + } + + +} diff --git a/android/src/main/java/com/amap/flutter/map/utils/LogUtil.java b/android/src/main/java/com/amap/flutter/map/utils/LogUtil.java new file mode 100644 index 0000000..9bba2f5 --- /dev/null +++ b/android/src/main/java/com/amap/flutter/map/utils/LogUtil.java @@ -0,0 +1,39 @@ +package com.amap.flutter.map.utils; + +import android.util.Log; + + +/** + * @author whm + * @date 2020/11/6 11:04 AM + * @mail hongming.whm@alibaba-inc.com + * @since + */ +public class LogUtil { + public static boolean isDebugMode = false; + private static final String TAG = "AMapFlutter_"; + public static void i(String className, String message) { + if(isDebugMode) { + Log.i(TAG+className, message); + } + } + public static void d(String className, String message) { + if(isDebugMode) { + Log.d(TAG+className, message); + } + } + + public static void w(String className, String message) { + if(isDebugMode) { + Log.w(TAG+className, message); + } + } + + + public static void e(String className, String methodName, Throwable e) { + if (isDebugMode) { + Log.e(TAG+className, methodName + " exception!!", e); + } + } + +} diff --git a/doc/api/__404error.html b/doc/api/__404error.html new file mode 100644 index 0000000..55208f1 --- /dev/null +++ b/doc/api/__404error.html @@ -0,0 +1,93 @@ + + + + + + + + + amap_map - Dart API docs + + + + + + + + + + + + +
+ +
+ + +
amap_map
+ +
+ +
+ + + +
+

404: Something's gone wrong :-(

+ +
+

You've tried to visit a page that doesn't exist. Luckily this site + has other pages.

+

If you were looking for something specific, try searching: +

+

+ +
+
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapController-class.html b/doc/api/amap_map/AMapController-class.html new file mode 100644 index 0000000..a0f2964 --- /dev/null +++ b/doc/api/amap_map/AMapController-class.html @@ -0,0 +1,317 @@ + + + + + + + + AMapController class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
AMapController
+ +
+ +
+ + + +
+

AMapController class

+ + + + +
+

Properties

+ +
+
+ channel + MethodChannel +
+
+ 只用于测试 +用于与native的通信 +
@visibleForTesting, read-only
+
+
+ hashCode + int +
+
+ The hash code for this object. [...] +
read-only, inherited
+
+
+ mapId + int +
+
+ +
final
+
+
+ runtimeType + Type +
+
+ A representation of the runtime type of the object. +
read-only, inherited
+
+
+
+ +
+

Methods

+
+
+ clearDisk() + Future<void> + +
+
+ 清空缓存 + +
+
+ disponse() + → void + +
+
+ + +
+
+ getMapContentApprovalNumber() + Future<String> + +
+
+ 获取地图审图号(普通地图) [...] + +
+
+ getSatelliteImageApprovalNumber() + Future<String> + +
+
+ 获取地图审图号(卫星地图) [...] + +
+
+ moveCamera(CameraUpdate cameraUpdate, {bool animated, int duration}) + Future<void> + +
+
+ 改变地图视角 [...] + +
+
+ noSuchMethod(Invocation invocation) + → dynamic + +
+
+ Invoked when a non-existent method or property is accessed. [...] +
inherited
+
+
+ setRenderFps(int fps) + Future<void> + +
+
+ 设置地图每秒渲染的帧数 + +
+
+ takeSnapshot() + Future<Uint8List> + +
+
+ 地图截屏 + +
+
+ toString() + String + +
+
+ Returns a string representation of this object. +
inherited
+
+
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + +
+
+ The equality operator. [...] +
inherited
+
+
+
+ + +
+

Static Methods

+
+
+ init(int id, CameraPosition initialCameration, _MapState mapState) + Future<AMapController> + +
+
+ 根据传入的id初始化AMapController +主要用于在AMapWidget初始化时在AMapWidget.onMapCreated中初始化controller + +
+
+
+ + +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapController/channel.html b/doc/api/amap_map/AMapController/channel.html new file mode 100644 index 0000000..c3b7dac --- /dev/null +++ b/doc/api/amap_map/AMapController/channel.html @@ -0,0 +1,138 @@ + + + + + + + + channel property - AMapController class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
channel
+ +
+ +
+ + + +
+

channel property

+ + +
+ +
+ MethodChannel + channel + +
+ +
+

只用于测试 +用于与native的通信

+
+
+

Implementation

+
@visibleForTesting
+MethodChannel get channel {
+  return _methodChannel.channel(mapId);
+}
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapController/clearDisk.html b/doc/api/amap_map/AMapController/clearDisk.html new file mode 100644 index 0000000..52f41b4 --- /dev/null +++ b/doc/api/amap_map/AMapController/clearDisk.html @@ -0,0 +1,133 @@ + + + + + + + + clearDisk method - AMapController class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
clearDisk
+ +
+ +
+ + + +
+

clearDisk method

+ +
+ Future<void> + clearDisk +() + +
+
+

清空缓存

+
+ +
+

Implementation

+
Future<void> clearDisk() {
+  return _methodChannel.clearDisk(mapId: mapId);
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapController/disponse.html b/doc/api/amap_map/AMapController/disponse.html new file mode 100644 index 0000000..05c7afd --- /dev/null +++ b/doc/api/amap_map/AMapController/disponse.html @@ -0,0 +1,130 @@ + + + + + + + + disponse method - AMapController class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
disponse
+ +
+ +
+ + + +
+

disponse method

+ +
+ void + disponse +() + +
+ +
+

Implementation

+
void disponse() {
+  _methodChannel.dispose(id: mapId);
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapController/getMapContentApprovalNumber.html b/doc/api/amap_map/AMapController/getMapContentApprovalNumber.html new file mode 100644 index 0000000..71a530e --- /dev/null +++ b/doc/api/amap_map/AMapController/getMapContentApprovalNumber.html @@ -0,0 +1,135 @@ + + + + + + + + getMapContentApprovalNumber method - AMapController class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
getMapContentApprovalNumber
+ +
+ +
+ + + +
+

getMapContentApprovalNumber method

+ +
+ Future<String> + getMapContentApprovalNumber +() + +
+
+

获取地图审图号(普通地图)

+

任何使用高德地图API调用地图服务的应用必须在其应用中对外透出审图号

+

如高德地图在"关于"中体现

+
+ +
+

Implementation

+
Future<String> getMapContentApprovalNumber() {
+  return _methodChannel.getMapContentApprovalNumber(mapId: mapId);
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapController/getSatelliteImageApprovalNumber.html b/doc/api/amap_map/AMapController/getSatelliteImageApprovalNumber.html new file mode 100644 index 0000000..d9ba5db --- /dev/null +++ b/doc/api/amap_map/AMapController/getSatelliteImageApprovalNumber.html @@ -0,0 +1,135 @@ + + + + + + + + getSatelliteImageApprovalNumber method - AMapController class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
getSatelliteImageApprovalNumber
+ +
+ +
+ + + +
+

getSatelliteImageApprovalNumber method

+ +
+ Future<String> + getSatelliteImageApprovalNumber +() + +
+
+

获取地图审图号(卫星地图)

+

任何使用高德地图API调用地图服务的应用必须在其应用中对外透出审图号

+

如高德地图在"关于"中体现

+
+ +
+

Implementation

+
Future<String> getSatelliteImageApprovalNumber() {
+  return _methodChannel.getSatelliteImageApprovalNumber(mapId: mapId);
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapController/init.html b/doc/api/amap_map/AMapController/init.html new file mode 100644 index 0000000..f56f16d --- /dev/null +++ b/doc/api/amap_map/AMapController/init.html @@ -0,0 +1,147 @@ + + + + + + + + init method - AMapController class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
init
+ +
+ +
+ + + +
+

init method

+ +
+ Future<AMapController> + init +(
  1. int id,
  2. +
  3. CameraPosition initialCameration,
  4. +
  5. _MapState mapState
  6. +
) + +
+
+

根据传入的id初始化AMapController +主要用于在AMapWidget初始化时在AMapWidget.onMapCreated中初始化controller

+
+ +
+

Implementation

+
static Future<AMapController> init(
+  int id,
+  CameraPosition initialCameration,
+  _MapState mapState,
+) async {
+  assert(id != null);
+  await _methodChannel.init(id);
+  return AMapController._(
+    initialCameration,
+    mapState,
+    mapId: id,
+  );
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapController/mapId.html b/doc/api/amap_map/AMapController/mapId.html new file mode 100644 index 0000000..45f5170 --- /dev/null +++ b/doc/api/amap_map/AMapController/mapId.html @@ -0,0 +1,128 @@ + + + + + + + + mapId property - AMapController class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
mapId
+ +
+ +
+ + + +
+

mapId property

+ +
+ int + mapId +
final
+
+
+

Implementation

+
final int mapId
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapController/moveCamera.html b/doc/api/amap_map/AMapController/moveCamera.html new file mode 100644 index 0000000..2ebec9f --- /dev/null +++ b/doc/api/amap_map/AMapController/moveCamera.html @@ -0,0 +1,142 @@ + + + + + + + + moveCamera method - AMapController class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
moveCamera
+ +
+ +
+ + + +
+

moveCamera method

+ +
+ Future<void> + moveCamera +(
  1. CameraUpdate cameraUpdate,
  2. +
  3. {bool animated,
  4. +
  5. int duration}
  6. +
) + +
+
+

改变地图视角

+

通过CameraUpdate对象设置新的中心点、缩放比例、放大缩小、显示区域等内容

+

可选属性animated用于控制是否执行动画移动

+

可选属性duration用于控制执行动画的时长,单位:毫秒

+
+ +
+

Implementation

+
Future<void> moveCamera(CameraUpdate cameraUpdate,
+    {bool animated, int duration}) {
+  assert(cameraUpdate != null);
+  return _methodChannel.moveCamera(cameraUpdate,
+      mapId: mapId, animated: animated, duration: duration);
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapController/setRenderFps.html b/doc/api/amap_map/AMapController/setRenderFps.html new file mode 100644 index 0000000..28293d6 --- /dev/null +++ b/doc/api/amap_map/AMapController/setRenderFps.html @@ -0,0 +1,134 @@ + + + + + + + + setRenderFps method - AMapController class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
setRenderFps
+ +
+ +
+ + + +
+

setRenderFps method

+ +
+ Future<void> + setRenderFps +(
  1. int fps
  2. +
) + +
+
+

设置地图每秒渲染的帧数

+
+ +
+

Implementation

+
Future<void> setRenderFps(int fps) {
+  return _methodChannel.setRenderFps(fps, mapId: mapId);
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapController/takeSnapshot.html b/doc/api/amap_map/AMapController/takeSnapshot.html new file mode 100644 index 0000000..bf10855 --- /dev/null +++ b/doc/api/amap_map/AMapController/takeSnapshot.html @@ -0,0 +1,133 @@ + + + + + + + + takeSnapshot method - AMapController class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
takeSnapshot
+ +
+ +
+ + + +
+

takeSnapshot method

+ +
+ Future<Uint8List> + takeSnapshot +() + +
+
+

地图截屏

+
+ +
+

Implementation

+
Future<Uint8List> takeSnapshot() {
+  return _methodChannel.takeSnapshot(mapId: mapId);
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget-class.html b/doc/api/amap_map/AMapWidget-class.html new file mode 100644 index 0000000..aaf20c1 --- /dev/null +++ b/doc/api/amap_map/AMapWidget-class.html @@ -0,0 +1,590 @@ + + + + + + + + AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
AMapWidget
+ +
+ +
+ + + +
+

AMapWidget class

+ +
+

用于展示高德地图的Widget

+
+ +
+
+
Inheritance
+
+ + + + + +
+
+ +
+

Constructors

+ +
+
+ AMapWidget({Key key, AMapApiKey apiKey, CameraPosition initialCameraPosition: const CameraPosition(target: LatLng(39.909187, 116.397451), zoom: 10), MapType mapType: MapType.normal, bool buildingsEnabled: true, bool compassEnabled: false, bool labelsEnabled: true, LatLngBounds limitBounds, MinMaxZoomPreference minMaxZoomPreference, bool rotateGesturesEnabled: true, bool scaleEnabled: true, bool scrollGesturesEnabled: true, bool tiltGesturesEnabled: true, bool touchPoiEnabled: true, bool trafficEnabled: false, bool zoomGesturesEnabled: true, MapCreatedCallback onMapCreated, Set<Factory<OneSequenceGestureRecognizer>> gestureRecognizers, CustomStyleOptions customStyleOptions, MyLocationStyleOptions myLocationStyleOptions, ArgumentCallback<CameraPosition> onCameraMove, ArgumentCallback<CameraPosition> onCameraMoveEnd, ArgumentCallback<AMapLocation> onLocationChanged, ArgumentCallback<LatLng> onTap, ArgumentCallback<LatLng> onLongPress, ArgumentCallback<AMapPoi> onPoiTouched, Set<Marker> markers, Set<Polyline> polylines, Set<Polygon> polygons}) +
+
+ 创建一个展示高德地图的widget +AssertionError will be thrown if initialCameraPosition is null; +
const
+
+
+
+ +
+

Properties

+ +
+
+ apiKey + → AMapApiKey +
+
+ 高德开放平台的key +
final
+
+
+ buildingsEnabled + bool +
+
+ 是否显示3D建筑物 +
final
+
+
+ compassEnabled + bool +
+
+ 是否显示指南针 +
final
+
+
+ customStyleOptions + CustomStyleOptions +
+
+ 自定义地图样式 +
final
+
+
+ gestureRecognizers + Set<Factory<OneSequenceGestureRecognizer>> +
+
+ 需要应用到地图上的手势集合 +
final
+
+
+ hashCode + int +
+
+ The hash code for this object. [...] +
@nonVirtual, read-only, inherited
+
+
+ initialCameraPosition + CameraPosition +
+
+ 初始化时的地图中心点 +
final
+
+
+ key + Key +
+
+ Controls how one widget replaces another widget in the tree. [...] +
final, inherited
+
+
+ labelsEnabled + bool +
+
+ 是否显示底图文字标注 +
final
+
+
+ limitBounds + → LatLngBounds +
+
+ 地图显示范围 +
final
+
+
+ mapType + MapType +
+
+ 地图类型 +
final
+
+
+ markers + Set<Marker> +
+
+ 地图上显示的Marker +
final
+
+
+ minMaxZoomPreference + MinMaxZoomPreference +
+
+ +
final
+
+
+ myLocationStyleOptions + MyLocationStyleOptions +
+
+ 定位小蓝点 +
final
+
+
+ onCameraMove + → ArgumentCallback<CameraPosition> +
+
+ 相机视角持续移动的回调 +
final
+
+
+ onCameraMoveEnd + → ArgumentCallback<CameraPosition> +
+
+ 相机视角移动结束的回调 +
final
+
+
+ onLocationChanged + → ArgumentCallback<AMapLocation> +
+
+ 位置回调 +
final
+
+
+ onLongPress + → ArgumentCallback<LatLng> +
+
+ 地图长按事件的回调 +
final
+
+
+ onMapCreated + MapCreatedCallback +
+
+ 地图创建成功的回调, 收到此回调之后才可以操作地图 +
final
+
+
+ onPoiTouched + → ArgumentCallback<AMapPoi> +
+
+ 地图POI的点击回调,需要touchPoiEnabledtrue,才能回调 +
final
+
+
+ onTap + → ArgumentCallback<LatLng> +
+
+ 地图单击事件的回调 +
final
+
+
+ polygons + Set<Polygon> +
+
+ 地图上显示的polygon +
final
+
+
+ polylines + Set<Polyline> +
+
+ 地图上显示的polyline +
final
+
+
+ rotateGesturesEnabled + bool +
+
+ 是否支持旋转手势 +
final
+
+
+ runtimeType + Type +
+
+ A representation of the runtime type of the object. +
read-only, inherited
+
+
+ scaleEnabled + bool +
+
+ 是否显示比例尺 +
final
+
+
+ scrollGesturesEnabled + bool +
+
+ 是否支持滑动手势 +
final
+
+
+ tiltGesturesEnabled + bool +
+
+ 是否支持倾斜手势 +
final
+
+
+ touchPoiEnabled + bool +
+
+ 地图poi是否允许点击 +
final
+
+
+ trafficEnabled + bool +
+
+ 显示路况开关 +
final
+
+
+ zoomGesturesEnabled + bool +
+
+ 是否支持缩放手势 +
final
+
+
+
+ +
+

Methods

+
+
+ createElement() + StatefulElement + +
+
+ Creates a StatefulElement to manage this widget's location in the tree. [...] +
inherited
+
+
+ createState() + State<StatefulWidget> + +
+
+ +
override
+
+
+ debugDescribeChildren() + List<DiagnosticsNode> + +
+
+ Returns a list of DiagnosticsNode objects describing this node's +children. [...] +
@protected, inherited
+
+
+ debugFillProperties(DiagnosticPropertiesBuilder properties) + → void + +
+
+ Add additional properties associated with the node. [...] +
inherited
+
+
+ noSuchMethod(Invocation invocation) + → dynamic + +
+
+ Invoked when a non-existent method or property is accessed. [...] +
inherited
+
+
+ toDiagnosticsNode({String name, DiagnosticsTreeStyle style}) + DiagnosticsNode + +
+
+ Returns a debug representation of the object that is used by debugging +tools and by DiagnosticsNode.toStringDeep. [...] +
inherited
+
+
+ toString({DiagnosticLevel minLevel: DiagnosticLevel.info}) + String + +
+
+ Returns a string representation of this object. +
inherited
+
+
+ toStringDeep({String prefixLineOne: '', String prefixOtherLines, DiagnosticLevel minLevel: DiagnosticLevel.debug}) + String + +
+
+ Returns a string representation of this node and its descendants. [...] +
inherited
+
+
+ toStringShallow({String joiner: ', ', DiagnosticLevel minLevel: DiagnosticLevel.debug}) + String + +
+
+ Returns a one-line detailed description of the object. [...] +
inherited
+
+
+ toStringShort() + String + +
+
+ A short, textual description of this widget. +
inherited
+
+
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + +
+
+ The equality operator. [...] +
@nonVirtual, inherited
+
+
+
+ + + + +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/AMapWidget.html b/doc/api/amap_map/AMapWidget/AMapWidget.html new file mode 100644 index 0000000..3ec984b --- /dev/null +++ b/doc/api/amap_map/AMapWidget/AMapWidget.html @@ -0,0 +1,219 @@ + + + + + + + + AMapWidget constructor - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
AMapWidget
+ +
+ +
+ + + +
+

AMapWidget constructor

+ +
+ const + AMapWidget(
  1. {Key key,
  2. +
  3. AMapApiKey apiKey,
  4. +
  5. CameraPosition initialCameraPosition: const CameraPosition(target: LatLng(39.909187, 116.397451), zoom: 10),
  6. +
  7. MapType mapType: MapType.normal,
  8. +
  9. bool buildingsEnabled: true,
  10. +
  11. bool compassEnabled: false,
  12. +
  13. bool labelsEnabled: true,
  14. +
  15. LatLngBounds limitBounds,
  16. +
  17. MinMaxZoomPreference minMaxZoomPreference,
  18. +
  19. bool rotateGesturesEnabled: true,
  20. +
  21. bool scaleEnabled: true,
  22. +
  23. bool scrollGesturesEnabled: true,
  24. +
  25. bool tiltGesturesEnabled: true,
  26. +
  27. bool touchPoiEnabled: true,
  28. +
  29. bool trafficEnabled: false,
  30. +
  31. bool zoomGesturesEnabled: true,
  32. +
  33. MapCreatedCallback onMapCreated,
  34. +
  35. Set<Factory<OneSequenceGestureRecognizer>> gestureRecognizers,
  36. +
  37. CustomStyleOptions customStyleOptions,
  38. +
  39. MyLocationStyleOptions myLocationStyleOptions,
  40. +
  41. ArgumentCallback<CameraPosition> onCameraMove,
  42. +
  43. ArgumentCallback<CameraPosition> onCameraMoveEnd,
  44. +
  45. ArgumentCallback<AMapLocation> onLocationChanged,
  46. +
  47. ArgumentCallback<LatLng> onTap,
  48. +
  49. ArgumentCallback<LatLng> onLongPress,
  50. +
  51. ArgumentCallback<AMapPoi> onPoiTouched,
  52. +
  53. Set<Marker> markers,
  54. +
  55. Set<Polyline> polylines,
  56. +
  57. Set<Polygon> polygons}
  58. +
) +
+ +
+

创建一个展示高德地图的widget +AssertionError will be thrown if initialCameraPosition is null;

+
+ +
+

Implementation

+
const AMapWidget({
+  Key key,
+  this.apiKey,
+  this.initialCameraPosition =
+      const CameraPosition(target: LatLng(39.909187, 116.397451), zoom: 10),
+  this.mapType = MapType.normal,
+  this.buildingsEnabled = true,
+  this.compassEnabled = false,
+  this.labelsEnabled = true,
+  this.limitBounds,
+  this.minMaxZoomPreference,
+  this.rotateGesturesEnabled = true,
+  this.scaleEnabled = true,
+  this.scrollGesturesEnabled = true,
+  this.tiltGesturesEnabled = true,
+  this.touchPoiEnabled = true,
+  this.trafficEnabled = false,
+  this.zoomGesturesEnabled = true,
+  this.onMapCreated,
+  this.gestureRecognizers,
+  this.customStyleOptions,
+  this.myLocationStyleOptions,
+  this.onCameraMove,
+  this.onCameraMoveEnd,
+  this.onLocationChanged,
+  this.onTap,
+  this.onLongPress,
+  this.onPoiTouched,
+  this.markers,
+  this.polylines,
+  this.polygons,
+})  : assert(initialCameraPosition != null),
+      super(key: key);
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/apiKey.html b/doc/api/amap_map/AMapWidget/apiKey.html new file mode 100644 index 0000000..9b9c008 --- /dev/null +++ b/doc/api/amap_map/AMapWidget/apiKey.html @@ -0,0 +1,159 @@ + + + + + + + + apiKey property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
apiKey
+ +
+ +
+ + + +
+

apiKey property

+ +
+ AMapApiKey + apiKey +
final
+
+
+

高德开放平台的key

+
+
+

Implementation

+
final AMapApiKey apiKey
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/buildingsEnabled.html b/doc/api/amap_map/AMapWidget/buildingsEnabled.html new file mode 100644 index 0000000..e8c3c5d --- /dev/null +++ b/doc/api/amap_map/AMapWidget/buildingsEnabled.html @@ -0,0 +1,159 @@ + + + + + + + + buildingsEnabled property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
buildingsEnabled
+ +
+ +
+ + + +
+

buildingsEnabled property

+ +
+ bool + buildingsEnabled +
final
+
+
+

是否显示3D建筑物

+
+
+

Implementation

+
final bool buildingsEnabled
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/compassEnabled.html b/doc/api/amap_map/AMapWidget/compassEnabled.html new file mode 100644 index 0000000..3e065ac --- /dev/null +++ b/doc/api/amap_map/AMapWidget/compassEnabled.html @@ -0,0 +1,159 @@ + + + + + + + + compassEnabled property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
compassEnabled
+ +
+ +
+ + + +
+

compassEnabled property

+ +
+ bool + compassEnabled +
final
+
+
+

是否显示指南针

+
+
+

Implementation

+
final bool compassEnabled
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/createState.html b/doc/api/amap_map/AMapWidget/createState.html new file mode 100644 index 0000000..a7e61d7 --- /dev/null +++ b/doc/api/amap_map/AMapWidget/createState.html @@ -0,0 +1,162 @@ + + + + + + + + createState method - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
createState
+ +
+ +
+ + + +
+

createState method

+ +
+
+
    +
  1. @override
  2. +
+
+ State<StatefulWidget> + createState +() +
override
+
+ +
+

Implementation

+
@override
+State<StatefulWidget> createState() => _MapState();
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/customStyleOptions.html b/doc/api/amap_map/AMapWidget/customStyleOptions.html new file mode 100644 index 0000000..234bb73 --- /dev/null +++ b/doc/api/amap_map/AMapWidget/customStyleOptions.html @@ -0,0 +1,159 @@ + + + + + + + + customStyleOptions property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
customStyleOptions
+ +
+ +
+ + + +
+

customStyleOptions property

+ +
+ CustomStyleOptions + customStyleOptions +
final
+
+
+

自定义地图样式

+
+
+

Implementation

+
final CustomStyleOptions customStyleOptions
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/gestureRecognizers.html b/doc/api/amap_map/AMapWidget/gestureRecognizers.html new file mode 100644 index 0000000..1b59db0 --- /dev/null +++ b/doc/api/amap_map/AMapWidget/gestureRecognizers.html @@ -0,0 +1,159 @@ + + + + + + + + gestureRecognizers property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
gestureRecognizers
+ +
+ +
+ + + +
+

gestureRecognizers property

+ +
+ Set<Factory<OneSequenceGestureRecognizer>> + gestureRecognizers +
final
+
+
+

需要应用到地图上的手势集合

+
+
+

Implementation

+
final Set> gestureRecognizers
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/initialCameraPosition.html b/doc/api/amap_map/AMapWidget/initialCameraPosition.html new file mode 100644 index 0000000..ebd8524 --- /dev/null +++ b/doc/api/amap_map/AMapWidget/initialCameraPosition.html @@ -0,0 +1,159 @@ + + + + + + + + initialCameraPosition property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
initialCameraPosition
+ +
+ +
+ + + +
+

initialCameraPosition property

+ +
+ CameraPosition + initialCameraPosition +
final
+
+
+

初始化时的地图中心点

+
+
+

Implementation

+
final CameraPosition initialCameraPosition
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/labelsEnabled.html b/doc/api/amap_map/AMapWidget/labelsEnabled.html new file mode 100644 index 0000000..e081311 --- /dev/null +++ b/doc/api/amap_map/AMapWidget/labelsEnabled.html @@ -0,0 +1,159 @@ + + + + + + + + labelsEnabled property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
labelsEnabled
+ +
+ +
+ + + +
+

labelsEnabled property

+ +
+ bool + labelsEnabled +
final
+
+
+

是否显示底图文字标注

+
+
+

Implementation

+
final bool labelsEnabled
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/limitBounds.html b/doc/api/amap_map/AMapWidget/limitBounds.html new file mode 100644 index 0000000..9037222 --- /dev/null +++ b/doc/api/amap_map/AMapWidget/limitBounds.html @@ -0,0 +1,159 @@ + + + + + + + + limitBounds property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
limitBounds
+ +
+ +
+ + + +
+

limitBounds property

+ +
+ LatLngBounds + limitBounds +
final
+
+
+

地图显示范围

+
+
+

Implementation

+
final LatLngBounds limitBounds
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/mapType.html b/doc/api/amap_map/AMapWidget/mapType.html new file mode 100644 index 0000000..2a92890 --- /dev/null +++ b/doc/api/amap_map/AMapWidget/mapType.html @@ -0,0 +1,159 @@ + + + + + + + + mapType property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
mapType
+ +
+ +
+ + + +
+

mapType property

+ +
+ MapType + mapType +
final
+
+
+

地图类型

+
+
+

Implementation

+
final MapType mapType
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/markers.html b/doc/api/amap_map/AMapWidget/markers.html new file mode 100644 index 0000000..fa0fbdc --- /dev/null +++ b/doc/api/amap_map/AMapWidget/markers.html @@ -0,0 +1,159 @@ + + + + + + + + markers property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
markers
+ +
+ +
+ + + +
+

markers property

+ +
+ Set<Marker> + markers +
final
+
+
+

地图上显示的Marker

+
+
+

Implementation

+
final Set markers
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/minMaxZoomPreference.html b/doc/api/amap_map/AMapWidget/minMaxZoomPreference.html new file mode 100644 index 0000000..bf5a779 --- /dev/null +++ b/doc/api/amap_map/AMapWidget/minMaxZoomPreference.html @@ -0,0 +1,156 @@ + + + + + + + + minMaxZoomPreference property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
minMaxZoomPreference
+ +
+ +
+ + + +
+

minMaxZoomPreference property

+ +
+ MinMaxZoomPreference + minMaxZoomPreference +
final
+
+
+

Implementation

+
final MinMaxZoomPreference minMaxZoomPreference
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/myLocationStyleOptions.html b/doc/api/amap_map/AMapWidget/myLocationStyleOptions.html new file mode 100644 index 0000000..ef6e467 --- /dev/null +++ b/doc/api/amap_map/AMapWidget/myLocationStyleOptions.html @@ -0,0 +1,159 @@ + + + + + + + + myLocationStyleOptions property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
myLocationStyleOptions
+ +
+ +
+ + + +
+

myLocationStyleOptions property

+ +
+ MyLocationStyleOptions + myLocationStyleOptions +
final
+
+
+

定位小蓝点

+
+
+

Implementation

+
final MyLocationStyleOptions myLocationStyleOptions
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/onCameraMove.html b/doc/api/amap_map/AMapWidget/onCameraMove.html new file mode 100644 index 0000000..3e24966 --- /dev/null +++ b/doc/api/amap_map/AMapWidget/onCameraMove.html @@ -0,0 +1,159 @@ + + + + + + + + onCameraMove property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
onCameraMove
+ +
+ +
+ + + +
+

onCameraMove property

+ +
+ ArgumentCallback<CameraPosition> + onCameraMove +
final
+
+
+

相机视角持续移动的回调

+
+
+

Implementation

+
final ArgumentCallback onCameraMove
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/onCameraMoveEnd.html b/doc/api/amap_map/AMapWidget/onCameraMoveEnd.html new file mode 100644 index 0000000..82f4524 --- /dev/null +++ b/doc/api/amap_map/AMapWidget/onCameraMoveEnd.html @@ -0,0 +1,159 @@ + + + + + + + + onCameraMoveEnd property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
onCameraMoveEnd
+ +
+ +
+ + + +
+

onCameraMoveEnd property

+ +
+ ArgumentCallback<CameraPosition> + onCameraMoveEnd +
final
+
+
+

相机视角移动结束的回调

+
+
+

Implementation

+
final ArgumentCallback onCameraMoveEnd
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/onLocationChanged.html b/doc/api/amap_map/AMapWidget/onLocationChanged.html new file mode 100644 index 0000000..38063e5 --- /dev/null +++ b/doc/api/amap_map/AMapWidget/onLocationChanged.html @@ -0,0 +1,159 @@ + + + + + + + + onLocationChanged property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
onLocationChanged
+ +
+ +
+ + + +
+

onLocationChanged property

+ +
+ ArgumentCallback<AMapLocation> + onLocationChanged +
final
+
+
+

位置回调

+
+
+

Implementation

+
final ArgumentCallback onLocationChanged
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/onLongPress.html b/doc/api/amap_map/AMapWidget/onLongPress.html new file mode 100644 index 0000000..d0d574c --- /dev/null +++ b/doc/api/amap_map/AMapWidget/onLongPress.html @@ -0,0 +1,159 @@ + + + + + + + + onLongPress property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
onLongPress
+ +
+ +
+ + + +
+

onLongPress property

+ +
+ ArgumentCallback<LatLng> + onLongPress +
final
+
+
+

地图长按事件的回调

+
+
+

Implementation

+
final ArgumentCallback onLongPress
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/onMapCreated.html b/doc/api/amap_map/AMapWidget/onMapCreated.html new file mode 100644 index 0000000..3c3ab94 --- /dev/null +++ b/doc/api/amap_map/AMapWidget/onMapCreated.html @@ -0,0 +1,159 @@ + + + + + + + + onMapCreated property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
onMapCreated
+ +
+ +
+ + + +
+

onMapCreated property

+ +
+ MapCreatedCallback + onMapCreated +
final
+
+
+

地图创建成功的回调, 收到此回调之后才可以操作地图

+
+
+

Implementation

+
final MapCreatedCallback onMapCreated
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/onPoiTouched.html b/doc/api/amap_map/AMapWidget/onPoiTouched.html new file mode 100644 index 0000000..f4889ad --- /dev/null +++ b/doc/api/amap_map/AMapWidget/onPoiTouched.html @@ -0,0 +1,159 @@ + + + + + + + + onPoiTouched property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
onPoiTouched
+ +
+ +
+ + + +
+

onPoiTouched property

+ +
+ ArgumentCallback<AMapPoi> + onPoiTouched +
final
+
+
+

地图POI的点击回调,需要touchPoiEnabledtrue,才能回调

+
+
+

Implementation

+
final ArgumentCallback onPoiTouched
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/onTap.html b/doc/api/amap_map/AMapWidget/onTap.html new file mode 100644 index 0000000..4d48407 --- /dev/null +++ b/doc/api/amap_map/AMapWidget/onTap.html @@ -0,0 +1,159 @@ + + + + + + + + onTap property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
onTap
+ +
+ +
+ + + +
+

onTap property

+ +
+ ArgumentCallback<LatLng> + onTap +
final
+
+
+

地图单击事件的回调

+
+
+

Implementation

+
final ArgumentCallback onTap
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/polygons.html b/doc/api/amap_map/AMapWidget/polygons.html new file mode 100644 index 0000000..a2a952d --- /dev/null +++ b/doc/api/amap_map/AMapWidget/polygons.html @@ -0,0 +1,159 @@ + + + + + + + + polygons property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
polygons
+ +
+ +
+ + + +
+

polygons property

+ +
+ Set<Polygon> + polygons +
final
+
+
+

地图上显示的polygon

+
+
+

Implementation

+
final Set polygons
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/polylines.html b/doc/api/amap_map/AMapWidget/polylines.html new file mode 100644 index 0000000..3c72446 --- /dev/null +++ b/doc/api/amap_map/AMapWidget/polylines.html @@ -0,0 +1,159 @@ + + + + + + + + polylines property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
polylines
+ +
+ +
+ + + +
+

polylines property

+ +
+ Set<Polyline> + polylines +
final
+
+
+

地图上显示的polyline

+
+
+

Implementation

+
final Set polylines
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/rotateGesturesEnabled.html b/doc/api/amap_map/AMapWidget/rotateGesturesEnabled.html new file mode 100644 index 0000000..5b9c99a --- /dev/null +++ b/doc/api/amap_map/AMapWidget/rotateGesturesEnabled.html @@ -0,0 +1,159 @@ + + + + + + + + rotateGesturesEnabled property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
rotateGesturesEnabled
+ +
+ +
+ + + +
+

rotateGesturesEnabled property

+ +
+ bool + rotateGesturesEnabled +
final
+
+
+

是否支持旋转手势

+
+
+

Implementation

+
final bool rotateGesturesEnabled
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/scaleEnabled.html b/doc/api/amap_map/AMapWidget/scaleEnabled.html new file mode 100644 index 0000000..2d1bc76 --- /dev/null +++ b/doc/api/amap_map/AMapWidget/scaleEnabled.html @@ -0,0 +1,159 @@ + + + + + + + + scaleEnabled property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
scaleEnabled
+ +
+ +
+ + + +
+

scaleEnabled property

+ +
+ bool + scaleEnabled +
final
+
+
+

是否显示比例尺

+
+
+

Implementation

+
final bool scaleEnabled
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/scrollGesturesEnabled.html b/doc/api/amap_map/AMapWidget/scrollGesturesEnabled.html new file mode 100644 index 0000000..8e6774b --- /dev/null +++ b/doc/api/amap_map/AMapWidget/scrollGesturesEnabled.html @@ -0,0 +1,159 @@ + + + + + + + + scrollGesturesEnabled property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
scrollGesturesEnabled
+ +
+ +
+ + + +
+

scrollGesturesEnabled property

+ +
+ bool + scrollGesturesEnabled +
final
+
+
+

是否支持滑动手势

+
+
+

Implementation

+
final bool scrollGesturesEnabled
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/tiltGesturesEnabled.html b/doc/api/amap_map/AMapWidget/tiltGesturesEnabled.html new file mode 100644 index 0000000..6d1637a --- /dev/null +++ b/doc/api/amap_map/AMapWidget/tiltGesturesEnabled.html @@ -0,0 +1,159 @@ + + + + + + + + tiltGesturesEnabled property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
tiltGesturesEnabled
+ +
+ +
+ + + +
+

tiltGesturesEnabled property

+ +
+ bool + tiltGesturesEnabled +
final
+
+
+

是否支持倾斜手势

+
+
+

Implementation

+
final bool tiltGesturesEnabled
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/touchPoiEnabled.html b/doc/api/amap_map/AMapWidget/touchPoiEnabled.html new file mode 100644 index 0000000..12924f6 --- /dev/null +++ b/doc/api/amap_map/AMapWidget/touchPoiEnabled.html @@ -0,0 +1,159 @@ + + + + + + + + touchPoiEnabled property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
touchPoiEnabled
+ +
+ +
+ + + +
+

touchPoiEnabled property

+ +
+ bool + touchPoiEnabled +
final
+
+
+

地图poi是否允许点击

+
+
+

Implementation

+
final bool touchPoiEnabled
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/trafficEnabled.html b/doc/api/amap_map/AMapWidget/trafficEnabled.html new file mode 100644 index 0000000..3351336 --- /dev/null +++ b/doc/api/amap_map/AMapWidget/trafficEnabled.html @@ -0,0 +1,159 @@ + + + + + + + + trafficEnabled property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
trafficEnabled
+ +
+ +
+ + + +
+

trafficEnabled property

+ +
+ bool + trafficEnabled +
final
+
+
+

显示路况开关

+
+
+

Implementation

+
final bool trafficEnabled
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/AMapWidget/zoomGesturesEnabled.html b/doc/api/amap_map/AMapWidget/zoomGesturesEnabled.html new file mode 100644 index 0000000..6141823 --- /dev/null +++ b/doc/api/amap_map/AMapWidget/zoomGesturesEnabled.html @@ -0,0 +1,159 @@ + + + + + + + + zoomGesturesEnabled property - AMapWidget class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
zoomGesturesEnabled
+ +
+ +
+ + + +
+

zoomGesturesEnabled property

+ +
+ bool + zoomGesturesEnabled +
final
+
+
+

是否支持缩放手势

+
+
+

Implementation

+
final bool zoomGesturesEnabled
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/BaseOverlay-class.html b/doc/api/amap_map/BaseOverlay-class.html new file mode 100644 index 0000000..48d7205 --- /dev/null +++ b/doc/api/amap_map/BaseOverlay-class.html @@ -0,0 +1,282 @@ + + + + + + + + BaseOverlay class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
BaseOverlay
+ +
+ +
+ + + +
+

BaseOverlay class

+ +
+

地图覆盖物基类

+
+ +
+
+ + + +
Implementers
+
+ + +
+
+ +
+

Constructors

+ +
+
+ BaseOverlay() +
+
+ +
+
+
+ +
+

Properties

+ +
+
+ hashCode + int +
+
+ The hash code for this object. [...] +
read-only, inherited
+
+
+ id + String +
+
+ +
read-only
+
+
+ runtimeType + Type +
+
+ A representation of the runtime type of the object. +
read-only, inherited
+
+
+
+ +
+

Methods

+
+
+ clone() + BaseOverlay + +
+
+ + +
+
+ noSuchMethod(Invocation invocation) + → dynamic + +
+
+ Invoked when a non-existent method or property is accessed. [...] +
inherited
+
+
+ setIdForCopy(String copyId) + → void + +
+
+ + +
+
+ toMap() + Map<String, dynamic> + +
+
+ + +
+
+ toString() + String + +
+
+ Returns a string representation of this object. +
inherited
+
+
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + +
+
+ The equality operator. [...] +
inherited
+
+
+
+ + + + +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/BaseOverlay/BaseOverlay.html b/doc/api/amap_map/BaseOverlay/BaseOverlay.html new file mode 100644 index 0000000..951eb1a --- /dev/null +++ b/doc/api/amap_map/BaseOverlay/BaseOverlay.html @@ -0,0 +1,123 @@ + + + + + + + + BaseOverlay constructor - BaseOverlay class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
BaseOverlay
+ +
+ +
+ + + +
+

BaseOverlay constructor

+ +
+ + BaseOverlay() +
+ + +
+

Implementation

+
BaseOverlay() {
+  this._id = this.hashCode.toString();
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/BaseOverlay/clone.html b/doc/api/amap_map/BaseOverlay/clone.html new file mode 100644 index 0000000..a814e96 --- /dev/null +++ b/doc/api/amap_map/BaseOverlay/clone.html @@ -0,0 +1,126 @@ + + + + + + + + clone method - BaseOverlay class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
clone
+ +
+ +
+ + + +
+

clone method

+ +
+ BaseOverlay + clone +() + +
+ +
+

Implementation

+
BaseOverlay clone() {
+  throw UnimplementedError(
+      'BaseOverlay subClass should implement this methed.');
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/BaseOverlay/id.html b/doc/api/amap_map/BaseOverlay/id.html new file mode 100644 index 0000000..9642c7f --- /dev/null +++ b/doc/api/amap_map/BaseOverlay/id.html @@ -0,0 +1,126 @@ + + + + + + + + id property - BaseOverlay class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
id
+ +
+ +
+ + + +
+

id property

+ + +
+ +
+ String + id + +
+ +
+

Implementation

+
String get id => _id;
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/BaseOverlay/setIdForCopy.html b/doc/api/amap_map/BaseOverlay/setIdForCopy.html new file mode 100644 index 0000000..4ab2b25 --- /dev/null +++ b/doc/api/amap_map/BaseOverlay/setIdForCopy.html @@ -0,0 +1,124 @@ + + + + + + + + setIdForCopy method - BaseOverlay class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
setIdForCopy
+ +
+ +
+ + + +
+

setIdForCopy method

+ +
+ void + setIdForCopy +(
  1. String copyId
  2. +
) + +
+ +
+

Implementation

+
void setIdForCopy(String copyId) => _id = copyId;
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/BaseOverlay/toMap.html b/doc/api/amap_map/BaseOverlay/toMap.html new file mode 100644 index 0000000..daa5ab2 --- /dev/null +++ b/doc/api/amap_map/BaseOverlay/toMap.html @@ -0,0 +1,126 @@ + + + + + + + + toMap method - BaseOverlay class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toMap
+ +
+ +
+ + + +
+

toMap method

+ +
+ Map<String, dynamic> + toMap +() + +
+ +
+

Implementation

+
Map<String, dynamic> toMap() {
+  throw UnimplementedError(
+      'BaseOverlay subClass should implement this methed.');
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/BitmapDescriptor-class.html b/doc/api/amap_map/BitmapDescriptor-class.html new file mode 100644 index 0000000..545ae0b --- /dev/null +++ b/doc/api/amap_map/BitmapDescriptor-class.html @@ -0,0 +1,399 @@ + + + + + + + + BitmapDescriptor class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
BitmapDescriptor
+ +
+ +
+ + + +
+

BitmapDescriptor class

+ +
+

Bitmap工具类

+
+ + + +
+

Properties

+ +
+
+ hashCode + int +
+
+ The hash code for this object. [...] +
read-only, inherited
+
+
+ runtimeType + Type +
+
+ A representation of the runtime type of the object. +
read-only, inherited
+
+
+
+ +
+

Methods

+
+
+ noSuchMethod(Invocation invocation) + → dynamic + +
+
+ Invoked when a non-existent method or property is accessed. [...] +
inherited
+
+
+ toMap() + → dynamic + +
+
+ + +
+
+ toString() + String + +
+
+ Returns a string representation of this object. +
inherited
+
+
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + +
+
+ The equality operator. [...] +
inherited
+
+
+
+ + +
+

Static Methods

+
+
+ defaultMarkerWithHue(double hue) + BitmapDescriptor + +
+
+ 创建引用默认着色的BitmapDescriptor + +
+
+ fromAssetImage(ImageConfiguration configuration, String assetName, {AssetBundle bundle, String package, bool mipmaps: true}) + Future<BitmapDescriptor> + +
+
+ 从资源图像创建BitmapDescriptor[...] + +
+
+ fromBytes(Uint8List byteData) + BitmapDescriptor + +
+
+ 根据将PNG图片转换后的二进制数据byteData创建BitmapDescriptor + +
+
+
+ +
+

Constants

+ +
+
+ defaultMarker + → const BitmapDescriptor +
+
+ 创建默认的marker 图标的 bitmap 描述信息对象. + +
+ const BitmapDescriptor._(const <dynamic>['defaultMarker']) +
+
+
+ hueAzure + → const double +
+
+ 天蓝色. + +
+ 210.0 +
+
+
+ hueBlue + → const double +
+
+ 蓝色. + +
+ 240.0 +
+
+
+ hueCyan + → const double +
+
+ 青色. + +
+ 180.0 +
+
+
+ hueGreen + → const double +
+
+ 绿色. + +
+ 120.0 +
+
+
+ hueMagenta + → const double +
+
+ 酒红色. + +
+ 300.0 +
+
+
+ hueOrange + → const double +
+
+ 橙色. + +
+ 30.0 +
+
+
+ hueRed + → const double +
+
+ 红色. + +
+ 0.0 +
+
+
+ hueRose + → const double +
+
+ 玫瑰红. + +
+ 330.0 +
+
+
+ hueViolet + → const double +
+
+ 紫色. + +
+ 270.0 +
+
+
+ hueYellow + → const double +
+
+ 黄色. + +
+ 60.0 +
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/BitmapDescriptor/defaultMarker-constant.html b/doc/api/amap_map/BitmapDescriptor/defaultMarker-constant.html new file mode 100644 index 0000000..0702955 --- /dev/null +++ b/doc/api/amap_map/BitmapDescriptor/defaultMarker-constant.html @@ -0,0 +1,138 @@ + + + + + + + + defaultMarker constant - BitmapDescriptor class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
defaultMarker
+ +
+ +
+ + + +
+

defaultMarker constant

+ +
+ BitmapDescriptor + const defaultMarker + +
+
+

创建默认的marker 图标的 bitmap 描述信息对象.

+
+
+

Implementation

+
static const BitmapDescriptor defaultMarker =
+    BitmapDescriptor._(['defaultMarker'])
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/BitmapDescriptor/defaultMarkerWithHue.html b/doc/api/amap_map/BitmapDescriptor/defaultMarkerWithHue.html new file mode 100644 index 0000000..8c53028 --- /dev/null +++ b/doc/api/amap_map/BitmapDescriptor/defaultMarkerWithHue.html @@ -0,0 +1,167 @@ + + + + + + + + defaultMarkerWithHue method - BitmapDescriptor class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
defaultMarkerWithHue
+ +
+ +
+ + + +
+

defaultMarkerWithHue method

+ +
+ BitmapDescriptor + defaultMarkerWithHue +(
  1. double hue
  2. +
) + +
+
+

创建引用默认着色的BitmapDescriptor

+
+ +
+

Implementation

+
static BitmapDescriptor defaultMarkerWithHue(double hue) {
+  assert(0.0 <= hue && hue < 360.0);
+  String filename = "BLUE.png";
+  if (hue == hueRed) {
+    filename = "RED.png";
+  } else if (hue == hueOrange) {
+    filename = "ORANGE.png";
+  } else if (hue == hueYellow) {
+    filename = "YELLOW.png";
+  } else if (hue == hueGreen) {
+    filename = "GREEN.png";
+  } else if (hue == hueCyan) {
+    filename = "CYAN.png";
+  } else if (hue == hueAzure) {
+    filename = "AZURE.png";
+  } else if (hue == hueBlue) {
+    filename = "BLUE.png";
+  } else if (hue == hueViolet) {
+    filename = "VIOLET.png";
+  } else if (hue == hueMagenta) {
+    filename = "MAGENTA.png";
+  } else if (hue == hueRose) {
+    filename = "ROSE.png";
+  }
+  return BitmapDescriptor._(<dynamic>[
+    'fromAssetImage',
+    "packages/amap_map/res/$filename",
+    AMapUtil.devicePixelRatio
+  ]);
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/BitmapDescriptor/fromAssetImage.html b/doc/api/amap_map/BitmapDescriptor/fromAssetImage.html new file mode 100644 index 0000000..3f833ca --- /dev/null +++ b/doc/api/amap_map/BitmapDescriptor/fromAssetImage.html @@ -0,0 +1,175 @@ + + + + + + + + fromAssetImage method - BitmapDescriptor class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
fromAssetImage
+ +
+ +
+ + + +
+

fromAssetImage method

+ +
+ Future<BitmapDescriptor> + fromAssetImage +(
  1. ImageConfiguration configuration,
  2. +
  3. String assetName,
  4. +
  5. {AssetBundle bundle,
  6. +
  7. String package,
  8. +
  9. bool mipmaps: true}
  10. +
) + +
+
+

从资源图像创建BitmapDescriptor

+

Flutter中的assert的资产图像按以下方式存储: +https://flutter.dev/docs/development/ui/assets and images声明-分辨率感知图像资源 +该方法考虑了各种资产解决方案 +并根据dpi将图像缩放到正确的分辨率。 +将mipmaps1设置为false可加载图像的精确dpi版本,默认情况下,mipmap`为true。

+
+ +
+

Implementation

+
static Future<BitmapDescriptor> fromAssetImage(
+  ImageConfiguration configuration,
+  String assetName, {
+  AssetBundle bundle,
+  String package,
+  bool mipmaps = true,
+}) async {
+  if (!mipmaps && configuration.devicePixelRatio != null) {
+    return BitmapDescriptor._(<dynamic>[
+      'fromAssetImage',
+      assetName,
+      configuration.devicePixelRatio,
+    ]);
+  }
+  final AssetImage assetImage =
+      AssetImage(assetName, package: package, bundle: bundle);
+  final AssetBundleImageKey assetBundleImageKey =
+      await assetImage.obtainKey(configuration);
+  return BitmapDescriptor._(<dynamic>[
+    'fromAssetImage',
+    assetBundleImageKey.name,
+    assetBundleImageKey.scale,
+    if (kIsWeb && configuration?.size != null)
+      [
+        configuration.size.width,
+        configuration.size.height,
+      ],
+  ]);
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/BitmapDescriptor/fromBytes.html b/doc/api/amap_map/BitmapDescriptor/fromBytes.html new file mode 100644 index 0000000..b69592a --- /dev/null +++ b/doc/api/amap_map/BitmapDescriptor/fromBytes.html @@ -0,0 +1,140 @@ + + + + + + + + fromBytes method - BitmapDescriptor class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
fromBytes
+ +
+ +
+ + + +
+

fromBytes method

+ +
+ BitmapDescriptor + fromBytes +(
  1. Uint8List byteData
  2. +
) + +
+
+

根据将PNG图片转换后的二进制数据byteData创建BitmapDescriptor

+
+ +
+

Implementation

+
static BitmapDescriptor fromBytes(Uint8List byteData) {
+  return BitmapDescriptor._(<dynamic>['fromBytes', byteData]);
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/BitmapDescriptor/hueAzure-constant.html b/doc/api/amap_map/BitmapDescriptor/hueAzure-constant.html new file mode 100644 index 0000000..cbd5bd8 --- /dev/null +++ b/doc/api/amap_map/BitmapDescriptor/hueAzure-constant.html @@ -0,0 +1,137 @@ + + + + + + + + hueAzure constant - BitmapDescriptor class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
hueAzure
+ +
+ +
+ + + +
+

hueAzure constant

+ +
+ double + const hueAzure + +
+
+

天蓝色.

+
+
+

Implementation

+
static const double hueAzure = 210.0
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/BitmapDescriptor/hueBlue-constant.html b/doc/api/amap_map/BitmapDescriptor/hueBlue-constant.html new file mode 100644 index 0000000..1c9cb57 --- /dev/null +++ b/doc/api/amap_map/BitmapDescriptor/hueBlue-constant.html @@ -0,0 +1,137 @@ + + + + + + + + hueBlue constant - BitmapDescriptor class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
hueBlue
+ +
+ +
+ + + +
+

hueBlue constant

+ +
+ double + const hueBlue + +
+
+

蓝色.

+
+
+

Implementation

+
static const double hueBlue = 240.0
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/BitmapDescriptor/hueCyan-constant.html b/doc/api/amap_map/BitmapDescriptor/hueCyan-constant.html new file mode 100644 index 0000000..9afb5d5 --- /dev/null +++ b/doc/api/amap_map/BitmapDescriptor/hueCyan-constant.html @@ -0,0 +1,137 @@ + + + + + + + + hueCyan constant - BitmapDescriptor class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
hueCyan
+ +
+ +
+ + + +
+

hueCyan constant

+ +
+ double + const hueCyan + +
+
+

青色.

+
+
+

Implementation

+
static const double hueCyan = 180.0
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/BitmapDescriptor/hueGreen-constant.html b/doc/api/amap_map/BitmapDescriptor/hueGreen-constant.html new file mode 100644 index 0000000..2e5f17f --- /dev/null +++ b/doc/api/amap_map/BitmapDescriptor/hueGreen-constant.html @@ -0,0 +1,137 @@ + + + + + + + + hueGreen constant - BitmapDescriptor class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
hueGreen
+ +
+ +
+ + + +
+

hueGreen constant

+ +
+ double + const hueGreen + +
+
+

绿色.

+
+
+

Implementation

+
static const double hueGreen = 120.0
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/BitmapDescriptor/hueMagenta-constant.html b/doc/api/amap_map/BitmapDescriptor/hueMagenta-constant.html new file mode 100644 index 0000000..9d0a348 --- /dev/null +++ b/doc/api/amap_map/BitmapDescriptor/hueMagenta-constant.html @@ -0,0 +1,137 @@ + + + + + + + + hueMagenta constant - BitmapDescriptor class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
hueMagenta
+ +
+ +
+ + + +
+

hueMagenta constant

+ +
+ double + const hueMagenta + +
+
+

酒红色.

+
+
+

Implementation

+
static const double hueMagenta = 300.0
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/BitmapDescriptor/hueOrange-constant.html b/doc/api/amap_map/BitmapDescriptor/hueOrange-constant.html new file mode 100644 index 0000000..37ffc41 --- /dev/null +++ b/doc/api/amap_map/BitmapDescriptor/hueOrange-constant.html @@ -0,0 +1,137 @@ + + + + + + + + hueOrange constant - BitmapDescriptor class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
hueOrange
+ +
+ +
+ + + +
+

hueOrange constant

+ +
+ double + const hueOrange + +
+
+

橙色.

+
+
+

Implementation

+
static const double hueOrange = 30.0
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/BitmapDescriptor/hueRed-constant.html b/doc/api/amap_map/BitmapDescriptor/hueRed-constant.html new file mode 100644 index 0000000..a81839f --- /dev/null +++ b/doc/api/amap_map/BitmapDescriptor/hueRed-constant.html @@ -0,0 +1,137 @@ + + + + + + + + hueRed constant - BitmapDescriptor class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
hueRed
+ +
+ +
+ + + +
+

hueRed constant

+ +
+ double + const hueRed + +
+
+

红色.

+
+
+

Implementation

+
static const double hueRed = 0.0
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/BitmapDescriptor/hueRose-constant.html b/doc/api/amap_map/BitmapDescriptor/hueRose-constant.html new file mode 100644 index 0000000..f095814 --- /dev/null +++ b/doc/api/amap_map/BitmapDescriptor/hueRose-constant.html @@ -0,0 +1,137 @@ + + + + + + + + hueRose constant - BitmapDescriptor class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
hueRose
+ +
+ +
+ + + +
+

hueRose constant

+ +
+ double + const hueRose + +
+
+

玫瑰红.

+
+
+

Implementation

+
static const double hueRose = 330.0
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/BitmapDescriptor/hueViolet-constant.html b/doc/api/amap_map/BitmapDescriptor/hueViolet-constant.html new file mode 100644 index 0000000..f3e7ac6 --- /dev/null +++ b/doc/api/amap_map/BitmapDescriptor/hueViolet-constant.html @@ -0,0 +1,137 @@ + + + + + + + + hueViolet constant - BitmapDescriptor class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
hueViolet
+ +
+ +
+ + + +
+

hueViolet constant

+ +
+ double + const hueViolet + +
+
+

紫色.

+
+
+

Implementation

+
static const double hueViolet = 270.0
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/BitmapDescriptor/hueYellow-constant.html b/doc/api/amap_map/BitmapDescriptor/hueYellow-constant.html new file mode 100644 index 0000000..852e589 --- /dev/null +++ b/doc/api/amap_map/BitmapDescriptor/hueYellow-constant.html @@ -0,0 +1,137 @@ + + + + + + + + hueYellow constant - BitmapDescriptor class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
hueYellow
+ +
+ +
+ + + +
+

hueYellow constant

+ +
+ double + const hueYellow + +
+
+

黄色.

+
+
+

Implementation

+
static const double hueYellow = 60.0
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/BitmapDescriptor/toMap.html b/doc/api/amap_map/BitmapDescriptor/toMap.html new file mode 100644 index 0000000..d523b19 --- /dev/null +++ b/doc/api/amap_map/BitmapDescriptor/toMap.html @@ -0,0 +1,134 @@ + + + + + + + + toMap method - BitmapDescriptor class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toMap
+ +
+ +
+ + + +
+

toMap method

+ +
+ dynamic + toMap +() + +
+ +
+

Implementation

+
dynamic toMap() => _json;
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraPosition-class.html b/doc/api/amap_map/CameraPosition-class.html new file mode 100644 index 0000000..554dad0 --- /dev/null +++ b/doc/api/amap_map/CameraPosition-class.html @@ -0,0 +1,288 @@ + + + + + + + + CameraPosition class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
CameraPosition
+ +
+ +
+ + + +
+

CameraPosition class

+ + + +
+

Constructors

+ +
+
+ CameraPosition({double bearing: 0.0, @required LatLng target, double tilt: 0.0, double zoom: 10}) +
+
+ 构造一个CameraPosition 对象 [...] +
const
+
+
+
+ +
+

Properties

+ +
+
+ bearing + double +
+
+ 可视区域指向的方向,以角度为单位,从正北向逆时针方向计算,从0 度到360 度。 +
final
+
+
+ hashCode + int +
+
+ The hash code for this object. [...] +
read-only, override
+
+
+ runtimeType + Type +
+
+ A representation of the runtime type of the object. +
read-only, inherited
+
+
+ target + → LatLng +
+
+ 目标位置的屏幕中心点经纬度坐标。 +
final
+
+
+ tilt + double +
+
+ 目标可视区域的倾斜度,以角度为单位。范围从0到360度 +
final
+
+
+ zoom + double +
+
+ 目标可视区域的缩放级别 +
final
+
+
+
+ +
+

Methods

+
+
+ noSuchMethod(Invocation invocation) + → dynamic + +
+
+ Invoked when a non-existent method or property is accessed. [...] +
inherited
+
+
+ toMap() + → dynamic + +
+
+ 将CameraPosition装换成Map [...] + +
+
+ toString() + String + +
+
+ Returns a string representation of this object. +
override
+
+
+
+ +
+

Operators

+
+
+ operator ==(dynamic other) + bool + +
+
+ The equality operator. [...] +
override
+
+
+
+ + +
+

Static Methods

+
+
+ fromMap(dynamic json) + CameraPosition + +
+
+ 从Map转换成CameraPosition [...] + +
+
+
+ + +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraPosition/CameraPosition.html b/doc/api/amap_map/CameraPosition/CameraPosition.html new file mode 100644 index 0000000..472d791 --- /dev/null +++ b/doc/api/amap_map/CameraPosition/CameraPosition.html @@ -0,0 +1,140 @@ + + + + + + + + CameraPosition constructor - CameraPosition class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
CameraPosition
+ +
+ +
+ + + +
+

CameraPosition constructor

+ +
+ const + CameraPosition(
  1. {double bearing: 0.0,
  2. +
  3. @required LatLng target,
  4. +
  5. double tilt: 0.0,
  6. +
  7. double zoom: 10}
  8. +
) +
+ +
+

构造一个CameraPosition 对象

+

如果bearing, target, tilt, 或者 zoom 为null时会返回AssertionError

+
+ +
+

Implementation

+
const CameraPosition({
+  this.bearing = 0.0,
+  @required this.target,
+  this.tilt = 0.0,
+  this.zoom = 10,
+})  : assert(bearing != null),
+      assert(target != null),
+      assert(tilt != null),
+      assert(zoom != null);
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraPosition/bearing.html b/doc/api/amap_map/CameraPosition/bearing.html new file mode 100644 index 0000000..748a806 --- /dev/null +++ b/doc/api/amap_map/CameraPosition/bearing.html @@ -0,0 +1,129 @@ + + + + + + + + bearing property - CameraPosition class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
bearing
+ +
+ +
+ + + +
+

bearing property

+ +
+ double + bearing +
final
+
+
+

可视区域指向的方向,以角度为单位,从正北向逆时针方向计算,从0 度到360 度。

+
+
+

Implementation

+
final double bearing
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraPosition/fromMap.html b/doc/api/amap_map/CameraPosition/fromMap.html new file mode 100644 index 0000000..5138cf4 --- /dev/null +++ b/doc/api/amap_map/CameraPosition/fromMap.html @@ -0,0 +1,141 @@ + + + + + + + + fromMap method - CameraPosition class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
fromMap
+ +
+ +
+ + + +
+

fromMap method

+ +
+ CameraPosition + fromMap +(
  1. dynamic json
  2. +
) + +
+
+

从Map转换成CameraPosition

+

主要在插件内部使用

+
+ +
+

Implementation

+
static CameraPosition fromMap(dynamic json) {
+  if (json == null) {
+    return null;
+  }
+  return CameraPosition(
+    bearing: json['bearing'],
+    target: LatLng.fromJson(json['target']),
+    tilt: json['tilt'],
+    zoom: json['zoom'],
+  );
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraPosition/hashCode.html b/doc/api/amap_map/CameraPosition/hashCode.html new file mode 100644 index 0000000..0c71cf2 --- /dev/null +++ b/doc/api/amap_map/CameraPosition/hashCode.html @@ -0,0 +1,154 @@ + + + + + + + + hashCode property - CameraPosition class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
hashCode
+ +
+ +
+ + + +
+

hashCode property

+ + +
+ +
+ int + hashCode +
override
+
+ +
+

The hash code for this object.

+

A hash code is a single integer which represents the state of the object +that affects operator == comparisons.

+

All objects have hash codes. +The default hash code represents only the identity of the object, +the same way as the default operator == implementation only considers objects +equal if they are identical (see identityHashCode).

+

If operator == is overridden to use the object state instead, +the hash code must also be changed to represent that state.

+

Hash codes must be the same for objects that are equal to each other +according to operator ==. +The hash code of an object should only change if the object changes +in a way that affects equality. +There are no further requirements for the hash codes. +They need not be consistent between executions of the same program +and there are no distribution guarantees.

+

Objects that are not equal are allowed to have the same hash code, +it is even technically allowed that all instances have the same hash code, +but if clashes happen too often, it may reduce the efficiency of hash-based +data structures like HashSet or HashMap.

+

If a subclass overrides hashCode, it should override the +operator == operator as well to maintain consistency.

+
+
+

Implementation

+
@override
+int get hashCode => hashValues(bearing, target, tilt, zoom);
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraPosition/operator_equals.html b/doc/api/amap_map/CameraPosition/operator_equals.html new file mode 100644 index 0000000..a57b2c3 --- /dev/null +++ b/doc/api/amap_map/CameraPosition/operator_equals.html @@ -0,0 +1,171 @@ + + + + + + + + operator == method - CameraPosition class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
operator ==
+ +
+ +
+ + + +
+

operator == method

+ +
+
+
    +
  1. @override
  2. +
+
+ bool + operator == +(
  1. dynamic other
  2. +
) +
override
+
+
+

The equality operator.

+

The default behavior for all Objects is to return true if and +only if this and other are the same object.

+

Override this method to specify a different equality relation on +a class. The overriding method must still be an equivalence relation. +That is, it must be:

+
    +
  • +

    Total: It must return a boolean for all arguments. It should never throw +or return null.

    +
  • +
  • +

    Reflexive: For all objects o, o == o must be true.

    +
  • +
  • +

    Symmetric: For all objects o1 and o2, o1 == o2 and o2 == o1 must +either both be true, or both be false.

    +
  • +
  • +

    Transitive: For all objects o1, o2, and o3, if o1 == o2 and +o2 == o3 are true, then o1 == o3 must be true.

    +
  • +
+

The method should also be consistent over time, +so whether two objects are equal should only change +if at least one of the objects was modified.

+

If a subclass overrides the equality operator it should override +the hashCode method as well to maintain consistency.

+
+ +
+

Implementation

+
@override
+bool operator ==(dynamic other) {
+  if (identical(this, other)) return true;
+  if (runtimeType != other.runtimeType) return false;
+  final CameraPosition typedOther = other;
+  return bearing == typedOther.bearing &&
+      target == typedOther.target &&
+      tilt == typedOther.tilt &&
+      zoom == typedOther.zoom;
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraPosition/target.html b/doc/api/amap_map/CameraPosition/target.html new file mode 100644 index 0000000..8f91379 --- /dev/null +++ b/doc/api/amap_map/CameraPosition/target.html @@ -0,0 +1,129 @@ + + + + + + + + target property - CameraPosition class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
target
+ +
+ +
+ + + +
+

target property

+ +
+ LatLng + target +
final
+
+
+

目标位置的屏幕中心点经纬度坐标。

+
+
+

Implementation

+
final LatLng target
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraPosition/tilt.html b/doc/api/amap_map/CameraPosition/tilt.html new file mode 100644 index 0000000..4aeb269 --- /dev/null +++ b/doc/api/amap_map/CameraPosition/tilt.html @@ -0,0 +1,129 @@ + + + + + + + + tilt property - CameraPosition class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
tilt
+ +
+ +
+ + + +
+

tilt property

+ +
+ double + tilt +
final
+
+
+

目标可视区域的倾斜度,以角度为单位。范围从0到360度

+
+
+

Implementation

+
final double tilt
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraPosition/toMap.html b/doc/api/amap_map/CameraPosition/toMap.html new file mode 100644 index 0000000..43ecb8e --- /dev/null +++ b/doc/api/amap_map/CameraPosition/toMap.html @@ -0,0 +1,135 @@ + + + + + + + + toMap method - CameraPosition class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toMap
+ +
+ +
+ + + +
+

toMap method

+ +
+ dynamic + toMap +() + +
+
+

CameraPosition装换成Map

+

主要在插件内部使用

+
+ +
+

Implementation

+
dynamic toMap() => <String, dynamic>{
+      'bearing': bearing,
+      'target': target.toJson(),
+      'tilt': tilt,
+      'zoom': zoom,
+    };
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraPosition/toString.html b/doc/api/amap_map/CameraPosition/toString.html new file mode 100644 index 0000000..54af89c --- /dev/null +++ b/doc/api/amap_map/CameraPosition/toString.html @@ -0,0 +1,136 @@ + + + + + + + + toString method - CameraPosition class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toString
+ +
+ +
+ + + +
+

toString method

+ +
+
+
    +
  1. @override
  2. +
+
+ String + toString +() +
override
+
+
+

Returns a string representation of this object.

+
+ +
+

Implementation

+
@override
+String toString() =>
+    'CameraPosition(bearing: $bearing, target: $target, tilt: $tilt, zoom: $zoom)';
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraPosition/zoom.html b/doc/api/amap_map/CameraPosition/zoom.html new file mode 100644 index 0000000..263d26c --- /dev/null +++ b/doc/api/amap_map/CameraPosition/zoom.html @@ -0,0 +1,129 @@ + + + + + + + + zoom property - CameraPosition class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
zoom
+ +
+ +
+ + + +
+

zoom property

+ +
+ double + zoom +
final
+
+
+

目标可视区域的缩放级别

+
+
+

Implementation

+
final double zoom
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraTargetBounds-class.html b/doc/api/amap_map/CameraTargetBounds-class.html new file mode 100644 index 0000000..1e892b4 --- /dev/null +++ b/doc/api/amap_map/CameraTargetBounds-class.html @@ -0,0 +1,264 @@ + + + + + + + + CameraTargetBounds class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
CameraTargetBounds
+ +
+ +
+ + + +
+

CameraTargetBounds class

+ + + +
+

Constructors

+ +
+
+ CameraTargetBounds(LatLngBounds bounds) +
+
+ 使用指定的边界框或空值创建摄影机目标边界 [...] +
const
+
+
+
+ +
+

Properties

+ +
+
+ bounds + → LatLngBounds +
+
+ 摄像机的边界. [...] +
final
+
+
+ hashCode + int +
+
+ The hash code for this object. [...] +
read-only, override
+
+
+ runtimeType + Type +
+
+ A representation of the runtime type of the object. +
read-only, inherited
+
+
+
+ +
+

Methods

+
+
+ noSuchMethod(Invocation invocation) + → dynamic + +
+
+ Invoked when a non-existent method or property is accessed. [...] +
inherited
+
+
+ toJson() + → dynamic + +
+
+ 转换成json对象 + +
+
+ toString() + String + +
+
+ Returns a string representation of this object. +
override
+
+
+
+ +
+

Operators

+
+
+ operator ==(dynamic other) + bool + +
+
+ The equality operator. [...] +
override
+
+
+
+ + + +
+

Constants

+ +
+
+ unbounded + → const CameraTargetBounds +
+
+ 取消指定边界 + +
+ const CameraTargetBounds(null) +
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraTargetBounds/CameraTargetBounds.html b/doc/api/amap_map/CameraTargetBounds/CameraTargetBounds.html new file mode 100644 index 0000000..719b80a --- /dev/null +++ b/doc/api/amap_map/CameraTargetBounds/CameraTargetBounds.html @@ -0,0 +1,126 @@ + + + + + + + + CameraTargetBounds constructor - CameraTargetBounds class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
CameraTargetBounds
+ +
+ +
+ + + +
+

CameraTargetBounds constructor

+ +
+ const + CameraTargetBounds(
  1. LatLngBounds bounds
  2. +
) +
+ +
+

使用指定的边界框或空值创建摄影机目标边界

+

设置为null时代表不指定边界

+
+ +
+

Implementation

+
const CameraTargetBounds(this.bounds);
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraTargetBounds/bounds.html b/doc/api/amap_map/CameraTargetBounds/bounds.html new file mode 100644 index 0000000..2e3335e --- /dev/null +++ b/doc/api/amap_map/CameraTargetBounds/bounds.html @@ -0,0 +1,127 @@ + + + + + + + + bounds property - CameraTargetBounds class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
bounds
+ +
+ +
+ + + +
+

bounds property

+ +
+ LatLngBounds + bounds +
final
+
+
+

摄像机的边界.

+

null代表不指定边界

+
+
+

Implementation

+
final LatLngBounds bounds
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraTargetBounds/hashCode.html b/doc/api/amap_map/CameraTargetBounds/hashCode.html new file mode 100644 index 0000000..f3b6feb --- /dev/null +++ b/doc/api/amap_map/CameraTargetBounds/hashCode.html @@ -0,0 +1,151 @@ + + + + + + + + hashCode property - CameraTargetBounds class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
hashCode
+ +
+ +
+ + + +
+

hashCode property

+ + +
+ +
+ int + hashCode +
override
+
+ +
+

The hash code for this object.

+

A hash code is a single integer which represents the state of the object +that affects operator == comparisons.

+

All objects have hash codes. +The default hash code represents only the identity of the object, +the same way as the default operator == implementation only considers objects +equal if they are identical (see identityHashCode).

+

If operator == is overridden to use the object state instead, +the hash code must also be changed to represent that state.

+

Hash codes must be the same for objects that are equal to each other +according to operator ==. +The hash code of an object should only change if the object changes +in a way that affects equality. +There are no further requirements for the hash codes. +They need not be consistent between executions of the same program +and there are no distribution guarantees.

+

Objects that are not equal are allowed to have the same hash code, +it is even technically allowed that all instances have the same hash code, +but if clashes happen too often, it may reduce the efficiency of hash-based +data structures like HashSet or HashMap.

+

If a subclass overrides hashCode, it should override the +operator == operator as well to maintain consistency.

+
+
+

Implementation

+
@override
+int get hashCode => bounds.hashCode;
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraTargetBounds/operator_equals.html b/doc/api/amap_map/CameraTargetBounds/operator_equals.html new file mode 100644 index 0000000..f69beef --- /dev/null +++ b/doc/api/amap_map/CameraTargetBounds/operator_equals.html @@ -0,0 +1,165 @@ + + + + + + + + operator == method - CameraTargetBounds class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
operator ==
+ +
+ +
+ + + +
+

operator == method

+ +
+
+
    +
  1. @override
  2. +
+
+ bool + operator == +(
  1. dynamic other
  2. +
) +
override
+
+
+

The equality operator.

+

The default behavior for all Objects is to return true if and +only if this and other are the same object.

+

Override this method to specify a different equality relation on +a class. The overriding method must still be an equivalence relation. +That is, it must be:

+
    +
  • +

    Total: It must return a boolean for all arguments. It should never throw +or return null.

    +
  • +
  • +

    Reflexive: For all objects o, o == o must be true.

    +
  • +
  • +

    Symmetric: For all objects o1 and o2, o1 == o2 and o2 == o1 must +either both be true, or both be false.

    +
  • +
  • +

    Transitive: For all objects o1, o2, and o3, if o1 == o2 and +o2 == o3 are true, then o1 == o3 must be true.

    +
  • +
+

The method should also be consistent over time, +so whether two objects are equal should only change +if at least one of the objects was modified.

+

If a subclass overrides the equality operator it should override +the hashCode method as well to maintain consistency.

+
+ +
+

Implementation

+
@override
+bool operator ==(dynamic other) {
+  if (identical(this, other)) return true;
+  if (runtimeType != other.runtimeType) return false;
+  final CameraTargetBounds typedOther = other;
+  return bounds == typedOther.bounds;
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraTargetBounds/toJson.html b/doc/api/amap_map/CameraTargetBounds/toJson.html new file mode 100644 index 0000000..62d3851 --- /dev/null +++ b/doc/api/amap_map/CameraTargetBounds/toJson.html @@ -0,0 +1,126 @@ + + + + + + + + toJson method - CameraTargetBounds class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toJson
+ +
+ +
+ + + +
+

toJson method

+ +
+ dynamic + toJson +() + +
+
+

转换成json对象

+
+ +
+

Implementation

+
dynamic toJson() => <dynamic>[bounds?.toJson()];
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraTargetBounds/toString.html b/doc/api/amap_map/CameraTargetBounds/toString.html new file mode 100644 index 0000000..f20c01e --- /dev/null +++ b/doc/api/amap_map/CameraTargetBounds/toString.html @@ -0,0 +1,134 @@ + + + + + + + + toString method - CameraTargetBounds class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toString
+ +
+ +
+ + + +
+

toString method

+ +
+
+
    +
  1. @override
  2. +
+
+ String + toString +() +
override
+
+
+

Returns a string representation of this object.

+
+ +
+

Implementation

+
@override
+String toString() {
+  return 'CameraTargetBounds(bounds: $bounds)';
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraTargetBounds/unbounded-constant.html b/doc/api/amap_map/CameraTargetBounds/unbounded-constant.html new file mode 100644 index 0000000..3f9dc9c --- /dev/null +++ b/doc/api/amap_map/CameraTargetBounds/unbounded-constant.html @@ -0,0 +1,126 @@ + + + + + + + + unbounded constant - CameraTargetBounds class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
unbounded
+ +
+ +
+ + + +
+

unbounded constant

+ +
+ CameraTargetBounds + const unbounded + +
+
+

取消指定边界

+
+
+

Implementation

+
static const CameraTargetBounds unbounded = CameraTargetBounds(null)
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraUpdate-class.html b/doc/api/amap_map/CameraUpdate-class.html new file mode 100644 index 0000000..9617072 --- /dev/null +++ b/doc/api/amap_map/CameraUpdate-class.html @@ -0,0 +1,310 @@ + + + + + + + + CameraUpdate class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
CameraUpdate
+ +
+ +
+ + + +
+

CameraUpdate class

+ +
+

描述地图状态将要发生的变化

+
+ + + +
+

Properties

+ +
+
+ hashCode + int +
+
+ The hash code for this object. [...] +
read-only, inherited
+
+
+ runtimeType + Type +
+
+ A representation of the runtime type of the object. +
read-only, inherited
+
+
+
+ +
+

Methods

+
+
+ noSuchMethod(Invocation invocation) + → dynamic + +
+
+ Invoked when a non-existent method or property is accessed. [...] +
inherited
+
+
+ toJson() + → dynamic + +
+
+ + +
+
+ toString() + String + +
+
+ Returns a string representation of this object. +
inherited
+
+
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + +
+
+ The equality operator. [...] +
inherited
+
+
+
+ + +
+

Static Methods

+
+
+ newCameraPosition(CameraPosition cameraPosition) + CameraUpdate + +
+
+ 返回根据新的CameraPosition移动后的CameraUpdate. [...] + +
+
+ newLatLng(LatLng latLng) + CameraUpdate + +
+
+ 移动到一个新的位置点latLng [...] + +
+
+ newLatLngBounds(LatLngBounds bounds, double padding) + CameraUpdate + +
+
+ 根据指定到摄像头显示范围bounds和边界值padding创建一个CameraUpdate对象 [...] + +
+
+ newLatLngZoom(LatLng latLng, double zoom) + CameraUpdate + +
+
+ 根据指定的新的位置latLng和缩放级别zoom创建一个CameraUpdate对象 [...] + +
+
+ scrollBy(double dx, double dy) + CameraUpdate + +
+
+ 按照指定到像素点dxdy移动地图中心点 [...] + +
+
+ zoomIn() + CameraUpdate + +
+
+ 创建一个在当前地图显示的级别基础上加1的CameraUpdate对象 [...] + +
+
+ zoomOut() + CameraUpdate + +
+
+ 创建一个在当前地图显示的级别基础上加1的CameraUpdate对象 [...] + +
+
+ zoomTo(double zoom) + CameraUpdate + +
+
+ 创建一个指定缩放级别zoom的CameraUpdate对象 [...] + +
+
+
+ + +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraUpdate/newCameraPosition.html b/doc/api/amap_map/CameraUpdate/newCameraPosition.html new file mode 100644 index 0000000..47696c2 --- /dev/null +++ b/doc/api/amap_map/CameraUpdate/newCameraPosition.html @@ -0,0 +1,136 @@ + + + + + + + + newCameraPosition method - CameraUpdate class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
newCameraPosition
+ +
+ +
+ + + +
+

newCameraPosition method

+ +
+ CameraUpdate + newCameraPosition +(
  1. CameraPosition cameraPosition
  2. +
) + +
+
+

返回根据新的CameraPosition移动后的CameraUpdate.

+

主要用于改变地图的中心点、缩放级别、倾斜角、角度等信息

+
+ +
+

Implementation

+
static CameraUpdate newCameraPosition(CameraPosition cameraPosition) {
+  return CameraUpdate._(
+    <dynamic>['newCameraPosition', cameraPosition.toMap()],
+  );
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraUpdate/newLatLng.html b/doc/api/amap_map/CameraUpdate/newLatLng.html new file mode 100644 index 0000000..81ad914 --- /dev/null +++ b/doc/api/amap_map/CameraUpdate/newLatLng.html @@ -0,0 +1,134 @@ + + + + + + + + newLatLng method - CameraUpdate class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
newLatLng
+ +
+ +
+ + + +
+

newLatLng method

+ +
+ CameraUpdate + newLatLng +(
  1. LatLng latLng
  2. +
) + +
+
+

移动到一个新的位置点latLng

+

主要用于改变地图的中心点

+
+ +
+

Implementation

+
static CameraUpdate newLatLng(LatLng latLng) {
+  return CameraUpdate._(<dynamic>['newLatLng', latLng.toJson()]);
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraUpdate/newLatLngBounds.html b/doc/api/amap_map/CameraUpdate/newLatLngBounds.html new file mode 100644 index 0000000..632b9b0 --- /dev/null +++ b/doc/api/amap_map/CameraUpdate/newLatLngBounds.html @@ -0,0 +1,139 @@ + + + + + + + + newLatLngBounds method - CameraUpdate class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
newLatLngBounds
+ +
+ +
+ + + +
+

newLatLngBounds method

+ +
+ CameraUpdate + newLatLngBounds +(
  1. LatLngBounds bounds,
  2. +
  3. double padding
  4. +
) + +
+
+

根据指定到摄像头显示范围bounds和边界值padding创建一个CameraUpdate对象

+

主要用于根据指定的显示范围bounds以最佳的视野显示地图

+
+ +
+

Implementation

+
static CameraUpdate newLatLngBounds(LatLngBounds bounds, double padding) {
+  return CameraUpdate._(<dynamic>[
+    'newLatLngBounds',
+    bounds.toJson(),
+    padding,
+  ]);
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraUpdate/newLatLngZoom.html b/doc/api/amap_map/CameraUpdate/newLatLngZoom.html new file mode 100644 index 0000000..0c440a0 --- /dev/null +++ b/doc/api/amap_map/CameraUpdate/newLatLngZoom.html @@ -0,0 +1,137 @@ + + + + + + + + newLatLngZoom method - CameraUpdate class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
newLatLngZoom
+ +
+ +
+ + + +
+

newLatLngZoom method

+ +
+ CameraUpdate + newLatLngZoom +(
  1. LatLng latLng,
  2. +
  3. double zoom
  4. +
) + +
+
+

根据指定的新的位置latLng和缩放级别zoom创建一个CameraUpdate对象

+

主要用于同时改变中心点和缩放级别

+
+ +
+

Implementation

+
static CameraUpdate newLatLngZoom(LatLng latLng, double zoom) {
+  return CameraUpdate._(
+    <dynamic>['newLatLngZoom', latLng.toJson(), zoom],
+  );
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraUpdate/scrollBy.html b/doc/api/amap_map/CameraUpdate/scrollBy.html new file mode 100644 index 0000000..570086e --- /dev/null +++ b/doc/api/amap_map/CameraUpdate/scrollBy.html @@ -0,0 +1,139 @@ + + + + + + + + scrollBy method - CameraUpdate class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
scrollBy
+ +
+ +
+ + + +
+

scrollBy method

+ +
+ CameraUpdate + scrollBy +(
  1. double dx,
  2. +
  3. double dy
  4. +
) + +
+
+

按照指定到像素点dxdy移动地图中心点

+

dx是水平移动的像素数。正值代表可视区域向右移动,负值代表可视区域向左移动

+

dy是垂直移动的像素数。正值代表可视区域向下移动,负值代表可视区域向上移动

+

返回包含x,y方向上移动像素数的cameraUpdate对象。

+
+ +
+

Implementation

+
static CameraUpdate scrollBy(double dx, double dy) {
+  return CameraUpdate._(
+    <dynamic>['scrollBy', dx, dy],
+  );
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraUpdate/toJson.html b/doc/api/amap_map/CameraUpdate/toJson.html new file mode 100644 index 0000000..70b3722 --- /dev/null +++ b/doc/api/amap_map/CameraUpdate/toJson.html @@ -0,0 +1,127 @@ + + + + + + + + toJson method - CameraUpdate class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toJson
+ +
+ +
+ + + +
+

toJson method

+ +
+ dynamic + toJson +() + +
+ +
+

Implementation

+
dynamic toJson() => _json;
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraUpdate/zoomIn.html b/doc/api/amap_map/CameraUpdate/zoomIn.html new file mode 100644 index 0000000..a3c5d4a --- /dev/null +++ b/doc/api/amap_map/CameraUpdate/zoomIn.html @@ -0,0 +1,133 @@ + + + + + + + + zoomIn method - CameraUpdate class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
zoomIn
+ +
+ +
+ + + +
+

zoomIn method

+ +
+ CameraUpdate + zoomIn +() + +
+
+

创建一个在当前地图显示的级别基础上加1的CameraUpdate对象

+

主要用于放大地图缩放级别,在当前地图显示的级别基础上加1

+
+ +
+

Implementation

+
static CameraUpdate zoomIn() {
+  return CameraUpdate._(<dynamic>['zoomIn']);
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraUpdate/zoomOut.html b/doc/api/amap_map/CameraUpdate/zoomOut.html new file mode 100644 index 0000000..07ac543 --- /dev/null +++ b/doc/api/amap_map/CameraUpdate/zoomOut.html @@ -0,0 +1,133 @@ + + + + + + + + zoomOut method - CameraUpdate class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
zoomOut
+ +
+ +
+ + + +
+

zoomOut method

+ +
+ CameraUpdate + zoomOut +() + +
+
+

创建一个在当前地图显示的级别基础上加1的CameraUpdate对象

+

主要用于减少地图缩放级别,在当前地图显示的级别基础上减1

+
+ +
+

Implementation

+
static CameraUpdate zoomOut() {
+  return CameraUpdate._(<dynamic>['zoomOut']);
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CameraUpdate/zoomTo.html b/doc/api/amap_map/CameraUpdate/zoomTo.html new file mode 100644 index 0000000..8429c84 --- /dev/null +++ b/doc/api/amap_map/CameraUpdate/zoomTo.html @@ -0,0 +1,134 @@ + + + + + + + + zoomTo method - CameraUpdate class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
zoomTo
+ +
+ +
+ + + +
+

zoomTo method

+ +
+ CameraUpdate + zoomTo +(
  1. double zoom
  2. +
) + +
+
+

创建一个指定缩放级别zoom的CameraUpdate对象

+

主要用于设置地图缩放级别

+
+ +
+

Implementation

+
static CameraUpdate zoomTo(double zoom) {
+  return CameraUpdate._(<dynamic>['zoomTo', zoom]);
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CapType-class.html b/doc/api/amap_map/CapType-class.html new file mode 100644 index 0000000..e3d6c21 --- /dev/null +++ b/doc/api/amap_map/CapType-class.html @@ -0,0 +1,287 @@ + + + + + + + + CapType enum - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
CapType
+ +
+ +
+ + + +
+

CapType enum

+ +
+

线头类型

+
+ + +
+

Constants

+ +
+
+ arrow + → const CapType +
+
+

箭头

+ +
+ const CapType(2) +
+
+
+ butt + → const CapType +
+
+

普通头

+ +
+ const CapType(0) +
+
+
+ round + → const CapType +
+
+

圆形头

+ +
+ const CapType(3) +
+
+
+ square + → const CapType +
+
+

扩展头

+ +
+ const CapType(1) +
+
+
+ values + → const List<CapType> +
+
+

A constant List of the values in this enum, in order of their declaration.

+ +
+ const List<CapType> +
+
+
+
+ + +
+

Properties

+ +
+
+ hashCode + int +
+
+ The hash code for this object. [...] +
read-only, inherited
+
+
+ index + int +
+
+

The integer index of this enum.

+
final
+
+
+ runtimeType + Type +
+
+ A representation of the runtime type of the object. +
read-only, inherited
+
+
+
+ +
+

Methods

+
+
+ noSuchMethod(Invocation invocation) + → dynamic + +
+
+ Invoked when a non-existent method or property is accessed. [...] +
inherited
+
+
+ toString() + String + +
+
+ Returns a string representation of this object. +
override
+
+
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + +
+
+ The equality operator. [...] +
inherited
+
+
+
+ + +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CapType/toString.html b/doc/api/amap_map/CapType/toString.html new file mode 100644 index 0000000..5408cb2 --- /dev/null +++ b/doc/api/amap_map/CapType/toString.html @@ -0,0 +1,124 @@ + + + + + + + + toString method - CapType class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toString
+ +
+ +
+ + + +
+

toString method

+ +
+ String + toString +() +
override
+
+
+

Returns a string representation of this object.

+
+ + + +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CustomStyleOptions-class.html b/doc/api/amap_map/CustomStyleOptions-class.html new file mode 100644 index 0000000..846bd71 --- /dev/null +++ b/doc/api/amap_map/CustomStyleOptions-class.html @@ -0,0 +1,281 @@ + + + + + + + + CustomStyleOptions class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
CustomStyleOptions
+ +
+ +
+ + + +
+

CustomStyleOptions class

+ +
+

地图自定义样式

+
+ + +
+

Constructors

+ +
+
+ CustomStyleOptions(bool enabled, {Uint8List styleData, Uint8List styleExtraData}) +
+
+ +
+
+
+ +
+

Properties

+ +
+
+ enabled + bool +
+
+ 开关项,是否开启自定义地图 +
read / write
+
+
+ hashCode + int +
+
+ The hash code for this object. [...] +
read-only, override
+
+
+ runtimeType + Type +
+
+ A representation of the runtime type of the object. +
read-only, inherited
+
+
+ styleData + Uint8List +
+
+ 自定义样式的二进制数据,对应下载的自定义地图文件中的style.data中的二进制数据 +
read / write
+
+
+ styleExtraData + Uint8List +
+
+ 自定义扩展样式的二进制数据,对应下载的自定义地图文件中的style_extra.data中的二进制数据 +
read / write
+
+
+
+ +
+

Methods

+
+
+ noSuchMethod(Invocation invocation) + → dynamic + +
+
+ Invoked when a non-existent method or property is accessed. [...] +
inherited
+
+
+ toJson() + → dynamic + +
+
+ + +
+
+ toString() + String + +
+
+ Returns a string representation of this object. +
inherited
+
+
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + +
+
+ The equality operator. [...] +
override
+
+
+
+ + +
+

Static Methods

+
+
+ fromMap(dynamic json) + CustomStyleOptions + +
+
+ + +
+
+
+ + +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CustomStyleOptions/CustomStyleOptions.html b/doc/api/amap_map/CustomStyleOptions/CustomStyleOptions.html new file mode 100644 index 0000000..89f9891 --- /dev/null +++ b/doc/api/amap_map/CustomStyleOptions/CustomStyleOptions.html @@ -0,0 +1,130 @@ + + + + + + + + CustomStyleOptions constructor - CustomStyleOptions class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
CustomStyleOptions
+ +
+ +
+ + + +
+

CustomStyleOptions constructor

+ +
+ + CustomStyleOptions(
  1. bool enabled,
  2. +
  3. {Uint8List styleData,
  4. +
  5. Uint8List styleExtraData}
  6. +
) +
+ + +
+

Implementation

+
CustomStyleOptions(
+  this.enabled, {
+  this.styleData,
+  this.styleExtraData,
+});
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CustomStyleOptions/enabled.html b/doc/api/amap_map/CustomStyleOptions/enabled.html new file mode 100644 index 0000000..71886e1 --- /dev/null +++ b/doc/api/amap_map/CustomStyleOptions/enabled.html @@ -0,0 +1,128 @@ + + + + + + + + enabled property - CustomStyleOptions class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
enabled
+ +
+ +
+ + + +
+

enabled property

+ +
+ bool + enabled +
read / write
+
+
+

开关项,是否开启自定义地图

+
+
+

Implementation

+
bool enabled
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CustomStyleOptions/fromMap.html b/doc/api/amap_map/CustomStyleOptions/fromMap.html new file mode 100644 index 0000000..e22b439 --- /dev/null +++ b/doc/api/amap_map/CustomStyleOptions/fromMap.html @@ -0,0 +1,135 @@ + + + + + + + + fromMap method - CustomStyleOptions class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
fromMap
+ +
+ +
+ + + +
+

fromMap method

+ +
+ CustomStyleOptions + fromMap +(
  1. dynamic json
  2. +
) + +
+ +
+

Implementation

+
static CustomStyleOptions fromMap(dynamic json) {
+  if (json == null) {
+    return null;
+  }
+  return CustomStyleOptions(
+    json['enabled'] ?? false,
+    styleData: json['styleData'] ?? null,
+    styleExtraData: json['styleExtraData'] ?? null,
+  );
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CustomStyleOptions/hashCode.html b/doc/api/amap_map/CustomStyleOptions/hashCode.html new file mode 100644 index 0000000..41abb35 --- /dev/null +++ b/doc/api/amap_map/CustomStyleOptions/hashCode.html @@ -0,0 +1,153 @@ + + + + + + + + hashCode property - CustomStyleOptions class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
hashCode
+ +
+ +
+ + + +
+

hashCode property

+ + +
+ +
+ int + hashCode +
override
+
+ +
+

The hash code for this object.

+

A hash code is a single integer which represents the state of the object +that affects operator == comparisons.

+

All objects have hash codes. +The default hash code represents only the identity of the object, +the same way as the default operator == implementation only considers objects +equal if they are identical (see identityHashCode).

+

If operator == is overridden to use the object state instead, +the hash code must also be changed to represent that state.

+

Hash codes must be the same for objects that are equal to each other +according to operator ==. +The hash code of an object should only change if the object changes +in a way that affects equality. +There are no further requirements for the hash codes. +They need not be consistent between executions of the same program +and there are no distribution guarantees.

+

Objects that are not equal are allowed to have the same hash code, +it is even technically allowed that all instances have the same hash code, +but if clashes happen too often, it may reduce the efficiency of hash-based +data structures like HashSet or HashMap.

+

If a subclass overrides hashCode, it should override the +operator == operator as well to maintain consistency.

+
+
+

Implementation

+
@override
+int get hashCode => hashValues(enabled, styleData, styleExtraData);
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CustomStyleOptions/operator_equals.html b/doc/api/amap_map/CustomStyleOptions/operator_equals.html new file mode 100644 index 0000000..ecb57fb --- /dev/null +++ b/doc/api/amap_map/CustomStyleOptions/operator_equals.html @@ -0,0 +1,169 @@ + + + + + + + + operator == method - CustomStyleOptions class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
operator ==
+ +
+ +
+ + + +
+

operator == method

+ +
+
+
    +
  1. @override
  2. +
+
+ bool + operator == +(
  1. Object other
  2. +
) +
override
+
+
+

The equality operator.

+

The default behavior for all Objects is to return true if and +only if this and other are the same object.

+

Override this method to specify a different equality relation on +a class. The overriding method must still be an equivalence relation. +That is, it must be:

+
    +
  • +

    Total: It must return a boolean for all arguments. It should never throw +or return null.

    +
  • +
  • +

    Reflexive: For all objects o, o == o must be true.

    +
  • +
  • +

    Symmetric: For all objects o1 and o2, o1 == o2 and o2 == o1 must +either both be true, or both be false.

    +
  • +
  • +

    Transitive: For all objects o1, o2, and o3, if o1 == o2 and +o2 == o3 are true, then o1 == o3 must be true.

    +
  • +
+

The method should also be consistent over time, +so whether two objects are equal should only change +if at least one of the objects was modified.

+

If a subclass overrides the equality operator it should override +the hashCode method as well to maintain consistency.

+
+ +
+

Implementation

+
@override
+bool operator ==(Object other) {
+  if (identical(this, other)) return true;
+  if (runtimeType != other.runtimeType) return false;
+  final CustomStyleOptions typedOther = other;
+  return enabled == typedOther.enabled &&
+      styleData == typedOther.styleData &&
+      styleExtraData == typedOther.styleExtraData;
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CustomStyleOptions/styleData.html b/doc/api/amap_map/CustomStyleOptions/styleData.html new file mode 100644 index 0000000..fdc93e9 --- /dev/null +++ b/doc/api/amap_map/CustomStyleOptions/styleData.html @@ -0,0 +1,128 @@ + + + + + + + + styleData property - CustomStyleOptions class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
styleData
+ +
+ +
+ + + +
+

styleData property

+ +
+ Uint8List + styleData +
read / write
+
+
+

自定义样式的二进制数据,对应下载的自定义地图文件中的style.data中的二进制数据

+
+
+

Implementation

+
Uint8List styleData
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CustomStyleOptions/styleExtraData.html b/doc/api/amap_map/CustomStyleOptions/styleExtraData.html new file mode 100644 index 0000000..9ee8eca --- /dev/null +++ b/doc/api/amap_map/CustomStyleOptions/styleExtraData.html @@ -0,0 +1,128 @@ + + + + + + + + styleExtraData property - CustomStyleOptions class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
styleExtraData
+ +
+ +
+ + + +
+

styleExtraData property

+ +
+ Uint8List + styleExtraData +
read / write
+
+
+

自定义扩展样式的二进制数据,对应下载的自定义地图文件中的style_extra.data中的二进制数据

+
+
+

Implementation

+
Uint8List styleExtraData
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/CustomStyleOptions/toJson.html b/doc/api/amap_map/CustomStyleOptions/toJson.html new file mode 100644 index 0000000..3f89326 --- /dev/null +++ b/doc/api/amap_map/CustomStyleOptions/toJson.html @@ -0,0 +1,138 @@ + + + + + + + + toJson method - CustomStyleOptions class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toJson
+ +
+ +
+ + + +
+

toJson method

+ +
+ dynamic + toJson +() + +
+ +
+

Implementation

+
dynamic toJson() {
+  final Map<String, dynamic> json = <String, dynamic>{};
+
+  void addIfPresent(String fieldName, dynamic value) {
+    if (value != null) {
+      json[fieldName] = value;
+    }
+  }
+
+  addIfPresent('enabled', enabled);
+  addIfPresent('styleData', styleData);
+  addIfPresent('styleExtraData', styleExtraData);
+  return json;
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/DashLineType-class.html b/doc/api/amap_map/DashLineType-class.html new file mode 100644 index 0000000..d7c7e98 --- /dev/null +++ b/doc/api/amap_map/DashLineType-class.html @@ -0,0 +1,275 @@ + + + + + + + + DashLineType enum - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
DashLineType
+ +
+ +
+ + + +
+

DashLineType enum

+ +
+

虚线类型

+
+ + +
+

Constants

+ +
+
+ circle + → const DashLineType +
+
+

圆点样式

+ +
+ const DashLineType(2) +
+
+
+ none + → const DashLineType +
+
+

不画虚线

+ +
+ const DashLineType(0) +
+
+
+ square + → const DashLineType +
+
+

方块样式

+ +
+ const DashLineType(1) +
+
+
+ values + → const List<DashLineType> +
+
+

A constant List of the values in this enum, in order of their declaration.

+ +
+ const List<DashLineType> +
+
+
+
+ + +
+

Properties

+ +
+
+ hashCode + int +
+
+ The hash code for this object. [...] +
read-only, inherited
+
+
+ index + int +
+
+

The integer index of this enum.

+
final
+
+
+ runtimeType + Type +
+
+ A representation of the runtime type of the object. +
read-only, inherited
+
+
+
+ +
+

Methods

+
+
+ noSuchMethod(Invocation invocation) + → dynamic + +
+
+ Invoked when a non-existent method or property is accessed. [...] +
inherited
+
+
+ toString() + String + +
+
+ Returns a string representation of this object. +
override
+
+
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + +
+
+ The equality operator. [...] +
inherited
+
+
+
+ + +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/DashLineType/toString.html b/doc/api/amap_map/DashLineType/toString.html new file mode 100644 index 0000000..d38c118 --- /dev/null +++ b/doc/api/amap_map/DashLineType/toString.html @@ -0,0 +1,123 @@ + + + + + + + + toString method - DashLineType class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toString
+ +
+ +
+ + + +
+

toString method

+ +
+ String + toString +() +
override
+
+
+

Returns a string representation of this object.

+
+ + + +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/InfoWindow-class.html b/doc/api/amap_map/InfoWindow-class.html new file mode 100644 index 0000000..492b670 --- /dev/null +++ b/doc/api/amap_map/InfoWindow-class.html @@ -0,0 +1,277 @@ + + + + + + + + InfoWindow class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
InfoWindow
+ +
+ +
+ + + +
+

InfoWindow class

+ +
+

Marker的气泡 +Android和iOS的实现机制有差异,仅在接口层面拉齐,效果一致

+
+ + +
+

Constructors

+ +
+
+ InfoWindow({String title, String snippet}) +
+
+ 为 Marker 产生一个不可修改的文本气泡. +
const
+
+
+
+ +
+

Properties

+ +
+
+ hashCode + int +
+
+ The hash code for this object. [...] +
read-only, override
+
+
+ runtimeType + Type +
+
+ A representation of the runtime type of the object. +
read-only, inherited
+
+
+ snippet + String +
+
+ 气泡的详细信息 +
final
+
+
+ title + String +
+
+ 气泡的主title +
final
+
+
+
+ +
+

Methods

+
+
+ copyWith({String titleParam, String snippetParam}) + InfoWindow + +
+
+ 气泡copy方法 + +
+
+ noSuchMethod(Invocation invocation) + → dynamic + +
+
+ Invoked when a non-existent method or property is accessed. [...] +
inherited
+
+
+ toString() + String + +
+
+ Returns a string representation of this object. +
override
+
+
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + +
+
+ The equality operator. [...] +
override
+
+
+
+ + + +
+

Constants

+ +
+
+ noText + → const InfoWindow +
+
+ 无文本的气泡 + +
+ const InfoWindow() +
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/InfoWindow/InfoWindow.html b/doc/api/amap_map/InfoWindow/InfoWindow.html new file mode 100644 index 0000000..090e8e9 --- /dev/null +++ b/doc/api/amap_map/InfoWindow/InfoWindow.html @@ -0,0 +1,127 @@ + + + + + + + + InfoWindow constructor - InfoWindow class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
InfoWindow
+ +
+ +
+ + + +
+

InfoWindow constructor

+ +
+ const + InfoWindow(
  1. {String title,
  2. +
  3. String snippet}
  4. +
) +
+ +
+

Marker 产生一个不可修改的文本气泡.

+
+ +
+

Implementation

+
const InfoWindow({this.title, this.snippet});
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/InfoWindow/copyWith.html b/doc/api/amap_map/InfoWindow/copyWith.html new file mode 100644 index 0000000..53781ee --- /dev/null +++ b/doc/api/amap_map/InfoWindow/copyWith.html @@ -0,0 +1,137 @@ + + + + + + + + copyWith method - InfoWindow class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
copyWith
+ +
+ +
+ + + +
+

copyWith method

+ +
+ InfoWindow + copyWith +(
  1. {String titleParam,
  2. +
  3. String snippetParam}
  4. +
) + +
+
+

气泡copy方法

+
+ +
+

Implementation

+
InfoWindow copyWith({
+  String titleParam,
+  String snippetParam,
+}) {
+  return InfoWindow(
+    title: titleParam ?? title,
+    snippet: snippetParam ?? snippet,
+  );
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/InfoWindow/hashCode.html b/doc/api/amap_map/InfoWindow/hashCode.html new file mode 100644 index 0000000..ed7e8b2 --- /dev/null +++ b/doc/api/amap_map/InfoWindow/hashCode.html @@ -0,0 +1,152 @@ + + + + + + + + hashCode property - InfoWindow class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
hashCode
+ +
+ +
+ + + +
+

hashCode property

+ + +
+ +
+ int + hashCode +
override
+
+ +
+

The hash code for this object.

+

A hash code is a single integer which represents the state of the object +that affects operator == comparisons.

+

All objects have hash codes. +The default hash code represents only the identity of the object, +the same way as the default operator == implementation only considers objects +equal if they are identical (see identityHashCode).

+

If operator == is overridden to use the object state instead, +the hash code must also be changed to represent that state.

+

Hash codes must be the same for objects that are equal to each other +according to operator ==. +The hash code of an object should only change if the object changes +in a way that affects equality. +There are no further requirements for the hash codes. +They need not be consistent between executions of the same program +and there are no distribution guarantees.

+

Objects that are not equal are allowed to have the same hash code, +it is even technically allowed that all instances have the same hash code, +but if clashes happen too often, it may reduce the efficiency of hash-based +data structures like HashSet or HashMap.

+

If a subclass overrides hashCode, it should override the +operator == operator as well to maintain consistency.

+
+
+

Implementation

+
@override
+int get hashCode => hashValues(title, snippet);
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/InfoWindow/noText-constant.html b/doc/api/amap_map/InfoWindow/noText-constant.html new file mode 100644 index 0000000..a2202b6 --- /dev/null +++ b/doc/api/amap_map/InfoWindow/noText-constant.html @@ -0,0 +1,127 @@ + + + + + + + + noText constant - InfoWindow class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
noText
+ +
+ +
+ + + +
+

noText constant

+ +
+ InfoWindow + const noText + +
+
+

无文本的气泡

+
+
+

Implementation

+
static const InfoWindow noText = InfoWindow()
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/InfoWindow/operator_equals.html b/doc/api/amap_map/InfoWindow/operator_equals.html new file mode 100644 index 0000000..3561dc0 --- /dev/null +++ b/doc/api/amap_map/InfoWindow/operator_equals.html @@ -0,0 +1,166 @@ + + + + + + + + operator == method - InfoWindow class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
operator ==
+ +
+ +
+ + + +
+

operator == method

+ +
+
+
    +
  1. @override
  2. +
+
+ bool + operator == +(
  1. Object other
  2. +
) +
override
+
+
+

The equality operator.

+

The default behavior for all Objects is to return true if and +only if this and other are the same object.

+

Override this method to specify a different equality relation on +a class. The overriding method must still be an equivalence relation. +That is, it must be:

+
    +
  • +

    Total: It must return a boolean for all arguments. It should never throw +or return null.

    +
  • +
  • +

    Reflexive: For all objects o, o == o must be true.

    +
  • +
  • +

    Symmetric: For all objects o1 and o2, o1 == o2 and o2 == o1 must +either both be true, or both be false.

    +
  • +
  • +

    Transitive: For all objects o1, o2, and o3, if o1 == o2 and +o2 == o3 are true, then o1 == o3 must be true.

    +
  • +
+

The method should also be consistent over time, +so whether two objects are equal should only change +if at least one of the objects was modified.

+

If a subclass overrides the equality operator it should override +the hashCode method as well to maintain consistency.

+
+ +
+

Implementation

+
@override
+bool operator ==(Object other) {
+  if (identical(this, other)) return true;
+  if (other.runtimeType != runtimeType) return false;
+  final InfoWindow typedOther = other;
+  return title == typedOther.title && snippet == typedOther.snippet;
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/InfoWindow/snippet.html b/doc/api/amap_map/InfoWindow/snippet.html new file mode 100644 index 0000000..e1e8b93 --- /dev/null +++ b/doc/api/amap_map/InfoWindow/snippet.html @@ -0,0 +1,127 @@ + + + + + + + + snippet property - InfoWindow class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
snippet
+ +
+ +
+ + + +
+

snippet property

+ +
+ String + snippet +
final
+
+
+

气泡的详细信息

+
+
+

Implementation

+
final String snippet
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/InfoWindow/title.html b/doc/api/amap_map/InfoWindow/title.html new file mode 100644 index 0000000..12340f0 --- /dev/null +++ b/doc/api/amap_map/InfoWindow/title.html @@ -0,0 +1,127 @@ + + + + + + + + title property - InfoWindow class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
title
+ +
+ +
+ + + +
+

title property

+ +
+ String + title +
final
+
+
+

气泡的主title

+
+
+

Implementation

+
final String title
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/InfoWindow/toString.html b/doc/api/amap_map/InfoWindow/toString.html new file mode 100644 index 0000000..c9e406b --- /dev/null +++ b/doc/api/amap_map/InfoWindow/toString.html @@ -0,0 +1,135 @@ + + + + + + + + toString method - InfoWindow class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toString
+ +
+ +
+ + + +
+

toString method

+ +
+
+
    +
  1. @override
  2. +
+
+ String + toString +() +
override
+
+
+

Returns a string representation of this object.

+
+ +
+

Implementation

+
@override
+String toString() {
+  return 'InfoWindow{title: $title, snippet: $snippet}';
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/JoinType-class.html b/doc/api/amap_map/JoinType-class.html new file mode 100644 index 0000000..cde9377 --- /dev/null +++ b/doc/api/amap_map/JoinType-class.html @@ -0,0 +1,275 @@ + + + + + + + + JoinType enum - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
JoinType
+ +
+ +
+ + + +
+

JoinType enum

+ +
+

连接点类型

+
+ + +
+

Constants

+ +
+
+ bevel + → const JoinType +
+
+

斜面连接点

+ +
+ const JoinType(0) +
+
+
+ miter + → const JoinType +
+
+

斜接连接点

+ +
+ const JoinType(1) +
+
+
+ round + → const JoinType +
+
+

圆角连接点

+ +
+ const JoinType(2) +
+
+
+ values + → const List<JoinType> +
+
+

A constant List of the values in this enum, in order of their declaration.

+ +
+ const List<JoinType> +
+
+
+
+ + +
+

Properties

+ +
+
+ hashCode + int +
+
+ The hash code for this object. [...] +
read-only, inherited
+
+
+ index + int +
+
+

The integer index of this enum.

+
final
+
+
+ runtimeType + Type +
+
+ A representation of the runtime type of the object. +
read-only, inherited
+
+
+
+ +
+

Methods

+
+
+ noSuchMethod(Invocation invocation) + → dynamic + +
+
+ Invoked when a non-existent method or property is accessed. [...] +
inherited
+
+
+ toString() + String + +
+
+ Returns a string representation of this object. +
override
+
+
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + +
+
+ The equality operator. [...] +
inherited
+
+
+
+ + +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/JoinType/toString.html b/doc/api/amap_map/JoinType/toString.html new file mode 100644 index 0000000..12e9a2b --- /dev/null +++ b/doc/api/amap_map/JoinType/toString.html @@ -0,0 +1,123 @@ + + + + + + + + toString method - JoinType class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toString
+ +
+ +
+ + + +
+

toString method

+ +
+ String + toString +() +
override
+
+
+

Returns a string representation of this object.

+
+ + + +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MapCreatedCallback.html b/doc/api/amap_map/MapCreatedCallback.html new file mode 100644 index 0000000..c0bcb4b --- /dev/null +++ b/doc/api/amap_map/MapCreatedCallback.html @@ -0,0 +1,135 @@ + + + + + + + + MapCreatedCallback typedef - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
MapCreatedCallback
+ +
+ +
+ + + +
+

MapCreatedCallback typedef

+ +
+ void + MapCreatedCallback +(
  1. AMapController controller
  2. +
) +
+ +
+

Implementation

+
typedef void MapCreatedCallback(AMapController controller);
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MapType-class.html b/doc/api/amap_map/MapType-class.html new file mode 100644 index 0000000..88c60ad --- /dev/null +++ b/doc/api/amap_map/MapType-class.html @@ -0,0 +1,299 @@ + + + + + + + + MapType enum - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
MapType
+ +
+ +
+ + + +
+

MapType enum

+ +
+

地图类型

+
+ + +
+

Constants

+ +
+
+ bus + → const MapType +
+
+

公交视图

+ +
+ const MapType(4) +
+
+ +
+

导航视图

+ +
+ const MapType(3) +
+
+
+ night + → const MapType +
+
+

夜间视图

+ +
+ const MapType(2) +
+
+
+ normal + → const MapType +
+
+

普通地图

+ +
+ const MapType(0) +
+
+
+ satellite + → const MapType +
+
+

卫星地图

+ +
+ const MapType(1) +
+
+
+ values + → const List<MapType> +
+
+

A constant List of the values in this enum, in order of their declaration.

+ +
+ const List<MapType> +
+
+
+
+ + +
+

Properties

+ +
+
+ hashCode + int +
+
+ The hash code for this object. [...] +
read-only, inherited
+
+
+ index + int +
+
+

The integer index of this enum.

+
final
+
+
+ runtimeType + Type +
+
+ A representation of the runtime type of the object. +
read-only, inherited
+
+
+
+ +
+

Methods

+
+
+ noSuchMethod(Invocation invocation) + → dynamic + +
+
+ Invoked when a non-existent method or property is accessed. [...] +
inherited
+
+
+ toString() + String + +
+
+ Returns a string representation of this object. +
override
+
+
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + +
+
+ The equality operator. [...] +
inherited
+
+
+
+ + +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MapType/toString.html b/doc/api/amap_map/MapType/toString.html new file mode 100644 index 0000000..f2f259d --- /dev/null +++ b/doc/api/amap_map/MapType/toString.html @@ -0,0 +1,125 @@ + + + + + + + + toString method - MapType class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toString
+ +
+ +
+ + + +
+

toString method

+ +
+ String + toString +() +
override
+
+
+

Returns a string representation of this object.

+
+ + + +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Marker-class.html b/doc/api/amap_map/Marker-class.html new file mode 100644 index 0000000..9883bce --- /dev/null +++ b/doc/api/amap_map/Marker-class.html @@ -0,0 +1,411 @@ + + + + + + + + Marker class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
Marker
+ +
+ +
+ + + +
+

Marker class

+ +
+

点覆盖物的类

+
+ +
+
+
Inheritance
+
+ + + + + +
+
+ +
+

Constructors

+ +
+
+ Marker({@required LatLng position, double alpha: 1.0, Offset anchor: const Offset(0.5, 0.5), bool clickable: true, bool draggable: false, BitmapDescriptor icon: BitmapDescriptor.defaultMarker, bool infoWindowEnable: true, InfoWindow infoWindow: InfoWindow.noText, double rotation: 0.0, bool visible: true, double zIndex: 0.0, ArgumentCallback<String> onTap, MarkerDragEndCallback onDragEnd}) +
+
+ +
+
+
+ +
+

Properties

+ +
+
+ alpha + double +
+
+ 透明度 +
final
+
+
+ anchor + Offset +
+
+ 覆盖物视图相对地图上的经纬度位置的锚点 +
final
+
+
+ clickable + bool +
+
+ 是否可点击,默认为true +
final
+
+
+ draggable + bool +
+
+ 是否可拖拽,默认为false +
final
+
+
+ hashCode + int +
+
+ The hash code for this object. [...] +
read-only, override
+
+
+ icon + BitmapDescriptor +
+
+ 覆盖物的图标 +
final
+
+
+ id + String +
+
+ +
read-only, inherited
+
+
+ infoWindow + InfoWindow +
+
+ 覆盖物上的气泡,当被点击时,如果infoWindowEnable为true,则会显示出来 +
final
+
+
+ infoWindowEnable + bool +
+
+ 是否显示气泡,如果为true,则点击Marker后,会显示该气泡InfoWindow +如果为false,则始终不会显示该气泡 +
final
+
+
+ onDragEnd + MarkerDragEndCallback +
+
+ Marker被拖拽结束的回调 +
final
+
+
+ onTap + → ArgumentCallback<String> +
+
+ 回调的参数是对应的id +
final
+
+
+ position + → LatLng +
+
+ 位置,不能为空 +
final
+
+
+ rotation + double +
+
+ 旋转角度 +
final
+
+
+ runtimeType + Type +
+
+ A representation of the runtime type of the object. +
read-only, inherited
+
+
+ visible + bool +
+
+ 是否可见 +
final
+
+
+ zIndex + double +
+
+ z轴的值,用于调整该覆盖物的相对绘制层级关系 +值越小,图层越靠下,iOS该值不支持动态修改,仅能在初始化时指定 +
final
+
+
+
+ +
+

Methods

+
+
+ clone() + Marker + +
+
+ +
override
+
+
+ copyWith({double alphaParam, Offset anchorParam, bool clickableParam, bool draggableParam, BitmapDescriptor iconParam, bool infoWindowEnableParam, InfoWindow infoWindowParam, LatLng positionParam, double rotationParam, bool visibleParam, VoidCallback onTapParam, ValueChanged<LatLng> onDragEndParam}) + Marker + +
+
+ copy的真正复制的参数 + +
+
+ noSuchMethod(Invocation invocation) + → dynamic + +
+
+ Invoked when a non-existent method or property is accessed. [...] +
inherited
+
+
+ setIdForCopy(String copyId) + → void + +
+
+ +
inherited
+
+
+ toMap() + Map<String, dynamic> + +
+
+ +
override
+
+
+ toString() + String + +
+
+ Returns a string representation of this object. +
override
+
+
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + +
+
+ The equality operator. [...] +
override
+
+
+
+ + + + +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Marker/Marker.html b/doc/api/amap_map/Marker/Marker.html new file mode 100644 index 0000000..7dbdab0 --- /dev/null +++ b/doc/api/amap_map/Marker/Marker.html @@ -0,0 +1,164 @@ + + + + + + + + Marker constructor - Marker class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
Marker
+ +
+ +
+ + + +
+

Marker constructor

+ +
+ + Marker(
  1. {@required LatLng position,
  2. +
  3. double alpha: 1.0,
  4. +
  5. Offset anchor: const Offset(0.5, 0.5),
  6. +
  7. bool clickable: true,
  8. +
  9. bool draggable: false,
  10. +
  11. BitmapDescriptor icon: BitmapDescriptor.defaultMarker,
  12. +
  13. bool infoWindowEnable: true,
  14. +
  15. InfoWindow infoWindow: InfoWindow.noText,
  16. +
  17. double rotation: 0.0,
  18. +
  19. bool visible: true,
  20. +
  21. double zIndex: 0.0,
  22. +
  23. ArgumentCallback<String> onTap,
  24. +
  25. MarkerDragEndCallback onDragEnd}
  26. +
) +
+ + +
+

Implementation

+
Marker({
+  @required this.position,
+  this.alpha = 1.0,
+  this.anchor = const Offset(0.5, 0.5),
+  this.clickable = true,
+  this.draggable = false,
+  this.icon = BitmapDescriptor.defaultMarker,
+  this.infoWindowEnable = true,
+  this.infoWindow = InfoWindow.noText,
+  this.rotation = 0.0,
+  this.visible = true,
+  this.zIndex = 0.0,
+  this.onTap,
+  this.onDragEnd,
+})  : assert(position != null),
+      assert(alpha == null || (0.0 <= alpha && alpha <= 1.0)),
+      super();
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Marker/alpha.html b/doc/api/amap_map/Marker/alpha.html new file mode 100644 index 0000000..e590a71 --- /dev/null +++ b/doc/api/amap_map/Marker/alpha.html @@ -0,0 +1,140 @@ + + + + + + + + alpha property - Marker class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
alpha
+ +
+ +
+ + + +
+

alpha property

+ +
+ double + alpha +
final
+
+
+

透明度

+
+
+

Implementation

+
final double alpha
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Marker/anchor.html b/doc/api/amap_map/Marker/anchor.html new file mode 100644 index 0000000..9528627 --- /dev/null +++ b/doc/api/amap_map/Marker/anchor.html @@ -0,0 +1,140 @@ + + + + + + + + anchor property - Marker class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
anchor
+ +
+ +
+ + + +
+

anchor property

+ +
+ Offset + anchor +
final
+
+
+

覆盖物视图相对地图上的经纬度位置的锚点

+
+
+

Implementation

+
final Offset anchor
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Marker/clickable.html b/doc/api/amap_map/Marker/clickable.html new file mode 100644 index 0000000..dae04a7 --- /dev/null +++ b/doc/api/amap_map/Marker/clickable.html @@ -0,0 +1,140 @@ + + + + + + + + clickable property - Marker class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
clickable
+ +
+ +
+ + + +
+

clickable property

+ +
+ bool + clickable +
final
+
+
+

是否可点击,默认为true

+
+
+

Implementation

+
final bool clickable
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Marker/clone.html b/doc/api/amap_map/Marker/clone.html new file mode 100644 index 0000000..8385355 --- /dev/null +++ b/doc/api/amap_map/Marker/clone.html @@ -0,0 +1,137 @@ + + + + + + + + clone method - Marker class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
clone
+ +
+ +
+ + + +
+

clone method

+ +
+ Marker + clone +() +
override
+
+ +
+

Implementation

+
Marker clone() => copyWith();
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Marker/copyWith.html b/doc/api/amap_map/Marker/copyWith.html new file mode 100644 index 0000000..a7be1ca --- /dev/null +++ b/doc/api/amap_map/Marker/copyWith.html @@ -0,0 +1,183 @@ + + + + + + + + copyWith method - Marker class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
copyWith
+ +
+ +
+ + + +
+

copyWith method

+ +
+ Marker + copyWith +(
  1. {double alphaParam,
  2. +
  3. Offset anchorParam,
  4. +
  5. bool clickableParam,
  6. +
  7. bool draggableParam,
  8. +
  9. BitmapDescriptor iconParam,
  10. +
  11. bool infoWindowEnableParam,
  12. +
  13. InfoWindow infoWindowParam,
  14. +
  15. LatLng positionParam,
  16. +
  17. double rotationParam,
  18. +
  19. bool visibleParam,
  20. +
  21. VoidCallback onTapParam,
  22. +
  23. ValueChanged<LatLng> onDragEndParam}
  24. +
) + +
+
+

copy的真正复制的参数

+
+ +
+

Implementation

+
Marker copyWith({
+  double alphaParam,
+  Offset anchorParam,
+  bool clickableParam,
+  bool draggableParam,
+  BitmapDescriptor iconParam,
+  bool infoWindowEnableParam,
+  InfoWindow infoWindowParam,
+  LatLng positionParam,
+  double rotationParam,
+  bool visibleParam,
+  VoidCallback onTapParam,
+  ValueChanged<LatLng> onDragEndParam,
+}) {
+  Marker copyMark = Marker(
+    alpha: alphaParam ?? alpha,
+    anchor: anchorParam ?? anchor,
+    clickable: clickableParam ?? clickable,
+    draggable: draggableParam ?? draggable,
+    icon: iconParam ?? icon,
+    infoWindowEnable: infoWindowEnableParam ?? infoWindowEnable,
+    infoWindow: infoWindowParam ?? infoWindow,
+    position: positionParam ?? position,
+    rotation: rotationParam ?? rotation,
+    visible: visibleParam ?? visible,
+    zIndex: zIndex,
+    onTap: onTapParam ?? onTap,
+    onDragEnd: onDragEndParam ?? onDragEnd,
+  );
+  copyMark.setIdForCopy(id);
+  return copyMark;
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Marker/draggable.html b/doc/api/amap_map/Marker/draggable.html new file mode 100644 index 0000000..6b18c6e --- /dev/null +++ b/doc/api/amap_map/Marker/draggable.html @@ -0,0 +1,140 @@ + + + + + + + + draggable property - Marker class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
draggable
+ +
+ +
+ + + +
+

draggable property

+ +
+ bool + draggable +
final
+
+
+

是否可拖拽,默认为false

+
+
+

Implementation

+
final bool draggable
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Marker/hashCode.html b/doc/api/amap_map/Marker/hashCode.html new file mode 100644 index 0000000..d0dddb5 --- /dev/null +++ b/doc/api/amap_map/Marker/hashCode.html @@ -0,0 +1,165 @@ + + + + + + + + hashCode property - Marker class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
hashCode
+ +
+ +
+ + + +
+

hashCode property

+ + +
+ +
+ int + hashCode +
override
+
+ +
+

The hash code for this object.

+

A hash code is a single integer which represents the state of the object +that affects operator == comparisons.

+

All objects have hash codes. +The default hash code represents only the identity of the object, +the same way as the default operator == implementation only considers objects +equal if they are identical (see identityHashCode).

+

If operator == is overridden to use the object state instead, +the hash code must also be changed to represent that state.

+

Hash codes must be the same for objects that are equal to each other +according to operator ==. +The hash code of an object should only change if the object changes +in a way that affects equality. +There are no further requirements for the hash codes. +They need not be consistent between executions of the same program +and there are no distribution guarantees.

+

Objects that are not equal are allowed to have the same hash code, +it is even technically allowed that all instances have the same hash code, +but if clashes happen too often, it may reduce the efficiency of hash-based +data structures like HashSet or HashMap.

+

If a subclass overrides hashCode, it should override the +operator == operator as well to maintain consistency.

+
+
+

Implementation

+
@override
+int get hashCode => super.hashCode;
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Marker/icon.html b/doc/api/amap_map/Marker/icon.html new file mode 100644 index 0000000..05d23e1 --- /dev/null +++ b/doc/api/amap_map/Marker/icon.html @@ -0,0 +1,140 @@ + + + + + + + + icon property - Marker class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
icon
+ +
+ +
+ + + +
+

icon property

+ +
+ BitmapDescriptor + icon +
final
+
+
+

覆盖物的图标

+
+
+

Implementation

+
final BitmapDescriptor icon
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Marker/infoWindow.html b/doc/api/amap_map/Marker/infoWindow.html new file mode 100644 index 0000000..f3260b0 --- /dev/null +++ b/doc/api/amap_map/Marker/infoWindow.html @@ -0,0 +1,140 @@ + + + + + + + + infoWindow property - Marker class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
infoWindow
+ +
+ +
+ + + +
+

infoWindow property

+ +
+ InfoWindow + infoWindow +
final
+
+
+

覆盖物上的气泡,当被点击时,如果infoWindowEnable为true,则会显示出来

+
+
+

Implementation

+
final InfoWindow infoWindow
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Marker/infoWindowEnable.html b/doc/api/amap_map/Marker/infoWindowEnable.html new file mode 100644 index 0000000..bc76bdf --- /dev/null +++ b/doc/api/amap_map/Marker/infoWindowEnable.html @@ -0,0 +1,141 @@ + + + + + + + + infoWindowEnable property - Marker class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
infoWindowEnable
+ +
+ +
+ + + +
+

infoWindowEnable property

+ +
+ bool + infoWindowEnable +
final
+
+
+

是否显示气泡,如果为true,则点击Marker后,会显示该气泡InfoWindow +如果为false,则始终不会显示该气泡

+
+
+

Implementation

+
final bool infoWindowEnable
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Marker/onDragEnd.html b/doc/api/amap_map/Marker/onDragEnd.html new file mode 100644 index 0000000..a047aef --- /dev/null +++ b/doc/api/amap_map/Marker/onDragEnd.html @@ -0,0 +1,140 @@ + + + + + + + + onDragEnd property - Marker class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
onDragEnd
+ +
+ +
+ + + +
+

onDragEnd property

+ +
+ MarkerDragEndCallback + onDragEnd +
final
+
+
+

Marker被拖拽结束的回调

+
+
+

Implementation

+
final MarkerDragEndCallback onDragEnd
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Marker/onTap.html b/doc/api/amap_map/Marker/onTap.html new file mode 100644 index 0000000..eae1a35 --- /dev/null +++ b/doc/api/amap_map/Marker/onTap.html @@ -0,0 +1,140 @@ + + + + + + + + onTap property - Marker class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
onTap
+ +
+ +
+ + + +
+

onTap property

+ +
+ ArgumentCallback<String> + onTap +
final
+
+
+

回调的参数是对应的id

+
+
+

Implementation

+
final ArgumentCallback onTap
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Marker/operator_equals.html b/doc/api/amap_map/Marker/operator_equals.html new file mode 100644 index 0000000..bd5ac1c --- /dev/null +++ b/doc/api/amap_map/Marker/operator_equals.html @@ -0,0 +1,190 @@ + + + + + + + + operator == method - Marker class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
operator ==
+ +
+ +
+ + + +
+

operator == method

+ +
+
+
    +
  1. @override
  2. +
+
+ bool + operator == +(
  1. Object other
  2. +
) +
override
+
+
+

The equality operator.

+

The default behavior for all Objects is to return true if and +only if this and other are the same object.

+

Override this method to specify a different equality relation on +a class. The overriding method must still be an equivalence relation. +That is, it must be:

+
    +
  • +

    Total: It must return a boolean for all arguments. It should never throw +or return null.

    +
  • +
  • +

    Reflexive: For all objects o, o == o must be true.

    +
  • +
  • +

    Symmetric: For all objects o1 and o2, o1 == o2 and o2 == o1 must +either both be true, or both be false.

    +
  • +
  • +

    Transitive: For all objects o1, o2, and o3, if o1 == o2 and +o2 == o3 are true, then o1 == o3 must be true.

    +
  • +
+

The method should also be consistent over time, +so whether two objects are equal should only change +if at least one of the objects was modified.

+

If a subclass overrides the equality operator it should override +the hashCode method as well to maintain consistency.

+
+ +
+

Implementation

+
@override
+bool operator ==(Object other) {
+  if (identical(this, other)) return true;
+  if (other.runtimeType != runtimeType) return false;
+  final Marker typedOther = other;
+  return id == typedOther.id &&
+      alpha == typedOther.alpha &&
+      anchor == typedOther.anchor &&
+      clickable == typedOther.clickable &&
+      draggable == typedOther.draggable &&
+      icon == typedOther.icon &&
+      infoWindowEnable == typedOther.infoWindowEnable &&
+      infoWindow == typedOther.infoWindow &&
+      position == typedOther.position &&
+      rotation == typedOther.rotation &&
+      visible == typedOther.visible &&
+      zIndex == typedOther.zIndex;
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Marker/position.html b/doc/api/amap_map/Marker/position.html new file mode 100644 index 0000000..8142a6e --- /dev/null +++ b/doc/api/amap_map/Marker/position.html @@ -0,0 +1,140 @@ + + + + + + + + position property - Marker class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
position
+ +
+ +
+ + + +
+

position property

+ +
+ LatLng + position +
final
+
+
+

位置,不能为空

+
+
+

Implementation

+
final LatLng position
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Marker/rotation.html b/doc/api/amap_map/Marker/rotation.html new file mode 100644 index 0000000..2879605 --- /dev/null +++ b/doc/api/amap_map/Marker/rotation.html @@ -0,0 +1,140 @@ + + + + + + + + rotation property - Marker class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
rotation
+ +
+ +
+ + + +
+

rotation property

+ +
+ double + rotation +
final
+
+
+

旋转角度

+
+
+

Implementation

+
final double rotation
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Marker/toMap.html b/doc/api/amap_map/Marker/toMap.html new file mode 100644 index 0000000..4ab8c8d --- /dev/null +++ b/doc/api/amap_map/Marker/toMap.html @@ -0,0 +1,165 @@ + + + + + + + + toMap method - Marker class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toMap
+ +
+ +
+ + + +
+

toMap method

+ +
+
+
    +
  1. @override
  2. +
+
+ Map<String, dynamic> + toMap +() +
override
+
+ +
+

Implementation

+
@override
+Map<String, dynamic> toMap() {
+  final Map<String, dynamic> json = <String, dynamic>{};
+
+  void addIfPresent(String fieldName, dynamic value) {
+    if (value != null) {
+      json[fieldName] = value;
+    }
+  }
+
+  addIfPresent('id', id);
+  addIfPresent('alpha', alpha);
+  addIfPresent('anchor', _offsetToJson(anchor));
+  addIfPresent('clickable', clickable);
+  addIfPresent('draggable', draggable);
+  addIfPresent('icon', icon?.toMap());
+  addIfPresent('infoWindowEnable', infoWindowEnable);
+  addIfPresent('infoWindow', infoWindow?._toMap());
+  addIfPresent('position', position?.toJson());
+  addIfPresent('rotation', rotation);
+  addIfPresent('visible', visible);
+  addIfPresent('zIndex', zIndex);
+  return json;
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Marker/toString.html b/doc/api/amap_map/Marker/toString.html new file mode 100644 index 0000000..0f45228 --- /dev/null +++ b/doc/api/amap_map/Marker/toString.html @@ -0,0 +1,151 @@ + + + + + + + + toString method - Marker class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toString
+ +
+ +
+ + + +
+

toString method

+ +
+
+
    +
  1. @override
  2. +
+
+ String + toString +() +
override
+
+
+

Returns a string representation of this object.

+
+ +
+

Implementation

+
@override
+String toString() {
+  return 'Marker{id: $id, alpha: $alpha, anchor: $anchor, '
+      'clickable: $clickable, draggable: $draggable,'
+      'icon: $icon, infoWindowEnable: $infoWindowEnable, infoWindow: $infoWindow, position: $position, rotation: $rotation, '
+      'visible: $visible, zIndex: $zIndex, onTap: $onTap}';
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Marker/visible.html b/doc/api/amap_map/Marker/visible.html new file mode 100644 index 0000000..c08c0fd --- /dev/null +++ b/doc/api/amap_map/Marker/visible.html @@ -0,0 +1,140 @@ + + + + + + + + visible property - Marker class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
visible
+ +
+ +
+ + + +
+

visible property

+ +
+ bool + visible +
final
+
+
+

是否可见

+
+
+

Implementation

+
final bool visible
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Marker/zIndex.html b/doc/api/amap_map/Marker/zIndex.html new file mode 100644 index 0000000..80d9eb4 --- /dev/null +++ b/doc/api/amap_map/Marker/zIndex.html @@ -0,0 +1,141 @@ + + + + + + + + zIndex property - Marker class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
zIndex
+ +
+ +
+ + + +
+

zIndex property

+ +
+ double + zIndex +
final
+
+
+

z轴的值,用于调整该覆盖物的相对绘制层级关系 +值越小,图层越靠下,iOS该值不支持动态修改,仅能在初始化时指定

+
+
+

Implementation

+
final double zIndex
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MarkerDragEndCallback.html b/doc/api/amap_map/MarkerDragEndCallback.html new file mode 100644 index 0000000..6f2638d --- /dev/null +++ b/doc/api/amap_map/MarkerDragEndCallback.html @@ -0,0 +1,139 @@ + + + + + + + + MarkerDragEndCallback typedef - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
MarkerDragEndCallback
+ +
+ +
+ + + +
+

MarkerDragEndCallback typedef

+ +
+ void + MarkerDragEndCallback +(
  1. String id,
  2. +
  3. LatLng endPosition
  4. +
) +
+ +
+

带有一个回调参数的回调类型

+
+
+

Implementation

+
typedef void MarkerDragEndCallback(String id, LatLng endPosition);
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MarkerUpdates-class.html b/doc/api/amap_map/MarkerUpdates-class.html new file mode 100644 index 0000000..4d90fb3 --- /dev/null +++ b/doc/api/amap_map/MarkerUpdates-class.html @@ -0,0 +1,265 @@ + + + + + + + + MarkerUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
MarkerUpdates
+ +
+ +
+ + + +
+

MarkerUpdates class

+ +
+

用以描述Marker的更新项

+
+ + +
+

Constructors

+ +
+
+ MarkerUpdates.from(Set<Marker> previous, Set<Marker> current) +
+
+ 根据之前的marker列表previous和当前的marker列表current创建MakerUpdates. +
+
+
+ +
+

Properties

+ +
+
+ hashCode + int +
+
+ The hash code for this object. [...] +
read-only, override
+
+
+ markerIdsToRemove + Set<String> +
+
+ 想要删除的marker的id集合 +
read / write
+
+
+ markersToAdd + Set<Marker> +
+
+ 想要添加的marker集合. +
read / write
+
+
+ markersToChange + Set<Marker> +
+
+ 想要更新的marker集合. +
read / write
+
+
+ runtimeType + Type +
+
+ A representation of the runtime type of the object. +
read-only, inherited
+
+
+
+ +
+

Methods

+
+
+ noSuchMethod(Invocation invocation) + → dynamic + +
+
+ Invoked when a non-existent method or property is accessed. [...] +
inherited
+
+
+ toMap() + Map<String, dynamic> + +
+
+ + +
+
+ toString() + String + +
+
+ Returns a string representation of this object. +
override
+
+
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + +
+
+ The equality operator. [...] +
override
+
+
+
+ + + + +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MarkerUpdates/MarkerUpdates.from.html b/doc/api/amap_map/MarkerUpdates/MarkerUpdates.from.html new file mode 100644 index 0000000..2f395b1 --- /dev/null +++ b/doc/api/amap_map/MarkerUpdates/MarkerUpdates.from.html @@ -0,0 +1,167 @@ + + + + + + + + MarkerUpdates.from constructor - MarkerUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
MarkerUpdates.from
+ +
+ +
+ + + +
+

MarkerUpdates.from constructor

+ +
+ + MarkerUpdates.from(
  1. Set<Marker> previous,
  2. +
  3. Set<Marker> current
  4. +
) +
+ +
+

根据之前的marker列表previous和当前的marker列表current创建MakerUpdates.

+
+ +
+

Implementation

+
MarkerUpdates.from(Set<Marker> previous, Set<Marker> current) {
+  if (previous == null) {
+    previous = Set<Marker>.identity();
+  }
+
+  if (current == null) {
+    current = Set<Marker>.identity();
+  }
+
+  final Map<String, Marker> previousMarkers = keyByMarkerId(previous);
+  final Map<String, Marker> currentMarkers = keyByMarkerId(current);
+
+  final Set<String> prevMarkerIds = previousMarkers.keys.toSet();
+  final Set<String> currentMarkerIds = currentMarkers.keys.toSet();
+
+  Marker idToCurrentMarker(String id) {
+    return currentMarkers[id];
+  }
+
+  final Set<String> _markerIdsToRemove =
+      prevMarkerIds.difference(currentMarkerIds);
+
+  final Set<Marker> _markersToAdd = currentMarkerIds
+      .difference(prevMarkerIds)
+      .map(idToCurrentMarker)
+      .toSet();
+
+  bool hasChanged(Marker current) {
+    final Marker previous = previousMarkers[current.id];
+    return current != previous;
+  }
+
+  final Set<Marker> _markersToChange = currentMarkerIds
+      .intersection(prevMarkerIds)
+      .map(idToCurrentMarker)
+      .where(hasChanged)
+      .toSet();
+
+  markersToAdd = _markersToAdd;
+  markerIdsToRemove = _markerIdsToRemove;
+  markersToChange = _markersToChange;
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MarkerUpdates/hashCode.html b/doc/api/amap_map/MarkerUpdates/hashCode.html new file mode 100644 index 0000000..34d3011 --- /dev/null +++ b/doc/api/amap_map/MarkerUpdates/hashCode.html @@ -0,0 +1,152 @@ + + + + + + + + hashCode property - MarkerUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
hashCode
+ +
+ +
+ + + +
+

hashCode property

+ + +
+ +
+ int + hashCode +
override
+
+ +
+

The hash code for this object.

+

A hash code is a single integer which represents the state of the object +that affects operator == comparisons.

+

All objects have hash codes. +The default hash code represents only the identity of the object, +the same way as the default operator == implementation only considers objects +equal if they are identical (see identityHashCode).

+

If operator == is overridden to use the object state instead, +the hash code must also be changed to represent that state.

+

Hash codes must be the same for objects that are equal to each other +according to operator ==. +The hash code of an object should only change if the object changes +in a way that affects equality. +There are no further requirements for the hash codes. +They need not be consistent between executions of the same program +and there are no distribution guarantees.

+

Objects that are not equal are allowed to have the same hash code, +it is even technically allowed that all instances have the same hash code, +but if clashes happen too often, it may reduce the efficiency of hash-based +data structures like HashSet or HashMap.

+

If a subclass overrides hashCode, it should override the +operator == operator as well to maintain consistency.

+
+
+

Implementation

+
@override
+int get hashCode =>
+    hashValues(markersToAdd, markerIdsToRemove, markersToChange);
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MarkerUpdates/markerIdsToRemove.html b/doc/api/amap_map/MarkerUpdates/markerIdsToRemove.html new file mode 100644 index 0000000..e3408c3 --- /dev/null +++ b/doc/api/amap_map/MarkerUpdates/markerIdsToRemove.html @@ -0,0 +1,126 @@ + + + + + + + + markerIdsToRemove property - MarkerUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
markerIdsToRemove
+ +
+ +
+ + + +
+

markerIdsToRemove property

+ +
+ Set<String> + markerIdsToRemove +
read / write
+
+
+

想要删除的marker的id集合

+
+
+

Implementation

+
Set markerIdsToRemove
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MarkerUpdates/markersToAdd.html b/doc/api/amap_map/MarkerUpdates/markersToAdd.html new file mode 100644 index 0000000..da305dd --- /dev/null +++ b/doc/api/amap_map/MarkerUpdates/markersToAdd.html @@ -0,0 +1,126 @@ + + + + + + + + markersToAdd property - MarkerUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
markersToAdd
+ +
+ +
+ + + +
+

markersToAdd property

+ +
+ Set<Marker> + markersToAdd +
read / write
+
+
+

想要添加的marker集合.

+
+
+

Implementation

+
Set markersToAdd
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MarkerUpdates/markersToChange.html b/doc/api/amap_map/MarkerUpdates/markersToChange.html new file mode 100644 index 0000000..62f7c07 --- /dev/null +++ b/doc/api/amap_map/MarkerUpdates/markersToChange.html @@ -0,0 +1,126 @@ + + + + + + + + markersToChange property - MarkerUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
markersToChange
+ +
+ +
+ + + +
+

markersToChange property

+ +
+ Set<Marker> + markersToChange +
read / write
+
+
+

想要更新的marker集合.

+
+
+

Implementation

+
Set markersToChange
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MarkerUpdates/operator_equals.html b/doc/api/amap_map/MarkerUpdates/operator_equals.html new file mode 100644 index 0000000..154b955 --- /dev/null +++ b/doc/api/amap_map/MarkerUpdates/operator_equals.html @@ -0,0 +1,167 @@ + + + + + + + + operator == method - MarkerUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
operator ==
+ +
+ +
+ + + +
+

operator == method

+ +
+
+
    +
  1. @override
  2. +
+
+ bool + operator == +(
  1. Object other
  2. +
) +
override
+
+
+

The equality operator.

+

The default behavior for all Objects is to return true if and +only if this and other are the same object.

+

Override this method to specify a different equality relation on +a class. The overriding method must still be an equivalence relation. +That is, it must be:

+
    +
  • +

    Total: It must return a boolean for all arguments. It should never throw +or return null.

    +
  • +
  • +

    Reflexive: For all objects o, o == o must be true.

    +
  • +
  • +

    Symmetric: For all objects o1 and o2, o1 == o2 and o2 == o1 must +either both be true, or both be false.

    +
  • +
  • +

    Transitive: For all objects o1, o2, and o3, if o1 == o2 and +o2 == o3 are true, then o1 == o3 must be true.

    +
  • +
+

The method should also be consistent over time, +so whether two objects are equal should only change +if at least one of the objects was modified.

+

If a subclass overrides the equality operator it should override +the hashCode method as well to maintain consistency.

+
+ +
+

Implementation

+
@override
+bool operator ==(Object other) {
+  if (identical(this, other)) return true;
+  if (other.runtimeType != runtimeType) return false;
+  final MarkerUpdates typedOther = other;
+  return setEquals(markersToAdd, typedOther.markersToAdd) &&
+      setEquals(markerIdsToRemove, typedOther.markerIdsToRemove) &&
+      setEquals(markersToChange, typedOther.markersToChange);
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MarkerUpdates/toMap.html b/doc/api/amap_map/MarkerUpdates/toMap.html new file mode 100644 index 0000000..55432a2 --- /dev/null +++ b/doc/api/amap_map/MarkerUpdates/toMap.html @@ -0,0 +1,137 @@ + + + + + + + + toMap method - MarkerUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toMap
+ +
+ +
+ + + +
+

toMap method

+ +
+ Map<String, dynamic> + toMap +() + +
+ +
+

Implementation

+
Map<String, dynamic> toMap() {
+  final Map<String, dynamic> updateMap = <String, dynamic>{};
+
+  void addIfNonNull(String fieldName, dynamic value) {
+    if (value != null) {
+      updateMap[fieldName] = value;
+    }
+  }
+
+  addIfNonNull('markersToAdd', serializeOverlaySet(markersToAdd));
+  addIfNonNull('markersToChange', serializeOverlaySet(markersToChange));
+  addIfNonNull('markerIdsToRemove', markerIdsToRemove.toList());
+
+  return updateMap;
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MarkerUpdates/toString.html b/doc/api/amap_map/MarkerUpdates/toString.html new file mode 100644 index 0000000..2b4328c --- /dev/null +++ b/doc/api/amap_map/MarkerUpdates/toString.html @@ -0,0 +1,136 @@ + + + + + + + + toString method - MarkerUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toString
+ +
+ +
+ + + +
+

toString method

+ +
+
+
    +
  1. @override
  2. +
+
+ String + toString +() +
override
+
+
+

Returns a string representation of this object.

+
+ +
+

Implementation

+
@override
+String toString() {
+  return '_MarkerUpdates{markersToAdd: $markersToAdd, '
+      'markerIdsToRemove: $markerIdsToRemove, '
+      'markersToChange: $markersToChange}';
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MinMaxZoomPreference-class.html b/doc/api/amap_map/MinMaxZoomPreference-class.html new file mode 100644 index 0000000..6645104 --- /dev/null +++ b/doc/api/amap_map/MinMaxZoomPreference-class.html @@ -0,0 +1,277 @@ + + + + + + + + MinMaxZoomPreference class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
MinMaxZoomPreference
+ +
+ +
+ + + +
+

MinMaxZoomPreference class

+ +
+

地图最大最小缩放级别的封装对象

+
+ + +
+

Constructors

+ +
+
+ MinMaxZoomPreference(double minZoom, double maxZoom) +
+
+ 为地图创建一个不可变的最大最小缩放范围 +当 minZoom > maxZoom时,会触发断言 +
const
+
+
+
+ +
+

Properties

+ +
+
+ hashCode + int +
+
+ The hash code for this object. [...] +
read-only, override
+
+
+ maxZoom + double +
+
+ 最大zoomLevel +
final
+
+
+ minZoom + double +
+
+ 最小zoomLevel +
final
+
+
+ runtimeType + Type +
+
+ A representation of the runtime type of the object. +
read-only, inherited
+
+
+
+ +
+

Methods

+
+
+ noSuchMethod(Invocation invocation) + → dynamic + +
+
+ Invoked when a non-existent method or property is accessed. [...] +
inherited
+
+
+ toJson() + → dynamic + +
+
+ JSON序列化. + +
+
+ toString() + String + +
+
+ Returns a string representation of this object. +
override
+
+
+
+ +
+

Operators

+
+
+ operator ==(dynamic other) + bool + +
+
+ The equality operator. [...] +
override
+
+
+
+ + + +
+

Constants

+ +
+
+ defaultPreference + → const MinMaxZoomPreference +
+
+ 高德地图默认zoomLevel的范围. + +
+ const MinMaxZoomPreference(3, 20) +
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MinMaxZoomPreference/MinMaxZoomPreference.html b/doc/api/amap_map/MinMaxZoomPreference/MinMaxZoomPreference.html new file mode 100644 index 0000000..16198a7 --- /dev/null +++ b/doc/api/amap_map/MinMaxZoomPreference/MinMaxZoomPreference.html @@ -0,0 +1,129 @@ + + + + + + + + MinMaxZoomPreference constructor - MinMaxZoomPreference class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
MinMaxZoomPreference
+ +
+ +
+ + + +
+

MinMaxZoomPreference constructor

+ +
+ const + MinMaxZoomPreference(
  1. double minZoom,
  2. +
  3. double maxZoom
  4. +
) +
+ +
+

为地图创建一个不可变的最大最小缩放范围 +当 minZoom > maxZoom时,会触发断言

+
+ +
+

Implementation

+
const MinMaxZoomPreference(this.minZoom, this.maxZoom)
+    : assert(minZoom == null || maxZoom == null || minZoom <= maxZoom);
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MinMaxZoomPreference/defaultPreference-constant.html b/doc/api/amap_map/MinMaxZoomPreference/defaultPreference-constant.html new file mode 100644 index 0000000..321555c --- /dev/null +++ b/doc/api/amap_map/MinMaxZoomPreference/defaultPreference-constant.html @@ -0,0 +1,128 @@ + + + + + + + + defaultPreference constant - MinMaxZoomPreference class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
defaultPreference
+ +
+ +
+ + + +
+

defaultPreference constant

+ +
+ MinMaxZoomPreference + const defaultPreference + +
+
+

高德地图默认zoomLevel的范围.

+
+
+

Implementation

+
static const MinMaxZoomPreference defaultPreference =
+    MinMaxZoomPreference(3, 20)
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MinMaxZoomPreference/hashCode.html b/doc/api/amap_map/MinMaxZoomPreference/hashCode.html new file mode 100644 index 0000000..62c7836 --- /dev/null +++ b/doc/api/amap_map/MinMaxZoomPreference/hashCode.html @@ -0,0 +1,152 @@ + + + + + + + + hashCode property - MinMaxZoomPreference class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
hashCode
+ +
+ +
+ + + +
+

hashCode property

+ + +
+ +
+ int + hashCode +
override
+
+ +
+

The hash code for this object.

+

A hash code is a single integer which represents the state of the object +that affects operator == comparisons.

+

All objects have hash codes. +The default hash code represents only the identity of the object, +the same way as the default operator == implementation only considers objects +equal if they are identical (see identityHashCode).

+

If operator == is overridden to use the object state instead, +the hash code must also be changed to represent that state.

+

Hash codes must be the same for objects that are equal to each other +according to operator ==. +The hash code of an object should only change if the object changes +in a way that affects equality. +There are no further requirements for the hash codes. +They need not be consistent between executions of the same program +and there are no distribution guarantees.

+

Objects that are not equal are allowed to have the same hash code, +it is even technically allowed that all instances have the same hash code, +but if clashes happen too often, it may reduce the efficiency of hash-based +data structures like HashSet or HashMap.

+

If a subclass overrides hashCode, it should override the +operator == operator as well to maintain consistency.

+
+
+

Implementation

+
@override
+int get hashCode => hashValues(minZoom, maxZoom);
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MinMaxZoomPreference/maxZoom.html b/doc/api/amap_map/MinMaxZoomPreference/maxZoom.html new file mode 100644 index 0000000..4753376 --- /dev/null +++ b/doc/api/amap_map/MinMaxZoomPreference/maxZoom.html @@ -0,0 +1,127 @@ + + + + + + + + maxZoom property - MinMaxZoomPreference class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
maxZoom
+ +
+ +
+ + + +
+

maxZoom property

+ +
+ double + maxZoom +
final
+
+
+

最大zoomLevel

+
+
+

Implementation

+
final double maxZoom
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MinMaxZoomPreference/minZoom.html b/doc/api/amap_map/MinMaxZoomPreference/minZoom.html new file mode 100644 index 0000000..151f8d1 --- /dev/null +++ b/doc/api/amap_map/MinMaxZoomPreference/minZoom.html @@ -0,0 +1,127 @@ + + + + + + + + minZoom property - MinMaxZoomPreference class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
minZoom
+ +
+ +
+ + + +
+

minZoom property

+ +
+ double + minZoom +
final
+
+
+

最小zoomLevel

+
+
+

Implementation

+
final double minZoom
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MinMaxZoomPreference/operator_equals.html b/doc/api/amap_map/MinMaxZoomPreference/operator_equals.html new file mode 100644 index 0000000..ed6c6d0 --- /dev/null +++ b/doc/api/amap_map/MinMaxZoomPreference/operator_equals.html @@ -0,0 +1,166 @@ + + + + + + + + operator == method - MinMaxZoomPreference class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
operator ==
+ +
+ +
+ + + +
+

operator == method

+ +
+
+
    +
  1. @override
  2. +
+
+ bool + operator == +(
  1. dynamic other
  2. +
) +
override
+
+
+

The equality operator.

+

The default behavior for all Objects is to return true if and +only if this and other are the same object.

+

Override this method to specify a different equality relation on +a class. The overriding method must still be an equivalence relation. +That is, it must be:

+
    +
  • +

    Total: It must return a boolean for all arguments. It should never throw +or return null.

    +
  • +
  • +

    Reflexive: For all objects o, o == o must be true.

    +
  • +
  • +

    Symmetric: For all objects o1 and o2, o1 == o2 and o2 == o1 must +either both be true, or both be false.

    +
  • +
  • +

    Transitive: For all objects o1, o2, and o3, if o1 == o2 and +o2 == o3 are true, then o1 == o3 must be true.

    +
  • +
+

The method should also be consistent over time, +so whether two objects are equal should only change +if at least one of the objects was modified.

+

If a subclass overrides the equality operator it should override +the hashCode method as well to maintain consistency.

+
+ +
+

Implementation

+
@override
+bool operator ==(dynamic other) {
+  if (identical(this, other)) return true;
+  if (runtimeType != other.runtimeType) return false;
+  final MinMaxZoomPreference typedOther = other;
+  return minZoom == typedOther.minZoom && maxZoom == typedOther.maxZoom;
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MinMaxZoomPreference/toJson.html b/doc/api/amap_map/MinMaxZoomPreference/toJson.html new file mode 100644 index 0000000..dc86ae0 --- /dev/null +++ b/doc/api/amap_map/MinMaxZoomPreference/toJson.html @@ -0,0 +1,127 @@ + + + + + + + + toJson method - MinMaxZoomPreference class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toJson
+ +
+ +
+ + + +
+

toJson method

+ +
+ dynamic + toJson +() + +
+
+

JSON序列化.

+
+ +
+

Implementation

+
dynamic toJson() => <dynamic>[minZoom, maxZoom];
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MinMaxZoomPreference/toString.html b/doc/api/amap_map/MinMaxZoomPreference/toString.html new file mode 100644 index 0000000..6326687 --- /dev/null +++ b/doc/api/amap_map/MinMaxZoomPreference/toString.html @@ -0,0 +1,135 @@ + + + + + + + + toString method - MinMaxZoomPreference class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toString
+ +
+ +
+ + + +
+

toString method

+ +
+
+
    +
  1. @override
  2. +
+
+ String + toString +() +
override
+
+
+

Returns a string representation of this object.

+
+ +
+

Implementation

+
@override
+String toString() {
+  return 'MinMaxZoomPreference(minZoom: $minZoom, maxZoom: $maxZoom)';
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MyLocationStyleOptions-class.html b/doc/api/amap_map/MyLocationStyleOptions-class.html new file mode 100644 index 0000000..c88c790 --- /dev/null +++ b/doc/api/amap_map/MyLocationStyleOptions-class.html @@ -0,0 +1,299 @@ + + + + + + + + MyLocationStyleOptions class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
MyLocationStyleOptions
+ +
+ +
+ + + +
+

MyLocationStyleOptions class

+ +
+

定位小蓝点配置项

+
+ + +
+

Constructors

+ +
+
+ MyLocationStyleOptions(bool enabled, {Color circleFillColor, Color circleStrokeColor, double circleStrokeWidth, BitmapDescriptor icon}) +
+
+ +
+
+
+ +
+

Properties

+ +
+
+ circleFillColor + Color +
+
+ 精度圈填充色 +
read / write
+
+
+ circleStrokeColor + Color +
+
+ 精度圈边框色 +
read / write
+
+
+ circleStrokeWidth + double +
+
+ 精度圈边框宽度 +
read / write
+
+
+ enabled + bool +
+
+ 是否显示定位小蓝点 +
read / write
+
+
+ hashCode + int +
+
+ The hash code for this object. [...] +
read-only, override
+
+
+ icon + BitmapDescriptor +
+
+ 小蓝点图标 +
read / write
+
+
+ runtimeType + Type +
+
+ A representation of the runtime type of the object. +
read-only, inherited
+
+
+
+ +
+

Methods

+
+
+ noSuchMethod(Invocation invocation) + → dynamic + +
+
+ Invoked when a non-existent method or property is accessed. [...] +
inherited
+
+
+ toMap() + → dynamic + +
+
+ + +
+
+ toString() + String + +
+
+ Returns a string representation of this object. +
override
+
+
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + +
+
+ The equality operator. [...] +
override
+
+
+
+ + +
+

Static Methods

+
+
+ fromMap(dynamic json) + MyLocationStyleOptions + +
+
+ + +
+
+
+ + +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MyLocationStyleOptions/MyLocationStyleOptions.html b/doc/api/amap_map/MyLocationStyleOptions/MyLocationStyleOptions.html new file mode 100644 index 0000000..2b5c900 --- /dev/null +++ b/doc/api/amap_map/MyLocationStyleOptions/MyLocationStyleOptions.html @@ -0,0 +1,136 @@ + + + + + + + + MyLocationStyleOptions constructor - MyLocationStyleOptions class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
MyLocationStyleOptions
+ +
+ +
+ + + +
+

MyLocationStyleOptions constructor

+ +
+ + MyLocationStyleOptions(
  1. bool enabled,
  2. +
  3. {Color circleFillColor,
  4. +
  5. Color circleStrokeColor,
  6. +
  7. double circleStrokeWidth,
  8. +
  9. BitmapDescriptor icon}
  10. +
) +
+ + +
+

Implementation

+
MyLocationStyleOptions(
+  this.enabled, {
+  this.circleFillColor,
+  this.circleStrokeColor,
+  this.circleStrokeWidth,
+  this.icon,
+});
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MyLocationStyleOptions/circleFillColor.html b/doc/api/amap_map/MyLocationStyleOptions/circleFillColor.html new file mode 100644 index 0000000..a338843 --- /dev/null +++ b/doc/api/amap_map/MyLocationStyleOptions/circleFillColor.html @@ -0,0 +1,130 @@ + + + + + + + + circleFillColor property - MyLocationStyleOptions class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
circleFillColor
+ +
+ +
+ + + +
+

circleFillColor property

+ +
+ Color + circleFillColor +
read / write
+
+
+

精度圈填充色

+
+
+

Implementation

+
Color circleFillColor
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MyLocationStyleOptions/circleStrokeColor.html b/doc/api/amap_map/MyLocationStyleOptions/circleStrokeColor.html new file mode 100644 index 0000000..3709cf1 --- /dev/null +++ b/doc/api/amap_map/MyLocationStyleOptions/circleStrokeColor.html @@ -0,0 +1,130 @@ + + + + + + + + circleStrokeColor property - MyLocationStyleOptions class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
circleStrokeColor
+ +
+ +
+ + + +
+

circleStrokeColor property

+ +
+ Color + circleStrokeColor +
read / write
+
+
+

精度圈边框色

+
+
+

Implementation

+
Color circleStrokeColor
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MyLocationStyleOptions/circleStrokeWidth.html b/doc/api/amap_map/MyLocationStyleOptions/circleStrokeWidth.html new file mode 100644 index 0000000..e1ef642 --- /dev/null +++ b/doc/api/amap_map/MyLocationStyleOptions/circleStrokeWidth.html @@ -0,0 +1,130 @@ + + + + + + + + circleStrokeWidth property - MyLocationStyleOptions class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
circleStrokeWidth
+ +
+ +
+ + + +
+

circleStrokeWidth property

+ +
+ double + circleStrokeWidth +
read / write
+
+
+

精度圈边框宽度

+
+
+

Implementation

+
double circleStrokeWidth
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MyLocationStyleOptions/enabled.html b/doc/api/amap_map/MyLocationStyleOptions/enabled.html new file mode 100644 index 0000000..31b3aec --- /dev/null +++ b/doc/api/amap_map/MyLocationStyleOptions/enabled.html @@ -0,0 +1,130 @@ + + + + + + + + enabled property - MyLocationStyleOptions class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
enabled
+ +
+ +
+ + + +
+

enabled property

+ +
+ bool + enabled +
read / write
+
+
+

是否显示定位小蓝点

+
+
+

Implementation

+
bool enabled
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MyLocationStyleOptions/fromMap.html b/doc/api/amap_map/MyLocationStyleOptions/fromMap.html new file mode 100644 index 0000000..f1f1f7a --- /dev/null +++ b/doc/api/amap_map/MyLocationStyleOptions/fromMap.html @@ -0,0 +1,139 @@ + + + + + + + + fromMap method - MyLocationStyleOptions class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
fromMap
+ +
+ +
+ + + +
+

fromMap method

+ +
+ MyLocationStyleOptions + fromMap +(
  1. dynamic json
  2. +
) + +
+ +
+

Implementation

+
static MyLocationStyleOptions fromMap(dynamic json) {
+  if (null == json) {
+    return null;
+  }
+  return MyLocationStyleOptions(
+    json['enabled'] ?? false,
+    circleFillColor: json['circleFillColor'] ?? null,
+    circleStrokeColor: json['circleStrokeColor'] ?? null,
+    circleStrokeWidth: json['circleStrokeWidth'] ?? null,
+    icon: json['icon'] ?? null,
+  );
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MyLocationStyleOptions/hashCode.html b/doc/api/amap_map/MyLocationStyleOptions/hashCode.html new file mode 100644 index 0000000..0fec067 --- /dev/null +++ b/doc/api/amap_map/MyLocationStyleOptions/hashCode.html @@ -0,0 +1,156 @@ + + + + + + + + hashCode property - MyLocationStyleOptions class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
hashCode
+ +
+ +
+ + + +
+

hashCode property

+ + +
+ +
+ int + hashCode +
override
+
+ +
+

The hash code for this object.

+

A hash code is a single integer which represents the state of the object +that affects operator == comparisons.

+

All objects have hash codes. +The default hash code represents only the identity of the object, +the same way as the default operator == implementation only considers objects +equal if they are identical (see identityHashCode).

+

If operator == is overridden to use the object state instead, +the hash code must also be changed to represent that state.

+

Hash codes must be the same for objects that are equal to each other +according to operator ==. +The hash code of an object should only change if the object changes +in a way that affects equality. +There are no further requirements for the hash codes. +They need not be consistent between executions of the same program +and there are no distribution guarantees.

+

Objects that are not equal are allowed to have the same hash code, +it is even technically allowed that all instances have the same hash code, +but if clashes happen too often, it may reduce the efficiency of hash-based +data structures like HashSet or HashMap.

+

If a subclass overrides hashCode, it should override the +operator == operator as well to maintain consistency.

+
+
+

Implementation

+
@override
+int get hashCode =>
+    hashValues(enabled, circleFillColor, circleStrokeColor, icon);
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MyLocationStyleOptions/icon.html b/doc/api/amap_map/MyLocationStyleOptions/icon.html new file mode 100644 index 0000000..f008792 --- /dev/null +++ b/doc/api/amap_map/MyLocationStyleOptions/icon.html @@ -0,0 +1,130 @@ + + + + + + + + icon property - MyLocationStyleOptions class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
icon
+ +
+ +
+ + + +
+

icon property

+ +
+ BitmapDescriptor + icon +
read / write
+
+
+

小蓝点图标

+
+
+

Implementation

+
BitmapDescriptor icon
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MyLocationStyleOptions/operator_equals.html b/doc/api/amap_map/MyLocationStyleOptions/operator_equals.html new file mode 100644 index 0000000..8462452 --- /dev/null +++ b/doc/api/amap_map/MyLocationStyleOptions/operator_equals.html @@ -0,0 +1,172 @@ + + + + + + + + operator == method - MyLocationStyleOptions class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
operator ==
+ +
+ +
+ + + +
+

operator == method

+ +
+
+
    +
  1. @override
  2. +
+
+ bool + operator == +(
  1. Object other
  2. +
) +
override
+
+
+

The equality operator.

+

The default behavior for all Objects is to return true if and +only if this and other are the same object.

+

Override this method to specify a different equality relation on +a class. The overriding method must still be an equivalence relation. +That is, it must be:

+
    +
  • +

    Total: It must return a boolean for all arguments. It should never throw +or return null.

    +
  • +
  • +

    Reflexive: For all objects o, o == o must be true.

    +
  • +
  • +

    Symmetric: For all objects o1 and o2, o1 == o2 and o2 == o1 must +either both be true, or both be false.

    +
  • +
  • +

    Transitive: For all objects o1, o2, and o3, if o1 == o2 and +o2 == o3 are true, then o1 == o3 must be true.

    +
  • +
+

The method should also be consistent over time, +so whether two objects are equal should only change +if at least one of the objects was modified.

+

If a subclass overrides the equality operator it should override +the hashCode method as well to maintain consistency.

+
+ +
+

Implementation

+
@override
+bool operator ==(Object other) {
+  if (identical(this, other)) return true;
+  if (runtimeType != other.runtimeType) return false;
+  final MyLocationStyleOptions typedOther = other;
+  return enabled == typedOther.enabled &&
+      circleFillColor == typedOther.circleFillColor &&
+      circleStrokeColor == typedOther.circleStrokeColor &&
+      icon == typedOther.icon;
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MyLocationStyleOptions/toMap.html b/doc/api/amap_map/MyLocationStyleOptions/toMap.html new file mode 100644 index 0000000..086d48f --- /dev/null +++ b/doc/api/amap_map/MyLocationStyleOptions/toMap.html @@ -0,0 +1,142 @@ + + + + + + + + toMap method - MyLocationStyleOptions class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toMap
+ +
+ +
+ + + +
+

toMap method

+ +
+ dynamic + toMap +() + +
+ +
+

Implementation

+
dynamic toMap() {
+  final Map<String, dynamic> json = <String, dynamic>{};
+
+  void addIfPresent(String fieldName, dynamic value) {
+    if (value != null) {
+      json[fieldName] = value;
+    }
+  }
+
+  addIfPresent('enabled', enabled);
+  addIfPresent('circleFillColor', circleFillColor?.value);
+  addIfPresent('circleStrokeColor', circleStrokeColor?.value);
+  addIfPresent('circleStrokeWidth', circleStrokeWidth);
+  addIfPresent('icon', icon?.toMap());
+  return json;
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/MyLocationStyleOptions/toString.html b/doc/api/amap_map/MyLocationStyleOptions/toString.html new file mode 100644 index 0000000..deded14 --- /dev/null +++ b/doc/api/amap_map/MyLocationStyleOptions/toString.html @@ -0,0 +1,142 @@ + + + + + + + + toString method - MyLocationStyleOptions class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toString
+ +
+ +
+ + + +
+

toString method

+ +
+
+
    +
  1. @override
  2. +
+
+ String + toString +() +
override
+
+
+

Returns a string representation of this object.

+
+ +
+

Implementation

+
@override
+String toString() {
+  return 'MyLocationOptionsStyle{'
+      'enabled: $enabled,'
+      'circleFillColor: $circleFillColor,'
+      'circleStrokeColor: $circleStrokeColor,'
+      'icon: $icon, }';
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polygon-class.html b/doc/api/amap_map/Polygon-class.html new file mode 100644 index 0000000..8e73c4b --- /dev/null +++ b/doc/api/amap_map/Polygon-class.html @@ -0,0 +1,346 @@ + + + + + + + + Polygon class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
Polygon
+ +
+ +
+ + + +
+

Polygon class

+ +
+

线相关的覆盖物类,内部的属性,描述了覆盖物的纹理、颜色、线宽等特征

+
+ +
+
+
Inheritance
+
+ + + + + +
+
+ +
+

Constructors

+ +
+
+ Polygon({@required List<LatLng> points, double strokeWidth: 10, Color strokeColor, Color fillColor, bool visible: true, JoinType joinType: JoinType.bevel}) +
+
+ 默认构造函数 +
+
+
+ +
+

Properties

+ +
+
+ fillColor + Color +
+
+ 填充颜色 +
final
+
+
+ hashCode + int +
+
+ The hash code for this object. [...] +
read-only, override
+
+
+ id + String +
+
+ +
read-only, inherited
+
+
+ joinType + JoinType +
+
+ 连接点类型,该参数不支持copy时修改,仅能在初始化时设置一次 +
final
+
+
+ points + List<LatLng> +
+
+ 覆盖物的坐标点数组,不能为空 +
final
+
+
+ runtimeType + Type +
+
+ A representation of the runtime type of the object. +
read-only, inherited
+
+
+ strokeColor + Color +
+
+ 边框颜色 +
final
+
+
+ strokeWidth + double +
+
+ 边框宽度,单位为逻辑像素,同Android中的dp,iOS中的point +
final
+
+
+ visible + bool +
+
+ 是否可见 +
final
+
+
+
+ +
+

Methods

+
+
+ clone() + Polygon + +
+
+ +
override
+
+
+ copyWith({List<LatLng> pointsParam, double strokeWidthParam, Color strokeColorParam, Color fillColorParam, bool visibleParam}) + Polygon + +
+
+ 实际copy函数 + +
+
+ noSuchMethod(Invocation invocation) + → dynamic + +
+
+ Invoked when a non-existent method or property is accessed. [...] +
inherited
+
+
+ setIdForCopy(String copyId) + → void + +
+
+ +
inherited
+
+
+ toMap() + Map<String, dynamic> + +
+
+ 转换成可以序列化的map +
override
+
+
+ toString() + String + +
+
+ Returns a string representation of this object. +
inherited
+
+
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + +
+
+ The equality operator. [...] +
override
+
+
+
+ + + + +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polygon/Polygon.html b/doc/api/amap_map/Polygon/Polygon.html new file mode 100644 index 0000000..2168b44 --- /dev/null +++ b/doc/api/amap_map/Polygon/Polygon.html @@ -0,0 +1,145 @@ + + + + + + + + Polygon constructor - Polygon class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
Polygon
+ +
+ +
+ + + +
+

Polygon constructor

+ +
+ + Polygon(
  1. {@required List<LatLng> points,
  2. +
  3. double strokeWidth: 10,
  4. +
  5. Color strokeColor,
  6. +
  7. Color fillColor,
  8. +
  9. bool visible: true,
  10. +
  11. JoinType joinType: JoinType.bevel}
  12. +
) +
+ +
+

默认构造函数

+
+ +
+

Implementation

+
Polygon(
+    {@required this.points,
+    this.strokeWidth = 10,
+    this.strokeColor,
+    this.fillColor,
+    this.visible = true,
+    this.joinType = JoinType.bevel})
+    : assert(points != null && points.length > 0),
+      super();
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polygon/clone.html b/doc/api/amap_map/Polygon/clone.html new file mode 100644 index 0000000..31a5b9c --- /dev/null +++ b/doc/api/amap_map/Polygon/clone.html @@ -0,0 +1,130 @@ + + + + + + + + clone method - Polygon class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
clone
+ +
+ +
+ + + +
+

clone method

+ +
+ Polygon + clone +() +
override
+
+ +
+

Implementation

+
Polygon clone() => copyWith();
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polygon/copyWith.html b/doc/api/amap_map/Polygon/copyWith.html new file mode 100644 index 0000000..db10ef3 --- /dev/null +++ b/doc/api/amap_map/Polygon/copyWith.html @@ -0,0 +1,155 @@ + + + + + + + + copyWith method - Polygon class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
copyWith
+ +
+ +
+ + + +
+

copyWith method

+ +
+ Polygon + copyWith +(
  1. {List<LatLng> pointsParam,
  2. +
  3. double strokeWidthParam,
  4. +
  5. Color strokeColorParam,
  6. +
  7. Color fillColorParam,
  8. +
  9. bool visibleParam}
  10. +
) + +
+
+

实际copy函数

+
+ +
+

Implementation

+
Polygon copyWith({
+  List<LatLng> pointsParam,
+  double strokeWidthParam,
+  Color strokeColorParam,
+  Color fillColorParam,
+  bool visibleParam,
+}) {
+  Polygon copyPolyline = Polygon(
+    points: pointsParam ?? points,
+    strokeWidth: strokeWidthParam ?? strokeWidth,
+    strokeColor: strokeColorParam ?? strokeColor,
+    fillColor: fillColorParam ?? fillColor,
+    visible: visibleParam ?? visible,
+    joinType: joinType,
+  );
+  copyPolyline.setIdForCopy(id);
+  return copyPolyline;
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polygon/fillColor.html b/doc/api/amap_map/Polygon/fillColor.html new file mode 100644 index 0000000..2b66abc --- /dev/null +++ b/doc/api/amap_map/Polygon/fillColor.html @@ -0,0 +1,133 @@ + + + + + + + + fillColor property - Polygon class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
fillColor
+ +
+ +
+ + + +
+

fillColor property

+ +
+ Color + fillColor +
final
+
+
+

填充颜色

+
+
+

Implementation

+
final Color fillColor
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polygon/hashCode.html b/doc/api/amap_map/Polygon/hashCode.html new file mode 100644 index 0000000..c387fdd --- /dev/null +++ b/doc/api/amap_map/Polygon/hashCode.html @@ -0,0 +1,158 @@ + + + + + + + + hashCode property - Polygon class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
hashCode
+ +
+ +
+ + + +
+

hashCode property

+ + +
+ +
+ int + hashCode +
override
+
+ +
+

The hash code for this object.

+

A hash code is a single integer which represents the state of the object +that affects operator == comparisons.

+

All objects have hash codes. +The default hash code represents only the identity of the object, +the same way as the default operator == implementation only considers objects +equal if they are identical (see identityHashCode).

+

If operator == is overridden to use the object state instead, +the hash code must also be changed to represent that state.

+

Hash codes must be the same for objects that are equal to each other +according to operator ==. +The hash code of an object should only change if the object changes +in a way that affects equality. +There are no further requirements for the hash codes. +They need not be consistent between executions of the same program +and there are no distribution guarantees.

+

Objects that are not equal are allowed to have the same hash code, +it is even technically allowed that all instances have the same hash code, +but if clashes happen too often, it may reduce the efficiency of hash-based +data structures like HashSet or HashMap.

+

If a subclass overrides hashCode, it should override the +operator == operator as well to maintain consistency.

+
+
+

Implementation

+
@override
+int get hashCode => super.hashCode;
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polygon/joinType.html b/doc/api/amap_map/Polygon/joinType.html new file mode 100644 index 0000000..eca53b2 --- /dev/null +++ b/doc/api/amap_map/Polygon/joinType.html @@ -0,0 +1,133 @@ + + + + + + + + joinType property - Polygon class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
joinType
+ +
+ +
+ + + +
+

joinType property

+ +
+ JoinType + joinType +
final
+
+
+

连接点类型,该参数不支持copy时修改,仅能在初始化时设置一次

+
+
+

Implementation

+
final JoinType joinType
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polygon/operator_equals.html b/doc/api/amap_map/Polygon/operator_equals.html new file mode 100644 index 0000000..029dcd8 --- /dev/null +++ b/doc/api/amap_map/Polygon/operator_equals.html @@ -0,0 +1,178 @@ + + + + + + + + operator == method - Polygon class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
operator ==
+ +
+ +
+ + + +
+

operator == method

+ +
+
+
    +
  1. @override
  2. +
+
+ bool + operator == +(
  1. Object other
  2. +
) +
override
+
+
+

The equality operator.

+

The default behavior for all Objects is to return true if and +only if this and other are the same object.

+

Override this method to specify a different equality relation on +a class. The overriding method must still be an equivalence relation. +That is, it must be:

+
    +
  • +

    Total: It must return a boolean for all arguments. It should never throw +or return null.

    +
  • +
  • +

    Reflexive: For all objects o, o == o must be true.

    +
  • +
  • +

    Symmetric: For all objects o1 and o2, o1 == o2 and o2 == o1 must +either both be true, or both be false.

    +
  • +
  • +

    Transitive: For all objects o1, o2, and o3, if o1 == o2 and +o2 == o3 are true, then o1 == o3 must be true.

    +
  • +
+

The method should also be consistent over time, +so whether two objects are equal should only change +if at least one of the objects was modified.

+

If a subclass overrides the equality operator it should override +the hashCode method as well to maintain consistency.

+
+ +
+

Implementation

+
@override
+bool operator ==(Object other) {
+  if (identical(this, other)) return true;
+  if (other.runtimeType != runtimeType) return false;
+  final Polygon typedOther = other;
+  return id == typedOther.id &&
+      listEquals(points, typedOther.points) &&
+      strokeWidth == typedOther.strokeWidth &&
+      strokeColor == typedOther.strokeColor &&
+      fillColor == typedOther.fillColor &&
+      visible == typedOther.visible &&
+      joinType == typedOther.joinType;
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polygon/points.html b/doc/api/amap_map/Polygon/points.html new file mode 100644 index 0000000..b6d361a --- /dev/null +++ b/doc/api/amap_map/Polygon/points.html @@ -0,0 +1,133 @@ + + + + + + + + points property - Polygon class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
points
+ +
+ +
+ + + +
+

points property

+ +
+ List<LatLng> + points +
final
+
+
+

覆盖物的坐标点数组,不能为空

+
+
+

Implementation

+
final List points
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polygon/strokeColor.html b/doc/api/amap_map/Polygon/strokeColor.html new file mode 100644 index 0000000..43a6e61 --- /dev/null +++ b/doc/api/amap_map/Polygon/strokeColor.html @@ -0,0 +1,133 @@ + + + + + + + + strokeColor property - Polygon class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
strokeColor
+ +
+ +
+ + + +
+

strokeColor property

+ +
+ Color + strokeColor +
final
+
+
+

边框颜色

+
+
+

Implementation

+
final Color strokeColor
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polygon/strokeWidth.html b/doc/api/amap_map/Polygon/strokeWidth.html new file mode 100644 index 0000000..66b8796 --- /dev/null +++ b/doc/api/amap_map/Polygon/strokeWidth.html @@ -0,0 +1,133 @@ + + + + + + + + strokeWidth property - Polygon class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
strokeWidth
+ +
+ +
+ + + +
+

strokeWidth property

+ +
+ double + strokeWidth +
final
+
+
+

边框宽度,单位为逻辑像素,同Android中的dp,iOS中的point

+
+
+

Implementation

+
final double strokeWidth
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polygon/toMap.html b/doc/api/amap_map/Polygon/toMap.html new file mode 100644 index 0000000..e5c38e5 --- /dev/null +++ b/doc/api/amap_map/Polygon/toMap.html @@ -0,0 +1,158 @@ + + + + + + + + toMap method - Polygon class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toMap
+ +
+ +
+ + + +
+

toMap method

+ +
+
+
    +
  1. @override
  2. +
+
+ Map<String, dynamic> + toMap +() +
override
+
+
+

转换成可以序列化的map

+
+ +
+

Implementation

+
@override
+Map<String, dynamic> toMap() {
+  final Map<String, dynamic> json = <String, dynamic>{};
+
+  void addIfPresent(String fieldName, dynamic value) {
+    if (value != null) {
+      json[fieldName] = value;
+    }
+  }
+
+  addIfPresent('id', id);
+  if (points != null) {
+    json['points'] = _pointsToJson();
+  }
+  addIfPresent('strokeWidth', strokeWidth);
+  addIfPresent('strokeColor', strokeColor.value);
+  addIfPresent('fillColor', fillColor.value);
+  addIfPresent('visible', visible);
+  addIfPresent('joinType', joinType.index);
+  return json;
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polygon/visible.html b/doc/api/amap_map/Polygon/visible.html new file mode 100644 index 0000000..19ff725 --- /dev/null +++ b/doc/api/amap_map/Polygon/visible.html @@ -0,0 +1,133 @@ + + + + + + + + visible property - Polygon class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
visible
+ +
+ +
+ + + +
+

visible property

+ +
+ bool + visible +
final
+
+
+

是否可见

+
+
+

Implementation

+
final bool visible
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/PolygonUpdates-class.html b/doc/api/amap_map/PolygonUpdates-class.html new file mode 100644 index 0000000..20068dd --- /dev/null +++ b/doc/api/amap_map/PolygonUpdates-class.html @@ -0,0 +1,265 @@ + + + + + + + + PolygonUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
PolygonUpdates
+ +
+ +
+ + + +
+

PolygonUpdates class

+ +
+

该类主要用以描述Polygon的增删改等更新操作

+
+ + +
+

Constructors

+ +
+
+ PolygonUpdates.from(Set<Polygon> previous, Set<Polygon> current) +
+
+ 通过Polygon的前后更新集合构造一个PolygonUpdates +
+
+
+ +
+

Properties

+ +
+
+ hashCode + int +
+
+ The hash code for this object. [...] +
read-only, override
+
+
+ polygonIdsToRemove + Set<String> +
+
+ 想要删除的polygon的id集合 +
read / write
+
+
+ polygonsToAdd + Set<Polygon> +
+
+ 想要添加的polygon对象集合. +
read / write
+
+
+ polygonsToChange + Set<Polygon> +
+
+ 想要更新的polygon对象集合 +
read / write
+
+
+ runtimeType + Type +
+
+ A representation of the runtime type of the object. +
read-only, inherited
+
+
+
+ +
+

Methods

+
+
+ noSuchMethod(Invocation invocation) + → dynamic + +
+
+ Invoked when a non-existent method or property is accessed. [...] +
inherited
+
+
+ toMap() + Map<String, dynamic> + +
+
+ 转换成可以序列化的map + +
+
+ toString() + String + +
+
+ Returns a string representation of this object. +
override
+
+
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + +
+
+ The equality operator. [...] +
override
+
+
+
+ + + + +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/PolygonUpdates/PolygonUpdates.from.html b/doc/api/amap_map/PolygonUpdates/PolygonUpdates.from.html new file mode 100644 index 0000000..4951897 --- /dev/null +++ b/doc/api/amap_map/PolygonUpdates/PolygonUpdates.from.html @@ -0,0 +1,167 @@ + + + + + + + + PolygonUpdates.from constructor - PolygonUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
PolygonUpdates.from
+ +
+ +
+ + + +
+

PolygonUpdates.from constructor

+ +
+ + PolygonUpdates.from(
  1. Set<Polygon> previous,
  2. +
  3. Set<Polygon> current
  4. +
) +
+ +
+

通过Polygon的前后更新集合构造一个PolygonUpdates

+
+ +
+

Implementation

+
PolygonUpdates.from(Set<Polygon> previous, Set<Polygon> current) {
+  if (previous == null) {
+    previous = Set<Polygon>.identity();
+  }
+
+  if (current == null) {
+    current = Set<Polygon>.identity();
+  }
+
+  final Map<String, Polygon> previousPolygons = keyByPolygonId(previous);
+  final Map<String, Polygon> currentPolygons = keyByPolygonId(current);
+
+  final Set<String> prevPolygonIds = previousPolygons.keys.toSet();
+  final Set<String> currentPolygonIds = currentPolygons.keys.toSet();
+
+  Polygon idToCurrentPolygon(String id) {
+    return currentPolygons[id];
+  }
+
+  final Set<String> _polygonIdsToRemove =
+      prevPolygonIds.difference(currentPolygonIds);
+
+  final Set<Polygon> _polygonsToAdd = currentPolygonIds
+      .difference(prevPolygonIds)
+      .map(idToCurrentPolygon)
+      .toSet();
+
+  bool hasChanged(Polygon current) {
+    final Polygon previous = previousPolygons[current.id];
+    return current != previous;
+  }
+
+  final Set<Polygon> _polygonsToChange = currentPolygonIds
+      .intersection(prevPolygonIds)
+      .map(idToCurrentPolygon)
+      .where(hasChanged)
+      .toSet();
+
+  polygonsToAdd = _polygonsToAdd;
+  polygonIdsToRemove = _polygonIdsToRemove;
+  polygonsToChange = _polygonsToChange;
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/PolygonUpdates/hashCode.html b/doc/api/amap_map/PolygonUpdates/hashCode.html new file mode 100644 index 0000000..8641714 --- /dev/null +++ b/doc/api/amap_map/PolygonUpdates/hashCode.html @@ -0,0 +1,152 @@ + + + + + + + + hashCode property - PolygonUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
hashCode
+ +
+ +
+ + + +
+

hashCode property

+ + +
+ +
+ int + hashCode +
override
+
+ +
+

The hash code for this object.

+

A hash code is a single integer which represents the state of the object +that affects operator == comparisons.

+

All objects have hash codes. +The default hash code represents only the identity of the object, +the same way as the default operator == implementation only considers objects +equal if they are identical (see identityHashCode).

+

If operator == is overridden to use the object state instead, +the hash code must also be changed to represent that state.

+

Hash codes must be the same for objects that are equal to each other +according to operator ==. +The hash code of an object should only change if the object changes +in a way that affects equality. +There are no further requirements for the hash codes. +They need not be consistent between executions of the same program +and there are no distribution guarantees.

+

Objects that are not equal are allowed to have the same hash code, +it is even technically allowed that all instances have the same hash code, +but if clashes happen too often, it may reduce the efficiency of hash-based +data structures like HashSet or HashMap.

+

If a subclass overrides hashCode, it should override the +operator == operator as well to maintain consistency.

+
+
+

Implementation

+
@override
+int get hashCode =>
+    hashValues(polygonsToAdd, polygonIdsToRemove, polygonsToChange);
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/PolygonUpdates/operator_equals.html b/doc/api/amap_map/PolygonUpdates/operator_equals.html new file mode 100644 index 0000000..b3ad108 --- /dev/null +++ b/doc/api/amap_map/PolygonUpdates/operator_equals.html @@ -0,0 +1,167 @@ + + + + + + + + operator == method - PolygonUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
operator ==
+ +
+ +
+ + + +
+

operator == method

+ +
+
+
    +
  1. @override
  2. +
+
+ bool + operator == +(
  1. Object other
  2. +
) +
override
+
+
+

The equality operator.

+

The default behavior for all Objects is to return true if and +only if this and other are the same object.

+

Override this method to specify a different equality relation on +a class. The overriding method must still be an equivalence relation. +That is, it must be:

+
    +
  • +

    Total: It must return a boolean for all arguments. It should never throw +or return null.

    +
  • +
  • +

    Reflexive: For all objects o, o == o must be true.

    +
  • +
  • +

    Symmetric: For all objects o1 and o2, o1 == o2 and o2 == o1 must +either both be true, or both be false.

    +
  • +
  • +

    Transitive: For all objects o1, o2, and o3, if o1 == o2 and +o2 == o3 are true, then o1 == o3 must be true.

    +
  • +
+

The method should also be consistent over time, +so whether two objects are equal should only change +if at least one of the objects was modified.

+

If a subclass overrides the equality operator it should override +the hashCode method as well to maintain consistency.

+
+ +
+

Implementation

+
@override
+bool operator ==(Object other) {
+  if (identical(this, other)) return true;
+  if (other.runtimeType != runtimeType) return false;
+  final PolygonUpdates typedOther = other;
+  return setEquals(polygonsToAdd, typedOther.polygonsToAdd) &&
+      setEquals(polygonIdsToRemove, typedOther.polygonIdsToRemove) &&
+      setEquals(polygonsToChange, typedOther.polygonsToChange);
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/PolygonUpdates/polygonIdsToRemove.html b/doc/api/amap_map/PolygonUpdates/polygonIdsToRemove.html new file mode 100644 index 0000000..d0536d1 --- /dev/null +++ b/doc/api/amap_map/PolygonUpdates/polygonIdsToRemove.html @@ -0,0 +1,126 @@ + + + + + + + + polygonIdsToRemove property - PolygonUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
polygonIdsToRemove
+ +
+ +
+ + + +
+

polygonIdsToRemove property

+ +
+ Set<String> + polygonIdsToRemove +
read / write
+
+
+

想要删除的polygon的id集合

+
+
+

Implementation

+
Set polygonIdsToRemove
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/PolygonUpdates/polygonsToAdd.html b/doc/api/amap_map/PolygonUpdates/polygonsToAdd.html new file mode 100644 index 0000000..01c49ac --- /dev/null +++ b/doc/api/amap_map/PolygonUpdates/polygonsToAdd.html @@ -0,0 +1,126 @@ + + + + + + + + polygonsToAdd property - PolygonUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
polygonsToAdd
+ +
+ +
+ + + +
+

polygonsToAdd property

+ +
+ Set<Polygon> + polygonsToAdd +
read / write
+
+
+

想要添加的polygon对象集合.

+
+
+

Implementation

+
Set polygonsToAdd
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/PolygonUpdates/polygonsToChange.html b/doc/api/amap_map/PolygonUpdates/polygonsToChange.html new file mode 100644 index 0000000..8dd2db4 --- /dev/null +++ b/doc/api/amap_map/PolygonUpdates/polygonsToChange.html @@ -0,0 +1,126 @@ + + + + + + + + polygonsToChange property - PolygonUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
polygonsToChange
+ +
+ +
+ + + +
+

polygonsToChange property

+ +
+ Set<Polygon> + polygonsToChange +
read / write
+
+
+

想要更新的polygon对象集合

+
+
+

Implementation

+
Set polygonsToChange
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/PolygonUpdates/toMap.html b/doc/api/amap_map/PolygonUpdates/toMap.html new file mode 100644 index 0000000..c60b680 --- /dev/null +++ b/doc/api/amap_map/PolygonUpdates/toMap.html @@ -0,0 +1,140 @@ + + + + + + + + toMap method - PolygonUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toMap
+ +
+ +
+ + + +
+

toMap method

+ +
+ Map<String, dynamic> + toMap +() + +
+
+

转换成可以序列化的map

+
+ +
+

Implementation

+
Map<String, dynamic> toMap() {
+  final Map<String, dynamic> updateMap = <String, dynamic>{};
+
+  void addIfNonNull(String fieldName, dynamic value) {
+    if (value != null) {
+      updateMap[fieldName] = value;
+    }
+  }
+
+  addIfNonNull('polygonsToAdd', serializeOverlaySet(polygonsToAdd));
+  addIfNonNull('polygonsToChange', serializeOverlaySet(polygonsToChange));
+  addIfNonNull('polygonIdsToRemove', polygonIdsToRemove.toList());
+
+  return updateMap;
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/PolygonUpdates/toString.html b/doc/api/amap_map/PolygonUpdates/toString.html new file mode 100644 index 0000000..55671c6 --- /dev/null +++ b/doc/api/amap_map/PolygonUpdates/toString.html @@ -0,0 +1,136 @@ + + + + + + + + toString method - PolygonUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toString
+ +
+ +
+ + + +
+

toString method

+ +
+
+
    +
  1. @override
  2. +
+
+ String + toString +() +
override
+
+
+

Returns a string representation of this object.

+
+ +
+

Implementation

+
@override
+String toString() {
+  return '_PolygonUpdates{polygonsToAdd: $polygonsToAdd, '
+      'polygonIdsToRemove: $polygonIdsToRemove, '
+      'polygonsToChange: $polygonsToChange}';
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polyline-class.html b/doc/api/amap_map/Polyline-class.html new file mode 100644 index 0000000..c8cd180 --- /dev/null +++ b/doc/api/amap_map/Polyline-class.html @@ -0,0 +1,391 @@ + + + + + + + + Polyline class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
Polyline
+ +
+ +
+ + + +
+

Polyline class

+ +
+

线相关的覆盖物类,内部的属性,描述了覆盖物的纹理、颜色、线宽等特征

+
+ +
+
+
Inheritance
+
+ + + + + +
+
+ +
+

Constructors

+ +
+
+ Polyline({@required List<LatLng> points, double width: 10, bool visible: true, bool geodesic: false, double alpha: 1.0, DashLineType dashLineType: DashLineType.none, CapType capType: CapType.butt, JoinType joinType: JoinType.bevel, BitmapDescriptor customTexture, ArgumentCallback<String> onTap, Color color: const Color(0xCCC4E0F0)}) +
+
+ / 默认构造函数 +
+
+
+ +
+

Properties

+ +
+
+ alpha + double +
+
+ 透明度 +
final
+
+
+ capType + CapType +
+
+ 线头类型 +
final
+
+
+ color + Color +
+
+ 覆盖物颜色,默认值为(0xCCC4E0F0). +
final
+
+
+ customTexture + BitmapDescriptor +
+
+ 自定义纹理图片,注意: 如果设置了自定义纹理图片,则color的设置将无效; +
final
+
+
+ dashLineType + DashLineType +
+
+ 虚线类型 +
final
+
+
+ geodesic + bool +
+
+ 是否为大地曲线 +
final
+
+
+ hashCode + int +
+
+ The hash code for this object. [...] +
read-only, override
+
+
+ id + String +
+
+ +
read-only, inherited
+
+
+ joinType + JoinType +
+
+ 连接点类型 +
final
+
+
+ onTap + → ArgumentCallback<String> +
+
+ 点击回调(回调参数为id) +
final
+
+
+ points + List<LatLng> +
+
+ 覆盖物的坐标点数组,points不能为空 +
final
+
+
+ runtimeType + Type +
+
+ A representation of the runtime type of the object. +
read-only, inherited
+
+
+ visible + bool +
+
+ 是否可见 +
final
+
+
+ width + double +
+
+ 线宽,单位为逻辑像素,同Android中的dp,iOS中的point +
final
+
+
+
+ +
+

Methods

+
+
+ clone() + Polyline + +
+
+ +
override
+
+
+ copyWith({List<LatLng> pointsParam, double widthParam, int zIndexParam, bool visibleParam, double alphaParam, DashLineType dashLineTypeParam, CapType capTypeParam, JoinType joinTypeParam, BitmapDescriptor customTextureParam, ArgumentCallback<String> onTapParam, Color colorParam}) + Polyline + +
+
+ 实际copy函数 + +
+
+ noSuchMethod(Invocation invocation) + → dynamic + +
+
+ Invoked when a non-existent method or property is accessed. [...] +
inherited
+
+
+ setIdForCopy(String copyId) + → void + +
+
+ +
inherited
+
+
+ toMap() + Map<String, dynamic> + +
+
+ 将对象转换为可序列化的map. +
override
+
+
+ toString() + String + +
+
+ Returns a string representation of this object. +
inherited
+
+
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + +
+
+ The equality operator. [...] +
override
+
+
+
+ + + + +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polyline/Polyline.html b/doc/api/amap_map/Polyline/Polyline.html new file mode 100644 index 0000000..ad4a14b --- /dev/null +++ b/doc/api/amap_map/Polyline/Polyline.html @@ -0,0 +1,160 @@ + + + + + + + + Polyline constructor - Polyline class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
Polyline
+ +
+ +
+ + + +
+

Polyline constructor

+ +
+ + Polyline(
  1. {@required List<LatLng> points,
  2. +
  3. double width: 10,
  4. +
  5. bool visible: true,
  6. +
  7. bool geodesic: false,
  8. +
  9. double alpha: 1.0,
  10. +
  11. DashLineType dashLineType: DashLineType.none,
  12. +
  13. CapType capType: CapType.butt,
  14. +
  15. JoinType joinType: JoinType.bevel,
  16. +
  17. BitmapDescriptor customTexture,
  18. +
  19. ArgumentCallback<String> onTap,
  20. +
  21. Color color: const Color(0xCCC4E0F0)}
  22. +
) +
+ +
+

/ 默认构造函数

+
+ +
+

Implementation

+
Polyline({
+  @required this.points,
+  this.width = 10,
+  this.visible = true,
+  this.geodesic = false,
+  this.alpha = 1.0,
+  this.dashLineType = DashLineType.none,
+  this.capType = CapType.butt,
+  this.joinType = JoinType.bevel,
+  this.customTexture,
+  this.onTap,
+  this.color = const Color(0xCCC4E0F0),
+})  : assert(points != null && points.length > 0),
+      super();
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polyline/alpha.html b/doc/api/amap_map/Polyline/alpha.html new file mode 100644 index 0000000..a4b09a1 --- /dev/null +++ b/doc/api/amap_map/Polyline/alpha.html @@ -0,0 +1,138 @@ + + + + + + + + alpha property - Polyline class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
alpha
+ +
+ +
+ + + +
+

alpha property

+ +
+ double + alpha +
final
+
+
+

透明度

+
+
+

Implementation

+
final double alpha
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polyline/capType.html b/doc/api/amap_map/Polyline/capType.html new file mode 100644 index 0000000..9ee63bd --- /dev/null +++ b/doc/api/amap_map/Polyline/capType.html @@ -0,0 +1,138 @@ + + + + + + + + capType property - Polyline class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
capType
+ +
+ +
+ + + +
+

capType property

+ +
+ CapType + capType +
final
+
+
+

线头类型

+
+
+

Implementation

+
final CapType capType
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polyline/clone.html b/doc/api/amap_map/Polyline/clone.html new file mode 100644 index 0000000..c57224a --- /dev/null +++ b/doc/api/amap_map/Polyline/clone.html @@ -0,0 +1,135 @@ + + + + + + + + clone method - Polyline class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
clone
+ +
+ +
+ + + +
+

clone method

+ +
+ Polyline + clone +() +
override
+
+ +
+

Implementation

+
Polyline clone() => copyWith();
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polyline/color.html b/doc/api/amap_map/Polyline/color.html new file mode 100644 index 0000000..052078d --- /dev/null +++ b/doc/api/amap_map/Polyline/color.html @@ -0,0 +1,138 @@ + + + + + + + + color property - Polyline class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
color
+ +
+ +
+ + + +
+

color property

+ +
+ Color + color +
final
+
+
+

覆盖物颜色,默认值为(0xCCC4E0F0).

+
+
+

Implementation

+
final Color color
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polyline/copyWith.html b/doc/api/amap_map/Polyline/copyWith.html new file mode 100644 index 0000000..1e1c445 --- /dev/null +++ b/doc/api/amap_map/Polyline/copyWith.html @@ -0,0 +1,177 @@ + + + + + + + + copyWith method - Polyline class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
copyWith
+ +
+ +
+ + + +
+

copyWith method

+ +
+ Polyline + copyWith +(
  1. {List<LatLng> pointsParam,
  2. +
  3. double widthParam,
  4. +
  5. int zIndexParam,
  6. +
  7. bool visibleParam,
  8. +
  9. double alphaParam,
  10. +
  11. DashLineType dashLineTypeParam,
  12. +
  13. CapType capTypeParam,
  14. +
  15. JoinType joinTypeParam,
  16. +
  17. BitmapDescriptor customTextureParam,
  18. +
  19. ArgumentCallback<String> onTapParam,
  20. +
  21. Color colorParam}
  22. +
) + +
+
+

实际copy函数

+
+ +
+

Implementation

+
Polyline copyWith({
+  List<LatLng> pointsParam,
+  double widthParam,
+  int zIndexParam,
+  bool visibleParam,
+  double alphaParam,
+  DashLineType dashLineTypeParam,
+  CapType capTypeParam,
+  JoinType joinTypeParam,
+  BitmapDescriptor customTextureParam,
+  ArgumentCallback<String> onTapParam,
+  Color colorParam,
+}) {
+  Polyline copyPolyline = Polyline(
+    points: pointsParam ?? points,
+    width: widthParam ?? width,
+    visible: visibleParam ?? visible,
+    geodesic: geodesic,
+    alpha: alphaParam ?? alpha,
+    dashLineType: dashLineTypeParam ?? dashLineType,
+    capType: capTypeParam ?? capType,
+    joinType: joinTypeParam ?? joinType,
+    customTexture: customTextureParam ?? customTexture,
+    onTap: onTapParam ?? onTap,
+    color: colorParam ?? color,
+  );
+  copyPolyline.setIdForCopy(id);
+  return copyPolyline;
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polyline/customTexture.html b/doc/api/amap_map/Polyline/customTexture.html new file mode 100644 index 0000000..30fd4c3 --- /dev/null +++ b/doc/api/amap_map/Polyline/customTexture.html @@ -0,0 +1,138 @@ + + + + + + + + customTexture property - Polyline class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
customTexture
+ +
+ +
+ + + +
+

customTexture property

+ +
+ BitmapDescriptor + customTexture +
final
+
+
+

自定义纹理图片,注意: 如果设置了自定义纹理图片,则color的设置将无效;

+
+
+

Implementation

+
final BitmapDescriptor customTexture
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polyline/dashLineType.html b/doc/api/amap_map/Polyline/dashLineType.html new file mode 100644 index 0000000..9385f42 --- /dev/null +++ b/doc/api/amap_map/Polyline/dashLineType.html @@ -0,0 +1,138 @@ + + + + + + + + dashLineType property - Polyline class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
dashLineType
+ +
+ +
+ + + +
+

dashLineType property

+ +
+ DashLineType + dashLineType +
final
+
+
+

虚线类型

+
+
+

Implementation

+
final DashLineType dashLineType
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polyline/geodesic.html b/doc/api/amap_map/Polyline/geodesic.html new file mode 100644 index 0000000..b41a9b9 --- /dev/null +++ b/doc/api/amap_map/Polyline/geodesic.html @@ -0,0 +1,138 @@ + + + + + + + + geodesic property - Polyline class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
geodesic
+ +
+ +
+ + + +
+

geodesic property

+ +
+ bool + geodesic +
final
+
+
+

是否为大地曲线

+
+
+

Implementation

+
final bool geodesic
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polyline/hashCode.html b/doc/api/amap_map/Polyline/hashCode.html new file mode 100644 index 0000000..08f1f82 --- /dev/null +++ b/doc/api/amap_map/Polyline/hashCode.html @@ -0,0 +1,163 @@ + + + + + + + + hashCode property - Polyline class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
hashCode
+ +
+ +
+ + + +
+

hashCode property

+ + +
+ +
+ int + hashCode +
override
+
+ +
+

The hash code for this object.

+

A hash code is a single integer which represents the state of the object +that affects operator == comparisons.

+

All objects have hash codes. +The default hash code represents only the identity of the object, +the same way as the default operator == implementation only considers objects +equal if they are identical (see identityHashCode).

+

If operator == is overridden to use the object state instead, +the hash code must also be changed to represent that state.

+

Hash codes must be the same for objects that are equal to each other +according to operator ==. +The hash code of an object should only change if the object changes +in a way that affects equality. +There are no further requirements for the hash codes. +They need not be consistent between executions of the same program +and there are no distribution guarantees.

+

Objects that are not equal are allowed to have the same hash code, +it is even technically allowed that all instances have the same hash code, +but if clashes happen too often, it may reduce the efficiency of hash-based +data structures like HashSet or HashMap.

+

If a subclass overrides hashCode, it should override the +operator == operator as well to maintain consistency.

+
+
+

Implementation

+
@override
+int get hashCode => super.hashCode;
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polyline/joinType.html b/doc/api/amap_map/Polyline/joinType.html new file mode 100644 index 0000000..3effe23 --- /dev/null +++ b/doc/api/amap_map/Polyline/joinType.html @@ -0,0 +1,138 @@ + + + + + + + + joinType property - Polyline class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
joinType
+ +
+ +
+ + + +
+

joinType property

+ +
+ JoinType + joinType +
final
+
+
+

连接点类型

+
+
+

Implementation

+
final JoinType joinType
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polyline/onTap.html b/doc/api/amap_map/Polyline/onTap.html new file mode 100644 index 0000000..6fe23e1 --- /dev/null +++ b/doc/api/amap_map/Polyline/onTap.html @@ -0,0 +1,138 @@ + + + + + + + + onTap property - Polyline class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
onTap
+ +
+ +
+ + + +
+

onTap property

+ +
+ ArgumentCallback<String> + onTap +
final
+
+
+

点击回调(回调参数为id)

+
+
+

Implementation

+
final ArgumentCallback onTap
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polyline/operator_equals.html b/doc/api/amap_map/Polyline/operator_equals.html new file mode 100644 index 0000000..993d3ca --- /dev/null +++ b/doc/api/amap_map/Polyline/operator_equals.html @@ -0,0 +1,186 @@ + + + + + + + + operator == method - Polyline class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
operator ==
+ +
+ +
+ + + +
+

operator == method

+ +
+
+
    +
  1. @override
  2. +
+
+ bool + operator == +(
  1. Object other
  2. +
) +
override
+
+
+

The equality operator.

+

The default behavior for all Objects is to return true if and +only if this and other are the same object.

+

Override this method to specify a different equality relation on +a class. The overriding method must still be an equivalence relation. +That is, it must be:

+
    +
  • +

    Total: It must return a boolean for all arguments. It should never throw +or return null.

    +
  • +
  • +

    Reflexive: For all objects o, o == o must be true.

    +
  • +
  • +

    Symmetric: For all objects o1 and o2, o1 == o2 and o2 == o1 must +either both be true, or both be false.

    +
  • +
  • +

    Transitive: For all objects o1, o2, and o3, if o1 == o2 and +o2 == o3 are true, then o1 == o3 must be true.

    +
  • +
+

The method should also be consistent over time, +so whether two objects are equal should only change +if at least one of the objects was modified.

+

If a subclass overrides the equality operator it should override +the hashCode method as well to maintain consistency.

+
+ +
+

Implementation

+
@override
+bool operator ==(Object other) {
+  if (identical(this, other)) return true;
+  if (other.runtimeType != runtimeType) return false;
+  final Polyline typedOther = other;
+  return id == typedOther.id &&
+      listEquals(points, typedOther.points) &&
+      width == typedOther.width &&
+      visible == typedOther.visible &&
+      geodesic == typedOther.geodesic &&
+      alpha == typedOther.alpha &&
+      dashLineType == typedOther.dashLineType &&
+      capType == typedOther.capType &&
+      joinType == typedOther.joinType &&
+      color == typedOther.color;
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polyline/points.html b/doc/api/amap_map/Polyline/points.html new file mode 100644 index 0000000..bb5448f --- /dev/null +++ b/doc/api/amap_map/Polyline/points.html @@ -0,0 +1,138 @@ + + + + + + + + points property - Polyline class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
points
+ +
+ +
+ + + +
+

points property

+ +
+ List<LatLng> + points +
final
+
+
+

覆盖物的坐标点数组,points不能为空

+
+
+

Implementation

+
final List points
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polyline/toMap.html b/doc/api/amap_map/Polyline/toMap.html new file mode 100644 index 0000000..e0032cc --- /dev/null +++ b/doc/api/amap_map/Polyline/toMap.html @@ -0,0 +1,169 @@ + + + + + + + + toMap method - Polyline class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toMap
+ +
+ +
+ + + +
+

toMap method

+ +
+
+
    +
  1. @override
  2. +
+
+ Map<String, dynamic> + toMap +() +
override
+
+
+

将对象转换为可序列化的map.

+
+ +
+

Implementation

+
@override
+Map<String, dynamic> toMap() {
+  final Map<String, dynamic> json = <String, dynamic>{};
+
+  void addIfPresent(String fieldName, dynamic value) {
+    if (value != null) {
+      json[fieldName] = value;
+    }
+  }
+
+  addIfPresent('id', id);
+  if (points != null) {
+    json['points'] = _pointsToJson();
+  }
+  addIfPresent('width', width);
+  addIfPresent('visible', visible);
+  addIfPresent('geodesic', geodesic);
+  addIfPresent('alpha', alpha);
+  addIfPresent('dashLineType', dashLineType.index);
+  addIfPresent('capType', capType.index);
+  addIfPresent('joinType', joinType.index);
+  if (customTexture != null) {
+    addIfPresent('customTexture', customTexture.toMap());
+  }
+  addIfPresent('color', color.value);
+  return json;
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polyline/visible.html b/doc/api/amap_map/Polyline/visible.html new file mode 100644 index 0000000..2263322 --- /dev/null +++ b/doc/api/amap_map/Polyline/visible.html @@ -0,0 +1,138 @@ + + + + + + + + visible property - Polyline class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
visible
+ +
+ +
+ + + +
+

visible property

+ +
+ bool + visible +
final
+
+
+

是否可见

+
+
+

Implementation

+
final bool visible
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/Polyline/width.html b/doc/api/amap_map/Polyline/width.html new file mode 100644 index 0000000..2b0a38a --- /dev/null +++ b/doc/api/amap_map/Polyline/width.html @@ -0,0 +1,138 @@ + + + + + + + + width property - Polyline class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
width
+ +
+ +
+ + + +
+

width property

+ +
+ double + width +
final
+
+
+

线宽,单位为逻辑像素,同Android中的dp,iOS中的point

+
+
+

Implementation

+
final double width
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/PolylineUpdates-class.html b/doc/api/amap_map/PolylineUpdates-class.html new file mode 100644 index 0000000..c5f747a --- /dev/null +++ b/doc/api/amap_map/PolylineUpdates-class.html @@ -0,0 +1,265 @@ + + + + + + + + PolylineUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
PolylineUpdates
+ +
+ +
+ + + +
+

PolylineUpdates class

+ +
+

该类主要用以描述Polyline的增删改等更新操作

+
+ + +
+

Constructors

+ +
+
+ PolylineUpdates.from(Set<Polyline> previous, Set<Polyline> current) +
+
+ 通过polyline的前后更新集合构造一个polylineUpdates +
+
+
+ +
+

Properties

+ +
+
+ hashCode + int +
+
+ The hash code for this object. [...] +
read-only, override
+
+
+ polylineIdsToRemove + Set<String> +
+
+ 需要删除的plyline的id集合 +
read / write
+
+
+ polylinesToAdd + Set<Polyline> +
+
+ 用于添加polyline的集合 +
read / write
+
+
+ polylinesToChange + Set<Polyline> +
+
+ 用于更新polyline的集合 +
read / write
+
+
+ runtimeType + Type +
+
+ A representation of the runtime type of the object. +
read-only, inherited
+
+
+
+ +
+

Methods

+
+
+ noSuchMethod(Invocation invocation) + → dynamic + +
+
+ Invoked when a non-existent method or property is accessed. [...] +
inherited
+
+
+ toMap() + Map<String, dynamic> + +
+
+ 将对象装换为可序列化的对象 + +
+
+ toString() + String + +
+
+ Returns a string representation of this object. +
override
+
+
+
+ +
+

Operators

+
+
+ operator ==(Object other) + bool + +
+
+ The equality operator. [...] +
override
+
+
+
+ + + + +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/PolylineUpdates/PolylineUpdates.from.html b/doc/api/amap_map/PolylineUpdates/PolylineUpdates.from.html new file mode 100644 index 0000000..25525c5 --- /dev/null +++ b/doc/api/amap_map/PolylineUpdates/PolylineUpdates.from.html @@ -0,0 +1,167 @@ + + + + + + + + PolylineUpdates.from constructor - PolylineUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
PolylineUpdates.from
+ +
+ +
+ + + +
+

PolylineUpdates.from constructor

+ +
+ + PolylineUpdates.from(
  1. Set<Polyline> previous,
  2. +
  3. Set<Polyline> current
  4. +
) +
+ +
+

通过polyline的前后更新集合构造一个polylineUpdates

+
+ +
+

Implementation

+
PolylineUpdates.from(Set<Polyline> previous, Set<Polyline> current) {
+  if (previous == null) {
+    previous = Set<Polyline>.identity();
+  }
+
+  if (current == null) {
+    current = Set<Polyline>.identity();
+  }
+
+  final Map<String, Polyline> previousPolylines = keyByPolylineId(previous);
+  final Map<String, Polyline> currentPolylines = keyByPolylineId(current);
+
+  final Set<String> prevPolylineIds = previousPolylines.keys.toSet();
+  final Set<String> currentPolylineIds = currentPolylines.keys.toSet();
+
+  Polyline idToCurrentPolyline(String id) {
+    return currentPolylines[id];
+  }
+
+  final Set<String> _polylineIdsToRemove =
+      prevPolylineIds.difference(currentPolylineIds);
+
+  final Set<Polyline> _polylinesToAdd = currentPolylineIds
+      .difference(prevPolylineIds)
+      .map(idToCurrentPolyline)
+      .toSet();
+
+  bool hasChanged(Polyline current) {
+    final Polyline previous = previousPolylines[current.id];
+    return current != previous;
+  }
+
+  final Set<Polyline> _polylinesToChange = currentPolylineIds
+      .intersection(prevPolylineIds)
+      .map(idToCurrentPolyline)
+      .where(hasChanged)
+      .toSet();
+
+  polylinesToAdd = _polylinesToAdd;
+  polylineIdsToRemove = _polylineIdsToRemove;
+  polylinesToChange = _polylinesToChange;
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/PolylineUpdates/hashCode.html b/doc/api/amap_map/PolylineUpdates/hashCode.html new file mode 100644 index 0000000..d199cb5 --- /dev/null +++ b/doc/api/amap_map/PolylineUpdates/hashCode.html @@ -0,0 +1,152 @@ + + + + + + + + hashCode property - PolylineUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
hashCode
+ +
+ +
+ + + +
+

hashCode property

+ + +
+ +
+ int + hashCode +
override
+
+ +
+

The hash code for this object.

+

A hash code is a single integer which represents the state of the object +that affects operator == comparisons.

+

All objects have hash codes. +The default hash code represents only the identity of the object, +the same way as the default operator == implementation only considers objects +equal if they are identical (see identityHashCode).

+

If operator == is overridden to use the object state instead, +the hash code must also be changed to represent that state.

+

Hash codes must be the same for objects that are equal to each other +according to operator ==. +The hash code of an object should only change if the object changes +in a way that affects equality. +There are no further requirements for the hash codes. +They need not be consistent between executions of the same program +and there are no distribution guarantees.

+

Objects that are not equal are allowed to have the same hash code, +it is even technically allowed that all instances have the same hash code, +but if clashes happen too often, it may reduce the efficiency of hash-based +data structures like HashSet or HashMap.

+

If a subclass overrides hashCode, it should override the +operator == operator as well to maintain consistency.

+
+
+

Implementation

+
@override
+int get hashCode =>
+    hashValues(polylinesToAdd, polylineIdsToRemove, polylinesToChange);
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/PolylineUpdates/operator_equals.html b/doc/api/amap_map/PolylineUpdates/operator_equals.html new file mode 100644 index 0000000..b8d3036 --- /dev/null +++ b/doc/api/amap_map/PolylineUpdates/operator_equals.html @@ -0,0 +1,167 @@ + + + + + + + + operator == method - PolylineUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
operator ==
+ +
+ +
+ + + +
+

operator == method

+ +
+
+
    +
  1. @override
  2. +
+
+ bool + operator == +(
  1. Object other
  2. +
) +
override
+
+
+

The equality operator.

+

The default behavior for all Objects is to return true if and +only if this and other are the same object.

+

Override this method to specify a different equality relation on +a class. The overriding method must still be an equivalence relation. +That is, it must be:

+
    +
  • +

    Total: It must return a boolean for all arguments. It should never throw +or return null.

    +
  • +
  • +

    Reflexive: For all objects o, o == o must be true.

    +
  • +
  • +

    Symmetric: For all objects o1 and o2, o1 == o2 and o2 == o1 must +either both be true, or both be false.

    +
  • +
  • +

    Transitive: For all objects o1, o2, and o3, if o1 == o2 and +o2 == o3 are true, then o1 == o3 must be true.

    +
  • +
+

The method should also be consistent over time, +so whether two objects are equal should only change +if at least one of the objects was modified.

+

If a subclass overrides the equality operator it should override +the hashCode method as well to maintain consistency.

+
+ +
+

Implementation

+
@override
+bool operator ==(Object other) {
+  if (identical(this, other)) return true;
+  if (other.runtimeType != runtimeType) return false;
+  final PolylineUpdates typedOther = other;
+  return setEquals(polylinesToAdd, typedOther.polylinesToAdd) &&
+      setEquals(polylineIdsToRemove, typedOther.polylineIdsToRemove) &&
+      setEquals(polylinesToChange, typedOther.polylinesToChange);
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/PolylineUpdates/polylineIdsToRemove.html b/doc/api/amap_map/PolylineUpdates/polylineIdsToRemove.html new file mode 100644 index 0000000..39031df --- /dev/null +++ b/doc/api/amap_map/PolylineUpdates/polylineIdsToRemove.html @@ -0,0 +1,126 @@ + + + + + + + + polylineIdsToRemove property - PolylineUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
polylineIdsToRemove
+ +
+ +
+ + + +
+

polylineIdsToRemove property

+ +
+ Set<String> + polylineIdsToRemove +
read / write
+
+
+

需要删除的plyline的id集合

+
+
+

Implementation

+
Set polylineIdsToRemove
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/PolylineUpdates/polylinesToAdd.html b/doc/api/amap_map/PolylineUpdates/polylinesToAdd.html new file mode 100644 index 0000000..200a069 --- /dev/null +++ b/doc/api/amap_map/PolylineUpdates/polylinesToAdd.html @@ -0,0 +1,126 @@ + + + + + + + + polylinesToAdd property - PolylineUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
polylinesToAdd
+ +
+ +
+ + + +
+

polylinesToAdd property

+ +
+ Set<Polyline> + polylinesToAdd +
read / write
+
+
+

用于添加polyline的集合

+
+
+

Implementation

+
Set polylinesToAdd
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/PolylineUpdates/polylinesToChange.html b/doc/api/amap_map/PolylineUpdates/polylinesToChange.html new file mode 100644 index 0000000..c544ad6 --- /dev/null +++ b/doc/api/amap_map/PolylineUpdates/polylinesToChange.html @@ -0,0 +1,126 @@ + + + + + + + + polylinesToChange property - PolylineUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
polylinesToChange
+ +
+ +
+ + + +
+

polylinesToChange property

+ +
+ Set<Polyline> + polylinesToChange +
read / write
+
+
+

用于更新polyline的集合

+
+
+

Implementation

+
Set polylinesToChange
+
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/PolylineUpdates/toMap.html b/doc/api/amap_map/PolylineUpdates/toMap.html new file mode 100644 index 0000000..1b2ad3a --- /dev/null +++ b/doc/api/amap_map/PolylineUpdates/toMap.html @@ -0,0 +1,140 @@ + + + + + + + + toMap method - PolylineUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toMap
+ +
+ +
+ + + +
+

toMap method

+ +
+ Map<String, dynamic> + toMap +() + +
+
+

将对象装换为可序列化的对象

+
+ +
+

Implementation

+
Map<String, dynamic> toMap() {
+  final Map<String, dynamic> updateMap = <String, dynamic>{};
+
+  void addIfNonNull(String fieldName, dynamic value) {
+    if (value != null) {
+      updateMap[fieldName] = value;
+    }
+  }
+
+  addIfNonNull('polylinesToAdd', serializeOverlaySet(polylinesToAdd));
+  addIfNonNull('polylinesToChange', serializeOverlaySet(polylinesToChange));
+  addIfNonNull('polylineIdsToRemove', polylineIdsToRemove.toList());
+
+  return updateMap;
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/PolylineUpdates/toString.html b/doc/api/amap_map/PolylineUpdates/toString.html new file mode 100644 index 0000000..b27316e --- /dev/null +++ b/doc/api/amap_map/PolylineUpdates/toString.html @@ -0,0 +1,136 @@ + + + + + + + + toString method - PolylineUpdates class - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
toString
+ +
+ +
+ + + +
+

toString method

+ +
+
+
    +
  1. @override
  2. +
+
+ String + toString +() +
override
+
+
+

Returns a string representation of this object.

+
+ +
+

Implementation

+
@override
+String toString() {
+  return '_PolylineUpdates{polylinesToAdd: $polylinesToAdd, '
+      'polylineIdsToRemove: $polylineIdsToRemove, '
+      'polylinesToChange: $polylinesToChange}';
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/amap_flutter_map-library.html b/doc/api/amap_map/amap_flutter_map-library.html new file mode 100644 index 0000000..3e8dc7f --- /dev/null +++ b/doc/api/amap_map/amap_flutter_map-library.html @@ -0,0 +1,341 @@ + + + + + + + + amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
amap_map
+ +
+ +
+ + + +
+

amap_map library

+ + +
+

Classes

+ +
+
+ AMapController +
+
+ +
+
+ AMapWidget +
+
+ 用于展示高德地图的Widget +
+
+ BaseOverlay +
+
+ 地图覆盖物基类 +
+
+ BitmapDescriptor +
+
+ Bitmap工具类 +
+
+ CameraPosition +
+
+ +
+
+ CameraTargetBounds +
+
+ +
+
+ CameraUpdate +
+
+ 描述地图状态将要发生的变化 +
+
+ CustomStyleOptions +
+
+ 地图自定义样式 +
+
+ InfoWindow +
+
+ Marker的气泡 +Android和iOS的实现机制有差异,仅在接口层面拉齐,效果一致 +
+
+ Marker +
+
+ 点覆盖物的类 +
+
+ MarkerUpdates +
+
+ 用以描述Marker的更新项 +
+
+ MinMaxZoomPreference +
+
+ 地图最大最小缩放级别的封装对象 +
+
+ MyLocationStyleOptions +
+
+ 定位小蓝点配置项 +
+
+ Polygon +
+
+ 线相关的覆盖物类,内部的属性,描述了覆盖物的纹理、颜色、线宽等特征 +
+
+ PolygonUpdates +
+
+ 该类主要用以描述Polygon的增删改等更新操作 +
+
+ Polyline +
+
+ 线相关的覆盖物类,内部的属性,描述了覆盖物的纹理、颜色、线宽等特征 +
+
+ PolylineUpdates +
+
+ 该类主要用以描述Polyline的增删改等更新操作 +
+
+
+ + + + + +
+

Functions

+ +
+
+ keyByMarkerId(Iterable<Marker> markers) + Map<String, Marker> + +
+
+ + +
+
+ keyByPolygonId(Iterable<Polygon> polylines) + Map<String, Polygon> + +
+
+ + +
+
+ keyByPolylineId(Iterable<Polyline> polylines) + Map<String, Polyline> + +
+
+ + +
+
+ serializeOverlaySet(Set<BaseOverlay> overlays) + List<Map<String, dynamic>> + +
+
+ + +
+
+
+ +
+

Enums

+ +
+
+ CapType +
+
+ 线头类型 +
+
+ DashLineType +
+
+ 虚线类型 +
+
+ JoinType +
+
+ 连接点类型 +
+
+ MapType +
+
+ 地图类型 +
+
+
+ +
+

Typedefs

+ +
+
+ MapCreatedCallback(AMapController controller) + → void + +
+
+ + +
+
+ MarkerDragEndCallback(String id, LatLng endPosition) + → void + +
+
+ 带有一个回调参数的回调类型 + +
+
+
+ + +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/keyByMarkerId.html b/doc/api/amap_map/keyByMarkerId.html new file mode 100644 index 0000000..22d7d90 --- /dev/null +++ b/doc/api/amap_map/keyByMarkerId.html @@ -0,0 +1,141 @@ + + + + + + + + keyByMarkerId function - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
keyByMarkerId
+ +
+ +
+ + + +
+

keyByMarkerId function

+ +
+ Map<String, Marker> + keyByMarkerId +(
  1. Iterable<Marker> markers
  2. +
) +
+ +
+

Implementation

+
Map<String, Marker> keyByMarkerId(Iterable<Marker> markers) {
+  if (markers == null) {
+    return <String, Marker>{};
+  }
+  return Map<String, Marker>.fromEntries(markers.map(
+      (Marker marker) => MapEntry<String, Marker>(marker.id, marker.clone())));
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/keyByPolygonId.html b/doc/api/amap_map/keyByPolygonId.html new file mode 100644 index 0000000..7212f5c --- /dev/null +++ b/doc/api/amap_map/keyByPolygonId.html @@ -0,0 +1,141 @@ + + + + + + + + keyByPolygonId function - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
keyByPolygonId
+ +
+ +
+ + + +
+

keyByPolygonId function

+ +
+ Map<String, Polygon> + keyByPolygonId +(
  1. Iterable<Polygon> polylines
  2. +
) +
+ +
+

Implementation

+
Map<String, Polygon> keyByPolygonId(Iterable<Polygon> polylines) {
+  if (polylines == null) {
+    return <String, Polygon>{};
+  }
+  return Map<String, Polygon>.fromEntries(polylines.map((Polygon polyline) =>
+      MapEntry<String, Polygon>(polyline.id, polyline.clone())));
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/keyByPolylineId.html b/doc/api/amap_map/keyByPolylineId.html new file mode 100644 index 0000000..881aaf5 --- /dev/null +++ b/doc/api/amap_map/keyByPolylineId.html @@ -0,0 +1,141 @@ + + + + + + + + keyByPolylineId function - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
keyByPolylineId
+ +
+ +
+ + + +
+

keyByPolylineId function

+ +
+ Map<String, Polyline> + keyByPolylineId +(
  1. Iterable<Polyline> polylines
  2. +
) +
+ +
+

Implementation

+
Map<String, Polyline> keyByPolylineId(Iterable<Polyline> polylines) {
+  if (polylines == null) {
+    return <String, Polyline>{};
+  }
+  return Map<String, Polyline>.fromEntries(polylines.map((Polyline polyline) =>
+      MapEntry<String, Polyline>(polyline.id, polyline.clone())));
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/amap_map/serializeOverlaySet.html b/doc/api/amap_map/serializeOverlaySet.html new file mode 100644 index 0000000..da696c5 --- /dev/null +++ b/doc/api/amap_map/serializeOverlaySet.html @@ -0,0 +1,142 @@ + + + + + + + + serializeOverlaySet function - amap_map library - Dart API + + + + + + + + + + + + +
+ +
+ + +
serializeOverlaySet
+ +
+ +
+ + + +
+

serializeOverlaySet function

+ +
+ List<Map<String, dynamic>> + serializeOverlaySet +(
  1. Set<BaseOverlay> overlays
  2. +
) +
+ +
+

Implementation

+
List<Map<String, dynamic>> serializeOverlaySet(Set<BaseOverlay> overlays) {
+  if (overlays == null) {
+    return null;
+  }
+  return overlays
+      .map<Map<String, dynamic>>((BaseOverlay overlay) => overlay.toMap())
+      .toList();
+}
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/categories.json b/doc/api/categories.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/doc/api/categories.json @@ -0,0 +1 @@ +[] diff --git a/doc/api/index.html b/doc/api/index.html new file mode 100644 index 0000000..c28e144 --- /dev/null +++ b/doc/api/index.html @@ -0,0 +1,106 @@ + + + + + + + + + amap_map - Dart API docs + + + + + + + + + + + + +
+ +
+ + +
amap_map
+ +
+ +
+ + + +
+
+

amap_map

+

A new Flutter plugin.

+

Getting Started

+

This project is a starting point for a Flutter +plug-in package, +a specialized package that includes platform-specific implementation code for +Android and/or iOS.

+

For help getting started with Flutter, view our +online documentation, which offers tutorials, +samples, guidance on mobile development, and a full API reference.

+
+ +
+

Libraries

+
+
+ amap_map +
+
+ +
+
+
+ +
+ + + +
+ +
+ + amap_map + 1.1.0 + + +
+ + + + + + + + + + + diff --git a/doc/api/index.json b/doc/api/index.json new file mode 100644 index 0000000..83d4058 --- /dev/null +++ b/doc/api/index.json @@ -0,0 +1 @@ +[{"name":"amap_map","qualifiedName":"amap_map","href":"amap_map/amap_map-library.html","type":"library","overriddenDepth":0,"packageName":"amap_map"},{"name":"AMapController","qualifiedName":"amap_map.AMapController","href":"amap_map/AMapController-class.html","type":"class","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"channel","qualifiedName":"amap_map.AMapController.channel","href":"amap_map/AMapController/channel.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapController","type":"class"}},{"name":"clearDisk","qualifiedName":"amap_map.AMapController.clearDisk","href":"amap_map/AMapController/clearDisk.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapController","type":"class"}},{"name":"disponse","qualifiedName":"amap_map.AMapController.disponse","href":"amap_map/AMapController/disponse.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapController","type":"class"}},{"name":"getMapContentApprovalNumber","qualifiedName":"amap_map.AMapController.getMapContentApprovalNumber","href":"amap_map/AMapController/getMapContentApprovalNumber.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapController","type":"class"}},{"name":"getSatelliteImageApprovalNumber","qualifiedName":"amap_map.AMapController.getSatelliteImageApprovalNumber","href":"amap_map/AMapController/getSatelliteImageApprovalNumber.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapController","type":"class"}},{"name":"init","qualifiedName":"amap_map.AMapController.init","href":"amap_map/AMapController/init.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapController","type":"class"}},{"name":"mapId","qualifiedName":"amap_map.AMapController.mapId","href":"amap_map/AMapController/mapId.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapController","type":"class"}},{"name":"moveCamera","qualifiedName":"amap_map.AMapController.moveCamera","href":"amap_map/AMapController/moveCamera.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapController","type":"class"}},{"name":"setRenderFps","qualifiedName":"amap_map.AMapController.setRenderFps","href":"amap_map/AMapController/setRenderFps.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapController","type":"class"}},{"name":"takeSnapshot","qualifiedName":"amap_map.AMapController.takeSnapshot","href":"amap_map/AMapController/takeSnapshot.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapController","type":"class"}},{"name":"AMapWidget","qualifiedName":"amap_map.AMapWidget","href":"amap_map/AMapWidget-class.html","type":"class","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"AMapWidget","qualifiedName":"amap_map.AMapWidget.AMapWidget","href":"amap_map/AMapWidget/AMapWidget.html","type":"constructor","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"apiKey","qualifiedName":"amap_map.AMapWidget.apiKey","href":"amap_map/AMapWidget/apiKey.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"buildingsEnabled","qualifiedName":"amap_map.AMapWidget.buildingsEnabled","href":"amap_map/AMapWidget/buildingsEnabled.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"compassEnabled","qualifiedName":"amap_map.AMapWidget.compassEnabled","href":"amap_map/AMapWidget/compassEnabled.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"createState","qualifiedName":"amap_map.AMapWidget.createState","href":"amap_map/AMapWidget/createState.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"customStyleOptions","qualifiedName":"amap_map.AMapWidget.customStyleOptions","href":"amap_map/AMapWidget/customStyleOptions.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"gestureRecognizers","qualifiedName":"amap_map.AMapWidget.gestureRecognizers","href":"amap_map/AMapWidget/gestureRecognizers.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"initialCameraPosition","qualifiedName":"amap_map.AMapWidget.initialCameraPosition","href":"amap_map/AMapWidget/initialCameraPosition.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"labelsEnabled","qualifiedName":"amap_map.AMapWidget.labelsEnabled","href":"amap_map/AMapWidget/labelsEnabled.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"limitBounds","qualifiedName":"amap_map.AMapWidget.limitBounds","href":"amap_map/AMapWidget/limitBounds.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"mapType","qualifiedName":"amap_map.AMapWidget.mapType","href":"amap_map/AMapWidget/mapType.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"markers","qualifiedName":"amap_map.AMapWidget.markers","href":"amap_map/AMapWidget/markers.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"minMaxZoomPreference","qualifiedName":"amap_map.AMapWidget.minMaxZoomPreference","href":"amap_map/AMapWidget/minMaxZoomPreference.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"myLocationStyleOptions","qualifiedName":"amap_map.AMapWidget.myLocationStyleOptions","href":"amap_map/AMapWidget/myLocationStyleOptions.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"onCameraMove","qualifiedName":"amap_map.AMapWidget.onCameraMove","href":"amap_map/AMapWidget/onCameraMove.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"onCameraMoveEnd","qualifiedName":"amap_map.AMapWidget.onCameraMoveEnd","href":"amap_map/AMapWidget/onCameraMoveEnd.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"onLocationChanged","qualifiedName":"amap_map.AMapWidget.onLocationChanged","href":"amap_map/AMapWidget/onLocationChanged.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"onLongPress","qualifiedName":"amap_map.AMapWidget.onLongPress","href":"amap_map/AMapWidget/onLongPress.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"onMapCreated","qualifiedName":"amap_map.AMapWidget.onMapCreated","href":"amap_map/AMapWidget/onMapCreated.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"onPoiTouched","qualifiedName":"amap_map.AMapWidget.onPoiTouched","href":"amap_map/AMapWidget/onPoiTouched.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"onTap","qualifiedName":"amap_map.AMapWidget.onTap","href":"amap_map/AMapWidget/onTap.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"polygons","qualifiedName":"amap_map.AMapWidget.polygons","href":"amap_map/AMapWidget/polygons.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"polylines","qualifiedName":"amap_map.AMapWidget.polylines","href":"amap_map/AMapWidget/polylines.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"rotateGesturesEnabled","qualifiedName":"amap_map.AMapWidget.rotateGesturesEnabled","href":"amap_map/AMapWidget/rotateGesturesEnabled.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"scaleEnabled","qualifiedName":"amap_map.AMapWidget.scaleEnabled","href":"amap_map/AMapWidget/scaleEnabled.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"scrollGesturesEnabled","qualifiedName":"amap_map.AMapWidget.scrollGesturesEnabled","href":"amap_map/AMapWidget/scrollGesturesEnabled.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"tiltGesturesEnabled","qualifiedName":"amap_map.AMapWidget.tiltGesturesEnabled","href":"amap_map/AMapWidget/tiltGesturesEnabled.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"touchPoiEnabled","qualifiedName":"amap_map.AMapWidget.touchPoiEnabled","href":"amap_map/AMapWidget/touchPoiEnabled.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"trafficEnabled","qualifiedName":"amap_map.AMapWidget.trafficEnabled","href":"amap_map/AMapWidget/trafficEnabled.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"zoomGesturesEnabled","qualifiedName":"amap_map.AMapWidget.zoomGesturesEnabled","href":"amap_map/AMapWidget/zoomGesturesEnabled.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"AMapWidget","type":"class"}},{"name":"BaseOverlay","qualifiedName":"amap_map.BaseOverlay","href":"amap_map/BaseOverlay-class.html","type":"class","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"BaseOverlay","qualifiedName":"amap_map.BaseOverlay.BaseOverlay","href":"amap_map/BaseOverlay/BaseOverlay.html","type":"constructor","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"BaseOverlay","type":"class"}},{"name":"clone","qualifiedName":"amap_map.BaseOverlay.clone","href":"amap_map/BaseOverlay/clone.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"BaseOverlay","type":"class"}},{"name":"id","qualifiedName":"amap_map.BaseOverlay.id","href":"amap_map/BaseOverlay/id.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"BaseOverlay","type":"class"}},{"name":"setIdForCopy","qualifiedName":"amap_map.BaseOverlay.setIdForCopy","href":"amap_map/BaseOverlay/setIdForCopy.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"BaseOverlay","type":"class"}},{"name":"toMap","qualifiedName":"amap_map.BaseOverlay.toMap","href":"amap_map/BaseOverlay/toMap.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"BaseOverlay","type":"class"}},{"name":"BitmapDescriptor","qualifiedName":"amap_map.BitmapDescriptor","href":"amap_map/BitmapDescriptor-class.html","type":"class","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"defaultMarker","qualifiedName":"amap_map.BitmapDescriptor.defaultMarker","href":"amap_map/BitmapDescriptor/defaultMarker-constant.html","type":"constant","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"BitmapDescriptor","type":"class"}},{"name":"defaultMarkerWithHue","qualifiedName":"amap_map.BitmapDescriptor.defaultMarkerWithHue","href":"amap_map/BitmapDescriptor/defaultMarkerWithHue.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"BitmapDescriptor","type":"class"}},{"name":"fromAssetImage","qualifiedName":"amap_map.BitmapDescriptor.fromAssetImage","href":"amap_map/BitmapDescriptor/fromAssetImage.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"BitmapDescriptor","type":"class"}},{"name":"fromBytes","qualifiedName":"amap_map.BitmapDescriptor.fromBytes","href":"amap_map/BitmapDescriptor/fromBytes.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"BitmapDescriptor","type":"class"}},{"name":"hueAzure","qualifiedName":"amap_map.BitmapDescriptor.hueAzure","href":"amap_map/BitmapDescriptor/hueAzure-constant.html","type":"constant","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"BitmapDescriptor","type":"class"}},{"name":"hueBlue","qualifiedName":"amap_map.BitmapDescriptor.hueBlue","href":"amap_map/BitmapDescriptor/hueBlue-constant.html","type":"constant","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"BitmapDescriptor","type":"class"}},{"name":"hueCyan","qualifiedName":"amap_map.BitmapDescriptor.hueCyan","href":"amap_map/BitmapDescriptor/hueCyan-constant.html","type":"constant","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"BitmapDescriptor","type":"class"}},{"name":"hueGreen","qualifiedName":"amap_map.BitmapDescriptor.hueGreen","href":"amap_map/BitmapDescriptor/hueGreen-constant.html","type":"constant","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"BitmapDescriptor","type":"class"}},{"name":"hueMagenta","qualifiedName":"amap_map.BitmapDescriptor.hueMagenta","href":"amap_map/BitmapDescriptor/hueMagenta-constant.html","type":"constant","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"BitmapDescriptor","type":"class"}},{"name":"hueOrange","qualifiedName":"amap_map.BitmapDescriptor.hueOrange","href":"amap_map/BitmapDescriptor/hueOrange-constant.html","type":"constant","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"BitmapDescriptor","type":"class"}},{"name":"hueRed","qualifiedName":"amap_map.BitmapDescriptor.hueRed","href":"amap_map/BitmapDescriptor/hueRed-constant.html","type":"constant","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"BitmapDescriptor","type":"class"}},{"name":"hueRose","qualifiedName":"amap_map.BitmapDescriptor.hueRose","href":"amap_map/BitmapDescriptor/hueRose-constant.html","type":"constant","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"BitmapDescriptor","type":"class"}},{"name":"hueViolet","qualifiedName":"amap_map.BitmapDescriptor.hueViolet","href":"amap_map/BitmapDescriptor/hueViolet-constant.html","type":"constant","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"BitmapDescriptor","type":"class"}},{"name":"hueYellow","qualifiedName":"amap_map.BitmapDescriptor.hueYellow","href":"amap_map/BitmapDescriptor/hueYellow-constant.html","type":"constant","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"BitmapDescriptor","type":"class"}},{"name":"toMap","qualifiedName":"amap_map.BitmapDescriptor.toMap","href":"amap_map/BitmapDescriptor/toMap.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"BitmapDescriptor","type":"class"}},{"name":"CameraPosition","qualifiedName":"amap_map.CameraPosition","href":"amap_map/CameraPosition-class.html","type":"class","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"operator ==","qualifiedName":"amap_map.CameraPosition.==","href":"amap_map/CameraPosition/operator_equals.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"CameraPosition","type":"class"}},{"name":"CameraPosition","qualifiedName":"amap_map.CameraPosition.CameraPosition","href":"amap_map/CameraPosition/CameraPosition.html","type":"constructor","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CameraPosition","type":"class"}},{"name":"bearing","qualifiedName":"amap_map.CameraPosition.bearing","href":"amap_map/CameraPosition/bearing.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CameraPosition","type":"class"}},{"name":"fromMap","qualifiedName":"amap_map.CameraPosition.fromMap","href":"amap_map/CameraPosition/fromMap.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CameraPosition","type":"class"}},{"name":"hashCode","qualifiedName":"amap_map.CameraPosition.hashCode","href":"amap_map/CameraPosition/hashCode.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CameraPosition","type":"class"}},{"name":"target","qualifiedName":"amap_map.CameraPosition.target","href":"amap_map/CameraPosition/target.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CameraPosition","type":"class"}},{"name":"tilt","qualifiedName":"amap_map.CameraPosition.tilt","href":"amap_map/CameraPosition/tilt.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CameraPosition","type":"class"}},{"name":"toMap","qualifiedName":"amap_map.CameraPosition.toMap","href":"amap_map/CameraPosition/toMap.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CameraPosition","type":"class"}},{"name":"toString","qualifiedName":"amap_map.CameraPosition.toString","href":"amap_map/CameraPosition/toString.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"CameraPosition","type":"class"}},{"name":"zoom","qualifiedName":"amap_map.CameraPosition.zoom","href":"amap_map/CameraPosition/zoom.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CameraPosition","type":"class"}},{"name":"CameraTargetBounds","qualifiedName":"amap_map.CameraTargetBounds","href":"amap_map/CameraTargetBounds-class.html","type":"class","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"operator ==","qualifiedName":"amap_map.CameraTargetBounds.==","href":"amap_map/CameraTargetBounds/operator_equals.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"CameraTargetBounds","type":"class"}},{"name":"CameraTargetBounds","qualifiedName":"amap_map.CameraTargetBounds.CameraTargetBounds","href":"amap_map/CameraTargetBounds/CameraTargetBounds.html","type":"constructor","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CameraTargetBounds","type":"class"}},{"name":"bounds","qualifiedName":"amap_map.CameraTargetBounds.bounds","href":"amap_map/CameraTargetBounds/bounds.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CameraTargetBounds","type":"class"}},{"name":"hashCode","qualifiedName":"amap_map.CameraTargetBounds.hashCode","href":"amap_map/CameraTargetBounds/hashCode.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CameraTargetBounds","type":"class"}},{"name":"toJson","qualifiedName":"amap_map.CameraTargetBounds.toJson","href":"amap_map/CameraTargetBounds/toJson.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CameraTargetBounds","type":"class"}},{"name":"toString","qualifiedName":"amap_map.CameraTargetBounds.toString","href":"amap_map/CameraTargetBounds/toString.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"CameraTargetBounds","type":"class"}},{"name":"unbounded","qualifiedName":"amap_map.CameraTargetBounds.unbounded","href":"amap_map/CameraTargetBounds/unbounded-constant.html","type":"constant","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CameraTargetBounds","type":"class"}},{"name":"CameraUpdate","qualifiedName":"amap_map.CameraUpdate","href":"amap_map/CameraUpdate-class.html","type":"class","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"newCameraPosition","qualifiedName":"amap_map.CameraUpdate.newCameraPosition","href":"amap_map/CameraUpdate/newCameraPosition.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CameraUpdate","type":"class"}},{"name":"newLatLng","qualifiedName":"amap_map.CameraUpdate.newLatLng","href":"amap_map/CameraUpdate/newLatLng.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CameraUpdate","type":"class"}},{"name":"newLatLngBounds","qualifiedName":"amap_map.CameraUpdate.newLatLngBounds","href":"amap_map/CameraUpdate/newLatLngBounds.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CameraUpdate","type":"class"}},{"name":"newLatLngZoom","qualifiedName":"amap_map.CameraUpdate.newLatLngZoom","href":"amap_map/CameraUpdate/newLatLngZoom.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CameraUpdate","type":"class"}},{"name":"scrollBy","qualifiedName":"amap_map.CameraUpdate.scrollBy","href":"amap_map/CameraUpdate/scrollBy.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CameraUpdate","type":"class"}},{"name":"toJson","qualifiedName":"amap_map.CameraUpdate.toJson","href":"amap_map/CameraUpdate/toJson.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CameraUpdate","type":"class"}},{"name":"zoomIn","qualifiedName":"amap_map.CameraUpdate.zoomIn","href":"amap_map/CameraUpdate/zoomIn.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CameraUpdate","type":"class"}},{"name":"zoomOut","qualifiedName":"amap_map.CameraUpdate.zoomOut","href":"amap_map/CameraUpdate/zoomOut.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CameraUpdate","type":"class"}},{"name":"zoomTo","qualifiedName":"amap_map.CameraUpdate.zoomTo","href":"amap_map/CameraUpdate/zoomTo.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CameraUpdate","type":"class"}},{"name":"CapType","qualifiedName":"amap_map.CapType","href":"amap_map/CapType-class.html","type":"enum","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"toString","qualifiedName":"amap_map.CapType.toString","href":"amap_map/CapType/toString.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"CapType","type":"enum"}},{"name":"CustomStyleOptions","qualifiedName":"amap_map.CustomStyleOptions","href":"amap_map/CustomStyleOptions-class.html","type":"class","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"operator ==","qualifiedName":"amap_map.CustomStyleOptions.==","href":"amap_map/CustomStyleOptions/operator_equals.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"CustomStyleOptions","type":"class"}},{"name":"CustomStyleOptions","qualifiedName":"amap_map.CustomStyleOptions.CustomStyleOptions","href":"amap_map/CustomStyleOptions/CustomStyleOptions.html","type":"constructor","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CustomStyleOptions","type":"class"}},{"name":"enabled","qualifiedName":"amap_map.CustomStyleOptions.enabled","href":"amap_map/CustomStyleOptions/enabled.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CustomStyleOptions","type":"class"}},{"name":"fromMap","qualifiedName":"amap_map.CustomStyleOptions.fromMap","href":"amap_map/CustomStyleOptions/fromMap.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CustomStyleOptions","type":"class"}},{"name":"hashCode","qualifiedName":"amap_map.CustomStyleOptions.hashCode","href":"amap_map/CustomStyleOptions/hashCode.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CustomStyleOptions","type":"class"}},{"name":"styleData","qualifiedName":"amap_map.CustomStyleOptions.styleData","href":"amap_map/CustomStyleOptions/styleData.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CustomStyleOptions","type":"class"}},{"name":"styleExtraData","qualifiedName":"amap_map.CustomStyleOptions.styleExtraData","href":"amap_map/CustomStyleOptions/styleExtraData.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CustomStyleOptions","type":"class"}},{"name":"toJson","qualifiedName":"amap_map.CustomStyleOptions.toJson","href":"amap_map/CustomStyleOptions/toJson.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"CustomStyleOptions","type":"class"}},{"name":"DashLineType","qualifiedName":"amap_map.DashLineType","href":"amap_map/DashLineType-class.html","type":"enum","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"toString","qualifiedName":"amap_map.DashLineType.toString","href":"amap_map/DashLineType/toString.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"DashLineType","type":"enum"}},{"name":"InfoWindow","qualifiedName":"amap_map.InfoWindow","href":"amap_map/InfoWindow-class.html","type":"class","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"operator ==","qualifiedName":"amap_map.InfoWindow.==","href":"amap_map/InfoWindow/operator_equals.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"InfoWindow","type":"class"}},{"name":"InfoWindow","qualifiedName":"amap_map.InfoWindow.InfoWindow","href":"amap_map/InfoWindow/InfoWindow.html","type":"constructor","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"InfoWindow","type":"class"}},{"name":"copyWith","qualifiedName":"amap_map.InfoWindow.copyWith","href":"amap_map/InfoWindow/copyWith.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"InfoWindow","type":"class"}},{"name":"hashCode","qualifiedName":"amap_map.InfoWindow.hashCode","href":"amap_map/InfoWindow/hashCode.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"InfoWindow","type":"class"}},{"name":"noText","qualifiedName":"amap_map.InfoWindow.noText","href":"amap_map/InfoWindow/noText-constant.html","type":"constant","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"InfoWindow","type":"class"}},{"name":"snippet","qualifiedName":"amap_map.InfoWindow.snippet","href":"amap_map/InfoWindow/snippet.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"InfoWindow","type":"class"}},{"name":"title","qualifiedName":"amap_map.InfoWindow.title","href":"amap_map/InfoWindow/title.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"InfoWindow","type":"class"}},{"name":"toString","qualifiedName":"amap_map.InfoWindow.toString","href":"amap_map/InfoWindow/toString.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"InfoWindow","type":"class"}},{"name":"JoinType","qualifiedName":"amap_map.JoinType","href":"amap_map/JoinType-class.html","type":"enum","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"toString","qualifiedName":"amap_map.JoinType.toString","href":"amap_map/JoinType/toString.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"JoinType","type":"enum"}},{"name":"MapCreatedCallback","qualifiedName":"amap_map.MapCreatedCallback","href":"amap_map/MapCreatedCallback.html","type":"typedef","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"MapType","qualifiedName":"amap_map.MapType","href":"amap_map/MapType-class.html","type":"enum","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"toString","qualifiedName":"amap_map.MapType.toString","href":"amap_map/MapType/toString.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"MapType","type":"enum"}},{"name":"Marker","qualifiedName":"amap_map.Marker","href":"amap_map/Marker-class.html","type":"class","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"operator ==","qualifiedName":"amap_map.Marker.==","href":"amap_map/Marker/operator_equals.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"Marker","type":"class"}},{"name":"Marker","qualifiedName":"amap_map.Marker.Marker","href":"amap_map/Marker/Marker.html","type":"constructor","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Marker","type":"class"}},{"name":"alpha","qualifiedName":"amap_map.Marker.alpha","href":"amap_map/Marker/alpha.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Marker","type":"class"}},{"name":"anchor","qualifiedName":"amap_map.Marker.anchor","href":"amap_map/Marker/anchor.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Marker","type":"class"}},{"name":"clickable","qualifiedName":"amap_map.Marker.clickable","href":"amap_map/Marker/clickable.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Marker","type":"class"}},{"name":"clone","qualifiedName":"amap_map.Marker.clone","href":"amap_map/Marker/clone.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"Marker","type":"class"}},{"name":"copyWith","qualifiedName":"amap_map.Marker.copyWith","href":"amap_map/Marker/copyWith.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Marker","type":"class"}},{"name":"draggable","qualifiedName":"amap_map.Marker.draggable","href":"amap_map/Marker/draggable.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Marker","type":"class"}},{"name":"hashCode","qualifiedName":"amap_map.Marker.hashCode","href":"amap_map/Marker/hashCode.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Marker","type":"class"}},{"name":"icon","qualifiedName":"amap_map.Marker.icon","href":"amap_map/Marker/icon.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Marker","type":"class"}},{"name":"infoWindow","qualifiedName":"amap_map.Marker.infoWindow","href":"amap_map/Marker/infoWindow.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Marker","type":"class"}},{"name":"infoWindowEnable","qualifiedName":"amap_map.Marker.infoWindowEnable","href":"amap_map/Marker/infoWindowEnable.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Marker","type":"class"}},{"name":"onDragEnd","qualifiedName":"amap_map.Marker.onDragEnd","href":"amap_map/Marker/onDragEnd.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Marker","type":"class"}},{"name":"onTap","qualifiedName":"amap_map.Marker.onTap","href":"amap_map/Marker/onTap.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Marker","type":"class"}},{"name":"position","qualifiedName":"amap_map.Marker.position","href":"amap_map/Marker/position.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Marker","type":"class"}},{"name":"rotation","qualifiedName":"amap_map.Marker.rotation","href":"amap_map/Marker/rotation.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Marker","type":"class"}},{"name":"toMap","qualifiedName":"amap_map.Marker.toMap","href":"amap_map/Marker/toMap.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"Marker","type":"class"}},{"name":"toString","qualifiedName":"amap_map.Marker.toString","href":"amap_map/Marker/toString.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"Marker","type":"class"}},{"name":"visible","qualifiedName":"amap_map.Marker.visible","href":"amap_map/Marker/visible.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Marker","type":"class"}},{"name":"zIndex","qualifiedName":"amap_map.Marker.zIndex","href":"amap_map/Marker/zIndex.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Marker","type":"class"}},{"name":"MarkerDragEndCallback","qualifiedName":"amap_map.MarkerDragEndCallback","href":"amap_map/MarkerDragEndCallback.html","type":"typedef","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"MarkerUpdates","qualifiedName":"amap_map.MarkerUpdates","href":"amap_map/MarkerUpdates-class.html","type":"class","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"operator ==","qualifiedName":"amap_map.MarkerUpdates.==","href":"amap_map/MarkerUpdates/operator_equals.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"MarkerUpdates","type":"class"}},{"name":"MarkerUpdates.from","qualifiedName":"amap_map.MarkerUpdates.from","href":"amap_map/MarkerUpdates/MarkerUpdates.from.html","type":"constructor","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"MarkerUpdates","type":"class"}},{"name":"hashCode","qualifiedName":"amap_map.MarkerUpdates.hashCode","href":"amap_map/MarkerUpdates/hashCode.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"MarkerUpdates","type":"class"}},{"name":"markerIdsToRemove","qualifiedName":"amap_map.MarkerUpdates.markerIdsToRemove","href":"amap_map/MarkerUpdates/markerIdsToRemove.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"MarkerUpdates","type":"class"}},{"name":"markersToAdd","qualifiedName":"amap_map.MarkerUpdates.markersToAdd","href":"amap_map/MarkerUpdates/markersToAdd.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"MarkerUpdates","type":"class"}},{"name":"markersToChange","qualifiedName":"amap_map.MarkerUpdates.markersToChange","href":"amap_map/MarkerUpdates/markersToChange.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"MarkerUpdates","type":"class"}},{"name":"toMap","qualifiedName":"amap_map.MarkerUpdates.toMap","href":"amap_map/MarkerUpdates/toMap.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"MarkerUpdates","type":"class"}},{"name":"toString","qualifiedName":"amap_map.MarkerUpdates.toString","href":"amap_map/MarkerUpdates/toString.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"MarkerUpdates","type":"class"}},{"name":"MinMaxZoomPreference","qualifiedName":"amap_map.MinMaxZoomPreference","href":"amap_map/MinMaxZoomPreference-class.html","type":"class","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"operator ==","qualifiedName":"amap_map.MinMaxZoomPreference.==","href":"amap_map/MinMaxZoomPreference/operator_equals.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"MinMaxZoomPreference","type":"class"}},{"name":"MinMaxZoomPreference","qualifiedName":"amap_map.MinMaxZoomPreference.MinMaxZoomPreference","href":"amap_map/MinMaxZoomPreference/MinMaxZoomPreference.html","type":"constructor","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"MinMaxZoomPreference","type":"class"}},{"name":"defaultPreference","qualifiedName":"amap_map.MinMaxZoomPreference.defaultPreference","href":"amap_map/MinMaxZoomPreference/defaultPreference-constant.html","type":"constant","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"MinMaxZoomPreference","type":"class"}},{"name":"hashCode","qualifiedName":"amap_map.MinMaxZoomPreference.hashCode","href":"amap_map/MinMaxZoomPreference/hashCode.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"MinMaxZoomPreference","type":"class"}},{"name":"maxZoom","qualifiedName":"amap_map.MinMaxZoomPreference.maxZoom","href":"amap_map/MinMaxZoomPreference/maxZoom.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"MinMaxZoomPreference","type":"class"}},{"name":"minZoom","qualifiedName":"amap_map.MinMaxZoomPreference.minZoom","href":"amap_map/MinMaxZoomPreference/minZoom.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"MinMaxZoomPreference","type":"class"}},{"name":"toJson","qualifiedName":"amap_map.MinMaxZoomPreference.toJson","href":"amap_map/MinMaxZoomPreference/toJson.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"MinMaxZoomPreference","type":"class"}},{"name":"toString","qualifiedName":"amap_map.MinMaxZoomPreference.toString","href":"amap_map/MinMaxZoomPreference/toString.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"MinMaxZoomPreference","type":"class"}},{"name":"MyLocationStyleOptions","qualifiedName":"amap_map.MyLocationStyleOptions","href":"amap_map/MyLocationStyleOptions-class.html","type":"class","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"operator ==","qualifiedName":"amap_map.MyLocationStyleOptions.==","href":"amap_map/MyLocationStyleOptions/operator_equals.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"MyLocationStyleOptions","type":"class"}},{"name":"MyLocationStyleOptions","qualifiedName":"amap_map.MyLocationStyleOptions.MyLocationStyleOptions","href":"amap_map/MyLocationStyleOptions/MyLocationStyleOptions.html","type":"constructor","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"MyLocationStyleOptions","type":"class"}},{"name":"circleFillColor","qualifiedName":"amap_map.MyLocationStyleOptions.circleFillColor","href":"amap_map/MyLocationStyleOptions/circleFillColor.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"MyLocationStyleOptions","type":"class"}},{"name":"circleStrokeColor","qualifiedName":"amap_map.MyLocationStyleOptions.circleStrokeColor","href":"amap_map/MyLocationStyleOptions/circleStrokeColor.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"MyLocationStyleOptions","type":"class"}},{"name":"circleStrokeWidth","qualifiedName":"amap_map.MyLocationStyleOptions.circleStrokeWidth","href":"amap_map/MyLocationStyleOptions/circleStrokeWidth.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"MyLocationStyleOptions","type":"class"}},{"name":"enabled","qualifiedName":"amap_map.MyLocationStyleOptions.enabled","href":"amap_map/MyLocationStyleOptions/enabled.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"MyLocationStyleOptions","type":"class"}},{"name":"fromMap","qualifiedName":"amap_map.MyLocationStyleOptions.fromMap","href":"amap_map/MyLocationStyleOptions/fromMap.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"MyLocationStyleOptions","type":"class"}},{"name":"hashCode","qualifiedName":"amap_map.MyLocationStyleOptions.hashCode","href":"amap_map/MyLocationStyleOptions/hashCode.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"MyLocationStyleOptions","type":"class"}},{"name":"icon","qualifiedName":"amap_map.MyLocationStyleOptions.icon","href":"amap_map/MyLocationStyleOptions/icon.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"MyLocationStyleOptions","type":"class"}},{"name":"toMap","qualifiedName":"amap_map.MyLocationStyleOptions.toMap","href":"amap_map/MyLocationStyleOptions/toMap.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"MyLocationStyleOptions","type":"class"}},{"name":"toString","qualifiedName":"amap_map.MyLocationStyleOptions.toString","href":"amap_map/MyLocationStyleOptions/toString.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"MyLocationStyleOptions","type":"class"}},{"name":"Polygon","qualifiedName":"amap_map.Polygon","href":"amap_map/Polygon-class.html","type":"class","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"operator ==","qualifiedName":"amap_map.Polygon.==","href":"amap_map/Polygon/operator_equals.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"Polygon","type":"class"}},{"name":"Polygon","qualifiedName":"amap_map.Polygon.Polygon","href":"amap_map/Polygon/Polygon.html","type":"constructor","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Polygon","type":"class"}},{"name":"clone","qualifiedName":"amap_map.Polygon.clone","href":"amap_map/Polygon/clone.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"Polygon","type":"class"}},{"name":"copyWith","qualifiedName":"amap_map.Polygon.copyWith","href":"amap_map/Polygon/copyWith.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Polygon","type":"class"}},{"name":"fillColor","qualifiedName":"amap_map.Polygon.fillColor","href":"amap_map/Polygon/fillColor.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Polygon","type":"class"}},{"name":"hashCode","qualifiedName":"amap_map.Polygon.hashCode","href":"amap_map/Polygon/hashCode.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Polygon","type":"class"}},{"name":"joinType","qualifiedName":"amap_map.Polygon.joinType","href":"amap_map/Polygon/joinType.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Polygon","type":"class"}},{"name":"points","qualifiedName":"amap_map.Polygon.points","href":"amap_map/Polygon/points.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Polygon","type":"class"}},{"name":"strokeColor","qualifiedName":"amap_map.Polygon.strokeColor","href":"amap_map/Polygon/strokeColor.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Polygon","type":"class"}},{"name":"strokeWidth","qualifiedName":"amap_map.Polygon.strokeWidth","href":"amap_map/Polygon/strokeWidth.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Polygon","type":"class"}},{"name":"toMap","qualifiedName":"amap_map.Polygon.toMap","href":"amap_map/Polygon/toMap.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"Polygon","type":"class"}},{"name":"visible","qualifiedName":"amap_map.Polygon.visible","href":"amap_map/Polygon/visible.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Polygon","type":"class"}},{"name":"PolygonUpdates","qualifiedName":"amap_map.PolygonUpdates","href":"amap_map/PolygonUpdates-class.html","type":"class","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"operator ==","qualifiedName":"amap_map.PolygonUpdates.==","href":"amap_map/PolygonUpdates/operator_equals.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"PolygonUpdates","type":"class"}},{"name":"PolygonUpdates.from","qualifiedName":"amap_map.PolygonUpdates.from","href":"amap_map/PolygonUpdates/PolygonUpdates.from.html","type":"constructor","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"PolygonUpdates","type":"class"}},{"name":"hashCode","qualifiedName":"amap_map.PolygonUpdates.hashCode","href":"amap_map/PolygonUpdates/hashCode.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"PolygonUpdates","type":"class"}},{"name":"polygonIdsToRemove","qualifiedName":"amap_map.PolygonUpdates.polygonIdsToRemove","href":"amap_map/PolygonUpdates/polygonIdsToRemove.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"PolygonUpdates","type":"class"}},{"name":"polygonsToAdd","qualifiedName":"amap_map.PolygonUpdates.polygonsToAdd","href":"amap_map/PolygonUpdates/polygonsToAdd.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"PolygonUpdates","type":"class"}},{"name":"polygonsToChange","qualifiedName":"amap_map.PolygonUpdates.polygonsToChange","href":"amap_map/PolygonUpdates/polygonsToChange.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"PolygonUpdates","type":"class"}},{"name":"toMap","qualifiedName":"amap_map.PolygonUpdates.toMap","href":"amap_map/PolygonUpdates/toMap.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"PolygonUpdates","type":"class"}},{"name":"toString","qualifiedName":"amap_map.PolygonUpdates.toString","href":"amap_map/PolygonUpdates/toString.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"PolygonUpdates","type":"class"}},{"name":"Polyline","qualifiedName":"amap_map.Polyline","href":"amap_map/Polyline-class.html","type":"class","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"operator ==","qualifiedName":"amap_map.Polyline.==","href":"amap_map/Polyline/operator_equals.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"Polyline","type":"class"}},{"name":"Polyline","qualifiedName":"amap_map.Polyline.Polyline","href":"amap_map/Polyline/Polyline.html","type":"constructor","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Polyline","type":"class"}},{"name":"alpha","qualifiedName":"amap_map.Polyline.alpha","href":"amap_map/Polyline/alpha.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Polyline","type":"class"}},{"name":"capType","qualifiedName":"amap_map.Polyline.capType","href":"amap_map/Polyline/capType.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Polyline","type":"class"}},{"name":"clone","qualifiedName":"amap_map.Polyline.clone","href":"amap_map/Polyline/clone.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"Polyline","type":"class"}},{"name":"color","qualifiedName":"amap_map.Polyline.color","href":"amap_map/Polyline/color.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Polyline","type":"class"}},{"name":"copyWith","qualifiedName":"amap_map.Polyline.copyWith","href":"amap_map/Polyline/copyWith.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Polyline","type":"class"}},{"name":"customTexture","qualifiedName":"amap_map.Polyline.customTexture","href":"amap_map/Polyline/customTexture.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Polyline","type":"class"}},{"name":"dashLineType","qualifiedName":"amap_map.Polyline.dashLineType","href":"amap_map/Polyline/dashLineType.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Polyline","type":"class"}},{"name":"geodesic","qualifiedName":"amap_map.Polyline.geodesic","href":"amap_map/Polyline/geodesic.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Polyline","type":"class"}},{"name":"hashCode","qualifiedName":"amap_map.Polyline.hashCode","href":"amap_map/Polyline/hashCode.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Polyline","type":"class"}},{"name":"joinType","qualifiedName":"amap_map.Polyline.joinType","href":"amap_map/Polyline/joinType.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Polyline","type":"class"}},{"name":"onTap","qualifiedName":"amap_map.Polyline.onTap","href":"amap_map/Polyline/onTap.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Polyline","type":"class"}},{"name":"points","qualifiedName":"amap_map.Polyline.points","href":"amap_map/Polyline/points.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Polyline","type":"class"}},{"name":"toMap","qualifiedName":"amap_map.Polyline.toMap","href":"amap_map/Polyline/toMap.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"Polyline","type":"class"}},{"name":"visible","qualifiedName":"amap_map.Polyline.visible","href":"amap_map/Polyline/visible.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Polyline","type":"class"}},{"name":"width","qualifiedName":"amap_map.Polyline.width","href":"amap_map/Polyline/width.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"Polyline","type":"class"}},{"name":"PolylineUpdates","qualifiedName":"amap_map.PolylineUpdates","href":"amap_map/PolylineUpdates-class.html","type":"class","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"operator ==","qualifiedName":"amap_map.PolylineUpdates.==","href":"amap_map/PolylineUpdates/operator_equals.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"PolylineUpdates","type":"class"}},{"name":"PolylineUpdates.from","qualifiedName":"amap_map.PolylineUpdates.from","href":"amap_map/PolylineUpdates/PolylineUpdates.from.html","type":"constructor","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"PolylineUpdates","type":"class"}},{"name":"hashCode","qualifiedName":"amap_map.PolylineUpdates.hashCode","href":"amap_map/PolylineUpdates/hashCode.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"PolylineUpdates","type":"class"}},{"name":"polylineIdsToRemove","qualifiedName":"amap_map.PolylineUpdates.polylineIdsToRemove","href":"amap_map/PolylineUpdates/polylineIdsToRemove.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"PolylineUpdates","type":"class"}},{"name":"polylinesToAdd","qualifiedName":"amap_map.PolylineUpdates.polylinesToAdd","href":"amap_map/PolylineUpdates/polylinesToAdd.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"PolylineUpdates","type":"class"}},{"name":"polylinesToChange","qualifiedName":"amap_map.PolylineUpdates.polylinesToChange","href":"amap_map/PolylineUpdates/polylinesToChange.html","type":"property","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"PolylineUpdates","type":"class"}},{"name":"toMap","qualifiedName":"amap_map.PolylineUpdates.toMap","href":"amap_map/PolylineUpdates/toMap.html","type":"method","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"PolylineUpdates","type":"class"}},{"name":"toString","qualifiedName":"amap_map.PolylineUpdates.toString","href":"amap_map/PolylineUpdates/toString.html","type":"method","overriddenDepth":1,"packageName":"amap_map","enclosedBy":{"name":"PolylineUpdates","type":"class"}},{"name":"keyByMarkerId","qualifiedName":"amap_map.keyByMarkerId","href":"amap_map/keyByMarkerId.html","type":"function","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"keyByPolygonId","qualifiedName":"amap_map.keyByPolygonId","href":"amap_map/keyByPolygonId.html","type":"function","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"keyByPolylineId","qualifiedName":"amap_map.keyByPolylineId","href":"amap_map/keyByPolylineId.html","type":"function","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}},{"name":"serializeOverlaySet","qualifiedName":"amap_map.serializeOverlaySet","href":"amap_map/serializeOverlaySet.html","type":"function","overriddenDepth":0,"packageName":"amap_map","enclosedBy":{"name":"amap_map","type":"library"}}] diff --git a/doc/api/static-assets/URI.js b/doc/api/static-assets/URI.js new file mode 100644 index 0000000..5d73a4b --- /dev/null +++ b/doc/api/static-assets/URI.js @@ -0,0 +1,56 @@ +/*! URI.js v1.17.1 http://medialize.github.io/URI.js/ */ +/* build contains: URI.js */ +(function(p,w){"object"===typeof exports?module.exports=w(require("./punycode"),require("./IPv6"),require("./SecondLevelDomains")):"function"===typeof define&&define.amd?define(["./punycode","./IPv6","./SecondLevelDomains"],w):p.URI=w(p.punycode,p.IPv6,p.SecondLevelDomains,p)})(this,function(p,w,u,m){function d(a,b){var c=1<=arguments.length,f=2<=arguments.length;if(!(this instanceof d))return c?f?new d(a,b):new d(a):new d;if(void 0===a){if(c)throw new TypeError("undefined is not a valid argument for URI"); +a="undefined"!==typeof location?location.href+"":""}this.href(a);return void 0!==b?this.absoluteTo(b):this}function r(a){return a.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function v(a){return void 0===a?"Undefined":String(Object.prototype.toString.call(a)).slice(8,-1)}function h(a){return"Array"===v(a)}function D(a,b){var c={},d,g;if("RegExp"===v(b))c=null;else if(h(b))for(d=0,g=b.length;d]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?\u00ab\u00bb\u201c\u201d\u2018\u2019]))/ig;d.findUri={start:/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,end:/[\s\r\n]|$/,trim:/[`!()\[\]{};:'".,<>?\u00ab\u00bb\u201c\u201d\u201e\u2018\u2019]+$/};d.defaultPorts={http:"80",https:"443",ftp:"21",gopher:"70",ws:"80",wss:"443"};d.invalid_hostname_characters= +/[^a-zA-Z0-9\.-]/;d.domAttributes={a:"href",blockquote:"cite",link:"href",base:"href",script:"src",form:"action",img:"src",area:"href",iframe:"src",embed:"src",source:"src",track:"src",input:"src",audio:"src",video:"src"};d.getDomAttribute=function(a){if(a&&a.nodeName){var b=a.nodeName.toLowerCase();return"input"===b&&"image"!==a.type?void 0:d.domAttributes[b]}};d.encode=B;d.decode=decodeURIComponent;d.iso8859=function(){d.encode=escape;d.decode=unescape};d.unicode=function(){d.encode=B;d.decode= +decodeURIComponent};d.characters={pathname:{encode:{expression:/%(24|26|2B|2C|3B|3D|3A|40)/ig,map:{"%24":"$","%26":"&","%2B":"+","%2C":",","%3B":";","%3D":"=","%3A":":","%40":"@"}},decode:{expression:/[\/\?#]/g,map:{"/":"%2F","?":"%3F","#":"%23"}}},reserved:{encode:{expression:/%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig,map:{"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",", +"%3B":";","%3D":"="}}},urnpath:{encode:{expression:/%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig,map:{"%21":"!","%24":"$","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"=","%40":"@"}},decode:{expression:/[\/\?#:]/g,map:{"/":"%2F","?":"%3F","#":"%23",":":"%3A"}}}};d.encodeQuery=function(a,b){var c=d.encode(a+"");void 0===b&&(b=d.escapeQuerySpace);return b?c.replace(/%20/g,"+"):c};d.decodeQuery=function(a,b){a+="";void 0===b&&(b=d.escapeQuerySpace);try{return d.decode(b?a.replace(/\+/g, +"%20"):a)}catch(c){return a}};var t={encode:"encode",decode:"decode"},y,C=function(a,b){return function(c){try{return d[b](c+"").replace(d.characters[a][b].expression,function(c){return d.characters[a][b].map[c]})}catch(f){return c}}};for(y in t)d[y+"PathSegment"]=C("pathname",t[y]),d[y+"UrnPathSegment"]=C("urnpath",t[y]);t=function(a,b,c){return function(f){var g;g=c?function(a){return d[b](d[c](a))}:d[b];f=(f+"").split(a);for(var e=0,l=f.length;ed)return a.charAt(0)===b.charAt(0)&&"/"===a.charAt(0)?"/":"";if("/"!==a.charAt(d)||"/"!==b.charAt(d))d=a.substring(0,d).lastIndexOf("/"); +return a.substring(0,d+1)};d.withinString=function(a,b,c){c||(c={});var f=c.start||d.findUri.start,e=c.end||d.findUri.end,k=c.trim||d.findUri.trim,l=/[a-z0-9-]=["']?$/i;for(f.lastIndex=0;;){var n=f.exec(a);if(!n)break;n=n.index;if(c.ignoreHtml){var h=a.slice(Math.max(n-3,0),n);if(h&&l.test(h))continue}var h=n+a.slice(n).search(e),m=a.slice(n,h).replace(k,"");c.ignore&&c.ignore.test(m)||(h=n+m.length,m=b(m,n,h,a),a=a.slice(0,n)+m+a.slice(h),f.lastIndex=n+m.length)}f.lastIndex=0;return a};d.ensureValidHostname= +function(a){if(a.match(d.invalid_hostname_characters)){if(!p)throw new TypeError('Hostname "'+a+'" contains characters other than [A-Z0-9.-] and Punycode.js is not available');if(p.toASCII(a).match(d.invalid_hostname_characters))throw new TypeError('Hostname "'+a+'" contains characters other than [A-Z0-9.-]');}};d.noConflict=function(a){if(a)return a={URI:this.noConflict()},m.URITemplate&&"function"===typeof m.URITemplate.noConflict&&(a.URITemplate=m.URITemplate.noConflict()),m.IPv6&&"function"=== +typeof m.IPv6.noConflict&&(a.IPv6=m.IPv6.noConflict()),m.SecondLevelDomains&&"function"===typeof m.SecondLevelDomains.noConflict&&(a.SecondLevelDomains=m.SecondLevelDomains.noConflict()),a;m.URI===this&&(m.URI=H);return this};e.build=function(a){if(!0===a)this._deferred_build=!0;else if(void 0===a||this._deferred_build)this._string=d.build(this._parts),this._deferred_build=!1;return this};e.clone=function(){return new d(this)};e.valueOf=e.toString=function(){return this.build(!1)._string};e.protocol= +x("protocol");e.username=x("username");e.password=x("password");e.hostname=x("hostname");e.port=x("port");e.query=F("query","?");e.fragment=F("fragment","#");e.search=function(a,b){var c=this.query(a,b);return"string"===typeof c&&c.length?"?"+c:c};e.hash=function(a,b){var c=this.fragment(a,b);return"string"===typeof c&&c.length?"#"+c:c};e.pathname=function(a,b){if(void 0===a||!0===a){var c=this._parts.path||(this._parts.hostname?"/":"");return a?(this._parts.urn?d.decodeUrnPath:d.decodePath)(c):c}this._parts.path= +this._parts.urn?a?d.recodeUrnPath(a):"":a?d.recodePath(a):"/";this.build(!b);return this};e.path=e.pathname;e.href=function(a,b){var c;if(void 0===a)return this.toString();this._string="";this._parts=d._parts();var f=a instanceof d,e="object"===typeof a&&(a.hostname||a.path||a.pathname);a.nodeName&&(e=d.getDomAttribute(a),a=a[e]||"",e=!1);!f&&e&&void 0!==a.pathname&&(a=a.toString());if("string"===typeof a||a instanceof String)this._parts=d.parse(String(a),this._parts);else if(f||e)for(c in f=f?a._parts: +a,f)q.call(this._parts,c)&&(this._parts[c]=f[c]);else throw new TypeError("invalid input");this.build(!b);return this};e.is=function(a){var b=!1,c=!1,f=!1,e=!1,k=!1,l=!1,h=!1,m=!this._parts.urn;this._parts.hostname&&(m=!1,c=d.ip4_expression.test(this._parts.hostname),f=d.ip6_expression.test(this._parts.hostname),b=c||f,k=(e=!b)&&u&&u.has(this._parts.hostname),l=e&&d.idn_expression.test(this._parts.hostname),h=e&&d.punycode_expression.test(this._parts.hostname));switch(a.toLowerCase()){case "relative":return m; +case "absolute":return!m;case "domain":case "name":return e;case "sld":return k;case "ip":return b;case "ip4":case "ipv4":case "inet4":return c;case "ip6":case "ipv6":case "inet6":return f;case "idn":return l;case "url":return!this._parts.urn;case "urn":return!!this._parts.urn;case "punycode":return h}return null};var I=e.protocol,J=e.port,K=e.hostname;e.protocol=function(a,b){if(void 0!==a&&a&&(a=a.replace(/:(\/\/)?$/,""),!a.match(d.protocol_expression)))throw new TypeError('Protocol "'+a+"\" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]"); +return I.call(this,a,b)};e.scheme=e.protocol;e.port=function(a,b){if(this._parts.urn)return void 0===a?"":this;if(void 0!==a&&(0===a&&(a=null),a&&(a+="",":"===a.charAt(0)&&(a=a.substring(1)),a.match(/[^0-9]/))))throw new TypeError('Port "'+a+'" contains characters other than [0-9]');return J.call(this,a,b)};e.hostname=function(a,b){if(this._parts.urn)return void 0===a?"":this;if(void 0!==a){var c={};if("/"!==d.parseHost(a,c))throw new TypeError('Hostname "'+a+'" contains characters other than [A-Z0-9.-]'); +a=c.hostname}return K.call(this,a,b)};e.origin=function(a,b){if(this._parts.urn)return void 0===a?"":this;if(void 0===a){var c=this.protocol();return this.authority()?(c?c+"://":"")+this.authority():""}c=d(a);this.protocol(c.protocol()).authority(c.authority()).build(!b);return this};e.host=function(a,b){if(this._parts.urn)return void 0===a?"":this;if(void 0===a)return this._parts.hostname?d.buildHost(this._parts):"";if("/"!==d.parseHost(a,this._parts))throw new TypeError('Hostname "'+a+'" contains characters other than [A-Z0-9.-]'); +this.build(!b);return this};e.authority=function(a,b){if(this._parts.urn)return void 0===a?"":this;if(void 0===a)return this._parts.hostname?d.buildAuthority(this._parts):"";if("/"!==d.parseAuthority(a,this._parts))throw new TypeError('Hostname "'+a+'" contains characters other than [A-Z0-9.-]');this.build(!b);return this};e.userinfo=function(a,b){if(this._parts.urn)return void 0===a?"":this;if(void 0===a){if(!this._parts.username)return"";var c=d.buildUserinfo(this._parts);return c.substring(0,c.length- +1)}"@"!==a[a.length-1]&&(a+="@");d.parseUserinfo(a,this._parts);this.build(!b);return this};e.resource=function(a,b){var c;if(void 0===a)return this.path()+this.search()+this.hash();c=d.parse(a);this._parts.path=c.path;this._parts.query=c.query;this._parts.fragment=c.fragment;this.build(!b);return this};e.subdomain=function(a,b){if(this._parts.urn)return void 0===a?"":this;if(void 0===a){if(!this._parts.hostname||this.is("IP"))return"";var c=this._parts.hostname.length-this.domain().length-1;return this._parts.hostname.substring(0, +c)||""}c=this._parts.hostname.length-this.domain().length;c=this._parts.hostname.substring(0,c);c=new RegExp("^"+r(c));a&&"."!==a.charAt(a.length-1)&&(a+=".");a&&d.ensureValidHostname(a);this._parts.hostname=this._parts.hostname.replace(c,a);this.build(!b);return this};e.domain=function(a,b){if(this._parts.urn)return void 0===a?"":this;"boolean"===typeof a&&(b=a,a=void 0);if(void 0===a){if(!this._parts.hostname||this.is("IP"))return"";var c=this._parts.hostname.match(/\./g);if(c&&2>c.length)return this._parts.hostname; +c=this._parts.hostname.length-this.tld(b).length-1;c=this._parts.hostname.lastIndexOf(".",c-1)+1;return this._parts.hostname.substring(c)||""}if(!a)throw new TypeError("cannot set domain empty");d.ensureValidHostname(a);!this._parts.hostname||this.is("IP")?this._parts.hostname=a:(c=new RegExp(r(this.domain())+"$"),this._parts.hostname=this._parts.hostname.replace(c,a));this.build(!b);return this};e.tld=function(a,b){if(this._parts.urn)return void 0===a?"":this;"boolean"===typeof a&&(b=a,a=void 0); +if(void 0===a){if(!this._parts.hostname||this.is("IP"))return"";var c=this._parts.hostname.lastIndexOf("."),c=this._parts.hostname.substring(c+1);return!0!==b&&u&&u.list[c.toLowerCase()]?u.get(this._parts.hostname)||c:c}if(a)if(a.match(/[^a-zA-Z0-9-]/))if(u&&u.is(a))c=new RegExp(r(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(c,a);else throw new TypeError('TLD "'+a+'" contains characters other than [A-Z0-9]');else{if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host"); +c=new RegExp(r(this.tld())+"$");this._parts.hostname=this._parts.hostname.replace(c,a)}else throw new TypeError("cannot set TLD empty");this.build(!b);return this};e.directory=function(a,b){if(this._parts.urn)return void 0===a?"":this;if(void 0===a||!0===a){if(!this._parts.path&&!this._parts.hostname)return"";if("/"===this._parts.path)return"/";var c=this._parts.path.length-this.filename().length-1,c=this._parts.path.substring(0,c)||(this._parts.hostname?"/":"");return a?d.decodePath(c):c}c=this._parts.path.length- +this.filename().length;c=this._parts.path.substring(0,c);c=new RegExp("^"+r(c));this.is("relative")||(a||(a="/"),"/"!==a.charAt(0)&&(a="/"+a));a&&"/"!==a.charAt(a.length-1)&&(a+="/");a=d.recodePath(a);this._parts.path=this._parts.path.replace(c,a);this.build(!b);return this};e.filename=function(a,b){if(this._parts.urn)return void 0===a?"":this;if(void 0===a||!0===a){if(!this._parts.path||"/"===this._parts.path)return"";var c=this._parts.path.lastIndexOf("/"),c=this._parts.path.substring(c+1);return a? +d.decodePathSegment(c):c}c=!1;"/"===a.charAt(0)&&(a=a.substring(1));a.match(/\.?\//)&&(c=!0);var f=new RegExp(r(this.filename())+"$");a=d.recodePath(a);this._parts.path=this._parts.path.replace(f,a);c?this.normalizePath(b):this.build(!b);return this};e.suffix=function(a,b){if(this._parts.urn)return void 0===a?"":this;if(void 0===a||!0===a){if(!this._parts.path||"/"===this._parts.path)return"";var c=this.filename(),f=c.lastIndexOf(".");if(-1===f)return"";c=c.substring(f+1);c=/^[a-z0-9%]+$/i.test(c)? +c:"";return a?d.decodePathSegment(c):c}"."===a.charAt(0)&&(a=a.substring(1));if(c=this.suffix())f=a?new RegExp(r(c)+"$"):new RegExp(r("."+c)+"$");else{if(!a)return this;this._parts.path+="."+d.recodePath(a)}f&&(a=d.recodePath(a),this._parts.path=this._parts.path.replace(f,a));this.build(!b);return this};e.segment=function(a,b,c){var d=this._parts.urn?":":"/",e=this.path(),k="/"===e.substring(0,1),e=e.split(d);void 0!==a&&"number"!==typeof a&&(c=b,b=a,a=void 0);if(void 0!==a&&"number"!==typeof a)throw Error('Bad segment "'+ +a+'", must be 0-based integer');k&&e.shift();0>a&&(a=Math.max(e.length+a,0));if(void 0===b)return void 0===a?e:e[a];if(null===a||void 0===e[a])if(h(b)){e=[];a=0;for(var l=b.length;a .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; + } + .label { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table td, + .table th { + background-color: #fff !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } +} +@font-face { + font-family: 'Glyphicons Halflings'; + + src: url('../fonts/glyphicons-halflings-regular.eot'); + src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); +} +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: normal; + line-height: 1; + + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.glyphicon-asterisk:before { + content: "\2a"; +} +.glyphicon-plus:before { + content: "\2b"; +} +.glyphicon-euro:before, +.glyphicon-eur:before { + content: "\20ac"; +} +.glyphicon-minus:before { + content: "\2212"; +} +.glyphicon-cloud:before { + content: "\2601"; +} +.glyphicon-envelope:before { + content: "\2709"; +} +.glyphicon-pencil:before { + content: "\270f"; +} +.glyphicon-glass:before { + content: "\e001"; +} +.glyphicon-music:before { + content: "\e002"; +} +.glyphicon-search:before { + content: "\e003"; +} +.glyphicon-heart:before { + content: "\e005"; +} +.glyphicon-star:before { + content: "\e006"; +} +.glyphicon-star-empty:before { + content: "\e007"; +} +.glyphicon-user:before { + content: "\e008"; +} +.glyphicon-film:before { + content: "\e009"; +} +.glyphicon-th-large:before { + content: "\e010"; +} +.glyphicon-th:before { + content: "\e011"; +} +.glyphicon-th-list:before { + content: "\e012"; +} +.glyphicon-ok:before { + content: "\e013"; +} +.glyphicon-remove:before { + content: "\e014"; +} +.glyphicon-zoom-in:before { + content: "\e015"; +} +.glyphicon-zoom-out:before { + content: "\e016"; +} +.glyphicon-off:before { + content: "\e017"; +} +.glyphicon-signal:before { + content: "\e018"; +} +.glyphicon-cog:before { + content: "\e019"; +} +.glyphicon-trash:before { + content: "\e020"; +} +.glyphicon-home:before { + content: "\e021"; +} +.glyphicon-file:before { + content: "\e022"; +} +.glyphicon-time:before { + content: "\e023"; +} +.glyphicon-road:before { + content: "\e024"; +} +.glyphicon-download-alt:before { + content: "\e025"; +} +.glyphicon-download:before { + content: "\e026"; +} +.glyphicon-upload:before { + content: "\e027"; +} +.glyphicon-inbox:before { + content: "\e028"; +} +.glyphicon-play-circle:before { + content: "\e029"; +} +.glyphicon-repeat:before { + content: "\e030"; +} +.glyphicon-refresh:before { + content: "\e031"; +} +.glyphicon-list-alt:before { + content: "\e032"; +} +.glyphicon-lock:before { + content: "\e033"; +} +.glyphicon-flag:before { + content: "\e034"; +} +.glyphicon-headphones:before { + content: "\e035"; +} +.glyphicon-volume-off:before { + content: "\e036"; +} +.glyphicon-volume-down:before { + content: "\e037"; +} +.glyphicon-volume-up:before { + content: "\e038"; +} +.glyphicon-qrcode:before { + content: "\e039"; +} +.glyphicon-barcode:before { + content: "\e040"; +} +.glyphicon-tag:before { + content: "\e041"; +} +.glyphicon-tags:before { + content: "\e042"; +} +.glyphicon-book:before { + content: "\e043"; +} +.glyphicon-bookmark:before { + content: "\e044"; +} +.glyphicon-print:before { + content: "\e045"; +} +.glyphicon-camera:before { + content: "\e046"; +} +.glyphicon-font:before { + content: "\e047"; +} +.glyphicon-bold:before { + content: "\e048"; +} +.glyphicon-italic:before { + content: "\e049"; +} +.glyphicon-text-height:before { + content: "\e050"; +} +.glyphicon-text-width:before { + content: "\e051"; +} +.glyphicon-align-left:before { + content: "\e052"; +} +.glyphicon-align-center:before { + content: "\e053"; +} +.glyphicon-align-right:before { + content: "\e054"; +} +.glyphicon-align-justify:before { + content: "\e055"; +} +.glyphicon-list:before { + content: "\e056"; +} +.glyphicon-indent-left:before { + content: "\e057"; +} +.glyphicon-indent-right:before { + content: "\e058"; +} +.glyphicon-facetime-video:before { + content: "\e059"; +} +.glyphicon-picture:before { + content: "\e060"; +} +.glyphicon-map-marker:before { + content: "\e062"; +} +.glyphicon-adjust:before { + content: "\e063"; +} +.glyphicon-tint:before { + content: "\e064"; +} +.glyphicon-edit:before { + content: "\e065"; +} +.glyphicon-share:before { + content: "\e066"; +} +.glyphicon-check:before { + content: "\e067"; +} +.glyphicon-move:before { + content: "\e068"; +} +.glyphicon-step-backward:before { + content: "\e069"; +} +.glyphicon-fast-backward:before { + content: "\e070"; +} +.glyphicon-backward:before { + content: "\e071"; +} +.glyphicon-play:before { + content: "\e072"; +} +.glyphicon-pause:before { + content: "\e073"; +} +.glyphicon-stop:before { + content: "\e074"; +} +.glyphicon-forward:before { + content: "\e075"; +} +.glyphicon-fast-forward:before { + content: "\e076"; +} +.glyphicon-step-forward:before { + content: "\e077"; +} +.glyphicon-eject:before { + content: "\e078"; +} +.glyphicon-chevron-left:before { + content: "\e079"; +} +.glyphicon-chevron-right:before { + content: "\e080"; +} +.glyphicon-plus-sign:before { + content: "\e081"; +} +.glyphicon-minus-sign:before { + content: "\e082"; +} +.glyphicon-remove-sign:before { + content: "\e083"; +} +.glyphicon-ok-sign:before { + content: "\e084"; +} +.glyphicon-question-sign:before { + content: "\e085"; +} +.glyphicon-info-sign:before { + content: "\e086"; +} +.glyphicon-screenshot:before { + content: "\e087"; +} +.glyphicon-remove-circle:before { + content: "\e088"; +} +.glyphicon-ok-circle:before { + content: "\e089"; +} +.glyphicon-ban-circle:before { + content: "\e090"; +} +.glyphicon-arrow-left:before { + content: "\e091"; +} +.glyphicon-arrow-right:before { + content: "\e092"; +} +.glyphicon-arrow-up:before { + content: "\e093"; +} +.glyphicon-arrow-down:before { + content: "\e094"; +} +.glyphicon-share-alt:before { + content: "\e095"; +} +.glyphicon-resize-full:before { + content: "\e096"; +} +.glyphicon-resize-small:before { + content: "\e097"; +} +.glyphicon-exclamation-sign:before { + content: "\e101"; +} +.glyphicon-gift:before { + content: "\e102"; +} +.glyphicon-leaf:before { + content: "\e103"; +} +.glyphicon-fire:before { + content: "\e104"; +} +.glyphicon-eye-open:before { + content: "\e105"; +} +.glyphicon-eye-close:before { + content: "\e106"; +} +.glyphicon-warning-sign:before { + content: "\e107"; +} +.glyphicon-plane:before { + content: "\e108"; +} +.glyphicon-calendar:before { + content: "\e109"; +} +.glyphicon-random:before { + content: "\e110"; +} +.glyphicon-comment:before { + content: "\e111"; +} +.glyphicon-magnet:before { + content: "\e112"; +} +.glyphicon-chevron-up:before { + content: "\e113"; +} +.glyphicon-chevron-down:before { + content: "\e114"; +} +.glyphicon-retweet:before { + content: "\e115"; +} +.glyphicon-shopping-cart:before { + content: "\e116"; +} +.glyphicon-folder-close:before { + content: "\e117"; +} +.glyphicon-folder-open:before { + content: "\e118"; +} +.glyphicon-resize-vertical:before { + content: "\e119"; +} +.glyphicon-resize-horizontal:before { + content: "\e120"; +} +.glyphicon-hdd:before { + content: "\e121"; +} +.glyphicon-bullhorn:before { + content: "\e122"; +} +.glyphicon-bell:before { + content: "\e123"; +} +.glyphicon-certificate:before { + content: "\e124"; +} +.glyphicon-thumbs-up:before { + content: "\e125"; +} +.glyphicon-thumbs-down:before { + content: "\e126"; +} +.glyphicon-hand-right:before { + content: "\e127"; +} +.glyphicon-hand-left:before { + content: "\e128"; +} +.glyphicon-hand-up:before { + content: "\e129"; +} +.glyphicon-hand-down:before { + content: "\e130"; +} +.glyphicon-circle-arrow-right:before { + content: "\e131"; +} +.glyphicon-circle-arrow-left:before { + content: "\e132"; +} +.glyphicon-circle-arrow-up:before { + content: "\e133"; +} +.glyphicon-circle-arrow-down:before { + content: "\e134"; +} +.glyphicon-globe:before { + content: "\e135"; +} +.glyphicon-wrench:before { + content: "\e136"; +} +.glyphicon-tasks:before { + content: "\e137"; +} +.glyphicon-filter:before { + content: "\e138"; +} +.glyphicon-briefcase:before { + content: "\e139"; +} +.glyphicon-fullscreen:before { + content: "\e140"; +} +.glyphicon-dashboard:before { + content: "\e141"; +} +.glyphicon-paperclip:before { + content: "\e142"; +} +.glyphicon-heart-empty:before { + content: "\e143"; +} +.glyphicon-link:before { + content: "\e144"; +} +.glyphicon-phone:before { + content: "\e145"; +} +.glyphicon-pushpin:before { + content: "\e146"; +} +.glyphicon-usd:before { + content: "\e148"; +} +.glyphicon-gbp:before { + content: "\e149"; +} +.glyphicon-sort:before { + content: "\e150"; +} +.glyphicon-sort-by-alphabet:before { + content: "\e151"; +} +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; +} +.glyphicon-sort-by-order:before { + content: "\e153"; +} +.glyphicon-sort-by-order-alt:before { + content: "\e154"; +} +.glyphicon-sort-by-attributes:before { + content: "\e155"; +} +.glyphicon-sort-by-attributes-alt:before { + content: "\e156"; +} +.glyphicon-unchecked:before { + content: "\e157"; +} +.glyphicon-expand:before { + content: "\e158"; +} +.glyphicon-collapse-down:before { + content: "\e159"; +} +.glyphicon-collapse-up:before { + content: "\e160"; +} +.glyphicon-log-in:before { + content: "\e161"; +} +.glyphicon-flash:before { + content: "\e162"; +} +.glyphicon-log-out:before { + content: "\e163"; +} +.glyphicon-new-window:before { + content: "\e164"; +} +.glyphicon-record:before { + content: "\e165"; +} +.glyphicon-save:before { + content: "\e166"; +} +.glyphicon-open:before { + content: "\e167"; +} +.glyphicon-saved:before { + content: "\e168"; +} +.glyphicon-import:before { + content: "\e169"; +} +.glyphicon-export:before { + content: "\e170"; +} +.glyphicon-send:before { + content: "\e171"; +} +.glyphicon-floppy-disk:before { + content: "\e172"; +} +.glyphicon-floppy-saved:before { + content: "\e173"; +} +.glyphicon-floppy-remove:before { + content: "\e174"; +} +.glyphicon-floppy-save:before { + content: "\e175"; +} +.glyphicon-floppy-open:before { + content: "\e176"; +} +.glyphicon-credit-card:before { + content: "\e177"; +} +.glyphicon-transfer:before { + content: "\e178"; +} +.glyphicon-cutlery:before { + content: "\e179"; +} +.glyphicon-header:before { + content: "\e180"; +} +.glyphicon-compressed:before { + content: "\e181"; +} +.glyphicon-earphone:before { + content: "\e182"; +} +.glyphicon-phone-alt:before { + content: "\e183"; +} +.glyphicon-tower:before { + content: "\e184"; +} +.glyphicon-stats:before { + content: "\e185"; +} +.glyphicon-sd-video:before { + content: "\e186"; +} +.glyphicon-hd-video:before { + content: "\e187"; +} +.glyphicon-subtitles:before { + content: "\e188"; +} +.glyphicon-sound-stereo:before { + content: "\e189"; +} +.glyphicon-sound-dolby:before { + content: "\e190"; +} +.glyphicon-sound-5-1:before { + content: "\e191"; +} +.glyphicon-sound-6-1:before { + content: "\e192"; +} +.glyphicon-sound-7-1:before { + content: "\e193"; +} +.glyphicon-copyright-mark:before { + content: "\e194"; +} +.glyphicon-registration-mark:before { + content: "\e195"; +} +.glyphicon-cloud-download:before { + content: "\e197"; +} +.glyphicon-cloud-upload:before { + content: "\e198"; +} +.glyphicon-tree-conifer:before { + content: "\e199"; +} +.glyphicon-tree-deciduous:before { + content: "\e200"; +} +.glyphicon-cd:before { + content: "\e201"; +} +.glyphicon-save-file:before { + content: "\e202"; +} +.glyphicon-open-file:before { + content: "\e203"; +} +.glyphicon-level-up:before { + content: "\e204"; +} +.glyphicon-copy:before { + content: "\e205"; +} +.glyphicon-paste:before { + content: "\e206"; +} +.glyphicon-alert:before { + content: "\e209"; +} +.glyphicon-equalizer:before { + content: "\e210"; +} +.glyphicon-king:before { + content: "\e211"; +} +.glyphicon-queen:before { + content: "\e212"; +} +.glyphicon-pawn:before { + content: "\e213"; +} +.glyphicon-bishop:before { + content: "\e214"; +} +.glyphicon-knight:before { + content: "\e215"; +} +.glyphicon-baby-formula:before { + content: "\e216"; +} +.glyphicon-tent:before { + content: "\26fa"; +} +.glyphicon-blackboard:before { + content: "\e218"; +} +.glyphicon-bed:before { + content: "\e219"; +} +.glyphicon-apple:before { + content: "\f8ff"; +} +.glyphicon-erase:before { + content: "\e221"; +} +.glyphicon-hourglass:before { + content: "\231b"; +} +.glyphicon-lamp:before { + content: "\e223"; +} +.glyphicon-duplicate:before { + content: "\e224"; +} +.glyphicon-piggy-bank:before { + content: "\e225"; +} +.glyphicon-scissors:before { + content: "\e226"; +} +.glyphicon-bitcoin:before { + content: "\e227"; +} +.glyphicon-btc:before { + content: "\e227"; +} +.glyphicon-xbt:before { + content: "\e227"; +} +.glyphicon-yen:before { + content: "\00a5"; +} +.glyphicon-jpy:before { + content: "\00a5"; +} +.glyphicon-ruble:before { + content: "\20bd"; +} +.glyphicon-rub:before { + content: "\20bd"; +} +.glyphicon-scale:before { + content: "\e230"; +} +.glyphicon-ice-lolly:before { + content: "\e231"; +} +.glyphicon-ice-lolly-tasted:before { + content: "\e232"; +} +.glyphicon-education:before { + content: "\e233"; +} +.glyphicon-option-horizontal:before { + content: "\e234"; +} +.glyphicon-option-vertical:before { + content: "\e235"; +} +.glyphicon-menu-hamburger:before { + content: "\e236"; +} +.glyphicon-modal-window:before { + content: "\e237"; +} +.glyphicon-oil:before { + content: "\e238"; +} +.glyphicon-grain:before { + content: "\e239"; +} +.glyphicon-sunglasses:before { + content: "\e240"; +} +.glyphicon-text-size:before { + content: "\e241"; +} +.glyphicon-text-color:before { + content: "\e242"; +} +.glyphicon-text-background:before { + content: "\e243"; +} +.glyphicon-object-align-top:before { + content: "\e244"; +} +.glyphicon-object-align-bottom:before { + content: "\e245"; +} +.glyphicon-object-align-horizontal:before { + content: "\e246"; +} +.glyphicon-object-align-left:before { + content: "\e247"; +} +.glyphicon-object-align-vertical:before { + content: "\e248"; +} +.glyphicon-object-align-right:before { + content: "\e249"; +} +.glyphicon-triangle-right:before { + content: "\e250"; +} +.glyphicon-triangle-left:before { + content: "\e251"; +} +.glyphicon-triangle-bottom:before { + content: "\e252"; +} +.glyphicon-triangle-top:before { + content: "\e253"; +} +.glyphicon-console:before { + content: "\e254"; +} +.glyphicon-superscript:before { + content: "\e255"; +} +.glyphicon-subscript:before { + content: "\e256"; +} +.glyphicon-menu-left:before { + content: "\e257"; +} +.glyphicon-menu-right:before { + content: "\e258"; +} +.glyphicon-menu-down:before { + content: "\e259"; +} +.glyphicon-menu-up:before { + content: "\e260"; +} +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +html { + font-size: 10px; + + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.42857143; + color: #333; + background-color: #fff; +} +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +a { + color: #337ab7; + text-decoration: none; +} +a:hover, +a:focus { + color: #23527c; + text-decoration: underline; +} +a:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +figure { + margin: 0; +} +img { + vertical-align: middle; +} +.img-responsive, +.thumbnail > img, +.thumbnail a > img, +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + max-width: 100%; + height: auto; +} +.img-rounded { + border-radius: 6px; +} +.img-thumbnail { + display: inline-block; + max-width: 100%; + height: auto; + padding: 4px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: all .2s ease-in-out; + -o-transition: all .2s ease-in-out; + transition: all .2s ease-in-out; +} +.img-circle { + border-radius: 50%; +} +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eee; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} +[role="button"] { + cursor: pointer; +} +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit; +} +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small, +.h1 small, +.h2 small, +.h3 small, +.h4 small, +.h5 small, +.h6 small, +h1 .small, +h2 .small, +h3 .small, +h4 .small, +h5 .small, +h6 .small, +.h1 .small, +.h2 .small, +.h3 .small, +.h4 .small, +.h5 .small, +.h6 .small { + font-weight: normal; + line-height: 1; + color: #777; +} +h1, +.h1, +h2, +.h2, +h3, +.h3 { + margin-top: 20px; + margin-bottom: 10px; +} +h1 small, +.h1 small, +h2 small, +.h2 small, +h3 small, +.h3 small, +h1 .small, +.h1 .small, +h2 .small, +.h2 .small, +h3 .small, +.h3 .small { + font-size: 65%; +} +h4, +.h4, +h5, +.h5, +h6, +.h6 { + margin-top: 10px; + margin-bottom: 10px; +} +h4 small, +.h4 small, +h5 small, +.h5 small, +h6 small, +.h6 small, +h4 .small, +.h4 .small, +h5 .small, +.h5 .small, +h6 .small, +.h6 .small { + font-size: 75%; +} +h1, +.h1 { + font-size: 36px; +} +h2, +.h2 { + font-size: 30px; +} +h3, +.h3 { + font-size: 24px; +} +h4, +.h4 { + font-size: 18px; +} +h5, +.h5 { + font-size: 14px; +} +h6, +.h6 { + font-size: 12px; +} +p { + margin: 0 0 10px; +} +.lead { + margin-bottom: 20px; + font-size: 16px; + font-weight: 300; + line-height: 1.4; +} +@media (min-width: 768px) { + .lead { + font-size: 21px; + } +} +small, +.small { + font-size: 85%; +} +mark, +.mark { + padding: .2em; + background-color: #fcf8e3; +} +.text-left { + text-align: left; +} +.text-right { + text-align: right; +} +.text-center { + text-align: center; +} +.text-justify { + text-align: justify; +} +.text-nowrap { + white-space: nowrap; +} +.text-lowercase { + text-transform: lowercase; +} +.text-uppercase { + text-transform: uppercase; +} +.text-capitalize { + text-transform: capitalize; +} +.text-muted { + color: #777; +} +.text-primary { + color: #337ab7; +} +a.text-primary:hover { + color: #286090; +} +.text-success { + color: #3c763d; +} +a.text-success:hover { + color: #2b542c; +} +.text-info { + color: #31708f; +} +a.text-info:hover { + color: #245269; +} +.text-warning { + color: #8a6d3b; +} +a.text-warning:hover { + color: #66512c; +} +.text-danger { + color: #a94442; +} +a.text-danger:hover { + color: #843534; +} +.bg-primary { + color: #fff; + background-color: #337ab7; +} +a.bg-primary:hover { + background-color: #286090; +} +.bg-success { + background-color: #dff0d8; +} +a.bg-success:hover { + background-color: #c1e2b3; +} +.bg-info { + background-color: #d9edf7; +} +a.bg-info:hover { + background-color: #afd9ee; +} +.bg-warning { + background-color: #fcf8e3; +} +a.bg-warning:hover { + background-color: #f7ecb5; +} +.bg-danger { + background-color: #f2dede; +} +a.bg-danger:hover { + background-color: #e4b9b9; +} +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eee; +} +ul, +ol { + margin-top: 0; + margin-bottom: 10px; +} +ul ul, +ol ul, +ul ol, +ol ol { + margin-bottom: 0; +} +.list-unstyled { + padding-left: 0; + list-style: none; +} +.list-inline { + padding-left: 0; + margin-left: -5px; + list-style: none; +} +.list-inline > li { + display: inline-block; + padding-right: 5px; + padding-left: 5px; +} +dl { + margin-top: 0; + margin-bottom: 20px; +} +dt, +dd { + line-height: 1.42857143; +} +dt { + font-weight: bold; +} +dd { + margin-left: 0; +} +@media (min-width: 768px) { + .dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; + } + .dl-horizontal dd { + margin-left: 180px; + } +} +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #777; +} +.initialism { + font-size: 90%; + text-transform: uppercase; +} +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + font-size: 17.5px; + border-left: 5px solid #eee; +} +blockquote p:last-child, +blockquote ul:last-child, +blockquote ol:last-child { + margin-bottom: 0; +} +blockquote footer, +blockquote small, +blockquote .small { + display: block; + font-size: 80%; + line-height: 1.42857143; + color: #777; +} +blockquote footer:before, +blockquote small:before, +blockquote .small:before { + content: '\2014 \00A0'; +} +.blockquote-reverse, +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + text-align: right; + border-right: 5px solid #eee; + border-left: 0; +} +.blockquote-reverse footer:before, +blockquote.pull-right footer:before, +.blockquote-reverse small:before, +blockquote.pull-right small:before, +.blockquote-reverse .small:before, +blockquote.pull-right .small:before { + content: ''; +} +.blockquote-reverse footer:after, +blockquote.pull-right footer:after, +.blockquote-reverse small:after, +blockquote.pull-right small:after, +.blockquote-reverse .small:after, +blockquote.pull-right .small:after { + content: '\00A0 \2014'; +} +address { + margin-bottom: 20px; + font-style: normal; + line-height: 1.42857143; +} +code, +kbd, +pre, +samp { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; +} +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + background-color: #f9f2f4; + border-radius: 4px; +} +kbd { + padding: 2px 4px; + font-size: 90%; + color: #fff; + background-color: #333; + border-radius: 3px; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); +} +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: bold; + -webkit-box-shadow: none; + box-shadow: none; +} +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: #333; + word-break: break-all; + word-wrap: break-word; + background-color: #f5f5f5; + border: 1px solid #ccc; + border-radius: 4px; +} +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; +} +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} +.container { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} +@media (min-width: 768px) { + .container { + width: 750px; + } +} +@media (min-width: 992px) { + .container { + width: 970px; + } +} +@media (min-width: 1200px) { + .container { + width: 1170px; + } +} +.container-fluid { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} +.row { + margin-right: -15px; + margin-left: -15px; +} +.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 { + position: relative; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; +} +.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { + float: left; +} +.col-xs-12 { + width: 100%; +} +.col-xs-11 { + width: 91.66666667%; +} +.col-xs-10 { + width: 83.33333333%; +} +.col-xs-9 { + width: 75%; +} +.col-xs-8 { + width: 66.66666667%; +} +.col-xs-7 { + width: 58.33333333%; +} +.col-xs-6 { + width: 50%; +} +.col-xs-5 { + width: 41.66666667%; +} +.col-xs-4 { + width: 33.33333333%; +} +.col-xs-3 { + width: 25%; +} +.col-xs-2 { + width: 16.66666667%; +} +.col-xs-1 { + width: 8.33333333%; +} +.col-xs-pull-12 { + right: 100%; +} +.col-xs-pull-11 { + right: 91.66666667%; +} +.col-xs-pull-10 { + right: 83.33333333%; +} +.col-xs-pull-9 { + right: 75%; +} +.col-xs-pull-8 { + right: 66.66666667%; +} +.col-xs-pull-7 { + right: 58.33333333%; +} +.col-xs-pull-6 { + right: 50%; +} +.col-xs-pull-5 { + right: 41.66666667%; +} +.col-xs-pull-4 { + right: 33.33333333%; +} +.col-xs-pull-3 { + right: 25%; +} +.col-xs-pull-2 { + right: 16.66666667%; +} +.col-xs-pull-1 { + right: 8.33333333%; +} +.col-xs-pull-0 { + right: auto; +} +.col-xs-push-12 { + left: 100%; +} +.col-xs-push-11 { + left: 91.66666667%; +} +.col-xs-push-10 { + left: 83.33333333%; +} +.col-xs-push-9 { + left: 75%; +} +.col-xs-push-8 { + left: 66.66666667%; +} +.col-xs-push-7 { + left: 58.33333333%; +} +.col-xs-push-6 { + left: 50%; +} +.col-xs-push-5 { + left: 41.66666667%; +} +.col-xs-push-4 { + left: 33.33333333%; +} +.col-xs-push-3 { + left: 25%; +} +.col-xs-push-2 { + left: 16.66666667%; +} +.col-xs-push-1 { + left: 8.33333333%; +} +.col-xs-push-0 { + left: auto; +} +.col-xs-offset-12 { + margin-left: 100%; +} +.col-xs-offset-11 { + margin-left: 91.66666667%; +} +.col-xs-offset-10 { + margin-left: 83.33333333%; +} +.col-xs-offset-9 { + margin-left: 75%; +} +.col-xs-offset-8 { + margin-left: 66.66666667%; +} +.col-xs-offset-7 { + margin-left: 58.33333333%; +} +.col-xs-offset-6 { + margin-left: 50%; +} +.col-xs-offset-5 { + margin-left: 41.66666667%; +} +.col-xs-offset-4 { + margin-left: 33.33333333%; +} +.col-xs-offset-3 { + margin-left: 25%; +} +.col-xs-offset-2 { + margin-left: 16.66666667%; +} +.col-xs-offset-1 { + margin-left: 8.33333333%; +} +.col-xs-offset-0 { + margin-left: 0; +} +@media (min-width: 768px) { + .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { + float: left; + } + .col-sm-12 { + width: 100%; + } + .col-sm-11 { + width: 91.66666667%; + } + .col-sm-10 { + width: 83.33333333%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-8 { + width: 66.66666667%; + } + .col-sm-7 { + width: 58.33333333%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-5 { + width: 41.66666667%; + } + .col-sm-4 { + width: 33.33333333%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-2 { + width: 16.66666667%; + } + .col-sm-1 { + width: 8.33333333%; + } + .col-sm-pull-12 { + right: 100%; + } + .col-sm-pull-11 { + right: 91.66666667%; + } + .col-sm-pull-10 { + right: 83.33333333%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-8 { + right: 66.66666667%; + } + .col-sm-pull-7 { + right: 58.33333333%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-5 { + right: 41.66666667%; + } + .col-sm-pull-4 { + right: 33.33333333%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-2 { + right: 16.66666667%; + } + .col-sm-pull-1 { + right: 8.33333333%; + } + .col-sm-pull-0 { + right: auto; + } + .col-sm-push-12 { + left: 100%; + } + .col-sm-push-11 { + left: 91.66666667%; + } + .col-sm-push-10 { + left: 83.33333333%; + } + .col-sm-push-9 { + left: 75%; + } + .col-sm-push-8 { + left: 66.66666667%; + } + .col-sm-push-7 { + left: 58.33333333%; + } + .col-sm-push-6 { + left: 50%; + } + .col-sm-push-5 { + left: 41.66666667%; + } + .col-sm-push-4 { + left: 33.33333333%; + } + .col-sm-push-3 { + left: 25%; + } + .col-sm-push-2 { + left: 16.66666667%; + } + .col-sm-push-1 { + left: 8.33333333%; + } + .col-sm-push-0 { + left: auto; + } + .col-sm-offset-12 { + margin-left: 100%; + } + .col-sm-offset-11 { + margin-left: 91.66666667%; + } + .col-sm-offset-10 { + margin-left: 83.33333333%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-8 { + margin-left: 66.66666667%; + } + .col-sm-offset-7 { + margin-left: 58.33333333%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-5 { + margin-left: 41.66666667%; + } + .col-sm-offset-4 { + margin-left: 33.33333333%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-2 { + margin-left: 16.66666667%; + } + .col-sm-offset-1 { + margin-left: 8.33333333%; + } + .col-sm-offset-0 { + margin-left: 0; + } +} +@media (min-width: 992px) { + .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { + float: left; + } + .col-md-12 { + width: 100%; + } + .col-md-11 { + width: 91.66666667%; + } + .col-md-10 { + width: 83.33333333%; + } + .col-md-9 { + width: 75%; + } + .col-md-8 { + width: 66.66666667%; + } + .col-md-7 { + width: 58.33333333%; + } + .col-md-6 { + width: 50%; + } + .col-md-5 { + width: 41.66666667%; + } + .col-md-4 { + width: 33.33333333%; + } + .col-md-3 { + width: 25%; + } + .col-md-2 { + width: 16.66666667%; + } + .col-md-1 { + width: 8.33333333%; + } + .col-md-pull-12 { + right: 100%; + } + .col-md-pull-11 { + right: 91.66666667%; + } + .col-md-pull-10 { + right: 83.33333333%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-8 { + right: 66.66666667%; + } + .col-md-pull-7 { + right: 58.33333333%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-5 { + right: 41.66666667%; + } + .col-md-pull-4 { + right: 33.33333333%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-2 { + right: 16.66666667%; + } + .col-md-pull-1 { + right: 8.33333333%; + } + .col-md-pull-0 { + right: auto; + } + .col-md-push-12 { + left: 100%; + } + .col-md-push-11 { + left: 91.66666667%; + } + .col-md-push-10 { + left: 83.33333333%; + } + .col-md-push-9 { + left: 75%; + } + .col-md-push-8 { + left: 66.66666667%; + } + .col-md-push-7 { + left: 58.33333333%; + } + .col-md-push-6 { + left: 50%; + } + .col-md-push-5 { + left: 41.66666667%; + } + .col-md-push-4 { + left: 33.33333333%; + } + .col-md-push-3 { + left: 25%; + } + .col-md-push-2 { + left: 16.66666667%; + } + .col-md-push-1 { + left: 8.33333333%; + } + .col-md-push-0 { + left: auto; + } + .col-md-offset-12 { + margin-left: 100%; + } + .col-md-offset-11 { + margin-left: 91.66666667%; + } + .col-md-offset-10 { + margin-left: 83.33333333%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-8 { + margin-left: 66.66666667%; + } + .col-md-offset-7 { + margin-left: 58.33333333%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-5 { + margin-left: 41.66666667%; + } + .col-md-offset-4 { + margin-left: 33.33333333%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-2 { + margin-left: 16.66666667%; + } + .col-md-offset-1 { + margin-left: 8.33333333%; + } + .col-md-offset-0 { + margin-left: 0; + } +} +@media (min-width: 1200px) { + .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { + float: left; + } + .col-lg-12 { + width: 100%; + } + .col-lg-11 { + width: 91.66666667%; + } + .col-lg-10 { + width: 83.33333333%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-8 { + width: 66.66666667%; + } + .col-lg-7 { + width: 58.33333333%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-5 { + width: 41.66666667%; + } + .col-lg-4 { + width: 33.33333333%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-2 { + width: 16.66666667%; + } + .col-lg-1 { + width: 8.33333333%; + } + .col-lg-pull-12 { + right: 100%; + } + .col-lg-pull-11 { + right: 91.66666667%; + } + .col-lg-pull-10 { + right: 83.33333333%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-8 { + right: 66.66666667%; + } + .col-lg-pull-7 { + right: 58.33333333%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-5 { + right: 41.66666667%; + } + .col-lg-pull-4 { + right: 33.33333333%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-2 { + right: 16.66666667%; + } + .col-lg-pull-1 { + right: 8.33333333%; + } + .col-lg-pull-0 { + right: auto; + } + .col-lg-push-12 { + left: 100%; + } + .col-lg-push-11 { + left: 91.66666667%; + } + .col-lg-push-10 { + left: 83.33333333%; + } + .col-lg-push-9 { + left: 75%; + } + .col-lg-push-8 { + left: 66.66666667%; + } + .col-lg-push-7 { + left: 58.33333333%; + } + .col-lg-push-6 { + left: 50%; + } + .col-lg-push-5 { + left: 41.66666667%; + } + .col-lg-push-4 { + left: 33.33333333%; + } + .col-lg-push-3 { + left: 25%; + } + .col-lg-push-2 { + left: 16.66666667%; + } + .col-lg-push-1 { + left: 8.33333333%; + } + .col-lg-push-0 { + left: auto; + } + .col-lg-offset-12 { + margin-left: 100%; + } + .col-lg-offset-11 { + margin-left: 91.66666667%; + } + .col-lg-offset-10 { + margin-left: 83.33333333%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-8 { + margin-left: 66.66666667%; + } + .col-lg-offset-7 { + margin-left: 58.33333333%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-5 { + margin-left: 41.66666667%; + } + .col-lg-offset-4 { + margin-left: 33.33333333%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-2 { + margin-left: 16.66666667%; + } + .col-lg-offset-1 { + margin-left: 8.33333333%; + } + .col-lg-offset-0 { + margin-left: 0; + } +} +table { + background-color: transparent; +} +caption { + padding-top: 8px; + padding-bottom: 8px; + color: #777; + text-align: left; +} +th { + text-align: left; +} +.table { + width: 100%; + max-width: 100%; + margin-bottom: 20px; +} +.table > thead > tr > th, +.table > tbody > tr > th, +.table > tfoot > tr > th, +.table > thead > tr > td, +.table > tbody > tr > td, +.table > tfoot > tr > td { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; + border-top: 1px solid #ddd; +} +.table > thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #ddd; +} +.table > caption + thead > tr:first-child > th, +.table > colgroup + thead > tr:first-child > th, +.table > thead:first-child > tr:first-child > th, +.table > caption + thead > tr:first-child > td, +.table > colgroup + thead > tr:first-child > td, +.table > thead:first-child > tr:first-child > td { + border-top: 0; +} +.table > tbody + tbody { + border-top: 2px solid #ddd; +} +.table .table { + background-color: #fff; +} +.table-condensed > thead > tr > th, +.table-condensed > tbody > tr > th, +.table-condensed > tfoot > tr > th, +.table-condensed > thead > tr > td, +.table-condensed > tbody > tr > td, +.table-condensed > tfoot > tr > td { + padding: 5px; +} +.table-bordered { + border: 1px solid #ddd; +} +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #ddd; +} +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td { + border-bottom-width: 2px; +} +.table-striped > tbody > tr:nth-of-type(odd) { + background-color: #f9f9f9; +} +.table-hover > tbody > tr:hover { + background-color: #f5f5f5; +} +table col[class*="col-"] { + position: static; + display: table-column; + float: none; +} +table td[class*="col-"], +table th[class*="col-"] { + position: static; + display: table-cell; + float: none; +} +.table > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th { + background-color: #f5f5f5; +} +.table-hover > tbody > tr > td.active:hover, +.table-hover > tbody > tr > th.active:hover, +.table-hover > tbody > tr.active:hover > td, +.table-hover > tbody > tr:hover > .active, +.table-hover > tbody > tr.active:hover > th { + background-color: #e8e8e8; +} +.table > thead > tr > td.success, +.table > tbody > tr > td.success, +.table > tfoot > tr > td.success, +.table > thead > tr > th.success, +.table > tbody > tr > th.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > tbody > tr.success > td, +.table > tfoot > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr.success > th, +.table > tfoot > tr.success > th { + background-color: #dff0d8; +} +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, +.table-hover > tbody > tr.success:hover > td, +.table-hover > tbody > tr:hover > .success, +.table-hover > tbody > tr.success:hover > th { + background-color: #d0e9c6; +} +.table > thead > tr > td.info, +.table > tbody > tr > td.info, +.table > tfoot > tr > td.info, +.table > thead > tr > th.info, +.table > tbody > tr > th.info, +.table > tfoot > tr > th.info, +.table > thead > tr.info > td, +.table > tbody > tr.info > td, +.table > tfoot > tr.info > td, +.table > thead > tr.info > th, +.table > tbody > tr.info > th, +.table > tfoot > tr.info > th { + background-color: #d9edf7; +} +.table-hover > tbody > tr > td.info:hover, +.table-hover > tbody > tr > th.info:hover, +.table-hover > tbody > tr.info:hover > td, +.table-hover > tbody > tr:hover > .info, +.table-hover > tbody > tr.info:hover > th { + background-color: #c4e3f3; +} +.table > thead > tr > td.warning, +.table > tbody > tr > td.warning, +.table > tfoot > tr > td.warning, +.table > thead > tr > th.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > tbody > tr.warning > td, +.table > tfoot > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr.warning > th, +.table > tfoot > tr.warning > th { + background-color: #fcf8e3; +} +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, +.table-hover > tbody > tr.warning:hover > td, +.table-hover > tbody > tr:hover > .warning, +.table-hover > tbody > tr.warning:hover > th { + background-color: #faf2cc; +} +.table > thead > tr > td.danger, +.table > tbody > tr > td.danger, +.table > tfoot > tr > td.danger, +.table > thead > tr > th.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > tbody > tr.danger > td, +.table > tfoot > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr.danger > th, +.table > tfoot > tr.danger > th { + background-color: #f2dede; +} +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, +.table-hover > tbody > tr.danger:hover > td, +.table-hover > tbody > tr:hover > .danger, +.table-hover > tbody > tr.danger:hover > th { + background-color: #ebcccc; +} +.table-responsive { + min-height: .01%; + overflow-x: auto; +} +@media screen and (max-width: 767px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #ddd; + } + .table-responsive > .table { + margin-bottom: 0; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} +label { + display: inline-block; + max-width: 100%; + margin-bottom: 5px; + font-weight: bold; +} +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + line-height: normal; +} +input[type="file"] { + display: block; +} +input[type="range"] { + display: block; + width: 100%; +} +select[multiple], +select[size] { + height: auto; +} +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +output { + display: block; + padding-top: 7px; + font-size: 14px; + line-height: 1.42857143; + color: #555; +} +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s; + -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; +} +.form-control:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6); +} +.form-control::-moz-placeholder { + color: #999; + opacity: 1; +} +.form-control:-ms-input-placeholder { + color: #999; +} +.form-control::-webkit-input-placeholder { + color: #999; +} +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + background-color: #eee; + opacity: 1; +} +.form-control[disabled], +fieldset[disabled] .form-control { + cursor: not-allowed; +} +textarea.form-control { + height: auto; +} +input[type="search"] { + -webkit-appearance: none; +} +@media screen and (-webkit-min-device-pixel-ratio: 0) { + input[type="date"], + input[type="time"], + input[type="datetime-local"], + input[type="month"] { + line-height: 34px; + } + input[type="date"].input-sm, + input[type="time"].input-sm, + input[type="datetime-local"].input-sm, + input[type="month"].input-sm, + .input-group-sm input[type="date"], + .input-group-sm input[type="time"], + .input-group-sm input[type="datetime-local"], + .input-group-sm input[type="month"] { + line-height: 30px; + } + input[type="date"].input-lg, + input[type="time"].input-lg, + input[type="datetime-local"].input-lg, + input[type="month"].input-lg, + .input-group-lg input[type="date"], + .input-group-lg input[type="time"], + .input-group-lg input[type="datetime-local"], + .input-group-lg input[type="month"] { + line-height: 46px; + } +} +.form-group { + margin-bottom: 15px; +} +.radio, +.checkbox { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px; +} +.radio label, +.checkbox label { + min-height: 20px; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; +} +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + position: absolute; + margin-top: 4px \9; + margin-left: -20px; +} +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} +.radio-inline, +.checkbox-inline { + position: relative; + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + vertical-align: middle; + cursor: pointer; +} +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"].disabled, +input[type="checkbox"].disabled, +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"] { + cursor: not-allowed; +} +.radio-inline.disabled, +.checkbox-inline.disabled, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} +.radio.disabled label, +.checkbox.disabled label, +fieldset[disabled] .radio label, +fieldset[disabled] .checkbox label { + cursor: not-allowed; +} +.form-control-static { + min-height: 34px; + padding-top: 7px; + padding-bottom: 7px; + margin-bottom: 0; +} +.form-control-static.input-lg, +.form-control-static.input-sm { + padding-right: 0; + padding-left: 0; +} +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.input-sm { + height: 30px; + line-height: 30px; +} +textarea.input-sm, +select[multiple].input-sm { + height: auto; +} +.form-group-sm .form-control { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.form-group-sm .form-control { + height: 30px; + line-height: 30px; +} +textarea.form-group-sm .form-control, +select[multiple].form-group-sm .form-control { + height: auto; +} +.form-group-sm .form-control-static { + height: 30px; + min-height: 32px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; +} +.input-lg { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +select.input-lg { + height: 46px; + line-height: 46px; +} +textarea.input-lg, +select[multiple].input-lg { + height: auto; +} +.form-group-lg .form-control { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +select.form-group-lg .form-control { + height: 46px; + line-height: 46px; +} +textarea.form-group-lg .form-control, +select[multiple].form-group-lg .form-control { + height: auto; +} +.form-group-lg .form-control-static { + height: 46px; + min-height: 38px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; +} +.has-feedback { + position: relative; +} +.has-feedback .form-control { + padding-right: 42.5px; +} +.form-control-feedback { + position: absolute; + top: 0; + right: 0; + z-index: 2; + display: block; + width: 34px; + height: 34px; + line-height: 34px; + text-align: center; + pointer-events: none; +} +.input-lg + .form-control-feedback { + width: 46px; + height: 46px; + line-height: 46px; +} +.input-sm + .form-control-feedback { + width: 30px; + height: 30px; + line-height: 30px; +} +.has-success .help-block, +.has-success .control-label, +.has-success .radio, +.has-success .checkbox, +.has-success .radio-inline, +.has-success .checkbox-inline, +.has-success.radio label, +.has-success.checkbox label, +.has-success.radio-inline label, +.has-success.checkbox-inline label { + color: #3c763d; +} +.has-success .form-control { + border-color: #3c763d; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-success .form-control:focus { + border-color: #2b542c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; +} +.has-success .input-group-addon { + color: #3c763d; + background-color: #dff0d8; + border-color: #3c763d; +} +.has-success .form-control-feedback { + color: #3c763d; +} +.has-warning .help-block, +.has-warning .control-label, +.has-warning .radio, +.has-warning .checkbox, +.has-warning .radio-inline, +.has-warning .checkbox-inline, +.has-warning.radio label, +.has-warning.checkbox label, +.has-warning.radio-inline label, +.has-warning.checkbox-inline label { + color: #8a6d3b; +} +.has-warning .form-control { + border-color: #8a6d3b; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-warning .form-control:focus { + border-color: #66512c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; +} +.has-warning .input-group-addon { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #8a6d3b; +} +.has-warning .form-control-feedback { + color: #8a6d3b; +} +.has-error .help-block, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline, +.has-error.radio label, +.has-error.checkbox label, +.has-error.radio-inline label, +.has-error.checkbox-inline label { + color: #a94442; +} +.has-error .form-control { + border-color: #a94442; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-error .form-control:focus { + border-color: #843534; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; +} +.has-error .input-group-addon { + color: #a94442; + background-color: #f2dede; + border-color: #a94442; +} +.has-error .form-control-feedback { + color: #a94442; +} +.has-feedback label ~ .form-control-feedback { + top: 25px; +} +.has-feedback label.sr-only ~ .form-control-feedback { + top: 0; +} +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373; +} +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-static { + display: inline-block; + } + .form-inline .input-group { + display: inline-table; + vertical-align: middle; + } + .form-inline .input-group .input-group-addon, + .form-inline .input-group .input-group-btn, + .form-inline .input-group .form-control { + width: auto; + } + .form-inline .input-group > .form-control { + width: 100%; + } + .form-inline .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio label, + .form-inline .checkbox label { + padding-left: 0; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .form-inline .has-feedback .form-control-feedback { + top: 0; + } +} +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + padding-top: 7px; + margin-top: 0; + margin-bottom: 0; +} +.form-horizontal .radio, +.form-horizontal .checkbox { + min-height: 27px; +} +.form-horizontal .form-group { + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) { + .form-horizontal .control-label { + padding-top: 7px; + margin-bottom: 0; + text-align: right; + } +} +.form-horizontal .has-feedback .form-control-feedback { + right: 15px; +} +@media (min-width: 768px) { + .form-horizontal .form-group-lg .control-label { + padding-top: 14.333333px; + } +} +@media (min-width: 768px) { + .form-horizontal .form-group-sm .control-label { + padding-top: 6px; + } +} +.btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: normal; + line-height: 1.42857143; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; +} +.btn:focus, +.btn:active:focus, +.btn.active:focus, +.btn.focus, +.btn:active.focus, +.btn.active.focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn:hover, +.btn:focus, +.btn.focus { + color: #333; + text-decoration: none; +} +.btn:active, +.btn.active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + pointer-events: none; + cursor: not-allowed; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; + opacity: .65; +} +.btn-default { + color: #333; + background-color: #fff; + border-color: #ccc; +} +.btn-default:hover, +.btn-default:focus, +.btn-default.focus, +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + background-image: none; +} +.btn-default.disabled, +.btn-default[disabled], +fieldset[disabled] .btn-default, +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled.focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default.focus, +.btn-default.disabled:active, +.btn-default[disabled]:active, +fieldset[disabled] .btn-default:active, +.btn-default.disabled.active, +.btn-default[disabled].active, +fieldset[disabled] .btn-default.active { + background-color: #fff; + border-color: #ccc; +} +.btn-default .badge { + color: #fff; + background-color: #333; +} +.btn-primary { + color: #fff; + background-color: #337ab7; + border-color: #2e6da4; +} +.btn-primary:hover, +.btn-primary:focus, +.btn-primary.focus, +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + color: #fff; + background-color: #286090; + border-color: #204d74; +} +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + background-image: none; +} +.btn-primary.disabled, +.btn-primary[disabled], +fieldset[disabled] .btn-primary, +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary.focus, +.btn-primary.disabled:active, +.btn-primary[disabled]:active, +fieldset[disabled] .btn-primary:active, +.btn-primary.disabled.active, +.btn-primary[disabled].active, +fieldset[disabled] .btn-primary.active { + background-color: #337ab7; + border-color: #2e6da4; +} +.btn-primary .badge { + color: #337ab7; + background-color: #fff; +} +.btn-success { + color: #fff; + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success:hover, +.btn-success:focus, +.btn-success.focus, +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + color: #fff; + background-color: #449d44; + border-color: #398439; +} +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + background-image: none; +} +.btn-success.disabled, +.btn-success[disabled], +fieldset[disabled] .btn-success, +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled.focus, +.btn-success[disabled].focus, +fieldset[disabled] .btn-success.focus, +.btn-success.disabled:active, +.btn-success[disabled]:active, +fieldset[disabled] .btn-success:active, +.btn-success.disabled.active, +.btn-success[disabled].active, +fieldset[disabled] .btn-success.active { + background-color: #5cb85c; + border-color: #4cae4c; +} +.btn-success .badge { + color: #5cb85c; + background-color: #fff; +} +.btn-info { + color: #fff; + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-info:hover, +.btn-info:focus, +.btn-info.focus, +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; +} +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + background-image: none; +} +.btn-info.disabled, +.btn-info[disabled], +fieldset[disabled] .btn-info, +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled.focus, +.btn-info[disabled].focus, +fieldset[disabled] .btn-info.focus, +.btn-info.disabled:active, +.btn-info[disabled]:active, +fieldset[disabled] .btn-info:active, +.btn-info.disabled.active, +.btn-info[disabled].active, +fieldset[disabled] .btn-info.active { + background-color: #5bc0de; + border-color: #46b8da; +} +.btn-info .badge { + color: #5bc0de; + background-color: #fff; +} +.btn-warning { + color: #fff; + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning:hover, +.btn-warning:focus, +.btn-warning.focus, +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + color: #fff; + background-color: #ec971f; + border-color: #d58512; +} +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + background-image: none; +} +.btn-warning.disabled, +.btn-warning[disabled], +fieldset[disabled] .btn-warning, +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled.focus, +.btn-warning[disabled].focus, +fieldset[disabled] .btn-warning.focus, +.btn-warning.disabled:active, +.btn-warning[disabled]:active, +fieldset[disabled] .btn-warning:active, +.btn-warning.disabled.active, +.btn-warning[disabled].active, +fieldset[disabled] .btn-warning.active { + background-color: #f0ad4e; + border-color: #eea236; +} +.btn-warning .badge { + color: #f0ad4e; + background-color: #fff; +} +.btn-danger { + color: #fff; + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger:hover, +.btn-danger:focus, +.btn-danger.focus, +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + background-image: none; +} +.btn-danger.disabled, +.btn-danger[disabled], +fieldset[disabled] .btn-danger, +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled.focus, +.btn-danger[disabled].focus, +fieldset[disabled] .btn-danger.focus, +.btn-danger.disabled:active, +.btn-danger[disabled]:active, +fieldset[disabled] .btn-danger:active, +.btn-danger.disabled.active, +.btn-danger[disabled].active, +fieldset[disabled] .btn-danger.active { + background-color: #d9534f; + border-color: #d43f3a; +} +.btn-danger .badge { + color: #d9534f; + background-color: #fff; +} +.btn-link { + font-weight: normal; + color: #337ab7; + border-radius: 0; +} +.btn-link, +.btn-link:active, +.btn-link.active, +.btn-link[disabled], +fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active { + border-color: transparent; +} +.btn-link:hover, +.btn-link:focus { + color: #23527c; + text-decoration: underline; + background-color: transparent; +} +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus { + color: #777; + text-decoration: none; +} +.btn-lg, +.btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +.btn-sm, +.btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-xs, +.btn-group-xs > .btn { + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +.btn-block { + display: block; + width: 100%; +} +.btn-block + .btn-block { + margin-top: 5px; +} +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} +.fade { + opacity: 0; + -webkit-transition: opacity .15s linear; + -o-transition: opacity .15s linear; + transition: opacity .15s linear; +} +.fade.in { + opacity: 1; +} +.collapse { + display: none; +} +.collapse.in { + display: block; +} +tr.collapse.in { + display: table-row; +} +tbody.collapse.in { + display: table-row-group; +} +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-timing-function: ease; + -o-transition-timing-function: ease; + transition-timing-function: ease; + -webkit-transition-duration: .35s; + -o-transition-duration: .35s; + transition-duration: .35s; + -webkit-transition-property: height, visibility; + -o-transition-property: height, visibility; + transition-property: height, visibility; +} +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px dashed; + border-right: 4px solid transparent; + border-left: 4px solid transparent; +} +.dropup, +.dropdown { + position: relative; +} +.dropdown-toggle:focus { + outline: 0; +} +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + font-size: 14px; + text-align: left; + list-style: none; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); + box-shadow: 0 6px 12px rgba(0, 0, 0, .175); +} +.dropdown-menu.pull-right { + right: 0; + left: auto; +} +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.42857143; + color: #333; + white-space: nowrap; +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + color: #262626; + text-decoration: none; + background-color: #f5f5f5; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #fff; + text-decoration: none; + background-color: #337ab7; + outline: 0; +} +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #777; +} +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); +} +.open > .dropdown-menu { + display: block; +} +.open > a { + outline: 0; +} +.dropdown-menu-right { + right: 0; + left: auto; +} +.dropdown-menu-left { + right: auto; + left: 0; +} +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.42857143; + color: #777; + white-space: nowrap; +} +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; +} +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + content: ""; + border-top: 0; + border-bottom: 4px solid; +} +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; +} +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } + .navbar-right .dropdown-menu-left { + right: auto; + left: 0; + } +} +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + float: left; +} +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover, +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus, +.btn-group > .btn:active, +.btn-group-vertical > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn.active { + z-index: 2; +} +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-left: -1px; +} +.btn-toolbar { + margin-left: -5px; +} +.btn-toolbar .btn-group, +.btn-toolbar .input-group { + float: left; +} +.btn-toolbar > .btn, +.btn-toolbar > .btn-group, +.btn-toolbar > .input-group { + margin-left: 5px; +} +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} +.btn-group > .btn:first-child { + margin-left: 0; +} +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group > .btn-group { + float: left; +} +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} +.btn-group > .btn + .dropdown-toggle { + padding-right: 8px; + padding-left: 8px; +} +.btn-group > .btn-lg + .dropdown-toggle { + padding-right: 12px; + padding-left: 12px; +} +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} +.btn-group.open .dropdown-toggle.btn-link { + -webkit-box-shadow: none; + box-shadow: none; +} +.btn .caret { + margin-left: 0; +} +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} +.dropup .btn-lg .caret { + border-width: 0 5px 5px; +} +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group, +.btn-group-vertical > .btn-group > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; +} +.btn-group-vertical > .btn-group > .btn { + float: none; +} +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; +} +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-left-radius: 4px; +} +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; +} +.btn-group-justified > .btn, +.btn-group-justified > .btn-group { + display: table-cell; + float: none; + width: 1%; +} +.btn-group-justified > .btn-group .btn { + width: 100%; +} +.btn-group-justified > .btn-group .dropdown-menu { + left: auto; +} +[data-toggle="buttons"] > .btn input[type="radio"], +[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], +[data-toggle="buttons"] > .btn input[type="checkbox"], +[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} +.input-group { + position: relative; + display: table; + border-collapse: separate; +} +.input-group[class*="col-"] { + float: none; + padding-right: 0; + padding-left: 0; +} +.input-group .form-control { + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; +} +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; +} +select.input-group-lg > .form-control, +select.input-group-lg > .input-group-addon, +select.input-group-lg > .input-group-btn > .btn { + height: 46px; + line-height: 46px; +} +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +textarea.input-group-lg > .input-group-btn > .btn, +select[multiple].input-group-lg > .form-control, +select[multiple].input-group-lg > .input-group-addon, +select[multiple].input-group-lg > .input-group-btn > .btn { + height: auto; +} +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; +} +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn, +select[multiple].input-group-sm > .form-control, +select[multiple].input-group-sm > .input-group-addon, +select[multiple].input-group-sm > .input-group-btn > .btn { + height: auto; +} +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; +} +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: normal; + line-height: 1; + color: #555; + text-align: center; + background-color: #eee; + border: 1px solid #ccc; + border-radius: 4px; +} +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; +} +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; +} +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { + margin-top: 0; +} +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.input-group-addon:first-child { + border-right: 0; +} +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child), +.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group-addon:last-child { + border-left: 0; +} +.input-group-btn { + position: relative; + font-size: 0; + white-space: nowrap; +} +.input-group-btn > .btn { + position: relative; +} +.input-group-btn > .btn + .btn { + margin-left: -1px; +} +.input-group-btn > .btn:hover, +.input-group-btn > .btn:focus, +.input-group-btn > .btn:active { + z-index: 2; +} +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group { + margin-right: -1px; +} +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group { + margin-left: -1px; +} +.nav { + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.nav > li { + position: relative; + display: block; +} +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #eee; +} +.nav > li.disabled > a { + color: #777; +} +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus { + color: #777; + text-decoration: none; + cursor: not-allowed; + background-color: transparent; +} +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + background-color: #eee; + border-color: #337ab7; +} +.nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.nav > li > a > img { + max-width: none; +} +.nav-tabs { + border-bottom: 1px solid #ddd; +} +.nav-tabs > li { + float: left; + margin-bottom: -1px; +} +.nav-tabs > li > a { + margin-right: 2px; + line-height: 1.42857143; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} +.nav-tabs > li > a:hover { + border-color: #eee #eee #ddd; +} +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #555; + cursor: default; + background-color: #fff; + border: 1px solid #ddd; + border-bottom-color: transparent; +} +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} +.nav-tabs.nav-justified > li { + float: none; +} +.nav-tabs.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; +} +.nav-tabs.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-tabs.nav-justified > li > a { + margin-bottom: 0; + } +} +.nav-tabs.nav-justified > li > a { + margin-right: 0; + border-radius: 4px; +} +.nav-tabs.nav-justified > .active > a, +.nav-tabs.nav-justified > .active > a:hover, +.nav-tabs.nav-justified > .active > a:focus { + border: 1px solid #ddd; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs.nav-justified > .active > a, + .nav-tabs.nav-justified > .active > a:hover, + .nav-tabs.nav-justified > .active > a:focus { + border-bottom-color: #fff; + } +} +.nav-pills > li { + float: left; +} +.nav-pills > li > a { + border-radius: 4px; +} +.nav-pills > li + li { + margin-left: 2px; +} +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus { + color: #fff; + background-color: #337ab7; +} +.nav-stacked > li { + float: none; +} +.nav-stacked > li + li { + margin-top: 2px; + margin-left: 0; +} +.nav-justified { + width: 100%; +} +.nav-justified > li { + float: none; +} +.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; +} +.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; +} +@media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1%; + } + .nav-justified > li > a { + margin-bottom: 0; + } +} +.nav-tabs-justified { + border-bottom: 0; +} +.nav-tabs-justified > li > a { + margin-right: 0; + border-radius: 4px; +} +.nav-tabs-justified > .active > a, +.nav-tabs-justified > .active > a:hover, +.nav-tabs-justified > .active > a:focus { + border: 1px solid #ddd; +} +@media (min-width: 768px) { + .nav-tabs-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs-justified > .active > a, + .nav-tabs-justified > .active > a:hover, + .nav-tabs-justified > .active > a:focus { + border-bottom-color: #fff; + } +} +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.navbar { + position: relative; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent; +} +@media (min-width: 768px) { + .navbar { + border-radius: 4px; + } +} +@media (min-width: 768px) { + .navbar-header { + float: left; + } +} +.navbar-collapse { + padding-right: 15px; + padding-left: 15px; + overflow-x: visible; + -webkit-overflow-scrolling: touch; + border-top: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); +} +.navbar-collapse.in { + overflow-y: auto; +} +@media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .navbar-collapse.in { + overflow-y: visible; + } + .navbar-fixed-top .navbar-collapse, + .navbar-static-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + padding-right: 0; + padding-left: 0; + } +} +.navbar-fixed-top .navbar-collapse, +.navbar-fixed-bottom .navbar-collapse { + max-height: 340px; +} +@media (max-device-width: 480px) and (orientation: landscape) { + .navbar-fixed-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + max-height: 200px; + } +} +.container > .navbar-header, +.container-fluid > .navbar-header, +.container > .navbar-collapse, +.container-fluid > .navbar-collapse { + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) { + .container > .navbar-header, + .container-fluid > .navbar-header, + .container > .navbar-collapse, + .container-fluid > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} +.navbar-static-top { + z-index: 1000; + border-width: 0 0 1px; +} +@media (min-width: 768px) { + .navbar-static-top { + border-radius: 0; + } +} +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; +} +@media (min-width: 768px) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } +} +.navbar-fixed-top { + top: 0; + border-width: 0 0 1px; +} +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; + border-width: 1px 0 0; +} +.navbar-brand { + float: left; + height: 50px; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; +} +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none; +} +.navbar-brand > img { + display: block; +} +@media (min-width: 768px) { + .navbar > .container .navbar-brand, + .navbar > .container-fluid .navbar-brand { + margin-left: -15px; + } +} +.navbar-toggle { + position: relative; + float: right; + padding: 9px 10px; + margin-top: 8px; + margin-right: 15px; + margin-bottom: 8px; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; +} +.navbar-toggle:focus { + outline: 0; +} +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; +} +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; +} +@media (min-width: 768px) { + .navbar-toggle { + display: none; + } +} +.navbar-nav { + margin: 7.5px -15px; +} +.navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; +} +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } +} +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + } +} +.navbar-form { + padding: 10px 15px; + margin-top: 8px; + margin-right: -15px; + margin-bottom: 8px; + margin-left: -15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); +} +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .navbar-form .form-control-static { + display: inline-block; + } + .navbar-form .input-group { + display: inline-table; + vertical-align: middle; + } + .navbar-form .input-group .input-group-addon, + .navbar-form .input-group .input-group-btn, + .navbar-form .input-group .form-control { + width: auto; + } + .navbar-form .input-group > .form-control { + width: 100%; + } + .navbar-form .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio label, + .navbar-form .checkbox label { + padding-left: 0; + } + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .navbar-form .has-feedback .form-control-feedback { + top: 0; + } +} +@media (max-width: 767px) { + .navbar-form .form-group { + margin-bottom: 5px; + } + .navbar-form .form-group:last-child { + margin-bottom: 0; + } +} +@media (min-width: 768px) { + .navbar-form { + width: auto; + padding-top: 0; + padding-bottom: 0; + margin-right: 0; + margin-left: 0; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } +} +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + margin-bottom: 0; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.navbar-btn { + margin-top: 8px; + margin-bottom: 8px; +} +.navbar-btn.btn-sm { + margin-top: 10px; + margin-bottom: 10px; +} +.navbar-btn.btn-xs { + margin-top: 14px; + margin-bottom: 14px; +} +.navbar-text { + margin-top: 15px; + margin-bottom: 15px; +} +@media (min-width: 768px) { + .navbar-text { + float: left; + margin-right: 15px; + margin-left: 15px; + } +} +@media (min-width: 768px) { + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + margin-right: -15px; + } + .navbar-right ~ .navbar-right { + margin-right: 0; + } +} +.navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7; +} +.navbar-default .navbar-brand { + color: #777; +} +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus { + color: #5e5e5e; + background-color: transparent; +} +.navbar-default .navbar-text { + color: #777; +} +.navbar-default .navbar-nav > li > a { + color: #777; +} +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: #333; + background-color: transparent; +} +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: #555; + background-color: #e7e7e7; +} +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus { + color: #ccc; + background-color: transparent; +} +.navbar-default .navbar-toggle { + border-color: #ddd; +} +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #ddd; +} +.navbar-default .navbar-toggle .icon-bar { + background-color: #888; +} +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #e7e7e7; +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + color: #555; + background-color: #e7e7e7; +} +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #777; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #333; + background-color: transparent; + } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #555; + background-color: #e7e7e7; + } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #ccc; + background-color: transparent; + } +} +.navbar-default .navbar-link { + color: #777; +} +.navbar-default .navbar-link:hover { + color: #333; +} +.navbar-default .btn-link { + color: #777; +} +.navbar-default .btn-link:hover, +.navbar-default .btn-link:focus { + color: #333; +} +.navbar-default .btn-link[disabled]:hover, +fieldset[disabled] .navbar-default .btn-link:hover, +.navbar-default .btn-link[disabled]:focus, +fieldset[disabled] .navbar-default .btn-link:focus { + color: #ccc; +} +.navbar-inverse { + background-color: #222; + border-color: #080808; +} +.navbar-inverse .navbar-brand { + color: #9d9d9d; +} +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + color: #fff; + background-color: transparent; +} +.navbar-inverse .navbar-text { + color: #9d9d9d; +} +.navbar-inverse .navbar-nav > li > a { + color: #9d9d9d; +} +.navbar-inverse .navbar-nav > li > a:hover, +.navbar-inverse .navbar-nav > li > a:focus { + color: #fff; + background-color: transparent; +} +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:hover, +.navbar-inverse .navbar-nav > .active > a:focus { + color: #fff; + background-color: #080808; +} +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus { + color: #444; + background-color: transparent; +} +.navbar-inverse .navbar-toggle { + border-color: #333; +} +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: #333; +} +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #fff; +} +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: #101010; +} +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus { + color: #fff; + background-color: #080808; +} +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu .divider { + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #9d9d9d; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: #fff; + background-color: transparent; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #fff; + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #444; + background-color: transparent; + } +} +.navbar-inverse .navbar-link { + color: #9d9d9d; +} +.navbar-inverse .navbar-link:hover { + color: #fff; +} +.navbar-inverse .btn-link { + color: #9d9d9d; +} +.navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link:focus { + color: #fff; +} +.navbar-inverse .btn-link[disabled]:hover, +fieldset[disabled] .navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link[disabled]:focus, +fieldset[disabled] .navbar-inverse .btn-link:focus { + color: #444; +} +.breadcrumb { + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px; +} +.breadcrumb > li { + display: inline-block; +} +.breadcrumb > li + li:before { + padding: 0 5px; + color: #ccc; + content: "/\00a0"; +} +.breadcrumb > .active { + color: #777; +} +.pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; +} +.pagination > li { + display: inline; +} +.pagination > li > a, +.pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + margin-left: -1px; + line-height: 1.42857143; + color: #337ab7; + text-decoration: none; + background-color: #fff; + border: 1px solid #ddd; +} +.pagination > li:first-child > a, +.pagination > li:first-child > span { + margin-left: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} +.pagination > li > a:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus { + color: #23527c; + background-color: #eee; + border-color: #ddd; +} +.pagination > .active > a, +.pagination > .active > span, +.pagination > .active > a:hover, +.pagination > .active > span:hover, +.pagination > .active > a:focus, +.pagination > .active > span:focus { + z-index: 2; + color: #fff; + cursor: default; + background-color: #337ab7; + border-color: #337ab7; +} +.pagination > .disabled > span, +.pagination > .disabled > span:hover, +.pagination > .disabled > span:focus, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus { + color: #777; + cursor: not-allowed; + background-color: #fff; + border-color: #ddd; +} +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: 10px 16px; + font-size: 18px; +} +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; +} +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; +} +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; +} +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; +} +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} +.pager { + padding-left: 0; + margin: 20px 0; + text-align: center; + list-style: none; +} +.pager li { + display: inline; +} +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 15px; +} +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #eee; +} +.pager .next > a, +.pager .next > span { + float: right; +} +.pager .previous > a, +.pager .previous > span { + float: left; +} +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #777; + cursor: not-allowed; + background-color: #fff; +} +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; +} +a.label:hover, +a.label:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} +.label:empty { + display: none; +} +.btn .label { + position: relative; + top: -1px; +} +.label-default { + background-color: #777; +} +.label-default[href]:hover, +.label-default[href]:focus { + background-color: #5e5e5e; +} +.label-primary { + background-color: #337ab7; +} +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: #286090; +} +.label-success { + background-color: #5cb85c; +} +.label-success[href]:hover, +.label-success[href]:focus { + background-color: #449d44; +} +.label-info { + background-color: #5bc0de; +} +.label-info[href]:hover, +.label-info[href]:focus { + background-color: #31b0d5; +} +.label-warning { + background-color: #f0ad4e; +} +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: #ec971f; +} +.label-danger { + background-color: #d9534f; +} +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: #c9302c; +} +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + background-color: #777; + border-radius: 10px; +} +.badge:empty { + display: none; +} +.btn .badge { + position: relative; + top: -1px; +} +.btn-xs .badge, +.btn-group-xs > .btn .badge { + top: 0; + padding: 1px 5px; +} +a.badge:hover, +a.badge:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} +.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: #337ab7; + background-color: #fff; +} +.list-group-item > .badge { + float: right; +} +.list-group-item > .badge + .badge { + margin-right: 5px; +} +.nav-pills > li > a > .badge { + margin-left: 3px; +} +.jumbotron { + padding: 30px 15px; + margin-bottom: 30px; + color: inherit; + background-color: #eee; +} +.jumbotron h1, +.jumbotron .h1 { + color: inherit; +} +.jumbotron p { + margin-bottom: 15px; + font-size: 21px; + font-weight: 200; +} +.jumbotron > hr { + border-top-color: #d5d5d5; +} +.container .jumbotron, +.container-fluid .jumbotron { + border-radius: 6px; +} +.jumbotron .container { + max-width: 100%; +} +@media screen and (min-width: 768px) { + .jumbotron { + padding: 48px 0; + } + .container .jumbotron, + .container-fluid .jumbotron { + padding-right: 60px; + padding-left: 60px; + } + .jumbotron h1, + .jumbotron .h1 { + font-size: 63px; + } +} +.thumbnail { + display: block; + padding: 4px; + margin-bottom: 20px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: border .2s ease-in-out; + -o-transition: border .2s ease-in-out; + transition: border .2s ease-in-out; +} +.thumbnail > img, +.thumbnail a > img { + margin-right: auto; + margin-left: auto; +} +a.thumbnail:hover, +a.thumbnail:focus, +a.thumbnail.active { + border-color: #337ab7; +} +.thumbnail .caption { + padding: 9px; + color: #333; +} +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; +} +.alert h4 { + margin-top: 0; + color: inherit; +} +.alert .alert-link { + font-weight: bold; +} +.alert > p, +.alert > ul { + margin-bottom: 0; +} +.alert > p + p { + margin-top: 5px; +} +.alert-dismissable, +.alert-dismissible { + padding-right: 35px; +} +.alert-dismissable .close, +.alert-dismissible .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} +.alert-success { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; +} +.alert-success hr { + border-top-color: #c9e2b3; +} +.alert-success .alert-link { + color: #2b542c; +} +.alert-info { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; +} +.alert-info hr { + border-top-color: #a6e1ec; +} +.alert-info .alert-link { + color: #245269; +} +.alert-warning { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; +} +.alert-warning hr { + border-top-color: #f7e1b5; +} +.alert-warning .alert-link { + color: #66512c; +} +.alert-danger { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; +} +.alert-danger hr { + border-top-color: #e4b9c0; +} +.alert-danger .alert-link { + color: #843534; +} +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@-o-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f5f5f5; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); +} +.progress-bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + line-height: 20px; + color: #fff; + text-align: center; + background-color: #337ab7; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); + -webkit-transition: width .6s ease; + -o-transition: width .6s ease; + transition: width .6s ease; +} +.progress-striped .progress-bar, +.progress-bar-striped { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + background-size: 40px 40px; +} +.progress.active .progress-bar, +.progress-bar.active { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} +.progress-bar-success { + background-color: #5cb85c; +} +.progress-striped .progress-bar-success { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.progress-bar-info { + background-color: #5bc0de; +} +.progress-striped .progress-bar-info { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.progress-bar-warning { + background-color: #f0ad4e; +} +.progress-striped .progress-bar-warning { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.progress-bar-danger { + background-color: #d9534f; +} +.progress-striped .progress-bar-danger { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.media { + margin-top: 15px; +} +.media:first-child { + margin-top: 0; +} +.media, +.media-body { + overflow: hidden; + zoom: 1; +} +.media-body { + width: 10000px; +} +.media-object { + display: block; +} +.media-right, +.media > .pull-right { + padding-left: 10px; +} +.media-left, +.media > .pull-left { + padding-right: 10px; +} +.media-left, +.media-right, +.media-body { + display: table-cell; + vertical-align: top; +} +.media-middle { + vertical-align: middle; +} +.media-bottom { + vertical-align: bottom; +} +.media-heading { + margin-top: 0; + margin-bottom: 5px; +} +.media-list { + padding-left: 0; + list-style: none; +} +.list-group { + padding-left: 0; + margin-bottom: 20px; +} +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid #ddd; +} +.list-group-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} +a.list-group-item { + color: #555; +} +a.list-group-item .list-group-item-heading { + color: #333; +} +a.list-group-item:hover, +a.list-group-item:focus { + color: #555; + text-decoration: none; + background-color: #f5f5f5; +} +.list-group-item.disabled, +.list-group-item.disabled:hover, +.list-group-item.disabled:focus { + color: #777; + cursor: not-allowed; + background-color: #eee; +} +.list-group-item.disabled .list-group-item-heading, +.list-group-item.disabled:hover .list-group-item-heading, +.list-group-item.disabled:focus .list-group-item-heading { + color: inherit; +} +.list-group-item.disabled .list-group-item-text, +.list-group-item.disabled:hover .list-group-item-text, +.list-group-item.disabled:focus .list-group-item-text { + color: #777; +} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + z-index: 2; + color: #fff; + background-color: #337ab7; + border-color: #337ab7; +} +.list-group-item.active .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:focus .list-group-item-heading, +.list-group-item.active .list-group-item-heading > small, +.list-group-item.active:hover .list-group-item-heading > small, +.list-group-item.active:focus .list-group-item-heading > small, +.list-group-item.active .list-group-item-heading > .small, +.list-group-item.active:hover .list-group-item-heading > .small, +.list-group-item.active:focus .list-group-item-heading > .small { + color: inherit; +} +.list-group-item.active .list-group-item-text, +.list-group-item.active:hover .list-group-item-text, +.list-group-item.active:focus .list-group-item-text { + color: #c7ddef; +} +.list-group-item-success { + color: #3c763d; + background-color: #dff0d8; +} +a.list-group-item-success { + color: #3c763d; +} +a.list-group-item-success .list-group-item-heading { + color: inherit; +} +a.list-group-item-success:hover, +a.list-group-item-success:focus { + color: #3c763d; + background-color: #d0e9c6; +} +a.list-group-item-success.active, +a.list-group-item-success.active:hover, +a.list-group-item-success.active:focus { + color: #fff; + background-color: #3c763d; + border-color: #3c763d; +} +.list-group-item-info { + color: #31708f; + background-color: #d9edf7; +} +a.list-group-item-info { + color: #31708f; +} +a.list-group-item-info .list-group-item-heading { + color: inherit; +} +a.list-group-item-info:hover, +a.list-group-item-info:focus { + color: #31708f; + background-color: #c4e3f3; +} +a.list-group-item-info.active, +a.list-group-item-info.active:hover, +a.list-group-item-info.active:focus { + color: #fff; + background-color: #31708f; + border-color: #31708f; +} +.list-group-item-warning { + color: #8a6d3b; + background-color: #fcf8e3; +} +a.list-group-item-warning { + color: #8a6d3b; +} +a.list-group-item-warning .list-group-item-heading { + color: inherit; +} +a.list-group-item-warning:hover, +a.list-group-item-warning:focus { + color: #8a6d3b; + background-color: #faf2cc; +} +a.list-group-item-warning.active, +a.list-group-item-warning.active:hover, +a.list-group-item-warning.active:focus { + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b; +} +.list-group-item-danger { + color: #a94442; + background-color: #f2dede; +} +a.list-group-item-danger { + color: #a94442; +} +a.list-group-item-danger .list-group-item-heading { + color: inherit; +} +a.list-group-item-danger:hover, +a.list-group-item-danger:focus { + color: #a94442; + background-color: #ebcccc; +} +a.list-group-item-danger.active, +a.list-group-item-danger.active:hover, +a.list-group-item-danger.active:focus { + color: #fff; + background-color: #a94442; + border-color: #a94442; +} +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} +.panel { + margin-bottom: 20px; + background-color: #fff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); + box-shadow: 0 1px 1px rgba(0, 0, 0, .05); +} +.panel-body { + padding: 15px; +} +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel-heading > .dropdown .dropdown-toggle { + color: inherit; +} +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; +} +.panel-title > a, +.panel-title > small, +.panel-title > .small, +.panel-title > small > a, +.panel-title > .small > a { + color: inherit; +} +.panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .list-group, +.panel > .panel-collapse > .list-group { + margin-bottom: 0; +} +.panel > .list-group .list-group-item, +.panel > .panel-collapse > .list-group .list-group-item { + border-width: 1px 0; + border-radius: 0; +} +.panel > .list-group:first-child .list-group-item:first-child, +.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { + border-top: 0; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .list-group:last-child .list-group-item:last-child, +.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { + border-bottom: 0; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; +} +.list-group + .panel-footer { + border-top-width: 0; +} +.panel > .table, +.panel > .table-responsive > .table, +.panel > .panel-collapse > .table { + margin-bottom: 0; +} +.panel > .table caption, +.panel > .table-responsive > .table caption, +.panel > .panel-collapse > .table caption { + padding-right: 15px; + padding-left: 15px; +} +.panel > .table:first-child, +.panel > .table-responsive:first-child > .table:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { + border-top-left-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { + border-top-right-radius: 3px; +} +.panel > .table:last-child, +.panel > .table-responsive:last-child > .table:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { + border-bottom-right-radius: 3px; +} +.panel > .panel-body + .table, +.panel > .panel-body + .table-responsive, +.panel > .table + .panel-body, +.panel > .table-responsive + .panel-body { + border-top: 1px solid #ddd; +} +.panel > .table > tbody:first-child > tr:first-child th, +.panel > .table > tbody:first-child > tr:first-child td { + border-top: 0; +} +.panel > .table-bordered, +.panel > .table-responsive > .table-bordered { + border: 0; +} +.panel > .table-bordered > thead > tr > th:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, +.panel > .table-bordered > tbody > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, +.panel > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-bordered > thead > tr > td:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, +.panel > .table-bordered > tbody > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, +.panel > .table-bordered > tfoot > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; +} +.panel > .table-bordered > thead > tr > th:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, +.panel > .table-bordered > tbody > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, +.panel > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-bordered > thead > tr > td:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, +.panel > .table-bordered > tbody > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, +.panel > .table-bordered > tfoot > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; +} +.panel > .table-bordered > thead > tr:first-child > td, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, +.panel > .table-bordered > tbody > tr:first-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, +.panel > .table-bordered > thead > tr:first-child > th, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, +.panel > .table-bordered > tbody > tr:first-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { + border-bottom: 0; +} +.panel > .table-bordered > tbody > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, +.panel > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-bordered > tbody > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, +.panel > .table-bordered > tfoot > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { + border-bottom: 0; +} +.panel > .table-responsive { + margin-bottom: 0; + border: 0; +} +.panel-group { + margin-bottom: 20px; +} +.panel-group .panel { + margin-bottom: 0; + border-radius: 4px; +} +.panel-group .panel + .panel { + margin-top: 5px; +} +.panel-group .panel-heading { + border-bottom: 0; +} +.panel-group .panel-heading + .panel-collapse > .panel-body, +.panel-group .panel-heading + .panel-collapse > .list-group { + border-top: 1px solid #ddd; +} +.panel-group .panel-footer { + border-top: 0; +} +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #ddd; +} +.panel-default { + border-color: #ddd; +} +.panel-default > .panel-heading { + color: #333; + background-color: #f5f5f5; + border-color: #ddd; +} +.panel-default > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ddd; +} +.panel-default > .panel-heading .badge { + color: #f5f5f5; + background-color: #333; +} +.panel-default > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ddd; +} +.panel-primary { + border-color: #337ab7; +} +.panel-primary > .panel-heading { + color: #fff; + background-color: #337ab7; + border-color: #337ab7; +} +.panel-primary > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #337ab7; +} +.panel-primary > .panel-heading .badge { + color: #337ab7; + background-color: #fff; +} +.panel-primary > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #337ab7; +} +.panel-success { + border-color: #d6e9c6; +} +.panel-success > .panel-heading { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; +} +.panel-success > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #d6e9c6; +} +.panel-success > .panel-heading .badge { + color: #dff0d8; + background-color: #3c763d; +} +.panel-success > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #d6e9c6; +} +.panel-info { + border-color: #bce8f1; +} +.panel-info > .panel-heading { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; +} +.panel-info > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #bce8f1; +} +.panel-info > .panel-heading .badge { + color: #d9edf7; + background-color: #31708f; +} +.panel-info > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #bce8f1; +} +.panel-warning { + border-color: #faebcc; +} +.panel-warning > .panel-heading { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; +} +.panel-warning > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #faebcc; +} +.panel-warning > .panel-heading .badge { + color: #fcf8e3; + background-color: #8a6d3b; +} +.panel-warning > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #faebcc; +} +.panel-danger { + border-color: #ebccd1; +} +.panel-danger > .panel-heading { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; +} +.panel-danger > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ebccd1; +} +.panel-danger > .panel-heading .badge { + color: #f2dede; + background-color: #a94442; +} +.panel-danger > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ebccd1; +} +.embed-responsive { + position: relative; + display: block; + height: 0; + padding: 0; + overflow: hidden; +} +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} +.embed-responsive-16by9 { + padding-bottom: 56.25%; +} +.embed-responsive-4by3 { + padding-bottom: 75%; +} +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); +} +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, .15); +} +.well-lg { + padding: 24px; + border-radius: 6px; +} +.well-sm { + padding: 9px; + border-radius: 3px; +} +.close { + float: right; + font-size: 21px; + font-weight: bold; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + filter: alpha(opacity=20); + opacity: .2; +} +.close:hover, +.close:focus { + color: #000; + text-decoration: none; + cursor: pointer; + filter: alpha(opacity=50); + opacity: .5; +} +button.close { + -webkit-appearance: none; + padding: 0; + cursor: pointer; + background: transparent; + border: 0; +} +.modal-open { + overflow: hidden; +} +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + display: none; + overflow: hidden; + -webkit-overflow-scrolling: touch; + outline: 0; +} +.modal.fade .modal-dialog { + -webkit-transition: -webkit-transform .3s ease-out; + -o-transition: -o-transform .3s ease-out; + transition: transform .3s ease-out; + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + -o-transform: translate(0, -25%); + transform: translate(0, -25%); +} +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + -o-transform: translate(0, 0); + transform: translate(0, 0); +} +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} +.modal-dialog { + position: relative; + width: auto; + margin: 10px; +} +.modal-content { + position: relative; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + outline: 0; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); + box-shadow: 0 3px 9px rgba(0, 0, 0, .5); +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000; +} +.modal-backdrop.fade { + filter: alpha(opacity=0); + opacity: 0; +} +.modal-backdrop.in { + filter: alpha(opacity=50); + opacity: .5; +} +.modal-header { + min-height: 16.42857143px; + padding: 15px; + border-bottom: 1px solid #e5e5e5; +} +.modal-header .close { + margin-top: -2px; +} +.modal-title { + margin: 0; + line-height: 1.42857143; +} +.modal-body { + position: relative; + padding: 15px; +} +.modal-footer { + padding: 15px; + text-align: right; + border-top: 1px solid #e5e5e5; +} +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} +@media (min-width: 768px) { + .modal-dialog { + width: 600px; + margin: 30px auto; + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + } + .modal-sm { + width: 300px; + } +} +@media (min-width: 992px) { + .modal-lg { + width: 900px; + } +} +.tooltip { + position: absolute; + z-index: 1070; + display: block; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 12px; + font-weight: normal; + line-height: 1.4; + filter: alpha(opacity=0); + opacity: 0; +} +.tooltip.in { + filter: alpha(opacity=90); + opacity: .9; +} +.tooltip.top { + padding: 5px 0; + margin-top: -3px; +} +.tooltip.right { + padding: 0 5px; + margin-left: 3px; +} +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; +} +.tooltip.left { + padding: 0 5px; + margin-left: -3px; +} +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #fff; + text-align: center; + text-decoration: none; + background-color: #000; + border-radius: 4px; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.tooltip.top-left .tooltip-arrow { + right: 5px; + bottom: 0; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.tooltip.top-right .tooltip-arrow { + bottom: 0; + left: 5px; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.tooltip.bottom-left .tooltip-arrow { + top: 0; + right: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.tooltip.bottom-right .tooltip-arrow { + top: 0; + left: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: none; + max-width: 276px; + padding: 1px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + font-weight: normal; + line-height: 1.42857143; + text-align: left; + white-space: normal; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + box-shadow: 0 5px 10px rgba(0, 0, 0, .2); +} +.popover.top { + margin-top: -10px; +} +.popover.right { + margin-left: 10px; +} +.popover.bottom { + margin-top: 10px; +} +.popover.left { + margin-left: -10px; +} +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; +} +.popover-content { + padding: 9px 14px; +} +.popover > .arrow, +.popover > .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.popover > .arrow { + border-width: 11px; +} +.popover > .arrow:after { + content: ""; + border-width: 10px; +} +.popover.top > .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, .25); + border-bottom-width: 0; +} +.popover.top > .arrow:after { + bottom: 1px; + margin-left: -10px; + content: " "; + border-top-color: #fff; + border-bottom-width: 0; +} +.popover.right > .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, .25); + border-left-width: 0; +} +.popover.right > .arrow:after { + bottom: -10px; + left: 1px; + content: " "; + border-right-color: #fff; + border-left-width: 0; +} +.popover.bottom > .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, .25); +} +.popover.bottom > .arrow:after { + top: 1px; + margin-left: -10px; + content: " "; + border-top-width: 0; + border-bottom-color: #fff; +} +.popover.left > .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, .25); +} +.popover.left > .arrow:after { + right: 1px; + bottom: -10px; + content: " "; + border-right-width: 0; + border-left-color: #fff; +} +.carousel { + position: relative; +} +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} +.carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: .6s ease-in-out left; + -o-transition: .6s ease-in-out left; + transition: .6s ease-in-out left; +} +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + line-height: 1; +} +@media all and (transform-3d), (-webkit-transform-3d) { + .carousel-inner > .item { + -webkit-transition: -webkit-transform .6s ease-in-out; + -o-transition: -o-transform .6s ease-in-out; + transition: transform .6s ease-in-out; + + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000; + perspective: 1000; + } + .carousel-inner > .item.next, + .carousel-inner > .item.active.right { + left: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + .carousel-inner > .item.prev, + .carousel-inner > .item.active.left { + left: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + .carousel-inner > .item.next.left, + .carousel-inner > .item.prev.right, + .carousel-inner > .item.active { + left: 0; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} +.carousel-inner > .active { + left: 0; +} +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} +.carousel-inner > .next { + left: 100%; +} +.carousel-inner > .prev { + left: -100%; +} +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} +.carousel-inner > .active.left { + left: -100%; +} +.carousel-inner > .active.right { + left: 100%; +} +.carousel-control { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 15%; + font-size: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6); + filter: alpha(opacity=50); + opacity: .5; +} +.carousel-control.left { + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001))); + background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); + background-repeat: repeat-x; +} +.carousel-control.right { + right: 0; + left: auto; + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5))); + background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); + background-repeat: repeat-x; +} +.carousel-control:hover, +.carousel-control:focus { + color: #fff; + text-decoration: none; + filter: alpha(opacity=90); + outline: 0; + opacity: .9; +} +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right { + position: absolute; + top: 50%; + z-index: 5; + display: inline-block; +} +.carousel-control .icon-prev, +.carousel-control .glyphicon-chevron-left { + left: 50%; + margin-left: -10px; +} +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-right { + right: 50%; + margin-right: -10px; +} +.carousel-control .icon-prev, +.carousel-control .icon-next { + width: 20px; + height: 20px; + margin-top: -10px; + font-family: serif; + line-height: 1; +} +.carousel-control .icon-prev:before { + content: '\2039'; +} +.carousel-control .icon-next:before { + content: '\203a'; +} +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + padding-left: 0; + margin-left: -30%; + text-align: center; + list-style: none; +} +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + background-color: #000 \9; + background-color: rgba(0, 0, 0, 0); + border: 1px solid #fff; + border-radius: 10px; +} +.carousel-indicators .active { + width: 12px; + height: 12px; + margin: 0; + background-color: #fff; +} +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6); +} +.carousel-caption .btn { + text-shadow: none; +} +@media screen and (min-width: 768px) { + .carousel-control .glyphicon-chevron-left, + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -15px; + font-size: 30px; + } + .carousel-control .glyphicon-chevron-left, + .carousel-control .icon-prev { + margin-left: -15px; + } + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-next { + margin-right: -15px; + } + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px; + } + .carousel-indicators { + bottom: 20px; + } +} +.clearfix:before, +.clearfix:after, +.dl-horizontal dd:before, +.dl-horizontal dd:after, +.container:before, +.container:after, +.container-fluid:before, +.container-fluid:after, +.row:before, +.row:after, +.form-horizontal .form-group:before, +.form-horizontal .form-group:after, +.btn-toolbar:before, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after, +.nav:before, +.nav:after, +.navbar:before, +.navbar:after, +.navbar-header:before, +.navbar-header:after, +.navbar-collapse:before, +.navbar-collapse:after, +.pager:before, +.pager:after, +.panel-body:before, +.panel-body:after, +.modal-footer:before, +.modal-footer:after { + display: table; + content: " "; +} +.clearfix:after, +.dl-horizontal dd:after, +.container:after, +.container-fluid:after, +.row:after, +.form-horizontal .form-group:after, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:after, +.nav:after, +.navbar:after, +.navbar-header:after, +.navbar-collapse:after, +.pager:after, +.panel-body:after, +.modal-footer:after { + clear: both; +} +.center-block { + display: block; + margin-right: auto; + margin-left: auto; +} +.pull-right { + float: right !important; +} +.pull-left { + float: left !important; +} +.hide { + display: none !important; +} +.show { + display: block !important; +} +.invisible { + visibility: hidden; +} +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} +.hidden { + display: none !important; +} +.affix { + position: fixed; +} +@-ms-viewport { + width: device-width; +} +.visible-xs, +.visible-sm, +.visible-md, +.visible-lg { + display: none !important; +} +.visible-xs-block, +.visible-xs-inline, +.visible-xs-inline-block, +.visible-sm-block, +.visible-sm-inline, +.visible-sm-inline-block, +.visible-md-block, +.visible-md-inline, +.visible-md-inline-block, +.visible-lg-block, +.visible-lg-inline, +.visible-lg-inline-block { + display: none !important; +} +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + table.visible-xs { + display: table; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} +@media (max-width: 767px) { + .visible-xs-block { + display: block !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline { + display: inline !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline-block { + display: inline-block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + table.visible-sm { + display: table; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-block { + display: block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline { + display: inline !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline-block { + display: inline-block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + table.visible-md { + display: table; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-block { + display: block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline { + display: inline !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline-block { + display: inline-block !important; + } +} +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + table.visible-lg { + display: table; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-lg-block { + display: block !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline { + display: inline !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline-block { + display: inline-block !important; + } +} +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-lg { + display: none !important; + } +} +.visible-print { + display: none !important; +} +@media print { + .visible-print { + display: block !important; + } + table.visible-print { + display: table; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, + td.visible-print { + display: table-cell !important; + } +} +.visible-print-block { + display: none !important; +} +@media print { + .visible-print-block { + display: block !important; + } +} +.visible-print-inline { + display: none !important; +} +@media print { + .visible-print-inline { + display: inline !important; + } +} +.visible-print-inline-block { + display: none !important; +} +@media print { + .visible-print-inline-block { + display: inline-block !important; + } +} +@media print { + .hidden-print { + display: none !important; + } +} +/*# sourceMappingURL=bootstrap.css.map */ diff --git a/doc/api/static-assets/css/bootstrap.min.css b/doc/api/static-assets/css/bootstrap.min.css new file mode 100644 index 0000000..cd1c616 --- /dev/null +++ b/doc/api/static-assets/css/bootstrap.min.css @@ -0,0 +1,5 @@ +/*! + * Bootstrap v3.3.4 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + *//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px \9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.form-group-sm .form-control{height:30px;line-height:30px}select[multiple].form-group-sm .form-control,textarea.form-group-sm .form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:5px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.form-group-lg .form-control{height:46px;line-height:46px}select[multiple].form-group-lg .form-control,textarea.form-group-lg .form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:10px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.33px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.active,.btn-default.focus,.btn-default:active,.btn-default:focus,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.active,.btn-primary.focus,.btn-primary:active,.btn-primary:focus,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.active,.btn-success.focus,.btn-success:active,.btn-success:focus,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.active,.btn-info.focus,.btn-info:active,.btn-info:focus,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.active,.btn-warning.focus,.btn-warning:active,.btn-warning:focus,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.active,.btn-danger.focus,.btn-danger:active,.btn-danger:focus,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px)and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.4;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;margin-top:-10px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px)and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px)and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px)and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px)and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px)and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px)and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} \ No newline at end of file diff --git a/doc/api/static-assets/favicon.png b/doc/api/static-assets/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..7d3901dedea536544db72421a92a1e1a5bd7b9a3 GIT binary patch literal 916 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!SkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?o1&1o(uwx)=B)od2JA;lF0-I<1_!Nni$0B;_JVP`6^ePWk%uGe5P;))`c8 z0E#4E_^({FCiUWfy^8ff1XKWID;BO+EnW*`YnQLnEM2QnvKFXIqZCR4wE)>bWk5p` z&;M610Vx2g1eyjEfpGOIH^}F$0tzOd`>WTrUnX~@cG)_qoE60vekGp!2UO#|F%UwgUHl(>?1y312LF8@fQH0O zJy3q>SNQQC#^tL_OBY9-`03NN%d~V!%;8UoJD=M&ZjD=XK6ct6qpFRbojZ-HHzu6= zS$^?n?8%>n7k;MheqM6=bMXF;rnQ@DR-TEQc98E@Q!+3>JxhZ8f*Ck{eWG%GInFtq zJI8hIZ}>Wnx3{kEeZj$TdZLrmdV_@;D=qJ27_rJtcB>asc)@Y*ZWqTnj%$95l>!_< zaQ4oZkKet>E9d3O3u|}%6;!jIc=2#*tBl2wCqFee zP2ytDU=9;JR44U8U*~-)!+j@)%?eD0ymSChl4hU#A3#|3JEh9Ggy9GXCyOZ9b{`e#N(i8k-t#&3`2<1 zFU#w05)Dos%ok)58HyB{4_q-}p1>8!@a&mngU=7<1jSo)ha)-afr$M?1}F@%)|Ept+2xac~qpmgHt;uS9G=Okj!Pup3UzjTtq zD8U&o?+&`|s|ATd|T#)9xSgt3)RKVcr L>gTe~DWM4fXC8_& literal 0 HcmV?d00001 diff --git a/doc/api/static-assets/github.css b/doc/api/static-assets/github.css new file mode 100644 index 0000000..791932b --- /dev/null +++ b/doc/api/static-assets/github.css @@ -0,0 +1,99 @@ +/* + +github.com style (c) Vasily Polovnyov + +*/ + +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + color: #333; + background: #f8f8f8; +} + +.hljs-comment, +.hljs-quote { + color: #998; + font-style: italic; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-subst { + color: #333; + font-weight: bold; +} + +.hljs-number, +.hljs-literal, +.hljs-variable, +.hljs-template-variable, +.hljs-tag .hljs-attr { + color: #008080; +} + +.hljs-string, +.hljs-doctag { + color: #d14; +} + +.hljs-title, +.hljs-section, +.hljs-selector-id { + color: #900; + font-weight: bold; +} + +.hljs-subst { + font-weight: normal; +} + +.hljs-type, +.hljs-class .hljs-title { + color: #458; + font-weight: bold; +} + +.hljs-tag, +.hljs-name, +.hljs-attribute { + color: #000080; + font-weight: normal; +} + +.hljs-regexp, +.hljs-link { + color: #009926; +} + +.hljs-symbol, +.hljs-bullet { + color: #990073; +} + +.hljs-built_in, +.hljs-builtin-name { + color: #0086b3; +} + +.hljs-meta { + color: #999; + font-weight: bold; +} + +.hljs-deletion { + background: #fdd; +} + +.hljs-addition { + background: #dfd; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} diff --git a/doc/api/static-assets/highlight.pack.js b/doc/api/static-assets/highlight.pack.js new file mode 100644 index 0000000..eee76a9 --- /dev/null +++ b/doc/api/static-assets/highlight.pack.js @@ -0,0 +1,2 @@ +/*! highlight.js v9.15.6 | BSD3 License | git.io/hljslicense */ +!function(e){var n="object"==typeof window&&window||"object"==typeof self&&self;"undefined"!=typeof exports?e(exports):n&&(n.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return n.hljs}))}(function(a){var E=[],u=Object.keys,N={},g={},n=/^(no-?highlight|plain|text)$/i,R=/\blang(?:uage)?-([\w-]+)\b/i,t=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,r={case_insensitive:"cI",lexemes:"l",contains:"c",keywords:"k",subLanguage:"sL",className:"cN",begin:"b",beginKeywords:"bK",end:"e",endsWithParent:"eW",illegal:"i",excludeBegin:"eB",excludeEnd:"eE",returnBegin:"rB",returnEnd:"rE",relevance:"r",variants:"v",IDENT_RE:"IR",UNDERSCORE_IDENT_RE:"UIR",NUMBER_RE:"NR",C_NUMBER_RE:"CNR",BINARY_NUMBER_RE:"BNR",RE_STARTERS_RE:"RSR",BACKSLASH_ESCAPE:"BE",APOS_STRING_MODE:"ASM",QUOTE_STRING_MODE:"QSM",PHRASAL_WORDS_MODE:"PWM",C_LINE_COMMENT_MODE:"CLCM",C_BLOCK_COMMENT_MODE:"CBCM",HASH_COMMENT_MODE:"HCM",NUMBER_MODE:"NM",C_NUMBER_MODE:"CNM",BINARY_NUMBER_MODE:"BNM",CSS_NUMBER_MODE:"CSSNM",REGEXP_MODE:"RM",TITLE_MODE:"TM",UNDERSCORE_TITLE_MODE:"UTM",COMMENT:"C",beginRe:"bR",endRe:"eR",illegalRe:"iR",lexemesRe:"lR",terminators:"t",terminator_end:"tE"},b="",h={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};function _(e){return e.replace(/&/g,"&").replace(//g,">")}function d(e){return e.nodeName.toLowerCase()}function v(e,n){var t=e&&e.exec(n);return t&&0===t.index}function p(e){return n.test(e)}function l(e){var n,t={},r=Array.prototype.slice.call(arguments,1);for(n in e)t[n]=e[n];return r.forEach(function(e){for(n in e)t[n]=e[n]}),t}function M(e){var a=[];return function e(n,t){for(var r=n.firstChild;r;r=r.nextSibling)3===r.nodeType?t+=r.nodeValue.length:1===r.nodeType&&(a.push({event:"start",offset:t,node:r}),t=e(r,t),d(r).match(/br|hr|img|input/)||a.push({event:"stop",offset:t,node:r}));return t}(e,0),a}function i(e){if(r&&!e.langApiRestored){for(var n in e.langApiRestored=!0,r)e[n]&&(e[r[n]]=e[n]);(e.c||[]).concat(e.v||[]).forEach(i)}}function m(c){function s(e){return e&&e.source||e}function o(e,n){return new RegExp(s(e),"m"+(c.cI?"i":"")+(n?"g":""))}!function n(t,e){if(!t.compiled){if(t.compiled=!0,t.k=t.k||t.bK,t.k){var r={},a=function(t,e){c.cI&&(e=e.toLowerCase()),e.split(" ").forEach(function(e){var n=e.split("|");r[n[0]]=[t,n[1]?Number(n[1]):1]})};"string"==typeof t.k?a("keyword",t.k):u(t.k).forEach(function(e){a(e,t.k[e])}),t.k=r}t.lR=o(t.l||/\w+/,!0),e&&(t.bK&&(t.b="\\b("+t.bK.split(" ").join("|")+")\\b"),t.b||(t.b=/\B|\b/),t.bR=o(t.b),t.endSameAsBegin&&(t.e=t.b),t.e||t.eW||(t.e=/\B|\b/),t.e&&(t.eR=o(t.e)),t.tE=s(t.e)||"",t.eW&&e.tE&&(t.tE+=(t.e?"|":"")+e.tE)),t.i&&(t.iR=o(t.i)),null==t.r&&(t.r=1),t.c||(t.c=[]),t.c=Array.prototype.concat.apply([],t.c.map(function(e){return(n="self"===e?t:e).v&&!n.cached_variants&&(n.cached_variants=n.v.map(function(e){return l(n,{v:null},e)})),n.cached_variants||n.eW&&[l(n)]||[n];var n})),t.c.forEach(function(e){n(e,t)}),t.starts&&n(t.starts,e);var i=t.c.map(function(e){return e.bK?"\\.?(?:"+e.b+")\\.?":e.b}).concat([t.tE,t.i]).map(s).filter(Boolean);t.t=i.length?o(function(e,n){for(var t=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,r=0,a="",i=0;i')+n+(t?"":b)}function s(){g+=null!=E.sL?function(){var e="string"==typeof E.sL;if(e&&!N[E.sL])return _(R);var n=e?C(E.sL,R,!0,i[E.sL]):O(R,E.sL.length?E.sL:void 0);return 0")+'"');return R+=n,n.length||1}var f=S(e);if(!f)throw new Error('Unknown language: "'+e+'"');m(f);var a,E=t||f,i={},g="";for(a=E;a!==f;a=a.parent)a.cN&&(g=u(a.cN,"",!0)+g);var R="",d=0;try{for(var c,p,M=0;E.t.lastIndex=M,c=E.t.exec(n);)p=r(n.substring(M,c.index),c[0]),M=c.index+p;for(r(n.substr(M)),a=E;a.parent;a=a.parent)a.cN&&(g+=b);return{r:d,value:g,language:e,top:E}}catch(e){if(e.message&&-1!==e.message.indexOf("Illegal"))return{r:0,value:_(n)};throw e}}function O(t,e){e=e||h.languages||u(N);var r={r:0,value:_(t)},a=r;return e.filter(S).filter(s).forEach(function(e){var n=C(e,t,!1);n.language=e,n.r>a.r&&(a=n),n.r>r.r&&(a=r,r=n)}),a.language&&(r.second_best=a),r}function B(e){return h.tabReplace||h.useBR?e.replace(t,function(e,n){return h.useBR&&"\n"===e?"
":h.tabReplace?n.replace(/\t/g,h.tabReplace):""}):e}function c(e){var n,t,r,a,i,c,o,u,s,l,f=function(e){var n,t,r,a,i=e.className+" ";if(i+=e.parentNode?e.parentNode.className:"",t=R.exec(i))return S(t[1])?t[1]:"no-highlight";for(n=0,r=(i=i.split(/\s+/)).length;n/g,"\n"):n=e,i=n.textContent,r=f?C(f,i,!0):O(i),(t=M(n)).length&&((a=document.createElementNS("http://www.w3.org/1999/xhtml","div")).innerHTML=r.value,r.value=function(e,n,t){var r=0,a="",i=[];function c(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset"}function u(e){a+=""}function s(e){("start"===e.event?o:u)(e.node)}for(;e.length||n.length;){var l=c();if(a+=_(t.substring(r,l[0].offset)),r=l[0].offset,l===e){for(i.reverse().forEach(u);s(l.splice(0,1)[0]),(l=c())===e&&l.length&&l[0].offset===r;);i.reverse().forEach(o)}else"start"===l[0].event?i.push(l[0].node):i.pop(),s(l.splice(0,1)[0])}return a+_(t.substr(r))}(t,M(a),i)),r.value=B(r.value),e.innerHTML=r.value,e.className=(c=e.className,o=f,u=r.language,s=o?g[o]:u,l=[c.trim()],c.match(/\bhljs\b/)||l.push("hljs"),-1===c.indexOf(s)&&l.push(s),l.join(" ").trim()),e.result={language:r.language,re:r.r},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.r}))}function o(){if(!o.called){o.called=!0;var e=document.querySelectorAll("pre code");E.forEach.call(e,c)}}function S(e){return e=(e||"").toLowerCase(),N[e]||N[g[e]]}function s(e){var n=S(e);return n&&!n.disableAutodetect}return a.highlight=C,a.highlightAuto=O,a.fixMarkup=B,a.highlightBlock=c,a.configure=function(e){h=l(h,e)},a.initHighlighting=o,a.initHighlightingOnLoad=function(){addEventListener("DOMContentLoaded",o,!1),addEventListener("load",o,!1)},a.registerLanguage=function(n,e){var t=N[n]=e(a);i(t),t.aliases&&t.aliases.forEach(function(e){g[e]=n})},a.listLanguages=function(){return u(N)},a.getLanguage=S,a.autoDetection=s,a.inherit=l,a.IR=a.IDENT_RE="[a-zA-Z]\\w*",a.UIR=a.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",a.NR=a.NUMBER_RE="\\b\\d+(\\.\\d+)?",a.CNR=a.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",a.BNR=a.BINARY_NUMBER_RE="\\b(0b[01]+)",a.RSR=a.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",a.BE=a.BACKSLASH_ESCAPE={b:"\\\\[\\s\\S]",r:0},a.ASM=a.APOS_STRING_MODE={cN:"string",b:"'",e:"'",i:"\\n",c:[a.BE]},a.QSM=a.QUOTE_STRING_MODE={cN:"string",b:'"',e:'"',i:"\\n",c:[a.BE]},a.PWM=a.PHRASAL_WORDS_MODE={b:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},a.C=a.COMMENT=function(e,n,t){var r=a.inherit({cN:"comment",b:e,e:n,c:[]},t||{});return r.c.push(a.PWM),r.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),r},a.CLCM=a.C_LINE_COMMENT_MODE=a.C("//","$"),a.CBCM=a.C_BLOCK_COMMENT_MODE=a.C("/\\*","\\*/"),a.HCM=a.HASH_COMMENT_MODE=a.C("#","$"),a.NM=a.NUMBER_MODE={cN:"number",b:a.NR,r:0},a.CNM=a.C_NUMBER_MODE={cN:"number",b:a.CNR,r:0},a.BNM=a.BINARY_NUMBER_MODE={cN:"number",b:a.BNR,r:0},a.CSSNM=a.CSS_NUMBER_MODE={cN:"number",b:a.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},a.RM=a.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[a.BE,{b:/\[/,e:/\]/,r:0,c:[a.BE]}]},a.TM=a.TITLE_MODE={cN:"title",b:a.IR,r:0},a.UTM=a.UNDERSCORE_TITLE_MODE={cN:"title",b:a.UIR,r:0},a.METHOD_GUARD={b:"\\.\\s*"+a.UIR,r:0},a});hljs.registerLanguage("xml",function(s){var e={eW:!0,i:/`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist"],cI:!0,c:[{cN:"meta",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},s.C("\x3c!--","--\x3e",{r:10}),{b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"meta",b:/<\?xml/,e:/\?>/,r:10},{b:/<\?(php)?/,e:/\?>/,sL:"php",c:[{b:"/\\*",e:"\\*/",skip:!0},{b:'b"',e:'"',skip:!0},{b:"b'",e:"'",skip:!0},s.inherit(s.ASM,{i:null,cN:null,c:null,skip:!0}),s.inherit(s.QSM,{i:null,cN:null,c:null,skip:!0})]},{cN:"tag",b:"|$)",e:">",k:{name:"style"},c:[e],starts:{e:"",rE:!0,sL:["css","xml"]}},{cN:"tag",b:"|$)",e:">",k:{name:"script"},c:[e],starts:{e:"<\/script>",rE:!0,sL:["actionscript","javascript","handlebars","xml"]}},{cN:"tag",b:"",c:[{cN:"name",b:/[^\/><\s]+/,r:0},e]}]}});hljs.registerLanguage("markdown",function(e){return{aliases:["md","mkdown","mkd"],c:[{cN:"section",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"quote",b:"^>\\s+",e:"$"},{cN:"code",v:[{b:"^```w*s*$",e:"^```s*$"},{b:"`.+?`"},{b:"^( {4}|\t)",e:"$",r:0}]},{b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].*?[\\)\\]]",rB:!0,c:[{cN:"string",b:"\\[",e:"\\]",eB:!0,rE:!0,r:0},{cN:"link",b:"\\]\\(",e:"\\)",eB:!0,eE:!0},{cN:"symbol",b:"\\]\\[",e:"\\]",eB:!0,eE:!0}],r:10},{b:/^\[[^\n]+\]:/,rB:!0,c:[{cN:"symbol",b:/\[/,e:/\]/,eB:!0,eE:!0},{cN:"link",b:/:\s*/,e:/$/,eB:!0}]}]}});hljs.registerLanguage("dart",function(e){var t={cN:"subst",v:[{b:"\\$[A-Za-z0-9_]+"}]},r={cN:"subst",v:[{b:"\\${",e:"}"}],k:"true false null this is new super"},n={cN:"string",v:[{b:"r'''",e:"'''"},{b:'r"""',e:'"""'},{b:"r'",e:"'",i:"\\n"},{b:'r"',e:'"',i:"\\n"},{b:"'''",e:"'''",c:[e.BE,t,r]},{b:'"""',e:'"""',c:[e.BE,t,r]},{b:"'",e:"'",i:"\\n",c:[e.BE,t,r]},{b:'"',e:'"',i:"\\n",c:[e.BE,t,r]}]};r.c=[e.CNM,n];return{k:{keyword:"assert async await break case catch class const continue default do else enum extends false final finally for if in is new null rethrow return super switch sync this throw true try var void while with yield abstract as dynamic export external factory get implements import library operator part set static typedef",built_in:"print Comparable DateTime Duration Function Iterable Iterator List Map Match Null Object Pattern RegExp Set Stopwatch String StringBuffer StringSink Symbol Type Uri bool double int num document window querySelector querySelectorAll Element ElementList"},c:[n,e.C("/\\*\\*","\\*/",{sL:"markdown"}),e.C("///","$",{sL:"markdown"}),e.CLCM,e.CBCM,{cN:"class",bK:"class interface",e:"{",eE:!0,c:[{bK:"extends implements"},e.UTM]},e.CNM,{cN:"meta",b:"@[A-Za-z]+"},{b:"=>"}]}});hljs.registerLanguage("kotlin",function(e){var t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual trait volatile transient native default",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},r={cN:"symbol",b:e.UIR+"@"},a={cN:"subst",b:"\\${",e:"}",c:[e.ASM,e.CNM]},i={cN:"variable",b:"\\$"+e.UIR},n={cN:"string",v:[{b:'"""',e:'"""',c:[i,a]},{b:"'",e:"'",i:/\n/,c:[e.BE]},{b:'"',e:'"',i:/\n/,c:[e.BE,i,a]}]},c={cN:"meta",b:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UIR+")?"},s={cN:"meta",b:"@"+e.UIR,c:[{b:/\(/,e:/\)/,c:[e.inherit(n,{cN:"meta-string"})]}]},l={cN:"number",b:"\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",r:0};return{aliases:["kt"],k:t,c:[e.C("/\\*\\*","\\*/",{r:0,c:[{cN:"doctag",b:"@[A-Za-z]+"}]}),e.CLCM,e.CBCM,{cN:"keyword",b:/\b(break|continue|return|this)\b/,starts:{c:[{cN:"symbol",b:/@\w+/}]}},r,c,s,{cN:"function",bK:"fun",e:"[(]|$",rB:!0,eE:!0,k:t,i:/fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,r:5,c:[{b:e.UIR+"\\s*\\(",rB:!0,r:0,c:[e.UTM]},{cN:"type",b://,k:"reified",r:0},{cN:"params",b:/\(/,e:/\)/,endsParent:!0,k:t,r:0,c:[{b:/:/,e:/[=,\/]/,eW:!0,c:[{cN:"type",b:e.UIR},e.CLCM,e.CBCM],r:0},e.CLCM,e.CBCM,c,s,n,e.CNM]},e.CBCM]},{cN:"class",bK:"class interface trait",e:/[:\{(]|$/,eE:!0,i:"extends implements",c:[{bK:"public protected internal private constructor"},e.UTM,{cN:"type",b://,eB:!0,eE:!0,r:0},{cN:"type",b:/[,:]\s*/,e:/[<\(,]|$/,eB:!0,rE:!0},c,s]},n,{cN:"meta",b:"^#!/usr/bin/env",e:"$",i:"\n"},l]}});hljs.registerLanguage("bash",function(e){var t={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)}/}]},s={cN:"string",b:/"/,e:/"/,c:[e.BE,t,{cN:"variable",b:/\$\(/,e:/\)/,c:[e.BE]}]};return{aliases:["sh","zsh"],l:/\b-?[a-z\._]+\b/,k:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"meta",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:!0,c:[e.inherit(e.TM,{b:/\w[\w\d_]*/})],r:0},e.HCM,s,{cN:"string",b:/'/,e:/'/},t]}});hljs.registerLanguage("shell",function(s){return{aliases:["console"],c:[{cN:"meta",b:"^\\s{0,3}[\\w\\d\\[\\]()@-]*[>%$#]",starts:{e:"$",sL:"bash"}}]}});hljs.registerLanguage("objectivec",function(e){var t=/[a-zA-Z@][a-zA-Z0-9_]*/,_="@interface @class @protocol @implementation";return{aliases:["mm","objc","obj-c"],k:{keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"},l:t,i:""}]}]},{cN:"class",b:"("+_.split(" ").join("|")+")\\b",e:"({|$)",eE:!0,k:_,l:t,c:[e.UTM]},{b:"\\."+e.UIR,r:0}]}});hljs.registerLanguage("swift",function(e){var i={keyword:"#available #colorLiteral #column #else #elseif #endif #file #fileLiteral #function #if #imageLiteral #line #selector #sourceLocation _ __COLUMN__ __FILE__ __FUNCTION__ __LINE__ Any as as! as? associatedtype associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false fileprivate final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating open operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet",literal:"true false nil",built_in:"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip"},t=e.C("/\\*","\\*/",{c:["self"]}),n={cN:"subst",b:/\\\(/,e:"\\)",k:i,c:[]},r={cN:"string",c:[e.BE,n],v:[{b:/"""/,e:/"""/},{b:/"/,e:/"/}]},a={cN:"number",b:"\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b",r:0};return n.c=[a],{k:i,c:[r,e.CLCM,t,{cN:"type",b:"\\b[A-Z][\\wÀ-ʸ']*[!?]"},{cN:"type",b:"\\b[A-Z][\\wÀ-ʸ']*",r:0},a,{cN:"function",bK:"func",e:"{",eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{b://},{cN:"params",b:/\(/,e:/\)/,endsParent:!0,k:i,c:["self",a,r,e.CBCM,{b:":"}],i:/["']/}],i:/\[|%/},{cN:"class",bK:"struct protocol class extension enum",k:i,e:"\\{",eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/})]},{cN:"meta",b:"(@discardableResult|@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@objcMembers|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain)"},{bK:"import",e:/$/,c:[e.CLCM,t]}]}});hljs.registerLanguage("css",function(e){var c={b:/[A-Z\_\.\-]+\s*:/,rB:!0,e:";",eW:!0,c:[{cN:"attribute",b:/\S/,e:":",eE:!0,starts:{eW:!0,eE:!0,c:[{b:/[\w-]+\(/,rB:!0,c:[{cN:"built_in",b:/[\w-]+/},{b:/\(/,e:/\)/,c:[e.ASM,e.QSM]}]},e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:"number",b:"#[0-9A-Fa-f]+"},{cN:"meta",b:"!important"}]}}]};return{cI:!0,i:/[=\/|'\$]/,c:[e.CBCM,{cN:"selector-id",b:/#[A-Za-z0-9_-]+/},{cN:"selector-class",b:/\.[A-Za-z0-9_-]+/},{cN:"selector-attr",b:/\[/,e:/\]/,i:"$"},{cN:"selector-pseudo",b:/:(:)?[a-zA-Z0-9\_\-\+\(\)"'.]+/},{b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{b:"@",e:"[{;]",i:/:/,c:[{cN:"keyword",b:/\w+/},{b:/\s/,eW:!0,eE:!0,r:0,c:[e.ASM,e.QSM,e.CSSNM]}]},{cN:"selector-tag",b:"[a-zA-Z-][a-zA-Z0-9_-]*",r:0},{b:"{",e:"}",i:/\S/,c:[e.CBCM,c]}]}});hljs.registerLanguage("json",function(e){var i={literal:"true false null"},n=[e.QSM,e.CNM],r={e:",",eW:!0,eE:!0,c:n,k:i},t={b:"{",e:"}",c:[{cN:"attr",b:/"/,e:/"/,c:[e.BE],i:"\\n"},e.inherit(r,{b:/:/})],i:"\\S"},c={b:"\\[",e:"\\]",c:[e.inherit(r)],i:"\\S"};return n.splice(n.length,0,t,c),{c:n,k:i,i:"\\S"}});hljs.registerLanguage("ruby",function(e){var b="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",r={keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",literal:"true false nil"},c={cN:"doctag",b:"@[A-Za-z]+"},a={b:"#<",e:">"},s=[e.C("#","$",{c:[c]}),e.C("^\\=begin","^\\=end",{c:[c],r:10}),e.C("^__END__","\\n$")],n={cN:"subst",b:"#\\{",e:"}",k:r},t={cN:"string",c:[e.BE,n],v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:/`/,e:/`/},{b:"%[qQwWx]?\\(",e:"\\)"},{b:"%[qQwWx]?\\[",e:"\\]"},{b:"%[qQwWx]?{",e:"}"},{b:"%[qQwWx]?<",e:">"},{b:"%[qQwWx]?/",e:"/"},{b:"%[qQwWx]?%",e:"%"},{b:"%[qQwWx]?-",e:"-"},{b:"%[qQwWx]?\\|",e:"\\|"},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/},{b:/<<(-?)\w+$/,e:/^\s*\w+$/}]},i={cN:"params",b:"\\(",e:"\\)",endsParent:!0,k:r},d=[t,a,{cN:"class",bK:"class module",e:"$|;",i:/=/,c:[e.inherit(e.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{b:"<\\s*",c:[{b:"("+e.IR+"::)?"+e.IR}]}].concat(s)},{cN:"function",bK:"def",e:"$|;",c:[e.inherit(e.TM,{b:b}),i].concat(s)},{b:e.IR+"::"},{cN:"symbol",b:e.UIR+"(\\!|\\?)?:",r:0},{cN:"symbol",b:":(?!\\s)",c:[t,{b:b}],r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{cN:"params",b:/\|/,e:/\|/,k:r},{b:"("+e.RSR+"|unless)\\s*",k:"unless",c:[a,{cN:"regexp",c:[e.BE,n],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}].concat(s),r:0}].concat(s);n.c=d;var l=[{b:/^\s*=>/,starts:{e:"$",c:i.c=d}},{cN:"meta",b:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>)",starts:{e:"$",c:d}}];return{aliases:["rb","gemspec","podspec","thor","irb"],k:r,i:/\/\*/,c:s.concat(l).concat(d)}});hljs.registerLanguage("yaml",function(e){var b="true false yes no null",a="^[ \\-]*",r="[a-zA-Z_][\\w\\-]*",t={cN:"attr",v:[{b:a+r+":"},{b:a+'"'+r+'":'},{b:a+"'"+r+"':"}]},c={cN:"string",r:0,v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:/\S+/}],c:[e.BE,{cN:"template-variable",v:[{b:"{{",e:"}}"},{b:"%{",e:"}"}]}]};return{cI:!0,aliases:["yml","YAML","yaml"],c:[t,{cN:"meta",b:"^---s*$",r:10},{cN:"string",b:"[\\|>] *$",rE:!0,c:c.c,e:t.v[0].b},{b:"<%[%=-]?",e:"[%-]?%>",sL:"ruby",eB:!0,eE:!0,r:0},{cN:"type",b:"!"+e.UIR},{cN:"type",b:"!!"+e.UIR},{cN:"meta",b:"&"+e.UIR+"$"},{cN:"meta",b:"\\*"+e.UIR+"$"},{cN:"bullet",b:"^ *-",r:0},e.HCM,{bK:b,k:{literal:b}},e.CNM,c]}});hljs.registerLanguage("java",function(e){var a="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",t={cN:"number",b:"\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",r:0};return{aliases:["jsp"],k:a,i:/<\/|#/,c:[e.C("/\\*\\*","\\*/",{r:0,c:[{b:/\w+@/,r:0},{cN:"doctag",b:"@[A-Za-z]+"}]}),e.CLCM,e.CBCM,e.ASM,e.QSM,{cN:"class",bK:"class interface",e:/[{;=]/,eE:!0,k:"class interface",i:/[:"\[\]]/,c:[{bK:"extends implements"},e.UTM]},{bK:"new throw return else",r:0},{cN:"function",b:"([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(\\s*,\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\\s+)+"+e.UIR+"\\s*\\(",rB:!0,e:/[{;=]/,eE:!0,k:a,c:[{b:e.UIR+"\\s*\\(",rB:!0,r:0,c:[e.UTM]},{cN:"params",b:/\(/,e:/\)/,k:a,r:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]},t,{cN:"meta",b:"@[A-Za-z]+"}]}});hljs.registerLanguage("javascript",function(e){var r="[A-Za-z$_][0-9A-Za-z$_]*",t={keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},a={cN:"number",v:[{b:"\\b(0[bB][01]+)"},{b:"\\b(0[oO][0-7]+)"},{b:e.CNR}],r:0},n={cN:"subst",b:"\\$\\{",e:"\\}",k:t,c:[]},c={cN:"string",b:"`",e:"`",c:[e.BE,n]};n.c=[e.ASM,e.QSM,c,a,e.RM];var s=n.c.concat([e.CBCM,e.CLCM]);return{aliases:["js","jsx"],k:t,c:[{cN:"meta",r:10,b:/^\s*['"]use (strict|asm)['"]/},{cN:"meta",b:/^#!/,e:/$/},e.ASM,e.QSM,c,e.CLCM,e.CBCM,a,{b:/[{,]\s*/,r:0,c:[{b:r+"\\s*:",rB:!0,r:0,c:[{cN:"attr",b:r,r:0}]}]},{b:"("+e.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[e.CLCM,e.CBCM,e.RM,{cN:"function",b:"(\\(.*?\\)|"+r+")\\s*=>",rB:!0,e:"\\s*=>",c:[{cN:"params",v:[{b:r},{b:/\(\s*\)/},{b:/\(/,e:/\)/,eB:!0,eE:!0,k:t,c:s}]}]},{b://,sL:"xml",c:[{b:/<\w+\s*\/>/,skip:!0},{b:/<\w+/,e:/(\/\w+|\w+\/)>/,skip:!0,c:[{b:/<\w+\s*\/>/,skip:!0},"self"]}]}],r:0},{cN:"function",bK:"function",e:/\{/,eE:!0,c:[e.inherit(e.TM,{b:r}),{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,c:s}],i:/\[|%/},{b:/\$[(.]/},e.METHOD_GUARD,{cN:"class",bK:"class",e:/[{;=]/,eE:!0,i:/[:"\[\]]/,c:[{bK:"extends"},e.UTM]},{bK:"constructor get set",e:/\{/,eE:!0}],i:/#(?!!)/}}); \ No newline at end of file diff --git a/doc/api/static-assets/play_button.svg b/doc/api/static-assets/play_button.svg new file mode 100644 index 0000000..c39a2f4 --- /dev/null +++ b/doc/api/static-assets/play_button.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/doc/api/static-assets/readme.md b/doc/api/static-assets/readme.md new file mode 100644 index 0000000..2330480 --- /dev/null +++ b/doc/api/static-assets/readme.md @@ -0,0 +1,19 @@ +# highlight.js + +Generated from https://highlightjs.org/download/ on 2019-05-16 + +Included languages: + +* bash +* css +* dart +* html, xml +* java +* javascript +* json +* kotlin +* markdown +* objective-c +* shell +* swift +* yaml diff --git a/doc/api/static-assets/script.js b/doc/api/static-assets/script.js new file mode 100644 index 0000000..e8fbb6f --- /dev/null +++ b/doc/api/static-assets/script.js @@ -0,0 +1,270 @@ + +function initSideNav() { + var leftNavToggle = document.getElementById('sidenav-left-toggle'); + var leftDrawer = document.querySelector('.sidebar-offcanvas-left'); + var overlay = document.getElementById('overlay-under-drawer'); + + function toggleBoth() { + if (leftDrawer) { + leftDrawer.classList.toggle('active'); + } + + if (overlay) { + overlay.classList.toggle('active'); + } + } + + if (overlay) { + overlay.addEventListener('click', function(e) { + toggleBoth(); + }); + } + + if (leftNavToggle) { + leftNavToggle.addEventListener('click', function(e) { + toggleBoth(); + }); + } +} + +function saveLeftScroll() { + var leftSidebar = document.getElementById('dartdoc-sidebar-left'); + sessionStorage.setItem('dartdoc-sidebar-left-scrollt' + window.location.pathname, leftSidebar.scrollTop); + sessionStorage.setItem('dartdoc-sidebar-left-scrolll' + window.location.pathname, leftSidebar.scrollLeft); +} + +function saveMainContentScroll() { + var mainContent = document.getElementById('dartdoc-main-content'); + sessionStorage.setItem('dartdoc-main-content-scrollt' + window.location.pathname, mainContent.scrollTop); + sessionStorage.setItem('dartdoc-main-content-scrolll' + window.location.pathname, mainContent.scrollLeft); +} + +function saveRightScroll() { + var rightSidebar = document.getElementById('dartdoc-sidebar-right'); + sessionStorage.setItem('dartdoc-sidebar-right-scrollt' + window.location.pathname, rightSidebar.scrollTop); + sessionStorage.setItem('dartdoc-sidebar-right-scrolll' + window.location.pathname, rightSidebar.scrollLeft); +} + +function restoreScrolls() { + var leftSidebar = document.getElementById('dartdoc-sidebar-left'); + var mainContent = document.getElementById('dartdoc-main-content'); + var rightSidebar = document.getElementById('dartdoc-sidebar-right'); + + try { + var leftSidebarX = sessionStorage.getItem('dartdoc-sidebar-left-scrolll' + window.location.pathname); + var leftSidebarY = sessionStorage.getItem('dartdoc-sidebar-left-scrollt' + window.location.pathname); + + var mainContentX = sessionStorage.getItem('dartdoc-main-content-scrolll' + window.location.pathname); + var mainContentY = sessionStorage.getItem('dartdoc-main-content-scrollt' + window.location.pathname); + + var rightSidebarX = sessionStorage.getItem('dartdoc-sidebar-right-scrolll' + window.location.pathname); + var rightSidebarY = sessionStorage.getItem('dartdoc-sidebar-right-scrollt' + window.location.pathname); + + leftSidebar.scrollTo(leftSidebarX, leftSidebarY); + mainContent.scrollTo(mainContentX, mainContentY); + rightSidebar.scrollTo(rightSidebarX, rightSidebarY); + } finally { + // Set visibility to visible after scroll to prevent the brief appearance of the + // panel in the wrong position. + leftSidebar.style.visibility = 'visible'; + mainContent.style.visibility = 'visible'; + rightSidebar.style.visibility = 'visible'; + } +} + +function initScrollSave() { + var leftSidebar = document.getElementById('dartdoc-sidebar-left'); + var mainContent = document.getElementById('dartdoc-main-content'); + var rightSidebar = document.getElementById('dartdoc-sidebar-right'); + + // For portablility, use two different ways of attaching saveLeftScroll to events. + leftSidebar.onscroll = saveLeftScroll; + leftSidebar.addEventListener("scroll", saveLeftScroll, true); + mainContent.onscroll = saveMainContentScroll; + mainContent.addEventListener("scroll", saveMainContentScroll, true); + rightSidebar.onscroll = saveRightScroll; + rightSidebar.addEventListener("scroll", saveRightScroll, true); +} + +function initSearch(name) { + var searchIndex; // the JSON data + + var weights = { + 'library' : 2, + 'class' : 2, + 'typedef' : 3, + 'method' : 4, + 'accessor' : 4, + 'operator' : 4, + 'property' : 4, + 'constructor' : 4 + }; + + var baseHref = ''; + if (!$('body').data('using-base-href')) { + // If dartdoc did not add a base-href tag, we will need to add the relative + // path ourselves. + baseHref = $('body').data('base-href'); + } + + function findMatches(q) { + var allMatches = []; // list of matches + + function score(element, num) { + num -= element.overriddenDepth * 10; + var weightFactor = weights[element.type] || 4; + return {e: element, score: (num / weightFactor) >> 0}; + } + + $.each(searchIndex, function(i, element) { + // TODO: prefer matches in the current library + // TODO: help prefer a named constructor + + var lowerName = element.name.toLowerCase(); + var lowerQualifiedName = element.qualifiedName.toLowerCase(); + var lowerQ = q.toLowerCase(); + var previousMatchCount = allMatches.length; + + if (element.name === q || element.qualifiedName === q) { + // exact match, maximum score + allMatches.push(score(element, 2000)); + } else if (element.name === 'dart:'+q) { + // exact match for a dart: library + allMatches.push(score(element, 2000)); + } else if (lowerName === 'dart:'+lowerQ) { + // case-insensitive match for a dart: library + allMatches.push(score(element, 1800)); + } else if (lowerName === lowerQ || lowerQualifiedName === lowerQ) { + // case-insensitive exact match + allMatches.push(score(element, 1700)); + } + + // only care about exact matches if length is 2 or less + // and only continue if we didn't find a match above + if (q.length <= 2 || previousMatchCount < allMatches.length) return; + + if (element.name.indexOf(q) === 0 || element.qualifiedName.indexOf(q) === 0) { + // starts with + allMatches.push(score(element, 750)); + } else if (lowerName.indexOf(lowerQ) === 0 || lowerQualifiedName.indexOf(lowerQ) === 0) { + // case-insensitive starts with + allMatches.push(score(element, 650)); + } else if (element.name.indexOf(q) >= 0 || element.qualifiedName.indexOf(q) >= 0) { + // contains + allMatches.push(score(element, 500)); + } else if (lowerName.indexOf(lowerQ) >= 0 || lowerQualifiedName.indexOf(lowerQ) >= 0) { + // case insensitive contains + allMatches.push(score(element, 400)); + } + }); + + allMatches.sort(function(a, b) { + var x = b.score - a.score; + if (x === 0) { + // tie-breaker: shorter name wins + return a.e.name.length - b.e.name.length; + } else { + return x; + } + }); + + var sortedMatches = []; + for (var i = 0; i < allMatches.length; i++) { + sortedMatches.push(allMatches[i].e); + } + + return sortedMatches; + }; + + function initTypeahead() { + var search = new URI().query(true)["search"]; + if (search) { + var matches = findMatches(search); + if (matches.length != 0) { + window.location = matches[0].href; + return; + } + } + + $('#' + name).prop('disabled', false); + $('#' + name).prop('placeholder', 'Search API Docs'); + $(document).keypress(function(event) { + if (event.which == 47 /* / */) { + event.preventDefault(); + $('#' + name).focus(); + } + }); + + $('#' + name + '.typeahead').typeahead({ + hint: true, + highlight: true, + minLength: 1 + }, + { + name: 'elements', + limit: 10, + source: function(q, cb) { cb(findMatches(q)); }, + display: function(element) { return element.name; }, + templates: { + suggestion: function(match) { + return [ + '
', + match.name, + ' ', + match.type.toLowerCase(), + (match.enclosedBy ? [ + '
from ', + match.enclosedBy.name, + '
'].join('') : ''), + '
' + ].join(''); + } + } + }); + + var typeaheadElement = $('#' + name + '.typeahead'); + var typeaheadElementParent = typeaheadElement.parent(); + var selectedSuggestion; + + typeaheadElement.on("keydown", function (e) { + if (e.keyCode === 13) { // Enter + if (selectedSuggestion == null) { + var suggestion = typeaheadElementParent.find(".tt-suggestion.tt-selectable:eq(0)"); + if (suggestion.length > 0) { + var href = suggestion.data("href"); + if (href != null) { + window.location = baseHref + href; + } + } + } + } + }); + + typeaheadElement.bind('typeahead:select', function(ev, suggestion) { + selectedSuggestion = suggestion; + window.location = baseHref + suggestion.href; + }); + } + + var jsonReq = new XMLHttpRequest(); + jsonReq.open('GET', baseHref + 'index.json', true); + jsonReq.addEventListener('load', function() { + searchIndex = JSON.parse(jsonReq.responseText); + initTypeahead(); + }); + jsonReq.addEventListener('error', function() { + $('#' + name).prop('placeholder', 'Error loading search index'); + }); + jsonReq.send(); +} + +document.addEventListener("DOMContentLoaded", function() { + // Place this first so that unexpected exceptions in other JavaScript do not block page visibility. + restoreScrolls(); + hljs.initHighlightingOnLoad(); + initSideNav(); + initScrollSave(); + initSearch("search-box"); + initSearch("search-body"); + initSearch("search-sidebar"); +}); diff --git a/doc/api/static-assets/styles.css b/doc/api/static-assets/styles.css new file mode 100644 index 0000000..442dbf4 --- /dev/null +++ b/doc/api/static-assets/styles.css @@ -0,0 +1,992 @@ + +/* Palette generated by Material Palette - materialpalette.com/blue/cyan */ + +.dark-primary-color { background: #1976D2; } +.default-primary-color { background: #2196F3; } +.light-primary-color { background: #BBDEFB; } +.text-primary-color { color: #FFFFFF; } +.accent-color { background: #00BCD4; } +.primary-text-color { color: #212121; } +.secondary-text-color { color: #727272; } +.divider-color { border-color: #B6B6B6; } + +/* for layout */ +html, +body { + margin: 0; + padding: 0; + height: 100%; + width: 100%; + overflow: hidden; + box-sizing: border-box; +} + +*, *:before, *:after { + box-sizing: inherit; +} + +body { + display: flex; + flex-direction: column; + -webkit-overflow-scrolling: touch; +} + +header { + flex: 0 0 50px; + display: flex; + flex-direction: row; + align-items: center; + padding-left: 30px; +} + +header ol { + list-style: none; + margin: 0; + padding: 0; +} + +header ol li { + display: inline; +} + +header form { + display: flex; + flex: 1; + justify-content: flex-end; + padding-right: 30px; +} + +header#header-search-sidebar { + height: 50px; + margin-bottom: 25px; +} + +footer { + flex: 0 0 16px; + text-align: center; + padding: 16px 20px; +} + +main { + flex: 1; + display: flex; + flex-direction: row; + padding: 20px; + min-height: 0; +} + +.sidebar-offcanvas-left { + flex: 0 1 230px; + overflow-y: scroll; + padding: 20px 0 15px 30px; + margin: 5px 20px 0 0; + visibility: hidden; /* shown by Javascript after scroll position restore */ +} + +::-webkit-scrollbar-button{ display: none; height: 13px; border-radius: 0px; background-color: #AAA; } +::-webkit-scrollbar-button:hover{ background-color: #AAA; } +::-webkit-scrollbar-thumb{ background-color: #CCC; } +::-webkit-scrollbar-thumb:hover{ background-color: #CCC; } +::-webkit-scrollbar{ width: 4px; } + +.main-content::-webkit-scrollbar{ width: 8px; } + +.main-content { + flex: 1; + overflow-y: scroll; + padding: 10px 20px 0 20px; + visibility: hidden; /* shown by Javascript after scroll position restore */ +} + +.sidebar-offcanvas-right { + flex: 0 1 12em; + overflow-y: scroll; + padding: 20px 15px 15px 15px; + margin-top: 5px; + margin-right: 20px; + visibility: hidden; /* shown by Javascript after scroll position restore */ +} +/* end for layout */ + +body { + -webkit-text-size-adjust: 100%; + overflow-x: hidden; + font-family: Roboto, sans-serif; + font-size: 16px; + line-height: 1.42857143; + color: #111111; + background-color: #fff; +} + +/* some of this is to reset bootstrap */ +nav.navbar { + background-color: inherit; + min-height: 50px; + border: 0; +} + +@media (max-width: 768px) { + .hidden-xs { + display: none !important; + } +} + +@media (min-width: 769px) { + .hidden-l { + display: none !important; + } +} + +nav.navbar .row { + padding-top: 8px; +} + +nav .container { + white-space: nowrap; +} + +header { + background-color: #eeeeee; + box-shadow: 0 3px 5px rgba(0,0,0,0.1); +} + +header.header-fixed nav.navbar-fixed-top { + box-shadow: 0 3px 5px rgba(0,0,0,0.1); +} + +header.container-fluid { + padding: 0; +} + +header .masthead { + padding-top: 64px; +} + +header .contents { + padding: 0; +} + +@media screen and (max-width:768px) { + header .contents { + padding-left: 15px; + padding-right: 15px; + } +} + +a { + text-decoration: none; +} + +.body { + margin-top: 90px; +} + +section { + margin-bottom: 36px; +} + +dl { + margin: 0; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: Roboto, sans-serif; + font-weight: 400; + margin-top: 1.5em; + color: #111111; +} + +h1.title { + overflow: hidden; + text-overflow: ellipsis; +} + +h1 { + font-size: 37px; + margin-top: 0; + margin-bottom: 0.67em; +} + +h2 { + font-size: 28px; +} + +h5 { + font-size: 16px; +} + +.subtitle { + font-size: 17px; + min-height: 1.4em; +} + +.title-description .subtitle { + white-space: nowrap; + overflow-x: hidden; + text-overflow: ellipsis; +} + +p { + margin-bottom: 1em; + margin-top: 0; +} + +a { + color: #0175C2; +} + +a:hover { + color: #13B9FD; +} + +pre.prettyprint { + font-family: 'Source Code Pro', Menlo, monospace; + color: black; + border-radius: 0; + font-size: 15px; + word-wrap: normal; + line-height: 1.4; + border: 0; + margin: 16px 0 16px 0; + padding: 8px; +} + +pre code { + white-space: pre; + word-wrap: initial; + font-size: 100% +} + +.fixed { + white-space: pre; +} + +pre { + border: 1px solid #ddd; + background-color: #eee; + font-size: 14px; +} + +code { + font-family: 'Source Code Pro', Menlo, monospace; + /* overriding bootstrap */ + color: inherit; + padding: 0.2em 0.4em; + font-size: 85%; + background-color: rgba(27,31,35,0.05); + border-radius: 3px; +} + +@media(max-width: 768px) { + nav .container { + width: 100% + } + + h1 { + font-size: 24px; + } + + pre { + margin: 16px 0; + } +} + +@media (min-width: 768px) { + ul.subnav li { + font-size: 17px; + } +} + +header h1 { + font-weight: 400; + margin-bottom: 16px; +} + +header a, +header p, +header li { + color: #111111; +} + +header a:hover { + color: #0175C2; +} + +header h1 .kind { + color: #555; +} + +dt { + font-weight: normal; +} + +dd { + color: #212121; + margin-bottom: 1em; + margin-left: 0; +} + +dd.callable, dd.constant, dd.property { + margin-bottom: 24px; +} + +dd p { + overflow-x: hidden; + text-overflow: ellipsis; + margin-bottom: 0; +} + +/* Enum values do not have their own pages; their full docs are presented on the + * enum class's page. */ +dt.constant + dd p { + margin-bottom: 1em; +} + +/* indents wrapped lines */ +section.summary dt { + margin-left: 24px; + text-indent: -24px; +} + +.dl-horizontal dd { + margin-left: initial; +} + +dl.dl-horizontal dt { + font-style: normal; + text-align: left; + color: #727272; + margin-right: 20px; + width: initial; +} + +dt .name { + font-weight: 500; +} + +dl dt.callable .name { + float: none; + width: auto; +} + +.parameter { + white-space: nowrap; +} + +.type-parameter { + white-space: nowrap; +} + +.multi-line-signature .type-parameter .parameter { + margin-left: 0px; + display: unset; +} + +.parameter-list { + display: table-cell; + margin-left: 10px; + list-style-type: none; +} + +.signature { + color: #727272; +} + +.signature a { + /* 50% mix of default-primary-color and primary-text-color. */ + color: #4674a2; +} + +.optional { + font-style: italic; +} + +.undocumented { + font-style: italic; +} + +.is-const { + font-style: italic; +} + +.deprecated { + text-decoration: line-through; +} + +.category.linked { + font-weight: bold; + opacity: 1; +} + +/* Colors for category based on categoryOrder in dartdoc_options.config. */ +.category.cp-0 { + background-color: #54b7c4 +} + +.category.cp-1 { + background-color: #54c47f +} + +.category.cp-2 { + background-color: #c4c254 +} + +.category.cp-3 { + background-color: #c49f54 +} + +.category.cp-4 { + background-color: #c45465 +} + +.category.cp-5 { + background-color: #c454c4 +} + +.category a { + color: white; +} + +.category { + padding: 2px 4px; + font-size: 12px; + border-radius: 4px; + background-color: #999; + text-transform: uppercase; + color: white; + opacity: .5; +} + +h1 .category { + vertical-align: middle; +} + +.feature { + display: inline-block; + background: white; + border: 1px solid #0175c2; + border-radius: 20px; + color: #0175c2; + + font-size: 12px; + padding: 1px 6px; + margin: 0 8px 0 0; +} + +h1 .feature { + vertical-align: middle; +} + +.source-link { + padding: 18px 4px; + vertical-align: middle; +} + +.source-link .material-icons { + font-size: 18px; +} + +@media (max-width: 768px) { + .source-link { + padding: 7px 2px; + font-size: 10px; + } +} + +#external-links { + float: right; +} + +.btn-group { + position: relative; + display: inline-flex; + vertical-align: middle; +} + +p.firstline { + font-weight: bold; +} + +footer { + color: #fff; + background-color: #111111; + width: 100%; +} + +footer p { + margin: 0; +} + +footer .no-break { + white-space: nowrap; +} + +footer .container, +footer .container-fluid { + padding-left: 0; + padding-right: 0; +} + +footer a, footer a:hover { + color: #fff; +} + +.markdown.desc { + max-width: 700px; +} + +.markdown h1 { + font-size: 24px; + margin-bottom: 8px; +} + +.markdown h2 { + font-size: 20px; + margin-top: 24px; + margin-bottom: 8px; +} + +.markdown h3 { + font-size: 18px; + margin-bottom: 8px; +} + +.markdown h4 { + font-size: 16px; + margin-bottom: 0; +} + +.markdown li p { + margin: 0; +} + +.gt-separated { + list-style: none; + padding: 0; + margin: 0; +} + +.gt-separated li { + display: inline-block; +} + +.gt-separated li:before { + background-image: url("data:image/svg+xml;utf8,"); + background-position: center; + content: "\00a0"; + margin: 0 6px 0 4px; + padding: 0 3px 0 0; +} + +.gt-separated.dark li:before { + background-image: url("data:image/svg+xml;utf8,"); +} + +.gt-separated li:first-child:before { + background-image: none; + content: ""; + margin: 0; + padding: 0; +} + +/* The slug line under a declaration for things like "const", "read-only", etc. */ +.features { + font-style: italic; + color: #727272; +} + +.multi-line-signature { + font-size: 17px; + color: #727272; +} + +.multi-line-signature .parameter { + margin-left: 24px; + display: block; +} + +.breadcrumbs { + padding: 0; + margin: 8px 0 8px 0; + white-space: nowrap; + line-height: 1; +} + +@media screen and (min-width: 768px) { + nav ol.breadcrumbs { + float: left; + } +} + +@media screen and (max-width: 768px) { + .breadcrumbs { + margin: 0 0 24px 0; + overflow-x: hidden; + } +} + +.self-crumb { + color: #555; +} + +.self-name { + color: #555; + display: none; +} + +.annotation-list { + list-style: none; + padding: 0; + display: inline; +} + +.comma-separated { + list-style: none; + padding: 0; + display: inline; +} + +.comma-separated li { + display: inline; +} + +.comma-separated li:after { + content: ", "; +} + +.comma-separated li:last-child:after { + content: ""; +} + +.end-with-period li:last-child:after { + content: "."; +} + +.container > section:first-child { + border: 0; +} + +.constructor-modifier { + font-style: italic; +} + +section.multi-line-signature div.parameters { + margin-left: 24px; +} + +/* subnav styles */ + +ul.subnav { + overflow: auto; + white-space: nowrap; + padding-left: 0; + min-height: 25px; +} + +ul.subnav::-webkit-scrollbar { + display: none; +} + +ul.subnav li { + display: inline-block; + text-transform: uppercase; +} + +ul.subnav li a { + color: #111; +} + +ul.subnav li { + margin-right: 24px; +} + +ul.subnav li:last-of-type { + margin-right: 0; +} + +@media(max-width: 768px) { + ul.subnav li { + margin-right: 16px; + } +} + +/* sidebar styles */ + +.sidebar ol { + list-style: none; + line-height: 22px; + margin-top: 0; + margin-bottom: 0; + padding: 0 0 15px 0; +} + +.sidebar h5 a, +.sidebar h5 a:hover { + color: #727272; +} + +.sidebar h5, +.sidebar ol li { + text-overflow: ellipsis; + overflow: hidden; + padding: 3px 0; +} + +.sidebar h5 { + color: #727272; + font-size: 18px; + margin: 0 0 25px 0; + padding-top: 0; +} + +.sidebar ol li.section-title { + font-size: 18px; + font-weight: normal; + text-transform: uppercase; + padding-top: 25px; +} + +.sidebar ol li.section-subtitle a { + color: inherit; +} + +.sidebar ol li.section-subtitle { + font-weight: 400; + text-transform: uppercase; +} + +.sidebar ol li.section-subitem { + margin-left: 12px; +} + +.sidebar ol li:first-child { + padding-top: 0; + margin-top: 0; +} + +button { + padding: 0; +} + +#sidenav-left-toggle { + display: none; + vertical-align: text-bottom; + padding: 0; +} + +/* left-nav disappears, and can transition in from the left */ +@media screen and (max-width:768px) { + #sidenav-left-toggle { + display: inline; + background: no-repeat url("data:image/svg+xml;utf8,"); + background-position: center; + width: 24px; + height: 24px; + border: none; + margin-right: 24px; + } + + #overlay-under-drawer.active { + opacity: 0.4; + height: 100%; + z-index: 1999; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: black; + display: block; + } + + .sidebar-offcanvas-left { + left: -100%; + position: fixed; + -webkit-transition:all .25s ease-out; + -o-transition:all .25s ease-out; + transition:all .25s ease-out; + z-index: 2000; + top: 0; + width: 280px; /* works all the way down to an iphone 4 */ + height: 90%; + background-color: white; + overflow-y: scroll; /* TODO: how to hide scroll bars? */ + padding: 10px; + margin: 10px 10px; + box-shadow: 5px 5px 5px 5px #444444; + visibility: hidden; /* shown by Javascript after scroll position restore */ + } + + ol#sidebar-nav { + font-size: 18px; + white-space: pre-line; + } + + .sidebar-offcanvas-left.active { + left: 0; /* this animates our drawer into the page */ + } + + .self-name { + display: inline-block; + } +} + +.sidebar-offcanvas-left h5 { + margin-bottom: 10px; +} + +.sidebar-offcanvas-left h5:last-of-type { + border: 0; + margin-bottom: 25px; +} + +/* the right nav disappears out of view when the window shrinks */ +@media screen and (max-width: 992px) { + .sidebar-offcanvas-right { + display: none; + } +} + +#overlay-under-drawer { + display: none; +} + +/* find-as-you-type search box */ + +/* override bootstrap defaults */ +.form-control { + border-radius: 0; + border: 0; +} + +@media screen and (max-width: 768px) { + form.search { + display: none; + } +} + +.typeahead, +.tt-query, +.tt-hint { + width: 200px; + height: 20px; + padding: 2px 7px 1px 7px; + line-height: 20px; + outline: none; +} + +.typeahead { + background-color: #fff; + border-radius: 2px; +} + +.tt-query { + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.tt-hint { + color: #999 +} + +.navbar-right .tt-menu { + right:0; + left: inherit !important; + width: 422px; + max-height: 250px; + overflow-y: scroll; +} + +.tt-menu { + font-size: 14px; + margin: 0; + padding: 8px 0; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2); + -moz-box-shadow: 0 5px 10px rgba(0,0,0,.2); + box-shadow: 0 5px 10px rgba(0,0,0,.2); +} + +.tt-suggestion { + padding: 3px 20px; + color: #212121; +} + +.tt-suggestion:hover { + cursor: pointer; + color: #fff; + background-color: #0097cf; +} + +.tt-suggestion:hover .search-from-lib { + color: #ddd; +} + +.tt-suggestion.tt-cursor { + color: #fff; + background-color: #0097cf; +} + +.tt-suggestion.tt-cursor .search-from-lib { + color: #ddd; +} + +.tt-suggestion p { + margin: 0; +} + +.search-from-lib { + font-style: italic; + color: gray; +} + +#search-box { + background-color: #ffffff; +} + +.search-body { + border: 1px solid #7f7f7f; + max-width: 400px; + box-shadow: 3px 3px 5px rgba(0,0,0,0.1); +} + +section#setter { + border-top: 1px solid #ddd; + padding-top: 36px; +} + +li.inherited a { + opacity: 0.65; + font-style: italic; +} + +#instance-methods dt.inherited .name, +#instance-properties dt.inherited .name, +#operators dt.inherited .name { + font-weight: 300; + font-style: italic; +} + +#instance-methods dt.inherited .signature, +#instance-properties dt.inherited .signature, +#operators dt.inherited .signature { + font-weight: 300; +} + +@media print { + .subnav, .sidebar { + display:none; + } + + a[href]:after { + content:"" !important; + } +} diff --git a/doc/api/static-assets/typeahead.bundle.min.js b/doc/api/static-assets/typeahead.bundle.min.js new file mode 100644 index 0000000..d107d06 --- /dev/null +++ b/doc/api/static-assets/typeahead.bundle.min.js @@ -0,0 +1,8 @@ +/*! + * typeahead.js 1.1.1 + * https://github.com/twitter/typeahead.js + * Copyright 2013-2017 Twitter, Inc. and other contributors; Licensed MIT + */ + +!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(c){return a.Bloodhound=b(c)}):"object"==typeof exports?module.exports=b(require("jquery")):a.Bloodhound=b(a.jQuery)}(this,function(a){var b=function(){"use strict";return{isMsie:function(){return!!/(msie|trident)/i.test(navigator.userAgent)&&navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2]},isBlankString:function(a){return!a||/^\s*$/.test(a)},escapeRegExChars:function(a){return a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isString:function(a){return"string"==typeof a},isNumber:function(a){return"number"==typeof a},isArray:a.isArray,isFunction:a.isFunction,isObject:a.isPlainObject,isUndefined:function(a){return"undefined"==typeof a},isElement:function(a){return!(!a||1!==a.nodeType)},isJQuery:function(b){return b instanceof a},toStr:function(a){return b.isUndefined(a)||null===a?"":a+""},bind:a.proxy,each:function(b,c){function d(a,b){return c(b,a)}a.each(b,d)},map:a.map,filter:a.grep,every:function(b,c){var d=!0;return b?(a.each(b,function(a,e){if(!(d=c.call(null,e,a,b)))return!1}),!!d):d},some:function(b,c){var d=!1;return b?(a.each(b,function(a,e){if(d=c.call(null,e,a,b))return!1}),!!d):d},mixin:a.extend,identity:function(a){return a},clone:function(b){return a.extend(!0,{},b)},getIdGenerator:function(){var a=0;return function(){return a++}},templatify:function(b){function c(){return String(b)}return a.isFunction(b)?b:c},defer:function(a){setTimeout(a,0)},debounce:function(a,b,c){var d,e;return function(){var f,g,h=this,i=arguments;return f=function(){d=null,c||(e=a.apply(h,i))},g=c&&!d,clearTimeout(d),d=setTimeout(f,b),g&&(e=a.apply(h,i)),e}},throttle:function(a,b){var c,d,e,f,g,h;return g=0,h=function(){g=new Date,e=null,f=a.apply(c,d)},function(){var i=new Date,j=b-(i-g);return c=this,d=arguments,j<=0?(clearTimeout(e),e=null,g=i,f=a.apply(c,d)):e||(e=setTimeout(h,j)),f}},stringify:function(a){return b.isString(a)?a:JSON.stringify(a)},guid:function(){function a(a){var b=(Math.random().toString(16)+"000000000").substr(2,8);return a?"-"+b.substr(0,4)+"-"+b.substr(4,4):b}return"tt-"+a()+a(!0)+a(!0)+a()},noop:function(){}}}(),c="1.1.1",d=function(){"use strict";function a(a){return a=b.toStr(a),a?a.split(/\s+/):[]}function c(a){return a=b.toStr(a),a?a.split(/\W+/):[]}function d(a){a=b.toStr(a);var c=[],d="";return b.each(a.split(""),function(a){a.match(/\s+/)?d="":(c.push(d+a),d+=a)}),c}function e(a){return function(c){return c=b.isArray(c)?c:[].slice.call(arguments,0),function(d){var e=[];return b.each(c,function(c){e=e.concat(a(b.toStr(d[c])))}),e}}}return{nonword:c,whitespace:a,ngram:d,obj:{nonword:e(c),whitespace:e(a),ngram:e(d)}}}(),e=function(){"use strict";function c(c){this.maxSize=b.isNumber(c)?c:100,this.reset(),this.maxSize<=0&&(this.set=this.get=a.noop)}function d(){this.head=this.tail=null}function e(a,b){this.key=a,this.val=b,this.prev=this.next=null}return b.mixin(c.prototype,{set:function(a,b){var c,d=this.list.tail;this.size>=this.maxSize&&(this.list.remove(d),delete this.hash[d.key],this.size--),(c=this.hash[a])?(c.val=b,this.list.moveToFront(c)):(c=new e(a,b),this.list.add(c),this.hash[a]=c,this.size++)},get:function(a){var b=this.hash[a];if(b)return this.list.moveToFront(b),b.val},reset:function(){this.size=0,this.hash={},this.list=new d}}),b.mixin(d.prototype,{add:function(a){this.head&&(a.next=this.head,this.head.prev=a),this.head=a,this.tail=this.tail||a},remove:function(a){a.prev?a.prev.next=a.next:this.head=a.next,a.next?a.next.prev=a.prev:this.tail=a.prev},moveToFront:function(a){this.remove(a),this.add(a)}}),c}(),f=function(){"use strict";function c(a,c){this.prefix=["__",a,"__"].join(""),this.ttlKey="__ttl__",this.keyMatcher=new RegExp("^"+b.escapeRegExChars(this.prefix)),this.ls=c||h,!this.ls&&this._noop()}function d(){return(new Date).getTime()}function e(a){return JSON.stringify(b.isUndefined(a)?null:a)}function f(b){return a.parseJSON(b)}function g(a){var b,c,d=[],e=h.length;for(b=0;bc)}}),c}(),g=function(){"use strict";function c(a){a=a||{},this.maxPendingRequests=a.maxPendingRequests||6,this.cancelled=!1,this.lastReq=null,this._send=a.transport,this._get=a.limiter?a.limiter(this._get):this._get,this._cache=a.cache===!1?new e(0):g}var d=0,f={},g=new e(10);return c.setMaxPendingRequests=function(a){this.maxPendingRequests=a},c.resetCache=function(){g.reset()},b.mixin(c.prototype,{_fingerprint:function(b){return b=b||{},b.url+b.type+a.param(b.data||{})},_get:function(a,b){function c(a){b(null,a),j._cache.set(h,a)}function e(){b(!0)}function g(){d--,delete f[h],j.onDeckRequestArgs&&(j._get.apply(j,j.onDeckRequestArgs),j.onDeckRequestArgs=null)}var h,i,j=this;h=this._fingerprint(a),this.cancelled||h!==this.lastReq||((i=f[h])?i.done(c).fail(e):db[d]?d++:(e.push(a[c]),c++,d++);return e}var h="c",i="i";return b.mixin(c.prototype,{bootstrap:function(a){this.datums=a.datums,this.trie=a.trie},add:function(a){var c=this;a=b.isArray(a)?a:[a],b.each(a,function(a){var f,g;c.datums[f=c.identify(a)]=a,g=d(c.datumTokenizer(a)),b.each(g,function(a){var b,d,g;for(b=c.trie,d=a.split("");g=d.shift();)b=b[h][g]||(b[h][g]=e()),b[i].push(f)})})},get:function(a){var c=this;return b.map(a,function(a){return c.datums[a]})},search:function(a){var c,e,j=this;return c=d(this.queryTokenizer(a)),b.each(c,function(a){var b,c,d,f;if(e&&0===e.length&&!j.matchAnyQueryToken)return!1;for(b=j.trie,c=a.split("");b&&(d=c.shift());)b=b[h][d];if(b&&0===c.length)f=b[i].slice(0),e=e?g(e,f):f;else if(!j.matchAnyQueryToken)return e=[],!1}),e?b.map(f(e),function(a){return j.datums[a]}):[]},all:function(){var a=[];for(var b in this.datums)a.push(this.datums[b]);return a},reset:function(){this.datums={},this.trie=e()},serialize:function(){return{datums:this.datums,trie:this.trie}}}),c}(),i=function(){"use strict";function a(a){this.url=a.url,this.ttl=a.ttl,this.cache=a.cache,this.prepare=a.prepare,this.transform=a.transform,this.transport=a.transport,this.thumbprint=a.thumbprint,this.storage=new f(a.cacheKey)}var c;return c={data:"data",protocol:"protocol",thumbprint:"thumbprint"},b.mixin(a.prototype,{_settings:function(){return{url:this.url,type:"GET",dataType:"json"}},store:function(a){this.cache&&(this.storage.set(c.data,a,this.ttl),this.storage.set(c.protocol,location.protocol,this.ttl),this.storage.set(c.thumbprint,this.thumbprint,this.ttl))},fromCache:function(){var a,b={};return this.cache?(b.data=this.storage.get(c.data),b.protocol=this.storage.get(c.protocol),b.thumbprint=this.storage.get(c.thumbprint),a=b.thumbprint!==this.thumbprint||b.protocol!==location.protocol,b.data&&!a?b.data:null):null},fromNetwork:function(a){function b(){a(!0)}function c(b){a(null,e.transform(b))}var d,e=this;a&&(d=this.prepare(this._settings()),this.transport(d).fail(b).done(c))},clear:function(){return this.storage.clear(),this}}),a}(),j=function(){"use strict";function a(a){this.url=a.url,this.prepare=a.prepare,this.transform=a.transform,this.indexResponse=a.indexResponse,this.transport=new g({cache:a.cache,limiter:a.limiter,transport:a.transport,maxPendingRequests:a.maxPendingRequests})}return b.mixin(a.prototype,{_settings:function(){return{url:this.url,type:"GET",dataType:"json"}},get:function(a,b){function c(a,c){b(a?[]:e.transform(c))}var d,e=this;if(b)return a=a||"",d=this.prepare(a,this._settings()),this.transport.get(d,c)},cancelLastRequest:function(){this.transport.cancel()}}),a}(),k=function(){"use strict";function d(d){var e;return d?(e={url:null,ttl:864e5,cache:!0,cacheKey:null,thumbprint:"",prepare:b.identity,transform:b.identity,transport:null},d=b.isString(d)?{url:d}:d,d=b.mixin(e,d),!d.url&&a.error("prefetch requires url to be set"),d.transform=d.filter||d.transform,d.cacheKey=d.cacheKey||d.url,d.thumbprint=c+d.thumbprint,d.transport=d.transport?h(d.transport):a.ajax,d):null}function e(c){var d;if(c)return d={url:null,cache:!0,prepare:null,replace:null,wildcard:null,limiter:null,rateLimitBy:"debounce",rateLimitWait:300,transform:b.identity,transport:null},c=b.isString(c)?{url:c}:c,c=b.mixin(d,c),!c.url&&a.error("remote requires url to be set"),c.transform=c.filter||c.transform,c.prepare=f(c),c.limiter=g(c),c.transport=c.transport?h(c.transport):a.ajax,delete c.replace,delete c.wildcard,delete c.rateLimitBy,delete c.rateLimitWait,c}function f(a){function b(a,b){return b.url=f(b.url,a),b}function c(a,b){return b.url=b.url.replace(g,encodeURIComponent(a)),b}function d(a,b){return b}var e,f,g;return e=a.prepare,f=a.replace,g=a.wildcard,e?e:e=f?b:a.wildcard?c:d}function g(a){function c(a){return function(c){return b.debounce(c,a)}}function d(a){return function(c){return b.throttle(c,a)}}var e,f,g;return e=a.limiter,f=a.rateLimitBy,g=a.rateLimitWait,e||(e=/^throttle$/i.test(f)?d(g):c(g)),e}function h(c){return function(d){function e(a){b.defer(function(){g.resolve(a)})}function f(a){b.defer(function(){g.reject(a)})}var g=a.Deferred();return c(d,e,f),g}}return function(c){var f,g;return f={initialize:!0,identify:b.stringify,datumTokenizer:null,queryTokenizer:null,matchAnyQueryToken:!1,sufficient:5,indexRemote:!1,sorter:null,local:[],prefetch:null,remote:null},c=b.mixin(f,c||{}),!c.datumTokenizer&&a.error("datumTokenizer is required"),!c.queryTokenizer&&a.error("queryTokenizer is required"),g=c.sorter,c.sorter=g?function(a){return a.sort(g)}:b.identity,c.local=b.isFunction(c.local)?c.local():c.local,c.prefetch=d(c.prefetch),c.remote=e(c.remote),c}}(),l=function(){"use strict";function c(a){a=k(a),this.sorter=a.sorter,this.identify=a.identify,this.sufficient=a.sufficient,this.indexRemote=a.indexRemote,this.local=a.local,this.remote=a.remote?new j(a.remote):null,this.prefetch=a.prefetch?new i(a.prefetch):null,this.index=new h({identify:this.identify,datumTokenizer:a.datumTokenizer,queryTokenizer:a.queryTokenizer}),a.initialize!==!1&&this.initialize()}var e;return e=window&&window.Bloodhound,c.noConflict=function(){return window&&(window.Bloodhound=e),c},c.tokenizers=d,b.mixin(c.prototype,{__ttAdapter:function(){function a(a,b,d){return c.search(a,b,d)}function b(a,b){return c.search(a,b)}var c=this;return this.remote?a:b},_loadPrefetch:function(){function b(a,b){return a?c.reject():(e.add(b),e.prefetch.store(e.index.serialize()),void c.resolve())}var c,d,e=this;return c=a.Deferred(),this.prefetch?(d=this.prefetch.fromCache())?(this.index.bootstrap(d),c.resolve()):this.prefetch.fromNetwork(b):c.resolve(),c.promise()},_initialize:function(){function a(){b.add(b.local)}var b=this;return this.clear(),(this.initPromise=this._loadPrefetch()).done(a),this.initPromise},initialize:function(a){return!this.initPromise||a?this._initialize():this.initPromise},add:function(a){return this.index.add(a),this},get:function(a){return a=b.isArray(a)?a:[].slice.call(arguments),this.index.get(a)},search:function(a,c,d){function e(a){var c=[];b.each(a,function(a){!b.some(f,function(b){return g.identify(a)===g.identify(b)})&&c.push(a)}),g.indexRemote&&g.add(c),d(c)}var f,g=this;return c=c||b.noop,d=d||b.noop,f=this.sorter(this.index.search(a)),c(this.remote?f.slice():f),this.remote&&f.length',menu:'
'}}function d(a){var c={};return b.each(a,function(a,b){c[b]="."+a}),c}function e(){var a={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none",opacity:"1"},input:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},inputWithNoHint:{position:"relative",verticalAlign:"top"},menu:{position:"absolute",top:"100%",left:"0",zIndex:"100",display:"none"},ltr:{left:"0",right:"auto"},rtl:{left:"auto",right:" 0"}};return b.isMsie()&&b.mixin(a.input,{backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"}),a}var f={wrapper:"twitter-typeahead",input:"tt-input",hint:"tt-hint",menu:"tt-menu",dataset:"tt-dataset",suggestion:"tt-suggestion",selectable:"tt-selectable",empty:"tt-empty",open:"tt-open",cursor:"tt-cursor",highlight:"tt-highlight"};return a}(),d=function(){"use strict";function c(b){b&&b.el||a.error("EventBus initialized without el"),this.$el=a(b.el)}var d,e;return d="typeahead:",e={render:"rendered",cursorchange:"cursorchanged",select:"selected",autocomplete:"autocompleted"},b.mixin(c.prototype,{_trigger:function(b,c){var e=a.Event(d+b);return this.$el.trigger.call(this.$el,e,c||[]),e},before:function(a){var b,c;return b=[].slice.call(arguments,1),c=this._trigger("before"+a,b),c.isDefaultPrevented()},trigger:function(a){var b;this._trigger(a,[].slice.call(arguments,1)),(b=e[a])&&this._trigger(b,[].slice.call(arguments,1))}}),c}(),e=function(){"use strict";function a(a,b,c,d){var e;if(!c)return this;for(b=b.split(i),c=d?h(c,d):c,this._callbacks=this._callbacks||{};e=b.shift();)this._callbacks[e]=this._callbacks[e]||{sync:[],async:[]},this._callbacks[e][a].push(c);return this}function b(b,c,d){return a.call(this,"async",b,c,d)}function c(b,c,d){return a.call(this,"sync",b,c,d)}function d(a){var b;if(!this._callbacks)return this;for(a=a.split(i);b=a.shift();)delete this._callbacks[b];return this}function e(a){var b,c,d,e,g;if(!this._callbacks)return this;for(a=a.split(i),d=[].slice.call(arguments,1);(b=a.shift())&&(c=this._callbacks[b]);)e=f(c.sync,this,[b].concat(d)),g=f(c.async,this,[b].concat(d)),e()&&j(g);return this}function f(a,b,c){function d(){for(var d,e=0,f=a.length;!d&&e