Compare commits

...
2 Commits
Author SHA1 Message Date
franzz f037545591 Add Gravatar profile image 2021-01-22 15:52:43 +01:00
franzz de35c507ed Support update of all items 2021-01-21 21:54:52 +01:00
7 changed files with 195 additions and 110 deletions

No files matched your search

+151 -97
View File
@@ -1,35 +1,35 @@
// ==UserScript==
// @name GaiaGps Track Colors Mass Updater
// @description Add missing feature: Mass update of GaiaGps Track Colors
// @version 1.0
// @name GaiaGps Track Colors Mass Updater
// @description Add missing feature: Mass update of GaiaGps Track Colors
// @version 1.1
// @grant none
// @match https://www.gaiagps.com/datasummary/tracks/
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.5.0/jquery.min.js
// @namespace https://greasyfork.org/users/583371
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.5.0/jquery.min.js
// @namespace https://greasyfork.org/users/583371
// ==/UserScript==
console.log('computes');
function init() {
$Selector = $('<div class="MuiPaper-root MuiMenu-paper MuiPopover-paper MuiPaper-elevation8 MuiPaper-rounded" style="opacity: 1; transform: none; min-width: 40px; transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, transform 67ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; top: 440px; left: 114px; transform-origin: 0px 0px 0px;" tabindex="-1"><ul class="MuiList-root MuiMenu-list MuiList-padding" role="listbox" tabindex="-1" style="display: flex; flex-wrap: wrap; width: 217px; flex-grow: 1; justify-content: center;"><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button" tabindex="-1" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: 8px;" title="#FFEF00" data-value="#FFEF00"><div style="position: relative; height: 24px; width: 24px; background-color: rgb(255, 239, 0); border-radius: 4px;"></div></li><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button" tabindex="-1" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: 8px;" title="#A4A4A4" data-value="#A4A4A4"><div style="position: relative; height: 24px; width: 24px; background-color: rgb(164, 164, 164); border-radius: 4px;"></div></li><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button" tabindex="-1" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: 8px;" title="#000000" data-value="#000000"><div style="position: relative; height: 24px; width: 24px; background-color: rgb(0, 0, 0); border-radius: 4px;"></div></li><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button" tabindex="-1" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: 8px;" title="#BAF200" data-value="#BAF200"><div style="position: relative; height: 24px; width: 24px; background-color: rgb(186, 242, 0); border-radius: 4px;"></div></li><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button" tabindex="-1" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: 8px;" title="#FFC900" data-value="#FFC900"><div style="position: relative; height: 24px; width: 24px; background-color: rgb(255, 201, 0); border-radius: 4px;"></div></li><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button" tabindex="-1" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: 8px;" title="#7AD915" data-value="#7AD915"><div style="position: relative; height: 24px; width: 24px; background-color: rgb(122, 217, 21); border-radius: 4px;"></div></li><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button" tabindex="-1" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: 8px;" title="#784D3E" data-value="#784D3E"><div style="position: relative; height: 24px; width: 24px; background-color: rgb(120, 77, 62); border-radius: 4px;"></div></li><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button" tabindex="-1" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: 8px;" title="#F42410" data-value="#F42410"><div style="position: relative; height: 24px; width: 24px; background-color: rgb(244, 36, 16); border-radius: 4px;"></div></li><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button" tabindex="-1" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: 8px;" title="#E834EC" data-value="#E834EC"><div style="position: relative; height: 24px; width: 24px; background-color: rgb(232, 52, 236); border-radius: 4px;"></div></li><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button" tabindex="-1" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: 8px;" title="#A726BC" data-value="#A726BC"><div style="position: relative; height: 24px; width: 24px; background-color: rgb(167, 38, 188); border-radius: 4px;"></div></li><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button" tabindex="-1" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: 8px;" title="#5726C2" data-value="#5726C2"><div style="position: relative; height: 24px; width: 24px; background-color: rgb(87, 38, 194); border-radius: 4px;"></div></li><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root Mui-selected MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button Mui-selected" tabindex="0" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: Line truncated
$Selector = $('<div class="MuiPaper-root MuiMenu-paper MuiPopover-paper MuiPaper-elevation8 MuiPaper-rounded" style="opacity: 1; transform: none; min-width: 40px; transition: opacity 100ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, transform 67ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; top: 440px; left: 114px; transform-origin: 0px 0px 0px;" tabindex="-1"><ul class="MuiList-root MuiMenu-list MuiList-padding" role="listbox" tabindex="-1" style="display: flex; flex-wrap: wrap; width: 217px; flex-grow: 1; justify-content: center;"><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button" tabindex="-1" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: 8px;" title="#FFEF00" data-value="#FFEF00"><div style="position: relative; height: 24px; width: 24px; background-color: rgb(255, 239, 0); border-radius: 4px;"></div></li><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button" tabindex="-1" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: 8px;" title="#A4A4A4" data-value="#A4A4A4"><div style="position: relative; height: 24px; width: 24px; background-color: rgb(164, 164, 164); border-radius: 4px;"></div></li><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button" tabindex="-1" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: 8px;" title="#000000" data-value="#000000"><div style="position: relative; height: 24px; width: 24px; background-color: rgb(0, 0, 0); border-radius: 4px;"></div></li><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button" tabindex="-1" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: 8px;" title="#BAF200" data-value="#BAF200"><div style="position: relative; height: 24px; width: 24px; background-color: rgb(186, 242, 0); border-radius: 4px;"></div></li><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button" tabindex="-1" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: 8px;" title="#FFC900" data-value="#FFC900"><div style="position: relative; height: 24px; width: 24px; background-color: rgb(255, 201, 0); border-radius: 4px;"></div></li><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button" tabindex="-1" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: 8px;" title="#7AD915" data-value="#7AD915"><div style="position: relative; height: 24px; width: 24px; background-color: rgb(122, 217, 21); border-radius: 4px;"></div></li><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button" tabindex="-1" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: 8px;" title="#784D3E" data-value="#784D3E"><div style="position: relative; height: 24px; width: 24px; background-color: rgb(120, 77, 62); border-radius: 4px;"></div></li><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button" tabindex="-1" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: 8px;" title="#F42410" data-value="#F42410"><div style="position: relative; height: 24px; width: 24px; background-color: rgb(244, 36, 16); border-radius: 4px;"></div></li><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button" tabindex="-1" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: 8px;" title="#E834EC" data-value="#E834EC"><div style="position: relative; height: 24px; width: 24px; background-color: rgb(232, 52, 236); border-radius: 4px;"></div></li><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button" tabindex="-1" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: 8px;" title="#A726BC" data-value="#A726BC"><div style="position: relative; height: 24px; width: 24px; background-color: rgb(167, 38, 188); border-radius: 4px;"></div></li><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button" tabindex="-1" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: 8px;" title="#5726C2" data-value="#5726C2"><div style="position: relative; height: 24px; width: 24px; background-color: rgb(87, 38, 194); border-radius: 4px;"></div></li><li class="MuiButtonBase-root MuiListItem-root MuiMenuItem-root Mui-selected MuiMenuItem-gutters MuiListItem-gutters MuiListItem-button Mui-selected" tabindex="0" role="option" aria-disabled="false" style="padding-left: 8px; padding-right: 8pxLine truncated
$Selector.css('z-index', '10000').find('li').click(setColor);
//Background
$Background = $('<div>', {'aria-hidden':'true', 'style':'position: fixed; inset: 0px; background-color: transparent;'}).click(function(){toggleSelector(false);});
$Selector.css('z-index', '10000').find('li').click(setColor);
//Background
$Background = $('<div>', {'aria-hidden':'true', 'style':'position: fixed; inset: 0px; background-color: transparent;'}).click(function(){toggleSelector(false);});
//Add Selector & background to DOM
$Selector.add($Background).hide().appendTo('body');
//Add Selector & background to DOM
$Selector.add($Background).hide().appendTo('body');
//Extra style
$('body').append($('<style>').text('@keyframes rainbow { 0%, 100% {background-color: red;} 17% {background-color: orange;} 33% {background-color: yellow;} 50% {background-color: green;} 67% {background-color: blue;} 83% {background-color: purple;} }'));
//Extra style
$('body').append($('<style>').text('@keyframes rainbow { 0%, 100% {background-color: red;} 17% {background-color: orange;} 33% {background-color: yellow;} 50% {background-color: green;} 67% {background-color: blue;} 83% {background-color: purple;} }'));
//Button for mass update
$MassUpdate = $('<button>', {'type':'button', 'class':'ga-button ga-button-flat ga-toolbar-button', 'disabled':'disabled'})
.data('track-id', 'mass')
.click(function(){toggleSelector(true, $(this));})
.append($('<i>', {'class':'material-icons ibmid'}).text('color_lens'))
.append(' ')
.append($('<span>', {'class':'ibmid ga-toolbar-button-text'}).text('Change Color'));
$MassUpdate = $('<button>', {'type':'button', 'class':'ga-button ga-button-flat ga-toolbar-button', 'disabled':'disabled'})
.data('track-id', 'mass')
.click(function(){toggleSelector(true, $(this));})
.append($('<i>', {'class':'material-icons ibmid'}).text('color_lens'))
.append(' ')
.append($('<span>', {'class':'ibmid ga-toolbar-button-text'}).text('Change Color'));
$('#DatasummaryController .ga-toolbar .ga-toolbar-left .ga-button').eq(1).after($MassUpdate);
@@ -72,7 +72,7 @@ function wait(fIsFinished, fAction) {
console.log('waiting for page to load');
if(typeof oWaitTimer != "undefined") clearTimeout(oWaitTimer);
if(fIsFinished()) fAction();
else oWaitTimer = setTimeout(function(){wait(fIsFinished, fAction);}, 100);
else { oWaitTimer = setTimeout(function(){wait(fIsFinished, fAction);}, 100); }
}
function update(bWaited) {
@@ -93,57 +93,68 @@ function update(bWaited) {
var $Row = $(elem);
var sTrackId = $Row.find('.col1 a.ng-binding').attr('href').split('/')[3];
if(!asTracks[sTrackId].post) {
$.get({url:'https://www.gaiagps.com/api/objects/track/'+sTrackId+'/', id:sTrackId}).done(function(asTrack) {
asTracks[this.id].post = asTrack;
refreshRow($Row, this.id);
});
}
else refreshRow($Row, sTrackId);
setTrackInfo(sTrackId, function(oData){refreshRow(oData.row, oData.track.id);}, {row:$Row});
});
}
function setTrackInfo(sTrackId, fOnDone, oVars) {
oVars = oVars || {};
if(!asTracks[sTrackId].post) {
$.get({url:'https://www.gaiagps.com/api/objects/track/'+sTrackId+'/', id:sTrackId})
.done(function(asTrack) {
asTracks[this.id].post = asTrack;
oVars.track = asTracks[this.id];
fOnDone(oVars);
})
.fail(function(){
setTrackInfo(sTrackId, fOnDone, oVars);
});
}
else {
oVars.track = asTracks[sTrackId];
fOnDone(oVars);
}
}
function refreshRow($Row, sTrackId) {
//Color
var sColor = asTracks[sTrackId].post.features[0].properties.hexcolor;
if(!sColor) sColor = 'rgb(0,0,0)';
//Color
var sColor = asTracks[sTrackId].post.features[0].properties.hexcolor;
if(!sColor) sColor = 'rgb(0,0,0)';
//Add Color
if(!$Row.find('.ngCell.col0-1.colt0-1').length) {
//Move Col1
$Row.find('.colt1').width(iCol1Width - iColorColWidth);
$Row.find('.col1').width(iCol1Width - iColorColWidth).css('left', (iCol1Left + iColorColWidth)+'px');
//Add Color
if(!$Row.find('.ngCell.col0-1.colt0-1').length) {
//Move Col1
$Row.find('.colt1').width(iCol1Width - iColorColWidth);
$Row.find('.col1').width(iCol1Width - iColorColWidth).css('left', (iCol1Left + iColorColWidth)+'px');
$Row.find('.ngCell.col0.colt0').after(
$('<div>', {'class':'ngCell col0-1 colt0-1', 'style':'cursor: pointer; width:'+iColorColWidth+'px; left:'+iColorColLeft+'px;'})
.data('color', sColor)
.data('track-id', this.id)
.append($('<div>', {'class':'ngVerticalBar ngVerticalBarVisible', 'style':'height: '+iColorColHeight+'px;'}))
.append($('<div>')
.append($('<div>', {'style':'ngSelectionCell'})
.append($('<div>', {'class':'track-color', 'style':'position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); height: 24px; width: 24px; background-color: '+sColor+'; border-radius: 4px;'}))
)
)
//Display Selector
.click(function(){
toggleSelector(null, $(this));
})
);
}
//Update Color
else {
$Row.find('.ngCell.col0-1.colt0-1')
.data('color', sColor)
.data('track-id', sTrackId)
.find('.track-color')
.css('background', sColor);
}
$Row.find('.ngCell.col0.colt0').after(
$('<div>', {'class':'ngCell col0-1 colt0-1', 'style':'cursor: pointer; width:'+iColorColWidth+'px; left:'+iColorColLeft+'px;'})
.data('color', sColor)
.data('track-id', sTrackId)
.append($('<div>', {'class':'ngVerticalBar ngVerticalBarVisible', 'style':'height: '+iColorColHeight+'px;'}))
.append($('<div>')
.append($('<div>', {'style':'ngSelectionCell'})
.append($('<div>', {'class':'track-color', 'style':'position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); height: 24px; width: 24px; background-color: '+sColor+'; border-radius: 4px;'}))
)
)
//Display Selector
.click(function(){
toggleSelector(null, $(this));
})
);
}
//Update Color
else {
$Row.find('.ngCell.col0-1.colt0-1')
.data('color', sColor)
.data('track-id', sTrackId)
.find('.track-color')
.css('background', sColor);
}
}
function toggleSelector(bShow, $Track){
bShow = bShow || !$Selector.is(':visible');
bShow = (bShow == null)?(!$Selector.is(':visible')):bShow;
$Selector.add($Background).toggle(bShow);
if(bShow) {
$Selector
@@ -158,54 +169,97 @@ function toggleSelector(bShow, $Track){
return bShow;
}
function getTrackDOm(sTrackId) {
var $Link = $('a[href="/datasummary/track/'+sTrackId+'/"]');
return ($Link.length == 0)?null:$Link.parents('.ngRow').find('.ngCell.col0-1');
}
function setColor(){
var sColor = $(this).attr('data-value');
//List of tracks to change (selected checkboxes or just the one)
var a$Tracks = [];
if($Selector.data('track').data('track-id') == 'mass') a$Tracks = $('.ngGrid .ngViewport .ngRow .ngCell.col0 .ngSelectionCheckbox:checked').parents('.ngRow').find('.ngCell.col0-1').toArray();
else a$Tracks.push($Selector.data('track'));
//List of tracks to change (selected checkboxes or just the one)
a$Tracks = [];
if($Selector.data('track').data('track-id') == 'mass') {
if($('[ng-show="selectAllFromAllPages"]').is(':visible')) {
for(i in asTracks) {
var $Row = getTrackDOm(asTracks[i].id);
if(!$Row) {
$Row = $('<div>')
.data('track-id', asTracks[i].id)
.append($('<div>', {'class':'track-color'}));
}
$.each(a$Tracks, function(iKey, oTrack){
var $Track = $(oTrack);
$Track.find('.track-color').css('animation', 'rainbow 1s infinite');
var sTrackId = $Track.data('track-id');
a$Tracks.push($Row);
}
}
else { a$Tracks = $('.ngGrid .ngViewport .ngRow .ngCell.col0 .ngSelectionCheckbox:checked').parents('.ngRow').find('.ngCell.col0-1').toArray(); }
}
else { a$Tracks.push($Selector.data('track')); }
asTracks[sTrackId].post.features[0].properties.color = sColor;
asTracks[sTrackId].post.features[0].properties.hexcolor = sColor;
console.log('nb of tracks to modify: '+a$Tracks.length);
var asPost = {
type: asTracks[sTrackId].post.features[0].type,
properties: asTracks[sTrackId].post.features[0].properties,
geometry: asTracks[sTrackId].post.features[0].geometry,
};
setTrackColor(sColor, 0);
}
asPost.properties.localId = sTrackId;
function setTrackColor(sColor, iIndex) {
var $Track = $(a$Tracks[iIndex]);
$.ajax({
url: 'https://www.gaiagps.com/api/objects/track/'+sTrackId+'/',
type: 'PUT',
contentType: 'application/json',
data: JSON.stringify(asPost)
})
.done(function(asResult){
$.ajax({url:'https://www.gaiagps.com/api/objects/track/'+sTrackId+'/'}).done(function(asTrack){
asTracks[sTrackId].post = asTrack;
$Track.find('.track-color').css({'background': asTrack.features[0].properties.hexcolor, 'animation':'none'});
toggleSelector(false);
});
})
.fail(()=>{
$Track.find('.track-color').css({'animation':'none'});
});
});
//Ajax Loader
$Track.find('.track-color').css('animation', 'rainbow 1s infinite');
var sTrackId = $Track.data('track-id');
setTrackInfo(
sTrackId,
function(oData){
asTracks[oData.track.id].post.features[0].properties.color = oData.color;
asTracks[oData.track.id].post.features[0].properties.hexcolor = oData.color;
var asPost = {
type: asTracks[oData.track.id].post.features[0].type,
properties: asTracks[oData.track.id].post.features[0].properties,
geometry: asTracks[oData.track.id].post.features[0].geometry,
};
asPost.properties.localId = oData.track.id;
$.ajax({
url: 'https://www.gaiagps.com/api/objects/track/'+oData.track.id+'/',
type: 'PUT',
contentType: 'application/json',
data: JSON.stringify(asPost),
id: oData.track.id
})
.done(function(){
setTrackInfo(
this.id,
function(oData) {
iIndex++;
$('[ng-show="selectAllFromAllPages"]:visible').text(iIndex+'/'+a$Tracks.length);
var $Track = getTrackDOm(oData.track.id);
if($Track) {
$Track.find('.track-color').css({'background': oData.color, 'animation':'none'});
toggleSelector(false, $Track);
}
if(iIndex < a$Tracks.length) setTrackColor(oData.color, iIndex);
},
{color:oData.color, force_update:true}
);
})
.fail(()=>{
var $Track = getTrackDOm(oData.track.id);
if($Track) $Track.find('.track-color').css({'animation':'none'});
setTrackColor(oData.color, iIndex);
});
},
{color:sColor}
);
}
var iColorColWidth = 50, iColorColHeight = 59;
//Tracks
asTracks = {};
$.ajax({url:'https://www.gaiagps.com/api/objects/track/?routepoints=false&show_archived=true&show_filed=true'}).done((asData) => {
for(var i in asData) asTracks[asData[i].id] = asData[i];
$.ajax({url:'https://www.gaiagps.com/api/objects/track/?routepoints=false&show_archived=false&show_filed=true'}).done((asData) => {
for(var i in asData) { asTracks[asData[i].id] = asData[i]; }
wait(function(){return ($('.ngViewport .ngRow').length > 0);}, init);
});
+24 -5
View File
@@ -591,11 +591,11 @@ class Gaia {
//Waypoints
for(var w in oGPX.waypoints) {
oGPX.waypoints[w].filename = sFileName;
var sWaypointName = oGPX.waypoints[w].name;
/*var sWaypointName = oGPX.waypoints[w].name;
if(sWaypointName.indexOf('Milestone - ') != -1 && sWaypointName.substr(-2) != '00') { //1 milestone every 100 miles
this.feedback('info', 'Ignoring milestone waypoint "'+sWaypointName+'"');
}
else this.aoWaypoints.push(oGPX.waypoints[w]);
else */this.aoWaypoints.push(oGPX.waypoints[w]);
}
//Tracks
@@ -648,11 +648,30 @@ class Gaia {
let aoTrack = this.aoTracks[iIndex];
this.feedback('info', 'Uploading track "'+aoTrack.name+'"');
//Set color
//Set color: Convert Garmin Colors
let sColor = '#4ABD32';
switch(aoTrack.color) {
case 'DarkBlue': sColor = '#2D3FC7'; break;
case 'Magenta': sColor = '#B60DC3'; break;
case 'DarkBlue': sColor = '#2D3FC7'; break; //Personal Color
case 'Magenta': sColor = '#B60DC3'; break; //Personal Color
//Garmin Colors
case 'Black': sColor = '#000000'; break;
case 'DarkRed': sColor = '#F90553'; break;
case 'DarkGreen': sColor = '#009B89'; break;
case 'DarkYellow': sColor = '#DCEE0E'; break;
//case 'DarkBlue': sColor = '#5E23CA'; break;
case 'DarkMagenta': sColor = '#B60DC3'; break;
case 'DarkCyan': sColor = '#00ACF8'; break;
case 'LightGray': sColor = '#A4A4A4'; break;
case 'DarkGray': sColor = '#577B8E'; break;
case 'Red': sColor = '#F90553'; break;
case 'Green': sColor = '#36C03B'; break;
case 'Yellow': sColor = '#FFF011'; break;
case 'Blue': sColor = '#2D3FC7'; break;
//case 'Magenta': sColor = '#B60DC3'; break;
case 'Cyan': sColor = '#00C3DD'; break;
case 'White': sColor = '#FFFFFF'; break;
case 'Transparent': sColor = '#784D3E'; break;
}
//Add track points
+2
View File
@@ -361,7 +361,9 @@ class Spot extends Main
private function getPosts()
{
$asInfo = array(
'select' => array(Db::getFullColumnName(self::POST_TABLE, '*'), 'MD5(email) AS email_hash'),
'from' => self::POST_TABLE,
'join' => array(User::USER_TABLE => Db::getId(User::USER_TABLE)),
'constraint'=> array(Db::getId(Project::PROJ_TABLE) => $this->oProject->getProjectId()),
'constOpe' => array(Db::getId(Project::PROJ_TABLE) => "=")
);
+10 -6
View File
@@ -15,16 +15,16 @@
<h1><i class="fa fa-fw push fa-map"></i>[#]lang:maps[#]</h1>
<div id="layers"></div>
</div>
<div class="settings-section">
<h1><i class="fa fa-fw push fa-project"></i>[#]lang:projects[#]</h1>
<div id="settings-projects"></div>
</div>
<div class="settings-section newsletter">
<h1><i class="fa fa-fw push fa-newsletter"></i>[#]lang:newsletter[#]</h1>
<input type="email" name="email" id="email" placeholder="[#]lang:nl_email_placeholder[#]" /><button id="nl_btn"><span><i class="fa"></i></span></button>
<div id="settings-feedback" class="feedback"></div>
<div id="nl_desc"></div>
</div>
<div class="settings-section">
<h1><i class="fa fa-fw push fa-project"></i>[#]lang:projects[#]</h1>
<div id="settings-projects"></div>
</div>
</div>
</div>
<div class="settings-footer"><a href="https://git.lutran.fr/franzz/spot" title="[#]lang:credits_git[#]" target="_blank"><i class="fa fa-credits push"></i>[#]lang:credits_project[#]</a> [#]lang:credits_license[#]</div>
@@ -843,9 +843,13 @@ function getPost(asPost) {
break;
case 'post':
bLink = true;
var $SigImg = asPost.email_hash?$('<img>', {'src':'https://www.gravatar.com/avatar/'+asPost.email_hash+'?d=404&s=24', 'alt':'--'}):($('<span>').text('-- '));
$Body = $('<div>')
.append($('<p>', {'class':'message'}).text(asPost.content))
.append($('<p>', {'class':'signature'}).text('-- '+asPost.formatted_name));
.append($('<p>', {'class':'message'}).text(asPost.content))
.append($('<p>', {'class':'signature'})
.append($SigImg)
.append($('<span>').text(asPost.formatted_name))
);
break;
case 'poster':
$Body = $('<p>', {'class':'message'})
+6
View File
@@ -347,6 +347,12 @@ $legend-color: $post-color;
margin: 0.5em 0 0 0;
text-align: right;
font-style: italic;
img {
vertical-align: baseline;
margin: 0 0.2em calc((1em - 24px)/2) 0;
position: relative;
}
}
.header {
padding: 0.5em 1em;
+1 -1
View File
@@ -1,4 +1,4 @@
@font-face{font-family:"Ubuntu";font-style:normal;font-weight:400;src:local("Ubuntu Regular"),local("Ubuntu-Regular"),url(https://fonts.gstatic.com/s/ubuntu/v13/4iCs6KVjbNBYlgoKcg72j00.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Ubuntu";font-style:normal;font-weight:400;src:local("Ubuntu Regular"),local("Ubuntu-Regular"),url(https://fonts.gstatic.com/s/ubuntu/v13/4iCs6KVjbNBYlgoKew72j00.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Ubuntu";font-style:normal;font-weight:400;src:local("Ubuntu Regular"),local("Ubuntu-Regular"),url(https://fonts.gstatic.com/s/ubuntu/v13/4iCs6KVjbNBYlgoKcw72j00.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:"Ubuntu";font-style:normal;font-weight:400;src:local("Ubuntu Regular"),local("Ubuntu-Regular"),url(https://fonts.gstatic.com/s/ubuntu/v13/4iCs6KVjbNBYlgoKfA72j00.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:"Ubuntu";font-style:normal;font-weight:400;src:local("Ubuntu Regular"),local("Ubuntu-Regular"),url(https://fonts.gstatic.com/s/ubuntu/v13/4iCs6KVjbNBYlgoKcQ72j00.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Ubuntu";font-style:normal;font-weight:400;src:local("Ubuntu Regular"),local("Ubuntu-Regular"),url(fonts/4iCs6KVjbNBYlgoKfw72.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Ubuntu";font-style:normal;font-weight:700;src:local("Ubuntu Bold"),local("Ubuntu-Bold"),url(https://fonts.gstatic.com/s/ubuntu/v13/4iCv6KVjbNBYlgoCxCvjvWyNL4U.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Ubuntu";font-style:normal;font-weight:700;src:local("Ubuntu Bold"),local("Ubuntu-Bold"),url(https://fonts.gstatic.com/s/ubuntu/v13/4iCv6KVjbNBYlgoCxCvjtGyNL4U.woff2) format("woff2");unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Ubuntu";font-style:normal;font-weight:700;src:local("Ubuntu Bold"),local("Ubuntu-Bold"),url(https://fonts.gstatic.com/s/ubuntu/v13/4iCv6KVjbNBYlgoCxCvjvGyNL4U.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:"Ubuntu";font-style:normal;font-weight:700;src:local("Ubuntu Bold"),local("Ubuntu-Bold"),url(https://fonts.gstatic.com/s/ubuntu/v13/4iCv6KVjbNBYlgoCxCvjs2yNL4U.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:"Ubuntu";font-style:normal;font-weight:700;src:local("Ubuntu Bold"),local("Ubuntu-Bold"),url(https://fonts.gstatic.com/s/ubuntu/v13/4iCv6KVjbNBYlgoCxCvjvmyNL4U.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Ubuntu";font-style:normal;font-weight:700;src:local("Ubuntu Bold"),local("Ubuntu-Bold"),url(fonts/4iCv6KVjbNBYlgoCxCvjsGyN.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@-webkit-keyframes fadeIn{from{opacity:.3}}@-moz-keyframes fadeIn{from{opacity:.3}}@-ms-keyframes fadeIn{from{opacity:.3}}@-o-keyframes fadeIn{from{opacity:.3}}@keyframes fadeIn{from{opacity:.3}}.flicker,#projects #settings #settings-panel .settings-sections .settings-section.newsletter button#nl_btn.loading span,.lightbox .lb-cancel{-webkit-animation:fadeIn .5s infinite alternate;-moz-animation:fadeIn .5s infinite alternate;-ms-animation:fadeIn .5s infinite alternate;-o-animation:fadeIn .5s infinite alternate;animation:fadeIn .5s infinite alternate}body,textarea,input,button{font-size:14px;font-family:"Ubuntu",sans-serif;margin:0}textarea{resize:none}button{cursor:pointer;font-weight:bold}input,textarea,button{border:none;padding:.5em 1em;border-radius:3px}.feedback p{margin:0 0 1em 0}.feedback p.error{color:red}.feedback p.warning{color:orange}.feedback p.success{color:green}/*!
* Font Awesome Pro 5.11.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license (Commercial License)
*/@font-face{font-family:"Font Awesome 5 Pro";font-style:normal;font-weight:900;font-display:auto;src:url("fa/fonts/fa-solid-900.eot");src:url("fa/fonts/fa-solid-900.eot?#iefix") format("embedded-opentype"),url("fa/fonts/fa-solid-900.woff2") format("woff2"),url("fa/fonts/fa-solid-900.woff") format("woff"),url("fa/fonts/fa-solid-900.ttf") format("truetype"),url("fa/fonts/fa-solid-900.svg#fontawesome") format("svg")}.fa,.lightbox .lb-cancel,.lightbox .lb-dataContainer .lb-data .lb-closeContainer .lb-close,.lightbox .lb-outerContainer .lb-container .lb-nav a.lb-next,.lightbox .lb-outerContainer .lb-container .lb-nav a.lb-prev,.control-icon,.heightgraph.leaflet-control .heightgraph-close-icon,.leaflet-control.spot-control .heightgraph.leaflet-control .heightgraph-close-icon,.heightgraph.leaflet-control .leaflet-control.spot-control .heightgraph-close-icon,.heightgraph.leaflet-control .heightgraph-toggle .heightgraph-close-icon,.leaflet-control.spot-control .fa,.leaflet-control.spot-control .control-icon,.leaflet-control.spot-control .lightbox .lb-dataContainer .lb-data .lb-closeContainer .lb-close,.lightbox .lb-dataContainer .lb-data .lb-closeContainer .leaflet-control.spot-control .lb-close,.leaflet-control.spot-control .lightbox .lb-cancel,.lightbox .leaflet-control.spot-control .lb-cancel,.leaflet-control.spot-control .heightgraph-toggle-icon,.leaflet-control .heightgraph-toggle .fa,.leaflet-control .heightgraph-toggle .control-icon,.leaflet-control .heightgraph-toggle .lightbox .lb-dataContainer .lb-data .lb-closeContainer .lb-close,.lightbox .lb-dataContainer .lb-data .lb-closeContainer .leaflet-control .heightgraph-toggle .lb-close,.leaflet-control .heightgraph-toggle .lightbox .lb-cancel,.lightbox .leaflet-control .heightgraph-toggle .lb-cancel,.leaflet-control .heightgraph-toggle .heightgraph-toggle-icon,.leaflet-control.spot-control .heightgraph-toggle .lightbox .lb-cancel,.lightbox .leaflet-control.spot-control .heightgraph-toggle .lb-cancel,.leaflet-control.spot-control .lightbox .heightgraph-toggle .lb-cancel,.fas{font-family:"Font Awesome 5 Pro";font-weight:900}.fa,.lightbox .lb-cancel,.lightbox .lb-dataContainer .lb-data .lb-closeContainer .lb-close,.lightbox .lb-outerContainer .lb-container .lb-nav a.lb-next,.lightbox .lb-outerContainer .lb-container .lb-nav a.lb-prev,.control-icon,.heightgraph.leaflet-control .heightgraph-close-icon,.leaflet-control.spot-control .heightgraph.leaflet-control .heightgraph-close-icon,.heightgraph.leaflet-control .leaflet-control.spot-control .heightgraph-close-icon,.heightgraph.leaflet-control .heightgraph-toggle .heightgraph-close-icon,.leaflet-control.spot-control .fa,.leaflet-control.spot-control .control-icon,.leaflet-control.spot-control .lightbox .lb-dataContainer .lb-data .lb-closeContainer .lb-close,.lightbox .lb-dataContainer .lb-data .lb-closeContainer .leaflet-control.spot-control .lb-close,.leaflet-control.spot-control .lightbox .lb-cancel,.lightbox .leaflet-control.spot-control .lb-cancel,.leaflet-control.spot-control .heightgraph-toggle-icon,.leaflet-control .heightgraph-toggle .fa,.leaflet-control .heightgraph-toggle .control-icon,.leaflet-control .heightgraph-toggle .lightbox .lb-dataContainer .lb-data .lb-closeContainer .lb-close,.lightbox .lb-dataContainer .lb-data .lb-closeContainer .leaflet-control .heightgraph-toggle .lb-close,.leaflet-control .heightgraph-toggle .lightbox .lb-cancel,.lightbox .leaflet-control .heightgraph-toggle .lb-cancel,.leaflet-control .heightgraph-toggle .heightgraph-toggle-icon,.leaflet-control.spot-control .heightgraph-toggle .lightbox .lb-cancel,.lightbox .leaflet-control.spot-control .heightgraph-toggle .lb-cancel,.leaflet-control.spot-control .lightbox .heightgraph-toggle .lb-cancel,.fas,.far,.fal,.fad,.fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg,.lightbox .lb-dataContainer .lb-data .lb-closeContainer .lb-close{font-size:1.3333333333em;line-height:.75em;vertical-align:-0.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.lightbox .fa-pull-left.lb-cancel,.lightbox .lb-dataContainer .lb-data .lb-closeContainer .fa-pull-left.lb-close,.lightbox .lb-outerContainer .lb-container .lb-nav a.fa-pull-left.lb-next,.lightbox .lb-outerContainer .lb-container .lb-nav a.fa-pull-left.lb-prev,.fa-pull-left.control-icon,.heightgraph.leaflet-coLine truncated
*/@font-face{font-family:"Font Awesome 5 Pro";font-style:normal;font-weight:900;font-display:auto;src:url("fa/fonts/fa-solid-900.eot");src:url("fa/fonts/fa-solid-900.eot?#iefix") format("embedded-opentype"),url("fa/fonts/fa-solid-900.woff2") format("woff2"),url("fa/fonts/fa-solid-900.woff") format("woff"),url("fa/fonts/fa-solid-900.ttf") format("truetype"),url("fa/fonts/fa-solid-900.svg#fontawesome") format("svg")}.fa,.lightbox .lb-cancel,.lightbox .lb-dataContainer .lb-data .lb-closeContainer .lb-close,.lightbox .lb-outerContainer .lb-container .lb-nav a.lb-next,.lightbox .lb-outerContainer .lb-container .lb-nav a.lb-prev,.control-icon,.heightgraph.leaflet-control .heightgraph-close-icon,.leaflet-control.spot-control .heightgraph.leaflet-control .heightgraph-close-icon,.heightgraph.leaflet-control .leaflet-control.spot-control .heightgraph-close-icon,.heightgraph.leaflet-control .heightgraph-toggle .heightgraph-close-icon,.leaflet-control.spot-control .fa,.leaflet-control.spot-control .control-icon,.leaflet-control.spot-control .lightbox .lb-dataContainer .lb-data .lb-closeContainer .lb-close,.lightbox .lb-dataContainer .lb-data .lb-closeContainer .leaflet-control.spot-control .lb-close,.leaflet-control.spot-control .lightbox .lb-cancel,.lightbox .leaflet-control.spot-control .lb-cancel,.leaflet-control.spot-control .heightgraph-toggle-icon,.leaflet-control .heightgraph-toggle .fa,.leaflet-control .heightgraph-toggle .control-icon,.leaflet-control .heightgraph-toggle .lightbox .lb-dataContainer .lb-data .lb-closeContainer .lb-close,.lightbox .lb-dataContainer .lb-data .lb-closeContainer .leaflet-control .heightgraph-toggle .lb-close,.leaflet-control .heightgraph-toggle .lightbox .lb-cancel,.lightbox .leaflet-control .heightgraph-toggle .lb-cancel,.leaflet-control .heightgraph-toggle .heightgraph-toggle-icon,.leaflet-control.spot-control .heightgraph-toggle .lightbox .lb-cancel,.lightbox .leaflet-control.spot-control .heightgraph-toggle .lb-cancel,.leaflet-control.spot-control .lightbox .heightgraph-toggle .lb-cancel,.fas{font-family:"Font Awesome 5 Pro";font-weight:900}.fa,.lightbox .lb-cancel,.lightbox .lb-dataContainer .lb-data .lb-closeContainer .lb-close,.lightbox .lb-outerContainer .lb-container .lb-nav a.lb-next,.lightbox .lb-outerContainer .lb-container .lb-nav a.lb-prev,.control-icon,.heightgraph.leaflet-control .heightgraph-close-icon,.leaflet-control.spot-control .heightgraph.leaflet-control .heightgraph-close-icon,.heightgraph.leaflet-control .leaflet-control.spot-control .heightgraph-close-icon,.heightgraph.leaflet-control .heightgraph-toggle .heightgraph-close-icon,.leaflet-control.spot-control .fa,.leaflet-control.spot-control .control-icon,.leaflet-control.spot-control .lightbox .lb-dataContainer .lb-data .lb-closeContainer .lb-close,.lightbox .lb-dataContainer .lb-data .lb-closeContainer .leaflet-control.spot-control .lb-close,.leaflet-control.spot-control .lightbox .lb-cancel,.lightbox .leaflet-control.spot-control .lb-cancel,.leaflet-control.spot-control .heightgraph-toggle-icon,.leaflet-control .heightgraph-toggle .fa,.leaflet-control .heightgraph-toggle .control-icon,.leaflet-control .heightgraph-toggle .lightbox .lb-dataContainer .lb-data .lb-closeContainer .lb-close,.lightbox .lb-dataContainer .lb-data .lb-closeContainer .leaflet-control .heightgraph-toggle .lb-close,.leaflet-control .heightgraph-toggle .lightbox .lb-cancel,.lightbox .leaflet-control .heightgraph-toggle .lb-cancel,.leaflet-control .heightgraph-toggle .heightgraph-toggle-icon,.leaflet-control.spot-control .heightgraph-toggle .lightbox .lb-cancel,.lightbox .leaflet-control.spot-control .heightgraph-toggle .lb-cancel,.leaflet-control.spot-control .lightbox .heightgraph-toggle .lb-cancel,.fas,.far,.fal,.fad,.fab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg,.lightbox .lb-dataContainer .lb-data .lb-closeContainer .lb-close{font-size:1.3333333333em;line-height:.75em;vertical-align:-0.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.lightbox .fa-pull-left.lb-cancel,.lightbox .lb-dataContainer .lb-data .lb-closeContainer .fa-pull-left.lb-close,.lightbox .lb-outerContainer .lb-container .lb-nav a.fa-pull-left.lb-next,.lightbox .lb-outerContainer .lb-container .lb-nav a.fa-pull-left.lb-prev,.fa-pull-left.control-icon,.heightgraph.leaflet-coLine truncated
+1 -1
View File
@@ -1 +1 @@
{"version":3,"sourceRoot":"","sources":["_fonts.scss","_common.scss","fa/solid.scss","fa/_variables.scss","fa/_core.scss","fa/_larger.scss","fa/_fixed-width.scss","fa/_list.scss","fa/_bordered-pulled.scss","fa/_animated.scss","fa/_rotated-flipped.scss","fa/_mixins.scss","fa/_stacked.scss","_fa.scss","lightbox/_lightbox.scss","_lightbox.scss","_simplebar.scss","leaflet/_leaflet.scss","leaflet/_leaflet_heightgraph.scss","_leaflet.scss","_mask_project.scss","_mask_upload.scss","_mask_admin.scss","_mobile.scss"],"names":[],"mappings":"CAGA,WACE,qBACA,kBACA,gBACA,8IACA,iFAGF,WACE,qBACA,kBACA,gBACA,8IACA,yDAGF,WACE,qBACA,kBACA,gBACA,8IACA,0BAGF,WACE,qBACA,kBACA,gBACA,8IACA,0BAGF,WACE,qBACA,kBACA,gBACA,8IACA,2GAGF,WACE,qBACA,kBACA,gBACA,0GACA,yJAGF,WACE,qBACA,kBACA,gBACA,4IACA,iFAGF,WACE,qBACA,kBACA,gBACA,4IACA,yDAGF,WACE,qBACA,kBACA,gBACA,4IACA,0BAGF,WACE,qBACA,kBACA,gBACA,4IACA,0BAGF,WACE,qBACA,kBACA,gBACA,4IACA,2GAGF,WACE,qBACA,kBACA,gBACA,wGACA,yJC9FF,0BACE,iBAEF,uBACE,iBAEF,sBACE,iBAEF,qBACE,iBAEF,kBACE,iBAWF,6IAPC,kBAQoB,8BAPpB,eAOoB,8BANpB,cAMoB,8BALpB,aAKoB,8BAJpB,UAIoB,8BAkBrB,2BACC,eACA,gCACA,SAGD,SACC,YAGD,OACC,eACA,iBAGD,sBACC,YACA,iBACA,kBAMA,YACC,iBACA,kBACC,UAED,oBACC,aAED,oBACC,YC9EH;AAAA;AAAA;AAAA,GAMA,WACE,iCACA,kBACA,gBACA,aCLqB,KDMrB,qCACA,2RAOF,wmDAEE,iCACA,gBEnBF,4nDAME,kCACA,mCACA,qBACA,kBACA,oBACA,oBACA,cCXF,yEACE,yBACA,kBACA,yBAGF,OACE,gBAGF,OACE,iBAIA,OACE,cADF,OACE,cADF,OACE,cADF,OACE,cADF,OACE,cADF,OACE,cADF,OACE,cADF,OACE,cADF,OACE,cADF,QACE,eClBJ,OACE,kBACA,MHOqB,OIRvB,OACE,qBACA,kBACA,eAEA,4BAGF,OACE,UACA,kBACA,kBACA,MJLqB,IIMrB,oBCbF,WACE,wBACA,mBACA,yBAGF,yBACA,2BAOE,o0CACA,21CCfF,SACE,qCAGF,UACE,uCAGF,mBACE,GACE,uBAGF,KACE,0BCdJ,cCWE,sEACA,wBDXF,eCUE,sEACA,yBDVF,eCSE,sEACA,yBDRF,oBCYE,gFACA,uBDZF,kBCWE,gFACA,uBDXF,mDCUE,gFACA,wBDLA,oIAME,YElBJ,UACE,qBACA,WACA,gBACA,kBACA,sBACA,YAGF,0BAEE,OACA,kBACA,kBACA,WAGF,aACE,oBAGF,aACE,cAGF,YACE,MTpBqB,KUQtB,0kCACC,mBAED,8qCACC,kBAIF,koEACC,eACA,kBACA,iBACA,qBACA,WACA,gBAGA,qjEACC,WAKF,2BACA,uCACA,kCACA,yCACA,mCACA,iCACA,8BACA,mHACA,gCACA,iCACA,iCACA,gCAGA,w6DACA,kCACA,+BACA,6BACA,+BACA,+BACA,urFACA,+BAGA,w0DACA,6BACA,6BACA,6BACA,+BACA,kCACA,4BACA,8BACA,mCACA,mCACA,gHACA,8BACA,kCACA,kCACA,4BAGA,8BACA,olFAGA,0DACA,wmDACA,w+CACA,sGACA,gCAGA,2BC5FA,0BACE,gBAGF,iBACE,kBACA,MACA,OACA,aACA,sBACA,2DACA,WACA,aAGF,UACE,kBACA,OACA,WACA,cACA,kBACA,cACA,mBACA,aAGF,oBACE,cACA,YACA,kBACA,gBACA,kBAGA,sBAGF,gBACE,YAGF,mBACE,kBACA,QACA,YACA,aACA,cACA,kBAIA,sBAGF,yBACE,WACA,cACA,WAGF,WACE,kBACA,QACA,OACA,WACA,WACA,kBACA,cAGF,WACE,cACA,WACA,YACA,cACA,gDAGF,QACE,kBACA,MACA,OACA,YACA,WACA,WAGF,mBACE,OAGF,UACE,aACA,2GAGF,kBACE,YACA,eACA,cAGF,kBACE,UACA,OACA,WACA,sDACA,0DACA,UACA,+BACA,4BACA,0BACA,uBAGF,wBACE,4DACA,UAGF,kBACE,UACA,QACA,YACA,uDACA,0DACA,UACA,+BACA,4BACA,0BACA,uBAGF,wBACE,4DACA,UAGF,kBACE,cACA,gBACA,QACA,WACA,8BACA,+BAGF,wBACE,WACA,cACA,WAGF,SACE,cACA,WAGF,qBACE,UACA,WACA,gBACA,kBAGF,qBACE,eACA,iBACA,gBAGF,uBACE,WAGF,oBACE,cACA,WACA,mBACA,eACA,WAGF,mBACE,cACA,YACA,WACA,YACA,wDACA,iBACA,aACA,2DACA,WACA,+BACA,4BACA,0BACA,uBAGF,yBACE,eACA,4DACA,UCjMF,iBACC,SACA,QACA,aAGD,UACC,aACA,mBACA,uBACA,WACA,YAEA,mBACC,sBAEA,qCACC,WACA,YAGC,0DACC,eAEA,2EACC,kBAIF,iEACC,eAEA,2EACC,iBAML,qBACC,mBAEA,uCACC,YACA,YAGC,iEACC,cACA,eAGD,6EACC,eACA,WAMJ,6BACC,SACA,gBACA,sCAEA,2CACC,gBAEA,qDACC,6BACA,gBACA,YACA,iBACA,iBACA,WAEA,UACC,2FAKF,qDACC,uBAED,gEACC,SACA,yBAIA,0HACC,WACA,qBAEA,wIACC,kBACA,oBAIF,6DA3GH,gBACA,cA4GI,oEACC,SAIF,6DAlHH,gBACA,cAmHI,oEACC,UAOL,4BACC,SACA,UACA,cACA,gBAEA,qCACC,gBACA,aAEA,iDACC,WAEA,kEACC,eAGD,8EACC,aAGD,4DACC,wBAGF,wDACC,WACA,eACA,gBAEA,kEA1JH,gBACA,cA4JI,aACA,YACA,yBACA,kBAMJ,qBAtKA,gBACA,cAwKC,WC5KF,iBACE,kBACA,sBACA,eACA,2BACA,yBACA,uBAGF,mBACE,gBACA,cACA,eACA,kBACA,mBAGF,gBACE,kBACA,kBACA,gBACA,UACA,SACA,OACA,MACA,SACA,QACA,sBACA,uBACA,UAGF,kBACE,6BACA,8BACA,uBACA,kBACA,MACA,OACA,SACA,QACA,UACA,SACA,iCAGF,2BACE,kBACA,iCACA,kBACA,cACA,YACA,WACA,eACA,gBACA,qBACA,wBAGF,2FAEE,QACA,SAGF,mDAEE,YACA,cAGF,uBACE,gBACA,eACA,WACA,oBAGF,wCACE,8BACA,YACA,WACA,cACA,kBACA,WACA,eACA,gBACA,WACA,UACA,SACA,oBACA,kBACA,cACA,aAGF,gCACE,mBACA,cACA,UACA,kBACA,MACA,OACA,aACA,YACA,eACA,cACA,gBACA,oBACA,WAGF,iBACE,UACA,kBACA,QACA,SACA,oBACA,gBAGF,uDACE,oBACA,iBACA,yBAGF,qDACE,mBAGF,qBACE,kBACA,OACA,QACA,gBAGF,4BACE,kBACA,WACA,gBACA,kBACA,SACA,UACA,UACA,8BAGF,8CAEE,WACA,6BAGF,oCACE,MACA,WAGF,gEACE,QACA,WAGF,sCACE,OACA,YAGF,kEACE,YACA,SACA,UAGF,2DACE,WACA,OACA,QACA,WACA,aACA,eACA,WAIF,mEACE,WACA,OAGF,yBACE,cACA,eACA,UACA,kBACA,aACA,YACA,kBACA,kBAGF,0BACE,eACA,OACA,kBACA,kBACA,qBACA,wBC/MF,6LAUC,kBACA,OACA,MAED,mBACC,gBAED,0DAGC,yBACG,sBACK,iBACN,uBAGH,yBACC,uBAGD,8BACC,0CAGD,wCACC,aACA,cACA,6BAED,4CAEC,cAID,2PAMC,0BACA,2BAGD,sCACC,6BACA,yBAED,sCACC,4BAEA,kBACA,wBAED,yDACC,sBACA,kBAED,mBACC,wCAED,qBACC,gDAED,cACC,eACA,kBAED,qBACC,mBAED,kBACC,QACA,SACA,2BACK,sBACL,YAGD,0BACC,sBAGD,0BAEA,+BACA,kCACA,iCACA,iCACA,kCACA,gCAEA,qCACA,kCAEA,mBACC,UACA,WAED,MACC,2BACA,qBACA,kBAMD,iBACC,kBACA,YACA,8BACA,oBAED,6BAEC,kBACA,aACA,oBAED,aACC,MAED,eACC,QAED,gBACC,SAED,cACC,OAED,iLine truncated
{"version":3,"sourceRoot":"","sources":["_fonts.scss","_common.scss","fa/solid.scss","fa/_variables.scss","fa/_core.scss","fa/_larger.scss","fa/_fixed-width.scss","fa/_list.scss","fa/_bordered-pulled.scss","fa/_animated.scss","fa/_rotated-flipped.scss","fa/_mixins.scss","fa/_stacked.scss","_fa.scss","lightbox/_lightbox.scss","_lightbox.scss","_simplebar.scss","leaflet/_leaflet.scss","leaflet/_leaflet_heightgraph.scss","_leaflet.scss","_mask_project.scss","_mask_upload.scss","_mask_admin.scss","_mobile.scss"],"names":[],"mappings":"CAGA,WACE,qBACA,kBACA,gBACA,8IACA,iFAGF,WACE,qBACA,kBACA,gBACA,8IACA,yDAGF,WACE,qBACA,kBACA,gBACA,8IACA,0BAGF,WACE,qBACA,kBACA,gBACA,8IACA,0BAGF,WACE,qBACA,kBACA,gBACA,8IACA,2GAGF,WACE,qBACA,kBACA,gBACA,0GACA,yJAGF,WACE,qBACA,kBACA,gBACA,4IACA,iFAGF,WACE,qBACA,kBACA,gBACA,4IACA,yDAGF,WACE,qBACA,kBACA,gBACA,4IACA,0BAGF,WACE,qBACA,kBACA,gBACA,4IACA,0BAGF,WACE,qBACA,kBACA,gBACA,4IACA,2GAGF,WACE,qBACA,kBACA,gBACA,wGACA,yJC9FF,0BACE,iBAEF,uBACE,iBAEF,sBACE,iBAEF,qBACE,iBAEF,kBACE,iBAWF,6IAPC,kBAQoB,8BAPpB,eAOoB,8BANpB,cAMoB,8BALpB,aAKoB,8BAJpB,UAIoB,8BAkBrB,2BACC,eACA,gCACA,SAGD,SACC,YAGD,OACC,eACA,iBAGD,sBACC,YACA,iBACA,kBAMA,YACC,iBACA,kBACC,UAED,oBACC,aAED,oBACC,YC9EH;AAAA;AAAA;AAAA,GAMA,WACE,iCACA,kBACA,gBACA,aCLqB,KDMrB,qCACA,2RAOF,wmDAEE,iCACA,gBEnBF,4nDAME,kCACA,mCACA,qBACA,kBACA,oBACA,oBACA,cCXF,yEACE,yBACA,kBACA,yBAGF,OACE,gBAGF,OACE,iBAIA,OACE,cADF,OACE,cADF,OACE,cADF,OACE,cADF,OACE,cADF,OACE,cADF,OACE,cADF,OACE,cADF,OACE,cADF,QACE,eClBJ,OACE,kBACA,MHOqB,OIRvB,OACE,qBACA,kBACA,eAEA,4BAGF,OACE,UACA,kBACA,kBACA,MJLqB,IIMrB,oBCbF,WACE,wBACA,mBACA,yBAGF,yBACA,2BAOE,o0CACA,21CCfF,SACE,qCAGF,UACE,uCAGF,mBACE,GACE,uBAGF,KACE,0BCdJ,cCWE,sEACA,wBDXF,eCUE,sEACA,yBDVF,eCSE,sEACA,yBDRF,oBCYE,gFACA,uBDZF,kBCWE,gFACA,uBDXF,mDCUE,gFACA,wBDLA,oIAME,YElBJ,UACE,qBACA,WACA,gBACA,kBACA,sBACA,YAGF,0BAEE,OACA,kBACA,kBACA,WAGF,aACE,oBAGF,aACE,cAGF,YACE,MTpBqB,KUQtB,0kCACC,mBAED,8qCACC,kBAIF,koEACC,eACA,kBACA,iBACA,qBACA,WACA,gBAGA,qjEACC,WAKF,2BACA,uCACA,kCACA,yCACA,mCACA,iCACA,8BACA,mHACA,gCACA,iCACA,iCACA,gCAGA,w6DACA,kCACA,+BACA,6BACA,+BACA,+BACA,urFACA,+BAGA,w0DACA,6BACA,6BACA,6BACA,+BACA,kCACA,4BACA,8BACA,mCACA,mCACA,gHACA,8BACA,kCACA,kCACA,4BAGA,8BACA,olFAGA,0DACA,wmDACA,w+CACA,sGACA,gCAGA,2BC5FA,0BACE,gBAGF,iBACE,kBACA,MACA,OACA,aACA,sBACA,2DACA,WACA,aAGF,UACE,kBACA,OACA,WACA,cACA,kBACA,cACA,mBACA,aAGF,oBACE,cACA,YACA,kBACA,gBACA,kBAGA,sBAGF,gBACE,YAGF,mBACE,kBACA,QACA,YACA,aACA,cACA,kBAIA,sBAGF,yBACE,WACA,cACA,WAGF,WACE,kBACA,QACA,OACA,WACA,WACA,kBACA,cAGF,WACE,cACA,WACA,YACA,cACA,gDAGF,QACE,kBACA,MACA,OACA,YACA,WACA,WAGF,mBACE,OAGF,UACE,aACA,2GAGF,kBACE,YACA,eACA,cAGF,kBACE,UACA,OACA,WACA,sDACA,0DACA,UACA,+BACA,4BACA,0BACA,uBAGF,wBACE,4DACA,UAGF,kBACE,UACA,QACA,YACA,uDACA,0DACA,UACA,+BACA,4BACA,0BACA,uBAGF,wBACE,4DACA,UAGF,kBACE,cACA,gBACA,QACA,WACA,8BACA,+BAGF,wBACE,WACA,cACA,WAGF,SACE,cACA,WAGF,qBACE,UACA,WACA,gBACA,kBAGF,qBACE,eACA,iBACA,gBAGF,uBACE,WAGF,oBACE,cACA,WACA,mBACA,eACA,WAGF,mBACE,cACA,YACA,WACA,YACA,wDACA,iBACA,aACA,2DACA,WACA,+BACA,4BACA,0BACA,uBAGF,yBACE,eACA,4DACA,UCjMF,iBACC,SACA,QACA,aAGD,UACC,aACA,mBACA,uBACA,WACA,YAEA,mBACC,sBAEA,qCACC,WACA,YAGC,0DACC,eAEA,2EACC,kBAIF,iEACC,eAEA,2EACC,iBAML,qBACC,mBAEA,uCACC,YACA,YAGC,iEACC,cACA,eAGD,6EACC,eACA,WAMJ,6BACC,SACA,gBACA,sCAEA,2CACC,gBAEA,qDACC,6BACA,gBACA,YACA,iBACA,iBACA,WAEA,UACC,2FAKF,qDACC,uBAED,gEACC,SACA,yBAIA,0HACC,WACA,qBAEA,wIACC,kBACA,oBAIF,6DA3GH,gBACA,cA4GI,oEACC,SAIF,6DAlHH,gBACA,cAmHI,oEACC,UAOL,4BACC,SACA,UACA,cACA,gBAEA,qCACC,gBACA,aAEA,iDACC,WAEA,kEACC,eAGD,8EACC,aAGD,4DACC,wBAGF,wDACC,WACA,eACA,gBAEA,kEA1JH,gBACA,cA4JI,aACA,YACA,yBACA,kBAMJ,qBAtKA,gBACA,cAwKC,WC5KF,iBACE,kBACA,sBACA,eACA,2BACA,yBACA,uBAGF,mBACE,gBACA,cACA,eACA,kBACA,mBAGF,gBACE,kBACA,kBACA,gBACA,UACA,SACA,OACA,MACA,SACA,QACA,sBACA,uBACA,UAGF,kBACE,6BACA,8BACA,uBACA,kBACA,MACA,OACA,SACA,QACA,UACA,SACA,iCAGF,2BACE,kBACA,iCACA,kBACA,cACA,YACA,WACA,eACA,gBACA,qBACA,wBAGF,2FAEE,QACA,SAGF,mDAEE,YACA,cAGF,uBACE,gBACA,eACA,WACA,oBAGF,wCACE,8BACA,YACA,WACA,cACA,kBACA,WACA,eACA,gBACA,WACA,UACA,SACA,oBACA,kBACA,cACA,aAGF,gCACE,mBACA,cACA,UACA,kBACA,MACA,OACA,aACA,YACA,eACA,cACA,gBACA,oBACA,WAGF,iBACE,UACA,kBACA,QACA,SACA,oBACA,gBAGF,uDACE,oBACA,iBACA,yBAGF,qDACE,mBAGF,qBACE,kBACA,OACA,QACA,gBAGF,4BACE,kBACA,WACA,gBACA,kBACA,SACA,UACA,UACA,8BAGF,8CAEE,WACA,6BAGF,oCACE,MACA,WAGF,gEACE,QACA,WAGF,sCACE,OACA,YAGF,kEACE,YACA,SACA,UAGF,2DACE,WACA,OACA,QACA,WACA,aACA,eACA,WAIF,mEACE,WACA,OAGF,yBACE,cACA,eACA,UACA,kBACA,aACA,YACA,kBACA,kBAGF,0BACE,eACA,OACA,kBACA,kBACA,qBACA,wBC/MF,6LAUC,kBACA,OACA,MAED,mBACC,gBAED,0DAGC,yBACG,sBACK,iBACN,uBAGH,yBACC,uBAGD,8BACC,0CAGD,wCACC,aACA,cACA,6BAED,4CAEC,cAID,2PAMC,0BACA,2BAGD,sCACC,6BACA,yBAED,sCACC,4BAEA,kBACA,wBAED,yDACC,sBACA,kBAED,mBACC,wCAED,qBACC,gDAED,cACC,eACA,kBAED,qBACC,mBAED,kBACC,QACA,SACA,2BACK,sBACL,YAGD,0BACC,sBAGD,0BAEA,+BACA,kCACA,iCACA,iCACA,kCACA,gCAEA,qCACA,kCAEA,mBACC,UACA,WAED,MACC,2BACA,qBACA,kBAMD,iBACC,kBACA,YACA,8BACA,oBAED,6BAEC,kBACA,aACA,oBAED,aACC,MAED,eACC,QAED,gBACC,SAED,cACC,OAED,iLine truncated