Atlas digital versão 1.2
@@ -0,0 +1,73 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="initial-scale=1,user-scalable=no,maximum-scale=1,width=device-width">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<link rel="stylesheet" href="./resources/ol.css">
|
||||
<link rel="stylesheet" href="resources/fontawesome-all.min.css">
|
||||
<link rel="stylesheet" href="./resources/ol-layerswitcher.css">
|
||||
<link rel="stylesheet" href="./resources/qgis2web.css">
|
||||
<style>
|
||||
.search-layer {
|
||||
top: 65px;
|
||||
left: .5em;
|
||||
}
|
||||
.ol-touch .search-layer {
|
||||
top: 80px;
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
html, body {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
.ol-control button {
|
||||
background-color: #f8f8f8 !important;
|
||||
color: #000000 !important;
|
||||
border-radius: 0px !important;
|
||||
}
|
||||
.ol-zoom, .geolocate, .gcd-gl-control .ol-control {
|
||||
background-color: rgba(255,255,255,.4) !important;
|
||||
padding: 3px !important;
|
||||
}
|
||||
.ol-scale-line {
|
||||
background: none !important;
|
||||
}
|
||||
.ol-scale-line-inner {
|
||||
border: 2px solid #f8f8f8 !important;
|
||||
border-top: none !important;
|
||||
background: rgba(255, 255, 255, 0.5) !important;
|
||||
color: black !important;
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
html, body, #map {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="map">
|
||||
<div id="popup" class="ol-popup">
|
||||
<a href="#" id="popup-closer" class="ol-popup-closer"></a>
|
||||
<div id="popup-content"></div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="resources/qgis2web_expressions.js"></script>
|
||||
<script src="resources/polyfills.js"></script>
|
||||
<script src="./resources/functions.js"></script>
|
||||
<script src="./resources/ol.js"></script>
|
||||
<script src="./resources/ol-layerswitcher.js"></script>
|
||||
<script src="layers/curvasdenivel5m_2.js"></script><script src="layers/pontos_3.js"></script><script src="layers/rioss_4.js"></script>
|
||||
<script src="styles/curvasdenivel5m_2_style.js"></script><script src="styles/pontos_3_style.js"></script><script src="styles/rioss_4_style.js"></script>
|
||||
<script src="./layers/layers.js" type="text/javascript"></script>
|
||||
<script src="./resources/Autolinker.min.js"></script>
|
||||
<script src="./resources/qgis2web.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
Depois Largura: | Altura: | Tamanho: 131 KiB |
@@ -0,0 +1,22 @@
|
||||
<PAMDataset>
|
||||
<SRS>PROJCS["WGS 84 / Pseudo-Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["X",EAST],AXIS["Y",NORTH],EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"],AUTHORITY["EPSG","3857"]]</SRS>
|
||||
<GeoTransform> -5.9064795590899130e+06, 1.3172806410517078e+01, 0.0000000000000000e+00, -3.0059250504087680e+06, 0.0000000000000000e+00, -1.3171289245534393e+01</GeoTransform>
|
||||
<Metadata domain="IMAGE_STRUCTURE">
|
||||
<MDI key="INTERLEAVE">PIXEL</MDI>
|
||||
</Metadata>
|
||||
<Metadata>
|
||||
<MDI key="AREA_OR_POINT">Area</MDI>
|
||||
</Metadata>
|
||||
<PAMRasterBand band="1">
|
||||
<NoDataValue>0.00000000000000E+00</NoDataValue>
|
||||
</PAMRasterBand>
|
||||
<PAMRasterBand band="2">
|
||||
<NoDataValue>0.00000000000000E+00</NoDataValue>
|
||||
</PAMRasterBand>
|
||||
<PAMRasterBand band="3">
|
||||
<NoDataValue>0.00000000000000E+00</NoDataValue>
|
||||
</PAMRasterBand>
|
||||
<PAMRasterBand band="4">
|
||||
<NoDataValue>0.00000000000000E+00</NoDataValue>
|
||||
</PAMRasterBand>
|
||||
</PAMDataset>
|
||||
@@ -0,0 +1,84 @@
|
||||
var wms_layers = [];
|
||||
|
||||
|
||||
var lyr_OpenTopoMap_0 = new ol.layer.Tile({
|
||||
'title': 'OpenTopoMap',
|
||||
'type': 'base',
|
||||
'opacity': 1.000000,
|
||||
|
||||
|
||||
source: new ol.source.XYZ({
|
||||
attributions: ' · <a href="https://www.openstreetmap.org/copyright">Kartendaten: © OpenStreetMap-Mitwirkende, SRTM | Kartendarstellung: © OpenTopoMap (CC-BY-SA)</a>',
|
||||
url: 'https://a.tile.opentopomap.org/{z}/{x}/{y}.png'
|
||||
})
|
||||
});
|
||||
var lyr_altimetriaalos_1 = new ol.layer.Image({
|
||||
opacity: 1,
|
||||
title: "altimetria alos",
|
||||
|
||||
|
||||
source: new ol.source.ImageStatic({
|
||||
url: "./layers/altimetriaalos_1.png",
|
||||
attributions: ' ',
|
||||
projection: 'EPSG:3857',
|
||||
alwaysInRange: true,
|
||||
imageExtent: [-5906479.559090, -3012576.551478, -5901210.436526, -3005925.050409]
|
||||
})
|
||||
});
|
||||
var format_curvasdenivel5m_2 = new ol.format.GeoJSON();
|
||||
var features_curvasdenivel5m_2 = format_curvasdenivel5m_2.readFeatures(json_curvasdenivel5m_2,
|
||||
{dataProjection: 'EPSG:4326', featureProjection: 'EPSG:3857'});
|
||||
var jsonSource_curvasdenivel5m_2 = new ol.source.Vector({
|
||||
attributions: ' ',
|
||||
});
|
||||
jsonSource_curvasdenivel5m_2.addFeatures(features_curvasdenivel5m_2);
|
||||
var lyr_curvasdenivel5m_2 = new ol.layer.Vector({
|
||||
declutter: true,
|
||||
source:jsonSource_curvasdenivel5m_2,
|
||||
style: style_curvasdenivel5m_2,
|
||||
interactive: true,
|
||||
title: '<img src="styles/legend/curvasdenivel5m_2.png" /> curvas de nivel 5m'
|
||||
});
|
||||
var format_pontos_3 = new ol.format.GeoJSON();
|
||||
var features_pontos_3 = format_pontos_3.readFeatures(json_pontos_3,
|
||||
{dataProjection: 'EPSG:4326', featureProjection: 'EPSG:3857'});
|
||||
var jsonSource_pontos_3 = new ol.source.Vector({
|
||||
attributions: ' ',
|
||||
});
|
||||
jsonSource_pontos_3.addFeatures(features_pontos_3);
|
||||
var lyr_pontos_3 = new ol.layer.Vector({
|
||||
declutter: true,
|
||||
source:jsonSource_pontos_3,
|
||||
style: style_pontos_3,
|
||||
interactive: true,
|
||||
title: '<img src="styles/legend/pontos_3.png" /> pontos'
|
||||
});
|
||||
var format_rioss_4 = new ol.format.GeoJSON();
|
||||
var features_rioss_4 = format_rioss_4.readFeatures(json_rioss_4,
|
||||
{dataProjection: 'EPSG:4326', featureProjection: 'EPSG:3857'});
|
||||
var jsonSource_rioss_4 = new ol.source.Vector({
|
||||
attributions: ' ',
|
||||
});
|
||||
jsonSource_rioss_4.addFeatures(features_rioss_4);
|
||||
var lyr_rioss_4 = new ol.layer.Vector({
|
||||
declutter: true,
|
||||
source:jsonSource_rioss_4,
|
||||
style: style_rioss_4,
|
||||
interactive: true,
|
||||
title: '<img src="styles/legend/rioss_4.png" /> rioss'
|
||||
});
|
||||
|
||||
lyr_OpenTopoMap_0.setVisible(true);lyr_altimetriaalos_1.setVisible(true);lyr_curvasdenivel5m_2.setVisible(true);lyr_pontos_3.setVisible(true);lyr_rioss_4.setVisible(true);
|
||||
var layersList = [lyr_OpenTopoMap_0,lyr_altimetriaalos_1,lyr_curvasdenivel5m_2,lyr_pontos_3,lyr_rioss_4];
|
||||
lyr_curvasdenivel5m_2.set('fieldAliases', {'NAME': 'NAME', 'LAYER': 'LAYER', 'ELEVATION': 'ELEVATION', });
|
||||
lyr_pontos_3.set('fieldAliases', {'id': 'id', 'NUM': 'NUM', });
|
||||
lyr_rioss_4.set('fieldAliases', {'GM_LAYER': 'GM_LAYER', 'GM_TYPE': 'GM_TYPE', 'MAP_NAME': 'MAP_NAME', 'OBJECTID': 'OBJECTID', 'Id': 'Id', 'Curso_Dagu': 'Curso_Dagu', 'cotrecho': 'cotrecho', 'cocursodag': 'cocursodag', 'cobacia': 'cobacia', 'corio': 'corio', 'codom': 'codom', 'dedominial': 'dedominial', 'nucomptrec': 'nucomptrec', 'nudistbact': 'nudistbact', 'nudistcdag': 'nudistcdag', 'nuareacont': 'nuareacont', 'nuareamont': 'nuareamont', 'nunivotto': 'nunivotto', 'decorpodag': 'decorpodag', 'deligacao': 'deligacao', 'norio': 'norio', 'noriocomp': 'noriocomp', 'nucomprio': 'nucomprio', 'nudistbacr': 'nudistbacr', 'cocdadesag': 'cocdadesag', 'nucompcda': 'nucompcda', 'nutrjus': 'nutrjus', 'nutrmon': 'nutrmon', 'nutrafl': 'nutrafl', 'nudistbacc': 'nudistbacc', 'nuareabacc': 'nuareabacc', 'nuordemcda': 'nuordemcda', 'nunivotcda': 'nunivotcda', 'nulondetre': 'nulondetre', 'nulatdetre': 'nulatdetre', 'nulonpatre': 'nulonpatre', 'nulatpatre': 'nulatpatre', 'nulondecda': 'nulondecda', 'nulatdecda': 'nulatdecda', 'nulonpacda': 'nulonpacda', 'nulatpacda': 'nulatpacda', 'nulonderio': 'nulonderio', 'nulatderio': 'nulatderio', 'nulonpario': 'nulonpario', 'nulatpario': 'nulatpario', 'dtversao': 'dtversao', 'LAYER': 'LAYER', 'Nome': 'Nome', 'Fonte_Topo': 'Fonte_Topo', 'Tipo_Drena': 'Tipo_Drena', 'Regime': 'Regime', 'Compriment': 'Compriment', 'Fonte_Mape': 'Fonte_Mape', 'Data_Mapea': 'Data_Mapea', 'Shape_Leng': 'Shape_Leng', 'LINE_STYLE': 'LINE_STYLE', 'LINE_COLOR': 'LINE_COLOR', 'LINE_WIDTH': 'LINE_WIDTH', });
|
||||
lyr_curvasdenivel5m_2.set('fieldImages', {'NAME': '', 'LAYER': '', 'ELEVATION': '', });
|
||||
lyr_pontos_3.set('fieldImages', {'id': '', 'NUM': '', });
|
||||
lyr_rioss_4.set('fieldImages', {'GM_LAYER': 'TextEdit', 'GM_TYPE': 'TextEdit', 'MAP_NAME': 'TextEdit', 'OBJECTID': 'Range', 'Id': 'Range', 'Curso_Dagu': 'TextEdit', 'cotrecho': 'Range', 'cocursodag': 'TextEdit', 'cobacia': 'TextEdit', 'corio': 'TextEdit', 'codom': 'Range', 'dedominial': 'TextEdit', 'nucomptrec': 'TextEdit', 'nudistbact': 'TextEdit', 'nudistcdag': 'TextEdit', 'nuareacont': 'TextEdit', 'nuareamont': 'TextEdit', 'nunivotto': 'Range', 'decorpodag': 'TextEdit', 'deligacao': 'TextEdit', 'norio': 'TextEdit', 'noriocomp': 'TextEdit', 'nucomprio': 'TextEdit', 'nudistbacr': 'TextEdit', 'cocdadesag': 'TextEdit', 'nucompcda': 'TextEdit', 'nutrjus': 'Range', 'nutrmon': 'Range', 'nutrafl': 'Range', 'nudistbacc': 'TextEdit', 'nuareabacc': 'TextEdit', 'nuordemcda': 'Range', 'nunivotcda': 'Range', 'nulondetre': 'TextEdit', 'nulatdetre': 'TextEdit', 'nulonpatre': 'TextEdit', 'nulatpatre': 'TextEdit', 'nulondecda': 'TextEdit', 'nulatdecda': 'TextEdit', 'nulonpacda': 'TextEdit', 'nulatpacda': 'TextEdit', 'nulonderio': 'TextEdit', 'nulatderio': 'TextEdit', 'nulonpario': 'TextEdit', 'nulatpario': 'TextEdit', 'dtversao': 'TextEdit', 'LAYER': 'TextEdit', 'Nome': 'TextEdit', 'Fonte_Topo': 'TextEdit', 'Tipo_Drena': 'TextEdit', 'Regime': 'TextEdit', 'Compriment': 'TextEdit', 'Fonte_Mape': 'TextEdit', 'Data_Mapea': 'TextEdit', 'Shape_Leng': 'TextEdit', 'LINE_STYLE': 'TextEdit', 'LINE_COLOR': 'TextEdit', 'LINE_WIDTH': 'Range', });
|
||||
lyr_curvasdenivel5m_2.set('fieldLabels', {'NAME': 'no label', 'LAYER': 'no label', 'ELEVATION': 'no label', });
|
||||
lyr_pontos_3.set('fieldLabels', {'id': 'no label', 'NUM': 'no label', });
|
||||
lyr_rioss_4.set('fieldLabels', {'GM_LAYER': 'no label', 'GM_TYPE': 'no label', 'MAP_NAME': 'no label', 'OBJECTID': 'no label', 'Id': 'no label', 'Curso_Dagu': 'no label', 'cotrecho': 'no label', 'cocursodag': 'no label', 'cobacia': 'no label', 'corio': 'no label', 'codom': 'no label', 'dedominial': 'no label', 'nucomptrec': 'no label', 'nudistbact': 'no label', 'nudistcdag': 'no label', 'nuareacont': 'no label', 'nuareamont': 'no label', 'nunivotto': 'no label', 'decorpodag': 'no label', 'deligacao': 'no label', 'norio': 'no label', 'noriocomp': 'no label', 'nucomprio': 'no label', 'nudistbacr': 'no label', 'cocdadesag': 'no label', 'nucompcda': 'no label', 'nutrjus': 'no label', 'nutrmon': 'no label', 'nutrafl': 'no label', 'nudistbacc': 'no label', 'nuareabacc': 'no label', 'nuordemcda': 'no label', 'nunivotcda': 'no label', 'nulondetre': 'no label', 'nulatdetre': 'no label', 'nulonpatre': 'no label', 'nulatpatre': 'no label', 'nulondecda': 'no label', 'nulatdecda': 'no label', 'nulonpacda': 'no label', 'nulatpacda': 'no label', 'nulonderio': 'no label', 'nulatderio': 'no label', 'nulonpario': 'no label', 'nulatpario': 'no label', 'dtversao': 'no label', 'LAYER': 'no label', 'Nome': 'no label', 'Fonte_Topo': 'no label', 'Tipo_Drena': 'no label', 'Regime': 'no label', 'Compriment': 'no label', 'Fonte_Mape': 'no label', 'Data_Mapea': 'no label', 'Shape_Leng': 'no label', 'LINE_STYLE': 'no label', 'LINE_COLOR': 'no label', 'LINE_WIDTH': 'no label', });
|
||||
lyr_rioss_4.on('precompose', function(evt) {
|
||||
evt.context.globalCompositeOperation = 'normal';
|
||||
});
|
||||
@@ -0,0 +1 @@
|
||||
var json_pontos_3 = {"type":"FeatureCollection","name":"pontos_3","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[{"type":"Feature","properties":{"id":null,"NUM":"1"},"geometry":{"type":"Point","coordinates":[-53.024696411284417,-26.087055138096765]}},{"type":"Feature","properties":{"id":null,"NUM":"2"},"geometry":{"type":"Point","coordinates":[-53.029854971795302,-26.093844566473447]}},{"type":"Feature","properties":{"id":null,"NUM":"3"},"geometry":{"type":"Point","coordinates":[-53.012960958818446,-26.083340595178786]}},{"type":"Feature","properties":{"id":null,"NUM":"4"},"geometry":{"type":"Point","coordinates":[-53.022253925422575,-26.082252808386318]}},{"type":"Feature","properties":{"id":null,"NUM":"5"},"geometry":{"type":"Point","coordinates":[-53.032210258344705,-26.081246959232423]}},{"type":"Feature","properties":{"id":null,"NUM":"6"},"geometry":{"type":"Point","coordinates":[-53.032337659126327,-26.071390771490481]}},{"type":"Feature","properties":{"id":null,"NUM":"7"},"geometry":{"type":"Point","coordinates":[-53.029569587598331,-26.069711397550904]}},{"type":"Feature","properties":{"id":null,"NUM":"8"},"geometry":{"type":"Point","coordinates":[-53.036038072738002,-26.069911185140263]}},{"type":"Feature","properties":{"id":null,"NUM":"9"},"geometry":{"type":"Point","coordinates":[-53.045239883737977,-26.066613242179614]}}]}
|
||||
@@ -0,0 +1,46 @@
|
||||
(function(aa){function N(b,a){var c=b.x-a.x,d=b.y-a.y;return c*c+d*d}function qa(b){var a=b.length;if(16>a)return!1;var c,d=Infinity,f=-Infinity,e=Infinity,g=-Infinity;for(c=0;c<a-1;c+=2)d=Math.min(d,b[c]),f=Math.max(f,b[c]),e=Math.min(e,b[c+1]),g=Math.max(g,b[c+1]);c=f-d;g-=e;f=c/g;if(0.85>f||1.15<f)return!1;d={x:d+c/2,y:e+g/2};c=(c+g)/4;e=c*c;for(c=0;c<a-1;c+=2)if(g=N({x:b[c],y:b[c+1]},d),0.8>g/e||1.2<g/e)return!1;return!0}function ga(b,a){var c={};b/=O;a/=O;var d=ra,f;f=0>=a?90:1<=a?-90:(2*sa(ta(C*
|
||||
(1-2*a)))-I)/C*180;c[d]=f;c[ua]=360*(1===b?1:(b%1+1)%1)-180;return c}function ba(b,a){var c=P(1,J(0,0.5-va(ha(wa+I*b/180))/C/2));return{x:(a/360+0.5)*O<<0,y:c*O<<0}}function Q(b){for(var a=u+p,c=z+n,d=0,f=b.length-3;d<f;d+=2)if(b[d]>p&&b[d]<a&&b[d+1]>n&&b[d+1]<c)return!0;return!1}function xa(){X||(X=setInterval(function(){for(var b=E.items,a=!1,c=0,d=b.length;c<d;c++)1>b[c].scale&&(b[c].scale+=0.1,1<b[c].scale&&(b[c].scale=1),a=!0);R.render();a||(clearInterval(X),X=null)},33))}function ya(b){u=b.width;
|
||||
z=b.height;Y=u/2<<0;ca=z/2<<0;S=Y;T=z;R.setSize(u,z);da=q-50}var w=Math,ta=w.exp,va=w.log,za=w.sin,Aa=w.cos,ha=w.tan,sa=w.atan,K=w.atan2,P=w.min,J=w.max,ia=w.sqrt,ja=w.ceil,ka=w.pow,la=la||Array,ma=ma||Array,w=/iP(ad|hone|od)/g.test(navigator.userAgent),D=!!~navigator.userAgent.indexOf("Trident"),Ba=!aa.requestAnimationFrame||w||D?function(b){b()}:aa.requestAnimationFrame,F=function(b){function a(a,b,c){0>c&&(c+=1);1<c&&(c-=1);return c<1/6?a+6*(b-a)*c:0.5>c?b:c<2/3?a+(b-a)*(2/3-c)*6:a}var c={aqua:"#00ffff",
|
||||
black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",grey:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",orange:"#ffa500",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00"},d=function(a,b,c,d){this.H=a;this.S=b;this.L=c;this.A=d};d.parse=function(a){var b=0,d=0,h=0,k=1,m;a=(""+a).toLowerCase();a=c[a]||a;if(m=a.match(/^#(\w{2})(\w{2})(\w{2})$/))b=parseInt(m[1],16),d=parseInt(m[2],16),h=parseInt(m[3],
|
||||
16);else if(m=a.match(/rgba?\((\d+)\D+(\d+)\D+(\d+)(\D+([\d.]+))?\)/))b=parseInt(m[1],10),d=parseInt(m[2],10),h=parseInt(m[3],10),k=m[4]?parseFloat(m[5]):1;else return;return this.fromRGBA(b,d,h,k)};d.fromRGBA=function(a,b,c,h){"object"===typeof a?(b=a.g/255,c=a.b/255,h=a.a,a=a.r/255):(a/=255,b/=255,c/=255);var k=Math.max(a,b,c),m=Math.min(a,b,c),l,y=(k+m)/2,s=k-m;if(s){m=0.5<y?s/(2-k-m):s/(k+m);switch(k){case a:l=(b-c)/s+(b<c?6:0);break;case b:l=(c-a)/s+2;break;case c:l=(a-b)/s+4}l*=60}else l=m=
|
||||
0;return new d(l,m,y,h)};d.prototype={toRGBA:function(){var b=Math.min(360,Math.max(0,this.H)),c=Math.min(1,Math.max(0,this.S)),d=Math.min(1,Math.max(0,this.L)),h=Math.min(1,Math.max(0,this.A)),k;if(0===c)b=k=c=d;else{var m=0.5>d?d*(1+c):d+c-d*c,d=2*d-m,b=b/360,c=a(d,m,b+1/3);k=a(d,m,b);b=a(d,m,b-1/3)}return{r:Math.round(255*c),g:Math.round(255*k),b:Math.round(255*b),a:h}},toString:function(){var a=this.toRGBA();return 1===a.a?"#"+(16777216+(a.r<<16)+(a.g<<8)+a.b).toString(16).slice(1,7):"rgba("+
|
||||
[a.r,a.g,a.b,a.a.toFixed(2)].join()+")"},hue:function(a){return new d(this.H*a,this.S,this.L,this.A)},saturation:function(a){return new d(this.H,this.S*a,this.L,this.A)},lightness:function(a){return new d(this.H,this.S,this.L*a,this.A)},alpha:function(a){return new d(this.H,this.S,this.L,this.A*a)}};return d}(this),Ca=function(){var b=Math,a=b.PI,c=b.sin,d=b.cos,f=b.tan,e=b.asin,g=b.atan2,h=a/180,k=23.4397*h;return function(b,l,y){y=h*-y;l*=h;b=b.valueOf()/864E5-0.5+2440588-2451545;var s=h*(357.5291+
|
||||
0.98560028*b),A;A=h*(1.9148*c(s)+0.02*c(2*s)+3E-4*c(3*s));A=s+A+102.9372*h+a;s=e(c(0)*d(k)+d(0)*c(k)*c(A));A=g(c(A)*d(k)-f(0)*c(k),d(A));b=h*(280.16+360.9856235*b)-y-A;y=e(c(l)*c(s)+d(l)*d(s)*d(b));l=g(c(b),d(b)*c(l)-f(s)*d(l));return{altitude:y,azimuth:l-a/2}}}(),Ea=function(){function b(a){a=a.toLowerCase();return"#"===a[0]?a:d[f[a]||a]||null}function a(a,b){var c,d,f,s,A=0,p,n;p=0;for(n=a.length-3;p<n;p+=2)c=a[p],d=a[p+1],f=a[p+2],s=a[p+3],A+=c*s-f*d;if((0<A/2?e:g)===b)return a;c=[];for(d=a.length-
|
||||
2;0<=d;d-=2)c.push(a[d],a[d+1]);return c}function c(b){var d,f,l=[],y;switch(b.type){case "GeometryCollection":l=[];d=0;for(f=b.geometries.length;d<f;d++)(y=c(b.geometries[d]))&&l.push.apply(l,y);return l;case "MultiPolygon":l=[];d=0;for(f=b.coordinates.length;d<f;d++)(y=c({type:"Polygon",coordinates:b.coordinates[d]}))&&l.push.apply(l,y);return l;case "Polygon":b=b.coordinates;break;default:return[]}var s,p=[],n=[];s=b[0];d=0;for(f=s.length;d<f;d++)p.push(s[d][1],s[d][0]);p=a(p,e);d=0;for(f=b.length-
|
||||
1;d<f;d++){s=b[d+1];n[d]=[];l=0;for(y=s.length;l<y;l++)n[d].push(s[l][1],s[l][0]);n[d]=a(n[d],g)}return[{outer:p,inner:n.length?n:null}]}var d={brick:"#cc7755",bronze:"#ffeecc",canvas:"#fff8f0",concrete:"#999999",copper:"#a0e0d0",glass:"#e8f8f8",gold:"#ffcc00",plants:"#009933",metal:"#aaaaaa",panel:"#fff8f0",plaster:"#999999",roof_tiles:"#f08060",silver:"#cccccc",slate:"#666666",stone:"#996666",tar_paper:"#333333",wood:"#deb887"},f={asphalt:"tar_paper",bitumen:"tar_paper",block:"stone",bricks:"brick",
|
||||
glas:"glass",glassfront:"glass",grass:"plants",masonry:"stone",granite:"stone",panels:"panel",paving_stones:"stone",plastered:"plaster",rooftiles:"roof_tiles",roofingfelt:"tar_paper",sandstone:"stone",sheet:"canvas",sheets:"canvas",shingle:"tar_paper",shingles:"tar_paper",slates:"slate",steel:"metal",tar:"tar_paper",tent:"canvas",thatch:"plants",tile:"roof_tiles",tiles:"roof_tiles"},e="CW",g="CCW";return{read:function(a){if(!a||"FeatureCollection"!==a.type)return[];a=a.features;var d,f,e,g,p=[],n,
|
||||
q,w,r;d=0;for(f=a.length;d<f;d++)if(n=a[d],"Feature"===n.type&&!1!==na(n)){e=n.properties;g={};e=e||{};g.height=e.height||(e.levels?3*e.levels:Da);g.minHeight=e.minHeight||(e.minLevel?3*e.minLevel:0);if(q=e.material?b(e.material):e.wallColor||e.color)g.wallColor=q;if(q=e.roofMaterial?b(e.roofMaterial):e.roofColor)g.roofColor=q;switch(e.shape){case "cylinder":case "cone":case "dome":case "sphere":g.shape=e.shape;g.isRotational=!0;break;case "pyramid":g.shape=e.shape}switch(e.roofShape){case "cone":case "dome":g.roofShape=
|
||||
e.roofShape;g.isRotational=!0;break;case "pyramid":g.roofShape=e.roofShape}g.roofShape&&e.roofHeight?(g.roofHeight=e.roofHeight,g.height=J(0,g.height-g.roofHeight)):g.roofHeight=0;w=g;q=c(n.geometry);e=0;for(g=q.length;e<g;e++){r=w;var t={},G=void 0;for(G in r)r.hasOwnProperty(G)&&(t[G]=r[G]);r=t;r.footprint=q[e].outer;if(r.isRotational){for(var t=r,G=r.footprint,v=180,x=-180,u=0,z=G.length;u<z;u+=2)v=P(v,G[u+1]),x=J(x,G[u+1]);t.radius=(x-v)/2}q[e].inner&&(r.holes=q[e].inner);if(n.id||n.properties.id)r.id=
|
||||
n.id||n.properties.id;n.properties.relationId&&(r.relationId=n.properties.relationId);p.push(r)}}return p}}}(),C=Math.PI,I=C/2,wa=C/4,v,O,ra="latitude",ua="longitude",u=0,z=0,Y=0,ca=0,p=0,n=0,H=F.parse("rgba(200, 190, 180)"),Z=H.lightness(0.8),L=H.lightness(1.2),ea=""+H,$=""+Z,U=""+L,oa=0,B=1,da,Da=5,S,T,q=450,Fa=function(){function b(b,g){if(a[b])g&&g(a[b]);else{var h=new XMLHttpRequest;h.onreadystatechange=function(){if(4===h.readyState&&h.status&&!(200>h.status||299<h.status)&&g&&h.responseText){var k=
|
||||
h.responseText;a[b]=k;c.push({url:b,size:k.length});d+=k.length;for(g(k);d>f;)k=c.shift(),d-=k.size,delete a[k.url]}};h.open("GET",b);h.send(null);return h}}var a={},c=[],d=0,f=5242880;return{loadJSON:function(a,c){return b(a,function(a){var b;try{b=JSON.parse(a)}catch(d){}c(b)})}}}(),E={loadedItems:{},items:[],getPixelFootprint:function(b){for(var a=new la(b.length),c,d=0,f=b.length-1;d<f;d+=2)c=ba(b[d],b[d+1]),a[d]=c.x,a[d+1]=c.y;b=a;a=b.length/2;c=new ma(a);var d=0,f=a-1,e,g,h,k,m=[],l=[],n=[];
|
||||
for(c[d]=c[f]=1;f;){g=0;for(e=d+1;e<f;e++){h=b[2*e];var p=b[2*e+1],q=b[2*d],r=b[2*d+1],t=b[2*f],w=b[2*f+1],u=t-q,v=w-r,x=void 0;if(0!==u||0!==v)x=((h-q)*u+(p-r)*v)/(u*u+v*v),1<x?(q=t,r=w):0<x&&(q+=u*x,r+=v*x);u=h-q;v=p-r;h=u*u+v*v;h>g&&(k=e,g=h)}2<g&&(c[k]=1,m.push(d),l.push(k),m.push(k),l.push(f));d=m.pop();f=l.pop()}for(e=0;e<a;e++)c[e]&&n.push(b[2*e],b[2*e+1]);a=n;if(!(8>a.length))return a},resetItems:function(){this.items=[];this.loadedItems={};V.reset()},addRenderItems:function(b,a){for(var c,
|
||||
d,f,e=Ea.read(b),g=0,h=e.length;g<h;g++)c=e[g],f=c.id||[c.footprint[0],c.footprint[1],c.height,c.minHeight].join(),!this.loadedItems[f]&&(d=this.scale(c))&&(d.scale=a?0:1,this.items.push(d),this.loadedItems[f]=1);xa()},scale:function(b){var a={},c=6/ka(2,v-15);b.id&&(a.id=b.id);a.height=P(b.height/c,da);a.minHeight=isNaN(b.minHeight)?0:b.minHeight/c;if(!(a.minHeight>da)&&(a.footprint=this.getPixelFootprint(b.footprint),a.footprint)){for(var d=a.footprint,f=Infinity,e=-Infinity,g=Infinity,h=-Infinity,
|
||||
k=0,m=d.length-3;k<m;k+=2)f=P(f,d[k]),e=J(e,d[k]),g=P(g,d[k+1]),h=J(h,d[k+1]);a.center={x:f+(e-f)/2<<0,y:g+(h-g)/2<<0};b.radius&&(a.radius=b.radius*oa);b.shape&&(a.shape=b.shape);b.roofShape&&(a.roofShape=b.roofShape);"cone"!==a.roofShape&&"dome"!==a.roofShape||a.shape||!qa(a.footprint)||(a.shape="cylinder");if(b.holes){a.holes=[];for(var l,d=0,f=b.holes.length;d<f;d++)(l=this.getPixelFootprint(b.holes[d]))&&a.holes.push(l)}var n;b.wallColor&&(n=F.parse(b.wallColor))&&(n=n.alpha(B),a.altColor=""+
|
||||
n.lightness(0.8),a.wallColor=""+n);b.roofColor&&(n=F.parse(b.roofColor))&&(a.roofColor=""+n.alpha(B));b.relationId&&(a.relationId=b.relationId);a.hitColor=V.idToColor(b.relationId||b.id);a.roofHeight=isNaN(b.roofHeight)?0:b.roofHeight/c;if(!(a.height+a.roofHeight<=a.minHeight))return a}},set:function(b){this.isStatic=!0;this.resetItems();this._staticData=b;this.addRenderItems(this._staticData,!0)},load:function(b,a){this.src=b||"http://{s}.data.osmbuildings.org/0.2/{k}/tile/{z}/{x}/{y}.json".replace("{k}",
|
||||
a||"anonymous");this.update()},update:function(){function b(a){g.addRenderItems(a)}this.resetItems();if(!(15>v))if(this.isStatic&&this._staticData)this.addRenderItems(this._staticData);else if(this.src){var a=16<v?256<<v-16:256>>16-v,c=p/a<<0,d=n/a<<0,f=ja((p+u)/a),a=ja((n+z)/a),e,g=this;for(e=d;e<=a;e++)for(d=c;d<=f;d++)this.loadTile(d,e,16,b)}},loadTile:function(b,a,c,d){b=this.src.replace("{s}","abcd"[(b+a)%4]).replace("{x}",b).replace("{y}",a).replace("{z}",c);return Fa.loadJSON(b,d)}},W={draw:function(b,
|
||||
a,c,d,f,e,g,h){var k,m=this._extrude(b,a,d,f,e,g),l=[];if(c)for(a=0,k=c.length;a<k;a++)l[a]=this._extrude(b,c[a],d,f,e,g);b.fillStyle=h;b.beginPath();this._ring(b,m);if(c)for(a=0,k=l.length;a<k;a++)this._ring(b,l[a]);b.closePath();b.stroke();b.fill()},_extrude:function(b,a,c,d,f,e){c=q/(q-c);for(var g=q/(q-d),h={x:0,y:0},k={x:0,y:0},m,l,y=[],s=0,t=a.length-3;s<t;s+=2)h.x=a[s]-p,h.y=a[s+1]-n,k.x=a[s+2]-p,k.y=a[s+3]-n,m=r.project(h,c),l=r.project(k,c),d&&(h=r.project(h,g),k=r.project(k,g)),(k.x-h.x)*
|
||||
(m.y-h.y)>(m.x-h.x)*(k.y-h.y)&&(b.fillStyle=h.x<k.x&&h.y<k.y||h.x>k.x&&h.y>k.y?e:f,b.beginPath(),this._ring(b,[k.x,k.y,h.x,h.y,m.x,m.y,l.x,l.y]),b.closePath(),b.fill()),y[s]=m.x,y[s+1]=m.y;return y},_ring:function(b,a){b.moveTo(a[0],a[1]);for(var c=2,d=a.length-1;c<d;c+=2)b.lineTo(a[c],a[c+1])},simplified:function(b,a,c){b.beginPath();this._ringAbs(b,a);if(c){a=0;for(var d=c.length;a<d;a++)this._ringAbs(b,c[a])}b.closePath();b.stroke();b.fill()},_ringAbs:function(b,a){b.moveTo(a[0]-p,a[1]-n);for(var c=
|
||||
2,d=a.length-1;c<d;c+=2)b.lineTo(a[c]-p,a[c+1]-n)},shadow:function(b,a,c,d,f){for(var e=null,g={x:0,y:0},h={x:0,y:0},k,m,l=0,q=a.length-3;l<q;l+=2)g.x=a[l]-p,g.y=a[l+1]-n,h.x=a[l+2]-p,h.y=a[l+3]-n,k=x.project(g,d),m=x.project(h,d),f&&(g=x.project(g,f),h=x.project(h,f)),(h.x-g.x)*(k.y-g.y)>(k.x-g.x)*(h.y-g.y)?(1===e&&b.lineTo(g.x,g.y),e=0,l||b.moveTo(g.x,g.y),b.lineTo(h.x,h.y)):(0===e&&b.lineTo(k.x,k.y),e=1,l||b.moveTo(k.x,k.y),b.lineTo(m.x,m.y));if(c)for(l=0,q=c.length;l<q;l++)this._ringAbs(b,c[l])},
|
||||
shadowMask:function(b,a,c){this._ringAbs(b,a);if(c){a=0;for(var d=c.length;a<d;a++)this._ringAbs(b,c[a])}},hitArea:function(b,a,c,d,f,e){c=null;var g={x:0,y:0},h={x:0,y:0};d=q/(q-d);var k=q/(q-f),m;b.fillStyle=e;b.beginPath();for(var l=0,y=a.length-3;l<y;l+=2)g.x=a[l]-p,g.y=a[l+1]-n,h.x=a[l+2]-p,h.y=a[l+3]-n,e=r.project(g,d),m=r.project(h,d),f&&(g=r.project(g,k),h=r.project(h,k)),(h.x-g.x)*(e.y-g.y)>(e.x-g.x)*(h.y-g.y)?(1===c&&b.lineTo(g.x,g.y),c=0,l||b.moveTo(g.x,g.y),b.lineTo(h.x,h.y)):(0===c&&
|
||||
b.lineTo(e.x,e.y),c=1,l||b.moveTo(e.x,e.y),b.lineTo(m.x,m.y));b.closePath();b.fill()}},t={draw:function(b,a,c,d,f,e,g,h,k){a={x:a.x-p,y:a.y-n};var m=q/(q-f),l=q/(q-e);f=r.project(a,m);d*=m;e&&(a=r.project(a,l),c*=l);(m=this._tangents(a,c,f,d))?(e=K(m[0].y1-a.y,m[0].x1-a.x),m=K(m[1].y1-a.y,m[1].x1-a.x)):(e=1.5*C,m=1.5*C);b.fillStyle=g;b.beginPath();b.arc(f.x,f.y,d,I,e,!0);b.arc(a.x,a.y,c,e,I);b.closePath();b.fill();b.fillStyle=h;b.beginPath();b.arc(f.x,f.y,d,m,I,!0);b.arc(a.x,a.y,c,I,m);b.closePath();
|
||||
b.fill();b.fillStyle=k;this._circle(b,f,d)},simplified:function(b,a,c){this._circle(b,{x:a.x-p,y:a.y-n},c)},shadow:function(b,a,c,d,f,e){a={x:a.x-p,y:a.y-n};f=x.project(a,f);var g;e&&(a=x.project(a,e));var h=this._tangents(a,c,f,d);h?(e=K(h[0].y1-a.y,h[0].x1-a.x),g=K(h[1].y1-a.y,h[1].x1-a.x),b.moveTo(h[1].x2,h[1].y2),b.arc(f.x,f.y,d,g,e),b.arc(a.x,a.y,c,e,g)):(b.moveTo(a.x+c,a.y),b.arc(a.x,a.y,c,0,2*C))},shadowMask:function(b,a,c){var d=a.x-p;a=a.y-n;b.moveTo(d+c,a);b.arc(d,a,c,0,2*C)},hitArea:function(b,
|
||||
a,c,d,f,e,g){a={x:a.x-p,y:a.y-n};var h=q/(q-f),k=q/(q-e);f=r.project(a,h);d*=h;e&&(a=r.project(a,k),c*=k);e=this._tangents(a,c,f,d);b.fillStyle=g;b.beginPath();e?(g=K(e[0].y1-a.y,e[0].x1-a.x),h=K(e[1].y1-a.y,e[1].x1-a.x),b.moveTo(e[1].x2,e[1].y2),b.arc(f.x,f.y,d,h,g),b.arc(a.x,a.y,c,g,h)):(b.moveTo(a.x+c,a.y),b.arc(a.x,a.y,c,0,2*C));b.closePath();b.fill()},_circle:function(b,a,c){b.beginPath();b.arc(a.x,a.y,c,0,2*C);b.stroke();b.fill()},_tangents:function(b,a,c,d){var f=b.x-c.x,e=b.y-c.y,g=a-d,h=
|
||||
f*f+e*e;if(!(h<=g*g)){var h=ia(h),f=-f/h,e=-e/h,g=g/h,h=[],k,m,l;k=ia(J(0,1-g*g));for(var n=1;-1<=n;n-=2)m=f*g-n*k*e,l=e*g+n*k*f,h.push({x1:b.x+a*m<<0,y1:b.y+a*l<<0,x2:c.x+d*m<<0,y2:c.y+d*l<<0});return h}}},M={draw:function(b,a,c,d,f,e,g){var h=q/(q-f);c=r.project({x:c.x-p,y:c.y-n},q/(q-d));d={x:0,y:0};for(var k={x:0,y:0},m=0,l=a.length-3;m<l;m+=2)d.x=a[m]-p,d.y=a[m+1]-n,k.x=a[m+2]-p,k.y=a[m+3]-n,f&&(d=r.project(d,h),k=r.project(k,h)),(k.x-d.x)*(c.y-d.y)>(c.x-d.x)*(k.y-d.y)&&(b.fillStyle=d.x<k.x&&
|
||||
d.y<k.y||d.x>k.x&&d.y>k.y?g:e,b.beginPath(),this._triangle(b,d,k,c),b.closePath(),b.fill())},_triangle:function(b,a,c,d){b.moveTo(a.x,a.y);b.lineTo(c.x,c.y);b.lineTo(d.x,d.y)},_ring:function(b,a){b.moveTo(a[0]-p,a[1]-n);for(var c=2,d=a.length-1;c<d;c+=2)b.lineTo(a[c]-p,a[c+1]-n)},shadow:function(b,a,c,d,f){var e={x:0,y:0},g={x:0,y:0};c=x.project({x:c.x-p,y:c.y-n},d);d=0;for(var h=a.length-3;d<h;d+=2)e.x=a[d]-p,e.y=a[d+1]-n,g.x=a[d+2]-p,g.y=a[d+3]-n,f&&(e=x.project(e,f),g=x.project(g,f)),(g.x-e.x)*
|
||||
(c.y-e.y)>(c.x-e.x)*(g.y-e.y)&&this._triangle(b,e,g,c)},shadowMask:function(b,a){this._ring(b,a)},hitArea:function(b,a,c,d,f,e){var g=q/(q-f);c=r.project({x:c.x-p,y:c.y-n},q/(q-d));d={x:0,y:0};var h={x:0,y:0};b.fillStyle=e;b.beginPath();e=0;for(var k=a.length-3;e<k;e+=2)d.x=a[e]-p,d.y=a[e+1]-n,h.x=a[e+2]-p,h.y=a[e+3]-n,f&&(d=r.project(d,g),h=r.project(h,g)),(h.x-d.x)*(c.y-d.y)>(c.x-d.x)*(h.y-d.y)&&this._triangle(b,d,h,c);b.closePath();b.fill()}},r={project:function(b,a){return{x:(b.x-S)*a+S<<0,y:(b.y-
|
||||
T)*a+T<<0}},render:function(){var b=this.context;b.clearRect(0,0,u,z);if(!(15>v)){var a,c,d,f={x:S+p,y:T+n},e,g,h,k,m=E.items;m.sort(function(a,b){return a.minHeight-b.minHeight||N(b.center,f)-N(a.center,f)||b.height-a.height});for(var l=0,q=m.length;l<q;l++)if(a=m[l],!fa.isSimple(a)&&(e=a.footprint,Q(e))){c=1>a.scale?a.height*a.scale:a.height;d=0;a.minHeight&&(d=1>a.scale?a.minHeight*a.scale:a.minHeight);g=a.wallColor||ea;h=a.altColor||$;k=a.roofColor||U;b.strokeStyle=h;switch(a.shape){case "cylinder":t.draw(b,
|
||||
a.center,a.radius,a.radius,c,d,g,h,k);break;case "cone":t.draw(b,a.center,a.radius,0,c,d,g,h);break;case "dome":t.draw(b,a.center,a.radius,a.radius/2,c,d,g,h);break;case "sphere":t.draw(b,a.center,a.radius,a.radius,c,d,g,h,k);break;case "pyramid":M.draw(b,e,a.center,c,d,g,h);break;default:W.draw(b,e,a.holes,c,d,g,h,k)}switch(a.roofShape){case "cone":t.draw(b,a.center,a.radius,0,c+a.roofHeight,c,k,""+F.parse(k).lightness(0.9));break;case "dome":t.draw(b,a.center,a.radius,a.radius/2,c+a.roofHeight,
|
||||
c,k,""+F.parse(k).lightness(0.9));break;case "pyramid":M.draw(b,e,a.center,c+a.roofHeight,c,k,F.parse(k).lightness(0.9))}}}}},fa={maxZoom:17,maxHeight:5,isSimple:function(b){return v<=this.maxZoom&&b.height+b.roofHeight<this.maxHeight},render:function(){var b=this.context;b.clearRect(0,0,u,z);if(!(15>v||v>this.maxZoom))for(var a,c,d=E.items,f=0,e=d.length;f<e;f++)if(a=d[f],!(a.height>=this.maxHeight)&&(c=a.footprint,Q(c)))switch(b.strokeStyle=a.altColor||$,b.fillStyle=a.roofColor||U,a.shape){case "cylinder":case "cone":case "dome":case "sphere":t.simplified(b,
|
||||
a.center,a.radius);break;default:W.simplified(b,c,a.holes)}}},x={enabled:!0,color:"#666666",blurColor:"#000000",blurSize:15,date:new Date,direction:{x:0,y:0},project:function(b,a){return{x:b.x+this.direction.x*a,y:b.y+this.direction.y*a}},render:function(){var b=this.context,a,c,d;b.clearRect(0,0,u,z);if(!(!this.enabled||15>v||(a=ga(Y+p,ca+n),a=Ca(this.date,a.latitude,a.longitude),0>=a.altitude))){c=1/ha(a.altitude);d=5>c?0.75:1/c*5;this.direction.x=Aa(a.azimuth)*c;this.direction.y=za(a.azimuth)*
|
||||
c;var f,e,g,h;a=E.items;b.canvas.style.opacity=d/(2*B);b.shadowColor=this.blurColor;b.shadowBlur=B/2*this.blurSize;b.fillStyle=this.color;b.beginPath();d=0;for(c=a.length;d<c;d++)if(f=a[d],h=f.footprint,Q(h)){e=1>f.scale?f.height*f.scale:f.height;g=0;f.minHeight&&(g=1>f.scale?f.minHeight*f.scale:f.minHeight);switch(f.shape){case "cylinder":t.shadow(b,f.center,f.radius,f.radius,e,g);break;case "cone":t.shadow(b,f.center,f.radius,0,e,g);break;case "dome":t.shadow(b,f.center,f.radius,f.radius/2,e,g);
|
||||
break;case "sphere":t.shadow(b,f.center,f.radius,f.radius,e,g);break;case "pyramid":M.shadow(b,h,f.center,e,g);break;default:W.shadow(b,h,f.holes,e,g)}switch(f.roofShape){case "cone":t.shadow(b,f.center,f.radius,0,e+f.roofHeight,e);break;case "dome":t.shadow(b,f.center,f.radius,f.radius/2,e+f.roofHeight,e);break;case "pyramid":M.shadow(b,h,f.center,e+f.roofHeight,e)}}b.closePath();b.fill();b.shadowBlur=null;b.globalCompositeOperation="destination-out";b.beginPath();d=0;for(c=a.length;d<c;d++)if(f=
|
||||
a[d],h=f.footprint,Q(h)&&!f.minHeight)switch(f.shape){case "cylinder":case "cone":case "dome":t.shadowMask(b,f.center,f.radius);break;default:W.shadowMask(b,h,f.holes)}b.fillStyle="#00ff00";b.fill();b.globalCompositeOperation="source-over"}}},V={_idMapping:[null],reset:function(){this._idMapping=[null]},render:function(){if(!this._timer){var b=this;this._timer=setTimeout(function(){b._timer=null;b._render()},500)}},_render:function(){var b=this.context;b.clearRect(0,0,u,z);if(!(15>v)){var a,c,d,f=
|
||||
{x:S+p,y:T+n},e,g,h=E.items;h.sort(function(a,b){return a.minHeight-b.minHeight||N(b.center,f)-N(a.center,f)||b.height-a.height});for(var k=0,m=h.length;k<m;k++)if(a=h[k],g=a.hitColor)if(e=a.footprint,Q(e)){c=a.height;d=0;a.minHeight&&(d=a.minHeight);switch(a.shape){case "cylinder":t.hitArea(b,a.center,a.radius,a.radius,c,d,g);break;case "cone":t.hitArea(b,a.center,a.radius,0,c,d,g);break;case "dome":t.hitArea(b,a.center,a.radius,a.radius/2,c,d,g);break;case "sphere":t.hitArea(b,a.center,a.radius,
|
||||
a.radius,c,d,g);break;case "pyramid":M.hitArea(b,e,a.center,c,d,g);break;default:W.hitArea(b,e,a.holes,c,d,g)}switch(a.roofShape){case "cone":t.hitArea(b,a.center,a.radius,0,c+a.roofHeight,c,g);break;case "dome":t.hitArea(b,a.center,a.radius,a.radius/2,c+a.roofHeight,c,g);break;case "pyramid":M.hitArea(b,e,a.center,c+a.roofHeight,c,g)}}u&&z&&(this._imageData=this.context.getImageData(0,0,u,z).data)}},getIdFromXY:function(b,a){var c=this._imageData;if(c){var d=4*((a|0)*u+(b|0));return this._idMapping[c[d]|
|
||||
c[d+1]<<8|c[d+2]<<16]}},idToColor:function(b){var a=this._idMapping.indexOf(b);-1===a&&(this._idMapping.push(b),a=this._idMapping.length-1);return"rgb("+[a&255,a>>8&255,a>>16&255].join()+")"}},X,R={container:document.createElement("DIV"),items:[],init:function(){this.container.style.pointerEvents="none";this.container.style.position="absolute";this.container.style.left=0;this.container.style.top=0;x.context=this.createContext(this.container);fa.context=this.createContext(this.container);r.context=
|
||||
this.createContext(this.container);V.context=this.createContext()},render:function(b){Ba(function(){b||(x.render(),fa.render(),V.render());r.render()})},createContext:function(b){var a=document.createElement("CANVAS");a.style.transform="translate3d(0, 0, 0)";a.style.imageRendering="optimizeSpeed";a.style.position="absolute";a.style.left=0;a.style.top=0;var c=a.getContext("2d");c.lineCap="round";c.lineJoin="round";c.lineWidth=1;c.imageSmoothingEnabled=!1;this.items.push(a);b&&b.appendChild(a);return c},
|
||||
appendTo:function(b){b.appendChild(this.container)},remove:function(){this.container.parentNode.removeChild(this.container)},setSize:function(b,a){for(var c=0,d=this.items.length;c<d;c++)this.items[c].width=b,this.items[c].height=a},setPosition:function(b,a){this.container.style.left=b+"px";this.container.style.top=a+"px"}};R.init();w=function(b){this.map=b;this.maxExtent=[-2.003750834E7,-2.003750834E7,2.003750834E7,2.003750834E7];try{this.setMap(b),b.addLayer(this)}catch(a){console.log(a)}};ol.inherits(w,
|
||||
ol.layer.Vector);D=w.prototype=ol.layer.Layer?new ol.layer.Vector({source:new ol.source.Vector({projection:ol.proj.get("EPSG:900913")})}):{};D.setOrigin=function(){var b=this.map;try{var a=b.getCoordinateFromPixel([0,0]),c=b.getView().getResolution(),d=this.maxExtent,f=(d[3]-a[1])/c<<0;p=(a[0]-d[0])/c<<0;n=f}catch(e){console.log(e)}};D.setMap=function(b){var a=this;R.appendTo(document.getElementById(b.get("target").id));ya({width:b.getSize()[0],height:b.getSize()[1]});var c=this.map.getView().getProjection();
|
||||
b.on("click",function(a){var f=V.getIdFromXY(a.pixel[0],a.pixel[1]);f&&(a=ol.proj.transform(b.getCoordinateFromPixel([a.pixel[0],a.pixel[1]]),c,b.getView().getProjection()),pa({feature:f,lat:a[0],lon:a[1]}))});this.on("precompose",function(c){v=b.getView().getZoom();O=256<<v;c=ga(p+Y,n+ca);var f=ba(c.latitude,0);oa=ba(c.latitude,1).x-f.x;B=ka(0.95,v-15);ea=""+H.alpha(B);$=""+Z.alpha(B);U=""+L.alpha(B);a.setOrigin();E.resetItems();E.update()})};D.style=function(b){b=b||{};var a;if(a=b.color||b.wallColor)H=
|
||||
F.parse(a),ea=""+H.alpha(B),Z=H.lightness(0.8),$=""+Z.alpha(B),L=H.lightness(1.2),U=""+L.alpha(B);b.roofColor&&(L=F.parse(b.roofColor),U=""+L.alpha(B));void 0!==b.shadows&&(x.enabled=!!b.shadows);R.render();return this};D.date=function(b){x.date=b;x.render();return this};D.load=function(b){E.load(b);return this};D.set=function(b){E.set(b);return this};var na=function(){};D.each=function(b){na=function(a){return b(a)};return this};var pa=function(){};D.click=function(b){pa=function(a){return b(a)};
|
||||
return this};w.VERSION="0.2.2b";w.ATTRIBUTION='© <a href="http://osmbuildings.org">OSM Buildings</a>';aa.OSMBuildings=w})(this);
|
||||
@@ -0,0 +1,757 @@
|
||||
@charset "UTF-8";
|
||||
/*
|
||||
| tail.datetime - The vanilla way to select dates and times!
|
||||
| @file ./less/tail.datetime-harx-light.less
|
||||
| @author SamBrishes <sam@pytes.net>
|
||||
| @version 0.4.14 - Beta
|
||||
|
|
||||
| @website https://github.com/pytesNET/tail.DateTime
|
||||
| @license X11 / MIT License
|
||||
| @copyright Copyright © 2018 - 2019 SamBrishes, pytesNET <info@pytes.net>
|
||||
*/
|
||||
|
||||
/*custom for menus:*/
|
||||
#menu {
|
||||
vertical-align: top;
|
||||
display: inline-block;
|
||||
width: 20%;
|
||||
}
|
||||
.filterselect{
|
||||
|
||||
font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
|
||||
margin-top: 10px;
|
||||
margin-left: 20px;
|
||||
margin-right: 20px;
|
||||
margin-bottom: 10px;
|
||||
display: grid;
|
||||
}
|
||||
.filterselect p{
|
||||
|
||||
font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
|
||||
margin-top: 0px; !important
|
||||
margin-left: 0px;
|
||||
margin-right: 0px;
|
||||
margin-bottom: 0px;
|
||||
display: grid;
|
||||
}
|
||||
.slider {
|
||||
font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
|
||||
margin-top: 10px;
|
||||
margin-left: 20px;
|
||||
margin-right: 20px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
/* @start MAIN CALENDAR */
|
||||
.tail-datetime-calendar, .tail-datetime-calendar *, .tail-datetime-calendar *:before,
|
||||
.tail-datetime-calendar *:after{
|
||||
box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
}
|
||||
.tail-datetime-calendar{
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 360px;
|
||||
height: auto;
|
||||
margin: 15px;
|
||||
padding: 0;
|
||||
z-index: 3000;
|
||||
display: block;
|
||||
position: absolute;
|
||||
visibility: hidden;
|
||||
direction: ltr;
|
||||
border-collapse: separate;
|
||||
font-family: "Open Sans", Calibri, Arial, sans-serif;
|
||||
background-color: white;
|
||||
border-width: 0;
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
border-radius: 3px;
|
||||
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 2px 1px rgba(0, 0, 0, 0.1);
|
||||
-webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 2px 1px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.tail-datetime-calendar:after{
|
||||
clear: both;
|
||||
content: "";
|
||||
display: block;
|
||||
font-size: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
.tail-datetime-calendar.calendar-static{
|
||||
top: auto;
|
||||
left: auto;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
position: static;
|
||||
visibility: visible;
|
||||
}
|
||||
.tail-datetime-calendar button.calendar-close{
|
||||
top: 100%;
|
||||
right: 15px;
|
||||
color: #303438;
|
||||
width: 35px;
|
||||
height: 25px;
|
||||
margin: 1px 0 0 0;
|
||||
padding: 5px 10px;
|
||||
opacity: 0.5;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
font-size: 14px;
|
||||
line-height: 1.125em;
|
||||
text-shadow: none;
|
||||
border: 0;
|
||||
outline: none;
|
||||
background-color: white;
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z\
|
||||
dmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDEyIDE2Ij48cGF0aCBmaWxsPSIjMzAzNDM4IiB\
|
||||
kPSJNNy40OCA4bDMuNzUgMy43NS0xLjQ4IDEuNDhMNiA5LjQ4bC0zLjc1IDMuNzUtMS40OC0xLjQ4TDQuNTIgOCAuNz\
|
||||
cgNC4yNWwxLjQ4LTEuNDhMNiA2LjUybDMuNzUtMy43NSAxLjQ4IDEuNDhMNy40OCA4eiIvPjwvc3ZnPg==");
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
border-width: 0;
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
border-radius: 0 0 3px 3px;
|
||||
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 2px 1px rgba(0, 0, 0, 0.1);
|
||||
-webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 2px 1px rgba(0, 0, 0, 0.1);
|
||||
transition: opacity 142ms linear;
|
||||
-webkit-transition: opacity 142ms linear;
|
||||
}
|
||||
.tail-datetime-calendar button.calendar-close:hover{
|
||||
opacity: 1;
|
||||
}
|
||||
/* @end MAIN CALENDAR */
|
||||
|
||||
/* @start CALENDAR TOOLTIP */
|
||||
.tail-datetime-calendar .calendar-tooltip{
|
||||
color: white;
|
||||
width: auto;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: block;
|
||||
position: absolute;
|
||||
background-color: #303438;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-tooltip:before{
|
||||
top: -7px;
|
||||
left: 50%;
|
||||
width: 0;
|
||||
height: 0;
|
||||
margin: 0 0 0 -6px;
|
||||
content: "";
|
||||
display: block;
|
||||
position: absolute;
|
||||
border-width: 0 7px 7px 7px;
|
||||
border-style: solid;
|
||||
border-color: transparent transparent #303438 transparent;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-tooltip .tooltip-inner{
|
||||
width: auto;
|
||||
margin: 0;
|
||||
padding: 4px 7px;
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
line-height: 14px;
|
||||
}
|
||||
/* @end CALENDAR TOOLTIP */
|
||||
|
||||
/* @start CALENDAR ACTIONs */
|
||||
.tail-datetime-calendar .calendar-actions{
|
||||
color: #303438;
|
||||
width: 100%;
|
||||
height: 36px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: table;
|
||||
overflow: hidden;
|
||||
border-spacing: 0;
|
||||
border-collapse: separate;
|
||||
background-color: white;
|
||||
border-width: 0;
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
border-radius: 3px 3px 0 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
opacity: 0.5;
|
||||
display: table-cell;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
line-height: 40px;
|
||||
text-shadow: none;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
transition: opacity 142ms linear, background 142ms linear;
|
||||
-webkit-transition: opacity 142ms linear, background 142ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span[data-action]{
|
||||
cursor: pointer;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.action{
|
||||
width: 50px;
|
||||
font-size: 22px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.label{
|
||||
width: auto;
|
||||
opacity: 1;
|
||||
font-size: 16px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:first-child{
|
||||
border-radius: 4px 0 0 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:last-child{
|
||||
border-radius: 0 4px 0 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:first-child:before,
|
||||
.tail-datetime-calendar .calendar-actions span:last-child:before{
|
||||
top: 5px;
|
||||
bottom: 5px;
|
||||
width: 1px;
|
||||
height: auto;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
background-color: #e6e6e6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:first-child:before{
|
||||
right: -1px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:last-child:before{
|
||||
left: -1px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:first-child:hover:before,
|
||||
.tail-datetime-calendar .calendar-actions span:last-child:hover:before{
|
||||
display: none;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span[data-action]:hover{
|
||||
opacity: 0.95;
|
||||
background-color: #e6e6e6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.action-prev{
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zd\
|
||||
mciIHdpZHRoPSI2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgNiAxNiI+PHBhdGggZD0iTTYgMkwwIDhsNiA2VjJ6\
|
||||
Ii8+PC9zdmc+");
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.action-next{
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z\
|
||||
dmciIHdpZHRoPSI2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgNiAxNiI+PHBhdGggZD0iTTAgMTRsNi02LTYtNnY\
|
||||
xMnoiLz48L3N2Zz4=");
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.action-submit{
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z\
|
||||
dmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDEyIDE2Ij48cGF0aCBkPSJNMTIgNWwtOCA4LTQ\
|
||||
tNCAxLjUtMS41TDQgMTBsNi41LTYuNUwxMiA1eiIvPjwvc3ZnPg==");
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.action-cancel{
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z\
|
||||
dmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDEyIDE2Ij48cGF0aCBmaWxsPSIjMzAzNDM4IiB\
|
||||
kPSJNNy40OCA4bDMuNzUgMy43NS0xLjQ4IDEuNDhMNiA5LjQ4bC0zLjc1IDMuNzUtMS40OC0xLjQ4TDQuNTIgOCAuNz\
|
||||
cgNC4yNWwxLjQ4LTEuNDhMNiA2LjUybDMuNzUtMy43NSAxLjQ4IDEuNDhMNy40OCA4eiIvPjwvc3ZnPg==");
|
||||
}
|
||||
/* @end CALENDAR ACTIONs */
|
||||
|
||||
/* @start CALENDAR DATEPICKER */
|
||||
.tail-datetime-calendar .calendar-datepicker{
|
||||
width: 100%;
|
||||
margin: 0 0 15px 0;
|
||||
padding: 0;
|
||||
display: block;
|
||||
position: relative;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker:after{
|
||||
top: -1px;
|
||||
left: 10px;
|
||||
right: 10px;
|
||||
content: "";
|
||||
position: absolute;
|
||||
border-width: 1px 0 0 0;
|
||||
border-style: solid;
|
||||
border-color: #e6e6e6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table{
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border-spacing: 1px;
|
||||
border-collapse: separate;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr th,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td{
|
||||
color: #303438;
|
||||
width: 50px;
|
||||
height: 35px;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
font-size: 13px;
|
||||
text-align: center;
|
||||
font-weight: normal;
|
||||
text-shadow: none;
|
||||
line-height: 30px;
|
||||
background-color: transparent;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td{
|
||||
cursor: pointer;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td span.inner{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: inline-block;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-disabled{
|
||||
cursor: not-allowed;
|
||||
color: #A0A4A8;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-disabled:after{
|
||||
color: #A0A4A8;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 49px;
|
||||
height: 35px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
content: "✕";
|
||||
opacity: 0.25;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
font-size: 30px;
|
||||
line-height: 35px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-previous,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-next{
|
||||
color: #808488;
|
||||
background-color: transparent;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-today:before,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td .tooltip-tick{
|
||||
top: 5px;
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
z-index: 20;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
border-width: 0;
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-today:before{
|
||||
left: 5px;
|
||||
background-color: #32B93C;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td .tooltip-tick{
|
||||
right: 5px;
|
||||
background-color: #303438;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-select.date-today:before,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-select .tooltip-tick{
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td .tooltip-tick:before,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td .tooltip-tick:after{
|
||||
display: none;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade{
|
||||
width: 14.28571429%;
|
||||
height: 35px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade:hover{
|
||||
border-color: #e6e6e6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day.date-disabled:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month.date-disabled:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year.date-disabled:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade.date-disabled:hover{
|
||||
border-color: white;
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day.date-today,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month.date-today,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year.date-today,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade.date-today{
|
||||
color: #32B93C;
|
||||
border-color: #32B93C;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day.date-select,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month.date-select,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year.date-select,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade.date-select{
|
||||
border-color: #149BE6;
|
||||
background-color: #149BE6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day.date-select span,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month.date-select span,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year.date-select span,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade.date-select span{
|
||||
color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day span.inner,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month span.inner,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year span.inner,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade span.inner{
|
||||
border: 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade{
|
||||
width: 25%;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade span.inner{
|
||||
height: 54px;
|
||||
padding: 7px 15px;
|
||||
text-align: center;
|
||||
line-height: 20px;
|
||||
}
|
||||
/* @end CALENDAR DATEPICKER */
|
||||
|
||||
/* @start CALENDAR TIMEPICKER */
|
||||
.tail-datetime-calendar .calendar-timepicker{
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: block;
|
||||
position: relative;
|
||||
border-top: 0;
|
||||
text-align: center;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker:after{
|
||||
top: -1px;
|
||||
left: 10px;
|
||||
right: 10px;
|
||||
content: "";
|
||||
position: absolute;
|
||||
border-width: 1px 0 0 0;
|
||||
border-style: solid;
|
||||
border-color: #e6e6e6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field{
|
||||
width: auto;
|
||||
margin: 0;
|
||||
padding: 20px 10px 10px 10px;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field:first-of-type{
|
||||
text-align: right;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field:last-of-type{
|
||||
text-align: left;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input[type="text"]{
|
||||
color: #606468;
|
||||
width: 75px;
|
||||
height: 35px;
|
||||
margin: 0;
|
||||
z-index: 4;
|
||||
padding: 3px 20px 3px 5px;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
appearance: textfield;
|
||||
-moz-appearance: textfield;
|
||||
-webkit-appearance: textfield;
|
||||
background-color: white;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-color: #E0E0E0;
|
||||
border-radius: 3px;
|
||||
box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
transition: color 142ms linear, border 142ms linear, background 142ms linear;
|
||||
-webkit-transition: color 142ms linear, border 142ms linear, background 142ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input[type="text"]:hover{
|
||||
color: #404448;
|
||||
border-color: #D0D0D0;
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input[type="text"]:focus{
|
||||
color: #303438;
|
||||
border-color: #149BE6;
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input[type="text"]:disabled{
|
||||
cursor: not-allowed;
|
||||
color: #A0A4A8;
|
||||
border-color: #D0D0D0;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step{
|
||||
right: 11px;
|
||||
width: 20px;
|
||||
height: 17px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
z-index: 15;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
background-color: white;
|
||||
box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
transition: border 142ms linear, background 142ms linear;
|
||||
-webkit-transition: border 142ms linear, background 142ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step:before{
|
||||
top: 5px;
|
||||
left: 50%;
|
||||
width: 0;
|
||||
height: 0;
|
||||
margin: 0 0 0 -3px;
|
||||
padding: 0;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
transition: border 142ms linear;
|
||||
-webkit-transition: border 142ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-up{
|
||||
top: 21px;
|
||||
border-width: 0 0 1px 1px;
|
||||
border-style: solid;
|
||||
border-color: #E0E0E0;
|
||||
border-radius: 0 2px 0 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-up:hover{
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-up:before{
|
||||
border-width: 0 4px 5px 4px;
|
||||
border-style: solid;
|
||||
border-color: transparent transparent #606468 transparent;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-down{
|
||||
top: 37px;
|
||||
border-width: 1px 0 0 1px;
|
||||
border-style: solid;
|
||||
border-color: #E0E0E0;
|
||||
border-radius: 0 0 2px 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-down:hover{
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-down:before{
|
||||
border-width: 5px 4px 0 4px;
|
||||
border-style: solid;
|
||||
border-color: #606468 transparent transparent transparent;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button.step-up{
|
||||
border-color: #149BE6;
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button.step-up:before{
|
||||
border-bottom-color: #149BE6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button.step-up:hover{
|
||||
color: white;
|
||||
background-color: #149BE6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button.step-up:hover:before{
|
||||
border-bottom-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button + button.step-down{
|
||||
border-color: #149BE6;
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button + button.step-down:before{
|
||||
border-top-color: #149BE6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button + button.step-down:hover{
|
||||
color: white;
|
||||
background-color: #149BE6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button + button.step-down:hover:before{
|
||||
border-top-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button.step-up{
|
||||
cursor: not-allowed;
|
||||
border-color: #D0D0D0;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button.step-up:hover{
|
||||
border-color: #D0D0D0;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button.step-up:before{
|
||||
border-bottom-color: #A0A4A8;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button + button.step-down{
|
||||
cursor: not-allowed;
|
||||
border-color: #D0D0D0;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button + button.step-down:hover{
|
||||
border-color: #D0D0D0;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button + button.step-down:before{
|
||||
border-top-color: #A0A4A8;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field label{
|
||||
color: #606468;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch{
|
||||
cursor: pointer;
|
||||
margin: 0 0 -8px 0;
|
||||
padding: 15px 0 0 0;
|
||||
display: block;
|
||||
text-align: center;
|
||||
vertical-align: top;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch:before,
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch:after{
|
||||
width: auto;
|
||||
margin: 0;
|
||||
padding: 0 5px;
|
||||
font-size: 12px;
|
||||
line-height: 16px;
|
||||
vertical-align: top;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch:before{
|
||||
content: attr(data-am);
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch:after{
|
||||
content: attr(data-pm);
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"]{
|
||||
display: none;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"] + span{
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
vertical-align: top;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"] + span:before{
|
||||
width: 50px;
|
||||
height: 16px;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-color: #149BE6;
|
||||
border-radius: 14px;
|
||||
transition: border 284ms linear;
|
||||
-webkit-transition: border 284ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"] + span:after{
|
||||
top: 3px;
|
||||
left: 4px;
|
||||
right: 30px;
|
||||
width: auto;
|
||||
height: 10px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
background-color: #149BE6;
|
||||
border-radius: 15px;
|
||||
vertical-align: top;
|
||||
transition: left 284ms linear, right 284ms linear 284ms, background 284ms linear;
|
||||
-webkit-transition: left 284ms linear, right 284ms linear 284ms, background 284ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"]:checked + span:before{
|
||||
border-color: #32B93C;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"]:checked + span:after{
|
||||
left: 30px;
|
||||
right: 4px;
|
||||
background-color: #32B93C;
|
||||
transition: right 284ms linear, left 284ms linear 284ms, background 284ms linear;
|
||||
-webkit-transition: right 284ms linear, left 284ms linear 284ms, background 284ms linear;
|
||||
}
|
||||
/* @end CALENDAR TIMEPICKER */
|
||||
|
||||
/* @start RTL */
|
||||
.tail-datetime-calendar.rtl{
|
||||
direction: rtl;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-actions span.action-next,
|
||||
.tail-datetime-calendar.rtl .calendar-actions span.action-prev{
|
||||
transform: rotate(180deg);
|
||||
-moz-transform: rotate(180deg);
|
||||
-webkit-transform: rotate(180deg);
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.date-disabled:after{
|
||||
right: 3px;
|
||||
transform: rotate(45deg);
|
||||
-moz-transform: rotate(45deg);
|
||||
-webkit-transform: rotate(45deg);
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.date-today:before{
|
||||
right: 5px;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td .tooltip-tick{
|
||||
left: 5px;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-month.date-today:before,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-year.date-today:before,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-decade.date-today:before{
|
||||
right: 50%;
|
||||
margin-right: -2.5px;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-month:hover span.inner:before,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-year:hover span.inner:before,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-decade:hover span.inner:before{
|
||||
right: 6px;
|
||||
border-right-color: #cccccc;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-month span.inner:after,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-year span.inner:after,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-decade span.inner:after{
|
||||
left: 0;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-month:hover span.inner:after,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-year:hover span.inner:after,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-decade:hover span.inner:after{
|
||||
left: 6px;
|
||||
border-left-color: #cccccc;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-decade span.inner{
|
||||
text-align: right;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-timepicker .timepicker-field:first-child{
|
||||
text-align: left;
|
||||
padding-left: 0;
|
||||
padding-right: 25px;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-timepicker .timepicker-field:last-child{
|
||||
text-align: right;
|
||||
padding-left: 25px;
|
||||
padding-right: 0;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-timepicker .timepicker-field:first-child input[type="text"]{
|
||||
margin-left: -1px;
|
||||
margin-right: 0;
|
||||
border-radius: 0 3px 3px 0;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-timepicker .timepicker-field:last-child input[type="text"]{
|
||||
margin-left: 0;
|
||||
margin-right: -1px;
|
||||
border-radius: 3px 0 0 3px;
|
||||
}
|
||||
/* @end RTL */
|
||||
|
||||
/*# sourceMappingURL=tail.datetime-harx-light.map */
|
||||
@@ -0,0 +1,56 @@
|
||||
var createTextStyle = function(feature, resolution, labelText, labelFont,
|
||||
labelFill, placement, bufferColor,
|
||||
bufferWidth) {
|
||||
|
||||
if (feature.hide || !labelText) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (bufferWidth == 0) {
|
||||
var bufferStyle = null;
|
||||
} else {
|
||||
var bufferStyle = new ol.style.Stroke({
|
||||
color: bufferColor,
|
||||
width: bufferWidth
|
||||
})
|
||||
}
|
||||
|
||||
var textStyle = new ol.style.Text({
|
||||
font: labelFont,
|
||||
text: labelText,
|
||||
textBaseline: "middle",
|
||||
textAlign: "left",
|
||||
offsetX: 8,
|
||||
offsetY: 3,
|
||||
placement: placement,
|
||||
maxAngle: 0,
|
||||
fill: new ol.style.Fill({
|
||||
color: labelFill
|
||||
}),
|
||||
stroke: bufferStyle
|
||||
});
|
||||
|
||||
return textStyle;
|
||||
};
|
||||
|
||||
function stripe(stripeWidth, gapWidth, angle, color) {
|
||||
var canvas = document.createElement('canvas');
|
||||
var context = canvas.getContext('2d');
|
||||
canvas.width = screen.width;
|
||||
canvas.height = stripeWidth + gapWidth;
|
||||
context.fillStyle = color;
|
||||
context.lineWidth = stripeWidth;
|
||||
context.fillRect(0, 0, canvas.width, stripeWidth);
|
||||
innerPattern = context.createPattern(canvas, 'repeat');
|
||||
|
||||
var outerCanvas = document.createElement('canvas');
|
||||
var outerContext = outerCanvas.getContext('2d');
|
||||
outerCanvas.width = screen.width;
|
||||
outerCanvas.height = screen.height;
|
||||
outerContext.rotate((Math.PI / 180) * angle);
|
||||
outerContext.translate(-(screen.width/2), -(screen.height/2));
|
||||
outerContext.fillStyle = innerPattern;
|
||||
outerContext.fillRect(0,0,screen.width,screen.height);
|
||||
|
||||
return outerContext.createPattern(outerCanvas, 'no-repeat');
|
||||
};
|
||||
@@ -0,0 +1 @@
|
||||
.sey-container{display:none;position:absolute;box-shadow:1px 2px 6px;background-color:#fff;color:#333;transition:left .1s ease-in-out;z-index:1}.sey-list{padding:0;margin:0;list-style-type:none}.sey-show{display:block}.sey-hide{display:none}.sey-empty{cursor:default;padding:7px}.sey-item{cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:7px}.sey-item:hover{background-color:#444;color:#fff}.sey-selected{background-color:#333;color:#fff}.sey-char-highlight{font-weight:700}.sey-category-id{background-color:#eee;color:#aaa;text-align:right;text-transform:capitalize;font-style:italic;font-size:12px;box-shadow:1px 0 1px;padding:7px}
|
||||
|
Depois Largura: | Altura: | Tamanho: 14 KiB |
@@ -0,0 +1,2 @@
|
||||
/*! nouislider - 14.0.2 - 6/28/2019 */
|
||||
.noUi-target,.noUi-target *{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-ms-touch-action:none;touch-action:none;-ms-user-select:none;-moz-user-select:none;user-select:none;-moz-box-sizing:border-box;box-sizing:border-box}.noUi-target{position:relative;direction:ltr}.noUi-base,.noUi-connects{width:100%;height:100%;position:relative;z-index:1}.noUi-connects{overflow:hidden;z-index:0}.noUi-connect,.noUi-origin{will-change:transform;position:absolute;z-index:1;top:0;left:0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;-webkit-transform-style:preserve-3d;transform-origin:0 0;transform-style:flat}.noUi-connect{height:100%;width:100%}.noUi-origin{height:10%;width:10%}html:not([dir=rtl]) .noUi-horizontal .noUi-origin{left:auto;right:0}.noUi-vertical .noUi-origin{width:0}.noUi-horizontal .noUi-origin{height:0}.noUi-handle{-webkit-backface-visibility:hidden;backface-visibility:hidden;position:absolute}.noUi-touch-area{height:100%;width:100%}.noUi-state-tap .noUi-connect,.noUi-state-tap .noUi-origin{-webkit-transition:transform .3s;transition:transform .3s}.noUi-state-drag *{cursor:inherit!important}.noUi-horizontal{height:18px}.noUi-horizontal .noUi-handle{width:34px;height:28px;left:-17px;top:-6px}.noUi-vertical{width:18px}.noUi-vertical .noUi-handle{width:28px;height:34px;left:-6px;top:-17px}html:not([dir=rtl]) .noUi-horizontal .noUi-handle{right:-17px;left:auto}.noUi-target{background:#FAFAFA;border-radius:4px;border:1px solid #D3D3D3;box-shadow:inset 0 1px 1px #F0F0F0,0 3px 6px -5px #BBB}.noUi-connects{border-radius:3px}.noUi-connect{background:#3FB8AF}.noUi-draggable{cursor:ew-resize}.noUi-vertical .noUi-draggable{cursor:ns-resize}.noUi-handle{border:1px solid #D9D9D9;border-radius:3px;background:#FFF;cursor:default;box-shadow:inset 0 0 1px #FFF,inset 0 1px 7px #EBEBEB,0 3px 6px -3px #BBB}.noUi-active{box-shadow:inset 0 0 1px #FFF,inset 0 1px 7px #DDD,0 3px 6px -3px #BBB}.noUi-handle:after,.noUi-handle:before{content:"";display:block;position:absolute;height:14px;width:1px;background:#E8E7E6;left:14px;top:6px}.noUi-handle:after{left:17px}.noUi-vertical .noUi-handle:after,.noUi-vertical .noUi-handle:before{width:14px;height:1px;left:6px;top:14px}.noUi-vertical .noUi-handle:after{top:17px}[disabled] .noUi-connect{background:#B8B8B8}[disabled] .noUi-handle,[disabled].noUi-handle,[disabled].noUi-target{cursor:not-allowed}.noUi-pips,.noUi-pips *{-moz-box-sizing:border-box;box-sizing:border-box}.noUi-pips{position:absolute;color:#999}.noUi-value{position:absolute;white-space:nowrap;text-align:center}.noUi-value-sub{color:#ccc;font-size:10px}.noUi-marker{position:absolute;background:#CCC}.noUi-marker-sub{background:#AAA}.noUi-marker-large{background:#AAA}.noUi-pips-horizontal{padding:10px 0;height:80px;top:100%;left:0;width:100%}.noUi-value-horizontal{-webkit-transform:translate(-50%,50%);transform:translate(-50%,50%)}.noUi-rtl .noUi-value-horizontal{-webkit-transform:translate(50%,50%);transform:translate(50%,50%)}.noUi-marker-horizontal.noUi-marker{margin-left:-1px;width:2px;height:5px}.noUi-marker-horizontal.noUi-marker-sub{height:10px}.noUi-marker-horizontal.noUi-marker-large{height:15px}.noUi-pips-vertical{padding:0 10px;height:100%;top:0;left:100%}.noUi-value-vertical{-webkit-transform:translate(0,-50%);transform:translate(0,-50%);padding-left:25px}.noUi-rtl .noUi-value-vertical{-webkit-transform:translate(0,50%);transform:translate(0,50%)}.noUi-marker-vertical.noUi-marker{width:5px;height:2px;margin-top:-1px}.noUi-marker-vertical.noUi-marker-sub{width:10px}.noUi-marker-vertical.noUi-marker-large{width:15px}.noUi-tooltip{display:block;position:absolute;border:1px solid #D9D9D9;border-radius:3px;background:#fff;color:#000;padding:5px;text-align:center;white-space:nowrap}.noUi-horizontal .noUi-tooltip{-webkit-transform:translate(-50%,0);transform:translate(-50%,0);left:50%;bottom:120%}.noUi-vertical .noUi-tooltip{-webkit-transform:translate(0,-50%);transform:translate(0,-50%);top:50%;right:120%}
|
||||
@@ -0,0 +1,123 @@
|
||||
.layer-switcher.shown.ol-control {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.layer-switcher.shown.ol-control:hover {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.layer-switcher {
|
||||
position: absolute;
|
||||
top: 3.5em;
|
||||
right: 0.5em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.layer-switcher.shown {
|
||||
bottom: 3em;
|
||||
}
|
||||
|
||||
.layer-switcher .panel {
|
||||
padding: 0 1em 0 0;
|
||||
margin: 0;
|
||||
border: 4px solid #eee;
|
||||
border-radius: 4px;
|
||||
background-color: white;
|
||||
display: none;
|
||||
max-height: 100%;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.layer-switcher.shown .panel {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.layer-switcher button {
|
||||
float: right;
|
||||
width: 38px;
|
||||
height: 38px;
|
||||
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAACE1BMVEX///8A//8AgICA//8AVVVAQID///8rVVVJtttgv98nTmJ2xNgkW1ttyNsmWWZmzNZYxM4gWGgeU2JmzNNr0N1Rwc0eU2VXxdEhV2JqytQeVmMhVmNoydUfVGUgVGQfVGQfVmVqy9hqy9dWw9AfVWRpydVry9YhVmMgVGNUw9BrytchVWRexdGw294gVWQgVmUhVWPd4N6HoaZsy9cfVmQgVGRrytZsy9cgVWQgVWMgVWRsy9YfVWNsy9YgVWVty9YgVWVry9UgVWRsy9Zsy9UfVWRsy9YgVWVty9YgVWRty9Vsy9aM09sgVWRTws/AzM0gVWRtzNYgVWRuy9Zsy9cgVWRGcHxty9bb5ORbxdEgVWRty9bn6OZTws9mydRfxtLX3Nva5eRix9NFcXxOd4JPeINQeIMiVmVUws9Vws9Vw9BXw9BYxNBaxNBbxNBcxdJexdElWWgmWmhjyNRlx9IqXGtoipNpytVqytVryNNrytZsjZUuX210k5t1y9R2zNR3y9V4lp57zth9zdaAnKOGoaeK0NiNpquV09mesrag1tuitbmj1tuj19uktrqr2d2svcCu2d2xwMO63N+7x8nA3uDC3uDFz9DK4eHL4eLN4eIyYnDX5OM5Z3Tb397e4uDf4uHf5uXi5ePi5+Xj5+Xk5+Xm5+Xm6OY6aHXQ19fT4+NfhI1Ww89gx9Nhx9Nsy9ZWw9Dpj2abAAAAWnRSTlMAAQICAwQEBgcIDQ0ODhQZGiAiIyYpKywvNTs+QklPUlNUWWJjaGt0dnd+hIWFh4mNjZCSm6CpsbW2t7nDzNDT1dje5efr7PHy9PT29/j4+Pn5+vr8/f39/f6DPtKwAAABTklEQVR4Xr3QVWPbMBSAUTVFZmZmhhSXMjNvkhwqMzMzMzPDeD+xASvObKePPa+ffHVl8PlsnE0+qPpBuQjVJjno6pZpSKXYl7/bZyFaQxhf98hHDKEppwdWIW1frFnrxSOWHFfWesSEWC6R/P4zOFrix3TzDFLlXRTR8c0fEEJ1/itpo7SVO9Jdr1DVxZ0USyjZsEY5vZfiiAC0UoTGOrm9PZLuRl8X+Dq1HQtoFbJZbv61i+Poblh/97TC7n0neCcK0ETNUrz1/xPHf+DNAW9Ac6t8O8WH3Vp98f5lCaYKAOFZMLyHL4Y0fe319idMNgMMp+zWVSybUed/+/h7I4wRAG1W6XDy4XmjR9HnzvDRZXUAYDFOhC1S/Hh+fIXxen+eO+AKqbs+wAo30zDTDvDxKoJN88sjUzDFAvBzEUGFsnADoIvAJzoh2BZ8sner+Ke/vwECuQAAAABJRU5ErkJggg==') /*logo.png*/;
|
||||
background-repeat: no-repeat;
|
||||
background-position: 2px;
|
||||
background-color: white;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.layer-switcher.shown button {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.layer-switcher button:focus, .layer-switcher button:hover {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
.layer-switcher ul {
|
||||
padding-left: 2em;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.layer-switcher li.group > label {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.layer-switcher li.layer {
|
||||
display: table;
|
||||
}
|
||||
|
||||
.layer-switcher li.layer label, .layer-switcher li.layer input {
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.layer-switcher label.disabled {
|
||||
opacity:0.4;
|
||||
}
|
||||
|
||||
.layer-switcher input {
|
||||
margin: 4px;
|
||||
}
|
||||
|
||||
.layer-switcher.touch ::-webkit-scrollbar {
|
||||
width: 4px;
|
||||
}
|
||||
|
||||
.layer-switcher.touch ::-webkit-scrollbar-track {
|
||||
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.layer-switcher.touch ::-webkit-scrollbar-thumb {
|
||||
border-radius: 10px;
|
||||
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5);
|
||||
}
|
||||
|
||||
.layer-switcher .group button {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
float: none;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background-position: center 2px;
|
||||
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAW0lEQVR4nGNgGAWMyBwXFxcGBgaGeii3EU0tXHzPnj1wQRYsihqQ+I0ExDEMQAYNONgoAN0AmMkNaDSyQSheY8JiaCMOGzE04zIAmyFYNTMw4A+DRhzsUUBtAADw4BCeIZkGdwAAAABJRU5ErkJggg==');
|
||||
-webkit-transition: -webkit-transform .2s ease-in-out;
|
||||
-ms-transition: -ms-transform .2s ease-in-out;
|
||||
transition: transform .2s ease-in-out;
|
||||
}
|
||||
|
||||
.layer-switcher .group.layer-switcher-close button {
|
||||
transform: rotate(-90deg);
|
||||
-webkit-transform: rotate(-90deg);
|
||||
}
|
||||
|
||||
li.group.layer-switcher-fold {
|
||||
margin-left: -18px;
|
||||
}
|
||||
|
||||
.layer-switcher .group.layer-switcher-fold > ul {
|
||||
padding-left: 3em;
|
||||
}
|
||||
|
||||
.layer-switcher .group.layer-switcher-fold.layer-switcher-close > ul {
|
||||
overflow: hidden;
|
||||
height: 0;
|
||||
}
|
||||
@@ -0,0 +1,624 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('ol/control/Control'), require('ol/Observable')) :
|
||||
typeof define === 'function' && define.amd ? define(['ol/control/Control', 'ol/Observable'], factory) :
|
||||
(global.LayerSwitcher = factory(global.ol.control.Control,global.ol.Observable));
|
||||
}(this, (function (Control,ol_Observable) { 'use strict';
|
||||
|
||||
Control = 'default' in Control ? Control['default'] : Control;
|
||||
|
||||
var classCallCheck = function (instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
};
|
||||
|
||||
var createClass = function () {
|
||||
function defineProperties(target, props) {
|
||||
for (var i = 0; i < props.length; i++) {
|
||||
var descriptor = props[i];
|
||||
descriptor.enumerable = descriptor.enumerable || false;
|
||||
descriptor.configurable = true;
|
||||
if ("value" in descriptor) descriptor.writable = true;
|
||||
Object.defineProperty(target, descriptor.key, descriptor);
|
||||
}
|
||||
}
|
||||
|
||||
return function (Constructor, protoProps, staticProps) {
|
||||
if (protoProps) defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) defineProperties(Constructor, staticProps);
|
||||
return Constructor;
|
||||
};
|
||||
}();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var get = function get(object, property, receiver) {
|
||||
if (object === null) object = Function.prototype;
|
||||
var desc = Object.getOwnPropertyDescriptor(object, property);
|
||||
|
||||
if (desc === undefined) {
|
||||
var parent = Object.getPrototypeOf(object);
|
||||
|
||||
if (parent === null) {
|
||||
return undefined;
|
||||
} else {
|
||||
return get(parent, property, receiver);
|
||||
}
|
||||
} else if ("value" in desc) {
|
||||
return desc.value;
|
||||
} else {
|
||||
var getter = desc.get;
|
||||
|
||||
if (getter === undefined) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return getter.call(receiver);
|
||||
}
|
||||
};
|
||||
|
||||
var inherits = function (subClass, superClass) {
|
||||
if (typeof superClass !== "function" && superClass !== null) {
|
||||
throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
|
||||
}
|
||||
|
||||
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
||||
constructor: {
|
||||
value: subClass,
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
}
|
||||
});
|
||||
if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var possibleConstructorReturn = function (self, call) {
|
||||
if (!self) {
|
||||
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
||||
}
|
||||
|
||||
return call && (typeof call === "object" || typeof call === "function") ? call : self;
|
||||
};
|
||||
|
||||
var CSS_PREFIX = 'layer-switcher-';
|
||||
|
||||
/**
|
||||
* OpenLayers Layer Switcher Control.
|
||||
* See [the examples](./examples) for usage.
|
||||
* @constructor
|
||||
* @extends {ol/control/Control~Control}
|
||||
* @param {Object} opt_options Control options, extends ol/control/Control~Control#options adding:
|
||||
* @param {String} opt_options.tipLabel the button tooltip.
|
||||
* @param {String} opt_options.groupSelectStyle either `'none'` - groups don't get a checkbox,
|
||||
* `'children'` (default) groups have a checkbox and affect child visibility or
|
||||
* `'group'` groups have a checkbox but do not alter child visibility (like QGIS).
|
||||
*/
|
||||
|
||||
var LayerSwitcher = function (_Control) {
|
||||
inherits(LayerSwitcher, _Control);
|
||||
|
||||
function LayerSwitcher(opt_options) {
|
||||
classCallCheck(this, LayerSwitcher);
|
||||
|
||||
|
||||
var options = opt_options || {};
|
||||
|
||||
var tipLabel = options.tipLabel ? options.tipLabel : 'Legend';
|
||||
|
||||
var element = document.createElement('div');
|
||||
|
||||
var _this = possibleConstructorReturn(this, (LayerSwitcher.__proto__ || Object.getPrototypeOf(LayerSwitcher)).call(this, { element: element, target: options.target }));
|
||||
|
||||
_this.groupSelectStyle = LayerSwitcher.getGroupSelectStyle(options.groupSelectStyle);
|
||||
|
||||
_this.mapListeners = [];
|
||||
|
||||
_this.hiddenClassName = 'ol-unselectable ol-control layer-switcher';
|
||||
if (LayerSwitcher.isTouchDevice_()) {
|
||||
_this.hiddenClassName += ' touch';
|
||||
}
|
||||
_this.shownClassName = 'shown';
|
||||
|
||||
element.className = _this.hiddenClassName;
|
||||
|
||||
var button = document.createElement('button');
|
||||
button.setAttribute('title', tipLabel);
|
||||
element.appendChild(button);
|
||||
|
||||
_this.panel = document.createElement('div');
|
||||
_this.panel.className = 'panel';
|
||||
element.appendChild(_this.panel);
|
||||
LayerSwitcher.enableTouchScroll_(_this.panel);
|
||||
|
||||
var this_ = _this;
|
||||
|
||||
button.onmouseover = function (e) {
|
||||
this_.showPanel();
|
||||
};
|
||||
|
||||
button.onclick = function (e) {
|
||||
e = e || window.event;
|
||||
this_.showPanel();
|
||||
e.preventDefault();
|
||||
};
|
||||
|
||||
this_.panel.onmouseout = function (e) {
|
||||
e = e || window.event;
|
||||
if (!this_.panel.contains(e.toElement || e.relatedTarget)) {
|
||||
this_.hidePanel();
|
||||
}
|
||||
};
|
||||
|
||||
return _this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the map instance the control is associated with.
|
||||
* @param {ol/Map~Map} map The map instance.
|
||||
*/
|
||||
|
||||
|
||||
createClass(LayerSwitcher, [{
|
||||
key: 'setMap',
|
||||
value: function setMap(map) {
|
||||
// Clean up listeners associated with the previous map
|
||||
for (var i = 0, key; i < this.mapListeners.length; i++) {
|
||||
ol_Observable.unByKey(this.mapListeners[i]);
|
||||
}
|
||||
this.mapListeners.length = 0;
|
||||
// Wire up listeners etc. and store reference to new map
|
||||
get(LayerSwitcher.prototype.__proto__ || Object.getPrototypeOf(LayerSwitcher.prototype), 'setMap', this).call(this, map);
|
||||
if (map) {
|
||||
var this_ = this;
|
||||
this.mapListeners.push(map.on('pointerdown', function () {
|
||||
this_.hidePanel();
|
||||
}));
|
||||
this.renderPanel();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the layer panel.
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'showPanel',
|
||||
value: function showPanel() {
|
||||
if (!this.element.classList.contains(this.shownClassName)) {
|
||||
this.element.classList.add(this.shownClassName);
|
||||
this.renderPanel();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Hide the layer panel.
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'hidePanel',
|
||||
value: function hidePanel() {
|
||||
if (this.element.classList.contains(this.shownClassName)) {
|
||||
this.element.classList.remove(this.shownClassName);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Re-draw the layer panel to represent the current state of the layers.
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'renderPanel',
|
||||
value: function renderPanel() {
|
||||
this.dispatchEvent({ type: 'render' });
|
||||
LayerSwitcher.renderPanel(this.getMap(), this.panel, { groupSelectStyle: this.groupSelectStyle });
|
||||
this.dispatchEvent({ type: 'rendercomplete' });
|
||||
}
|
||||
|
||||
/**
|
||||
* **Static** Re-draw the layer panel to represent the current state of the layers.
|
||||
* @param {ol/Map~Map} map The OpenLayers Map instance to render layers for
|
||||
* @param {Element} panel The DOM Element into which the layer tree will be rendered
|
||||
*/
|
||||
|
||||
}], [{
|
||||
key: 'renderPanel',
|
||||
value: function renderPanel(map, panel, options) {
|
||||
// Create the event.
|
||||
var render_event = new Event('render');
|
||||
// Dispatch the event.
|
||||
panel.dispatchEvent(render_event);
|
||||
|
||||
options = options || {};
|
||||
|
||||
options.groupSelectStyle = LayerSwitcher.getGroupSelectStyle(options.groupSelectStyle);
|
||||
|
||||
LayerSwitcher.ensureTopVisibleBaseLayerShown_(map);
|
||||
|
||||
while (panel.firstChild) {
|
||||
panel.removeChild(panel.firstChild);
|
||||
}
|
||||
|
||||
// Reset indeterminate state for all layers and groups before
|
||||
// applying based on groupSelectStyle
|
||||
LayerSwitcher.forEachRecursive(map, function (l, idx, a) {
|
||||
l.set('indeterminate', false);
|
||||
});
|
||||
|
||||
if (options.groupSelectStyle === 'children' || options.groupSelectStyle === 'none') {
|
||||
// Set visibile and indeterminate state of groups based on
|
||||
// their children's visibility
|
||||
LayerSwitcher.setGroupVisibility(map);
|
||||
} else if (options.groupSelectStyle === 'group') {
|
||||
// Set child indetermiate state based on their parent's visibility
|
||||
LayerSwitcher.setChildVisibility(map);
|
||||
}
|
||||
|
||||
var ul = document.createElement('ul');
|
||||
panel.appendChild(ul);
|
||||
// passing two map arguments instead of lyr as we're passing the map as the root of the layers tree
|
||||
LayerSwitcher.renderLayers_(map, map, ul, options, function render(changedLyr) {
|
||||
// console.log('render');
|
||||
LayerSwitcher.renderPanel(map, panel, options);
|
||||
});
|
||||
|
||||
// Create the event.
|
||||
var rendercomplete_event = new Event('rendercomplete');
|
||||
// Dispatch the event.
|
||||
panel.dispatchEvent(rendercomplete_event);
|
||||
}
|
||||
}, {
|
||||
key: 'isBaseGroup',
|
||||
value: function isBaseGroup(lyr) {
|
||||
var lyrs = lyr.getLayers ? lyr.getLayers().getArray() : [];
|
||||
return lyrs.length && lyrs[0].get('type') === 'base';
|
||||
}
|
||||
}, {
|
||||
key: 'setGroupVisibility',
|
||||
value: function setGroupVisibility(map) {
|
||||
// Get a list of groups, with the deepest first
|
||||
var groups = LayerSwitcher.getGroupsAndLayers(map, function (l) {
|
||||
return l.getLayers && !l.get('combine') && !LayerSwitcher.isBaseGroup(l);
|
||||
}).reverse();
|
||||
// console.log(groups.map(g => g.get('title')));
|
||||
groups.forEach(function (group) {
|
||||
// TODO Can we use getLayersArray, is it public in the esm build?
|
||||
var descendantVisibility = group.getLayersArray().map(function (l) {
|
||||
var state = l.getVisible();
|
||||
// console.log('>', l.get('title'), state);
|
||||
return state;
|
||||
});
|
||||
// console.log(descendantVisibility);
|
||||
if (descendantVisibility.every(function (v) {
|
||||
return v === true;
|
||||
})) {
|
||||
group.setVisible(true);
|
||||
group.set('indeterminate', false);
|
||||
} else if (descendantVisibility.every(function (v) {
|
||||
return v === false;
|
||||
})) {
|
||||
group.setVisible(false);
|
||||
group.set('indeterminate', false);
|
||||
} else {
|
||||
group.setVisible(true);
|
||||
group.set('indeterminate', true);
|
||||
}
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: 'setChildVisibility',
|
||||
value: function setChildVisibility(map) {
|
||||
// console.log('setChildVisibility');
|
||||
var groups = LayerSwitcher.getGroupsAndLayers(map, function (l) {
|
||||
return l.getLayers && !l.get('combine') && !LayerSwitcher.isBaseGroup(l);
|
||||
});
|
||||
groups.forEach(function (group) {
|
||||
// console.log(group.get('title'));
|
||||
var groupVisible = group.getVisible();
|
||||
var groupIndeterminate = group.get('indeterminate');
|
||||
group.getLayers().getArray().forEach(function (l) {
|
||||
// console.log('>', l.get('title'));
|
||||
l.set('indeterminate', false);
|
||||
if ((!groupVisible || groupIndeterminate) && l.getVisible()) {
|
||||
l.set('indeterminate', true);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* **Static** Ensure only the top-most base layer is visible if more than one is visible.
|
||||
* @param {ol/Map~Map} map The map instance.
|
||||
* @private
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'ensureTopVisibleBaseLayerShown_',
|
||||
value: function ensureTopVisibleBaseLayerShown_(map) {
|
||||
var lastVisibleBaseLyr;
|
||||
LayerSwitcher.forEachRecursive(map, function (l, idx, a) {
|
||||
if (l.get('type') === 'base' && l.getVisible()) {
|
||||
lastVisibleBaseLyr = l;
|
||||
}
|
||||
});
|
||||
if (lastVisibleBaseLyr) LayerSwitcher.setVisible_(map, lastVisibleBaseLyr, true);
|
||||
}
|
||||
}, {
|
||||
key: 'getGroupsAndLayers',
|
||||
value: function getGroupsAndLayers(lyr, filterFn) {
|
||||
var layers = [];
|
||||
filterFn = filterFn || function (l, idx, a) {
|
||||
return true;
|
||||
};
|
||||
LayerSwitcher.forEachRecursive(lyr, function (l, idx, a) {
|
||||
if (l.get('title')) {
|
||||
if (filterFn(l, idx, a)) {
|
||||
layers.push(l);
|
||||
}
|
||||
}
|
||||
});
|
||||
return layers;
|
||||
}
|
||||
|
||||
/**
|
||||
* **Static** Toggle the visible state of a layer.
|
||||
* Takes care of hiding other layers in the same exclusive group if the layer
|
||||
* is toggle to visible.
|
||||
* @private
|
||||
* @param {ol/Map~Map} map The map instance.
|
||||
* @param {ol/layer/Base~BaseLayer} The layer whose visibility will be toggled.
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'setVisible_',
|
||||
value: function setVisible_(map, lyr, visible, groupSelectStyle) {
|
||||
// console.log(lyr.get('title'), visible, groupSelectStyle);
|
||||
lyr.setVisible(visible);
|
||||
if (visible && lyr.get('type') === 'base') {
|
||||
// Hide all other base layers regardless of grouping
|
||||
LayerSwitcher.forEachRecursive(map, function (l, idx, a) {
|
||||
if (l != lyr && l.get('type') === 'base') {
|
||||
l.setVisible(false);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (lyr.getLayers && !lyr.get('combine') && groupSelectStyle === 'children') {
|
||||
lyr.getLayers().forEach(function (l) {
|
||||
LayerSwitcher.setVisible_(map, l, lyr.getVisible(), groupSelectStyle);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* **Static** Render all layers that are children of a group.
|
||||
* @private
|
||||
* @param {ol/Map~Map} map The map instance.
|
||||
* @param {ol/layer/Base~BaseLayer} lyr Layer to be rendered (should have a title property).
|
||||
* @param {Number} idx Position in parent group list.
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'renderLayer_',
|
||||
value: function renderLayer_(map, lyr, idx, options, render) {
|
||||
|
||||
var li = document.createElement('li');
|
||||
|
||||
var lyrTitle = lyr.get('title');
|
||||
|
||||
var checkboxId = LayerSwitcher.uuid();
|
||||
|
||||
var label = document.createElement('label');
|
||||
|
||||
if (lyr.getLayers && !lyr.get('combine')) {
|
||||
|
||||
var isBaseGroup = LayerSwitcher.isBaseGroup(lyr);
|
||||
|
||||
li.classList.add('group');
|
||||
if (isBaseGroup) {
|
||||
li.classList.add(CSS_PREFIX + 'base-group');
|
||||
}
|
||||
|
||||
// Group folding
|
||||
if (lyr.get('fold')) {
|
||||
li.classList.add(CSS_PREFIX + 'fold');
|
||||
li.classList.add(CSS_PREFIX + lyr.get('fold'));
|
||||
var btn = document.createElement('button');
|
||||
btn.onclick = function (e) {
|
||||
LayerSwitcher.toggleFold_(lyr, li);
|
||||
};
|
||||
li.appendChild(btn);
|
||||
}
|
||||
|
||||
if (!isBaseGroup && options.groupSelectStyle != 'none') {
|
||||
var _input = document.createElement('input');
|
||||
_input.type = 'checkbox';
|
||||
_input.id = checkboxId;
|
||||
_input.checked = lyr.getVisible();
|
||||
_input.indeterminate = lyr.get('indeterminate');
|
||||
_input.onchange = function (e) {
|
||||
LayerSwitcher.setVisible_(map, lyr, e.target.checked, options.groupSelectStyle);
|
||||
render(lyr);
|
||||
};
|
||||
li.appendChild(_input);
|
||||
label.htmlFor = checkboxId;
|
||||
}
|
||||
|
||||
label.innerHTML = lyrTitle;
|
||||
li.appendChild(label);
|
||||
var ul = document.createElement('ul');
|
||||
li.appendChild(ul);
|
||||
|
||||
LayerSwitcher.renderLayers_(map, lyr, ul, options, render);
|
||||
} else {
|
||||
|
||||
li.className = 'layer';
|
||||
var input = document.createElement('input');
|
||||
if (lyr.get('type') === 'base') {
|
||||
input.type = 'radio';
|
||||
input.name = 'base';
|
||||
} else {
|
||||
input.type = 'checkbox';
|
||||
}
|
||||
input.id = checkboxId;
|
||||
input.checked = lyr.get('visible');
|
||||
input.indeterminate = lyr.get('indeterminate');
|
||||
input.onchange = function (e) {
|
||||
LayerSwitcher.setVisible_(map, lyr, e.target.checked, options.groupSelectStyle);
|
||||
render(lyr);
|
||||
};
|
||||
li.appendChild(input);
|
||||
|
||||
label.htmlFor = checkboxId;
|
||||
label.innerHTML = lyrTitle;
|
||||
|
||||
var rsl = map.getView().getResolution();
|
||||
if (rsl > lyr.getMaxResolution() || rsl < lyr.getMinResolution()) {
|
||||
label.className += ' disabled';
|
||||
}
|
||||
|
||||
li.appendChild(label);
|
||||
}
|
||||
|
||||
return li;
|
||||
}
|
||||
|
||||
/**
|
||||
* **Static** Render all layers that are children of a group.
|
||||
* @private
|
||||
* @param {ol/Map~Map} map The map instance.
|
||||
* @param {ol/layer/Group~LayerGroup} lyr Group layer whose children will be rendered.
|
||||
* @param {Element} elm DOM element that children will be appended to.
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'renderLayers_',
|
||||
value: function renderLayers_(map, lyr, elm, options, render) {
|
||||
var lyrs = lyr.getLayers().getArray().slice().reverse();
|
||||
for (var i = 0, l; i < lyrs.length; i++) {
|
||||
l = lyrs[i];
|
||||
if (l.get('title')) {
|
||||
elm.appendChild(LayerSwitcher.renderLayer_(map, l, i, options, render));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* **Static** Call the supplied function for each layer in the passed layer group
|
||||
* recursing nested groups.
|
||||
* @param {ol/layer/Group~LayerGroup} lyr The layer group to start iterating from.
|
||||
* @param {Function} fn Callback which will be called for each `ol/layer/Base~BaseLayer`
|
||||
* found under `lyr`. The signature for `fn` is the same as `ol/Collection~Collection#forEach`
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'forEachRecursive',
|
||||
value: function forEachRecursive(lyr, fn) {
|
||||
lyr.getLayers().forEach(function (lyr, idx, a) {
|
||||
fn(lyr, idx, a);
|
||||
if (lyr.getLayers) {
|
||||
LayerSwitcher.forEachRecursive(lyr, fn);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* **Static** Generate a UUID
|
||||
* Adapted from http://stackoverflow.com/a/2117523/526860
|
||||
* @returns {String} UUID
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'uuid',
|
||||
value: function uuid() {
|
||||
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
||||
var r = Math.random() * 16 | 0,
|
||||
v = c == 'x' ? r : r & 0x3 | 0x8;
|
||||
return v.toString(16);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @desc Apply workaround to enable scrolling of overflowing content within an
|
||||
* element. Adapted from https://gist.github.com/chrismbarr/4107472
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'enableTouchScroll_',
|
||||
value: function enableTouchScroll_(elm) {
|
||||
if (LayerSwitcher.isTouchDevice_()) {
|
||||
var scrollStartPos = 0;
|
||||
elm.addEventListener("touchstart", function (event) {
|
||||
scrollStartPos = this.scrollTop + event.touches[0].pageY;
|
||||
}, false);
|
||||
elm.addEventListener("touchmove", function (event) {
|
||||
this.scrollTop = scrollStartPos - event.touches[0].pageY;
|
||||
}, false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @desc Determine if the current browser supports touch events. Adapted from
|
||||
* https://gist.github.com/chrismbarr/4107472
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'isTouchDevice_',
|
||||
value: function isTouchDevice_() {
|
||||
try {
|
||||
document.createEvent("TouchEvent");
|
||||
return true;
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fold/unfold layer group
|
||||
* @private
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'toggleFold_',
|
||||
value: function toggleFold_(lyr, li) {
|
||||
li.classList.remove(CSS_PREFIX + lyr.get('fold'));
|
||||
lyr.set('fold', lyr.get('fold') === 'open' ? 'close' : 'open');
|
||||
li.classList.add(CSS_PREFIX + lyr.get('fold'));
|
||||
}
|
||||
|
||||
/**
|
||||
* If a valid groupSelectStyle value is not provided then return the default
|
||||
* @private
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'getGroupSelectStyle',
|
||||
value: function getGroupSelectStyle(groupSelectStyle) {
|
||||
return ['none', 'children', 'group'].indexOf(groupSelectStyle) >= 0 ? groupSelectStyle : 'children';
|
||||
}
|
||||
}]);
|
||||
return LayerSwitcher;
|
||||
}(Control);
|
||||
|
||||
if (window.ol && window.ol.control) {
|
||||
window.ol.control.LayerSwitcher = LayerSwitcher;
|
||||
}
|
||||
|
||||
return LayerSwitcher;
|
||||
|
||||
})));
|
||||
@@ -0,0 +1,2 @@
|
||||
.ol-box{box-sizing:border-box;border-radius:2px;border:2px solid #00f}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:rgba(0,60,136,.3);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid #eee;border-top:none;color:#eee;font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-step-marker{width:1px;height:15px;background-color:#000;float:right;z-Index:10}.ol-scale-step-text{position:absolute;bottom:-5px;font-size:12px;z-Index:11;color:#000;text-shadow:-2px 0 #fff,0 2px #fff,2px 0 #fff,0 -2px #fff}.ol-scale-text{position:absolute;font-size:14px;text-align:center;bottom:25px;color:#000;text-shadow:-2px 0 #fff,0 2px #fff,2px 0 #fff,0 -2px #fff}.ol-scale-singlebar{position:relative;height:10px;z-Index:9;border:1px solid #000}.ol-unsupported{display:none}.ol-unselectable,.ol-viewport{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-overlaycontainer,.ol-overlaycontainer-stopevent{pointer-events:none}.ol-overlaycontainer-stopevent>*,.ol-overlaycontainer>*{pointer-events:auto}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:rgba(255,255,255,.4);border-radius:4px;padding:2px}.ol-control:hover{background-color:rgba(255,255,255,.6)}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:#fff;font-size:1.14em;font-weight:700;text-decoration:none;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:rgba(0,60,136,.5);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-control button span{pointer-events:none}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;font-size:1.2em;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;background-color:rgba(0,60,136,.7)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em)}.ol-attribution ul{margin:0;padding:0 .5em;color:#000;text-shadow:0 0 2px #fff}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button,.ol-attribution ul{display:inline-block}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:rgba(255,255,255,.8)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:inline-block}.ol-overviewmap .ol-overviewmap-map{border:1px solid #7b98bc;height:150px;margin:2px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:1px;left:2px;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:rgba(255,255,255,.8)}.ol-overviewmap-box{border:2px dotted rgba(0,60,136,.7)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}
|
||||
/*# sourceMappingURL=ol.css.map */
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["src/ol/ol.css"],"names":[],"mappings":"AAAA,QACE,WAAY,WACZ,cAAe,IACf,OAAQ,IAAI,MAAM,KAGpB,mBACE,IAAK,IACL,MAAO,IACP,SAAU,SAGZ,eACE,WAAY,kBACZ,cAAe,IACf,OAAQ,IACR,KAAM,IACN,QAAS,IACT,SAAU,SAEZ,qBACE,OAAQ,IAAI,MAAM,KAClB,WAAY,KACZ,MAAO,KACP,UAAW,KACX,WAAY,OACZ,OAAQ,IACR,YAAa,QAAQ,CAAE,MACvB,WAAY,IAAI,KAElB,cACE,SAAU,SACV,OAAQ,IACR,KAAM,IAER,sBACE,MAAO,IACP,OAAQ,KACR,iBAAkB,KAClB,MAAO,MACP,QAAS,GAEX,oBACE,SAAU,SACV,OAAQ,KACR,UAAW,KACX,QAAS,GACT,MAAO,KACP,YAAa,KAAK,EAAE,IAAO,CAAE,EAAE,IAAI,IAAO,CAAE,IAAI,EAAE,IAAO,CAAE,EAAE,KAAK,KAEpE,eACE,SAAU,SACV,UAAW,KACX,WAAY,OACZ,OAAQ,KACR,MAAO,KACP,YAAa,KAAK,EAAE,IAAO,CAAE,EAAE,IAAI,IAAO,CAAE,IAAI,EAAE,IAAO,CAAE,EAAE,KAAK,KAEpE,oBACE,SAAU,SACV,OAAQ,KACR,QAAS,EACT,OAAQ,IAAI,MAAM,KAGpB,gBACE,QAAS,KAEG,iBAAd,aACE,sBAAuB,KACvB,oBAAqB,KACrB,iBAAkB,KAClB,gBAAiB,KACjB,YAAa,KACb,4BAA6B,YAE/B,qBAAsB,+BACpB,eAAgB,KAEQ,iCAA1B,uBACE,eAAgB,KAElB,eACE,sBAAuB,QACvB,oBAAqB,KACrB,iBAAkB,KAClB,gBAAiB,KACjB,YAAa,KAEf,aACE,OAAQ,iBACR,OAAQ,cACR,OAAQ,SAEV,SACE,OAAQ,KACR,OAAQ,aACR,OAAQ,UACR,OAAQ,KAEV,YACE,SAAU,SACV,iBAAkB,qBAClB,cAAe,IACf,QAAS,IAEX,kBACE,iBAAkB,qBAEpB,SACE,IAAK,KACL,KAAM,KAER,WACE,IAAK,KACL,MAAO,KACP,WAAY,QAAQ,KAAK,MAAM,CAAE,WAAW,GAAG,OAEjD,qBACE,QAAS,EACT,WAAY,OACZ,WAAY,QAAQ,KAAK,MAAM,CAAE,WAAW,GAAG,OAAO,KAExD,gBACE,IAAK,QACL,KAAM,KAER,gBACE,MAAO,KACP,IAAK,KAGP,mBACE,QAAS,MACT,OAAQ,IACR,QAAS,EACT,MAAO,KACP,UAAW,OACX,YAAa,IACb,gBAAiB,KACjB,WAAY,OACZ,OAAQ,QACR,MAAO,QACP,YAAa,KACb,iBAAkB,kBAClB,OAAQ,KACR,cAAe,IAEjB,qCACE,OAAQ,KACR,QAAS,EAEX,wBACE,eAAgB,KAElB,uBACE,YAAa,MAEf,YACE,QAAS,MACT,YAAa,IACb,UAAW,MACX,YAAa,UAEf,6BACE,UAAW,MAEb,0BACE,IAAK,MAGP,yBADA,yBAEE,gBAAiB,KACjB,iBAAkB,kBAEpB,qBACE,cAAe,IAAI,IAAI,EAAE,EAE3B,sBACE,cAAe,EAAE,EAAE,IAAI,IAIzB,gBACE,WAAY,MACZ,OAAQ,KACR,MAAO,KACP,UAAW,mBAGb,mBACE,OAAQ,EACR,QAAS,EAAE,KACX,MAAO,KACP,YAAa,EAAE,EAAE,IAAI,KAEvB,mBACE,QAAS,OACT,WAAY,KAEd,0CACE,QAAS,IAEX,oBACE,WAAY,IACZ,UAAW,QACX,eAAgB,OAEE,uBAApB,mBACE,QAAS,aAEX,gCACE,QAAS,KAEX,mCACE,WAAY,qBAEd,iCACE,OAAQ,EACR,MAAO,EACP,cAAe,IAAI,EAAE,EAEvB,qCACE,WAAY,MACZ,WAAY,MAEd,wCACE,QAAS,KAGX,eACE,IAAK,MACL,KAAM,KACN,OAAQ,MAEV,sBACE,SAAU,SACV,OAAQ,KAGV,yBACE,IAAK,MAGP,gBACE,KAAM,KACN,OAAQ,KAEV,iCACE,OAAQ,EACR,KAAM,EACN,cAAe,EAAE,IAAI,EAAE,EAEzB,oCACA,uBACE,QAAS,aAEX,oCACE,OAAQ,IAAI,MAAM,QAClB,OAAQ,MACR,OAAQ,IACR,MAAO,MAET,0CACE,OAAQ,IACR,KAAM,IACN,SAAU,SAEZ,iDACA,wCACE,QAAS,KAEX,mCACE,WAAY,qBAEd,oBACE,OAAQ,IAAI,OAAO,kBAGrB,0CACE,OAAQ"}
|
||||
@@ -0,0 +1,152 @@
|
||||
function hasClass(el, cls) {
|
||||
return el.className && new RegExp('(\\s|^)' +
|
||||
cls + '(\\s|$)').test(el.className);
|
||||
}
|
||||
|
||||
function addClass(elem, className) {
|
||||
if (!hasClass(elem, className)) {
|
||||
elem.className += ' ' + className;
|
||||
}
|
||||
}
|
||||
|
||||
function removeClass(elem, className) {
|
||||
var newClass = ' ' + elem.className.replace(/[\t\r\n]/g, ' ') + ' ';
|
||||
if (hasClass(elem, className)) {
|
||||
while (newClass.indexOf(' ' + className + ' ') >= 0) {
|
||||
newClass = newClass.replace(' ' + className + ' ', ' ');
|
||||
}
|
||||
elem.className = newClass.replace(/^\s+|\s+$/g, '');
|
||||
}
|
||||
}
|
||||
|
||||
var SearchLayer = (function (Control) {
|
||||
function SearchLayer(optOptions) {
|
||||
var horseyComponent;
|
||||
var select;
|
||||
var options = optOptions || {};
|
||||
if (optOptions.layer) {
|
||||
options.layer = optOptions.layer;
|
||||
} else {
|
||||
throw new Error('error');
|
||||
}
|
||||
options.map = optOptions.map;
|
||||
|
||||
var source;
|
||||
if (options.layer instanceof ol.layer.Image &&
|
||||
options.layer.getSource() instanceof ol.source.ImageVector) {
|
||||
source = options.layer.getSource().getSource();
|
||||
} else if (options.layer instanceof ol.layer.Vector) {
|
||||
source = options.layer.getSource();
|
||||
}
|
||||
options.colName = optOptions.colName;
|
||||
|
||||
var button = document.createElement('button');
|
||||
var toogleHideShowInput = function() {
|
||||
var input = document.querySelector('form > .search-layer-input-search');
|
||||
if (hasClass(input, 'search-layer-collapsed')) {
|
||||
removeClass(input, 'search-layer-collapsed');
|
||||
} else {
|
||||
input.value = '';
|
||||
addClass(input, 'search-layer-collapsed');
|
||||
horseyComponent.hide();
|
||||
select.getFeatures().clear();
|
||||
}
|
||||
};
|
||||
|
||||
button.addEventListener('click', toogleHideShowInput, false);
|
||||
button.addEventListener('touchstart', toogleHideShowInput, false);
|
||||
|
||||
var form = document.createElement('form');
|
||||
form.setAttribute('id', 'random');
|
||||
form.onsubmit = undefined;
|
||||
// form.setAttribute('action', 'javascript:void(0);');
|
||||
|
||||
var input = document.createElement('input');
|
||||
input.setAttribute('id', 'ol-search-input');
|
||||
var defaultInputClass = ['search-layer-input-search'];
|
||||
if (optOptions.collapsed) {
|
||||
defaultInputClass.push('search-layer-collapsed');
|
||||
}
|
||||
input.setAttribute('class', defaultInputClass.join(' '));
|
||||
input.setAttribute('placeholder', 'Search ...');
|
||||
input.setAttribute('type', 'text');
|
||||
|
||||
form.appendChild(input);
|
||||
|
||||
var element = document.createElement('div');
|
||||
element.className = 'search-layer ol-unselectable ol-control';
|
||||
|
||||
element.appendChild(button);
|
||||
element.appendChild(form);
|
||||
|
||||
ol.control.Control.call(this, {
|
||||
element: element,
|
||||
target: options.target
|
||||
});
|
||||
|
||||
select = new ol.interaction.Select({
|
||||
id: options.selectId || 'defaultSearchLayer',
|
||||
layers: [options.layer],
|
||||
condition: ol.events.condition.never
|
||||
});
|
||||
|
||||
var map = options.map;
|
||||
|
||||
map.addInteraction(select);
|
||||
|
||||
var typesToZoomToExtent = [
|
||||
'MultiPoint',
|
||||
'LineString',
|
||||
'MultiLineString',
|
||||
'MultiPolygon',
|
||||
'Polygon'
|
||||
];
|
||||
|
||||
var typesToZoomToCenterAndZoom = [
|
||||
'Point'
|
||||
];
|
||||
var returnHorsey = function(input, source, map, select, options) {
|
||||
horsey(input, {
|
||||
source: [{
|
||||
list: source.getFeatures().map(function(el, i) {
|
||||
if (el.getId() === undefined) {
|
||||
el.setId(i);
|
||||
}
|
||||
return {
|
||||
text: el.get(options.colName),
|
||||
value: el.getId() // If GeoJSON has an id
|
||||
};
|
||||
})
|
||||
}],
|
||||
getText: 'text',
|
||||
getValue: 'value',
|
||||
predictNextSearch: function(info) {
|
||||
var feat = source.getFeatureById(info.selection.value);
|
||||
var featType = feat.getGeometry().getType();
|
||||
if (typesToZoomToCenterAndZoom.indexOf(featType) !== -1) {
|
||||
var newCenter = ol.extent.getCenter(feat.getGeometry().getExtent());
|
||||
map.getView().setCenter(newCenter);
|
||||
map.getView().setZoom(options.zoom || 12);
|
||||
} else if (typesToZoomToExtent.indexOf(featType) !== -1) {
|
||||
map.getView().fit(feat.getGeometry().getExtent(), map.getSize());
|
||||
}
|
||||
|
||||
select.getFeatures().clear();
|
||||
select.getFeatures().push(feat);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (source.getState() === 'ready') {
|
||||
horseyComponent = returnHorsey(input, source, map, select, options);
|
||||
}
|
||||
source.once('change', function(e) {
|
||||
if (source.getState() === 'ready') {
|
||||
horseyComponent = returnHorsey(input, source, map, select, options);
|
||||
}
|
||||
});
|
||||
};
|
||||
if (Control) SearchLayer.__proto__ = Control;
|
||||
SearchLayer.prototype = Object.create(Control && Control.prototype);
|
||||
SearchLayer.prototype.constructor = SearchLayer;
|
||||
return SearchLayer;
|
||||
}(ol.control.Control));
|
||||
@@ -0,0 +1 @@
|
||||
.search-layer{top:65px;left:.5em}.ol-touch .search-layer{top:80px}.search-layer button{background-repeat:no-repeat;background-position:center center;top:2px;left:2px}.search-layer-input-search{position:absolute;top:2px;left:32px;width:180px;padding:5px;border:1px solid #ccc;font-family:inherit;font-size:.875rem}.search-layer-collapsed{display:none}
|
||||
@@ -0,0 +1,78 @@
|
||||
if (!Function.prototype.bind) {
|
||||
Function.prototype.bind = function(oThis) {
|
||||
if (typeof this !== 'function') {
|
||||
// closest thing possible to the ECMAScript 5
|
||||
// internal IsCallable function
|
||||
throw new TypeError('Function#bind - not callable');
|
||||
}
|
||||
|
||||
var aArgs = Array.prototype.slice.call(arguments, 1),
|
||||
fToBind = this,
|
||||
fNOP = function() {},
|
||||
fBound = function() {
|
||||
return fToBind.apply(this instanceof fNOP
|
||||
? this
|
||||
: oThis,
|
||||
aArgs.concat(Array.prototype.slice.call(arguments)));
|
||||
};
|
||||
|
||||
if (this.prototype) {
|
||||
// native functions don't have a prototype
|
||||
fNOP.prototype = this.prototype;
|
||||
}
|
||||
fBound.prototype = new fNOP();
|
||||
|
||||
return fBound;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* requestAnimationFrame polyfill v1.0.0
|
||||
* requires Date.now
|
||||
*
|
||||
* © Polyfiller 2015
|
||||
* Released under the MIT license
|
||||
* github.com/Polyfiller/requestAnimationFrame
|
||||
*/
|
||||
window.requestAnimationFrame || function (window) {
|
||||
|
||||
'use strict';
|
||||
|
||||
window.requestAnimationFrame = window.msRequestAnimationFrame
|
||||
|| window.mozRequestAnimationFrame
|
||||
|| window.webkitRequestAnimationFrame
|
||||
|| function () {
|
||||
|
||||
var fps = 60;
|
||||
var delay = 1000 / fps;
|
||||
var animationStartTime = Date.now();
|
||||
var previousCallTime = animationStartTime;
|
||||
|
||||
return function requestAnimationFrame(callback) {
|
||||
|
||||
var requestTime = Date.now();
|
||||
var timeout = Math.max(0, delay - (requestTime - previousCallTime));
|
||||
var timeToCall = requestTime + timeout;
|
||||
|
||||
previousCallTime = timeToCall;
|
||||
|
||||
return window.setTimeout(function onAnimationFrame() {
|
||||
|
||||
callback(timeToCall - animationStartTime);
|
||||
|
||||
}, timeout);
|
||||
};
|
||||
}();
|
||||
|
||||
window.cancelAnimationFrame = window.mozCancelAnimationFrame
|
||||
|| window.webkitCancelAnimationFrame
|
||||
|| window.cancelRequestAnimationFrame
|
||||
|| window.msCancelRequestAnimationFrame
|
||||
|| window.mozCancelRequestAnimationFrame
|
||||
|| window.webkitCancelRequestAnimationFrame
|
||||
|| function cancelAnimationFrame(id) {
|
||||
window.clearTimeout(id);
|
||||
};
|
||||
|
||||
}(this);
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
html, body {
|
||||
height: 100%;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-family: sans-serif;
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
th, td {
|
||||
vertical-align: top;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#map {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.ol-popup {
|
||||
display: none;
|
||||
position: absolute;
|
||||
background-color: white;
|
||||
-moz-box-shadow: 0 1px 4px rgba(0,0,0,0.2);
|
||||
-webkit-filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2));
|
||||
filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2));
|
||||
padding: 15px;
|
||||
border-radius: 10px;
|
||||
border: 1px solid #cccccc;
|
||||
bottom: 12px;
|
||||
left: -50px;
|
||||
height: auto;
|
||||
width: auto;
|
||||
min-width: 100px;
|
||||
max-height:400px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.ol-popup-closer {
|
||||
text-decoration: none;
|
||||
position: absolute;
|
||||
top: 2px;
|
||||
right: 8px;
|
||||
}
|
||||
|
||||
.ol-popup-closer:after {
|
||||
content: "X";
|
||||
}
|
||||
|
||||
.ol-attribution a {
|
||||
text-decoration: none;
|
||||
color: #666;
|
||||
font-family: sans-serif;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
.layer-switcher .panel {
|
||||
//border: 4px solid rgba(0,60,136,.5) !important;
|
||||
//border-radius: 4px !important;
|
||||
}
|
||||
|
||||
.layer-switcher {
|
||||
top: 0.5em;
|
||||
right: 0.5em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#popup-content>ul>li:nth-child(even) {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
#popup-content ul {
|
||||
list-style-type: none;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
#popup-content li {
|
||||
margin-bottom:0.25em;
|
||||
}
|
||||
@@ -0,0 +1,373 @@
|
||||
|
||||
|
||||
var container = document.getElementById('popup');
|
||||
var content = document.getElementById('popup-content');
|
||||
var closer = document.getElementById('popup-closer');
|
||||
var sketch;
|
||||
|
||||
closer.onclick = function() {
|
||||
container.style.display = 'none';
|
||||
closer.blur();
|
||||
return false;
|
||||
};
|
||||
var overlayPopup = new ol.Overlay({
|
||||
element: container
|
||||
});
|
||||
|
||||
var expandedAttribution = new ol.control.Attribution({
|
||||
collapsible: false
|
||||
});
|
||||
|
||||
var map = new ol.Map({
|
||||
controls: ol.control.defaults({attribution:false}).extend([
|
||||
expandedAttribution
|
||||
]),
|
||||
target: document.getElementById('map'),
|
||||
renderer: 'canvas',
|
||||
overlays: [overlayPopup],
|
||||
layers: layersList,
|
||||
view: new ol.View({
|
||||
maxZoom: 28, minZoom: 1
|
||||
})
|
||||
});
|
||||
|
||||
var layerSwitcher = new ol.control.LayerSwitcher({tipLabel: "Layers"});
|
||||
map.addControl(layerSwitcher);
|
||||
layerSwitcher.hidePanel = function() {};
|
||||
layerSwitcher.showPanel();
|
||||
|
||||
|
||||
map.getView().fit([-5909061.403555, -3014620.642764, -5899867.325848, -3004998.250310], map.getSize());
|
||||
|
||||
var NO_POPUP = 0
|
||||
var ALL_FIELDS = 1
|
||||
|
||||
/**
|
||||
* Returns either NO_POPUP, ALL_FIELDS or the name of a single field to use for
|
||||
* a given layer
|
||||
* @param layerList {Array} List of ol.Layer instances
|
||||
* @param layer {ol.Layer} Layer to find field info about
|
||||
*/
|
||||
function getPopupFields(layerList, layer) {
|
||||
// Determine the index that the layer will have in the popupLayers Array,
|
||||
// if the layersList contains more items than popupLayers then we need to
|
||||
// adjust the index to take into account the base maps group
|
||||
var idx = layersList.indexOf(layer) - (layersList.length - popupLayers.length);
|
||||
return popupLayers[idx];
|
||||
}
|
||||
|
||||
|
||||
var collection = new ol.Collection();
|
||||
var featureOverlay = new ol.layer.Vector({
|
||||
map: map,
|
||||
source: new ol.source.Vector({
|
||||
features: collection,
|
||||
useSpatialIndex: false // optional, might improve performance
|
||||
}),
|
||||
style: [new ol.style.Style({
|
||||
stroke: new ol.style.Stroke({
|
||||
color: '#f00',
|
||||
width: 1
|
||||
}),
|
||||
fill: new ol.style.Fill({
|
||||
color: 'rgba(255,0,0,0.1)'
|
||||
}),
|
||||
})],
|
||||
updateWhileAnimating: true, // optional, for instant visual feedback
|
||||
updateWhileInteracting: true // optional, for instant visual feedback
|
||||
});
|
||||
|
||||
var doHighlight = false;
|
||||
var doHover = false;
|
||||
|
||||
var highlight;
|
||||
var autolinker = new Autolinker({truncate: {length: 30, location: 'smart'}});
|
||||
var onPointerMove = function(evt) {
|
||||
if (!doHover && !doHighlight) {
|
||||
return;
|
||||
}
|
||||
var pixel = map.getEventPixel(evt.originalEvent);
|
||||
var coord = evt.coordinate;
|
||||
var popupField;
|
||||
var currentFeature;
|
||||
var currentLayer;
|
||||
var currentFeatureKeys;
|
||||
var clusteredFeatures;
|
||||
var popupText = '<ul>';
|
||||
map.forEachFeatureAtPixel(pixel, function(feature, layer) {
|
||||
// We only care about features from layers in the layersList, ignore
|
||||
// any other layers which the map might contain such as the vector
|
||||
// layer used by the measure tool
|
||||
if (layersList.indexOf(layer) === -1) {
|
||||
return;
|
||||
}
|
||||
var doPopup = false;
|
||||
for (k in layer.get('fieldImages')) {
|
||||
if (layer.get('fieldImages')[k] != "Hidden") {
|
||||
doPopup = true;
|
||||
}
|
||||
}
|
||||
currentFeature = feature;
|
||||
currentLayer = layer;
|
||||
clusteredFeatures = feature.get("features");
|
||||
var clusterFeature;
|
||||
if (typeof clusteredFeatures !== "undefined") {
|
||||
if (doPopup) {
|
||||
for(var n=0; n<clusteredFeatures.length; n++) {
|
||||
clusterFeature = clusteredFeatures[n];
|
||||
currentFeatureKeys = clusterFeature.getKeys();
|
||||
popupText += '<li><table>'
|
||||
for (var i=0; i<currentFeatureKeys.length; i++) {
|
||||
if (currentFeatureKeys[i] != 'geometry') {
|
||||
popupField = '';
|
||||
if (layer.get('fieldLabels')[currentFeatureKeys[i]] == "inline label") {
|
||||
popupField += '<th>' + layer.get('fieldAliases')[currentFeatureKeys[i]] + ':</th><td>';
|
||||
} else {
|
||||
popupField += '<td colspan="2">';
|
||||
}
|
||||
if (layer.get('fieldLabels')[currentFeatureKeys[i]] == "header label") {
|
||||
popupField += '<strong>' + layer.get('fieldAliases')[currentFeatureKeys[i]] + ':</strong><br />';
|
||||
}
|
||||
if (layer.get('fieldImages')[currentFeatureKeys[i]] != "ExternalResource") {
|
||||
popupField += (clusterFeature.get(currentFeatureKeys[i]) != null ? autolinker.link(clusterFeature.get(currentFeatureKeys[i]).toLocaleString()) + '</td>' : '');
|
||||
} else {
|
||||
popupField += (clusterFeature.get(currentFeatureKeys[i]) != null ? '<img src="images/' + clusterFeature.get(currentFeatureKeys[i]).replace(/[\\\/:]/g, '_').trim() + '" /></td>' : '');
|
||||
}
|
||||
popupText += '<tr>' + popupField + '</tr>';
|
||||
}
|
||||
}
|
||||
popupText += '</table></li>';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
currentFeatureKeys = currentFeature.getKeys();
|
||||
if (doPopup) {
|
||||
popupText += '<li><table>';
|
||||
for (var i=0; i<currentFeatureKeys.length; i++) {
|
||||
if (currentFeatureKeys[i] != 'geometry') {
|
||||
popupField = '';
|
||||
if (layer.get('fieldLabels')[currentFeatureKeys[i]] == "inline label") {
|
||||
popupField += '<th>' + layer.get('fieldAliases')[currentFeatureKeys[i]] + ':</th><td>';
|
||||
} else {
|
||||
popupField += '<td colspan="2">';
|
||||
}
|
||||
if (layer.get('fieldLabels')[currentFeatureKeys[i]] == "header label") {
|
||||
popupField += '<strong>' + layer.get('fieldAliases')[currentFeatureKeys[i]] + ':</strong><br />';
|
||||
}
|
||||
if (layer.get('fieldImages')[currentFeatureKeys[i]] != "ExternalResource") {
|
||||
popupField += (currentFeature.get(currentFeatureKeys[i]) != null ? autolinker.link(currentFeature.get(currentFeatureKeys[i]).toLocaleString()) + '</td>' : '');
|
||||
} else {
|
||||
popupField += (currentFeature.get(currentFeatureKeys[i]) != null ? '<img src="images/' + currentFeature.get(currentFeatureKeys[i]).replace(/[\\\/:]/g, '_').trim() + '" /></td>' : '');
|
||||
}
|
||||
popupText += '<tr>' + popupField + '</tr>';
|
||||
}
|
||||
}
|
||||
popupText += '</table></li>';
|
||||
}
|
||||
}
|
||||
});
|
||||
if (popupText == '<ul>') {
|
||||
popupText = '';
|
||||
} else {
|
||||
popupText += '</ul>';
|
||||
}
|
||||
|
||||
if (doHighlight) {
|
||||
if (currentFeature !== highlight) {
|
||||
if (highlight) {
|
||||
featureOverlay.getSource().removeFeature(highlight);
|
||||
}
|
||||
if (currentFeature) {
|
||||
var styleDefinition = currentLayer.getStyle().toString();
|
||||
|
||||
if (currentFeature.getGeometry().getType() == 'Point') {
|
||||
var radius = styleDefinition.split('radius')[1].split(' ')[1];
|
||||
|
||||
highlightStyle = new ol.style.Style({
|
||||
image: new ol.style.Circle({
|
||||
fill: new ol.style.Fill({
|
||||
color: "#ffff00"
|
||||
}),
|
||||
radius: radius
|
||||
})
|
||||
})
|
||||
} else if (currentFeature.getGeometry().getType() == 'LineString') {
|
||||
|
||||
var featureWidth = styleDefinition.split('width')[1].split(' ')[1].replace('})','');
|
||||
|
||||
highlightStyle = new ol.style.Style({
|
||||
stroke: new ol.style.Stroke({
|
||||
color: '#ffff00',
|
||||
lineDash: null,
|
||||
width: featureWidth
|
||||
})
|
||||
});
|
||||
|
||||
} else {
|
||||
highlightStyle = new ol.style.Style({
|
||||
fill: new ol.style.Fill({
|
||||
color: '#ffff00'
|
||||
})
|
||||
})
|
||||
}
|
||||
featureOverlay.getSource().addFeature(currentFeature);
|
||||
featureOverlay.setStyle(highlightStyle);
|
||||
}
|
||||
highlight = currentFeature;
|
||||
}
|
||||
}
|
||||
|
||||
if (doHover) {
|
||||
if (popupText) {
|
||||
overlayPopup.setPosition(coord);
|
||||
content.innerHTML = popupText;
|
||||
container.style.display = 'block';
|
||||
} else {
|
||||
container.style.display = 'none';
|
||||
closer.blur();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var onSingleClick = function(evt) {
|
||||
if (doHover) {
|
||||
return;
|
||||
}
|
||||
if (sketch) {
|
||||
return;
|
||||
}
|
||||
var pixel = map.getEventPixel(evt.originalEvent);
|
||||
var coord = evt.coordinate;
|
||||
var popupField;
|
||||
var currentFeature;
|
||||
var currentFeatureKeys;
|
||||
var clusteredFeatures;
|
||||
var popupText = '<ul>';
|
||||
map.forEachFeatureAtPixel(pixel, function(feature, layer) {
|
||||
if (feature instanceof ol.Feature && (layer.get("interactive") || layer.get("interactive") == undefined)) {
|
||||
var doPopup = false;
|
||||
for (k in layer.get('fieldImages')) {
|
||||
if (layer.get('fieldImages')[k] != "Hidden") {
|
||||
doPopup = true;
|
||||
}
|
||||
}
|
||||
currentFeature = feature;
|
||||
clusteredFeatures = feature.get("features");
|
||||
var clusterFeature;
|
||||
if (typeof clusteredFeatures !== "undefined") {
|
||||
if (doPopup) {
|
||||
for(var n=0; n<clusteredFeatures.length; n++) {
|
||||
clusterFeature = clusteredFeatures[n];
|
||||
currentFeatureKeys = clusterFeature.getKeys();
|
||||
popupText += '<li><table>'
|
||||
for (var i=0; i<currentFeatureKeys.length; i++) {
|
||||
if (currentFeatureKeys[i] != 'geometry') {
|
||||
popupField = '';
|
||||
if (layer.get('fieldLabels')[currentFeatureKeys[i]] == "inline label") {
|
||||
popupField += '<th>' + layer.get('fieldAliases')[currentFeatureKeys[i]] + ':</th><td>';
|
||||
} else {
|
||||
popupField += '<td colspan="2">';
|
||||
}
|
||||
if (layer.get('fieldLabels')[currentFeatureKeys[i]] == "header label") {
|
||||
popupField += '<strong>' + layer.get('fieldAliases')[currentFeatureKeys[i]] + ':</strong><br />';
|
||||
}
|
||||
if (layer.get('fieldImages')[currentFeatureKeys[i]] != "ExternalResource") {
|
||||
popupField += (clusterFeature.get(currentFeatureKeys[i]) != null ? autolinker.link(clusterFeature.get(currentFeatureKeys[i]).toLocaleString()) + '</td>' : '');
|
||||
} else {
|
||||
popupField += (clusterFeature.get(currentFeatureKeys[i]) != null ? '<img src="images/' + clusterFeature.get(currentFeatureKeys[i]).replace(/[\\\/:]/g, '_').trim() + '" /></td>' : '');
|
||||
}
|
||||
popupText += '<tr>' + popupField + '</tr>';
|
||||
}
|
||||
}
|
||||
popupText += '</table></li>';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
currentFeatureKeys = currentFeature.getKeys();
|
||||
if (doPopup) {
|
||||
popupText += '<li><table>';
|
||||
for (var i=0; i<currentFeatureKeys.length; i++) {
|
||||
if (currentFeatureKeys[i] != 'geometry') {
|
||||
popupField = '';
|
||||
if (layer.get('fieldLabels')[currentFeatureKeys[i]] == "inline label") {
|
||||
popupField += '<th>' + layer.get('fieldAliases')[currentFeatureKeys[i]] + ':</th><td>';
|
||||
} else {
|
||||
popupField += '<td colspan="2">';
|
||||
}
|
||||
if (layer.get('fieldLabels')[currentFeatureKeys[i]] == "header label") {
|
||||
popupField += '<strong>' + layer.get('fieldAliases')[currentFeatureKeys[i]] + ':</strong><br />';
|
||||
}
|
||||
if (layer.get('fieldImages')[currentFeatureKeys[i]] != "ExternalResource") {
|
||||
popupField += (currentFeature.get(currentFeatureKeys[i]) != null ? autolinker.link(currentFeature.get(currentFeatureKeys[i]).toLocaleString()) + '</td>' : '');
|
||||
} else {
|
||||
popupField += (currentFeature.get(currentFeatureKeys[i]) != null ? '<img src="images/' + currentFeature.get(currentFeatureKeys[i]).replace(/[\\\/:]/g, '_').trim() + '" /></td>' : '');
|
||||
}
|
||||
popupText += '<tr>' + popupField + '</tr>';
|
||||
}
|
||||
}
|
||||
popupText += '</table>';
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
if (popupText == '<ul>') {
|
||||
popupText = '';
|
||||
} else {
|
||||
popupText += '</ul>';
|
||||
}
|
||||
|
||||
var viewProjection = map.getView().getProjection();
|
||||
var viewResolution = map.getView().getResolution();
|
||||
for (i = 0; i < wms_layers.length; i++) {
|
||||
if (wms_layers[i][1]) {
|
||||
var url = wms_layers[i][0].getSource().getGetFeatureInfoUrl(
|
||||
evt.coordinate, viewResolution, viewProjection,
|
||||
{
|
||||
'INFO_FORMAT': 'text/html',
|
||||
});
|
||||
if (url) {
|
||||
popupText = popupText + '<iframe style="width:100%;height:110px;border:0px;" id="iframe" seamless src="' + url + '"></iframe>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (popupText) {
|
||||
overlayPopup.setPosition(coord);
|
||||
content.innerHTML = popupText;
|
||||
container.style.display = 'block';
|
||||
} else {
|
||||
container.style.display = 'none';
|
||||
closer.blur();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
map.on('pointermove', function(evt) {
|
||||
onPointerMove(evt);
|
||||
});
|
||||
map.on('singleclick', function(evt) {
|
||||
onSingleClick(evt);
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
var attributionComplete = false;
|
||||
map.on("rendercomplete", function(evt) {
|
||||
if (!attributionComplete) {
|
||||
var attribution = document.getElementsByClassName('ol-attribution')[0];
|
||||
var attributionList = attribution.getElementsByTagName('ul')[0];
|
||||
var firstLayerAttribution = attributionList.getElementsByTagName('li')[0];
|
||||
var qgis2webAttribution = document.createElement('li');
|
||||
qgis2webAttribution.innerHTML = '<a href="https://github.com/tomchadwin/qgis2web">qgis2web</a> · ';
|
||||
var olAttribution = document.createElement('li');
|
||||
olAttribution.innerHTML = '<a href="https://openlayers.org/">OpenLayers</a> · ';
|
||||
var qgisAttribution = document.createElement('li');
|
||||
qgisAttribution.innerHTML = '<a href="https://qgis.org/">QGIS</a>';
|
||||
attributionList.insertBefore(qgis2webAttribution, firstLayerAttribution);
|
||||
attributionList.insertBefore(olAttribution, firstLayerAttribution);
|
||||
attributionList.insertBefore(qgisAttribution, firstLayerAttribution);
|
||||
attributionComplete = true;
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1,765 @@
|
||||
// Aggregates
|
||||
|
||||
// Color
|
||||
|
||||
// Conditionals
|
||||
|
||||
// Conversions
|
||||
|
||||
// Custom
|
||||
|
||||
// Date and Time
|
||||
|
||||
// Fields and Values
|
||||
|
||||
// Fuzzy Matching
|
||||
|
||||
// General
|
||||
|
||||
// Geometry
|
||||
function fnc_azimuth(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_project(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
// Math
|
||||
function fnc_abs(values, context) {
|
||||
return Math.abs(values[0]);
|
||||
};
|
||||
|
||||
function fnc_degrees(values, context) {
|
||||
return values[0] * (180/Math.PI);
|
||||
};
|
||||
|
||||
function fnc_radians(values, context) {
|
||||
return values[0] * (Math.PI/180);
|
||||
};
|
||||
|
||||
function fnc_sqrt(values, context) {
|
||||
return Math.sqrt(values[0]);
|
||||
};
|
||||
|
||||
function fnc_cos(values, context) {
|
||||
return Math.cos(values[0]);
|
||||
};
|
||||
|
||||
function fnc_sin(values, context) {
|
||||
return Math.sin(values[0]);
|
||||
};
|
||||
|
||||
function fnc_tan(values, context) {
|
||||
return Math.tan(values[0]);
|
||||
};
|
||||
|
||||
function fnc_asin(values, context) {
|
||||
return Math.asin(values[0]);
|
||||
};
|
||||
|
||||
function fnc_acos(values, context) {
|
||||
return Math.acos(values[0]);
|
||||
};
|
||||
|
||||
function fnc_atan(values, context) {
|
||||
return Math.atan(values[0]);
|
||||
};
|
||||
|
||||
function fnc_atan2(values, context) {
|
||||
return Math.atan2(values[0]);
|
||||
};
|
||||
|
||||
function fnc_exp(values, context) {
|
||||
return Math.exp(values[0]);
|
||||
};
|
||||
|
||||
function fnc_ln(values, context) {
|
||||
return Math.log(values[0]);
|
||||
};
|
||||
|
||||
function fnc_log10(values, context) {
|
||||
return Math.LN10(values[0]);
|
||||
};
|
||||
|
||||
function fnc_log(values, context) {
|
||||
return Math.log(values[0]) / Math.log(values[1]);
|
||||
};
|
||||
|
||||
function fnc_round(values, context) {
|
||||
return Math.round(values[0]);
|
||||
};
|
||||
|
||||
function fnc_rand(values, context) {
|
||||
return Math.floor(Math.random()*(values[1]-values[0]+1)+values[0]);
|
||||
};
|
||||
|
||||
function fnc_randf(values, context) {
|
||||
return Math.random()*(values[1]-values[0]+1)+values[0];
|
||||
};
|
||||
|
||||
function fnc_max(values, context) {
|
||||
return Math.max.apply(this, values);
|
||||
};
|
||||
|
||||
function fnc_min(values, context) {
|
||||
return Math.min.apply(this, values);
|
||||
};
|
||||
|
||||
function fnc_clamp(values, context) {
|
||||
return Math.min(Math.max(values[0],values[1]),values[2]);
|
||||
};
|
||||
|
||||
// Operators
|
||||
|
||||
// Record
|
||||
|
||||
// String
|
||||
|
||||
// TimeManager
|
||||
|
||||
// Variables
|
||||
|
||||
|
||||
|
||||
function fnc_scale_linear(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_scale_exp(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_floor(values, context) {
|
||||
return Math.floor(values[0]);
|
||||
};
|
||||
|
||||
function fnc_ceil(values, context) {
|
||||
return Math.ceil(values[0]);
|
||||
};
|
||||
|
||||
function fnc_pi(values, context) {
|
||||
return Math.PI;
|
||||
};
|
||||
|
||||
function fnc_to_int(values, context) {
|
||||
var intVal = parseInt(values[0],10);
|
||||
if ( isNaN(intVal) ) { return false };
|
||||
return intVal;
|
||||
};
|
||||
|
||||
function fnc_to_real(values, context) {
|
||||
var realVal = parseFloat(values[0]);
|
||||
if ( isNaN(realVal) ) { return false };
|
||||
return realVal;
|
||||
};
|
||||
|
||||
function fnc_to_string(values, context) {
|
||||
return String(values[0]);
|
||||
};
|
||||
|
||||
function fnc_to_datetime(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_to_date(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_to_time(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_to_interval(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_coalesce(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_if(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_aggregate(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_relation_aggregate(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_count(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_count_distinct(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_count_missing(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_minimum(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_maximum(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_sum(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_mean(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_median(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_stdev(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_range(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_minority(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_majority(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_q1(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_q3(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_iqr(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_min_length(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_max_length(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_concatenate(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_regexp_match(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_now(values, context) {
|
||||
return new Date().toISOString();
|
||||
};
|
||||
|
||||
function fnc_age(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_year(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_month(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_week(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_day(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_hour(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_minute(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_second(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_day_of_week(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_lower(values, context) {
|
||||
if ( typeof values[0] != "string" ) { return false; }
|
||||
return values[0].toLowerCase();
|
||||
};
|
||||
|
||||
function fnc_upper(values, context) {
|
||||
if ( typeof values[0] != "string" ) { return false; }
|
||||
return values[0].toUpperCase();
|
||||
};
|
||||
|
||||
function fnc_title(values, context) {
|
||||
if ( typeof values[0] != "string" ) { return false; }
|
||||
return values[0].toLowerCase().split(' ').map(function(word) {
|
||||
return (word.charAt(0).toUpperCase() + word.slice(1));
|
||||
}).join(' ');
|
||||
};
|
||||
|
||||
function fnc_trim(values, context) {
|
||||
if ( typeof values[0] != "string" ) { return false; }
|
||||
return String(values[0]).trim();
|
||||
};
|
||||
|
||||
function fnc_levenshtein(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_longest_common_substring(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_hamming_distance(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_soundex(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_char(values, context) {
|
||||
if ( isNaN(values[0]) || !values[0]) { return null; } return String.fromCodePoint(values[0]);
|
||||
};
|
||||
|
||||
function fnc_wordwrap(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_length(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_replace(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_regexp_replace(values, context) {
|
||||
if ( !values[0] ) { return null; } return String(values[0]).replace(RegExp(values[1]),values[2]);
|
||||
};
|
||||
|
||||
function fnc_regexp_substr(values, context) {
|
||||
if ( !values[0] ) { return null; }
|
||||
return String(values[0]).match(RegExp(values[1]))[0];
|
||||
};
|
||||
|
||||
function fnc_substr(values, context) {
|
||||
var length = values[2]
|
||||
if ( !values[0] || isNaN(values[1])) { return false; }
|
||||
return String(values[0]).substr(values[1], length);
|
||||
};
|
||||
|
||||
function fnc_concat(values, context) {
|
||||
return values.join('');
|
||||
};
|
||||
|
||||
function fnc_strpos(values, context) {
|
||||
if (!values[0] || !values[1]) {return null}
|
||||
return String(values[0]).indexOf(String(values[1]))+1;
|
||||
};
|
||||
|
||||
function fnc_left(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_right(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_rpad(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_lpad(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_format(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_format_number(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_format_date(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_color_rgb(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_color_rgba(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_ramp_color(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_color_hsl(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_color_hsla(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_color_hsv(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_color_hsva(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_color_cmyk(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_color_cmyka(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_color_part(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_darker(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_lighter(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_set_color_part(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_area(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_perimeter(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_x(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_y(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_z(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_m(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_point_n(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_start_point(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_end_point(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_nodes_to_points(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_segments_to_lines(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_make_point(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_make_point_m(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_make_line(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_make_polygon(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_x_min(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_x_max(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_y_min(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_y_max(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_geom_from_wkt(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_geom_from_gml(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_relate(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_intersects_bbox(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_disjoint(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_intersects(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_touches(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_crosses(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_contains(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_overlaps(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_within(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_translate(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_buffer(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_centroid(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_point_on_surface(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_reverse(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_exterior_ring(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_interior_ring_n(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_geometry_n(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_boundary(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_line_merge(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_bounds(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_num_points(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_num_interior_rings(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_num_rings(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_num_geometries(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_bounds_width(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_bounds_height(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_is_closed(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_convex_hull(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_difference(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_distance(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_intersection(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_sym_difference(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_combine(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_union(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_geom_to_wkt(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_geometry(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_transform(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_extrude(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_order_parts(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_closest_point(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_shortest_line(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_line_interpolate_point(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_line_interpolate_angle(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_line_locate_point(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_angle_at_vertex(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_distance_to_vertex(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_uuid(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_get_feature(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_layer_property(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_var(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_eval(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_attribute(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc__specialcol_(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_project_color(values, context) {
|
||||
return false;
|
||||
};
|
||||
@@ -0,0 +1,725 @@
|
||||
@charset "UTF-8";
|
||||
/*
|
||||
| tail.datetime - The vanilla way to select dates and times!
|
||||
| @file ./less/tail.datetime-harx-light.less
|
||||
| @author SamBrishes <sam@pytes.net>
|
||||
| @version 0.4.14 - Beta
|
||||
|
|
||||
| @website https://github.com/pytesNET/tail.DateTime
|
||||
| @license X11 / MIT License
|
||||
| @copyright Copyright © 2018 - 2019 SamBrishes, pytesNET <info@pytes.net>
|
||||
*/
|
||||
|
||||
/* @start MAIN CALENDAR */
|
||||
.tail-datetime-calendar, .tail-datetime-calendar *, .tail-datetime-calendar *:before,
|
||||
.tail-datetime-calendar *:after{
|
||||
box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
}
|
||||
.tail-datetime-calendar{
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 360px;
|
||||
height: auto;
|
||||
margin: 15px;
|
||||
padding: 0;
|
||||
z-index: 3000;
|
||||
display: block;
|
||||
position: absolute;
|
||||
visibility: hidden;
|
||||
direction: ltr;
|
||||
border-collapse: separate;
|
||||
font-family: "Open Sans", Calibri, Arial, sans-serif;
|
||||
background-color: white;
|
||||
border-width: 0;
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
border-radius: 3px;
|
||||
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 2px 1px rgba(0, 0, 0, 0.1);
|
||||
-webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 2px 1px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.tail-datetime-calendar:after{
|
||||
clear: both;
|
||||
content: "";
|
||||
display: block;
|
||||
font-size: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
.tail-datetime-calendar.calendar-static{
|
||||
top: auto;
|
||||
left: auto;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
position: static;
|
||||
visibility: visible;
|
||||
}
|
||||
.tail-datetime-calendar button.calendar-close{
|
||||
top: 100%;
|
||||
right: 15px;
|
||||
color: #303438;
|
||||
width: 35px;
|
||||
height: 25px;
|
||||
margin: 1px 0 0 0;
|
||||
padding: 5px 10px;
|
||||
opacity: 0.5;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
font-size: 14px;
|
||||
line-height: 1.125em;
|
||||
text-shadow: none;
|
||||
border: 0;
|
||||
outline: none;
|
||||
background-color: white;
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z\
|
||||
dmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDEyIDE2Ij48cGF0aCBmaWxsPSIjMzAzNDM4IiB\
|
||||
kPSJNNy40OCA4bDMuNzUgMy43NS0xLjQ4IDEuNDhMNiA5LjQ4bC0zLjc1IDMuNzUtMS40OC0xLjQ4TDQuNTIgOCAuNz\
|
||||
cgNC4yNWwxLjQ4LTEuNDhMNiA2LjUybDMuNzUtMy43NSAxLjQ4IDEuNDhMNy40OCA4eiIvPjwvc3ZnPg==");
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
border-width: 0;
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
border-radius: 0 0 3px 3px;
|
||||
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 2px 1px rgba(0, 0, 0, 0.1);
|
||||
-webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 2px 1px rgba(0, 0, 0, 0.1);
|
||||
transition: opacity 142ms linear;
|
||||
-webkit-transition: opacity 142ms linear;
|
||||
}
|
||||
.tail-datetime-calendar button.calendar-close:hover{
|
||||
opacity: 1;
|
||||
}
|
||||
/* @end MAIN CALENDAR */
|
||||
|
||||
/* @start CALENDAR TOOLTIP */
|
||||
.tail-datetime-calendar .calendar-tooltip{
|
||||
color: white;
|
||||
width: auto;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: block;
|
||||
position: absolute;
|
||||
background-color: #303438;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-tooltip:before{
|
||||
top: -7px;
|
||||
left: 50%;
|
||||
width: 0;
|
||||
height: 0;
|
||||
margin: 0 0 0 -6px;
|
||||
content: "";
|
||||
display: block;
|
||||
position: absolute;
|
||||
border-width: 0 7px 7px 7px;
|
||||
border-style: solid;
|
||||
border-color: transparent transparent #303438 transparent;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-tooltip .tooltip-inner{
|
||||
width: auto;
|
||||
margin: 0;
|
||||
padding: 4px 7px;
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
line-height: 14px;
|
||||
}
|
||||
/* @end CALENDAR TOOLTIP */
|
||||
|
||||
/* @start CALENDAR ACTIONs */
|
||||
.tail-datetime-calendar .calendar-actions{
|
||||
color: #303438;
|
||||
width: 100%;
|
||||
height: 36px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: table;
|
||||
overflow: hidden;
|
||||
border-spacing: 0;
|
||||
border-collapse: separate;
|
||||
background-color: white;
|
||||
border-width: 0;
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
border-radius: 3px 3px 0 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
opacity: 0.5;
|
||||
display: table-cell;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
line-height: 40px;
|
||||
text-shadow: none;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
transition: opacity 142ms linear, background 142ms linear;
|
||||
-webkit-transition: opacity 142ms linear, background 142ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span[data-action]{
|
||||
cursor: pointer;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.action{
|
||||
width: 50px;
|
||||
font-size: 22px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.label{
|
||||
width: auto;
|
||||
opacity: 1;
|
||||
font-size: 16px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:first-child{
|
||||
border-radius: 4px 0 0 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:last-child{
|
||||
border-radius: 0 4px 0 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:first-child:before,
|
||||
.tail-datetime-calendar .calendar-actions span:last-child:before{
|
||||
top: 5px;
|
||||
bottom: 5px;
|
||||
width: 1px;
|
||||
height: auto;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
background-color: #e6e6e6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:first-child:before{
|
||||
right: -1px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:last-child:before{
|
||||
left: -1px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:first-child:hover:before,
|
||||
.tail-datetime-calendar .calendar-actions span:last-child:hover:before{
|
||||
display: none;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span[data-action]:hover{
|
||||
opacity: 0.95;
|
||||
background-color: #e6e6e6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.action-prev{
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zd\
|
||||
mciIHdpZHRoPSI2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgNiAxNiI+PHBhdGggZD0iTTYgMkwwIDhsNiA2VjJ6\
|
||||
Ii8+PC9zdmc+");
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.action-next{
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z\
|
||||
dmciIHdpZHRoPSI2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgNiAxNiI+PHBhdGggZD0iTTAgMTRsNi02LTYtNnY\
|
||||
xMnoiLz48L3N2Zz4=");
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.action-submit{
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z\
|
||||
dmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDEyIDE2Ij48cGF0aCBkPSJNMTIgNWwtOCA4LTQ\
|
||||
tNCAxLjUtMS41TDQgMTBsNi41LTYuNUwxMiA1eiIvPjwvc3ZnPg==");
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.action-cancel{
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z\
|
||||
dmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDEyIDE2Ij48cGF0aCBmaWxsPSIjMzAzNDM4IiB\
|
||||
kPSJNNy40OCA4bDMuNzUgMy43NS0xLjQ4IDEuNDhMNiA5LjQ4bC0zLjc1IDMuNzUtMS40OC0xLjQ4TDQuNTIgOCAuNz\
|
||||
cgNC4yNWwxLjQ4LTEuNDhMNiA2LjUybDMuNzUtMy43NSAxLjQ4IDEuNDhMNy40OCA4eiIvPjwvc3ZnPg==");
|
||||
}
|
||||
/* @end CALENDAR ACTIONs */
|
||||
|
||||
/* @start CALENDAR DATEPICKER */
|
||||
.tail-datetime-calendar .calendar-datepicker{
|
||||
width: 100%;
|
||||
margin: 0 0 15px 0;
|
||||
padding: 0;
|
||||
display: block;
|
||||
position: relative;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker:after{
|
||||
top: -1px;
|
||||
left: 10px;
|
||||
right: 10px;
|
||||
content: "";
|
||||
position: absolute;
|
||||
border-width: 1px 0 0 0;
|
||||
border-style: solid;
|
||||
border-color: #e6e6e6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table{
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border-spacing: 1px;
|
||||
border-collapse: separate;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr th,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td{
|
||||
color: #303438;
|
||||
width: 50px;
|
||||
height: 35px;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
font-size: 13px;
|
||||
text-align: center;
|
||||
font-weight: normal;
|
||||
text-shadow: none;
|
||||
line-height: 30px;
|
||||
background-color: transparent;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td{
|
||||
cursor: pointer;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td span.inner{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: inline-block;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-disabled{
|
||||
cursor: not-allowed;
|
||||
color: #A0A4A8;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-disabled:after{
|
||||
color: #A0A4A8;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 49px;
|
||||
height: 35px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
content: "✕";
|
||||
opacity: 0.25;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
font-size: 30px;
|
||||
line-height: 35px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-previous,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-next{
|
||||
color: #808488;
|
||||
background-color: transparent;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-today:before,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td .tooltip-tick{
|
||||
top: 5px;
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
z-index: 20;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
border-width: 0;
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-today:before{
|
||||
left: 5px;
|
||||
background-color: #32B93C;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td .tooltip-tick{
|
||||
right: 5px;
|
||||
background-color: #303438;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-select.date-today:before,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-select .tooltip-tick{
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td .tooltip-tick:before,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td .tooltip-tick:after{
|
||||
display: none;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade{
|
||||
width: 14.28571429%;
|
||||
height: 35px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade:hover{
|
||||
border-color: #e6e6e6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day.date-disabled:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month.date-disabled:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year.date-disabled:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade.date-disabled:hover{
|
||||
border-color: white;
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day.date-today,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month.date-today,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year.date-today,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade.date-today{
|
||||
color: #32B93C;
|
||||
border-color: #32B93C;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day.date-select,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month.date-select,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year.date-select,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade.date-select{
|
||||
border-color: #149BE6;
|
||||
background-color: #149BE6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day.date-select span,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month.date-select span,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year.date-select span,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade.date-select span{
|
||||
color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day span.inner,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month span.inner,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year span.inner,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade span.inner{
|
||||
border: 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade{
|
||||
width: 25%;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade span.inner{
|
||||
height: 54px;
|
||||
padding: 7px 15px;
|
||||
text-align: center;
|
||||
line-height: 20px;
|
||||
}
|
||||
/* @end CALENDAR DATEPICKER */
|
||||
|
||||
/* @start CALENDAR TIMEPICKER */
|
||||
.tail-datetime-calendar .calendar-timepicker{
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: block;
|
||||
position: relative;
|
||||
border-top: 0;
|
||||
text-align: center;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker:after{
|
||||
top: -1px;
|
||||
left: 10px;
|
||||
right: 10px;
|
||||
content: "";
|
||||
position: absolute;
|
||||
border-width: 1px 0 0 0;
|
||||
border-style: solid;
|
||||
border-color: #e6e6e6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field{
|
||||
width: auto;
|
||||
margin: 0;
|
||||
padding: 20px 10px 10px 10px;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field:first-of-type{
|
||||
text-align: right;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field:last-of-type{
|
||||
text-align: left;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input[type="text"]{
|
||||
color: #606468;
|
||||
width: 75px;
|
||||
height: 35px;
|
||||
margin: 0;
|
||||
z-index: 4;
|
||||
padding: 3px 20px 3px 5px;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
appearance: textfield;
|
||||
-moz-appearance: textfield;
|
||||
-webkit-appearance: textfield;
|
||||
background-color: white;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-color: #E0E0E0;
|
||||
border-radius: 3px;
|
||||
box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
transition: color 142ms linear, border 142ms linear, background 142ms linear;
|
||||
-webkit-transition: color 142ms linear, border 142ms linear, background 142ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input[type="text"]:hover{
|
||||
color: #404448;
|
||||
border-color: #D0D0D0;
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input[type="text"]:focus{
|
||||
color: #303438;
|
||||
border-color: #149BE6;
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input[type="text"]:disabled{
|
||||
cursor: not-allowed;
|
||||
color: #A0A4A8;
|
||||
border-color: #D0D0D0;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step{
|
||||
right: 11px;
|
||||
width: 20px;
|
||||
height: 17px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
z-index: 15;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
background-color: white;
|
||||
box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
transition: border 142ms linear, background 142ms linear;
|
||||
-webkit-transition: border 142ms linear, background 142ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step:before{
|
||||
top: 5px;
|
||||
left: 50%;
|
||||
width: 0;
|
||||
height: 0;
|
||||
margin: 0 0 0 -3px;
|
||||
padding: 0;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
transition: border 142ms linear;
|
||||
-webkit-transition: border 142ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-up{
|
||||
top: 21px;
|
||||
border-width: 0 0 1px 1px;
|
||||
border-style: solid;
|
||||
border-color: #E0E0E0;
|
||||
border-radius: 0 2px 0 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-up:hover{
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-up:before{
|
||||
border-width: 0 4px 5px 4px;
|
||||
border-style: solid;
|
||||
border-color: transparent transparent #606468 transparent;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-down{
|
||||
top: 37px;
|
||||
border-width: 1px 0 0 1px;
|
||||
border-style: solid;
|
||||
border-color: #E0E0E0;
|
||||
border-radius: 0 0 2px 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-down:hover{
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-down:before{
|
||||
border-width: 5px 4px 0 4px;
|
||||
border-style: solid;
|
||||
border-color: #606468 transparent transparent transparent;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button.step-up{
|
||||
border-color: #149BE6;
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button.step-up:before{
|
||||
border-bottom-color: #149BE6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button.step-up:hover{
|
||||
color: white;
|
||||
background-color: #149BE6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button.step-up:hover:before{
|
||||
border-bottom-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button + button.step-down{
|
||||
border-color: #149BE6;
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button + button.step-down:before{
|
||||
border-top-color: #149BE6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button + button.step-down:hover{
|
||||
color: white;
|
||||
background-color: #149BE6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button + button.step-down:hover:before{
|
||||
border-top-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button.step-up{
|
||||
cursor: not-allowed;
|
||||
border-color: #D0D0D0;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button.step-up:hover{
|
||||
border-color: #D0D0D0;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button.step-up:before{
|
||||
border-bottom-color: #A0A4A8;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button + button.step-down{
|
||||
cursor: not-allowed;
|
||||
border-color: #D0D0D0;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button + button.step-down:hover{
|
||||
border-color: #D0D0D0;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button + button.step-down:before{
|
||||
border-top-color: #A0A4A8;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field label{
|
||||
color: #606468;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch{
|
||||
cursor: pointer;
|
||||
margin: 0 0 -8px 0;
|
||||
padding: 15px 0 0 0;
|
||||
display: block;
|
||||
text-align: center;
|
||||
vertical-align: top;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch:before,
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch:after{
|
||||
width: auto;
|
||||
margin: 0;
|
||||
padding: 0 5px;
|
||||
font-size: 12px;
|
||||
line-height: 16px;
|
||||
vertical-align: top;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch:before{
|
||||
content: attr(data-am);
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch:after{
|
||||
content: attr(data-pm);
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"]{
|
||||
display: none;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"] + span{
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
vertical-align: top;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"] + span:before{
|
||||
width: 50px;
|
||||
height: 16px;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-color: #149BE6;
|
||||
border-radius: 14px;
|
||||
transition: border 284ms linear;
|
||||
-webkit-transition: border 284ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"] + span:after{
|
||||
top: 3px;
|
||||
left: 4px;
|
||||
right: 30px;
|
||||
width: auto;
|
||||
height: 10px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
background-color: #149BE6;
|
||||
border-radius: 15px;
|
||||
vertical-align: top;
|
||||
transition: left 284ms linear, right 284ms linear 284ms, background 284ms linear;
|
||||
-webkit-transition: left 284ms linear, right 284ms linear 284ms, background 284ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"]:checked + span:before{
|
||||
border-color: #32B93C;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"]:checked + span:after{
|
||||
left: 30px;
|
||||
right: 4px;
|
||||
background-color: #32B93C;
|
||||
transition: right 284ms linear, left 284ms linear 284ms, background 284ms linear;
|
||||
-webkit-transition: right 284ms linear, left 284ms linear 284ms, background 284ms linear;
|
||||
}
|
||||
/* @end CALENDAR TIMEPICKER */
|
||||
|
||||
/* @start RTL */
|
||||
.tail-datetime-calendar.rtl{
|
||||
direction: rtl;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-actions span.action-next,
|
||||
.tail-datetime-calendar.rtl .calendar-actions span.action-prev{
|
||||
transform: rotate(180deg);
|
||||
-moz-transform: rotate(180deg);
|
||||
-webkit-transform: rotate(180deg);
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.date-disabled:after{
|
||||
right: 3px;
|
||||
transform: rotate(45deg);
|
||||
-moz-transform: rotate(45deg);
|
||||
-webkit-transform: rotate(45deg);
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.date-today:before{
|
||||
right: 5px;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td .tooltip-tick{
|
||||
left: 5px;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-month.date-today:before,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-year.date-today:before,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-decade.date-today:before{
|
||||
right: 50%;
|
||||
margin-right: -2.5px;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-month:hover span.inner:before,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-year:hover span.inner:before,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-decade:hover span.inner:before{
|
||||
right: 6px;
|
||||
border-right-color: #cccccc;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-month span.inner:after,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-year span.inner:after,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-decade span.inner:after{
|
||||
left: 0;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-month:hover span.inner:after,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-year:hover span.inner:after,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-decade:hover span.inner:after{
|
||||
left: 6px;
|
||||
border-left-color: #cccccc;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-decade span.inner{
|
||||
text-align: right;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-timepicker .timepicker-field:first-child{
|
||||
text-align: left;
|
||||
padding-left: 0;
|
||||
padding-right: 25px;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-timepicker .timepicker-field:last-child{
|
||||
text-align: right;
|
||||
padding-left: 25px;
|
||||
padding-right: 0;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-timepicker .timepicker-field:first-child input[type="text"]{
|
||||
margin-left: -1px;
|
||||
margin-right: 0;
|
||||
border-radius: 0 3px 3px 0;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-timepicker .timepicker-field:last-child input[type="text"]{
|
||||
margin-left: 0;
|
||||
margin-right: -1px;
|
||||
border-radius: 3px 0 0 3px;
|
||||
}
|
||||
/* @end RTL */
|
||||
|
||||
/*# sourceMappingURL=tail.datetime-harx-light.map */
|
||||
@@ -0,0 +1,31 @@
|
||||
var size = 0;
|
||||
var placement = 'point';
|
||||
|
||||
var style_curvasdenivel5m_2 = function(feature, resolution){
|
||||
var context = {
|
||||
feature: feature,
|
||||
variables: {}
|
||||
};
|
||||
var value = ""
|
||||
var labelText = "";
|
||||
size = 0;
|
||||
var labelFont = "10px, sans-serif";
|
||||
var labelFill = "#000000";
|
||||
var bufferColor = "";
|
||||
var bufferWidth = 0;
|
||||
var textAlign = "left";
|
||||
var offsetX = 8;
|
||||
var offsetY = 3;
|
||||
var placement = 'line';
|
||||
if ("" !== null) {
|
||||
labelText = String("");
|
||||
}
|
||||
var style = [ new ol.style.Style({
|
||||
stroke: new ol.style.Stroke({color: 'rgba(190,178,151,1.0)', lineDash: null, lineCap: 'square', lineJoin: 'bevel', width: 0}),
|
||||
text: createTextStyle(feature, resolution, labelText, labelFont,
|
||||
labelFill, placement, bufferColor,
|
||||
bufferWidth)
|
||||
})];
|
||||
|
||||
return style;
|
||||
};
|
||||
|
Depois Largura: | Altura: | Tamanho: 105 B |
|
Depois Largura: | Altura: | Tamanho: 255 B |
|
Depois Largura: | Altura: | Tamanho: 105 B |
@@ -0,0 +1,32 @@
|
||||
var size = 0;
|
||||
var placement = 'point';
|
||||
|
||||
var style_pontos_3 = function(feature, resolution){
|
||||
var context = {
|
||||
feature: feature,
|
||||
variables: {}
|
||||
};
|
||||
var value = ""
|
||||
var labelText = "";
|
||||
size = 0;
|
||||
var labelFont = "10px, sans-serif";
|
||||
var labelFill = "#000000";
|
||||
var bufferColor = "";
|
||||
var bufferWidth = 0;
|
||||
var textAlign = "left";
|
||||
var offsetX = 8;
|
||||
var offsetY = 3;
|
||||
var placement = 'point';
|
||||
if ("" !== null) {
|
||||
labelText = String("");
|
||||
}
|
||||
var style = [ new ol.style.Style({
|
||||
image: new ol.style.Circle({radius: 4.0 + size,
|
||||
stroke: new ol.style.Stroke({color: 'rgba(35,35,35,1.0)', lineDash: null, lineCap: 'butt', lineJoin: 'miter', width: 0}), fill: new ol.style.Fill({color: 'rgba(196,60,57,1.0)'})}),
|
||||
text: createTextStyle(feature, resolution, labelText, labelFont,
|
||||
labelFill, placement, bufferColor,
|
||||
bufferWidth)
|
||||
})];
|
||||
|
||||
return style;
|
||||
};
|
||||
@@ -0,0 +1,31 @@
|
||||
var size = 0;
|
||||
var placement = 'point';
|
||||
|
||||
var style_rioss_4 = function(feature, resolution){
|
||||
var context = {
|
||||
feature: feature,
|
||||
variables: {}
|
||||
};
|
||||
var value = ""
|
||||
var labelText = "";
|
||||
size = 0;
|
||||
var labelFont = "10px, sans-serif";
|
||||
var labelFill = "#000000";
|
||||
var bufferColor = "";
|
||||
var bufferWidth = 0;
|
||||
var textAlign = "left";
|
||||
var offsetX = 8;
|
||||
var offsetY = 3;
|
||||
var placement = 'line';
|
||||
if ("" !== null) {
|
||||
labelText = String("");
|
||||
}
|
||||
var style = [ new ol.style.Style({
|
||||
stroke: new ol.style.Stroke({color: 'rgba(62,16,228,1.0)', lineDash: null, lineCap: 'square', lineJoin: 'bevel', width: 0}),
|
||||
text: createTextStyle(feature, resolution, labelText, labelFont,
|
||||
labelFill, placement, bufferColor,
|
||||
bufferWidth)
|
||||
})];
|
||||
|
||||
return style;
|
||||
};
|
||||
@@ -0,0 +1,73 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="initial-scale=1,user-scalable=no,maximum-scale=1,width=device-width">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<link rel="stylesheet" href="./resources/ol.css">
|
||||
<link rel="stylesheet" href="resources/fontawesome-all.min.css">
|
||||
<link rel="stylesheet" href="./resources/ol-layerswitcher.css">
|
||||
<link rel="stylesheet" href="./resources/qgis2web.css">
|
||||
<style>
|
||||
.search-layer {
|
||||
top: 65px;
|
||||
left: .5em;
|
||||
}
|
||||
.ol-touch .search-layer {
|
||||
top: 80px;
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
html, body {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
.ol-control button {
|
||||
background-color: #f8f8f8 !important;
|
||||
color: #000000 !important;
|
||||
border-radius: 0px !important;
|
||||
}
|
||||
.ol-zoom, .geolocate, .gcd-gl-control .ol-control {
|
||||
background-color: rgba(255,255,255,.4) !important;
|
||||
padding: 3px !important;
|
||||
}
|
||||
.ol-scale-line {
|
||||
background: none !important;
|
||||
}
|
||||
.ol-scale-line-inner {
|
||||
border: 2px solid #f8f8f8 !important;
|
||||
border-top: none !important;
|
||||
background: rgba(255, 255, 255, 0.5) !important;
|
||||
color: black !important;
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
html, body, #map {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
</style>
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="map">
|
||||
<div id="popup" class="ol-popup">
|
||||
<a href="#" id="popup-closer" class="ol-popup-closer"></a>
|
||||
<div id="popup-content"></div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="resources/qgis2web_expressions.js"></script>
|
||||
<script src="resources/polyfills.js"></script>
|
||||
<script src="./resources/functions.js"></script>
|
||||
<script src="./resources/ol.js"></script>
|
||||
<script src="./resources/ol-layerswitcher.js"></script>
|
||||
<script src="layers/curvasdenivel5m_2.js"></script><script src="layers/pontos_3.js"></script><script src="layers/rioss_4.js"></script>
|
||||
<script src="styles/curvasdenivel5m_2_style.js"></script><script src="styles/pontos_3_style.js"></script><script src="styles/rioss_4_style.js"></script>
|
||||
<script src="./layers/layers.js" type="text/javascript"></script>
|
||||
<script src="./resources/Autolinker.min.js"></script>
|
||||
<script src="./resources/qgis2web.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
Depois Largura: | Altura: | Tamanho: 131 KiB |
@@ -0,0 +1,22 @@
|
||||
<PAMDataset>
|
||||
<SRS>PROJCS["WGS 84 / Pseudo-Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["X",EAST],AXIS["Y",NORTH],EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"],AUTHORITY["EPSG","3857"]]</SRS>
|
||||
<GeoTransform> -5.9064795590899130e+06, 1.3172806410517078e+01, 0.0000000000000000e+00, -3.0059250504087680e+06, 0.0000000000000000e+00, -1.3171289245534393e+01</GeoTransform>
|
||||
<Metadata domain="IMAGE_STRUCTURE">
|
||||
<MDI key="INTERLEAVE">PIXEL</MDI>
|
||||
</Metadata>
|
||||
<Metadata>
|
||||
<MDI key="AREA_OR_POINT">Area</MDI>
|
||||
</Metadata>
|
||||
<PAMRasterBand band="1">
|
||||
<NoDataValue>0.00000000000000E+00</NoDataValue>
|
||||
</PAMRasterBand>
|
||||
<PAMRasterBand band="2">
|
||||
<NoDataValue>0.00000000000000E+00</NoDataValue>
|
||||
</PAMRasterBand>
|
||||
<PAMRasterBand band="3">
|
||||
<NoDataValue>0.00000000000000E+00</NoDataValue>
|
||||
</PAMRasterBand>
|
||||
<PAMRasterBand band="4">
|
||||
<NoDataValue>0.00000000000000E+00</NoDataValue>
|
||||
</PAMRasterBand>
|
||||
</PAMDataset>
|
||||
@@ -0,0 +1,84 @@
|
||||
var wms_layers = [];
|
||||
|
||||
|
||||
var lyr_OpenTopoMap_0 = new ol.layer.Tile({
|
||||
'title': 'OpenTopoMap',
|
||||
'type': 'base',
|
||||
'opacity': 1.000000,
|
||||
|
||||
|
||||
source: new ol.source.XYZ({
|
||||
attributions: ' · <a href="https://www.openstreetmap.org/copyright">Kartendaten: © OpenStreetMap-Mitwirkende, SRTM | Kartendarstellung: © OpenTopoMap (CC-BY-SA)</a>',
|
||||
url: 'https://a.tile.opentopomap.org/{z}/{x}/{y}.png'
|
||||
})
|
||||
});
|
||||
var lyr_altimetriaalos_1 = new ol.layer.Image({
|
||||
opacity: 1,
|
||||
title: "altimetria alos",
|
||||
|
||||
|
||||
source: new ol.source.ImageStatic({
|
||||
url: "./layers/altimetriaalos_1.png",
|
||||
attributions: ' ',
|
||||
projection: 'EPSG:3857',
|
||||
alwaysInRange: true,
|
||||
imageExtent: [-5906479.559090, -3012576.551478, -5901210.436526, -3005925.050409]
|
||||
})
|
||||
});
|
||||
var format_curvasdenivel5m_2 = new ol.format.GeoJSON();
|
||||
var features_curvasdenivel5m_2 = format_curvasdenivel5m_2.readFeatures(json_curvasdenivel5m_2,
|
||||
{dataProjection: 'EPSG:4326', featureProjection: 'EPSG:3857'});
|
||||
var jsonSource_curvasdenivel5m_2 = new ol.source.Vector({
|
||||
attributions: ' ',
|
||||
});
|
||||
jsonSource_curvasdenivel5m_2.addFeatures(features_curvasdenivel5m_2);
|
||||
var lyr_curvasdenivel5m_2 = new ol.layer.Vector({
|
||||
declutter: true,
|
||||
source:jsonSource_curvasdenivel5m_2,
|
||||
style: style_curvasdenivel5m_2,
|
||||
interactive: true,
|
||||
title: '<img src="styles/legend/curvasdenivel5m_2.png" /> curvas de nivel 5m'
|
||||
});
|
||||
var format_pontos_3 = new ol.format.GeoJSON();
|
||||
var features_pontos_3 = format_pontos_3.readFeatures(json_pontos_3,
|
||||
{dataProjection: 'EPSG:4326', featureProjection: 'EPSG:3857'});
|
||||
var jsonSource_pontos_3 = new ol.source.Vector({
|
||||
attributions: ' ',
|
||||
});
|
||||
jsonSource_pontos_3.addFeatures(features_pontos_3);
|
||||
var lyr_pontos_3 = new ol.layer.Vector({
|
||||
declutter: true,
|
||||
source:jsonSource_pontos_3,
|
||||
style: style_pontos_3,
|
||||
interactive: true,
|
||||
title: '<img src="styles/legend/pontos_3.png" /> pontos'
|
||||
});
|
||||
var format_rioss_4 = new ol.format.GeoJSON();
|
||||
var features_rioss_4 = format_rioss_4.readFeatures(json_rioss_4,
|
||||
{dataProjection: 'EPSG:4326', featureProjection: 'EPSG:3857'});
|
||||
var jsonSource_rioss_4 = new ol.source.Vector({
|
||||
attributions: ' ',
|
||||
});
|
||||
jsonSource_rioss_4.addFeatures(features_rioss_4);
|
||||
var lyr_rioss_4 = new ol.layer.Vector({
|
||||
declutter: true,
|
||||
source:jsonSource_rioss_4,
|
||||
style: style_rioss_4,
|
||||
interactive: true,
|
||||
title: '<img src="styles/legend/rioss_4.png" /> rioss'
|
||||
});
|
||||
|
||||
lyr_OpenTopoMap_0.setVisible(true);lyr_altimetriaalos_1.setVisible(true);lyr_curvasdenivel5m_2.setVisible(true);lyr_pontos_3.setVisible(true);lyr_rioss_4.setVisible(true);
|
||||
var layersList = [lyr_OpenTopoMap_0,lyr_altimetriaalos_1,lyr_curvasdenivel5m_2,lyr_pontos_3,lyr_rioss_4];
|
||||
lyr_curvasdenivel5m_2.set('fieldAliases', {'NAME': 'NAME', 'LAYER': 'LAYER', 'ELEVATION': 'ELEVATION', });
|
||||
lyr_pontos_3.set('fieldAliases', {'id': 'id', 'NUM': 'NUM', });
|
||||
lyr_rioss_4.set('fieldAliases', {'GM_LAYER': 'GM_LAYER', 'GM_TYPE': 'GM_TYPE', 'MAP_NAME': 'MAP_NAME', 'OBJECTID': 'OBJECTID', 'Id': 'Id', 'Curso_Dagu': 'Curso_Dagu', 'cotrecho': 'cotrecho', 'cocursodag': 'cocursodag', 'cobacia': 'cobacia', 'corio': 'corio', 'codom': 'codom', 'dedominial': 'dedominial', 'nucomptrec': 'nucomptrec', 'nudistbact': 'nudistbact', 'nudistcdag': 'nudistcdag', 'nuareacont': 'nuareacont', 'nuareamont': 'nuareamont', 'nunivotto': 'nunivotto', 'decorpodag': 'decorpodag', 'deligacao': 'deligacao', 'norio': 'norio', 'noriocomp': 'noriocomp', 'nucomprio': 'nucomprio', 'nudistbacr': 'nudistbacr', 'cocdadesag': 'cocdadesag', 'nucompcda': 'nucompcda', 'nutrjus': 'nutrjus', 'nutrmon': 'nutrmon', 'nutrafl': 'nutrafl', 'nudistbacc': 'nudistbacc', 'nuareabacc': 'nuareabacc', 'nuordemcda': 'nuordemcda', 'nunivotcda': 'nunivotcda', 'nulondetre': 'nulondetre', 'nulatdetre': 'nulatdetre', 'nulonpatre': 'nulonpatre', 'nulatpatre': 'nulatpatre', 'nulondecda': 'nulondecda', 'nulatdecda': 'nulatdecda', 'nulonpacda': 'nulonpacda', 'nulatpacda': 'nulatpacda', 'nulonderio': 'nulonderio', 'nulatderio': 'nulatderio', 'nulonpario': 'nulonpario', 'nulatpario': 'nulatpario', 'dtversao': 'dtversao', 'LAYER': 'LAYER', 'Nome': 'Nome', 'Fonte_Topo': 'Fonte_Topo', 'Tipo_Drena': 'Tipo_Drena', 'Regime': 'Regime', 'Compriment': 'Compriment', 'Fonte_Mape': 'Fonte_Mape', 'Data_Mapea': 'Data_Mapea', 'Shape_Leng': 'Shape_Leng', 'LINE_STYLE': 'LINE_STYLE', 'LINE_COLOR': 'LINE_COLOR', 'LINE_WIDTH': 'LINE_WIDTH', });
|
||||
lyr_curvasdenivel5m_2.set('fieldImages', {'NAME': '', 'LAYER': '', 'ELEVATION': '', });
|
||||
lyr_pontos_3.set('fieldImages', {'id': '', 'NUM': '', });
|
||||
lyr_rioss_4.set('fieldImages', {'GM_LAYER': 'TextEdit', 'GM_TYPE': 'TextEdit', 'MAP_NAME': 'TextEdit', 'OBJECTID': 'Range', 'Id': 'Range', 'Curso_Dagu': 'TextEdit', 'cotrecho': 'Range', 'cocursodag': 'TextEdit', 'cobacia': 'TextEdit', 'corio': 'TextEdit', 'codom': 'Range', 'dedominial': 'TextEdit', 'nucomptrec': 'TextEdit', 'nudistbact': 'TextEdit', 'nudistcdag': 'TextEdit', 'nuareacont': 'TextEdit', 'nuareamont': 'TextEdit', 'nunivotto': 'Range', 'decorpodag': 'TextEdit', 'deligacao': 'TextEdit', 'norio': 'TextEdit', 'noriocomp': 'TextEdit', 'nucomprio': 'TextEdit', 'nudistbacr': 'TextEdit', 'cocdadesag': 'TextEdit', 'nucompcda': 'TextEdit', 'nutrjus': 'Range', 'nutrmon': 'Range', 'nutrafl': 'Range', 'nudistbacc': 'TextEdit', 'nuareabacc': 'TextEdit', 'nuordemcda': 'Range', 'nunivotcda': 'Range', 'nulondetre': 'TextEdit', 'nulatdetre': 'TextEdit', 'nulonpatre': 'TextEdit', 'nulatpatre': 'TextEdit', 'nulondecda': 'TextEdit', 'nulatdecda': 'TextEdit', 'nulonpacda': 'TextEdit', 'nulatpacda': 'TextEdit', 'nulonderio': 'TextEdit', 'nulatderio': 'TextEdit', 'nulonpario': 'TextEdit', 'nulatpario': 'TextEdit', 'dtversao': 'TextEdit', 'LAYER': 'TextEdit', 'Nome': 'TextEdit', 'Fonte_Topo': 'TextEdit', 'Tipo_Drena': 'TextEdit', 'Regime': 'TextEdit', 'Compriment': 'TextEdit', 'Fonte_Mape': 'TextEdit', 'Data_Mapea': 'TextEdit', 'Shape_Leng': 'TextEdit', 'LINE_STYLE': 'TextEdit', 'LINE_COLOR': 'TextEdit', 'LINE_WIDTH': 'Range', });
|
||||
lyr_curvasdenivel5m_2.set('fieldLabels', {'NAME': 'no label', 'LAYER': 'no label', 'ELEVATION': 'no label', });
|
||||
lyr_pontos_3.set('fieldLabels', {'id': 'no label', 'NUM': 'no label', });
|
||||
lyr_rioss_4.set('fieldLabels', {'GM_LAYER': 'no label', 'GM_TYPE': 'no label', 'MAP_NAME': 'no label', 'OBJECTID': 'no label', 'Id': 'no label', 'Curso_Dagu': 'no label', 'cotrecho': 'no label', 'cocursodag': 'no label', 'cobacia': 'no label', 'corio': 'no label', 'codom': 'no label', 'dedominial': 'no label', 'nucomptrec': 'no label', 'nudistbact': 'no label', 'nudistcdag': 'no label', 'nuareacont': 'no label', 'nuareamont': 'no label', 'nunivotto': 'no label', 'decorpodag': 'no label', 'deligacao': 'no label', 'norio': 'no label', 'noriocomp': 'no label', 'nucomprio': 'no label', 'nudistbacr': 'no label', 'cocdadesag': 'no label', 'nucompcda': 'no label', 'nutrjus': 'no label', 'nutrmon': 'no label', 'nutrafl': 'no label', 'nudistbacc': 'no label', 'nuareabacc': 'no label', 'nuordemcda': 'no label', 'nunivotcda': 'no label', 'nulondetre': 'no label', 'nulatdetre': 'no label', 'nulonpatre': 'no label', 'nulatpatre': 'no label', 'nulondecda': 'no label', 'nulatdecda': 'no label', 'nulonpacda': 'no label', 'nulatpacda': 'no label', 'nulonderio': 'no label', 'nulatderio': 'no label', 'nulonpario': 'no label', 'nulatpario': 'no label', 'dtversao': 'no label', 'LAYER': 'no label', 'Nome': 'no label', 'Fonte_Topo': 'no label', 'Tipo_Drena': 'no label', 'Regime': 'no label', 'Compriment': 'no label', 'Fonte_Mape': 'no label', 'Data_Mapea': 'no label', 'Shape_Leng': 'no label', 'LINE_STYLE': 'no label', 'LINE_COLOR': 'no label', 'LINE_WIDTH': 'no label', });
|
||||
lyr_rioss_4.on('precompose', function(evt) {
|
||||
evt.context.globalCompositeOperation = 'normal';
|
||||
});
|
||||
@@ -0,0 +1 @@
|
||||
var json_pontos_3 = {"type":"FeatureCollection","name":"pontos_3","crs":{"type":"name","properties":{"name":"urn:ogc:def:crs:OGC:1.3:CRS84"}},"features":[{"type":"Feature","properties":{"id":null,"NUM":"1"},"geometry":{"type":"Point","coordinates":[-53.024696411284417,-26.087055138096765]}},{"type":"Feature","properties":{"id":null,"NUM":"2"},"geometry":{"type":"Point","coordinates":[-53.029854971795302,-26.093844566473447]}},{"type":"Feature","properties":{"id":null,"NUM":"3"},"geometry":{"type":"Point","coordinates":[-53.012960958818446,-26.083340595178786]}},{"type":"Feature","properties":{"id":null,"NUM":"4"},"geometry":{"type":"Point","coordinates":[-53.022253925422575,-26.082252808386318]}},{"type":"Feature","properties":{"id":null,"NUM":"5"},"geometry":{"type":"Point","coordinates":[-53.032210258344705,-26.081246959232423]}},{"type":"Feature","properties":{"id":null,"NUM":"6"},"geometry":{"type":"Point","coordinates":[-53.032337659126327,-26.071390771490481]}},{"type":"Feature","properties":{"id":null,"NUM":"7"},"geometry":{"type":"Point","coordinates":[-53.029569587598331,-26.069711397550904]}},{"type":"Feature","properties":{"id":null,"NUM":"8"},"geometry":{"type":"Point","coordinates":[-53.036038072738002,-26.069911185140263]}},{"type":"Feature","properties":{"id":null,"NUM":"9"},"geometry":{"type":"Point","coordinates":[-53.045239883737977,-26.066613242179614]}}]}
|
||||
@@ -0,0 +1,46 @@
|
||||
(function(aa){function N(b,a){var c=b.x-a.x,d=b.y-a.y;return c*c+d*d}function qa(b){var a=b.length;if(16>a)return!1;var c,d=Infinity,f=-Infinity,e=Infinity,g=-Infinity;for(c=0;c<a-1;c+=2)d=Math.min(d,b[c]),f=Math.max(f,b[c]),e=Math.min(e,b[c+1]),g=Math.max(g,b[c+1]);c=f-d;g-=e;f=c/g;if(0.85>f||1.15<f)return!1;d={x:d+c/2,y:e+g/2};c=(c+g)/4;e=c*c;for(c=0;c<a-1;c+=2)if(g=N({x:b[c],y:b[c+1]},d),0.8>g/e||1.2<g/e)return!1;return!0}function ga(b,a){var c={};b/=O;a/=O;var d=ra,f;f=0>=a?90:1<=a?-90:(2*sa(ta(C*
|
||||
(1-2*a)))-I)/C*180;c[d]=f;c[ua]=360*(1===b?1:(b%1+1)%1)-180;return c}function ba(b,a){var c=P(1,J(0,0.5-va(ha(wa+I*b/180))/C/2));return{x:(a/360+0.5)*O<<0,y:c*O<<0}}function Q(b){for(var a=u+p,c=z+n,d=0,f=b.length-3;d<f;d+=2)if(b[d]>p&&b[d]<a&&b[d+1]>n&&b[d+1]<c)return!0;return!1}function xa(){X||(X=setInterval(function(){for(var b=E.items,a=!1,c=0,d=b.length;c<d;c++)1>b[c].scale&&(b[c].scale+=0.1,1<b[c].scale&&(b[c].scale=1),a=!0);R.render();a||(clearInterval(X),X=null)},33))}function ya(b){u=b.width;
|
||||
z=b.height;Y=u/2<<0;ca=z/2<<0;S=Y;T=z;R.setSize(u,z);da=q-50}var w=Math,ta=w.exp,va=w.log,za=w.sin,Aa=w.cos,ha=w.tan,sa=w.atan,K=w.atan2,P=w.min,J=w.max,ia=w.sqrt,ja=w.ceil,ka=w.pow,la=la||Array,ma=ma||Array,w=/iP(ad|hone|od)/g.test(navigator.userAgent),D=!!~navigator.userAgent.indexOf("Trident"),Ba=!aa.requestAnimationFrame||w||D?function(b){b()}:aa.requestAnimationFrame,F=function(b){function a(a,b,c){0>c&&(c+=1);1<c&&(c-=1);return c<1/6?a+6*(b-a)*c:0.5>c?b:c<2/3?a+(b-a)*(2/3-c)*6:a}var c={aqua:"#00ffff",
|
||||
black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",grey:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",orange:"#ffa500",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00"},d=function(a,b,c,d){this.H=a;this.S=b;this.L=c;this.A=d};d.parse=function(a){var b=0,d=0,h=0,k=1,m;a=(""+a).toLowerCase();a=c[a]||a;if(m=a.match(/^#(\w{2})(\w{2})(\w{2})$/))b=parseInt(m[1],16),d=parseInt(m[2],16),h=parseInt(m[3],
|
||||
16);else if(m=a.match(/rgba?\((\d+)\D+(\d+)\D+(\d+)(\D+([\d.]+))?\)/))b=parseInt(m[1],10),d=parseInt(m[2],10),h=parseInt(m[3],10),k=m[4]?parseFloat(m[5]):1;else return;return this.fromRGBA(b,d,h,k)};d.fromRGBA=function(a,b,c,h){"object"===typeof a?(b=a.g/255,c=a.b/255,h=a.a,a=a.r/255):(a/=255,b/=255,c/=255);var k=Math.max(a,b,c),m=Math.min(a,b,c),l,y=(k+m)/2,s=k-m;if(s){m=0.5<y?s/(2-k-m):s/(k+m);switch(k){case a:l=(b-c)/s+(b<c?6:0);break;case b:l=(c-a)/s+2;break;case c:l=(a-b)/s+4}l*=60}else l=m=
|
||||
0;return new d(l,m,y,h)};d.prototype={toRGBA:function(){var b=Math.min(360,Math.max(0,this.H)),c=Math.min(1,Math.max(0,this.S)),d=Math.min(1,Math.max(0,this.L)),h=Math.min(1,Math.max(0,this.A)),k;if(0===c)b=k=c=d;else{var m=0.5>d?d*(1+c):d+c-d*c,d=2*d-m,b=b/360,c=a(d,m,b+1/3);k=a(d,m,b);b=a(d,m,b-1/3)}return{r:Math.round(255*c),g:Math.round(255*k),b:Math.round(255*b),a:h}},toString:function(){var a=this.toRGBA();return 1===a.a?"#"+(16777216+(a.r<<16)+(a.g<<8)+a.b).toString(16).slice(1,7):"rgba("+
|
||||
[a.r,a.g,a.b,a.a.toFixed(2)].join()+")"},hue:function(a){return new d(this.H*a,this.S,this.L,this.A)},saturation:function(a){return new d(this.H,this.S*a,this.L,this.A)},lightness:function(a){return new d(this.H,this.S,this.L*a,this.A)},alpha:function(a){return new d(this.H,this.S,this.L,this.A*a)}};return d}(this),Ca=function(){var b=Math,a=b.PI,c=b.sin,d=b.cos,f=b.tan,e=b.asin,g=b.atan2,h=a/180,k=23.4397*h;return function(b,l,y){y=h*-y;l*=h;b=b.valueOf()/864E5-0.5+2440588-2451545;var s=h*(357.5291+
|
||||
0.98560028*b),A;A=h*(1.9148*c(s)+0.02*c(2*s)+3E-4*c(3*s));A=s+A+102.9372*h+a;s=e(c(0)*d(k)+d(0)*c(k)*c(A));A=g(c(A)*d(k)-f(0)*c(k),d(A));b=h*(280.16+360.9856235*b)-y-A;y=e(c(l)*c(s)+d(l)*d(s)*d(b));l=g(c(b),d(b)*c(l)-f(s)*d(l));return{altitude:y,azimuth:l-a/2}}}(),Ea=function(){function b(a){a=a.toLowerCase();return"#"===a[0]?a:d[f[a]||a]||null}function a(a,b){var c,d,f,s,A=0,p,n;p=0;for(n=a.length-3;p<n;p+=2)c=a[p],d=a[p+1],f=a[p+2],s=a[p+3],A+=c*s-f*d;if((0<A/2?e:g)===b)return a;c=[];for(d=a.length-
|
||||
2;0<=d;d-=2)c.push(a[d],a[d+1]);return c}function c(b){var d,f,l=[],y;switch(b.type){case "GeometryCollection":l=[];d=0;for(f=b.geometries.length;d<f;d++)(y=c(b.geometries[d]))&&l.push.apply(l,y);return l;case "MultiPolygon":l=[];d=0;for(f=b.coordinates.length;d<f;d++)(y=c({type:"Polygon",coordinates:b.coordinates[d]}))&&l.push.apply(l,y);return l;case "Polygon":b=b.coordinates;break;default:return[]}var s,p=[],n=[];s=b[0];d=0;for(f=s.length;d<f;d++)p.push(s[d][1],s[d][0]);p=a(p,e);d=0;for(f=b.length-
|
||||
1;d<f;d++){s=b[d+1];n[d]=[];l=0;for(y=s.length;l<y;l++)n[d].push(s[l][1],s[l][0]);n[d]=a(n[d],g)}return[{outer:p,inner:n.length?n:null}]}var d={brick:"#cc7755",bronze:"#ffeecc",canvas:"#fff8f0",concrete:"#999999",copper:"#a0e0d0",glass:"#e8f8f8",gold:"#ffcc00",plants:"#009933",metal:"#aaaaaa",panel:"#fff8f0",plaster:"#999999",roof_tiles:"#f08060",silver:"#cccccc",slate:"#666666",stone:"#996666",tar_paper:"#333333",wood:"#deb887"},f={asphalt:"tar_paper",bitumen:"tar_paper",block:"stone",bricks:"brick",
|
||||
glas:"glass",glassfront:"glass",grass:"plants",masonry:"stone",granite:"stone",panels:"panel",paving_stones:"stone",plastered:"plaster",rooftiles:"roof_tiles",roofingfelt:"tar_paper",sandstone:"stone",sheet:"canvas",sheets:"canvas",shingle:"tar_paper",shingles:"tar_paper",slates:"slate",steel:"metal",tar:"tar_paper",tent:"canvas",thatch:"plants",tile:"roof_tiles",tiles:"roof_tiles"},e="CW",g="CCW";return{read:function(a){if(!a||"FeatureCollection"!==a.type)return[];a=a.features;var d,f,e,g,p=[],n,
|
||||
q,w,r;d=0;for(f=a.length;d<f;d++)if(n=a[d],"Feature"===n.type&&!1!==na(n)){e=n.properties;g={};e=e||{};g.height=e.height||(e.levels?3*e.levels:Da);g.minHeight=e.minHeight||(e.minLevel?3*e.minLevel:0);if(q=e.material?b(e.material):e.wallColor||e.color)g.wallColor=q;if(q=e.roofMaterial?b(e.roofMaterial):e.roofColor)g.roofColor=q;switch(e.shape){case "cylinder":case "cone":case "dome":case "sphere":g.shape=e.shape;g.isRotational=!0;break;case "pyramid":g.shape=e.shape}switch(e.roofShape){case "cone":case "dome":g.roofShape=
|
||||
e.roofShape;g.isRotational=!0;break;case "pyramid":g.roofShape=e.roofShape}g.roofShape&&e.roofHeight?(g.roofHeight=e.roofHeight,g.height=J(0,g.height-g.roofHeight)):g.roofHeight=0;w=g;q=c(n.geometry);e=0;for(g=q.length;e<g;e++){r=w;var t={},G=void 0;for(G in r)r.hasOwnProperty(G)&&(t[G]=r[G]);r=t;r.footprint=q[e].outer;if(r.isRotational){for(var t=r,G=r.footprint,v=180,x=-180,u=0,z=G.length;u<z;u+=2)v=P(v,G[u+1]),x=J(x,G[u+1]);t.radius=(x-v)/2}q[e].inner&&(r.holes=q[e].inner);if(n.id||n.properties.id)r.id=
|
||||
n.id||n.properties.id;n.properties.relationId&&(r.relationId=n.properties.relationId);p.push(r)}}return p}}}(),C=Math.PI,I=C/2,wa=C/4,v,O,ra="latitude",ua="longitude",u=0,z=0,Y=0,ca=0,p=0,n=0,H=F.parse("rgba(200, 190, 180)"),Z=H.lightness(0.8),L=H.lightness(1.2),ea=""+H,$=""+Z,U=""+L,oa=0,B=1,da,Da=5,S,T,q=450,Fa=function(){function b(b,g){if(a[b])g&&g(a[b]);else{var h=new XMLHttpRequest;h.onreadystatechange=function(){if(4===h.readyState&&h.status&&!(200>h.status||299<h.status)&&g&&h.responseText){var k=
|
||||
h.responseText;a[b]=k;c.push({url:b,size:k.length});d+=k.length;for(g(k);d>f;)k=c.shift(),d-=k.size,delete a[k.url]}};h.open("GET",b);h.send(null);return h}}var a={},c=[],d=0,f=5242880;return{loadJSON:function(a,c){return b(a,function(a){var b;try{b=JSON.parse(a)}catch(d){}c(b)})}}}(),E={loadedItems:{},items:[],getPixelFootprint:function(b){for(var a=new la(b.length),c,d=0,f=b.length-1;d<f;d+=2)c=ba(b[d],b[d+1]),a[d]=c.x,a[d+1]=c.y;b=a;a=b.length/2;c=new ma(a);var d=0,f=a-1,e,g,h,k,m=[],l=[],n=[];
|
||||
for(c[d]=c[f]=1;f;){g=0;for(e=d+1;e<f;e++){h=b[2*e];var p=b[2*e+1],q=b[2*d],r=b[2*d+1],t=b[2*f],w=b[2*f+1],u=t-q,v=w-r,x=void 0;if(0!==u||0!==v)x=((h-q)*u+(p-r)*v)/(u*u+v*v),1<x?(q=t,r=w):0<x&&(q+=u*x,r+=v*x);u=h-q;v=p-r;h=u*u+v*v;h>g&&(k=e,g=h)}2<g&&(c[k]=1,m.push(d),l.push(k),m.push(k),l.push(f));d=m.pop();f=l.pop()}for(e=0;e<a;e++)c[e]&&n.push(b[2*e],b[2*e+1]);a=n;if(!(8>a.length))return a},resetItems:function(){this.items=[];this.loadedItems={};V.reset()},addRenderItems:function(b,a){for(var c,
|
||||
d,f,e=Ea.read(b),g=0,h=e.length;g<h;g++)c=e[g],f=c.id||[c.footprint[0],c.footprint[1],c.height,c.minHeight].join(),!this.loadedItems[f]&&(d=this.scale(c))&&(d.scale=a?0:1,this.items.push(d),this.loadedItems[f]=1);xa()},scale:function(b){var a={},c=6/ka(2,v-15);b.id&&(a.id=b.id);a.height=P(b.height/c,da);a.minHeight=isNaN(b.minHeight)?0:b.minHeight/c;if(!(a.minHeight>da)&&(a.footprint=this.getPixelFootprint(b.footprint),a.footprint)){for(var d=a.footprint,f=Infinity,e=-Infinity,g=Infinity,h=-Infinity,
|
||||
k=0,m=d.length-3;k<m;k+=2)f=P(f,d[k]),e=J(e,d[k]),g=P(g,d[k+1]),h=J(h,d[k+1]);a.center={x:f+(e-f)/2<<0,y:g+(h-g)/2<<0};b.radius&&(a.radius=b.radius*oa);b.shape&&(a.shape=b.shape);b.roofShape&&(a.roofShape=b.roofShape);"cone"!==a.roofShape&&"dome"!==a.roofShape||a.shape||!qa(a.footprint)||(a.shape="cylinder");if(b.holes){a.holes=[];for(var l,d=0,f=b.holes.length;d<f;d++)(l=this.getPixelFootprint(b.holes[d]))&&a.holes.push(l)}var n;b.wallColor&&(n=F.parse(b.wallColor))&&(n=n.alpha(B),a.altColor=""+
|
||||
n.lightness(0.8),a.wallColor=""+n);b.roofColor&&(n=F.parse(b.roofColor))&&(a.roofColor=""+n.alpha(B));b.relationId&&(a.relationId=b.relationId);a.hitColor=V.idToColor(b.relationId||b.id);a.roofHeight=isNaN(b.roofHeight)?0:b.roofHeight/c;if(!(a.height+a.roofHeight<=a.minHeight))return a}},set:function(b){this.isStatic=!0;this.resetItems();this._staticData=b;this.addRenderItems(this._staticData,!0)},load:function(b,a){this.src=b||"http://{s}.data.osmbuildings.org/0.2/{k}/tile/{z}/{x}/{y}.json".replace("{k}",
|
||||
a||"anonymous");this.update()},update:function(){function b(a){g.addRenderItems(a)}this.resetItems();if(!(15>v))if(this.isStatic&&this._staticData)this.addRenderItems(this._staticData);else if(this.src){var a=16<v?256<<v-16:256>>16-v,c=p/a<<0,d=n/a<<0,f=ja((p+u)/a),a=ja((n+z)/a),e,g=this;for(e=d;e<=a;e++)for(d=c;d<=f;d++)this.loadTile(d,e,16,b)}},loadTile:function(b,a,c,d){b=this.src.replace("{s}","abcd"[(b+a)%4]).replace("{x}",b).replace("{y}",a).replace("{z}",c);return Fa.loadJSON(b,d)}},W={draw:function(b,
|
||||
a,c,d,f,e,g,h){var k,m=this._extrude(b,a,d,f,e,g),l=[];if(c)for(a=0,k=c.length;a<k;a++)l[a]=this._extrude(b,c[a],d,f,e,g);b.fillStyle=h;b.beginPath();this._ring(b,m);if(c)for(a=0,k=l.length;a<k;a++)this._ring(b,l[a]);b.closePath();b.stroke();b.fill()},_extrude:function(b,a,c,d,f,e){c=q/(q-c);for(var g=q/(q-d),h={x:0,y:0},k={x:0,y:0},m,l,y=[],s=0,t=a.length-3;s<t;s+=2)h.x=a[s]-p,h.y=a[s+1]-n,k.x=a[s+2]-p,k.y=a[s+3]-n,m=r.project(h,c),l=r.project(k,c),d&&(h=r.project(h,g),k=r.project(k,g)),(k.x-h.x)*
|
||||
(m.y-h.y)>(m.x-h.x)*(k.y-h.y)&&(b.fillStyle=h.x<k.x&&h.y<k.y||h.x>k.x&&h.y>k.y?e:f,b.beginPath(),this._ring(b,[k.x,k.y,h.x,h.y,m.x,m.y,l.x,l.y]),b.closePath(),b.fill()),y[s]=m.x,y[s+1]=m.y;return y},_ring:function(b,a){b.moveTo(a[0],a[1]);for(var c=2,d=a.length-1;c<d;c+=2)b.lineTo(a[c],a[c+1])},simplified:function(b,a,c){b.beginPath();this._ringAbs(b,a);if(c){a=0;for(var d=c.length;a<d;a++)this._ringAbs(b,c[a])}b.closePath();b.stroke();b.fill()},_ringAbs:function(b,a){b.moveTo(a[0]-p,a[1]-n);for(var c=
|
||||
2,d=a.length-1;c<d;c+=2)b.lineTo(a[c]-p,a[c+1]-n)},shadow:function(b,a,c,d,f){for(var e=null,g={x:0,y:0},h={x:0,y:0},k,m,l=0,q=a.length-3;l<q;l+=2)g.x=a[l]-p,g.y=a[l+1]-n,h.x=a[l+2]-p,h.y=a[l+3]-n,k=x.project(g,d),m=x.project(h,d),f&&(g=x.project(g,f),h=x.project(h,f)),(h.x-g.x)*(k.y-g.y)>(k.x-g.x)*(h.y-g.y)?(1===e&&b.lineTo(g.x,g.y),e=0,l||b.moveTo(g.x,g.y),b.lineTo(h.x,h.y)):(0===e&&b.lineTo(k.x,k.y),e=1,l||b.moveTo(k.x,k.y),b.lineTo(m.x,m.y));if(c)for(l=0,q=c.length;l<q;l++)this._ringAbs(b,c[l])},
|
||||
shadowMask:function(b,a,c){this._ringAbs(b,a);if(c){a=0;for(var d=c.length;a<d;a++)this._ringAbs(b,c[a])}},hitArea:function(b,a,c,d,f,e){c=null;var g={x:0,y:0},h={x:0,y:0};d=q/(q-d);var k=q/(q-f),m;b.fillStyle=e;b.beginPath();for(var l=0,y=a.length-3;l<y;l+=2)g.x=a[l]-p,g.y=a[l+1]-n,h.x=a[l+2]-p,h.y=a[l+3]-n,e=r.project(g,d),m=r.project(h,d),f&&(g=r.project(g,k),h=r.project(h,k)),(h.x-g.x)*(e.y-g.y)>(e.x-g.x)*(h.y-g.y)?(1===c&&b.lineTo(g.x,g.y),c=0,l||b.moveTo(g.x,g.y),b.lineTo(h.x,h.y)):(0===c&&
|
||||
b.lineTo(e.x,e.y),c=1,l||b.moveTo(e.x,e.y),b.lineTo(m.x,m.y));b.closePath();b.fill()}},t={draw:function(b,a,c,d,f,e,g,h,k){a={x:a.x-p,y:a.y-n};var m=q/(q-f),l=q/(q-e);f=r.project(a,m);d*=m;e&&(a=r.project(a,l),c*=l);(m=this._tangents(a,c,f,d))?(e=K(m[0].y1-a.y,m[0].x1-a.x),m=K(m[1].y1-a.y,m[1].x1-a.x)):(e=1.5*C,m=1.5*C);b.fillStyle=g;b.beginPath();b.arc(f.x,f.y,d,I,e,!0);b.arc(a.x,a.y,c,e,I);b.closePath();b.fill();b.fillStyle=h;b.beginPath();b.arc(f.x,f.y,d,m,I,!0);b.arc(a.x,a.y,c,I,m);b.closePath();
|
||||
b.fill();b.fillStyle=k;this._circle(b,f,d)},simplified:function(b,a,c){this._circle(b,{x:a.x-p,y:a.y-n},c)},shadow:function(b,a,c,d,f,e){a={x:a.x-p,y:a.y-n};f=x.project(a,f);var g;e&&(a=x.project(a,e));var h=this._tangents(a,c,f,d);h?(e=K(h[0].y1-a.y,h[0].x1-a.x),g=K(h[1].y1-a.y,h[1].x1-a.x),b.moveTo(h[1].x2,h[1].y2),b.arc(f.x,f.y,d,g,e),b.arc(a.x,a.y,c,e,g)):(b.moveTo(a.x+c,a.y),b.arc(a.x,a.y,c,0,2*C))},shadowMask:function(b,a,c){var d=a.x-p;a=a.y-n;b.moveTo(d+c,a);b.arc(d,a,c,0,2*C)},hitArea:function(b,
|
||||
a,c,d,f,e,g){a={x:a.x-p,y:a.y-n};var h=q/(q-f),k=q/(q-e);f=r.project(a,h);d*=h;e&&(a=r.project(a,k),c*=k);e=this._tangents(a,c,f,d);b.fillStyle=g;b.beginPath();e?(g=K(e[0].y1-a.y,e[0].x1-a.x),h=K(e[1].y1-a.y,e[1].x1-a.x),b.moveTo(e[1].x2,e[1].y2),b.arc(f.x,f.y,d,h,g),b.arc(a.x,a.y,c,g,h)):(b.moveTo(a.x+c,a.y),b.arc(a.x,a.y,c,0,2*C));b.closePath();b.fill()},_circle:function(b,a,c){b.beginPath();b.arc(a.x,a.y,c,0,2*C);b.stroke();b.fill()},_tangents:function(b,a,c,d){var f=b.x-c.x,e=b.y-c.y,g=a-d,h=
|
||||
f*f+e*e;if(!(h<=g*g)){var h=ia(h),f=-f/h,e=-e/h,g=g/h,h=[],k,m,l;k=ia(J(0,1-g*g));for(var n=1;-1<=n;n-=2)m=f*g-n*k*e,l=e*g+n*k*f,h.push({x1:b.x+a*m<<0,y1:b.y+a*l<<0,x2:c.x+d*m<<0,y2:c.y+d*l<<0});return h}}},M={draw:function(b,a,c,d,f,e,g){var h=q/(q-f);c=r.project({x:c.x-p,y:c.y-n},q/(q-d));d={x:0,y:0};for(var k={x:0,y:0},m=0,l=a.length-3;m<l;m+=2)d.x=a[m]-p,d.y=a[m+1]-n,k.x=a[m+2]-p,k.y=a[m+3]-n,f&&(d=r.project(d,h),k=r.project(k,h)),(k.x-d.x)*(c.y-d.y)>(c.x-d.x)*(k.y-d.y)&&(b.fillStyle=d.x<k.x&&
|
||||
d.y<k.y||d.x>k.x&&d.y>k.y?g:e,b.beginPath(),this._triangle(b,d,k,c),b.closePath(),b.fill())},_triangle:function(b,a,c,d){b.moveTo(a.x,a.y);b.lineTo(c.x,c.y);b.lineTo(d.x,d.y)},_ring:function(b,a){b.moveTo(a[0]-p,a[1]-n);for(var c=2,d=a.length-1;c<d;c+=2)b.lineTo(a[c]-p,a[c+1]-n)},shadow:function(b,a,c,d,f){var e={x:0,y:0},g={x:0,y:0};c=x.project({x:c.x-p,y:c.y-n},d);d=0;for(var h=a.length-3;d<h;d+=2)e.x=a[d]-p,e.y=a[d+1]-n,g.x=a[d+2]-p,g.y=a[d+3]-n,f&&(e=x.project(e,f),g=x.project(g,f)),(g.x-e.x)*
|
||||
(c.y-e.y)>(c.x-e.x)*(g.y-e.y)&&this._triangle(b,e,g,c)},shadowMask:function(b,a){this._ring(b,a)},hitArea:function(b,a,c,d,f,e){var g=q/(q-f);c=r.project({x:c.x-p,y:c.y-n},q/(q-d));d={x:0,y:0};var h={x:0,y:0};b.fillStyle=e;b.beginPath();e=0;for(var k=a.length-3;e<k;e+=2)d.x=a[e]-p,d.y=a[e+1]-n,h.x=a[e+2]-p,h.y=a[e+3]-n,f&&(d=r.project(d,g),h=r.project(h,g)),(h.x-d.x)*(c.y-d.y)>(c.x-d.x)*(h.y-d.y)&&this._triangle(b,d,h,c);b.closePath();b.fill()}},r={project:function(b,a){return{x:(b.x-S)*a+S<<0,y:(b.y-
|
||||
T)*a+T<<0}},render:function(){var b=this.context;b.clearRect(0,0,u,z);if(!(15>v)){var a,c,d,f={x:S+p,y:T+n},e,g,h,k,m=E.items;m.sort(function(a,b){return a.minHeight-b.minHeight||N(b.center,f)-N(a.center,f)||b.height-a.height});for(var l=0,q=m.length;l<q;l++)if(a=m[l],!fa.isSimple(a)&&(e=a.footprint,Q(e))){c=1>a.scale?a.height*a.scale:a.height;d=0;a.minHeight&&(d=1>a.scale?a.minHeight*a.scale:a.minHeight);g=a.wallColor||ea;h=a.altColor||$;k=a.roofColor||U;b.strokeStyle=h;switch(a.shape){case "cylinder":t.draw(b,
|
||||
a.center,a.radius,a.radius,c,d,g,h,k);break;case "cone":t.draw(b,a.center,a.radius,0,c,d,g,h);break;case "dome":t.draw(b,a.center,a.radius,a.radius/2,c,d,g,h);break;case "sphere":t.draw(b,a.center,a.radius,a.radius,c,d,g,h,k);break;case "pyramid":M.draw(b,e,a.center,c,d,g,h);break;default:W.draw(b,e,a.holes,c,d,g,h,k)}switch(a.roofShape){case "cone":t.draw(b,a.center,a.radius,0,c+a.roofHeight,c,k,""+F.parse(k).lightness(0.9));break;case "dome":t.draw(b,a.center,a.radius,a.radius/2,c+a.roofHeight,
|
||||
c,k,""+F.parse(k).lightness(0.9));break;case "pyramid":M.draw(b,e,a.center,c+a.roofHeight,c,k,F.parse(k).lightness(0.9))}}}}},fa={maxZoom:17,maxHeight:5,isSimple:function(b){return v<=this.maxZoom&&b.height+b.roofHeight<this.maxHeight},render:function(){var b=this.context;b.clearRect(0,0,u,z);if(!(15>v||v>this.maxZoom))for(var a,c,d=E.items,f=0,e=d.length;f<e;f++)if(a=d[f],!(a.height>=this.maxHeight)&&(c=a.footprint,Q(c)))switch(b.strokeStyle=a.altColor||$,b.fillStyle=a.roofColor||U,a.shape){case "cylinder":case "cone":case "dome":case "sphere":t.simplified(b,
|
||||
a.center,a.radius);break;default:W.simplified(b,c,a.holes)}}},x={enabled:!0,color:"#666666",blurColor:"#000000",blurSize:15,date:new Date,direction:{x:0,y:0},project:function(b,a){return{x:b.x+this.direction.x*a,y:b.y+this.direction.y*a}},render:function(){var b=this.context,a,c,d;b.clearRect(0,0,u,z);if(!(!this.enabled||15>v||(a=ga(Y+p,ca+n),a=Ca(this.date,a.latitude,a.longitude),0>=a.altitude))){c=1/ha(a.altitude);d=5>c?0.75:1/c*5;this.direction.x=Aa(a.azimuth)*c;this.direction.y=za(a.azimuth)*
|
||||
c;var f,e,g,h;a=E.items;b.canvas.style.opacity=d/(2*B);b.shadowColor=this.blurColor;b.shadowBlur=B/2*this.blurSize;b.fillStyle=this.color;b.beginPath();d=0;for(c=a.length;d<c;d++)if(f=a[d],h=f.footprint,Q(h)){e=1>f.scale?f.height*f.scale:f.height;g=0;f.minHeight&&(g=1>f.scale?f.minHeight*f.scale:f.minHeight);switch(f.shape){case "cylinder":t.shadow(b,f.center,f.radius,f.radius,e,g);break;case "cone":t.shadow(b,f.center,f.radius,0,e,g);break;case "dome":t.shadow(b,f.center,f.radius,f.radius/2,e,g);
|
||||
break;case "sphere":t.shadow(b,f.center,f.radius,f.radius,e,g);break;case "pyramid":M.shadow(b,h,f.center,e,g);break;default:W.shadow(b,h,f.holes,e,g)}switch(f.roofShape){case "cone":t.shadow(b,f.center,f.radius,0,e+f.roofHeight,e);break;case "dome":t.shadow(b,f.center,f.radius,f.radius/2,e+f.roofHeight,e);break;case "pyramid":M.shadow(b,h,f.center,e+f.roofHeight,e)}}b.closePath();b.fill();b.shadowBlur=null;b.globalCompositeOperation="destination-out";b.beginPath();d=0;for(c=a.length;d<c;d++)if(f=
|
||||
a[d],h=f.footprint,Q(h)&&!f.minHeight)switch(f.shape){case "cylinder":case "cone":case "dome":t.shadowMask(b,f.center,f.radius);break;default:W.shadowMask(b,h,f.holes)}b.fillStyle="#00ff00";b.fill();b.globalCompositeOperation="source-over"}}},V={_idMapping:[null],reset:function(){this._idMapping=[null]},render:function(){if(!this._timer){var b=this;this._timer=setTimeout(function(){b._timer=null;b._render()},500)}},_render:function(){var b=this.context;b.clearRect(0,0,u,z);if(!(15>v)){var a,c,d,f=
|
||||
{x:S+p,y:T+n},e,g,h=E.items;h.sort(function(a,b){return a.minHeight-b.minHeight||N(b.center,f)-N(a.center,f)||b.height-a.height});for(var k=0,m=h.length;k<m;k++)if(a=h[k],g=a.hitColor)if(e=a.footprint,Q(e)){c=a.height;d=0;a.minHeight&&(d=a.minHeight);switch(a.shape){case "cylinder":t.hitArea(b,a.center,a.radius,a.radius,c,d,g);break;case "cone":t.hitArea(b,a.center,a.radius,0,c,d,g);break;case "dome":t.hitArea(b,a.center,a.radius,a.radius/2,c,d,g);break;case "sphere":t.hitArea(b,a.center,a.radius,
|
||||
a.radius,c,d,g);break;case "pyramid":M.hitArea(b,e,a.center,c,d,g);break;default:W.hitArea(b,e,a.holes,c,d,g)}switch(a.roofShape){case "cone":t.hitArea(b,a.center,a.radius,0,c+a.roofHeight,c,g);break;case "dome":t.hitArea(b,a.center,a.radius,a.radius/2,c+a.roofHeight,c,g);break;case "pyramid":M.hitArea(b,e,a.center,c+a.roofHeight,c,g)}}u&&z&&(this._imageData=this.context.getImageData(0,0,u,z).data)}},getIdFromXY:function(b,a){var c=this._imageData;if(c){var d=4*((a|0)*u+(b|0));return this._idMapping[c[d]|
|
||||
c[d+1]<<8|c[d+2]<<16]}},idToColor:function(b){var a=this._idMapping.indexOf(b);-1===a&&(this._idMapping.push(b),a=this._idMapping.length-1);return"rgb("+[a&255,a>>8&255,a>>16&255].join()+")"}},X,R={container:document.createElement("DIV"),items:[],init:function(){this.container.style.pointerEvents="none";this.container.style.position="absolute";this.container.style.left=0;this.container.style.top=0;x.context=this.createContext(this.container);fa.context=this.createContext(this.container);r.context=
|
||||
this.createContext(this.container);V.context=this.createContext()},render:function(b){Ba(function(){b||(x.render(),fa.render(),V.render());r.render()})},createContext:function(b){var a=document.createElement("CANVAS");a.style.transform="translate3d(0, 0, 0)";a.style.imageRendering="optimizeSpeed";a.style.position="absolute";a.style.left=0;a.style.top=0;var c=a.getContext("2d");c.lineCap="round";c.lineJoin="round";c.lineWidth=1;c.imageSmoothingEnabled=!1;this.items.push(a);b&&b.appendChild(a);return c},
|
||||
appendTo:function(b){b.appendChild(this.container)},remove:function(){this.container.parentNode.removeChild(this.container)},setSize:function(b,a){for(var c=0,d=this.items.length;c<d;c++)this.items[c].width=b,this.items[c].height=a},setPosition:function(b,a){this.container.style.left=b+"px";this.container.style.top=a+"px"}};R.init();w=function(b){this.map=b;this.maxExtent=[-2.003750834E7,-2.003750834E7,2.003750834E7,2.003750834E7];try{this.setMap(b),b.addLayer(this)}catch(a){console.log(a)}};ol.inherits(w,
|
||||
ol.layer.Vector);D=w.prototype=ol.layer.Layer?new ol.layer.Vector({source:new ol.source.Vector({projection:ol.proj.get("EPSG:900913")})}):{};D.setOrigin=function(){var b=this.map;try{var a=b.getCoordinateFromPixel([0,0]),c=b.getView().getResolution(),d=this.maxExtent,f=(d[3]-a[1])/c<<0;p=(a[0]-d[0])/c<<0;n=f}catch(e){console.log(e)}};D.setMap=function(b){var a=this;R.appendTo(document.getElementById(b.get("target").id));ya({width:b.getSize()[0],height:b.getSize()[1]});var c=this.map.getView().getProjection();
|
||||
b.on("click",function(a){var f=V.getIdFromXY(a.pixel[0],a.pixel[1]);f&&(a=ol.proj.transform(b.getCoordinateFromPixel([a.pixel[0],a.pixel[1]]),c,b.getView().getProjection()),pa({feature:f,lat:a[0],lon:a[1]}))});this.on("precompose",function(c){v=b.getView().getZoom();O=256<<v;c=ga(p+Y,n+ca);var f=ba(c.latitude,0);oa=ba(c.latitude,1).x-f.x;B=ka(0.95,v-15);ea=""+H.alpha(B);$=""+Z.alpha(B);U=""+L.alpha(B);a.setOrigin();E.resetItems();E.update()})};D.style=function(b){b=b||{};var a;if(a=b.color||b.wallColor)H=
|
||||
F.parse(a),ea=""+H.alpha(B),Z=H.lightness(0.8),$=""+Z.alpha(B),L=H.lightness(1.2),U=""+L.alpha(B);b.roofColor&&(L=F.parse(b.roofColor),U=""+L.alpha(B));void 0!==b.shadows&&(x.enabled=!!b.shadows);R.render();return this};D.date=function(b){x.date=b;x.render();return this};D.load=function(b){E.load(b);return this};D.set=function(b){E.set(b);return this};var na=function(){};D.each=function(b){na=function(a){return b(a)};return this};var pa=function(){};D.click=function(b){pa=function(a){return b(a)};
|
||||
return this};w.VERSION="0.2.2b";w.ATTRIBUTION='© <a href="http://osmbuildings.org">OSM Buildings</a>';aa.OSMBuildings=w})(this);
|
||||
@@ -0,0 +1,757 @@
|
||||
@charset "UTF-8";
|
||||
/*
|
||||
| tail.datetime - The vanilla way to select dates and times!
|
||||
| @file ./less/tail.datetime-harx-light.less
|
||||
| @author SamBrishes <sam@pytes.net>
|
||||
| @version 0.4.14 - Beta
|
||||
|
|
||||
| @website https://github.com/pytesNET/tail.DateTime
|
||||
| @license X11 / MIT License
|
||||
| @copyright Copyright © 2018 - 2019 SamBrishes, pytesNET <info@pytes.net>
|
||||
*/
|
||||
|
||||
/*custom for menus:*/
|
||||
#menu {
|
||||
vertical-align: top;
|
||||
display: inline-block;
|
||||
width: 20%;
|
||||
}
|
||||
.filterselect{
|
||||
|
||||
font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
|
||||
margin-top: 10px;
|
||||
margin-left: 20px;
|
||||
margin-right: 20px;
|
||||
margin-bottom: 10px;
|
||||
display: grid;
|
||||
}
|
||||
.filterselect p{
|
||||
|
||||
font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
|
||||
margin-top: 0px; !important
|
||||
margin-left: 0px;
|
||||
margin-right: 0px;
|
||||
margin-bottom: 0px;
|
||||
display: grid;
|
||||
}
|
||||
.slider {
|
||||
font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
|
||||
margin-top: 10px;
|
||||
margin-left: 20px;
|
||||
margin-right: 20px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
/* @start MAIN CALENDAR */
|
||||
.tail-datetime-calendar, .tail-datetime-calendar *, .tail-datetime-calendar *:before,
|
||||
.tail-datetime-calendar *:after{
|
||||
box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
}
|
||||
.tail-datetime-calendar{
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 360px;
|
||||
height: auto;
|
||||
margin: 15px;
|
||||
padding: 0;
|
||||
z-index: 3000;
|
||||
display: block;
|
||||
position: absolute;
|
||||
visibility: hidden;
|
||||
direction: ltr;
|
||||
border-collapse: separate;
|
||||
font-family: "Open Sans", Calibri, Arial, sans-serif;
|
||||
background-color: white;
|
||||
border-width: 0;
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
border-radius: 3px;
|
||||
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 2px 1px rgba(0, 0, 0, 0.1);
|
||||
-webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 2px 1px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.tail-datetime-calendar:after{
|
||||
clear: both;
|
||||
content: "";
|
||||
display: block;
|
||||
font-size: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
.tail-datetime-calendar.calendar-static{
|
||||
top: auto;
|
||||
left: auto;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
position: static;
|
||||
visibility: visible;
|
||||
}
|
||||
.tail-datetime-calendar button.calendar-close{
|
||||
top: 100%;
|
||||
right: 15px;
|
||||
color: #303438;
|
||||
width: 35px;
|
||||
height: 25px;
|
||||
margin: 1px 0 0 0;
|
||||
padding: 5px 10px;
|
||||
opacity: 0.5;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
font-size: 14px;
|
||||
line-height: 1.125em;
|
||||
text-shadow: none;
|
||||
border: 0;
|
||||
outline: none;
|
||||
background-color: white;
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z\
|
||||
dmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDEyIDE2Ij48cGF0aCBmaWxsPSIjMzAzNDM4IiB\
|
||||
kPSJNNy40OCA4bDMuNzUgMy43NS0xLjQ4IDEuNDhMNiA5LjQ4bC0zLjc1IDMuNzUtMS40OC0xLjQ4TDQuNTIgOCAuNz\
|
||||
cgNC4yNWwxLjQ4LTEuNDhMNiA2LjUybDMuNzUtMy43NSAxLjQ4IDEuNDhMNy40OCA4eiIvPjwvc3ZnPg==");
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
border-width: 0;
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
border-radius: 0 0 3px 3px;
|
||||
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 2px 1px rgba(0, 0, 0, 0.1);
|
||||
-webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 2px 1px rgba(0, 0, 0, 0.1);
|
||||
transition: opacity 142ms linear;
|
||||
-webkit-transition: opacity 142ms linear;
|
||||
}
|
||||
.tail-datetime-calendar button.calendar-close:hover{
|
||||
opacity: 1;
|
||||
}
|
||||
/* @end MAIN CALENDAR */
|
||||
|
||||
/* @start CALENDAR TOOLTIP */
|
||||
.tail-datetime-calendar .calendar-tooltip{
|
||||
color: white;
|
||||
width: auto;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: block;
|
||||
position: absolute;
|
||||
background-color: #303438;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-tooltip:before{
|
||||
top: -7px;
|
||||
left: 50%;
|
||||
width: 0;
|
||||
height: 0;
|
||||
margin: 0 0 0 -6px;
|
||||
content: "";
|
||||
display: block;
|
||||
position: absolute;
|
||||
border-width: 0 7px 7px 7px;
|
||||
border-style: solid;
|
||||
border-color: transparent transparent #303438 transparent;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-tooltip .tooltip-inner{
|
||||
width: auto;
|
||||
margin: 0;
|
||||
padding: 4px 7px;
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
line-height: 14px;
|
||||
}
|
||||
/* @end CALENDAR TOOLTIP */
|
||||
|
||||
/* @start CALENDAR ACTIONs */
|
||||
.tail-datetime-calendar .calendar-actions{
|
||||
color: #303438;
|
||||
width: 100%;
|
||||
height: 36px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: table;
|
||||
overflow: hidden;
|
||||
border-spacing: 0;
|
||||
border-collapse: separate;
|
||||
background-color: white;
|
||||
border-width: 0;
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
border-radius: 3px 3px 0 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
opacity: 0.5;
|
||||
display: table-cell;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
line-height: 40px;
|
||||
text-shadow: none;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
transition: opacity 142ms linear, background 142ms linear;
|
||||
-webkit-transition: opacity 142ms linear, background 142ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span[data-action]{
|
||||
cursor: pointer;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.action{
|
||||
width: 50px;
|
||||
font-size: 22px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.label{
|
||||
width: auto;
|
||||
opacity: 1;
|
||||
font-size: 16px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:first-child{
|
||||
border-radius: 4px 0 0 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:last-child{
|
||||
border-radius: 0 4px 0 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:first-child:before,
|
||||
.tail-datetime-calendar .calendar-actions span:last-child:before{
|
||||
top: 5px;
|
||||
bottom: 5px;
|
||||
width: 1px;
|
||||
height: auto;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
background-color: #e6e6e6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:first-child:before{
|
||||
right: -1px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:last-child:before{
|
||||
left: -1px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:first-child:hover:before,
|
||||
.tail-datetime-calendar .calendar-actions span:last-child:hover:before{
|
||||
display: none;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span[data-action]:hover{
|
||||
opacity: 0.95;
|
||||
background-color: #e6e6e6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.action-prev{
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zd\
|
||||
mciIHdpZHRoPSI2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgNiAxNiI+PHBhdGggZD0iTTYgMkwwIDhsNiA2VjJ6\
|
||||
Ii8+PC9zdmc+");
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.action-next{
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z\
|
||||
dmciIHdpZHRoPSI2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgNiAxNiI+PHBhdGggZD0iTTAgMTRsNi02LTYtNnY\
|
||||
xMnoiLz48L3N2Zz4=");
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.action-submit{
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z\
|
||||
dmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDEyIDE2Ij48cGF0aCBkPSJNMTIgNWwtOCA4LTQ\
|
||||
tNCAxLjUtMS41TDQgMTBsNi41LTYuNUwxMiA1eiIvPjwvc3ZnPg==");
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.action-cancel{
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z\
|
||||
dmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDEyIDE2Ij48cGF0aCBmaWxsPSIjMzAzNDM4IiB\
|
||||
kPSJNNy40OCA4bDMuNzUgMy43NS0xLjQ4IDEuNDhMNiA5LjQ4bC0zLjc1IDMuNzUtMS40OC0xLjQ4TDQuNTIgOCAuNz\
|
||||
cgNC4yNWwxLjQ4LTEuNDhMNiA2LjUybDMuNzUtMy43NSAxLjQ4IDEuNDhMNy40OCA4eiIvPjwvc3ZnPg==");
|
||||
}
|
||||
/* @end CALENDAR ACTIONs */
|
||||
|
||||
/* @start CALENDAR DATEPICKER */
|
||||
.tail-datetime-calendar .calendar-datepicker{
|
||||
width: 100%;
|
||||
margin: 0 0 15px 0;
|
||||
padding: 0;
|
||||
display: block;
|
||||
position: relative;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker:after{
|
||||
top: -1px;
|
||||
left: 10px;
|
||||
right: 10px;
|
||||
content: "";
|
||||
position: absolute;
|
||||
border-width: 1px 0 0 0;
|
||||
border-style: solid;
|
||||
border-color: #e6e6e6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table{
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border-spacing: 1px;
|
||||
border-collapse: separate;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr th,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td{
|
||||
color: #303438;
|
||||
width: 50px;
|
||||
height: 35px;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
font-size: 13px;
|
||||
text-align: center;
|
||||
font-weight: normal;
|
||||
text-shadow: none;
|
||||
line-height: 30px;
|
||||
background-color: transparent;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td{
|
||||
cursor: pointer;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td span.inner{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: inline-block;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-disabled{
|
||||
cursor: not-allowed;
|
||||
color: #A0A4A8;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-disabled:after{
|
||||
color: #A0A4A8;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 49px;
|
||||
height: 35px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
content: "✕";
|
||||
opacity: 0.25;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
font-size: 30px;
|
||||
line-height: 35px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-previous,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-next{
|
||||
color: #808488;
|
||||
background-color: transparent;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-today:before,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td .tooltip-tick{
|
||||
top: 5px;
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
z-index: 20;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
border-width: 0;
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-today:before{
|
||||
left: 5px;
|
||||
background-color: #32B93C;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td .tooltip-tick{
|
||||
right: 5px;
|
||||
background-color: #303438;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-select.date-today:before,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-select .tooltip-tick{
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td .tooltip-tick:before,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td .tooltip-tick:after{
|
||||
display: none;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade{
|
||||
width: 14.28571429%;
|
||||
height: 35px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade:hover{
|
||||
border-color: #e6e6e6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day.date-disabled:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month.date-disabled:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year.date-disabled:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade.date-disabled:hover{
|
||||
border-color: white;
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day.date-today,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month.date-today,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year.date-today,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade.date-today{
|
||||
color: #32B93C;
|
||||
border-color: #32B93C;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day.date-select,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month.date-select,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year.date-select,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade.date-select{
|
||||
border-color: #149BE6;
|
||||
background-color: #149BE6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day.date-select span,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month.date-select span,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year.date-select span,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade.date-select span{
|
||||
color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day span.inner,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month span.inner,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year span.inner,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade span.inner{
|
||||
border: 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade{
|
||||
width: 25%;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade span.inner{
|
||||
height: 54px;
|
||||
padding: 7px 15px;
|
||||
text-align: center;
|
||||
line-height: 20px;
|
||||
}
|
||||
/* @end CALENDAR DATEPICKER */
|
||||
|
||||
/* @start CALENDAR TIMEPICKER */
|
||||
.tail-datetime-calendar .calendar-timepicker{
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: block;
|
||||
position: relative;
|
||||
border-top: 0;
|
||||
text-align: center;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker:after{
|
||||
top: -1px;
|
||||
left: 10px;
|
||||
right: 10px;
|
||||
content: "";
|
||||
position: absolute;
|
||||
border-width: 1px 0 0 0;
|
||||
border-style: solid;
|
||||
border-color: #e6e6e6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field{
|
||||
width: auto;
|
||||
margin: 0;
|
||||
padding: 20px 10px 10px 10px;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field:first-of-type{
|
||||
text-align: right;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field:last-of-type{
|
||||
text-align: left;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input[type="text"]{
|
||||
color: #606468;
|
||||
width: 75px;
|
||||
height: 35px;
|
||||
margin: 0;
|
||||
z-index: 4;
|
||||
padding: 3px 20px 3px 5px;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
appearance: textfield;
|
||||
-moz-appearance: textfield;
|
||||
-webkit-appearance: textfield;
|
||||
background-color: white;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-color: #E0E0E0;
|
||||
border-radius: 3px;
|
||||
box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
transition: color 142ms linear, border 142ms linear, background 142ms linear;
|
||||
-webkit-transition: color 142ms linear, border 142ms linear, background 142ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input[type="text"]:hover{
|
||||
color: #404448;
|
||||
border-color: #D0D0D0;
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input[type="text"]:focus{
|
||||
color: #303438;
|
||||
border-color: #149BE6;
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input[type="text"]:disabled{
|
||||
cursor: not-allowed;
|
||||
color: #A0A4A8;
|
||||
border-color: #D0D0D0;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step{
|
||||
right: 11px;
|
||||
width: 20px;
|
||||
height: 17px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
z-index: 15;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
background-color: white;
|
||||
box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
transition: border 142ms linear, background 142ms linear;
|
||||
-webkit-transition: border 142ms linear, background 142ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step:before{
|
||||
top: 5px;
|
||||
left: 50%;
|
||||
width: 0;
|
||||
height: 0;
|
||||
margin: 0 0 0 -3px;
|
||||
padding: 0;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
transition: border 142ms linear;
|
||||
-webkit-transition: border 142ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-up{
|
||||
top: 21px;
|
||||
border-width: 0 0 1px 1px;
|
||||
border-style: solid;
|
||||
border-color: #E0E0E0;
|
||||
border-radius: 0 2px 0 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-up:hover{
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-up:before{
|
||||
border-width: 0 4px 5px 4px;
|
||||
border-style: solid;
|
||||
border-color: transparent transparent #606468 transparent;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-down{
|
||||
top: 37px;
|
||||
border-width: 1px 0 0 1px;
|
||||
border-style: solid;
|
||||
border-color: #E0E0E0;
|
||||
border-radius: 0 0 2px 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-down:hover{
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-down:before{
|
||||
border-width: 5px 4px 0 4px;
|
||||
border-style: solid;
|
||||
border-color: #606468 transparent transparent transparent;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button.step-up{
|
||||
border-color: #149BE6;
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button.step-up:before{
|
||||
border-bottom-color: #149BE6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button.step-up:hover{
|
||||
color: white;
|
||||
background-color: #149BE6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button.step-up:hover:before{
|
||||
border-bottom-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button + button.step-down{
|
||||
border-color: #149BE6;
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button + button.step-down:before{
|
||||
border-top-color: #149BE6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button + button.step-down:hover{
|
||||
color: white;
|
||||
background-color: #149BE6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button + button.step-down:hover:before{
|
||||
border-top-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button.step-up{
|
||||
cursor: not-allowed;
|
||||
border-color: #D0D0D0;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button.step-up:hover{
|
||||
border-color: #D0D0D0;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button.step-up:before{
|
||||
border-bottom-color: #A0A4A8;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button + button.step-down{
|
||||
cursor: not-allowed;
|
||||
border-color: #D0D0D0;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button + button.step-down:hover{
|
||||
border-color: #D0D0D0;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button + button.step-down:before{
|
||||
border-top-color: #A0A4A8;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field label{
|
||||
color: #606468;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch{
|
||||
cursor: pointer;
|
||||
margin: 0 0 -8px 0;
|
||||
padding: 15px 0 0 0;
|
||||
display: block;
|
||||
text-align: center;
|
||||
vertical-align: top;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch:before,
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch:after{
|
||||
width: auto;
|
||||
margin: 0;
|
||||
padding: 0 5px;
|
||||
font-size: 12px;
|
||||
line-height: 16px;
|
||||
vertical-align: top;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch:before{
|
||||
content: attr(data-am);
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch:after{
|
||||
content: attr(data-pm);
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"]{
|
||||
display: none;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"] + span{
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
vertical-align: top;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"] + span:before{
|
||||
width: 50px;
|
||||
height: 16px;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-color: #149BE6;
|
||||
border-radius: 14px;
|
||||
transition: border 284ms linear;
|
||||
-webkit-transition: border 284ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"] + span:after{
|
||||
top: 3px;
|
||||
left: 4px;
|
||||
right: 30px;
|
||||
width: auto;
|
||||
height: 10px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
background-color: #149BE6;
|
||||
border-radius: 15px;
|
||||
vertical-align: top;
|
||||
transition: left 284ms linear, right 284ms linear 284ms, background 284ms linear;
|
||||
-webkit-transition: left 284ms linear, right 284ms linear 284ms, background 284ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"]:checked + span:before{
|
||||
border-color: #32B93C;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"]:checked + span:after{
|
||||
left: 30px;
|
||||
right: 4px;
|
||||
background-color: #32B93C;
|
||||
transition: right 284ms linear, left 284ms linear 284ms, background 284ms linear;
|
||||
-webkit-transition: right 284ms linear, left 284ms linear 284ms, background 284ms linear;
|
||||
}
|
||||
/* @end CALENDAR TIMEPICKER */
|
||||
|
||||
/* @start RTL */
|
||||
.tail-datetime-calendar.rtl{
|
||||
direction: rtl;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-actions span.action-next,
|
||||
.tail-datetime-calendar.rtl .calendar-actions span.action-prev{
|
||||
transform: rotate(180deg);
|
||||
-moz-transform: rotate(180deg);
|
||||
-webkit-transform: rotate(180deg);
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.date-disabled:after{
|
||||
right: 3px;
|
||||
transform: rotate(45deg);
|
||||
-moz-transform: rotate(45deg);
|
||||
-webkit-transform: rotate(45deg);
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.date-today:before{
|
||||
right: 5px;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td .tooltip-tick{
|
||||
left: 5px;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-month.date-today:before,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-year.date-today:before,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-decade.date-today:before{
|
||||
right: 50%;
|
||||
margin-right: -2.5px;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-month:hover span.inner:before,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-year:hover span.inner:before,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-decade:hover span.inner:before{
|
||||
right: 6px;
|
||||
border-right-color: #cccccc;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-month span.inner:after,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-year span.inner:after,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-decade span.inner:after{
|
||||
left: 0;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-month:hover span.inner:after,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-year:hover span.inner:after,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-decade:hover span.inner:after{
|
||||
left: 6px;
|
||||
border-left-color: #cccccc;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-decade span.inner{
|
||||
text-align: right;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-timepicker .timepicker-field:first-child{
|
||||
text-align: left;
|
||||
padding-left: 0;
|
||||
padding-right: 25px;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-timepicker .timepicker-field:last-child{
|
||||
text-align: right;
|
||||
padding-left: 25px;
|
||||
padding-right: 0;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-timepicker .timepicker-field:first-child input[type="text"]{
|
||||
margin-left: -1px;
|
||||
margin-right: 0;
|
||||
border-radius: 0 3px 3px 0;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-timepicker .timepicker-field:last-child input[type="text"]{
|
||||
margin-left: 0;
|
||||
margin-right: -1px;
|
||||
border-radius: 3px 0 0 3px;
|
||||
}
|
||||
/* @end RTL */
|
||||
|
||||
/*# sourceMappingURL=tail.datetime-harx-light.map */
|
||||
@@ -0,0 +1,56 @@
|
||||
var createTextStyle = function(feature, resolution, labelText, labelFont,
|
||||
labelFill, placement, bufferColor,
|
||||
bufferWidth) {
|
||||
|
||||
if (feature.hide || !labelText) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (bufferWidth == 0) {
|
||||
var bufferStyle = null;
|
||||
} else {
|
||||
var bufferStyle = new ol.style.Stroke({
|
||||
color: bufferColor,
|
||||
width: bufferWidth
|
||||
})
|
||||
}
|
||||
|
||||
var textStyle = new ol.style.Text({
|
||||
font: labelFont,
|
||||
text: labelText,
|
||||
textBaseline: "middle",
|
||||
textAlign: "left",
|
||||
offsetX: 8,
|
||||
offsetY: 3,
|
||||
placement: placement,
|
||||
maxAngle: 0,
|
||||
fill: new ol.style.Fill({
|
||||
color: labelFill
|
||||
}),
|
||||
stroke: bufferStyle
|
||||
});
|
||||
|
||||
return textStyle;
|
||||
};
|
||||
|
||||
function stripe(stripeWidth, gapWidth, angle, color) {
|
||||
var canvas = document.createElement('canvas');
|
||||
var context = canvas.getContext('2d');
|
||||
canvas.width = screen.width;
|
||||
canvas.height = stripeWidth + gapWidth;
|
||||
context.fillStyle = color;
|
||||
context.lineWidth = stripeWidth;
|
||||
context.fillRect(0, 0, canvas.width, stripeWidth);
|
||||
innerPattern = context.createPattern(canvas, 'repeat');
|
||||
|
||||
var outerCanvas = document.createElement('canvas');
|
||||
var outerContext = outerCanvas.getContext('2d');
|
||||
outerCanvas.width = screen.width;
|
||||
outerCanvas.height = screen.height;
|
||||
outerContext.rotate((Math.PI / 180) * angle);
|
||||
outerContext.translate(-(screen.width/2), -(screen.height/2));
|
||||
outerContext.fillStyle = innerPattern;
|
||||
outerContext.fillRect(0,0,screen.width,screen.height);
|
||||
|
||||
return outerContext.createPattern(outerCanvas, 'no-repeat');
|
||||
};
|
||||
@@ -0,0 +1 @@
|
||||
.sey-container{display:none;position:absolute;box-shadow:1px 2px 6px;background-color:#fff;color:#333;transition:left .1s ease-in-out;z-index:1}.sey-list{padding:0;margin:0;list-style-type:none}.sey-show{display:block}.sey-hide{display:none}.sey-empty{cursor:default;padding:7px}.sey-item{cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:7px}.sey-item:hover{background-color:#444;color:#fff}.sey-selected{background-color:#333;color:#fff}.sey-char-highlight{font-weight:700}.sey-category-id{background-color:#eee;color:#aaa;text-align:right;text-transform:capitalize;font-style:italic;font-size:12px;box-shadow:1px 0 1px;padding:7px}
|
||||
|
Depois Largura: | Altura: | Tamanho: 14 KiB |
@@ -0,0 +1,2 @@
|
||||
/*! nouislider - 14.0.2 - 6/28/2019 */
|
||||
.noUi-target,.noUi-target *{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-ms-touch-action:none;touch-action:none;-ms-user-select:none;-moz-user-select:none;user-select:none;-moz-box-sizing:border-box;box-sizing:border-box}.noUi-target{position:relative;direction:ltr}.noUi-base,.noUi-connects{width:100%;height:100%;position:relative;z-index:1}.noUi-connects{overflow:hidden;z-index:0}.noUi-connect,.noUi-origin{will-change:transform;position:absolute;z-index:1;top:0;left:0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;-webkit-transform-style:preserve-3d;transform-origin:0 0;transform-style:flat}.noUi-connect{height:100%;width:100%}.noUi-origin{height:10%;width:10%}html:not([dir=rtl]) .noUi-horizontal .noUi-origin{left:auto;right:0}.noUi-vertical .noUi-origin{width:0}.noUi-horizontal .noUi-origin{height:0}.noUi-handle{-webkit-backface-visibility:hidden;backface-visibility:hidden;position:absolute}.noUi-touch-area{height:100%;width:100%}.noUi-state-tap .noUi-connect,.noUi-state-tap .noUi-origin{-webkit-transition:transform .3s;transition:transform .3s}.noUi-state-drag *{cursor:inherit!important}.noUi-horizontal{height:18px}.noUi-horizontal .noUi-handle{width:34px;height:28px;left:-17px;top:-6px}.noUi-vertical{width:18px}.noUi-vertical .noUi-handle{width:28px;height:34px;left:-6px;top:-17px}html:not([dir=rtl]) .noUi-horizontal .noUi-handle{right:-17px;left:auto}.noUi-target{background:#FAFAFA;border-radius:4px;border:1px solid #D3D3D3;box-shadow:inset 0 1px 1px #F0F0F0,0 3px 6px -5px #BBB}.noUi-connects{border-radius:3px}.noUi-connect{background:#3FB8AF}.noUi-draggable{cursor:ew-resize}.noUi-vertical .noUi-draggable{cursor:ns-resize}.noUi-handle{border:1px solid #D9D9D9;border-radius:3px;background:#FFF;cursor:default;box-shadow:inset 0 0 1px #FFF,inset 0 1px 7px #EBEBEB,0 3px 6px -3px #BBB}.noUi-active{box-shadow:inset 0 0 1px #FFF,inset 0 1px 7px #DDD,0 3px 6px -3px #BBB}.noUi-handle:after,.noUi-handle:before{content:"";display:block;position:absolute;height:14px;width:1px;background:#E8E7E6;left:14px;top:6px}.noUi-handle:after{left:17px}.noUi-vertical .noUi-handle:after,.noUi-vertical .noUi-handle:before{width:14px;height:1px;left:6px;top:14px}.noUi-vertical .noUi-handle:after{top:17px}[disabled] .noUi-connect{background:#B8B8B8}[disabled] .noUi-handle,[disabled].noUi-handle,[disabled].noUi-target{cursor:not-allowed}.noUi-pips,.noUi-pips *{-moz-box-sizing:border-box;box-sizing:border-box}.noUi-pips{position:absolute;color:#999}.noUi-value{position:absolute;white-space:nowrap;text-align:center}.noUi-value-sub{color:#ccc;font-size:10px}.noUi-marker{position:absolute;background:#CCC}.noUi-marker-sub{background:#AAA}.noUi-marker-large{background:#AAA}.noUi-pips-horizontal{padding:10px 0;height:80px;top:100%;left:0;width:100%}.noUi-value-horizontal{-webkit-transform:translate(-50%,50%);transform:translate(-50%,50%)}.noUi-rtl .noUi-value-horizontal{-webkit-transform:translate(50%,50%);transform:translate(50%,50%)}.noUi-marker-horizontal.noUi-marker{margin-left:-1px;width:2px;height:5px}.noUi-marker-horizontal.noUi-marker-sub{height:10px}.noUi-marker-horizontal.noUi-marker-large{height:15px}.noUi-pips-vertical{padding:0 10px;height:100%;top:0;left:100%}.noUi-value-vertical{-webkit-transform:translate(0,-50%);transform:translate(0,-50%);padding-left:25px}.noUi-rtl .noUi-value-vertical{-webkit-transform:translate(0,50%);transform:translate(0,50%)}.noUi-marker-vertical.noUi-marker{width:5px;height:2px;margin-top:-1px}.noUi-marker-vertical.noUi-marker-sub{width:10px}.noUi-marker-vertical.noUi-marker-large{width:15px}.noUi-tooltip{display:block;position:absolute;border:1px solid #D9D9D9;border-radius:3px;background:#fff;color:#000;padding:5px;text-align:center;white-space:nowrap}.noUi-horizontal .noUi-tooltip{-webkit-transform:translate(-50%,0);transform:translate(-50%,0);left:50%;bottom:120%}.noUi-vertical .noUi-tooltip{-webkit-transform:translate(0,-50%);transform:translate(0,-50%);top:50%;right:120%}
|
||||
@@ -0,0 +1,123 @@
|
||||
.layer-switcher.shown.ol-control {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.layer-switcher.shown.ol-control:hover {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.layer-switcher {
|
||||
position: absolute;
|
||||
top: 3.5em;
|
||||
right: 0.5em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.layer-switcher.shown {
|
||||
bottom: 3em;
|
||||
}
|
||||
|
||||
.layer-switcher .panel {
|
||||
padding: 0 1em 0 0;
|
||||
margin: 0;
|
||||
border: 4px solid #eee;
|
||||
border-radius: 4px;
|
||||
background-color: white;
|
||||
display: none;
|
||||
max-height: 100%;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.layer-switcher.shown .panel {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.layer-switcher button {
|
||||
float: right;
|
||||
width: 38px;
|
||||
height: 38px;
|
||||
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAACE1BMVEX///8A//8AgICA//8AVVVAQID///8rVVVJtttgv98nTmJ2xNgkW1ttyNsmWWZmzNZYxM4gWGgeU2JmzNNr0N1Rwc0eU2VXxdEhV2JqytQeVmMhVmNoydUfVGUgVGQfVGQfVmVqy9hqy9dWw9AfVWRpydVry9YhVmMgVGNUw9BrytchVWRexdGw294gVWQgVmUhVWPd4N6HoaZsy9cfVmQgVGRrytZsy9cgVWQgVWMgVWRsy9YfVWNsy9YgVWVty9YgVWVry9UgVWRsy9Zsy9UfVWRsy9YgVWVty9YgVWRty9Vsy9aM09sgVWRTws/AzM0gVWRtzNYgVWRuy9Zsy9cgVWRGcHxty9bb5ORbxdEgVWRty9bn6OZTws9mydRfxtLX3Nva5eRix9NFcXxOd4JPeINQeIMiVmVUws9Vws9Vw9BXw9BYxNBaxNBbxNBcxdJexdElWWgmWmhjyNRlx9IqXGtoipNpytVqytVryNNrytZsjZUuX210k5t1y9R2zNR3y9V4lp57zth9zdaAnKOGoaeK0NiNpquV09mesrag1tuitbmj1tuj19uktrqr2d2svcCu2d2xwMO63N+7x8nA3uDC3uDFz9DK4eHL4eLN4eIyYnDX5OM5Z3Tb397e4uDf4uHf5uXi5ePi5+Xj5+Xk5+Xm5+Xm6OY6aHXQ19fT4+NfhI1Ww89gx9Nhx9Nsy9ZWw9Dpj2abAAAAWnRSTlMAAQICAwQEBgcIDQ0ODhQZGiAiIyYpKywvNTs+QklPUlNUWWJjaGt0dnd+hIWFh4mNjZCSm6CpsbW2t7nDzNDT1dje5efr7PHy9PT29/j4+Pn5+vr8/f39/f6DPtKwAAABTklEQVR4Xr3QVWPbMBSAUTVFZmZmhhSXMjNvkhwqMzMzMzPDeD+xASvObKePPa+ffHVl8PlsnE0+qPpBuQjVJjno6pZpSKXYl7/bZyFaQxhf98hHDKEppwdWIW1frFnrxSOWHFfWesSEWC6R/P4zOFrix3TzDFLlXRTR8c0fEEJ1/itpo7SVO9Jdr1DVxZ0USyjZsEY5vZfiiAC0UoTGOrm9PZLuRl8X+Dq1HQtoFbJZbv61i+Poblh/97TC7n0neCcK0ETNUrz1/xPHf+DNAW9Ac6t8O8WH3Vp98f5lCaYKAOFZMLyHL4Y0fe319idMNgMMp+zWVSybUed/+/h7I4wRAG1W6XDy4XmjR9HnzvDRZXUAYDFOhC1S/Hh+fIXxen+eO+AKqbs+wAo30zDTDvDxKoJN88sjUzDFAvBzEUGFsnADoIvAJzoh2BZ8sner+Ke/vwECuQAAAABJRU5ErkJggg==') /*logo.png*/;
|
||||
background-repeat: no-repeat;
|
||||
background-position: 2px;
|
||||
background-color: white;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.layer-switcher.shown button {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.layer-switcher button:focus, .layer-switcher button:hover {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
.layer-switcher ul {
|
||||
padding-left: 2em;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.layer-switcher li.group > label {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.layer-switcher li.layer {
|
||||
display: table;
|
||||
}
|
||||
|
||||
.layer-switcher li.layer label, .layer-switcher li.layer input {
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.layer-switcher label.disabled {
|
||||
opacity:0.4;
|
||||
}
|
||||
|
||||
.layer-switcher input {
|
||||
margin: 4px;
|
||||
}
|
||||
|
||||
.layer-switcher.touch ::-webkit-scrollbar {
|
||||
width: 4px;
|
||||
}
|
||||
|
||||
.layer-switcher.touch ::-webkit-scrollbar-track {
|
||||
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.layer-switcher.touch ::-webkit-scrollbar-thumb {
|
||||
border-radius: 10px;
|
||||
-webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.5);
|
||||
}
|
||||
|
||||
.layer-switcher .group button {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
float: none;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background-position: center 2px;
|
||||
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAW0lEQVR4nGNgGAWMyBwXFxcGBgaGeii3EU0tXHzPnj1wQRYsihqQ+I0ExDEMQAYNONgoAN0AmMkNaDSyQSheY8JiaCMOGzE04zIAmyFYNTMw4A+DRhzsUUBtAADw4BCeIZkGdwAAAABJRU5ErkJggg==');
|
||||
-webkit-transition: -webkit-transform .2s ease-in-out;
|
||||
-ms-transition: -ms-transform .2s ease-in-out;
|
||||
transition: transform .2s ease-in-out;
|
||||
}
|
||||
|
||||
.layer-switcher .group.layer-switcher-close button {
|
||||
transform: rotate(-90deg);
|
||||
-webkit-transform: rotate(-90deg);
|
||||
}
|
||||
|
||||
li.group.layer-switcher-fold {
|
||||
margin-left: -18px;
|
||||
}
|
||||
|
||||
.layer-switcher .group.layer-switcher-fold > ul {
|
||||
padding-left: 3em;
|
||||
}
|
||||
|
||||
.layer-switcher .group.layer-switcher-fold.layer-switcher-close > ul {
|
||||
overflow: hidden;
|
||||
height: 0;
|
||||
}
|
||||
@@ -0,0 +1,624 @@
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('ol/control/Control'), require('ol/Observable')) :
|
||||
typeof define === 'function' && define.amd ? define(['ol/control/Control', 'ol/Observable'], factory) :
|
||||
(global.LayerSwitcher = factory(global.ol.control.Control,global.ol.Observable));
|
||||
}(this, (function (Control,ol_Observable) { 'use strict';
|
||||
|
||||
Control = 'default' in Control ? Control['default'] : Control;
|
||||
|
||||
var classCallCheck = function (instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
};
|
||||
|
||||
var createClass = function () {
|
||||
function defineProperties(target, props) {
|
||||
for (var i = 0; i < props.length; i++) {
|
||||
var descriptor = props[i];
|
||||
descriptor.enumerable = descriptor.enumerable || false;
|
||||
descriptor.configurable = true;
|
||||
if ("value" in descriptor) descriptor.writable = true;
|
||||
Object.defineProperty(target, descriptor.key, descriptor);
|
||||
}
|
||||
}
|
||||
|
||||
return function (Constructor, protoProps, staticProps) {
|
||||
if (protoProps) defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) defineProperties(Constructor, staticProps);
|
||||
return Constructor;
|
||||
};
|
||||
}();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var get = function get(object, property, receiver) {
|
||||
if (object === null) object = Function.prototype;
|
||||
var desc = Object.getOwnPropertyDescriptor(object, property);
|
||||
|
||||
if (desc === undefined) {
|
||||
var parent = Object.getPrototypeOf(object);
|
||||
|
||||
if (parent === null) {
|
||||
return undefined;
|
||||
} else {
|
||||
return get(parent, property, receiver);
|
||||
}
|
||||
} else if ("value" in desc) {
|
||||
return desc.value;
|
||||
} else {
|
||||
var getter = desc.get;
|
||||
|
||||
if (getter === undefined) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return getter.call(receiver);
|
||||
}
|
||||
};
|
||||
|
||||
var inherits = function (subClass, superClass) {
|
||||
if (typeof superClass !== "function" && superClass !== null) {
|
||||
throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
|
||||
}
|
||||
|
||||
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
||||
constructor: {
|
||||
value: subClass,
|
||||
enumerable: false,
|
||||
writable: true,
|
||||
configurable: true
|
||||
}
|
||||
});
|
||||
if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var possibleConstructorReturn = function (self, call) {
|
||||
if (!self) {
|
||||
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
||||
}
|
||||
|
||||
return call && (typeof call === "object" || typeof call === "function") ? call : self;
|
||||
};
|
||||
|
||||
var CSS_PREFIX = 'layer-switcher-';
|
||||
|
||||
/**
|
||||
* OpenLayers Layer Switcher Control.
|
||||
* See [the examples](./examples) for usage.
|
||||
* @constructor
|
||||
* @extends {ol/control/Control~Control}
|
||||
* @param {Object} opt_options Control options, extends ol/control/Control~Control#options adding:
|
||||
* @param {String} opt_options.tipLabel the button tooltip.
|
||||
* @param {String} opt_options.groupSelectStyle either `'none'` - groups don't get a checkbox,
|
||||
* `'children'` (default) groups have a checkbox and affect child visibility or
|
||||
* `'group'` groups have a checkbox but do not alter child visibility (like QGIS).
|
||||
*/
|
||||
|
||||
var LayerSwitcher = function (_Control) {
|
||||
inherits(LayerSwitcher, _Control);
|
||||
|
||||
function LayerSwitcher(opt_options) {
|
||||
classCallCheck(this, LayerSwitcher);
|
||||
|
||||
|
||||
var options = opt_options || {};
|
||||
|
||||
var tipLabel = options.tipLabel ? options.tipLabel : 'Legend';
|
||||
|
||||
var element = document.createElement('div');
|
||||
|
||||
var _this = possibleConstructorReturn(this, (LayerSwitcher.__proto__ || Object.getPrototypeOf(LayerSwitcher)).call(this, { element: element, target: options.target }));
|
||||
|
||||
_this.groupSelectStyle = LayerSwitcher.getGroupSelectStyle(options.groupSelectStyle);
|
||||
|
||||
_this.mapListeners = [];
|
||||
|
||||
_this.hiddenClassName = 'ol-unselectable ol-control layer-switcher';
|
||||
if (LayerSwitcher.isTouchDevice_()) {
|
||||
_this.hiddenClassName += ' touch';
|
||||
}
|
||||
_this.shownClassName = 'shown';
|
||||
|
||||
element.className = _this.hiddenClassName;
|
||||
|
||||
var button = document.createElement('button');
|
||||
button.setAttribute('title', tipLabel);
|
||||
element.appendChild(button);
|
||||
|
||||
_this.panel = document.createElement('div');
|
||||
_this.panel.className = 'panel';
|
||||
element.appendChild(_this.panel);
|
||||
LayerSwitcher.enableTouchScroll_(_this.panel);
|
||||
|
||||
var this_ = _this;
|
||||
|
||||
button.onmouseover = function (e) {
|
||||
this_.showPanel();
|
||||
};
|
||||
|
||||
button.onclick = function (e) {
|
||||
e = e || window.event;
|
||||
this_.showPanel();
|
||||
e.preventDefault();
|
||||
};
|
||||
|
||||
this_.panel.onmouseout = function (e) {
|
||||
e = e || window.event;
|
||||
if (!this_.panel.contains(e.toElement || e.relatedTarget)) {
|
||||
this_.hidePanel();
|
||||
}
|
||||
};
|
||||
|
||||
return _this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the map instance the control is associated with.
|
||||
* @param {ol/Map~Map} map The map instance.
|
||||
*/
|
||||
|
||||
|
||||
createClass(LayerSwitcher, [{
|
||||
key: 'setMap',
|
||||
value: function setMap(map) {
|
||||
// Clean up listeners associated with the previous map
|
||||
for (var i = 0, key; i < this.mapListeners.length; i++) {
|
||||
ol_Observable.unByKey(this.mapListeners[i]);
|
||||
}
|
||||
this.mapListeners.length = 0;
|
||||
// Wire up listeners etc. and store reference to new map
|
||||
get(LayerSwitcher.prototype.__proto__ || Object.getPrototypeOf(LayerSwitcher.prototype), 'setMap', this).call(this, map);
|
||||
if (map) {
|
||||
var this_ = this;
|
||||
this.mapListeners.push(map.on('pointerdown', function () {
|
||||
this_.hidePanel();
|
||||
}));
|
||||
this.renderPanel();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the layer panel.
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'showPanel',
|
||||
value: function showPanel() {
|
||||
if (!this.element.classList.contains(this.shownClassName)) {
|
||||
this.element.classList.add(this.shownClassName);
|
||||
this.renderPanel();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Hide the layer panel.
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'hidePanel',
|
||||
value: function hidePanel() {
|
||||
if (this.element.classList.contains(this.shownClassName)) {
|
||||
this.element.classList.remove(this.shownClassName);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Re-draw the layer panel to represent the current state of the layers.
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'renderPanel',
|
||||
value: function renderPanel() {
|
||||
this.dispatchEvent({ type: 'render' });
|
||||
LayerSwitcher.renderPanel(this.getMap(), this.panel, { groupSelectStyle: this.groupSelectStyle });
|
||||
this.dispatchEvent({ type: 'rendercomplete' });
|
||||
}
|
||||
|
||||
/**
|
||||
* **Static** Re-draw the layer panel to represent the current state of the layers.
|
||||
* @param {ol/Map~Map} map The OpenLayers Map instance to render layers for
|
||||
* @param {Element} panel The DOM Element into which the layer tree will be rendered
|
||||
*/
|
||||
|
||||
}], [{
|
||||
key: 'renderPanel',
|
||||
value: function renderPanel(map, panel, options) {
|
||||
// Create the event.
|
||||
var render_event = new Event('render');
|
||||
// Dispatch the event.
|
||||
panel.dispatchEvent(render_event);
|
||||
|
||||
options = options || {};
|
||||
|
||||
options.groupSelectStyle = LayerSwitcher.getGroupSelectStyle(options.groupSelectStyle);
|
||||
|
||||
LayerSwitcher.ensureTopVisibleBaseLayerShown_(map);
|
||||
|
||||
while (panel.firstChild) {
|
||||
panel.removeChild(panel.firstChild);
|
||||
}
|
||||
|
||||
// Reset indeterminate state for all layers and groups before
|
||||
// applying based on groupSelectStyle
|
||||
LayerSwitcher.forEachRecursive(map, function (l, idx, a) {
|
||||
l.set('indeterminate', false);
|
||||
});
|
||||
|
||||
if (options.groupSelectStyle === 'children' || options.groupSelectStyle === 'none') {
|
||||
// Set visibile and indeterminate state of groups based on
|
||||
// their children's visibility
|
||||
LayerSwitcher.setGroupVisibility(map);
|
||||
} else if (options.groupSelectStyle === 'group') {
|
||||
// Set child indetermiate state based on their parent's visibility
|
||||
LayerSwitcher.setChildVisibility(map);
|
||||
}
|
||||
|
||||
var ul = document.createElement('ul');
|
||||
panel.appendChild(ul);
|
||||
// passing two map arguments instead of lyr as we're passing the map as the root of the layers tree
|
||||
LayerSwitcher.renderLayers_(map, map, ul, options, function render(changedLyr) {
|
||||
// console.log('render');
|
||||
LayerSwitcher.renderPanel(map, panel, options);
|
||||
});
|
||||
|
||||
// Create the event.
|
||||
var rendercomplete_event = new Event('rendercomplete');
|
||||
// Dispatch the event.
|
||||
panel.dispatchEvent(rendercomplete_event);
|
||||
}
|
||||
}, {
|
||||
key: 'isBaseGroup',
|
||||
value: function isBaseGroup(lyr) {
|
||||
var lyrs = lyr.getLayers ? lyr.getLayers().getArray() : [];
|
||||
return lyrs.length && lyrs[0].get('type') === 'base';
|
||||
}
|
||||
}, {
|
||||
key: 'setGroupVisibility',
|
||||
value: function setGroupVisibility(map) {
|
||||
// Get a list of groups, with the deepest first
|
||||
var groups = LayerSwitcher.getGroupsAndLayers(map, function (l) {
|
||||
return l.getLayers && !l.get('combine') && !LayerSwitcher.isBaseGroup(l);
|
||||
}).reverse();
|
||||
// console.log(groups.map(g => g.get('title')));
|
||||
groups.forEach(function (group) {
|
||||
// TODO Can we use getLayersArray, is it public in the esm build?
|
||||
var descendantVisibility = group.getLayersArray().map(function (l) {
|
||||
var state = l.getVisible();
|
||||
// console.log('>', l.get('title'), state);
|
||||
return state;
|
||||
});
|
||||
// console.log(descendantVisibility);
|
||||
if (descendantVisibility.every(function (v) {
|
||||
return v === true;
|
||||
})) {
|
||||
group.setVisible(true);
|
||||
group.set('indeterminate', false);
|
||||
} else if (descendantVisibility.every(function (v) {
|
||||
return v === false;
|
||||
})) {
|
||||
group.setVisible(false);
|
||||
group.set('indeterminate', false);
|
||||
} else {
|
||||
group.setVisible(true);
|
||||
group.set('indeterminate', true);
|
||||
}
|
||||
});
|
||||
}
|
||||
}, {
|
||||
key: 'setChildVisibility',
|
||||
value: function setChildVisibility(map) {
|
||||
// console.log('setChildVisibility');
|
||||
var groups = LayerSwitcher.getGroupsAndLayers(map, function (l) {
|
||||
return l.getLayers && !l.get('combine') && !LayerSwitcher.isBaseGroup(l);
|
||||
});
|
||||
groups.forEach(function (group) {
|
||||
// console.log(group.get('title'));
|
||||
var groupVisible = group.getVisible();
|
||||
var groupIndeterminate = group.get('indeterminate');
|
||||
group.getLayers().getArray().forEach(function (l) {
|
||||
// console.log('>', l.get('title'));
|
||||
l.set('indeterminate', false);
|
||||
if ((!groupVisible || groupIndeterminate) && l.getVisible()) {
|
||||
l.set('indeterminate', true);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* **Static** Ensure only the top-most base layer is visible if more than one is visible.
|
||||
* @param {ol/Map~Map} map The map instance.
|
||||
* @private
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'ensureTopVisibleBaseLayerShown_',
|
||||
value: function ensureTopVisibleBaseLayerShown_(map) {
|
||||
var lastVisibleBaseLyr;
|
||||
LayerSwitcher.forEachRecursive(map, function (l, idx, a) {
|
||||
if (l.get('type') === 'base' && l.getVisible()) {
|
||||
lastVisibleBaseLyr = l;
|
||||
}
|
||||
});
|
||||
if (lastVisibleBaseLyr) LayerSwitcher.setVisible_(map, lastVisibleBaseLyr, true);
|
||||
}
|
||||
}, {
|
||||
key: 'getGroupsAndLayers',
|
||||
value: function getGroupsAndLayers(lyr, filterFn) {
|
||||
var layers = [];
|
||||
filterFn = filterFn || function (l, idx, a) {
|
||||
return true;
|
||||
};
|
||||
LayerSwitcher.forEachRecursive(lyr, function (l, idx, a) {
|
||||
if (l.get('title')) {
|
||||
if (filterFn(l, idx, a)) {
|
||||
layers.push(l);
|
||||
}
|
||||
}
|
||||
});
|
||||
return layers;
|
||||
}
|
||||
|
||||
/**
|
||||
* **Static** Toggle the visible state of a layer.
|
||||
* Takes care of hiding other layers in the same exclusive group if the layer
|
||||
* is toggle to visible.
|
||||
* @private
|
||||
* @param {ol/Map~Map} map The map instance.
|
||||
* @param {ol/layer/Base~BaseLayer} The layer whose visibility will be toggled.
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'setVisible_',
|
||||
value: function setVisible_(map, lyr, visible, groupSelectStyle) {
|
||||
// console.log(lyr.get('title'), visible, groupSelectStyle);
|
||||
lyr.setVisible(visible);
|
||||
if (visible && lyr.get('type') === 'base') {
|
||||
// Hide all other base layers regardless of grouping
|
||||
LayerSwitcher.forEachRecursive(map, function (l, idx, a) {
|
||||
if (l != lyr && l.get('type') === 'base') {
|
||||
l.setVisible(false);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (lyr.getLayers && !lyr.get('combine') && groupSelectStyle === 'children') {
|
||||
lyr.getLayers().forEach(function (l) {
|
||||
LayerSwitcher.setVisible_(map, l, lyr.getVisible(), groupSelectStyle);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* **Static** Render all layers that are children of a group.
|
||||
* @private
|
||||
* @param {ol/Map~Map} map The map instance.
|
||||
* @param {ol/layer/Base~BaseLayer} lyr Layer to be rendered (should have a title property).
|
||||
* @param {Number} idx Position in parent group list.
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'renderLayer_',
|
||||
value: function renderLayer_(map, lyr, idx, options, render) {
|
||||
|
||||
var li = document.createElement('li');
|
||||
|
||||
var lyrTitle = lyr.get('title');
|
||||
|
||||
var checkboxId = LayerSwitcher.uuid();
|
||||
|
||||
var label = document.createElement('label');
|
||||
|
||||
if (lyr.getLayers && !lyr.get('combine')) {
|
||||
|
||||
var isBaseGroup = LayerSwitcher.isBaseGroup(lyr);
|
||||
|
||||
li.classList.add('group');
|
||||
if (isBaseGroup) {
|
||||
li.classList.add(CSS_PREFIX + 'base-group');
|
||||
}
|
||||
|
||||
// Group folding
|
||||
if (lyr.get('fold')) {
|
||||
li.classList.add(CSS_PREFIX + 'fold');
|
||||
li.classList.add(CSS_PREFIX + lyr.get('fold'));
|
||||
var btn = document.createElement('button');
|
||||
btn.onclick = function (e) {
|
||||
LayerSwitcher.toggleFold_(lyr, li);
|
||||
};
|
||||
li.appendChild(btn);
|
||||
}
|
||||
|
||||
if (!isBaseGroup && options.groupSelectStyle != 'none') {
|
||||
var _input = document.createElement('input');
|
||||
_input.type = 'checkbox';
|
||||
_input.id = checkboxId;
|
||||
_input.checked = lyr.getVisible();
|
||||
_input.indeterminate = lyr.get('indeterminate');
|
||||
_input.onchange = function (e) {
|
||||
LayerSwitcher.setVisible_(map, lyr, e.target.checked, options.groupSelectStyle);
|
||||
render(lyr);
|
||||
};
|
||||
li.appendChild(_input);
|
||||
label.htmlFor = checkboxId;
|
||||
}
|
||||
|
||||
label.innerHTML = lyrTitle;
|
||||
li.appendChild(label);
|
||||
var ul = document.createElement('ul');
|
||||
li.appendChild(ul);
|
||||
|
||||
LayerSwitcher.renderLayers_(map, lyr, ul, options, render);
|
||||
} else {
|
||||
|
||||
li.className = 'layer';
|
||||
var input = document.createElement('input');
|
||||
if (lyr.get('type') === 'base') {
|
||||
input.type = 'radio';
|
||||
input.name = 'base';
|
||||
} else {
|
||||
input.type = 'checkbox';
|
||||
}
|
||||
input.id = checkboxId;
|
||||
input.checked = lyr.get('visible');
|
||||
input.indeterminate = lyr.get('indeterminate');
|
||||
input.onchange = function (e) {
|
||||
LayerSwitcher.setVisible_(map, lyr, e.target.checked, options.groupSelectStyle);
|
||||
render(lyr);
|
||||
};
|
||||
li.appendChild(input);
|
||||
|
||||
label.htmlFor = checkboxId;
|
||||
label.innerHTML = lyrTitle;
|
||||
|
||||
var rsl = map.getView().getResolution();
|
||||
if (rsl > lyr.getMaxResolution() || rsl < lyr.getMinResolution()) {
|
||||
label.className += ' disabled';
|
||||
}
|
||||
|
||||
li.appendChild(label);
|
||||
}
|
||||
|
||||
return li;
|
||||
}
|
||||
|
||||
/**
|
||||
* **Static** Render all layers that are children of a group.
|
||||
* @private
|
||||
* @param {ol/Map~Map} map The map instance.
|
||||
* @param {ol/layer/Group~LayerGroup} lyr Group layer whose children will be rendered.
|
||||
* @param {Element} elm DOM element that children will be appended to.
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'renderLayers_',
|
||||
value: function renderLayers_(map, lyr, elm, options, render) {
|
||||
var lyrs = lyr.getLayers().getArray().slice().reverse();
|
||||
for (var i = 0, l; i < lyrs.length; i++) {
|
||||
l = lyrs[i];
|
||||
if (l.get('title')) {
|
||||
elm.appendChild(LayerSwitcher.renderLayer_(map, l, i, options, render));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* **Static** Call the supplied function for each layer in the passed layer group
|
||||
* recursing nested groups.
|
||||
* @param {ol/layer/Group~LayerGroup} lyr The layer group to start iterating from.
|
||||
* @param {Function} fn Callback which will be called for each `ol/layer/Base~BaseLayer`
|
||||
* found under `lyr`. The signature for `fn` is the same as `ol/Collection~Collection#forEach`
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'forEachRecursive',
|
||||
value: function forEachRecursive(lyr, fn) {
|
||||
lyr.getLayers().forEach(function (lyr, idx, a) {
|
||||
fn(lyr, idx, a);
|
||||
if (lyr.getLayers) {
|
||||
LayerSwitcher.forEachRecursive(lyr, fn);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* **Static** Generate a UUID
|
||||
* Adapted from http://stackoverflow.com/a/2117523/526860
|
||||
* @returns {String} UUID
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'uuid',
|
||||
value: function uuid() {
|
||||
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
||||
var r = Math.random() * 16 | 0,
|
||||
v = c == 'x' ? r : r & 0x3 | 0x8;
|
||||
return v.toString(16);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @desc Apply workaround to enable scrolling of overflowing content within an
|
||||
* element. Adapted from https://gist.github.com/chrismbarr/4107472
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'enableTouchScroll_',
|
||||
value: function enableTouchScroll_(elm) {
|
||||
if (LayerSwitcher.isTouchDevice_()) {
|
||||
var scrollStartPos = 0;
|
||||
elm.addEventListener("touchstart", function (event) {
|
||||
scrollStartPos = this.scrollTop + event.touches[0].pageY;
|
||||
}, false);
|
||||
elm.addEventListener("touchmove", function (event) {
|
||||
this.scrollTop = scrollStartPos - event.touches[0].pageY;
|
||||
}, false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @desc Determine if the current browser supports touch events. Adapted from
|
||||
* https://gist.github.com/chrismbarr/4107472
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'isTouchDevice_',
|
||||
value: function isTouchDevice_() {
|
||||
try {
|
||||
document.createEvent("TouchEvent");
|
||||
return true;
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fold/unfold layer group
|
||||
* @private
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'toggleFold_',
|
||||
value: function toggleFold_(lyr, li) {
|
||||
li.classList.remove(CSS_PREFIX + lyr.get('fold'));
|
||||
lyr.set('fold', lyr.get('fold') === 'open' ? 'close' : 'open');
|
||||
li.classList.add(CSS_PREFIX + lyr.get('fold'));
|
||||
}
|
||||
|
||||
/**
|
||||
* If a valid groupSelectStyle value is not provided then return the default
|
||||
* @private
|
||||
*/
|
||||
|
||||
}, {
|
||||
key: 'getGroupSelectStyle',
|
||||
value: function getGroupSelectStyle(groupSelectStyle) {
|
||||
return ['none', 'children', 'group'].indexOf(groupSelectStyle) >= 0 ? groupSelectStyle : 'children';
|
||||
}
|
||||
}]);
|
||||
return LayerSwitcher;
|
||||
}(Control);
|
||||
|
||||
if (window.ol && window.ol.control) {
|
||||
window.ol.control.LayerSwitcher = LayerSwitcher;
|
||||
}
|
||||
|
||||
return LayerSwitcher;
|
||||
|
||||
})));
|
||||
@@ -0,0 +1,2 @@
|
||||
.ol-box{box-sizing:border-box;border-radius:2px;border:2px solid #00f}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:rgba(0,60,136,.3);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid #eee;border-top:none;color:#eee;font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-step-marker{width:1px;height:15px;background-color:#000;float:right;z-Index:10}.ol-scale-step-text{position:absolute;bottom:-5px;font-size:12px;z-Index:11;color:#000;text-shadow:-2px 0 #fff,0 2px #fff,2px 0 #fff,0 -2px #fff}.ol-scale-text{position:absolute;font-size:14px;text-align:center;bottom:25px;color:#000;text-shadow:-2px 0 #fff,0 2px #fff,2px 0 #fff,0 -2px #fff}.ol-scale-singlebar{position:relative;height:10px;z-Index:9;border:1px solid #000}.ol-unsupported{display:none}.ol-unselectable,.ol-viewport{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-overlaycontainer,.ol-overlaycontainer-stopevent{pointer-events:none}.ol-overlaycontainer-stopevent>*,.ol-overlaycontainer>*{pointer-events:auto}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:rgba(255,255,255,.4);border-radius:4px;padding:2px}.ol-control:hover{background-color:rgba(255,255,255,.6)}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:#fff;font-size:1.14em;font-weight:700;text-decoration:none;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:rgba(0,60,136,.5);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-control button span{pointer-events:none}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;font-size:1.2em;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:focus,.ol-control button:hover{text-decoration:none;background-color:rgba(0,60,136,.7)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em)}.ol-attribution ul{margin:0;padding:0 .5em;color:#000;text-shadow:0 0 2px #fff}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button,.ol-attribution ul{display:inline-block}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:rgba(255,255,255,.8)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:inline-block}.ol-overviewmap .ol-overviewmap-map{border:1px solid #7b98bc;height:150px;margin:2px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:1px;left:2px;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:rgba(255,255,255,.8)}.ol-overviewmap-box{border:2px dotted rgba(0,60,136,.7)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}
|
||||
/*# sourceMappingURL=ol.css.map */
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"sources":["src/ol/ol.css"],"names":[],"mappings":"AAAA,QACE,WAAY,WACZ,cAAe,IACf,OAAQ,IAAI,MAAM,KAGpB,mBACE,IAAK,IACL,MAAO,IACP,SAAU,SAGZ,eACE,WAAY,kBACZ,cAAe,IACf,OAAQ,IACR,KAAM,IACN,QAAS,IACT,SAAU,SAEZ,qBACE,OAAQ,IAAI,MAAM,KAClB,WAAY,KACZ,MAAO,KACP,UAAW,KACX,WAAY,OACZ,OAAQ,IACR,YAAa,QAAQ,CAAE,MACvB,WAAY,IAAI,KAElB,cACE,SAAU,SACV,OAAQ,IACR,KAAM,IAER,sBACE,MAAO,IACP,OAAQ,KACR,iBAAkB,KAClB,MAAO,MACP,QAAS,GAEX,oBACE,SAAU,SACV,OAAQ,KACR,UAAW,KACX,QAAS,GACT,MAAO,KACP,YAAa,KAAK,EAAE,IAAO,CAAE,EAAE,IAAI,IAAO,CAAE,IAAI,EAAE,IAAO,CAAE,EAAE,KAAK,KAEpE,eACE,SAAU,SACV,UAAW,KACX,WAAY,OACZ,OAAQ,KACR,MAAO,KACP,YAAa,KAAK,EAAE,IAAO,CAAE,EAAE,IAAI,IAAO,CAAE,IAAI,EAAE,IAAO,CAAE,EAAE,KAAK,KAEpE,oBACE,SAAU,SACV,OAAQ,KACR,QAAS,EACT,OAAQ,IAAI,MAAM,KAGpB,gBACE,QAAS,KAEG,iBAAd,aACE,sBAAuB,KACvB,oBAAqB,KACrB,iBAAkB,KAClB,gBAAiB,KACjB,YAAa,KACb,4BAA6B,YAE/B,qBAAsB,+BACpB,eAAgB,KAEQ,iCAA1B,uBACE,eAAgB,KAElB,eACE,sBAAuB,QACvB,oBAAqB,KACrB,iBAAkB,KAClB,gBAAiB,KACjB,YAAa,KAEf,aACE,OAAQ,iBACR,OAAQ,cACR,OAAQ,SAEV,SACE,OAAQ,KACR,OAAQ,aACR,OAAQ,UACR,OAAQ,KAEV,YACE,SAAU,SACV,iBAAkB,qBAClB,cAAe,IACf,QAAS,IAEX,kBACE,iBAAkB,qBAEpB,SACE,IAAK,KACL,KAAM,KAER,WACE,IAAK,KACL,MAAO,KACP,WAAY,QAAQ,KAAK,MAAM,CAAE,WAAW,GAAG,OAEjD,qBACE,QAAS,EACT,WAAY,OACZ,WAAY,QAAQ,KAAK,MAAM,CAAE,WAAW,GAAG,OAAO,KAExD,gBACE,IAAK,QACL,KAAM,KAER,gBACE,MAAO,KACP,IAAK,KAGP,mBACE,QAAS,MACT,OAAQ,IACR,QAAS,EACT,MAAO,KACP,UAAW,OACX,YAAa,IACb,gBAAiB,KACjB,WAAY,OACZ,OAAQ,QACR,MAAO,QACP,YAAa,KACb,iBAAkB,kBAClB,OAAQ,KACR,cAAe,IAEjB,qCACE,OAAQ,KACR,QAAS,EAEX,wBACE,eAAgB,KAElB,uBACE,YAAa,MAEf,YACE,QAAS,MACT,YAAa,IACb,UAAW,MACX,YAAa,UAEf,6BACE,UAAW,MAEb,0BACE,IAAK,MAGP,yBADA,yBAEE,gBAAiB,KACjB,iBAAkB,kBAEpB,qBACE,cAAe,IAAI,IAAI,EAAE,EAE3B,sBACE,cAAe,EAAE,EAAE,IAAI,IAIzB,gBACE,WAAY,MACZ,OAAQ,KACR,MAAO,KACP,UAAW,mBAGb,mBACE,OAAQ,EACR,QAAS,EAAE,KACX,MAAO,KACP,YAAa,EAAE,EAAE,IAAI,KAEvB,mBACE,QAAS,OACT,WAAY,KAEd,0CACE,QAAS,IAEX,oBACE,WAAY,IACZ,UAAW,QACX,eAAgB,OAEE,uBAApB,mBACE,QAAS,aAEX,gCACE,QAAS,KAEX,mCACE,WAAY,qBAEd,iCACE,OAAQ,EACR,MAAO,EACP,cAAe,IAAI,EAAE,EAEvB,qCACE,WAAY,MACZ,WAAY,MAEd,wCACE,QAAS,KAGX,eACE,IAAK,MACL,KAAM,KACN,OAAQ,MAEV,sBACE,SAAU,SACV,OAAQ,KAGV,yBACE,IAAK,MAGP,gBACE,KAAM,KACN,OAAQ,KAEV,iCACE,OAAQ,EACR,KAAM,EACN,cAAe,EAAE,IAAI,EAAE,EAEzB,oCACA,uBACE,QAAS,aAEX,oCACE,OAAQ,IAAI,MAAM,QAClB,OAAQ,MACR,OAAQ,IACR,MAAO,MAET,0CACE,OAAQ,IACR,KAAM,IACN,SAAU,SAEZ,iDACA,wCACE,QAAS,KAEX,mCACE,WAAY,qBAEd,oBACE,OAAQ,IAAI,OAAO,kBAGrB,0CACE,OAAQ"}
|
||||
@@ -0,0 +1,152 @@
|
||||
function hasClass(el, cls) {
|
||||
return el.className && new RegExp('(\\s|^)' +
|
||||
cls + '(\\s|$)').test(el.className);
|
||||
}
|
||||
|
||||
function addClass(elem, className) {
|
||||
if (!hasClass(elem, className)) {
|
||||
elem.className += ' ' + className;
|
||||
}
|
||||
}
|
||||
|
||||
function removeClass(elem, className) {
|
||||
var newClass = ' ' + elem.className.replace(/[\t\r\n]/g, ' ') + ' ';
|
||||
if (hasClass(elem, className)) {
|
||||
while (newClass.indexOf(' ' + className + ' ') >= 0) {
|
||||
newClass = newClass.replace(' ' + className + ' ', ' ');
|
||||
}
|
||||
elem.className = newClass.replace(/^\s+|\s+$/g, '');
|
||||
}
|
||||
}
|
||||
|
||||
var SearchLayer = (function (Control) {
|
||||
function SearchLayer(optOptions) {
|
||||
var horseyComponent;
|
||||
var select;
|
||||
var options = optOptions || {};
|
||||
if (optOptions.layer) {
|
||||
options.layer = optOptions.layer;
|
||||
} else {
|
||||
throw new Error('error');
|
||||
}
|
||||
options.map = optOptions.map;
|
||||
|
||||
var source;
|
||||
if (options.layer instanceof ol.layer.Image &&
|
||||
options.layer.getSource() instanceof ol.source.ImageVector) {
|
||||
source = options.layer.getSource().getSource();
|
||||
} else if (options.layer instanceof ol.layer.Vector) {
|
||||
source = options.layer.getSource();
|
||||
}
|
||||
options.colName = optOptions.colName;
|
||||
|
||||
var button = document.createElement('button');
|
||||
var toogleHideShowInput = function() {
|
||||
var input = document.querySelector('form > .search-layer-input-search');
|
||||
if (hasClass(input, 'search-layer-collapsed')) {
|
||||
removeClass(input, 'search-layer-collapsed');
|
||||
} else {
|
||||
input.value = '';
|
||||
addClass(input, 'search-layer-collapsed');
|
||||
horseyComponent.hide();
|
||||
select.getFeatures().clear();
|
||||
}
|
||||
};
|
||||
|
||||
button.addEventListener('click', toogleHideShowInput, false);
|
||||
button.addEventListener('touchstart', toogleHideShowInput, false);
|
||||
|
||||
var form = document.createElement('form');
|
||||
form.setAttribute('id', 'random');
|
||||
form.onsubmit = undefined;
|
||||
// form.setAttribute('action', 'javascript:void(0);');
|
||||
|
||||
var input = document.createElement('input');
|
||||
input.setAttribute('id', 'ol-search-input');
|
||||
var defaultInputClass = ['search-layer-input-search'];
|
||||
if (optOptions.collapsed) {
|
||||
defaultInputClass.push('search-layer-collapsed');
|
||||
}
|
||||
input.setAttribute('class', defaultInputClass.join(' '));
|
||||
input.setAttribute('placeholder', 'Search ...');
|
||||
input.setAttribute('type', 'text');
|
||||
|
||||
form.appendChild(input);
|
||||
|
||||
var element = document.createElement('div');
|
||||
element.className = 'search-layer ol-unselectable ol-control';
|
||||
|
||||
element.appendChild(button);
|
||||
element.appendChild(form);
|
||||
|
||||
ol.control.Control.call(this, {
|
||||
element: element,
|
||||
target: options.target
|
||||
});
|
||||
|
||||
select = new ol.interaction.Select({
|
||||
id: options.selectId || 'defaultSearchLayer',
|
||||
layers: [options.layer],
|
||||
condition: ol.events.condition.never
|
||||
});
|
||||
|
||||
var map = options.map;
|
||||
|
||||
map.addInteraction(select);
|
||||
|
||||
var typesToZoomToExtent = [
|
||||
'MultiPoint',
|
||||
'LineString',
|
||||
'MultiLineString',
|
||||
'MultiPolygon',
|
||||
'Polygon'
|
||||
];
|
||||
|
||||
var typesToZoomToCenterAndZoom = [
|
||||
'Point'
|
||||
];
|
||||
var returnHorsey = function(input, source, map, select, options) {
|
||||
horsey(input, {
|
||||
source: [{
|
||||
list: source.getFeatures().map(function(el, i) {
|
||||
if (el.getId() === undefined) {
|
||||
el.setId(i);
|
||||
}
|
||||
return {
|
||||
text: el.get(options.colName),
|
||||
value: el.getId() // If GeoJSON has an id
|
||||
};
|
||||
})
|
||||
}],
|
||||
getText: 'text',
|
||||
getValue: 'value',
|
||||
predictNextSearch: function(info) {
|
||||
var feat = source.getFeatureById(info.selection.value);
|
||||
var featType = feat.getGeometry().getType();
|
||||
if (typesToZoomToCenterAndZoom.indexOf(featType) !== -1) {
|
||||
var newCenter = ol.extent.getCenter(feat.getGeometry().getExtent());
|
||||
map.getView().setCenter(newCenter);
|
||||
map.getView().setZoom(options.zoom || 12);
|
||||
} else if (typesToZoomToExtent.indexOf(featType) !== -1) {
|
||||
map.getView().fit(feat.getGeometry().getExtent(), map.getSize());
|
||||
}
|
||||
|
||||
select.getFeatures().clear();
|
||||
select.getFeatures().push(feat);
|
||||
}
|
||||
});
|
||||
}
|
||||
if (source.getState() === 'ready') {
|
||||
horseyComponent = returnHorsey(input, source, map, select, options);
|
||||
}
|
||||
source.once('change', function(e) {
|
||||
if (source.getState() === 'ready') {
|
||||
horseyComponent = returnHorsey(input, source, map, select, options);
|
||||
}
|
||||
});
|
||||
};
|
||||
if (Control) SearchLayer.__proto__ = Control;
|
||||
SearchLayer.prototype = Object.create(Control && Control.prototype);
|
||||
SearchLayer.prototype.constructor = SearchLayer;
|
||||
return SearchLayer;
|
||||
}(ol.control.Control));
|
||||
@@ -0,0 +1 @@
|
||||
.search-layer{top:65px;left:.5em}.ol-touch .search-layer{top:80px}.search-layer button{background-repeat:no-repeat;background-position:center center;top:2px;left:2px}.search-layer-input-search{position:absolute;top:2px;left:32px;width:180px;padding:5px;border:1px solid #ccc;font-family:inherit;font-size:.875rem}.search-layer-collapsed{display:none}
|
||||
@@ -0,0 +1,78 @@
|
||||
if (!Function.prototype.bind) {
|
||||
Function.prototype.bind = function(oThis) {
|
||||
if (typeof this !== 'function') {
|
||||
// closest thing possible to the ECMAScript 5
|
||||
// internal IsCallable function
|
||||
throw new TypeError('Function#bind - not callable');
|
||||
}
|
||||
|
||||
var aArgs = Array.prototype.slice.call(arguments, 1),
|
||||
fToBind = this,
|
||||
fNOP = function() {},
|
||||
fBound = function() {
|
||||
return fToBind.apply(this instanceof fNOP
|
||||
? this
|
||||
: oThis,
|
||||
aArgs.concat(Array.prototype.slice.call(arguments)));
|
||||
};
|
||||
|
||||
if (this.prototype) {
|
||||
// native functions don't have a prototype
|
||||
fNOP.prototype = this.prototype;
|
||||
}
|
||||
fBound.prototype = new fNOP();
|
||||
|
||||
return fBound;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* requestAnimationFrame polyfill v1.0.0
|
||||
* requires Date.now
|
||||
*
|
||||
* © Polyfiller 2015
|
||||
* Released under the MIT license
|
||||
* github.com/Polyfiller/requestAnimationFrame
|
||||
*/
|
||||
window.requestAnimationFrame || function (window) {
|
||||
|
||||
'use strict';
|
||||
|
||||
window.requestAnimationFrame = window.msRequestAnimationFrame
|
||||
|| window.mozRequestAnimationFrame
|
||||
|| window.webkitRequestAnimationFrame
|
||||
|| function () {
|
||||
|
||||
var fps = 60;
|
||||
var delay = 1000 / fps;
|
||||
var animationStartTime = Date.now();
|
||||
var previousCallTime = animationStartTime;
|
||||
|
||||
return function requestAnimationFrame(callback) {
|
||||
|
||||
var requestTime = Date.now();
|
||||
var timeout = Math.max(0, delay - (requestTime - previousCallTime));
|
||||
var timeToCall = requestTime + timeout;
|
||||
|
||||
previousCallTime = timeToCall;
|
||||
|
||||
return window.setTimeout(function onAnimationFrame() {
|
||||
|
||||
callback(timeToCall - animationStartTime);
|
||||
|
||||
}, timeout);
|
||||
};
|
||||
}();
|
||||
|
||||
window.cancelAnimationFrame = window.mozCancelAnimationFrame
|
||||
|| window.webkitCancelAnimationFrame
|
||||
|| window.cancelRequestAnimationFrame
|
||||
|| window.msCancelRequestAnimationFrame
|
||||
|| window.mozCancelRequestAnimationFrame
|
||||
|| window.webkitCancelRequestAnimationFrame
|
||||
|| function cancelAnimationFrame(id) {
|
||||
window.clearTimeout(id);
|
||||
};
|
||||
|
||||
}(this);
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
html, body {
|
||||
height: 100%;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-family: sans-serif;
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
th, td {
|
||||
vertical-align: top;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#map {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.ol-popup {
|
||||
display: none;
|
||||
position: absolute;
|
||||
background-color: white;
|
||||
-moz-box-shadow: 0 1px 4px rgba(0,0,0,0.2);
|
||||
-webkit-filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2));
|
||||
filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2));
|
||||
padding: 15px;
|
||||
border-radius: 10px;
|
||||
border: 1px solid #cccccc;
|
||||
bottom: 12px;
|
||||
left: -50px;
|
||||
height: auto;
|
||||
width: auto;
|
||||
min-width: 100px;
|
||||
max-height:400px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.ol-popup-closer {
|
||||
text-decoration: none;
|
||||
position: absolute;
|
||||
top: 2px;
|
||||
right: 8px;
|
||||
}
|
||||
|
||||
.ol-popup-closer:after {
|
||||
content: "X";
|
||||
}
|
||||
|
||||
.ol-attribution a {
|
||||
text-decoration: none;
|
||||
color: #666;
|
||||
font-family: sans-serif;
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
.layer-switcher .panel {
|
||||
//border: 4px solid rgba(0,60,136,.5) !important;
|
||||
//border-radius: 4px !important;
|
||||
}
|
||||
|
||||
.layer-switcher {
|
||||
top: 0.5em;
|
||||
right: 0.5em;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#popup-content>ul>li:nth-child(even) {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
#popup-content ul {
|
||||
list-style-type: none;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
#popup-content li {
|
||||
margin-bottom:0.25em;
|
||||
}
|
||||
@@ -0,0 +1,373 @@
|
||||
|
||||
|
||||
var container = document.getElementById('popup');
|
||||
var content = document.getElementById('popup-content');
|
||||
var closer = document.getElementById('popup-closer');
|
||||
var sketch;
|
||||
|
||||
closer.onclick = function() {
|
||||
container.style.display = 'none';
|
||||
closer.blur();
|
||||
return false;
|
||||
};
|
||||
var overlayPopup = new ol.Overlay({
|
||||
element: container
|
||||
});
|
||||
|
||||
var expandedAttribution = new ol.control.Attribution({
|
||||
collapsible: false
|
||||
});
|
||||
|
||||
var map = new ol.Map({
|
||||
controls: ol.control.defaults({attribution:false}).extend([
|
||||
expandedAttribution
|
||||
]),
|
||||
target: document.getElementById('map'),
|
||||
renderer: 'canvas',
|
||||
overlays: [overlayPopup],
|
||||
layers: layersList,
|
||||
view: new ol.View({
|
||||
maxZoom: 28, minZoom: 1
|
||||
})
|
||||
});
|
||||
|
||||
var layerSwitcher = new ol.control.LayerSwitcher({tipLabel: "Layers"});
|
||||
map.addControl(layerSwitcher);
|
||||
layerSwitcher.hidePanel = function() {};
|
||||
layerSwitcher.showPanel();
|
||||
|
||||
|
||||
map.getView().fit([-5909061.403555, -3014620.642764, -5899867.325848, -3004998.250310], map.getSize());
|
||||
|
||||
var NO_POPUP = 0
|
||||
var ALL_FIELDS = 1
|
||||
|
||||
/**
|
||||
* Returns either NO_POPUP, ALL_FIELDS or the name of a single field to use for
|
||||
* a given layer
|
||||
* @param layerList {Array} List of ol.Layer instances
|
||||
* @param layer {ol.Layer} Layer to find field info about
|
||||
*/
|
||||
function getPopupFields(layerList, layer) {
|
||||
// Determine the index that the layer will have in the popupLayers Array,
|
||||
// if the layersList contains more items than popupLayers then we need to
|
||||
// adjust the index to take into account the base maps group
|
||||
var idx = layersList.indexOf(layer) - (layersList.length - popupLayers.length);
|
||||
return popupLayers[idx];
|
||||
}
|
||||
|
||||
|
||||
var collection = new ol.Collection();
|
||||
var featureOverlay = new ol.layer.Vector({
|
||||
map: map,
|
||||
source: new ol.source.Vector({
|
||||
features: collection,
|
||||
useSpatialIndex: false // optional, might improve performance
|
||||
}),
|
||||
style: [new ol.style.Style({
|
||||
stroke: new ol.style.Stroke({
|
||||
color: '#f00',
|
||||
width: 1
|
||||
}),
|
||||
fill: new ol.style.Fill({
|
||||
color: 'rgba(255,0,0,0.1)'
|
||||
}),
|
||||
})],
|
||||
updateWhileAnimating: true, // optional, for instant visual feedback
|
||||
updateWhileInteracting: true // optional, for instant visual feedback
|
||||
});
|
||||
|
||||
var doHighlight = false;
|
||||
var doHover = false;
|
||||
|
||||
var highlight;
|
||||
var autolinker = new Autolinker({truncate: {length: 30, location: 'smart'}});
|
||||
var onPointerMove = function(evt) {
|
||||
if (!doHover && !doHighlight) {
|
||||
return;
|
||||
}
|
||||
var pixel = map.getEventPixel(evt.originalEvent);
|
||||
var coord = evt.coordinate;
|
||||
var popupField;
|
||||
var currentFeature;
|
||||
var currentLayer;
|
||||
var currentFeatureKeys;
|
||||
var clusteredFeatures;
|
||||
var popupText = '<ul>';
|
||||
map.forEachFeatureAtPixel(pixel, function(feature, layer) {
|
||||
// We only care about features from layers in the layersList, ignore
|
||||
// any other layers which the map might contain such as the vector
|
||||
// layer used by the measure tool
|
||||
if (layersList.indexOf(layer) === -1) {
|
||||
return;
|
||||
}
|
||||
var doPopup = false;
|
||||
for (k in layer.get('fieldImages')) {
|
||||
if (layer.get('fieldImages')[k] != "Hidden") {
|
||||
doPopup = true;
|
||||
}
|
||||
}
|
||||
currentFeature = feature;
|
||||
currentLayer = layer;
|
||||
clusteredFeatures = feature.get("features");
|
||||
var clusterFeature;
|
||||
if (typeof clusteredFeatures !== "undefined") {
|
||||
if (doPopup) {
|
||||
for(var n=0; n<clusteredFeatures.length; n++) {
|
||||
clusterFeature = clusteredFeatures[n];
|
||||
currentFeatureKeys = clusterFeature.getKeys();
|
||||
popupText += '<li><table>'
|
||||
for (var i=0; i<currentFeatureKeys.length; i++) {
|
||||
if (currentFeatureKeys[i] != 'geometry') {
|
||||
popupField = '';
|
||||
if (layer.get('fieldLabels')[currentFeatureKeys[i]] == "inline label") {
|
||||
popupField += '<th>' + layer.get('fieldAliases')[currentFeatureKeys[i]] + ':</th><td>';
|
||||
} else {
|
||||
popupField += '<td colspan="2">';
|
||||
}
|
||||
if (layer.get('fieldLabels')[currentFeatureKeys[i]] == "header label") {
|
||||
popupField += '<strong>' + layer.get('fieldAliases')[currentFeatureKeys[i]] + ':</strong><br />';
|
||||
}
|
||||
if (layer.get('fieldImages')[currentFeatureKeys[i]] != "ExternalResource") {
|
||||
popupField += (clusterFeature.get(currentFeatureKeys[i]) != null ? autolinker.link(clusterFeature.get(currentFeatureKeys[i]).toLocaleString()) + '</td>' : '');
|
||||
} else {
|
||||
popupField += (clusterFeature.get(currentFeatureKeys[i]) != null ? '<img src="images/' + clusterFeature.get(currentFeatureKeys[i]).replace(/[\\\/:]/g, '_').trim() + '" /></td>' : '');
|
||||
}
|
||||
popupText += '<tr>' + popupField + '</tr>';
|
||||
}
|
||||
}
|
||||
popupText += '</table></li>';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
currentFeatureKeys = currentFeature.getKeys();
|
||||
if (doPopup) {
|
||||
popupText += '<li><table>';
|
||||
for (var i=0; i<currentFeatureKeys.length; i++) {
|
||||
if (currentFeatureKeys[i] != 'geometry') {
|
||||
popupField = '';
|
||||
if (layer.get('fieldLabels')[currentFeatureKeys[i]] == "inline label") {
|
||||
popupField += '<th>' + layer.get('fieldAliases')[currentFeatureKeys[i]] + ':</th><td>';
|
||||
} else {
|
||||
popupField += '<td colspan="2">';
|
||||
}
|
||||
if (layer.get('fieldLabels')[currentFeatureKeys[i]] == "header label") {
|
||||
popupField += '<strong>' + layer.get('fieldAliases')[currentFeatureKeys[i]] + ':</strong><br />';
|
||||
}
|
||||
if (layer.get('fieldImages')[currentFeatureKeys[i]] != "ExternalResource") {
|
||||
popupField += (currentFeature.get(currentFeatureKeys[i]) != null ? autolinker.link(currentFeature.get(currentFeatureKeys[i]).toLocaleString()) + '</td>' : '');
|
||||
} else {
|
||||
popupField += (currentFeature.get(currentFeatureKeys[i]) != null ? '<img src="images/' + currentFeature.get(currentFeatureKeys[i]).replace(/[\\\/:]/g, '_').trim() + '" /></td>' : '');
|
||||
}
|
||||
popupText += '<tr>' + popupField + '</tr>';
|
||||
}
|
||||
}
|
||||
popupText += '</table></li>';
|
||||
}
|
||||
}
|
||||
});
|
||||
if (popupText == '<ul>') {
|
||||
popupText = '';
|
||||
} else {
|
||||
popupText += '</ul>';
|
||||
}
|
||||
|
||||
if (doHighlight) {
|
||||
if (currentFeature !== highlight) {
|
||||
if (highlight) {
|
||||
featureOverlay.getSource().removeFeature(highlight);
|
||||
}
|
||||
if (currentFeature) {
|
||||
var styleDefinition = currentLayer.getStyle().toString();
|
||||
|
||||
if (currentFeature.getGeometry().getType() == 'Point') {
|
||||
var radius = styleDefinition.split('radius')[1].split(' ')[1];
|
||||
|
||||
highlightStyle = new ol.style.Style({
|
||||
image: new ol.style.Circle({
|
||||
fill: new ol.style.Fill({
|
||||
color: "#ffff00"
|
||||
}),
|
||||
radius: radius
|
||||
})
|
||||
})
|
||||
} else if (currentFeature.getGeometry().getType() == 'LineString') {
|
||||
|
||||
var featureWidth = styleDefinition.split('width')[1].split(' ')[1].replace('})','');
|
||||
|
||||
highlightStyle = new ol.style.Style({
|
||||
stroke: new ol.style.Stroke({
|
||||
color: '#ffff00',
|
||||
lineDash: null,
|
||||
width: featureWidth
|
||||
})
|
||||
});
|
||||
|
||||
} else {
|
||||
highlightStyle = new ol.style.Style({
|
||||
fill: new ol.style.Fill({
|
||||
color: '#ffff00'
|
||||
})
|
||||
})
|
||||
}
|
||||
featureOverlay.getSource().addFeature(currentFeature);
|
||||
featureOverlay.setStyle(highlightStyle);
|
||||
}
|
||||
highlight = currentFeature;
|
||||
}
|
||||
}
|
||||
|
||||
if (doHover) {
|
||||
if (popupText) {
|
||||
overlayPopup.setPosition(coord);
|
||||
content.innerHTML = popupText;
|
||||
container.style.display = 'block';
|
||||
} else {
|
||||
container.style.display = 'none';
|
||||
closer.blur();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var onSingleClick = function(evt) {
|
||||
if (doHover) {
|
||||
return;
|
||||
}
|
||||
if (sketch) {
|
||||
return;
|
||||
}
|
||||
var pixel = map.getEventPixel(evt.originalEvent);
|
||||
var coord = evt.coordinate;
|
||||
var popupField;
|
||||
var currentFeature;
|
||||
var currentFeatureKeys;
|
||||
var clusteredFeatures;
|
||||
var popupText = '<ul>';
|
||||
map.forEachFeatureAtPixel(pixel, function(feature, layer) {
|
||||
if (feature instanceof ol.Feature && (layer.get("interactive") || layer.get("interactive") == undefined)) {
|
||||
var doPopup = false;
|
||||
for (k in layer.get('fieldImages')) {
|
||||
if (layer.get('fieldImages')[k] != "Hidden") {
|
||||
doPopup = true;
|
||||
}
|
||||
}
|
||||
currentFeature = feature;
|
||||
clusteredFeatures = feature.get("features");
|
||||
var clusterFeature;
|
||||
if (typeof clusteredFeatures !== "undefined") {
|
||||
if (doPopup) {
|
||||
for(var n=0; n<clusteredFeatures.length; n++) {
|
||||
clusterFeature = clusteredFeatures[n];
|
||||
currentFeatureKeys = clusterFeature.getKeys();
|
||||
popupText += '<li><table>'
|
||||
for (var i=0; i<currentFeatureKeys.length; i++) {
|
||||
if (currentFeatureKeys[i] != 'geometry') {
|
||||
popupField = '';
|
||||
if (layer.get('fieldLabels')[currentFeatureKeys[i]] == "inline label") {
|
||||
popupField += '<th>' + layer.get('fieldAliases')[currentFeatureKeys[i]] + ':</th><td>';
|
||||
} else {
|
||||
popupField += '<td colspan="2">';
|
||||
}
|
||||
if (layer.get('fieldLabels')[currentFeatureKeys[i]] == "header label") {
|
||||
popupField += '<strong>' + layer.get('fieldAliases')[currentFeatureKeys[i]] + ':</strong><br />';
|
||||
}
|
||||
if (layer.get('fieldImages')[currentFeatureKeys[i]] != "ExternalResource") {
|
||||
popupField += (clusterFeature.get(currentFeatureKeys[i]) != null ? autolinker.link(clusterFeature.get(currentFeatureKeys[i]).toLocaleString()) + '</td>' : '');
|
||||
} else {
|
||||
popupField += (clusterFeature.get(currentFeatureKeys[i]) != null ? '<img src="images/' + clusterFeature.get(currentFeatureKeys[i]).replace(/[\\\/:]/g, '_').trim() + '" /></td>' : '');
|
||||
}
|
||||
popupText += '<tr>' + popupField + '</tr>';
|
||||
}
|
||||
}
|
||||
popupText += '</table></li>';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
currentFeatureKeys = currentFeature.getKeys();
|
||||
if (doPopup) {
|
||||
popupText += '<li><table>';
|
||||
for (var i=0; i<currentFeatureKeys.length; i++) {
|
||||
if (currentFeatureKeys[i] != 'geometry') {
|
||||
popupField = '';
|
||||
if (layer.get('fieldLabels')[currentFeatureKeys[i]] == "inline label") {
|
||||
popupField += '<th>' + layer.get('fieldAliases')[currentFeatureKeys[i]] + ':</th><td>';
|
||||
} else {
|
||||
popupField += '<td colspan="2">';
|
||||
}
|
||||
if (layer.get('fieldLabels')[currentFeatureKeys[i]] == "header label") {
|
||||
popupField += '<strong>' + layer.get('fieldAliases')[currentFeatureKeys[i]] + ':</strong><br />';
|
||||
}
|
||||
if (layer.get('fieldImages')[currentFeatureKeys[i]] != "ExternalResource") {
|
||||
popupField += (currentFeature.get(currentFeatureKeys[i]) != null ? autolinker.link(currentFeature.get(currentFeatureKeys[i]).toLocaleString()) + '</td>' : '');
|
||||
} else {
|
||||
popupField += (currentFeature.get(currentFeatureKeys[i]) != null ? '<img src="images/' + currentFeature.get(currentFeatureKeys[i]).replace(/[\\\/:]/g, '_').trim() + '" /></td>' : '');
|
||||
}
|
||||
popupText += '<tr>' + popupField + '</tr>';
|
||||
}
|
||||
}
|
||||
popupText += '</table>';
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
if (popupText == '<ul>') {
|
||||
popupText = '';
|
||||
} else {
|
||||
popupText += '</ul>';
|
||||
}
|
||||
|
||||
var viewProjection = map.getView().getProjection();
|
||||
var viewResolution = map.getView().getResolution();
|
||||
for (i = 0; i < wms_layers.length; i++) {
|
||||
if (wms_layers[i][1]) {
|
||||
var url = wms_layers[i][0].getSource().getGetFeatureInfoUrl(
|
||||
evt.coordinate, viewResolution, viewProjection,
|
||||
{
|
||||
'INFO_FORMAT': 'text/html',
|
||||
});
|
||||
if (url) {
|
||||
popupText = popupText + '<iframe style="width:100%;height:110px;border:0px;" id="iframe" seamless src="' + url + '"></iframe>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (popupText) {
|
||||
overlayPopup.setPosition(coord);
|
||||
content.innerHTML = popupText;
|
||||
container.style.display = 'block';
|
||||
} else {
|
||||
container.style.display = 'none';
|
||||
closer.blur();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
map.on('pointermove', function(evt) {
|
||||
onPointerMove(evt);
|
||||
});
|
||||
map.on('singleclick', function(evt) {
|
||||
onSingleClick(evt);
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
var attributionComplete = false;
|
||||
map.on("rendercomplete", function(evt) {
|
||||
if (!attributionComplete) {
|
||||
var attribution = document.getElementsByClassName('ol-attribution')[0];
|
||||
var attributionList = attribution.getElementsByTagName('ul')[0];
|
||||
var firstLayerAttribution = attributionList.getElementsByTagName('li')[0];
|
||||
var qgis2webAttribution = document.createElement('li');
|
||||
qgis2webAttribution.innerHTML = '<a href="https://github.com/tomchadwin/qgis2web">qgis2web</a> · ';
|
||||
var olAttribution = document.createElement('li');
|
||||
olAttribution.innerHTML = '<a href="https://openlayers.org/">OpenLayers</a> · ';
|
||||
var qgisAttribution = document.createElement('li');
|
||||
qgisAttribution.innerHTML = '<a href="https://qgis.org/">QGIS</a>';
|
||||
attributionList.insertBefore(qgis2webAttribution, firstLayerAttribution);
|
||||
attributionList.insertBefore(olAttribution, firstLayerAttribution);
|
||||
attributionList.insertBefore(qgisAttribution, firstLayerAttribution);
|
||||
attributionComplete = true;
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1,765 @@
|
||||
// Aggregates
|
||||
|
||||
// Color
|
||||
|
||||
// Conditionals
|
||||
|
||||
// Conversions
|
||||
|
||||
// Custom
|
||||
|
||||
// Date and Time
|
||||
|
||||
// Fields and Values
|
||||
|
||||
// Fuzzy Matching
|
||||
|
||||
// General
|
||||
|
||||
// Geometry
|
||||
function fnc_azimuth(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_project(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
// Math
|
||||
function fnc_abs(values, context) {
|
||||
return Math.abs(values[0]);
|
||||
};
|
||||
|
||||
function fnc_degrees(values, context) {
|
||||
return values[0] * (180/Math.PI);
|
||||
};
|
||||
|
||||
function fnc_radians(values, context) {
|
||||
return values[0] * (Math.PI/180);
|
||||
};
|
||||
|
||||
function fnc_sqrt(values, context) {
|
||||
return Math.sqrt(values[0]);
|
||||
};
|
||||
|
||||
function fnc_cos(values, context) {
|
||||
return Math.cos(values[0]);
|
||||
};
|
||||
|
||||
function fnc_sin(values, context) {
|
||||
return Math.sin(values[0]);
|
||||
};
|
||||
|
||||
function fnc_tan(values, context) {
|
||||
return Math.tan(values[0]);
|
||||
};
|
||||
|
||||
function fnc_asin(values, context) {
|
||||
return Math.asin(values[0]);
|
||||
};
|
||||
|
||||
function fnc_acos(values, context) {
|
||||
return Math.acos(values[0]);
|
||||
};
|
||||
|
||||
function fnc_atan(values, context) {
|
||||
return Math.atan(values[0]);
|
||||
};
|
||||
|
||||
function fnc_atan2(values, context) {
|
||||
return Math.atan2(values[0]);
|
||||
};
|
||||
|
||||
function fnc_exp(values, context) {
|
||||
return Math.exp(values[0]);
|
||||
};
|
||||
|
||||
function fnc_ln(values, context) {
|
||||
return Math.log(values[0]);
|
||||
};
|
||||
|
||||
function fnc_log10(values, context) {
|
||||
return Math.LN10(values[0]);
|
||||
};
|
||||
|
||||
function fnc_log(values, context) {
|
||||
return Math.log(values[0]) / Math.log(values[1]);
|
||||
};
|
||||
|
||||
function fnc_round(values, context) {
|
||||
return Math.round(values[0]);
|
||||
};
|
||||
|
||||
function fnc_rand(values, context) {
|
||||
return Math.floor(Math.random()*(values[1]-values[0]+1)+values[0]);
|
||||
};
|
||||
|
||||
function fnc_randf(values, context) {
|
||||
return Math.random()*(values[1]-values[0]+1)+values[0];
|
||||
};
|
||||
|
||||
function fnc_max(values, context) {
|
||||
return Math.max.apply(this, values);
|
||||
};
|
||||
|
||||
function fnc_min(values, context) {
|
||||
return Math.min.apply(this, values);
|
||||
};
|
||||
|
||||
function fnc_clamp(values, context) {
|
||||
return Math.min(Math.max(values[0],values[1]),values[2]);
|
||||
};
|
||||
|
||||
// Operators
|
||||
|
||||
// Record
|
||||
|
||||
// String
|
||||
|
||||
// TimeManager
|
||||
|
||||
// Variables
|
||||
|
||||
|
||||
|
||||
function fnc_scale_linear(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_scale_exp(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_floor(values, context) {
|
||||
return Math.floor(values[0]);
|
||||
};
|
||||
|
||||
function fnc_ceil(values, context) {
|
||||
return Math.ceil(values[0]);
|
||||
};
|
||||
|
||||
function fnc_pi(values, context) {
|
||||
return Math.PI;
|
||||
};
|
||||
|
||||
function fnc_to_int(values, context) {
|
||||
var intVal = parseInt(values[0],10);
|
||||
if ( isNaN(intVal) ) { return false };
|
||||
return intVal;
|
||||
};
|
||||
|
||||
function fnc_to_real(values, context) {
|
||||
var realVal = parseFloat(values[0]);
|
||||
if ( isNaN(realVal) ) { return false };
|
||||
return realVal;
|
||||
};
|
||||
|
||||
function fnc_to_string(values, context) {
|
||||
return String(values[0]);
|
||||
};
|
||||
|
||||
function fnc_to_datetime(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_to_date(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_to_time(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_to_interval(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_coalesce(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_if(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_aggregate(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_relation_aggregate(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_count(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_count_distinct(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_count_missing(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_minimum(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_maximum(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_sum(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_mean(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_median(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_stdev(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_range(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_minority(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_majority(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_q1(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_q3(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_iqr(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_min_length(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_max_length(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_concatenate(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_regexp_match(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_now(values, context) {
|
||||
return new Date().toISOString();
|
||||
};
|
||||
|
||||
function fnc_age(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_year(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_month(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_week(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_day(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_hour(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_minute(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_second(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_day_of_week(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_lower(values, context) {
|
||||
if ( typeof values[0] != "string" ) { return false; }
|
||||
return values[0].toLowerCase();
|
||||
};
|
||||
|
||||
function fnc_upper(values, context) {
|
||||
if ( typeof values[0] != "string" ) { return false; }
|
||||
return values[0].toUpperCase();
|
||||
};
|
||||
|
||||
function fnc_title(values, context) {
|
||||
if ( typeof values[0] != "string" ) { return false; }
|
||||
return values[0].toLowerCase().split(' ').map(function(word) {
|
||||
return (word.charAt(0).toUpperCase() + word.slice(1));
|
||||
}).join(' ');
|
||||
};
|
||||
|
||||
function fnc_trim(values, context) {
|
||||
if ( typeof values[0] != "string" ) { return false; }
|
||||
return String(values[0]).trim();
|
||||
};
|
||||
|
||||
function fnc_levenshtein(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_longest_common_substring(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_hamming_distance(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_soundex(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_char(values, context) {
|
||||
if ( isNaN(values[0]) || !values[0]) { return null; } return String.fromCodePoint(values[0]);
|
||||
};
|
||||
|
||||
function fnc_wordwrap(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_length(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_replace(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_regexp_replace(values, context) {
|
||||
if ( !values[0] ) { return null; } return String(values[0]).replace(RegExp(values[1]),values[2]);
|
||||
};
|
||||
|
||||
function fnc_regexp_substr(values, context) {
|
||||
if ( !values[0] ) { return null; }
|
||||
return String(values[0]).match(RegExp(values[1]))[0];
|
||||
};
|
||||
|
||||
function fnc_substr(values, context) {
|
||||
var length = values[2]
|
||||
if ( !values[0] || isNaN(values[1])) { return false; }
|
||||
return String(values[0]).substr(values[1], length);
|
||||
};
|
||||
|
||||
function fnc_concat(values, context) {
|
||||
return values.join('');
|
||||
};
|
||||
|
||||
function fnc_strpos(values, context) {
|
||||
if (!values[0] || !values[1]) {return null}
|
||||
return String(values[0]).indexOf(String(values[1]))+1;
|
||||
};
|
||||
|
||||
function fnc_left(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_right(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_rpad(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_lpad(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_format(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_format_number(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_format_date(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_color_rgb(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_color_rgba(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_ramp_color(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_color_hsl(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_color_hsla(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_color_hsv(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_color_hsva(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_color_cmyk(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_color_cmyka(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_color_part(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_darker(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_lighter(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_set_color_part(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_area(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_perimeter(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_x(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_y(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_z(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_m(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_point_n(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_start_point(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_end_point(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_nodes_to_points(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_segments_to_lines(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_make_point(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_make_point_m(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_make_line(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_make_polygon(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_x_min(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_x_max(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_y_min(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_y_max(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_geom_from_wkt(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_geom_from_gml(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_relate(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_intersects_bbox(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_disjoint(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_intersects(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_touches(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_crosses(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_contains(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_overlaps(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_within(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_translate(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_buffer(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_centroid(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_point_on_surface(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_reverse(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_exterior_ring(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_interior_ring_n(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_geometry_n(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_boundary(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_line_merge(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_bounds(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_num_points(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_num_interior_rings(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_num_rings(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_num_geometries(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_bounds_width(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_bounds_height(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_is_closed(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_convex_hull(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_difference(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_distance(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_intersection(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_sym_difference(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_combine(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_union(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_geom_to_wkt(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_geometry(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_transform(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_extrude(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_order_parts(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_closest_point(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_shortest_line(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_line_interpolate_point(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_line_interpolate_angle(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_line_locate_point(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_angle_at_vertex(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_distance_to_vertex(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_uuid(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_get_feature(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_layer_property(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_var(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_eval(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_attribute(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc__specialcol_(values, context) {
|
||||
return false;
|
||||
};
|
||||
|
||||
function fnc_project_color(values, context) {
|
||||
return false;
|
||||
};
|
||||
@@ -0,0 +1,725 @@
|
||||
@charset "UTF-8";
|
||||
/*
|
||||
| tail.datetime - The vanilla way to select dates and times!
|
||||
| @file ./less/tail.datetime-harx-light.less
|
||||
| @author SamBrishes <sam@pytes.net>
|
||||
| @version 0.4.14 - Beta
|
||||
|
|
||||
| @website https://github.com/pytesNET/tail.DateTime
|
||||
| @license X11 / MIT License
|
||||
| @copyright Copyright © 2018 - 2019 SamBrishes, pytesNET <info@pytes.net>
|
||||
*/
|
||||
|
||||
/* @start MAIN CALENDAR */
|
||||
.tail-datetime-calendar, .tail-datetime-calendar *, .tail-datetime-calendar *:before,
|
||||
.tail-datetime-calendar *:after{
|
||||
box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
}
|
||||
.tail-datetime-calendar{
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 360px;
|
||||
height: auto;
|
||||
margin: 15px;
|
||||
padding: 0;
|
||||
z-index: 3000;
|
||||
display: block;
|
||||
position: absolute;
|
||||
visibility: hidden;
|
||||
direction: ltr;
|
||||
border-collapse: separate;
|
||||
font-family: "Open Sans", Calibri, Arial, sans-serif;
|
||||
background-color: white;
|
||||
border-width: 0;
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
border-radius: 3px;
|
||||
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 2px 1px rgba(0, 0, 0, 0.1);
|
||||
-webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 2px 1px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.tail-datetime-calendar:after{
|
||||
clear: both;
|
||||
content: "";
|
||||
display: block;
|
||||
font-size: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
.tail-datetime-calendar.calendar-static{
|
||||
top: auto;
|
||||
left: auto;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
position: static;
|
||||
visibility: visible;
|
||||
}
|
||||
.tail-datetime-calendar button.calendar-close{
|
||||
top: 100%;
|
||||
right: 15px;
|
||||
color: #303438;
|
||||
width: 35px;
|
||||
height: 25px;
|
||||
margin: 1px 0 0 0;
|
||||
padding: 5px 10px;
|
||||
opacity: 0.5;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
font-size: 14px;
|
||||
line-height: 1.125em;
|
||||
text-shadow: none;
|
||||
border: 0;
|
||||
outline: none;
|
||||
background-color: white;
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z\
|
||||
dmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDEyIDE2Ij48cGF0aCBmaWxsPSIjMzAzNDM4IiB\
|
||||
kPSJNNy40OCA4bDMuNzUgMy43NS0xLjQ4IDEuNDhMNiA5LjQ4bC0zLjc1IDMuNzUtMS40OC0xLjQ4TDQuNTIgOCAuNz\
|
||||
cgNC4yNWwxLjQ4LTEuNDhMNiA2LjUybDMuNzUtMy43NSAxLjQ4IDEuNDhMNy40OCA4eiIvPjwvc3ZnPg==");
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
border-width: 0;
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
border-radius: 0 0 3px 3px;
|
||||
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 2px 1px rgba(0, 0, 0, 0.1);
|
||||
-webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15), 0 1px 2px 1px rgba(0, 0, 0, 0.1);
|
||||
transition: opacity 142ms linear;
|
||||
-webkit-transition: opacity 142ms linear;
|
||||
}
|
||||
.tail-datetime-calendar button.calendar-close:hover{
|
||||
opacity: 1;
|
||||
}
|
||||
/* @end MAIN CALENDAR */
|
||||
|
||||
/* @start CALENDAR TOOLTIP */
|
||||
.tail-datetime-calendar .calendar-tooltip{
|
||||
color: white;
|
||||
width: auto;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: block;
|
||||
position: absolute;
|
||||
background-color: #303438;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-tooltip:before{
|
||||
top: -7px;
|
||||
left: 50%;
|
||||
width: 0;
|
||||
height: 0;
|
||||
margin: 0 0 0 -6px;
|
||||
content: "";
|
||||
display: block;
|
||||
position: absolute;
|
||||
border-width: 0 7px 7px 7px;
|
||||
border-style: solid;
|
||||
border-color: transparent transparent #303438 transparent;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-tooltip .tooltip-inner{
|
||||
width: auto;
|
||||
margin: 0;
|
||||
padding: 4px 7px;
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
line-height: 14px;
|
||||
}
|
||||
/* @end CALENDAR TOOLTIP */
|
||||
|
||||
/* @start CALENDAR ACTIONs */
|
||||
.tail-datetime-calendar .calendar-actions{
|
||||
color: #303438;
|
||||
width: 100%;
|
||||
height: 36px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: table;
|
||||
overflow: hidden;
|
||||
border-spacing: 0;
|
||||
border-collapse: separate;
|
||||
background-color: white;
|
||||
border-width: 0;
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
border-radius: 3px 3px 0 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
opacity: 0.5;
|
||||
display: table-cell;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
line-height: 40px;
|
||||
text-shadow: none;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
transition: opacity 142ms linear, background 142ms linear;
|
||||
-webkit-transition: opacity 142ms linear, background 142ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span[data-action]{
|
||||
cursor: pointer;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.action{
|
||||
width: 50px;
|
||||
font-size: 22px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.label{
|
||||
width: auto;
|
||||
opacity: 1;
|
||||
font-size: 16px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:first-child{
|
||||
border-radius: 4px 0 0 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:last-child{
|
||||
border-radius: 0 4px 0 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:first-child:before,
|
||||
.tail-datetime-calendar .calendar-actions span:last-child:before{
|
||||
top: 5px;
|
||||
bottom: 5px;
|
||||
width: 1px;
|
||||
height: auto;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
background-color: #e6e6e6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:first-child:before{
|
||||
right: -1px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:last-child:before{
|
||||
left: -1px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span:first-child:hover:before,
|
||||
.tail-datetime-calendar .calendar-actions span:last-child:hover:before{
|
||||
display: none;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span[data-action]:hover{
|
||||
opacity: 0.95;
|
||||
background-color: #e6e6e6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.action-prev{
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zd\
|
||||
mciIHdpZHRoPSI2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgNiAxNiI+PHBhdGggZD0iTTYgMkwwIDhsNiA2VjJ6\
|
||||
Ii8+PC9zdmc+");
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.action-next{
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z\
|
||||
dmciIHdpZHRoPSI2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgNiAxNiI+PHBhdGggZD0iTTAgMTRsNi02LTYtNnY\
|
||||
xMnoiLz48L3N2Zz4=");
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.action-submit{
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z\
|
||||
dmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDEyIDE2Ij48cGF0aCBkPSJNMTIgNWwtOCA4LTQ\
|
||||
tNCAxLjUtMS41TDQgMTBsNi41LTYuNUwxMiA1eiIvPjwvc3ZnPg==");
|
||||
}
|
||||
.tail-datetime-calendar .calendar-actions span.action-cancel{
|
||||
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z\
|
||||
dmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDEyIDE2Ij48cGF0aCBmaWxsPSIjMzAzNDM4IiB\
|
||||
kPSJNNy40OCA4bDMuNzUgMy43NS0xLjQ4IDEuNDhMNiA5LjQ4bC0zLjc1IDMuNzUtMS40OC0xLjQ4TDQuNTIgOCAuNz\
|
||||
cgNC4yNWwxLjQ4LTEuNDhMNiA2LjUybDMuNzUtMy43NSAxLjQ4IDEuNDhMNy40OCA4eiIvPjwvc3ZnPg==");
|
||||
}
|
||||
/* @end CALENDAR ACTIONs */
|
||||
|
||||
/* @start CALENDAR DATEPICKER */
|
||||
.tail-datetime-calendar .calendar-datepicker{
|
||||
width: 100%;
|
||||
margin: 0 0 15px 0;
|
||||
padding: 0;
|
||||
display: block;
|
||||
position: relative;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker:after{
|
||||
top: -1px;
|
||||
left: 10px;
|
||||
right: 10px;
|
||||
content: "";
|
||||
position: absolute;
|
||||
border-width: 1px 0 0 0;
|
||||
border-style: solid;
|
||||
border-color: #e6e6e6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table{
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border-spacing: 1px;
|
||||
border-collapse: separate;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr th,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td{
|
||||
color: #303438;
|
||||
width: 50px;
|
||||
height: 35px;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
font-size: 13px;
|
||||
text-align: center;
|
||||
font-weight: normal;
|
||||
text-shadow: none;
|
||||
line-height: 30px;
|
||||
background-color: transparent;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td{
|
||||
cursor: pointer;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td span.inner{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: inline-block;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-disabled{
|
||||
cursor: not-allowed;
|
||||
color: #A0A4A8;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-disabled:after{
|
||||
color: #A0A4A8;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 49px;
|
||||
height: 35px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
content: "✕";
|
||||
opacity: 0.25;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
font-size: 30px;
|
||||
line-height: 35px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-previous,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-next{
|
||||
color: #808488;
|
||||
background-color: transparent;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-today:before,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td .tooltip-tick{
|
||||
top: 5px;
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
z-index: 20;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
border-width: 0;
|
||||
border-style: solid;
|
||||
border-color: transparent;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-today:before{
|
||||
left: 5px;
|
||||
background-color: #32B93C;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td .tooltip-tick{
|
||||
right: 5px;
|
||||
background-color: #303438;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-select.date-today:before,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.date-select .tooltip-tick{
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td .tooltip-tick:before,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td .tooltip-tick:after{
|
||||
display: none;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade{
|
||||
width: 14.28571429%;
|
||||
height: 35px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade:hover{
|
||||
border-color: #e6e6e6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day.date-disabled:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month.date-disabled:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year.date-disabled:hover,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade.date-disabled:hover{
|
||||
border-color: white;
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day.date-today,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month.date-today,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year.date-today,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade.date-today{
|
||||
color: #32B93C;
|
||||
border-color: #32B93C;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day.date-select,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month.date-select,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year.date-select,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade.date-select{
|
||||
border-color: #149BE6;
|
||||
background-color: #149BE6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day.date-select span,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month.date-select span,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year.date-select span,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade.date-select span{
|
||||
color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-day span.inner,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-month span.inner,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year span.inner,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade span.inner{
|
||||
border: 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-year,
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade{
|
||||
width: 25%;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-datepicker table tr td.calendar-decade span.inner{
|
||||
height: 54px;
|
||||
padding: 7px 15px;
|
||||
text-align: center;
|
||||
line-height: 20px;
|
||||
}
|
||||
/* @end CALENDAR DATEPICKER */
|
||||
|
||||
/* @start CALENDAR TIMEPICKER */
|
||||
.tail-datetime-calendar .calendar-timepicker{
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: block;
|
||||
position: relative;
|
||||
border-top: 0;
|
||||
text-align: center;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker:after{
|
||||
top: -1px;
|
||||
left: 10px;
|
||||
right: 10px;
|
||||
content: "";
|
||||
position: absolute;
|
||||
border-width: 1px 0 0 0;
|
||||
border-style: solid;
|
||||
border-color: #e6e6e6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field{
|
||||
width: auto;
|
||||
margin: 0;
|
||||
padding: 20px 10px 10px 10px;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field:first-of-type{
|
||||
text-align: right;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field:last-of-type{
|
||||
text-align: left;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input[type="text"]{
|
||||
color: #606468;
|
||||
width: 75px;
|
||||
height: 35px;
|
||||
margin: 0;
|
||||
z-index: 4;
|
||||
padding: 3px 20px 3px 5px;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
appearance: textfield;
|
||||
-moz-appearance: textfield;
|
||||
-webkit-appearance: textfield;
|
||||
background-color: white;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-color: #E0E0E0;
|
||||
border-radius: 3px;
|
||||
box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
transition: color 142ms linear, border 142ms linear, background 142ms linear;
|
||||
-webkit-transition: color 142ms linear, border 142ms linear, background 142ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input[type="text"]:hover{
|
||||
color: #404448;
|
||||
border-color: #D0D0D0;
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input[type="text"]:focus{
|
||||
color: #303438;
|
||||
border-color: #149BE6;
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input[type="text"]:disabled{
|
||||
cursor: not-allowed;
|
||||
color: #A0A4A8;
|
||||
border-color: #D0D0D0;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step{
|
||||
right: 11px;
|
||||
width: 20px;
|
||||
height: 17px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
z-index: 15;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
background-color: white;
|
||||
box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
transition: border 142ms linear, background 142ms linear;
|
||||
-webkit-transition: border 142ms linear, background 142ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step:before{
|
||||
top: 5px;
|
||||
left: 50%;
|
||||
width: 0;
|
||||
height: 0;
|
||||
margin: 0 0 0 -3px;
|
||||
padding: 0;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
transition: border 142ms linear;
|
||||
-webkit-transition: border 142ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-up{
|
||||
top: 21px;
|
||||
border-width: 0 0 1px 1px;
|
||||
border-style: solid;
|
||||
border-color: #E0E0E0;
|
||||
border-radius: 0 2px 0 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-up:hover{
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-up:before{
|
||||
border-width: 0 4px 5px 4px;
|
||||
border-style: solid;
|
||||
border-color: transparent transparent #606468 transparent;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-down{
|
||||
top: 37px;
|
||||
border-width: 1px 0 0 1px;
|
||||
border-style: solid;
|
||||
border-color: #E0E0E0;
|
||||
border-radius: 0 0 2px 0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-down:hover{
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field button.picker-step.step-down:before{
|
||||
border-width: 5px 4px 0 4px;
|
||||
border-style: solid;
|
||||
border-color: #606468 transparent transparent transparent;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button.step-up{
|
||||
border-color: #149BE6;
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button.step-up:before{
|
||||
border-bottom-color: #149BE6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button.step-up:hover{
|
||||
color: white;
|
||||
background-color: #149BE6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button.step-up:hover:before{
|
||||
border-bottom-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button + button.step-down{
|
||||
border-color: #149BE6;
|
||||
background-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button + button.step-down:before{
|
||||
border-top-color: #149BE6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button + button.step-down:hover{
|
||||
color: white;
|
||||
background-color: #149BE6;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:focus + button + button.step-down:hover:before{
|
||||
border-top-color: white;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button.step-up{
|
||||
cursor: not-allowed;
|
||||
border-color: #D0D0D0;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button.step-up:hover{
|
||||
border-color: #D0D0D0;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button.step-up:before{
|
||||
border-bottom-color: #A0A4A8;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button + button.step-down{
|
||||
cursor: not-allowed;
|
||||
border-color: #D0D0D0;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button + button.step-down:hover{
|
||||
border-color: #D0D0D0;
|
||||
background-color: #F0F0F0;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field input:disabled + button + button.step-down:before{
|
||||
border-top-color: #A0A4A8;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker .timepicker-field label{
|
||||
color: #606468;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch{
|
||||
cursor: pointer;
|
||||
margin: 0 0 -8px 0;
|
||||
padding: 15px 0 0 0;
|
||||
display: block;
|
||||
text-align: center;
|
||||
vertical-align: top;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch:before,
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch:after{
|
||||
width: auto;
|
||||
margin: 0;
|
||||
padding: 0 5px;
|
||||
font-size: 12px;
|
||||
line-height: 16px;
|
||||
vertical-align: top;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch:before{
|
||||
content: attr(data-am);
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch:after{
|
||||
content: attr(data-pm);
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"]{
|
||||
display: none;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"] + span{
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
vertical-align: top;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"] + span:before{
|
||||
width: 50px;
|
||||
height: 16px;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-color: #149BE6;
|
||||
border-radius: 14px;
|
||||
transition: border 284ms linear;
|
||||
-webkit-transition: border 284ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"] + span:after{
|
||||
top: 3px;
|
||||
left: 4px;
|
||||
right: 30px;
|
||||
width: auto;
|
||||
height: 10px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
content: "";
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
background-color: #149BE6;
|
||||
border-radius: 15px;
|
||||
vertical-align: top;
|
||||
transition: left 284ms linear, right 284ms linear 284ms, background 284ms linear;
|
||||
-webkit-transition: left 284ms linear, right 284ms linear 284ms, background 284ms linear;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"]:checked + span:before{
|
||||
border-color: #32B93C;
|
||||
}
|
||||
.tail-datetime-calendar .calendar-timepicker label.timepicker-switch input[type="checkbox"]:checked + span:after{
|
||||
left: 30px;
|
||||
right: 4px;
|
||||
background-color: #32B93C;
|
||||
transition: right 284ms linear, left 284ms linear 284ms, background 284ms linear;
|
||||
-webkit-transition: right 284ms linear, left 284ms linear 284ms, background 284ms linear;
|
||||
}
|
||||
/* @end CALENDAR TIMEPICKER */
|
||||
|
||||
/* @start RTL */
|
||||
.tail-datetime-calendar.rtl{
|
||||
direction: rtl;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-actions span.action-next,
|
||||
.tail-datetime-calendar.rtl .calendar-actions span.action-prev{
|
||||
transform: rotate(180deg);
|
||||
-moz-transform: rotate(180deg);
|
||||
-webkit-transform: rotate(180deg);
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.date-disabled:after{
|
||||
right: 3px;
|
||||
transform: rotate(45deg);
|
||||
-moz-transform: rotate(45deg);
|
||||
-webkit-transform: rotate(45deg);
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.date-today:before{
|
||||
right: 5px;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td .tooltip-tick{
|
||||
left: 5px;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-month.date-today:before,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-year.date-today:before,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-decade.date-today:before{
|
||||
right: 50%;
|
||||
margin-right: -2.5px;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-month:hover span.inner:before,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-year:hover span.inner:before,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-decade:hover span.inner:before{
|
||||
right: 6px;
|
||||
border-right-color: #cccccc;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-month span.inner:after,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-year span.inner:after,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-decade span.inner:after{
|
||||
left: 0;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-month:hover span.inner:after,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-year:hover span.inner:after,
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-decade:hover span.inner:after{
|
||||
left: 6px;
|
||||
border-left-color: #cccccc;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-datepicker table tr td.calendar-decade span.inner{
|
||||
text-align: right;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-timepicker .timepicker-field:first-child{
|
||||
text-align: left;
|
||||
padding-left: 0;
|
||||
padding-right: 25px;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-timepicker .timepicker-field:last-child{
|
||||
text-align: right;
|
||||
padding-left: 25px;
|
||||
padding-right: 0;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-timepicker .timepicker-field:first-child input[type="text"]{
|
||||
margin-left: -1px;
|
||||
margin-right: 0;
|
||||
border-radius: 0 3px 3px 0;
|
||||
}
|
||||
.tail-datetime-calendar.rtl .calendar-timepicker .timepicker-field:last-child input[type="text"]{
|
||||
margin-left: 0;
|
||||
margin-right: -1px;
|
||||
border-radius: 3px 0 0 3px;
|
||||
}
|
||||
/* @end RTL */
|
||||
|
||||
/*# sourceMappingURL=tail.datetime-harx-light.map */
|
||||
@@ -0,0 +1,31 @@
|
||||
var size = 0;
|
||||
var placement = 'point';
|
||||
|
||||
var style_curvasdenivel5m_2 = function(feature, resolution){
|
||||
var context = {
|
||||
feature: feature,
|
||||
variables: {}
|
||||
};
|
||||
var value = ""
|
||||
var labelText = "";
|
||||
size = 0;
|
||||
var labelFont = "10px, sans-serif";
|
||||
var labelFill = "#000000";
|
||||
var bufferColor = "";
|
||||
var bufferWidth = 0;
|
||||
var textAlign = "left";
|
||||
var offsetX = 8;
|
||||
var offsetY = 3;
|
||||
var placement = 'line';
|
||||
if ("" !== null) {
|
||||
labelText = String("");
|
||||
}
|
||||
var style = [ new ol.style.Style({
|
||||
stroke: new ol.style.Stroke({color: 'rgba(190,178,151,1.0)', lineDash: null, lineCap: 'square', lineJoin: 'bevel', width: 0}),
|
||||
text: createTextStyle(feature, resolution, labelText, labelFont,
|
||||
labelFill, placement, bufferColor,
|
||||
bufferWidth)
|
||||
})];
|
||||
|
||||
return style;
|
||||
};
|
||||
|
Depois Largura: | Altura: | Tamanho: 105 B |
|
Depois Largura: | Altura: | Tamanho: 255 B |
|
Depois Largura: | Altura: | Tamanho: 105 B |
@@ -0,0 +1,32 @@
|
||||
var size = 0;
|
||||
var placement = 'point';
|
||||
|
||||
var style_pontos_3 = function(feature, resolution){
|
||||
var context = {
|
||||
feature: feature,
|
||||
variables: {}
|
||||
};
|
||||
var value = ""
|
||||
var labelText = "";
|
||||
size = 0;
|
||||
var labelFont = "10px, sans-serif";
|
||||
var labelFill = "#000000";
|
||||
var bufferColor = "";
|
||||
var bufferWidth = 0;
|
||||
var textAlign = "left";
|
||||
var offsetX = 8;
|
||||
var offsetY = 3;
|
||||
var placement = 'point';
|
||||
if ("" !== null) {
|
||||
labelText = String("");
|
||||
}
|
||||
var style = [ new ol.style.Style({
|
||||
image: new ol.style.Circle({radius: 4.0 + size,
|
||||
stroke: new ol.style.Stroke({color: 'rgba(35,35,35,1.0)', lineDash: null, lineCap: 'butt', lineJoin: 'miter', width: 0}), fill: new ol.style.Fill({color: 'rgba(196,60,57,1.0)'})}),
|
||||
text: createTextStyle(feature, resolution, labelText, labelFont,
|
||||
labelFill, placement, bufferColor,
|
||||
bufferWidth)
|
||||
})];
|
||||
|
||||
return style;
|
||||
};
|
||||
@@ -0,0 +1,31 @@
|
||||
var size = 0;
|
||||
var placement = 'point';
|
||||
|
||||
var style_rioss_4 = function(feature, resolution){
|
||||
var context = {
|
||||
feature: feature,
|
||||
variables: {}
|
||||
};
|
||||
var value = ""
|
||||
var labelText = "";
|
||||
size = 0;
|
||||
var labelFont = "10px, sans-serif";
|
||||
var labelFill = "#000000";
|
||||
var bufferColor = "";
|
||||
var bufferWidth = 0;
|
||||
var textAlign = "left";
|
||||
var offsetX = 8;
|
||||
var offsetY = 3;
|
||||
var placement = 'line';
|
||||
if ("" !== null) {
|
||||
labelText = String("");
|
||||
}
|
||||
var style = [ new ol.style.Style({
|
||||
stroke: new ol.style.Stroke({color: 'rgba(62,16,228,1.0)', lineDash: null, lineCap: 'square', lineJoin: 'bevel', width: 0}),
|
||||
text: createTextStyle(feature, resolution, labelText, labelFont,
|
||||
labelFill, placement, bufferColor,
|
||||
bufferWidth)
|
||||
})];
|
||||
|
||||
return style;
|
||||
};
|
||||
@@ -135,8 +135,175 @@ function deletemapa($id_dado){
|
||||
<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
|
||||
|
||||
</head>
|
||||
|
||||
|
||||
<body >
|
||||
|
||||
<a href="index.php" onclick=""><img id="logo" src="imagens/logo.jpg"/></a>
|
||||
|
||||
<div id="menuu">
|
||||
<ul>
|
||||
<li><a id="inicial" href="index.php" onclick="">Página inicial</a></li>
|
||||
<li><a id="ajuda" href="#ajuda" onclick="curSec(this.id)">Ajuda</a></li>
|
||||
<li><a id="logut" href="index.php" onclick="">Logut</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="container">
|
||||
<div class="table-wrapper">
|
||||
<div class="table-title">
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<h2>Mapas Cadastrados</h2>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<button type="button" id="add_bt" data-toggle="modal" data-target="#addEmployeeModal">Adicionar</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<table class="table table-striped table-hover">
|
||||
|
||||
<tr>
|
||||
<td>Título</td>
|
||||
<td>Descrição</td>
|
||||
<td>Cidade</td>
|
||||
<td>Ações</td>
|
||||
|
||||
</tr>
|
||||
<?php
|
||||
while ($dado = pg_fetch_array($exec_sql_select)) {
|
||||
|
||||
?>
|
||||
<tr>
|
||||
|
||||
<td><?php echo $dado['titulo']; ?></td>
|
||||
<td><?php echo $dado['descricao']; ?></td>
|
||||
<td><?php echo $dado['cidade']; ?></td>
|
||||
<td>
|
||||
<a href="#editModal" at="<?php echo $dado["id_mapa"]; ?>" class="edit" data-toggle="modal" ><i class="material-icons" data-toggle="tooltip" title="Edit"></i></a>
|
||||
<a href="?id=<?php echo $id_usuario; ?>&dado=<?php echo $dado['id_mapa']; ?>" onclick="return confirm('Deseja mesmo excluir este mapa?');"class="delete" data-toggle="modal" ><i class="material-icons" data-toggle="tooltip" title="Delete" ></i></a>
|
||||
<a href="#" onCLick="window.open('<?php echo "http://localhost/Atlas_digital/".$dado['end_arquivo'];?>');"><i title="Visualizar" class="material-icons" data-toggle="tooltip"></i></a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="addEmployeeModal" class="modal fade">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<form enctype="multipart/form-data" method="post" action="">
|
||||
<div class="modal-body">
|
||||
<input type="text" class="form-control" name="nome" placeholder="Título" value="<?php if(isset($resposta)){echo $resposta['nome'];} ?>">
|
||||
<p></p>
|
||||
<textarea type="text" class="form-control" name="descricao" placeholder="Descrição" value="<?php if(isset($resposta)){echo $resposta['descricao'];} ?>"></textarea>
|
||||
<p></p>
|
||||
<input type="file" class="form-control" name="zip_file" required/>
|
||||
<p></p>
|
||||
<select class="form-control" name="status" onchange="habilitar(this.value)">
|
||||
<option value="1">Público</option>
|
||||
<option value="2">Privado</option>
|
||||
</select>
|
||||
<p></p>
|
||||
<input type="text" class="form-control" id="codigo_cadastro" name="codigo_cadastro" placeholder="Código" disabled="">
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<input type="button" class="btn btn-default" data-dismiss="modal" value="Cancelar">
|
||||
<input type="submit" name ="submit" class="btn btn-success" value="salvar">
|
||||
</div>
|
||||
<br><br><br>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="editModal" class="modal fade">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<form enctype="multipart/form-data" method="post" id="edit_id">
|
||||
<div class="modal-body">
|
||||
|
||||
<input type="text" class="form-control" name="edit_nome" id="edit_nome" placeholder="Nome" >
|
||||
<p></p>
|
||||
<textarea type="text" class="form-control" name="edit_descricao" id="edit_descricao" placeholder="Descrição" ></textarea>
|
||||
<p></p>
|
||||
<input type="file" class="form-control" name="edit_zip_file" required />
|
||||
<p></p>
|
||||
<select class="form-control" name="edit_status" id="edit_status">
|
||||
<option value="1">Público</option>
|
||||
<option value="2">Privado</option>
|
||||
</select>
|
||||
<p></p>
|
||||
<input type="text" class="form-control" id="edit_codigo" name="edit_codigo_cadastro" placeholder="Código" disabled="">
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<input type="button" class="btn btn-default" data-dismiss="modal" value="Cancelar">
|
||||
<input type="submit" name ="submit" class="btn btn-success" value="salvar">
|
||||
</div>
|
||||
<br><br><br>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
<div id="deleteEmployeeModal" class="modal fade">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<form>
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">Deletar Mapa</h4>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>Você tem certeza que deseja deletar esse Mapa?</p>
|
||||
<p class="text-warning"><small>Essa ação não pode ser revertida.</small></p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<input type="button" class="btn btn-default" data-dismiss="modal" value="Cancel">
|
||||
<input type="submit" id="deletando" onclick="deletar()" class="btn btn-danger" value="Delete">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
-->
|
||||
<script>
|
||||
|
||||
window.status_id = 0;
|
||||
$(document).ready(function() {
|
||||
$("a.edit").click( function() {
|
||||
window.status_id = $(this).attr('at');
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
data: {
|
||||
id: status_id
|
||||
},
|
||||
dataType: 'json',
|
||||
url: "selecionarMapa.php",
|
||||
success: function(msg) {
|
||||
$("#edit_id").val(msg["id"])
|
||||
$("#edit_end").val(msg["end"])
|
||||
$("#edit_nome").val(msg["nome"]);
|
||||
$("#edit_descricao").val(msg["descricao"]);
|
||||
$("#edit_status").val(msg["status"]);
|
||||
$("#edit_codigo").val(msg["codigo"]);
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
$(document).ready(function () {
|
||||
|
||||
@@ -186,155 +353,5 @@ function deletemapa($id_dado){
|
||||
|
||||
</script>
|
||||
|
||||
<body >
|
||||
|
||||
<a href="index.php" onclick=""><img id="logo" src="imagens/logo.jpg"/></a>
|
||||
|
||||
<div id="menuu">
|
||||
<ul>
|
||||
<li><a id="inicial" href="index.php" onclick="">Página inicial</a></li>
|
||||
<li><a id="ajuda" href="#ajuda" onclick="curSec(this.id)">Ajuda</a></li>
|
||||
<li><a id="logut" href="index.php" onclick="">Logut</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="container">
|
||||
<div class="table-wrapper">
|
||||
<div class="table-title">
|
||||
<div class="row">
|
||||
<div class="col-sm-6">
|
||||
<h2>Mapas Cadastrados</h2>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<button type="button" id="add_bt" data-toggle="modal" data-target="#addEmployeeModal">Adicionar</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<table class="table table-striped table-hover">
|
||||
|
||||
<tr>
|
||||
<td>Título</td>
|
||||
<td>Descrição</td>
|
||||
<td>Cidade</td>
|
||||
<td>Ações</td>
|
||||
|
||||
</tr>
|
||||
<?php
|
||||
while ($dado = pg_fetch_array($exec_sql_select)) {
|
||||
|
||||
?>
|
||||
<tr>
|
||||
|
||||
<td><?php echo $dado['titulo']; ?></td>
|
||||
<td><?php echo $dado['descricao']; ?></td>
|
||||
<td><?php echo $dado['cidade']; ?></td>
|
||||
<td>
|
||||
<a href="?id=<?php echo $id_usuario; ?>&editar=<?php echo $dado['id_mapa']; ?>" at="<?php echo $dado['id_mapa']; ?>" class="edit"
|
||||
data-toggle="modal" data-target="#editModal"><i class="material-icons" data-toggle="tooltip" title="Edit"></i></a>
|
||||
<a href="?id=<?php echo $id_usuario; ?>&dado=<?php echo $dado['id_mapa']; ?>" onclick="return confirm('Deseja mesmo excluir este mapa?');"class="delete"
|
||||
data-toggle="modal" ><i class="material-icons" data-toggle="tooltip"
|
||||
title="Delete" ></i></a>
|
||||
<a href="#" onCLick="window.open('<?php echo "http://localhost/Atlas_digital/".$dado['end_arquivo'];?>');"><i title="Visualizar" class="material-icons" data-toggle="tooltip"></i></a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="addEmployeeModal" class="modal fade">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<form enctype="multipart/form-data" method="post" action="">
|
||||
<div class="modal-body">
|
||||
<input type="text" class="form-control" name="nome" placeholder="Título" value="<?php if(isset($resposta)){echo $resposta['nome'];} ?>">
|
||||
<p></p>
|
||||
<textarea type="text" class="form-control" name="descricao" placeholder="Descrição" value="<?php if(isset($resposta)){echo $resposta['descricao'];} ?>"></textarea>
|
||||
<p></p>
|
||||
<input type="file" class="form-control" name="zip_file" required/>
|
||||
<p></p>
|
||||
<select class="form-control" name="status" onchange="habilitar(this.value)">
|
||||
<option value="1">Público</option>
|
||||
<option value="2">Privado</option>
|
||||
</select>
|
||||
<p></p>
|
||||
<input type="text" class="form-control" id="codigo_cadastro" name="codigo_cadastro" placeholder="Código" disabled="">
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<input type="button" class="btn btn-default" data-dismiss="modal" value="Cancelar">
|
||||
<input type="submit" name ="submit" class="btn btn-success" value="salvar">
|
||||
</div>
|
||||
<br><br><br>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="editModal" class="modal fade">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<form enctype="multipart/form-data" method="post" action="">
|
||||
<div class="modal-body">
|
||||
<?php
|
||||
while ($resultado = pg_fetch_array($mapas_edit)) {
|
||||
|
||||
?>
|
||||
<input type="text" class="form-control" name="edit_nome" placeholder="Nome" value="<?php echo $resultado['nome'];?>">
|
||||
<p></p>
|
||||
<textarea type="text" class="form-control" name="edit_descricao" placeholder="Descrição" value="<?php echo $resultado['descricao']; ?>"></textarea>
|
||||
<p></p>
|
||||
<input type="file" class="form-control" name="edit_zip_file" required value="<?php echo $resultado['end_arquivo']; ?>"/>
|
||||
<p></p>
|
||||
<select class="form-control" name="edit_status">
|
||||
<option value="1">Público</option>
|
||||
<option value="2">Privado</option>
|
||||
</select>
|
||||
<p></p>
|
||||
<input type="text" class="form-control" id="codigo_cadastro" name="edit_codigo_cadastro" placeholder="Código" disabled="">
|
||||
</div>
|
||||
<?php } ?>
|
||||
<div class="modal-footer">
|
||||
<input type="button" class="btn btn-default" data-dismiss="modal" value="Cancelar">
|
||||
<input type="submit" name ="submit" class="btn btn-success" value="salvar">
|
||||
</div>
|
||||
<br><br><br>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
<div id="deleteEmployeeModal" class="modal fade">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<form>
|
||||
<div class="modal-header">
|
||||
<h4 class="modal-title">Deletar Mapa</h4>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>Você tem certeza que deseja deletar esse Mapa?</p>
|
||||
<p class="text-warning"><small>Essa ação não pode ser revertida.</small></p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<input type="button" class="btn btn-default" data-dismiss="modal" value="Cancel">
|
||||
<input type="submit" id="deletando" onclick="deletar()" class="btn btn-danger" value="Delete">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
-->
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
include "includes/connect.php";
|
||||
|
||||
$id = $_GET['id'];
|
||||
|
||||
$tecido = pg_query($dbcon, "select * from mapas where id = '".$id."'");
|
||||
|
||||
while ($retorno = pg_fetch_array($tecido)) {
|
||||
$id = $retorno["id"];
|
||||
$end = $retorno["end_arquivo"];
|
||||
$nome = $retorno["nome"];
|
||||
$descricao = $retorno["descricao"];
|
||||
$status = $retorno["status"];
|
||||
$codigo= $retorno["codigo"];
|
||||
$usuario_id = $retorno["usuario_id"];
|
||||
}
|
||||
|
||||
$vetor = array("id" => $id, "end" => $end, "nome" => $nome, "descricao" => $descricao, "status" => $status, "codigo" => $codigo, "usuario_id" => $usuario_id);
|
||||
$retornar = json_encode($vetor);
|
||||
print_r($retornar);
|
||||
//echo $nome;
|
||||