Commit 4a8203f3 authored by Albert's avatar Albert

Creacion del proyecto SIAP

parents
Licencias ServerBox3D 2017
{ "lic": "8ca4c66c-a303-46c8-9f33-a1fab022ba1a" },
{ "lic": "60fdb27c-46ba-4eed-9169-f85ce4a2c93e" },
{ "lic": "8090e013-737f-4547-880b-e458aa0e4f68" },
{ "lic": "3ed5f70f-97a6-4d99-ad08-d14c4f8d1399" },
{ "lic": "caaccea5-25e2-4461-b239-2b3b08f0cc09" },
{ "lic": "5ff39109-0e6f-452b-ad9e-b844b0edc367" },
{ "lic": "26e5ef82-25db-4199-a551-5c59b9ca4959" },
{ "lic": "b832adee-8952-4799-bc67-f0f5004063a4" },
{ "lic": "708e1b48-777d-4ff1-92ed-3e902e385df7" },
{ "lic": "9ad8b5cd-f980-45e2-b145-67b8ea3cc6fb" },
{ "lic": "82e623fd-67c9-4f13-960b-adb43e4f2c94" },
{ "lic": "49b5b561-6e8e-47bf-8086-abb42325277e" },
{ "lic": "dc60a4d4-7985-450f-894a-cf715c6fdeaa" },
{ "lic": "3152de49-49c3-419a-b9f7-e368bc464713" },
{ "lic": "2737efdf-6a08-48c9-9055-168569f84b4f" },
{ "lic": "21dcff2a-22e9-4a72-9bd9-61dd4d39bed6" },
{ "lic": "d9fbd924-9235-462b-b28b-f2956449a573" },
{ "lic": "c6c8ecd6-5a91-4a41-9b89-f8acc57dc728" },
{ "lic": "7fc61ea4-3cf0-484c-9055-bbc64e7d9e13" },
{ "lic": "ace89d72-0bb5-4d48-a814-e76c7cf94939" },
{ "lic": "4b3e4330-dddd-4b20-8766-7174c24b9f55" },
{ "lic": "ec705e3f-2d1e-4890-8ef0-b7f27b70d59d" },
{ "lic": "e4bb5bd7-e2b7-4300-861a-dad482e3ec5d" },
{ "lic": "fe525806-8d55-40d8-9300-0cee593ec3ca" },
{ "lic": "26b6e200-1c44-4b34-875b-54347ede2f40" },
{ "lic": "9565c972-152d-42ad-b0e8-bfb738cc2622" },
{ "lic": "ed439987-df74-4033-87fc-3e728c608e40" },
{ "lic": "4a479f7a-bbb5-4150-9185-0d27fc0a1532" },
{ "lic": "e9f5ecea-42e8-4b1a-b6de-51abdc3a571e" },
{ "lic": "5143ed4a-d85a-4b73-bacc-99dab8503788" },
{ "lic": "4867bfd0-2a13-404a-82f9-373517c0a367" },
{ "lic": "02d5092a-b079-42d4-8835-55cc3a7de2fb" },
{ "lic": "c8b00cc5-72bb-47c8-ba7d-ea5d10f733aa" },
{ "lic": "b1293f6b-41f1-4247-a092-f15bccc4d8e3" },
{ "lic": "286809b3-44b5-4938-9d7e-bc45805ae685" },
{ "lic": "5b904942-c2c3-4aa9-bafe-c7c064c40e73" },
{ "lic": "e8a0e0b3-d529-4093-bb07-7ad13ce3b866" },
{ "lic": "e4ccfa5d-4138-40ab-bc1d-77d6a1e2aebe" },
{ "lic": "c8424ffd-2fcd-4c28-9d5f-5440a822c583" },
{ "lic": "31b7d73a-c519-4d00-9705-25c0556d11ff" },
{ "lic": "7e96428d-3dd6-4511-8beb-12c242ee6e74" },
{ "lic": "e9687f56-846d-4543-99be-046e7e438df3" },
{ "lic": "3d134b22-77ac-45e3-9267-cd3641faa022" },
{ "lic": "94962b2f-c8b3-4a09-9e3f-c158afb9f1e4" },
{ "lic": "134c223c-0cec-4dc4-9d6c-c72ceedc9a7b" },
{ "lic": "5f4b1810-03a2-4702-a4ce-63fdb2e909f3" },
{ "lic": "98e5de73-7273-4e14-a36b-278087ef5cf9" },
{ "lic": "1e437d14-e1b1-4b46-bccb-efb30fdabff7" },
{ "lic": "f204bcf2-47de-40c4-9b6a-718e225c7793" },
{ "lic": "cd0c6f78-23bd-472b-9a26-ca623af7cf02" },
{ "lic": "65345ee3-56bd-4824-90e2-16f081879b26" },
{ "lic": "1927ff17-0aa1-4db3-a131-aba28f75ccac" },
{ "lic": "1b991fea-8ae7-40b8-86e1-3c12197beccb" },
{ "lic": "620cb729-dc90-4dd0-923a-b0bea87f53df" },
{ "lic": "af150fe5-3da6-4186-b570-eb28a8594363" },
{ "lic": "31e3ea08-5c6f-4407-a04d-dabaf427f754" },
{ "lic": "124f46fb-f3a6-4b25-9239-ea4952bb96d9" },
{ "lic": "cc242874-536f-4421-80ac-3fa1d361d801" },
{ "lic": "7fec8397-fe99-4dbe-977e-704aeafe2884" },
{ "lic": "05eb08a7-0aeb-495f-b2c0-77093c65ae89" },
{ "lic": "f22a138c-1b01-46f3-b4c1-5dcc64f35609" },
{ "lic": "d8b4c9cd-58cd-4ed4-8117-2b71e2c394cf" },
{ "lic": "b9fef494-e827-4dae-ad8d-f9e9c6313d7a" },
{ "lic": "7a2e788b-2f81-411b-a6fa-b5b4e777d00b" },
{ "lic": "3910ab7f-1c7a-49d7-bb36-a19c0aa45001" },
{ "lic": "052116da-af7e-4dec-bf25-dd43f1b312aa" }
\ No newline at end of file
<?xml version="1.0"?>
<configuration>
<system.webServer>
<staticContent>
<!-- Configure site to serve JSON files -->
<remove fileExtension=".json"/>
<mimeMap fileExtension=".json" mimeType="application/json"/>
<!-- Configure site to serve font files -->
<remove fileExtension=".otf"/>
<mimeMap fileExtension=".otf" mimeType="font/otf"/>
</staticContent>
</system.webServer>
<system.web>
<compilation debug="true"/>
</system.web>
</configuration>
\ No newline at end of file
{
"theme": {
"name": "FoldableTheme",
"styles": [
"black"
],
"version": "2.4"
},
"portalUrl": "http://url",
"logo": "images/logo.png",
"geometryService": "https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",
"links": [],
"widgetOnScreen": {
"widgets": [{
"uri": "themes/FoldableTheme/widgets/HeaderController/Widget",
"position": {
"left": 0,
"top": 0,
"right": 0,
"height": 40,
"paddingRight": 240,
"relativeTo": "browser"
},
"version": "2.4",
"id": "widgets_theme",
"icon": "themes/FoldableTheme/widgets/HeaderController/images/icon.png",
"name": "HeaderController",
"label": "Controlador de encabezado"
},
{
"uri": "widgets/Search/Widget",
"position": {
"right": 2,
"top": 4,
"relativeTo": "browser",
"zIndex": 6
},
"version": "2.4",
"id": "widgets_search",
"icon": "widgets/Search/images/icon.png",
"name": "Search",
"label": "Buscar"
},
{
"uri": "widgets/ZoomSlider/Widget",
"position": {
"left": 10,
"top": 10,
"relativeTo": "map"
},
"version": "2.4",
"id": "widgets_ZoomSlider",
"icon": "widgets/ZoomSlider/images/icon.png",
"name": "ZoomSlider",
"label": "Control deslizante de zoom"
},
{
"uri": "widgets/Home/Widget",
"position": {
"left": 10,
"top": 85,
"relativeTo": "map"
},
"version": "2.4",
"id": "widgets_Home",
"icon": "widgets/Home/images/icon.png",
"name": "Home",
"label": "Inicio"
},
{
"uri": "widgets/Basemap/Widget",
"position": {
"left": 10,
"bottom": 108,
"relativeTo": "map"
},
"version": "2.4",
"id": "widgets_basemap",
"name": "Basemap",
"label": "mapas bases"
},
{
"uri": "widgets/MyLocation/Widget",
"position": {
"left": 10,
"top": 123,
"relativeTo": "map"
},
"version": "2.4",
"id": "widgets_MyLocation",
"icon": "widgets/MyLocation/images/icon.png",
"name": "MyLocation",
"label": "Mi ubicación"
},
{
"uri": "widgets/Navigate/Widget",
"position": {
"left": 10,
"top": 161,
"relativeTo": "map"
},
"version": "2.4",
"id": "widgets_Navigate",
"icon": "widgets/Navigate/images/icon.png",
"name": "Navigate",
"label": "Navegar"
},
{
"uri": "widgets/Compass/Widget",
"position": {
"right": 10,
"top": 10,
"relativeTo": "map"
},
"version": "2.4",
"id": "widgets_Compass",
"icon": "widgets/Compass/images/icon.png",
"name": "Compass",
"label": "Brújula"
},
{
"uri": "widgets/FullScreen/Widget",
"position": {
"right": 10,
"top": 52,
"relativeTo": "map"
},
"version": "2.4",
"id": "widgets_FullScreen",
"icon": "widgets/FullScreen/images/icon.png",
"name": "FullScreen",
"label": "Pantalla completa"
},
{
"uri": "widgets/Coordinate/Widget",
"position": {
"left": 0,
"bottom": 16,
"relativeTo": "map"
},
"version": "2.4",
"id": "widgets_Coordinate",
"icon": "widgets/Coordinate/images/icon.png",
"name": "Coordinate",
"label": "Coordenada"
}
],
"panel": {
"uri": "jimu/OnScreenWidgetPanel",
"position": {
"relativeTo": "map"
}
}
},
"map": {
"3D": true,
"2D": false,
"position": {
"left": 0,
"top": 40,
"right": 0,
"bottom": 0
},
"itemId": "itemid",
"mapOptions": {
"showAttribution": false
},
"id": "map",
"portalUrl": "http://url",
"serverboxlicense": "licencia"
},
"widgetPool": {
"panel": {
"uri": "themes/FoldableTheme/panels/FoldablePanel/Panel",
"position": {
"top": 5,
"right": 5,
"bottom": 5,
"relativeTo": "map"
}
},
"widgets": [
{
"uri": "widgets/Slides/Widget",
"version": "2.4",
"id": "widgets_Slides_Widget_12",
"name": "Slides",
"label": "Diapositivas",
"position": {
"relativeTo": "map"
},
"index": 3,
"icon": "widgets/Slides/images/icon.png"
},
{
"name": "LayerList",
"label": "Lista de capas",
"version": "2.4",
"uri": "widgets/LayerList/Widget",
"index": 5,
"id": "widgets_LayerList"
},
{
"uri": "widgets/Mapas/Widget",
"version": "2.4",
"id": "widgets_Mapas",
"name": "Mapas",
"label": "Mapas",
"position": {
"relativeTo": "map"
},
"index": 5,
"icon": "widgets/Mapas/images/icon.png",
"layers": [
{
"url": "http://url",
"title": "titulo",
"visibility": true
}
]
},
{
"uri": "widgets/HistoricMaps/Widget",
"version": "2.4",
"id": "widgets_HistoricMaps",
"name": "HistoricMaps",
"label": "Historial de mapas",
"position": {
"width": "100%",
"relativeTo": "map"
},
"index": 3,
"icon": "widgets/HistoricMaps/images/icon.png",
"layers": [
{
"url": "http://url",
"titulo": "titulo",
"thumbnail": "",
"anio": 1900
},
{
"url": "http://url",
"titulo": "titulo",
"thumbnail": "",
"anio": 1900
},
{
"url": "http://url",
"titulo": "titulo",
"thumbnail": "",
"anio": 1900
},
{
"url": "http://url",
"titulo": "titulo",
"thumbnail": "",
"anio": 1900
},
{
"url": "http://url",
"titulo": "titulo",
"thumbnail": "",
"anio": 1900
},
{
"url": "http://url",
"titulo": "titulo",
"thumbnail": "",
"anio": 1900
},
{
"url": "http://url",
"titulo": "titulo",
"thumbnail": "",
"anio": 1900
},
{
"url": "http://url",
"titulo": "titulo",
"thumbnail": "",
"anio": 1900
},
{
"url": "http://url",
"titulo": "titulo",
"thumbnail": "",
"anio": 1900
}
]
},
{
"uri": "widgets/2D3D/Widget",
"version": "2.4",
"id": "widgets_2D3D",
"name": "2D3D",
"label": "2D3D",
"position": {
"relativeTo": "map"
},
"index": 6,
"icon": "widgets/2D3D/images/icon.png",
"layers": [
{
"url": "http://url",
"title": "titulo",
"visibility": true
}
]
}
],
"groups": []
},
"loadingPage": {
"backgroundColor": "black",
"backgroundImage": {
"visible": false
},
"loadingGif": {
"visible": true,
"width": 58,
"height": 29
}
},
"wabVersion": "2.4",
"isTemplateApp": true,
"isWebTier": false,
"configWabVersion": "2.4"
}
{
"theme": {
"name": "FoldableTheme",
"styles": [
"black"
],
"version": "2.4"
},
"portalUrl": "http://arcgis105.sigsa.info",
"logo": "images/logo.png",
"geometryService": "https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",
"links": [],
"widgetOnScreen": {
"widgets": [
{
"uri": "themes/FoldableTheme/widgets/HeaderController/Widget",
"position": {
"left": 0,
"top": 0,
"right": 0,
"height": 40,
"paddingRight": 240,
"relativeTo": "browser"
},
"version": "2.4",
"id": "widgets_theme",
"icon": "themes/FoldableTheme/widgets/HeaderController/images/icon.png",
"name": "HeaderController",
"label": "Controlador de encabezado"
},
{
"uri": "widgets/Search/Widget",
"position": {
"right": 2,
"top": 4,
"relativeTo": "browser",
"zIndex": 6
},
"version": "2.4",
"id": "widgets_search",
"icon": "widgets/Search/images/icon.png",
"name": "Search",
"label": "Buscar"
},
{
"uri": "widgets/ZoomSlider/Widget",
"position": {
"left": 10,
"top": 10,
"relativeTo": "map"
},
"version": "2.4",
"id": "widgets_ZoomSlider",
"icon": "widgets/ZoomSlider/images/icon.png",
"name": "ZoomSlider",
"label": "Control deslizante de zoom"
},
{
"uri": "widgets/Home/Widget",
"position": {
"left": 10,
"top": 85,
"relativeTo": "map"
},
"version": "2.4",
"id": "widgets_Home",
"icon": "widgets/Home/images/icon.png",
"name": "Home",
"label": "Inicio"
},
{
"uri": "widgets/Basemap/Widget",
"position": {
"left": 10,
"bottom": 108,
"relativeTo": "map"
},
"version": "2.4",
"id": "widgets_basemap",
"name": "Basemap",
"label": "mapas bases"
},
{
"uri": "widgets/MyLocation/Widget",
"position": {
"left": 10,
"top": 123,
"relativeTo": "map"
},
"version": "2.4",
"id": "widgets_MyLocation",
"icon": "widgets/MyLocation/images/icon.png",
"name": "MyLocation",
"label": "Mi ubicación"
},
{
"uri": "widgets/Navigate/Widget",
"position": {
"left": 10,
"top": 161,
"relativeTo": "map"
},
"version": "2.4",
"id": "widgets_Navigate",
"icon": "widgets/Navigate/images/icon.png",
"name": "Navigate",
"label": "Navegar"
},
{
"uri": "widgets/Compass/Widget",
"position": {
"right": 10,
"top": 10,
"relativeTo": "map"
},
"version": "2.4",
"id": "widgets_Compass",
"icon": "widgets/Compass/images/icon.png",
"name": "Compass",
"label": "Brújula"
},
{
"uri": "widgets/FullScreen/Widget",
"position": {
"right": 10,
"top": 52,
"relativeTo": "map"
},
"version": "2.4",
"id": "widgets_FullScreen",
"icon": "widgets/FullScreen/images/icon.png",
"name": "FullScreen",
"label": "Pantalla completa"
},
{
"uri": "widgets/Coordinate/Widget",
"position": {
"left": 0,
"bottom": 16,
"relativeTo": "map"
},
"version": "2.4",
"id": "widgets_Coordinate",
"icon": "widgets/Coordinate/images/icon.png",
"name": "Coordinate",
"label": "Coordenada"
}
],
"panel": {
"uri": "jimu/OnScreenWidgetPanel",
"position": {
"relativeTo": "map"
}
}
},
"map": {
"3D": true,
"2D": false,
"position": {
"left": 0,
"top": 40,
"right": 0,
"bottom": 0
},
"itemId": "8c7b8a643fec42bc8e917866e6312154",
"mapOptions": {
"showAttribution": false
},
"id": "map",
"portalUrl": "http://arcgis105.sigsa.info",
"serverboxlicense": "licencia"
},
"widgetPool": {
"panel": {
"uri": "themes/FoldableTheme/panels/FoldablePanel/Panel",
"position": {
"top": 5,
"right": 5,
"bottom": 5,
"relativeTo": "map"
}
},
"widgets": [
{
"uri": "widgets/Slides/Widget",
"version": "2.4",
"id": "widgets_Slides_Widget_12",
"name": "Slides",
"label": "Diapositivas",
"position": {
"relativeTo": "map"
},
"index": 3,
"icon": "widgets/Slides/images/icon.png"
},
{
"name": "LayerList",
"label": "Lista de capas",
"version": "2.4",
"uri": "widgets/LayerList/Widget",
"index": 5,
"id": "widgets_LayerList"
},
{
"uri": "widgets/Mapas/Widget",
"version": "2.4",
"id": "widgets_Mapas",
"name": "Mapas",
"label": "Mapas",
"position": {
"relativeTo": "map"
},
"index": 5,
"icon": "widgets/Mapas/images/icon.png",
"layers": [
{
"url": "http://url",
"title": "titulo",
"visibility": true
}
]
},
{
"uri": "widgets/HistoricMaps/Widget",
"version": "2.4",
"id": "widgets_HistoricMaps",
"name": "HistoricMaps",
"label": "Historial de mapas",
"position": {
"width": "100%",
"relativeTo": "map"
},
"index": 3,
"icon": "widgets/HistoricMaps/images/icon.png",
"layers": [
{
"url": "http://192.168.0.120:6080/arcgis/rest/services/1980/CHIH_Chihuahua_0946/ImageServer",
"titulo": "titulo",
"thumbnail": "",
"anio": 1900
},
{
"url": "http://192.168.0.120:6080/arcgis/rest/services/1980/CHIH_Chihuahua_0951/ImageServer",
"titulo": "titulo",
"thumbnail": "",
"anio": 1900
}
]
},
{
"uri": "widgets/2D3D/Widget",
"version": "2.4",
"id": "widgets_2D3D",
"name": "2D3D",
"label": "2D3D",
"position": {
"relativeTo": "map"
},
"index": 6,
"icon": "widgets/2D3D/images/icon.png",
"layers": [
{
"url": "http://url",
"title": "titulo",
"visibility": true
}
]
}
],
"groups": []
},
"loadingPage": {
"backgroundColor": "black",
"backgroundImage": {
"visible": false
},
"loadingGif": {
"visible": true,
"width": 58,
"height": 29
}
},
"wabVersion": "2.4",
"isTemplateApp": true,
"isWebTier": false,
"configWabVersion": "2.4"
}
/* jshint unused:false */
var profile = {
resourceTags: {
test: function (filename, mid) {
return (/test/).test(mid);
},
copyOnly: function (filename, mid) {
/* jshint unused:false */
return false;
},
amd: function (filename, mid) {
return !this.copyOnly(filename, mid) && /\.js$/.test(filename);
},
miniExclude: function (filename, mid) {
return mid in {
'dynamic-modules/package': 1
};
}
}
};
\ No newline at end of file
{
"name": "dynamic-modules",
"version": "1.0",
"main": "main",
"dependencies": {
"dojo": "",
"dijit": "",
"dojox": "",
"util": "",
"esri": "",
"jimu": ""
},
"description": "dynamic modules for ArcGIS Web Application, these modules are generated by build",
"bugs": "",
"dojoBuild": "package.js"
}
define([], function(){
//these modules will be loaded after the whole app loaded.
});
\ No newline at end of file
define([], function(){
//these modules will be loaded before jimu.main
});
\ No newline at end of file
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
<title>ServerBox 3D®</title>
<link rel="shortcut icon" href="images/shortcut.ico">
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="jimu.js/css/jimu-ie.css" />
<![endif]-->
</head>
<body style="background-color:black; color:white;">
<center>
<div style="padding-top:250px; font-family: Helvetica Neue,Helvetica,Arial,sans-serif; font-size: 17px;font-style: normal;font-variant: normal;font-weight: 500;line-height: 26.4px;">
<h1> Licencia no válida </h1>
<img src="style/images/loading.gif" />
</div>
</center>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
<title>ServerBox 3D®</title>
<link rel="shortcut icon" href="images/shortcut.ico">
<!--[if IE 8]>
<link rel="stylesheet" type="text/css" href="jimu.js/css/jimu-ie.css" />
<![endif]-->
<link rel="stylesheet" href="style/font-awesome.css">
<link rel="stylesheet" href="style/style.css" />
<link rel="stylesheet" href="style/bootstrap.min.css">
</head>
<body class="claro jimu-main-font">
<div id="main-loading">
<div id="app-loading"></div>
<div id="loading-gif">
</div>
<div id="ie-note" style="display:none;">
<div class="hint-title">Error</div>
<div class="hint-img">Este Browser no esta soportado.</div>
<p class="hint-text">
<span>
Este visualizador no esta soportado en Internet Explorer 6, 7.
</span>
<br>
<span>
Recomendamos actualizar a las ultimas versiones de Internet Explorer, Google Chrome, o Firefox.
</span>
<br>
</p>
</div>
</div>
<div id="main-page">
<div id="jimu-layout-manager"></div>
</div>
<script src="js/env.js"></script>
<script type="text/javascript" src="js/load.js"></script>
<script type="text/javascript" src="js/iniload.js"></script>
<script type="text/javascript" src="js/jsapi.js"></script>
<script src="js/jquery-1.11.0.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>
///////////////////////////////////////////////////////////////////////////
// Copyright © 2015 Esri. All Rights Reserved.
//
// 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.
///////////////////////////////////////////////////////////////////////////
define([
'dojo/_base/declare',
'dojo/_base/lang',
'dojo/Deferred',
'dojo/json',
'esri/geometry/Extent',
'esri/geometry/SpatialReference',
'libs/storejs/store',
'libs/md5/md5',
'jimu/tokenUtils'
], function(declare, lang, Deferred, json, Extent,
SpatialReference, storejs, md5js, TokenUtils) {
var instance = null;
var clazz = declare(null, {
rawAppConfig: null,
mapMd5: null,
appStateKey: null,
setRawAppConfig: function(rAppConfig) {
this.rawAppConfig = rAppConfig;
},
_getAppStateMd5: function() {
if (typeof this.mapMd5 === 'string') {
return this.mapMd5;
} else {
var str = json.stringify(this.rawAppConfig.map);
this.mapMd5 = md5js(str);
return this.mapMd5;
}
},
_getAppStateKey: function() {
if (this.appStateKey) {
return this.appStateKey;
}
// xt or integration use id of app as key,
// deploy app use pathname as key
this.appStateKey = 'wab_appstate_' + this.urlParams.id || this.urlParams.appid ||
window.path;
return this.appStateKey;
},
getWabAppState: function() {
var def = new Deferred();
var data = {};
if (TokenUtils.isInConfigOrPreviewWindow() ||
!(this.rawAppConfig && this.rawAppConfig.map)) {
def.resolve(data);
return def;
}
var appStateKey = this._getAppStateKey();
var appState = storejs.get(appStateKey);
if (appState && appState.appStateMd5 === this._getAppStateMd5()){
var extent = appState.map && appState.map.extent;
var layers = appState.map && appState.map.layers;
if (extent) {
data.extent = new Extent(
extent.xmin,
extent.ymin,
extent.xmax,
extent.ymax,
new SpatialReference(extent.spatialReference)
);
}
if (layers) {
data.layers = layers;
}
} else {
storejs.remove(appStateKey);
}
def.resolve(data);
return def;
},
saveWabAppState: function(map, layerInfosObj) {
if (!map || TokenUtils.isInConfigOrPreviewWindow()) {
return;
}
var key = this._getAppStateKey();
var mapObj = {
extent: {
xmin: map.extent.xmin,
xmax: map.extent.xmax,
ymin: map.extent.ymin,
ymax: map.extent.ymax,
spatialReference: {
wkid: map.extent.spatialReference.wkid,
wkt: map.extent.spatialReference.wkt
}
},
layers: {}
};
if (layerInfosObj && layerInfosObj.traversalLayerInfosOfWebmap) {
layerInfosObj.traversalLayerInfosOfWebmap(lang.hitch(this, function(layerInfo) {
mapObj.layers[layerInfo.id] = {
visible: layerInfo.isShowInMap()
};
}));
}
storejs.set(key, {
map: mapObj,
appStateMd5: this._getAppStateMd5()
});
}
});
clazz.getInstance = function(urlParams) {
if (instance === null) {
instance = new clazz();
}
instance.urlParams = urlParams;
return instance;
};
return clazz;
});
\ No newline at end of file
This diff is collapsed.
///////////////////////////////////////////////////////////////////////////
// Copyright © 2014 - 2016 Esri. All Rights Reserved.
//
// 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.
///////////////////////////////////////////////////////////////////////////
define(['dojo/_base/declare',
'dojo/_base/lang',
'dojo/_base/html',
'dijit/_WidgetBase'],
function (declare, lang, html, _WidgetBase) {
return declare([_WidgetBase], {
widget: null,
baseClass: 'jimu-widget-frame jimu-container',
postCreate: function(){
this.inherited(arguments);
if(!this.containerNode){
this.containerNode = this.domNode;
}
if(this.widget){
this.setWidget(this.widget);
}
},
startup: function(){
this.inherited(arguments);
if(this.widget){
this.widget.startup();
}
},
resize: function(){
if(this.widget && this.widget.state !== 'closed' &&
lang.isFunction(this.widget.resize)){
this.widget.resize();
}
},
setLoading: function(_loading){
this.loading = _loading;
this.loading.placeAt(this.containerNode);
},
getWidget: function(){
return this.widget;
},
setWidget: function(w){
this.widget = w;
if(this.loading){
this.loading.destroy();
}
html.place(w.domNode, this.containerNode);
this.resize();
},
destroy: function(){
if(this.widget && this.widget.domNode){
try{
this.widget.destroy();
}catch(error){
console.error('destroy widget error. widget: [' + this.widget.uri + '], ' + error.stack);
}
}
if(this.loading && this.loading.domNode){
this.loading.destroy();
}
}
});
});
\ No newline at end of file
///////////////////////////////////////////////////////////////////////////
// Copyright © 2014 - 2016 Esri. All Rights Reserved.
//
// 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.
///////////////////////////////////////////////////////////////////////////
define(['dojo/_base/declare',
'dojo/_base/lang',
'dojo/_base/array',
'dojo/_base/html',
'dijit/_WidgetBase',
'dijit/_Container',
'./dijit/LoadingIndicator',
'./BaseWidgetFrame',
'./utils'],
function (declare, lang, array, html, _WidgetBase, _Container, LoadingIndicator,
BaseWidgetFrame, utils) {
return declare([_WidgetBase, _Container], {
baseClass: 'jimu-panel jimu-container',
started: false,
state: 'closed',
windowState: 'normal',
moveTopOnActive: true,
/**************
*animations, can be:
* string:
For open animation: fadeIn, wipeIn ...
For close animation: fadeOut, wipeOut ...
* array: array of the above effects, will be played one by one
* function: an animation function
***************/
openAnimation: null,
closeAnimation: null,
// onPositionChangeAnimation: null,
//
animationDuration: 0,
startup: function(){
this.inherited(arguments);
this.loadAllWidgetsInOrder();
this.started = true;
},
loadAllWidgetsInOrder: function(){
var configs = this.getAllWidgetConfigs();
if(Array.isArray(this.config.widgets)){
configs = this.config.widgets;
}else{
configs = [this.config];
}
array.forEach(configs, function(widgetConfig){
var frame, loading;
if(widgetConfig.visible === false){
return;
}
loading = new LoadingIndicator();
frame = this.createFrame(widgetConfig);
this.addChild(frame);
frame.setLoading(loading);
this.widgetManager.loadWidget(widgetConfig).then(lang.hitch(this, function(widget){
frame.setWidget(widget);
widget.startup();
}));
}, this);
},
getAllWidgetConfigs: function(){
var configs = [];
if(Array.isArray(this.config.widgets)){
configs = this.config.widgets;
}else{
configs = [this.config];
}
return configs;
},
getWidgetById: function(widgetId){
var frames = this.getChildren();
for(var i = 0; i < frames.length; i++){
if(frames[i].getWidget() && frames[i].getWidget().id === widgetId){
return frames[i].getWidget();
}
}
},
createFrame: function(widgetSetting){
/*jshint unused: false*/
return new BaseWidgetFrame();
},
setPosition: function(position, containerNode){
this.position = position;
var style = utils.getPositionStyle(this.position);
style.position = 'absolute';
if(!containerNode){
if(position.relativeTo === 'map'){
containerNode = this.sceneView.map.id;
}else{
containerNode = window.jimuConfig.layoutId;
}
}
if(this.started){
this.resize();
}else{
if(this.openAnimation){
style.display = 'none';
}
}
html.place(this.domNode, containerNode);
html.setStyle(this.domNode, style);
},
getPosition: function(){
return this.position;
},
setState: function(state){
this.state = state;
},
setWindowState: function(state){
this.windowState = state;
},
resize: function(){
this.getChildren().forEach(function(frame){
frame.resize();
});
},
onPositionChange: function(position){
this.setPosition(position);
},
onOpen: function(){
array.forEach(this.getChildren(), function(frame){
if(frame.getWidget()){
this.widgetManager.openWidget(frame.getWidget());
}
}, this);
},
onClose: function(){
array.forEach(this.getChildren(), function(frame){
if(frame.getWidget()){
this.widgetManager.closeWidget(frame.getWidget());
}
}, this);
},
onMaximize: function(){
array.forEach(this.getChildren(), function(frame){
if(frame.getWidget()){
this.widgetManager.maximizeWidget(frame.getWidget());
}
}, this);
},
onMinimize: function(){
array.forEach(this.getChildren(), function(frame){
if(frame.getWidget()){
this.widgetManager.minimizeWidget(frame.getWidget());
}
}, this);
},
onNormalize: function(){
array.forEach(this.getChildren(), function(frame){
if(frame.getWidget()){
this.widgetManager.normalizeWidget(frame.getWidget());
}
}, this);
},
onActive: function(){
// summary:
// this function will be called when panel is clicked.
},
onDeActive: function(){
// summary:
// this function will be called when another panel is clicked.
},
//update the config without reload the widget
updateConfig: function(_config){
this._updateConfig(_config);
},
reloadWidget: function(widgetConfig){
if(!this.isWidgetInPanel(widgetConfig)){
return;
}
this._updateConfig(widgetConfig);
this.getChildren().forEach(function(frame){
if(frame.getWidget() && frame.getWidget().id === widgetConfig.id){
frame.getWidget().destroy();
frame.setLoading(new LoadingIndicator());
this.widgetManager.loadWidget(widgetConfig).then(lang.hitch(this, function(widget){
frame.setWidget(widget);
widget.startup();
if(this.state === 'closed'){
this.widgetManager.closeWidget(widget);
}
}));
}
}, this);
},
isWidgetInPanel: function(widgetConfig){
if(array.some(this.getAllWidgetConfigs(), function(wc){
if(widgetConfig.id === wc.id){
return true;
}
})){
//the widget is in the panel
return true;
}else{
return false;
}
},
_updateConfig: function(widgetConfig) {
if(Array.isArray(this.config.widgets)){
var index = -1;
for(var i = 0; i < this.config.widgets.length; i++){
if(this.config.widgets[i].id === widgetConfig.id){
index = i;
}
}
if(index > 0){
this.config.widgets[index] = widgetConfig;
}
}else{
this.config = widgetConfig;
}
},
destroy: function(){
this.getChildren().forEach(function(frame){
try{
if(frame.domNode){
frame.destroy();
}
}catch(error){
console.error('destroy widget frame error.' + error.stack);
}
});
this.inherited(arguments);
}
});
});
///////////////////////////////////////////////////////////////////////////
// Copyright © 2014 - 2016 Esri. All Rights Reserved.
//
// 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.
///////////////////////////////////////////////////////////////////////////
define([
'dojo/_base/declare',
'dojo/_base/lang',
'dojo/on',
'dijit/_WidgetBase',
'dijit/_TemplatedMixin'
],
function(declare, lang, on, _WidgetBase, _TemplatedMixin) {
return declare([_WidgetBase, _TemplatedMixin], {
templateString: '<div></div>',
postCreate: function(){
this.own(on(window, 'resize', lang.hitch(this, this._onWindowResize)));
},
getConfig: function(){
//implemented by sub class, should return the config object.
},
// setConfig: function(/* jshint unused:false */ config){
// //implemented by sub class, should update the config UI
// },
resize: function(){
},
_onWindowResize: function(){
this.resize();
}
});
});
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
///////////////////////////////////////////////////////////////////////////
// Copyright © 2014 - 2016 Esri. All Rights Reserved.
//
// 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.
///////////////////////////////////////////////////////////////////////////
define(['dojo/_base/declare',
'dojo/_base/lang',
'dojo/topic',
'./WidgetManager'],
function (declare, lang, topic, WidgetManager) {
var instance = null, clazz;
clazz = declare(null, {
constructor: function () {
topic.subscribe('publishData', lang.hitch(this, this.onDataPublished));
topic.subscribe('fetchData', lang.hitch(this, this.onFetchData));
topic.subscribe('clearAllData', lang.hitch(this, this.onClearAllData));
topic.subscribe('removeData', lang.hitch(this, this.onRemoveData));
topic.subscribe('clearDataHistory', lang.hitch(this, this.onClearDataHistory));
this.widgetManager = WidgetManager.getInstance();
},
//key=widgetid, value={current: data, history: [data]}
_dataStore: {},
onDataPublished: function (name, id, data, keepHistory) {
// jshint unused:false
if(typeof keepHistory === 'undefined') {
keepHistory = false;
}
if(!this._dataStore[id]) {
this._dataStore[id] = {current: data};
if(keepHistory){
this._dataStore[id].history = [data];
}
}else{
this._dataStore[id].current = data;
if(keepHistory){
if(this._dataStore[id].history){
this._dataStore[id].history.push(data);
}else{
this._dataStore[id].history = [data];
}
}
}
},
onFetchData: function (id) {
var w;
if(id){
if(id === 'framework'){
if(this._dataStore[id]) {
topic.publish('dataFetched', 'framework', 'framework',
this._dataStore[id].current, this._dataStore[id].history);
} else {
topic.publish('noData', 'framework', 'framework');
}
}else{
w = this.widgetManager.getWidgetById(id);
if(w){
if(this._dataStore[id]) {
topic.publish('dataFetched', w.name, id,
this._dataStore[id].current, this._dataStore[id].history);
} else {
topic.publish('noData', w.name, id);
}
}else{
topic.publish('noData', undefined, id);
}
}
}else{
for(var p in this._dataStore){
w = this.widgetManager.getWidgetById(p);
if(w){
topic.publish('dataFetched', w.name, p,
this._dataStore[p].current, this._dataStore[p].history);
}
}
}
},
onClearAllData: function(){
this._dataStore = {};
topic.publish('allDataCleared');
},
onRemoveData: function(id){
delete this._dataStore[id];
topic.publish('dataRemoved', id);
},
onClearDataHistory: function(id){
if(this._dataStore[id]){
this._dataStore[id].history = [];
}
topic.publish('dataHistoryCleared', id);
}
});
clazz.getInstance = function () {
if(instance === null) {
instance = new clazz();
}
return instance;
};
return clazz;
});
\ No newline at end of file
define([
'dojo/_base/declare',
'dojo/_base/array',
'dojo/_base/lang',
'dojo/_base/html',
'dijit/_WidgetBase',
'dojo/Evented',
'dojo/on',
'dojo/query',
'jimu/MapManager'
], function(
declare, array, lang, html, _WidgetBase, Evented, on, query, MapManager
) {
return declare([_WidgetBase, Evented], {
popup: null,
popupMobile: null,
// buttonInfo = {
// title:
// baseClass:
// }
buttonInfo: null,
_buttons: null,
constructor: function() {
this.buttonDomNodes = [];
// init popup and popupMobile object
var mapInfoWindow = MapManager.getInstance().getMapInfoWindow();
this.popup = mapInfoWindow.bigScreen;
this.popupMobile = mapInfoWindow.mobile;
},
postCreate: function() {
// description:
// if provides buttonInfo parameter, add button to infoWindow
this.inherited(arguments);
if (this.buttonInfo) {
this._addButtonNode();
}
},
_addButtonNode: function() {
this._addButtonNodeToPopup();
this._addButtonNodeToPopupMobile();
},
_addButtonNodeToPopup: function() {
//query actionList node of this.popup
var actionListNode = query(".actionList", this.popup.domNode)[0];
//add relationship table button in this.popup
var aNode = html.create('a', {
"class": "action " + this.buttonInfo.baseClass,
"href": " javascript:void(0);"
}, actionListNode);
this.buttonDomNodes.push(aNode);
this.popupButtonNode = html.create('span', {
"innerHTML": this.buttonInfo.title,
"style": "display: none"
}, aNode);
this.own(on(this.popupButtonNode,
"click",
lang.hitch(this, this._onButtonClick)));
this.own(on(this.popup,
"selection-change",
lang.hitch(this, this._onSelectionChange, this.popup)));
},
_addButtonNodeToPopupMobile: function() {
//query actionList node of this.popupMobile
var mobileInfoViewItem = query(".esriMobilePopupInfoView .esriMobileInfoViewItem");
var actionListNode = mobileInfoViewItem[mobileInfoViewItem.length - 1];
//add relationship table button in this.popupMobile
var aNode = html.create('a', {
"class": "action " + this.buttonInfo.baseClass,
"href": " javascript:void(0);"
}, actionListNode);
this.buttonDomNodes.push(aNode);
this.popupMobileButtonNode = html.create('span', {
"innerHTML": this.buttonInfo.title,
"style": "display: none"
}, aNode);
this.own(on(this.popupMobileButtonNode,
"click",
lang.hitch(this, this._onButtonClick)));
this.own(on(this.popupMobile,
"selection-change",
lang.hitch(this, this._onSelectionChange, this.popupMobile)));
},
enableButtonNode: function() {
html.setStyle(this.popupButtonNode, 'display', 'inline');
html.setStyle(this.popupMobileButtonNode, 'display', 'inline');
},
disableButtonNode: function() {
html.setStyle(this.popupButtonNode, 'display', 'none');
html.setStyle(this.popupMobileButtonNode, 'display', 'none');
},
_onButtonClick: function() {
this.emit('buttonClick', this._selectedFeature);
},
_onSelectionChange: function(infoWindow, evt) {
if (evt.target.selectedIndex > -1) {
this._selectedFeature = infoWindow.getSelectedFeature();
this.emit('selectionChange', this._selectedFeature);
}
},
destroy: function() {
array.forEach(this.buttonDomNodes, function(buttonDomNode) {
html.destroy(buttonDomNode);
}, this);
this.inherited(arguments);
}
});
});
\ No newline at end of file
This diff is collapsed.
define([
'dojo/_base/declare',
'dojo/_base/lang',
'dojo/_base/array',
'dojo/_base/html',
'dojo/topic',
'dojo/on',
'dojo/keys',
'esri/geometry/Extent',
'esri/geometry/Point',
'./utils',
'./dijit/LoadingShelter',
'./AppStateManager',
'./WebSceneLoader',
'esri/Viewpoint'
], function(declare, lang, array, html, topic, on,/* aspect,*/ keys,/* Deferred, InfoWindow,
PopupMobile, InfoTemplate,*/ Extent, Point, jimuUtils, LoadingShelter, /*LayerInfos,
MapUrlParamsHandler,*/ AppStateManager, WebSceneLoader, Viewpoint) {
var instance = null,
clazz = declare(null, {
appConfig: null,
mapDivId: '',
map: null,
previousInfoWindow: null,
mobileInfoWindow: null,
isMobileInfoWindow: false,
layerInfosObj: null,
constructor: function( /*Object*/ options, mapDivId) {
this.appConfig = options.appConfig;
this.urlParams = options.urlParams;
this.mapDivId = mapDivId;
this.id = mapDivId;
this.appStateManager = AppStateManager.getInstance(this.urlParams);
topic.subscribe("appConfigChanged", lang.hitch(this, this.onAppConfigChanged));
topic.subscribe("changeMapPosition", lang.hitch(this, this.onChangeMapPosition));
// topic.subscribe("syncExtent", lang.hitch(this, this.onSyncExtent));
topic.subscribe("syncViewpoint", lang.hitch(this, this.onSyncViewpoint));
on(window, 'resize', lang.hitch(this, this.onWindowResize));
on(window, 'beforeunload', lang.hitch(this, this.onBeforeUnload));
},
showMap: function() {
this._showMap(this.appConfig);
},
_showMap: function(appConfig) {
this.loading = new LoadingShelter();
this.loading.placeAt(this.mapDivId);
this.loading.startup();
if (appConfig.map['3D']) {
if (appConfig.map.itemId) {
this._show3DWebScene(appConfig);
} else {
console.log('No se ecntró webscene revise configuración map.itemId en config.json');
}
} else {
if (appConfig.map.itemId) {
this._show2DWebMap(appConfig);
} else {
console.log('No se encontró webmap. revise configuración map.itemId en config.json.');
}
}
},
onBeforeUnload: function() {
this.appStateManager.saveWabAppState(this.map, this.layerInfosObj);
},
onWindowResize: function() {
if (this.map && this.map.resize) {
this.map.resize();
this.resetInfoWindow(false);
}
},
getMapInfoWindow: function(){
return {
mobile: this._mapMobileInfoWindow,
bigScreen: this._mapInfoWindow
};
},
resetInfoWindow: function(isNewMap) {
if(isNewMap){
this._mapInfoWindow = this.map.infoWindow;
if(this._mapMobileInfoWindow){
this._mapMobileInfoWindow.destroy();
}
this.isMobileInfoWindow = false;
}
if (window.appInfo.isRunInMobile && !this.isMobileInfoWindow) {
this.isMobileInfoWindow = true;
} else if (!window.appInfo.isRunInMobile && this.isMobileInfoWindow) {
this.isMobileInfoWindow = false;
}
},
onChangeMapPosition: function(position) {
var pos = lang.clone(this.mapPosition);
lang.mixin(pos, position);
this.setMapPosition(pos);
},
setMapPosition: function(position){
this.mapPosition = position;
var posStyle = jimuUtils.getPositionStyle(position);
html.setStyle(this.mapDivId, posStyle);
if (this.map && this.map.resize) {
this.map.resize();
}
},
getMapPosition: function(){
return this.mapPosition;
},
onSyncViewpoint: function(viewpoint){
if(this.sceneView){
this.sceneView.viewpoint = viewpoint.clone();
}
},
_visitConfigMapLayers: function(appConfig, cb) {
array.forEach(appConfig.map.basemaps, function(layerConfig, i) {
layerConfig.isOperationalLayer = false;
cb(layerConfig, i);
}, this);
array.forEach(appConfig.map.operationallayers, function(layerConfig, i) {
layerConfig.isOperationalLayer = true;
cb(layerConfig, i);
}, this);
},
_destroySceneView: function(){
if(this.sceneView){
try{
this.sceneView.destroy();
}catch(e){
console.error(e);
}
}
this.sceneView = null;
window._sceneView = null;
},
_show3DWebScene: function(appConfig) {
var portalUrl = appConfig.map.portalUrl;
var itemId = appConfig.map.itemId;
this._destroySceneView();
var def = WebSceneLoader.createMap(this.mapDivId, portalUrl, itemId);
def.then(lang.hitch(this, function(sceneView){
this._publishSceneViewEvent(sceneView);
if(appConfig.map.mapOptions){
var initialState = appConfig.map.mapOptions.initialState;
if(initialState && initialState.viewpoint){
try{
var vp = Viewpoint.fromJSON(initialState.viewpoint);
if(vp){
this.sceneView.map.initialViewProperties.viewpoint = vp;
this.sceneView.viewpoint = vp.clone();
}
}catch(e){
console.error(e);
}
}
}
}), lang.hitch(this, function(){
if (this.loading) {
this.loading.destroy();
}
topic.publish('mapCreatedFailed');
}));
},
_publishSceneViewEvent: function(sceneView){
window._sceneView = sceneView;
if(this.loading){
this.loading.destroy();
}
if(this.sceneView){
this.sceneView = sceneView;
topic.publish('sceneViewChanged', this.sceneView);
}else{
this.sceneView = sceneView;
topic.publish('sceneViewLoaded', this.sceneView);
}
},
_show2DWebMap: function(appConfig) {
if(!appConfig.map.mapOptions){
appConfig.map.mapOptions = {};
}
var mapOptions = this._processMapOptions(appConfig.map.mapOptions) || {};
mapOptions.isZoomSlider = false;
var webMapPortalUrl = appConfig.map.portalUrl;
var webMapItemId = appConfig.map.itemId;
var webMapOptions = {
mapOptions: mapOptions,
bingMapsKey: appConfig.bingMapsKey,
usePopupManager: true
};
var mapDeferred = jimuUtils.createWebMap(webMapPortalUrl, webMapItemId,
this.mapDivId, webMapOptions);
mapDeferred.then(lang.hitch(this, function(response) {
var map = response.map;
map.hideZoomSlider();
map.infoWindow.resize(270, 316);
map.itemId = appConfig.map.itemId;
map.itemInfo = response.itemInfo;
map.webMapResponse = response;
// enable snapping
var options = {
snapKey: keys.copyKey
};
map.enableSnapping(options);
html.setStyle(map.root, 'zIndex', 0);
map._initialExtent = map.extent;
//URL parameters that affect map extent
var urlKeys = ['extent', 'center', 'marker', 'find', 'query', 'scale', 'level'];
var useAppState = true;
array.forEach(urlKeys, function(k){
if(k in this.urlParams){
useAppState = false;
}
}, this);
this._publishMapEvent(map);
}), lang.hitch(this, function() {
if (this.loading) {
this.loading.destroy();
}
topic.publish('mapCreatedFailed');
}));
},
_processMapOptions: function(mapOptions) {
if (!mapOptions) {
return;
}
if(!mapOptions.lods){
delete mapOptions.lods;
}
if(mapOptions.lods && mapOptions.lods.length === 0){
delete mapOptions.lods;
}
var ret = lang.clone(mapOptions);
if (ret.extent) {
ret.extent = new Extent(ret.extent);
}
if (ret.center && !lang.isArrayLike(ret.center)) {
ret.center = new Point(ret.center);
}
return ret;
},
onAppConfigChanged: function(appConfig, reason, changedJson) {
this.appConfig = appConfig;
if(reason === 'mapChange'){
this._recreateMap(appConfig);
}
else if(reason === 'mapOptionsChange'){
if(changedJson.initialState){
var vp = changedJson.initialState.viewpoint;
if(vp){
this.sceneView.map.initialViewProperties.viewpoint = Viewpoint.fromJSON(vp);
this.sceneView.animateTo(Viewpoint.fromJSON(vp));
}
}
}
},
_recreateMap: function(appConfig){
if(this.sceneView){
topic.publish('beforeSceneViewDestory', this.sceneView);
this._destroySceneView();
}
this._showMap(appConfig);
},
disableWebMapPopup: function() {
},
enableWebMapPopup: function() {
}
});
clazz.getInstance = function(options, mapDivId) {
if (instance === null) {
instance = new clazz(options, mapDivId);
}
return instance;
};
return clazz;
});
///////////////////////////////////////////////////////////////////////////
// Copyright © 2014 - 2016 Esri. All Rights Reserved.
//
// 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.
///////////////////////////////////////////////////////////////////////////
define(['dojo/_base/declare',
'dojo/_base/lang',
'dojo/_base/array',
'dojo/_base/html',
'dojo/on',
'dijit/_WidgetBase',
'./utils'
],
function(declare, lang, array, html, on, _WidgetBase, utils) {
/* global jimuConfig */
return declare(_WidgetBase, {
'class': 'jimu-widget-onscreen-icon',
postCreate: function(){
this.inherited(arguments);
this.iconNode = html.create('img', {
src: this.widgetConfig.icon
}, this.domNode);
html.setAttr(this.domNode, 'title', this.widgetConfig.label);
this.own(on(this.domNode, 'click', lang.hitch(this, function(){
this.onClick();
})));
this.position = lang.clone(this.widgetConfig.position);
if (this.widgetConfig.position.relativeTo === 'map') {
this.own(on(this.sceneView, 'resize', lang.hitch(this, function() {
var _pos = lang.clone(this.position);
delete _pos.width;
delete _pos.height;
if (this.panel) {
this.panel.setPosition(_pos);
}
})));
}
this.state = 'closed';
},
startup: function(){
this.inherited(arguments);
},
onClick: function(){
if(this.state === 'closed'){
this.switchToOpen();
}else{
this.switchToClose();
}
},
moveTo: function(position){
var style = {
left: 'auto',
right: 'auto',
bottom: 'auto',
top: 'auto',
width: 'auto',
height: 'auto'
};
style = lang.mixin(style, utils.getPositionStyle(position));
//we don't change width and height through layout
delete style.width;
delete style.height;
html.setStyle(this.domNode, style);
this.position = lang.clone(position);
if (this.widgetConfig && this.widgetConfig.panel){
this.widgetConfig.panel.position = lang.clone(position);
this.widgetConfig.position = lang.clone(position);
}
if(this.panel){
this.panel.setPosition(lang.clone(position));
}
if(this.widget){
this.widget.setPosition(this.getOffPanelWidgetPosition(this.widget));
}
},
destroy: function(){
if(this.panel){
this.panelManager.destroyPanel(this.panel);
}else if(this.widget){
this.widgetManager.destroyWidget(this.widget);
}
this.inherited(arguments);
},
switchToOpen: function(){
this.state = 'opened';
this.panelManager.closeAllPanelsInGroup(this.widgetConfig.gid);
array.forEach(this.widgetManager.getOnScreenOffPanelWidgets(), function(widget){
if(widget.closeable){
this.widgetManager.closeWidget(widget);
}
}, this);
html.addClass(this.domNode, 'jimu-state-selected');
this._showLoading();
if(this.widgetConfig.inPanel === false){
this.widgetManager.loadWidget(this.widgetConfig)
.then(lang.hitch(this, function(widget){
this.widget = widget;
widget.setPosition(this.getOffPanelWidgetPosition(widget));
this.widgetManager.openWidget(widget);
this.own(on(widget, 'close', lang.hitch(this, function(){
this.switchToClose();
})));
this._hideLoading();
}));
}else{
this.panelManager.showPanel(lang.clone(this.widgetConfig))
.then(lang.hitch(this, function(panel){
this.panel = panel;
this.own(on(panel, 'close', lang.hitch(this, function(){
this.switchToClose();
})));
this._hideLoading();
}));
}
},
switchToClose: function(){
this.state = 'closed';
html.removeClass(this.domNode, 'jimu-state-selected');
if(this.widgetConfig.inPanel === false){
this.widgetManager.closeWidget(this.widget);
}else{
this.panelManager.closePanel(this.panel);
}
},
getOffPanelWidgetPosition: function(widget){
var position = {
relativeTo: widget.position.relativeTo
};
var pbox = html.getMarginBox(this.domNode);
var sbox = this.widgetManager.getWidgetMarginBox(widget);
var containerBox = html.getMarginBox(position.relativeTo === 'map'?
this.sceneView.map.id: jimuConfig.layoutId);
var top = pbox.t + pbox.h + 1;//put under icon by default
if(top + sbox.h > containerBox.h){
position.bottom = containerBox.h - pbox.t + 1;
}else{
position.top = top;
}
if (window.isRTL) {
if(pbox.l + pbox.w - sbox.w < 0){
position.right = 0;
}else{
position.right = pbox.l + pbox.w - sbox.w;
}
} else {
if(pbox.l + sbox.w > containerBox.w){
position.right = 0;
}else{
position.left = pbox.l;
}
}
return position;
},
_showLoading: function(){
html.setAttr(this.iconNode, 'src', require.toUrl('jimu') + '/images/loading_circle.gif');
},
_hideLoading: function(){
html.setAttr(this.iconNode, 'src', this.widgetConfig.icon);
}
});
});
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
///////////////////////////////////////////////////////////////////////////
// Copyright © 2014 - 2016 Esri. All Rights Reserved.
//
// 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.
///////////////////////////////////////////////////////////////////////////
define([
'dojo/_base/declare',
'dojo/_base/array',
'jimu/PanelManager'
], function(declare, array, PanelManager){
var clazz = declare(null, {
// summary:
// this mixin process the widgets in the widget pool.
// description:
// the controller widget should have two properties setting:
// controlledGroups, controlledWidgets. Both of them are optional.
//controlledGroups: String[]|String
// If array, is array of gropus id. If String, "all" means read all of the groups.
// If not set, do not read any group.
//controlledWidgets: String[]|String
// If array, is array of widgets id. If String, "all" means read all of the widgets.
// If not set, do not read any widget.
constructor: function(){
this.panelManager = PanelManager.getInstance();
},
postCreate: function(){
//we set default value to 'all', because of most of the time, we have one controller only.
if(!this.controlledWidgets){
this.controlledWidgets = 'all';
}
if(!this.controlledGroups){
this.controlledGroups = 'all';
}
},
getOpenedIds: function(){
//return the Ids the the controller has opened
//return [];
},
setOpenedIds: function(ids){
/*jshint unused:false*/
//set the Ids that should be opened
},
getConfigById: function(id){
var allConfigs = this.getAllConfigs();
for(var i = 0; i < allConfigs.length; i++){
if(allConfigs[i].id === id){
return allConfigs[i];
}
}
},
getAllConfigs: function(){
var ret = [];
ret = ret.concat(this.getWidgetConfigs(), this.getGroupConfigs());
ret = array.filter(ret, function(o){
return o.visible;
});
return ret.sort(function(a, b){
return a.index - b.index;
});
},
getAllConfigsIncludeInvisible: function(){
var ret = [];
ret = ret.concat(this.getWidgetConfigs(), this.getGroupConfigs());
return ret.sort(function(a, b){
return a.index - b.index;
});
},
isControlled: function(id){
return array.some(this.getAllConfigsIncludeInvisible(), function(config){
return config.id === id;
});
},
widgetIsControlled: function(widgetId){
return array.some(this.getAllConfigsIncludeInvisible(), function(config){
if(config.id === widgetId){
return true;
}else{
return array.some(config.widgets, function(widgetConfig){
return widgetConfig.id === widgetId;
});
}
});
},
getGroupConfigs: function(){
var ret = [];
if(!this.appConfig.widgetPool){
return ret;
}
if(this.appConfig.widgetPool.groups){
array.forEach(this.appConfig.widgetPool.groups, function(g){
if(this.controlledGroups){
if(Array.isArray(this.controlledGroups)){
if(this.controlledGroups.indexOf(g.id) > -1){
ret.push(g);
}
}else if(this.controlledGroups === 'all'){
ret.push(g);
}
}
}, this);
}
return ret;
},
getWidgetConfigs: function(){
var ret = [];
if(!this.appConfig.widgetPool){
return ret;
}
if(this.appConfig.widgetPool.widgets){
array.forEach(this.appConfig.widgetPool.widgets, function(w){
if(this.controlledWidgets){
if(Array.isArray(this.controlledWidgets)){
if(this.controlledWidgets.indexOf(w.id) > -1){
ret.push(w);
}
}else if(this.controlledWidgets === 'all'){
ret.push(w);
}
}
}, this);
}
return ret;
}
});
return clazz;
});
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
.dojoxColorPicker {padding:8px; -moz-border-radius:4pt; -webkit-border-radius:5pt; -webkit-drop-shadow:3pt;}.dojoxColorPickerRightPad {padding-right: 8px;}.tundra .dojoxColorPicker {background:#ededed; border:1px solid #ccc;}.dojoxColorPickerBox {position:relative; width:150px; height:150px; margin:0; padding:0;}.dojoxColorPickerUnderlay {position:relative; top:0; left:0; width:150px; height:150px; z-index:1;}.tundra .dojoxColorPickerUnderlay {border:1px solid #a0a0a0;}.claro .dojoxColorPicker {background:#ededed; border:1px solid #cdcdcd;}.claro .dojoxColorPickerUnderlay {border:1px solid #cccccc;}.dojoxHuePickerUnderlay {position:relative; top:0; left:0; height:150px; width:20px; z-index:1; text-align: center;}.dojoxHuePicker {position:relative; top: 0px; left: 0px; padding: 0px;}.dojoxHuePickerPoint {position:absolute; top:0; left:0; width:20px; height:8px; z-index:3; cursor:move;}.dojoxColorPickerPoint {position:absolute; width:10px; height:10px; border:0; z-index:3; cursor:move;}.dojoxColorPickerPreview {display:block; width:45px; height:45px; border:1px solid #333; background-color:#fff; position:relative; top: 0px; left: 0px;}.dojoxColorPickerWebSafePreview {display:block; width:25px; height:25px; position:relative; top: 0px; left: 0px; border:1px solid #333;}.dojoxColorPickerOptional {position:relative; top: 0px; left: 0px; height: 100%;}.dojoxColorPickerOptional table {border-spacing: 4px;}.dojoxColorPickerPreviewContainer table {border-spacing: 6px 0px;}.dojoxColorPickerOptional input {border:1px solid #a7a7a7; width:25px; padding:1px 3px 1px 3px; line-height:1.1em;}.dojoxColorPickerHex input {width:55px;}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment