mapshaper 0.7.16 → 0.7.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/mapshaper.js +95 -13
- package/package.json +1 -1
- package/www/index.html +6 -1
- package/www/mapshaper-gui.js +6202 -10733
- package/www/mapshaper.js +95 -13
- package/www/page.css +406 -16
package/www/mapshaper.js
CHANGED
|
@@ -18595,6 +18595,7 @@
|
|
|
18595
18595
|
icon: null,
|
|
18596
18596
|
'icon-color': 'color',
|
|
18597
18597
|
'icon-size': 'number',
|
|
18598
|
+
'label-pos': 'labelposition',
|
|
18598
18599
|
'label-text': null, // leaving this null
|
|
18599
18600
|
'letter-spacing': 'measure',
|
|
18600
18601
|
'line-height': 'measure',
|
|
@@ -18646,6 +18647,20 @@
|
|
|
18646
18647
|
'fill,font-family,font-size,text-anchor,font-weight,font-style,font-stretch,letter-spacing,dominant-baseline'.split(',')))
|
|
18647
18648
|
};
|
|
18648
18649
|
|
|
18650
|
+
var labelPositionFields = ['label-pos', 'dx', 'dy', 'text-anchor'];
|
|
18651
|
+
|
|
18652
|
+
var labelPositionStyles = {
|
|
18653
|
+
n: {dx: 0, dy: '-0.45em', 'text-anchor': 'middle'},
|
|
18654
|
+
s: {dx: 0, dy: '1.05em', 'text-anchor': 'middle'},
|
|
18655
|
+
e: {dx: '0.4em', dy: '0.25em', 'text-anchor': 'start'},
|
|
18656
|
+
w: {dx: '-0.4em', dy: '0.25em', 'text-anchor': 'end'},
|
|
18657
|
+
ne: {dx: '0.35em', dy: '-0.15em', 'text-anchor': 'start'},
|
|
18658
|
+
se: {dx: '0.35em', dy: '0.7em', 'text-anchor': 'start'},
|
|
18659
|
+
nw: {dx: '-0.35em', dy: '-0.15em', 'text-anchor': 'end'},
|
|
18660
|
+
sw: {dx: '-0.35em', dy: '0.7em', 'text-anchor': 'end'},
|
|
18661
|
+
c: {dx: 0, dy: '0.25em', 'text-anchor': 'middle'}
|
|
18662
|
+
};
|
|
18663
|
+
|
|
18649
18664
|
// symType: point, polygon, polyline, label
|
|
18650
18665
|
function applyStyleAttributes(svgObj, symType, rec, filter) {
|
|
18651
18666
|
var fields = findStylePropertiesBySymbolGeom(Object.keys(rec || {}), symType);
|
|
@@ -18777,6 +18792,8 @@
|
|
|
18777
18792
|
val = parseBoolean(strVal);
|
|
18778
18793
|
} else if (type == 'inlinecss') {
|
|
18779
18794
|
val = strVal; // TODO: validate
|
|
18795
|
+
} else if (type == 'labelposition') {
|
|
18796
|
+
val = parseLabelPosition(strVal);
|
|
18780
18797
|
}
|
|
18781
18798
|
// else {
|
|
18782
18799
|
// // unknown type -- assume literal value
|
|
@@ -18808,6 +18825,26 @@
|
|
|
18808
18825
|
return null;
|
|
18809
18826
|
}
|
|
18810
18827
|
|
|
18828
|
+
function parseLabelPosition(str) {
|
|
18829
|
+
var pos = String(str).trim();
|
|
18830
|
+
return /^(n|s|e|w|ne|se|nw|sw|c)$/i.test(pos) ? pos : null;
|
|
18831
|
+
}
|
|
18832
|
+
|
|
18833
|
+
function getLabelPositionStyle(pos) {
|
|
18834
|
+
pos = parseLabelPosition(pos);
|
|
18835
|
+
if (!pos) return null;
|
|
18836
|
+
return Object.assign({'label-pos': pos}, labelPositionStyles[pos.toLowerCase()]);
|
|
18837
|
+
}
|
|
18838
|
+
|
|
18839
|
+
function setLabelPositionStyle(rec, pos) {
|
|
18840
|
+
var style = getLabelPositionStyle(pos);
|
|
18841
|
+
if (!style) return false;
|
|
18842
|
+
labelPositionFields.forEach(function(field) {
|
|
18843
|
+
rec[field] = style[field];
|
|
18844
|
+
});
|
|
18845
|
+
return true;
|
|
18846
|
+
}
|
|
18847
|
+
|
|
18811
18848
|
function isSvgMeasure(o) {
|
|
18812
18849
|
return utils.isFiniteNumber(o) || utils.isString(o) && /^-?[.0-9]+[a-z]*$/.test(o);
|
|
18813
18850
|
}
|
|
@@ -18826,6 +18863,7 @@
|
|
|
18826
18863
|
__proto__: null,
|
|
18827
18864
|
applyStyleAttributes: applyStyleAttributes,
|
|
18828
18865
|
findStylePropertiesBySymbolGeom: findStylePropertiesBySymbolGeom,
|
|
18866
|
+
getLabelPositionStyle: getLabelPositionStyle,
|
|
18829
18867
|
getSymbolDataAccessor: getSymbolDataAccessor,
|
|
18830
18868
|
getSymbolPropertyAccessor: getSymbolPropertyAccessor,
|
|
18831
18869
|
isSupportedSvgStyleProperty: isSupportedSvgStyleProperty,
|
|
@@ -18833,9 +18871,12 @@
|
|
|
18833
18871
|
isSvgColor: isSvgColor,
|
|
18834
18872
|
isSvgMeasure: isSvgMeasure,
|
|
18835
18873
|
isSvgNumber: isSvgNumber,
|
|
18874
|
+
labelPositionFields: labelPositionFields,
|
|
18836
18875
|
mightBeExpression: mightBeExpression,
|
|
18837
18876
|
parseBoolean: parseBoolean,
|
|
18838
|
-
|
|
18877
|
+
parseLabelPosition: parseLabelPosition,
|
|
18878
|
+
parseSvgMeasure: parseSvgMeasure,
|
|
18879
|
+
setLabelPositionStyle: setLabelPositionStyle
|
|
18839
18880
|
});
|
|
18840
18881
|
|
|
18841
18882
|
function toLabelString(val) {
|
|
@@ -18957,7 +18998,7 @@
|
|
|
18957
18998
|
|
|
18958
18999
|
function renderIcon(d) {
|
|
18959
19000
|
var type = d.icon || 'circle';
|
|
18960
|
-
var r = getIconRadius(d);
|
|
19001
|
+
var r = getIconRadius(d, type);
|
|
18961
19002
|
if (r > 0 === false) return empty();
|
|
18962
19003
|
if (type == 'circle') return circle(getIconStyleData(d, r));
|
|
18963
19004
|
if (type == 'square') return square(getIconStyleData(d, r), 0, 0);
|
|
@@ -18967,10 +19008,18 @@
|
|
|
18967
19008
|
return empty();
|
|
18968
19009
|
}
|
|
18969
19010
|
|
|
18970
|
-
function getIconRadius(d) {
|
|
18971
|
-
|
|
18972
|
-
if (d
|
|
18973
|
-
|
|
19011
|
+
function getIconRadius(d, type) {
|
|
19012
|
+
var size;
|
|
19013
|
+
if (d['icon-size'] > 0 === false) {
|
|
19014
|
+
return d.r > 0 ? d.r : 5;
|
|
19015
|
+
}
|
|
19016
|
+
size = d['icon-size'];
|
|
19017
|
+
if (type == 'circle' || type == 'ring') {
|
|
19018
|
+
size -= 1;
|
|
19019
|
+
} else if (type == 'star') {
|
|
19020
|
+
size += 1;
|
|
19021
|
+
}
|
|
19022
|
+
return size / 2;
|
|
18974
19023
|
}
|
|
18975
19024
|
|
|
18976
19025
|
function getIconStyleData(d, r) {
|
|
@@ -31669,6 +31718,9 @@ ${svg}
|
|
|
31669
31718
|
.option('label-text', {
|
|
31670
31719
|
describe: 'label text (set this to export points as labels)'
|
|
31671
31720
|
})
|
|
31721
|
+
.option('label-pos', {
|
|
31722
|
+
describe: 'label position; one of: n, s, e, w, ne, se, nw, sw, c'
|
|
31723
|
+
})
|
|
31672
31724
|
.option('text-anchor', {
|
|
31673
31725
|
describe: 'label alignment; one of: start, end, middle (default)'
|
|
31674
31726
|
})
|
|
@@ -56649,9 +56701,7 @@ ${svg}
|
|
|
56649
56701
|
lyr.data.getFields().filter(isSupportedSvgStyleProperty).forEach(lyr.data.deleteField, lyr.data);
|
|
56650
56702
|
}
|
|
56651
56703
|
table = getLayerDataTable(lyr);
|
|
56652
|
-
fields =
|
|
56653
|
-
return optName.replace('_', '-');
|
|
56654
|
-
}).filter(isSupportedSvgStyleProperty);
|
|
56704
|
+
fields = getStyleFields(opts);
|
|
56655
56705
|
hasNewFields = fields.some(function(field) {
|
|
56656
56706
|
return !table.fieldExists(field);
|
|
56657
56707
|
});
|
|
@@ -56672,11 +56722,14 @@ ${svg}
|
|
|
56672
56722
|
table.getRecords().forEach(function(rec, i) {
|
|
56673
56723
|
if (filterFn && !filterFn(i)) {
|
|
56674
56724
|
// make sure field exists if record is excluded by filter
|
|
56675
|
-
|
|
56676
|
-
rec[svgName] = undefined;
|
|
56677
|
-
}
|
|
56725
|
+
setUndefinedFields(rec, svgName == 'label-pos' ? labelPositionFields : [svgName]);
|
|
56678
56726
|
} else {
|
|
56679
56727
|
rec[svgName] = accessor(i);
|
|
56728
|
+
if (svgName == 'label-pos') {
|
|
56729
|
+
if (!setLabelPositionStyle(rec, rec['label-pos'])) {
|
|
56730
|
+
stop$1('Unexpected value for label-pos:', rec['label-pos']);
|
|
56731
|
+
}
|
|
56732
|
+
}
|
|
56680
56733
|
}
|
|
56681
56734
|
});
|
|
56682
56735
|
});
|
|
@@ -56689,6 +56742,35 @@ ${svg}
|
|
|
56689
56742
|
}
|
|
56690
56743
|
};
|
|
56691
56744
|
|
|
56745
|
+
function getStyleFields(opts) {
|
|
56746
|
+
var fields = [];
|
|
56747
|
+
Object.keys(opts).forEach(function(optName) {
|
|
56748
|
+
var svgName = optName.replace('_', '-');
|
|
56749
|
+
if (!isSupportedSvgStyleProperty(svgName)) return;
|
|
56750
|
+
addField(fields, svgName);
|
|
56751
|
+
if (svgName == 'label-pos') {
|
|
56752
|
+
labelPositionFields.forEach(function(field) {
|
|
56753
|
+
addField(fields, field);
|
|
56754
|
+
});
|
|
56755
|
+
}
|
|
56756
|
+
});
|
|
56757
|
+
return fields;
|
|
56758
|
+
}
|
|
56759
|
+
|
|
56760
|
+
function addField(fields, field) {
|
|
56761
|
+
if (fields.indexOf(field) == -1) {
|
|
56762
|
+
fields.push(field);
|
|
56763
|
+
}
|
|
56764
|
+
}
|
|
56765
|
+
|
|
56766
|
+
function setUndefinedFields(rec, fields) {
|
|
56767
|
+
fields.forEach(function(field) {
|
|
56768
|
+
if (field in rec === false) {
|
|
56769
|
+
rec[field] = undefined;
|
|
56770
|
+
}
|
|
56771
|
+
});
|
|
56772
|
+
}
|
|
56773
|
+
|
|
56692
56774
|
var roundCoord$1 = getRoundingFunction(0.01);
|
|
56693
56775
|
|
|
56694
56776
|
function getSymbolFillColor(d) {
|
|
@@ -58166,7 +58248,7 @@ ${svg}
|
|
|
58166
58248
|
});
|
|
58167
58249
|
}
|
|
58168
58250
|
|
|
58169
|
-
var version = "0.7.
|
|
58251
|
+
var version = "0.7.17";
|
|
58170
58252
|
|
|
58171
58253
|
// Parse command line args into commands and run them
|
|
58172
58254
|
// Function takes an optional Node-style callback. A Promise is returned if no callback is given.
|
package/www/page.css
CHANGED
|
@@ -300,13 +300,13 @@ body.map-view {
|
|
|
300
300
|
|
|
301
301
|
.history-menu-dropdown .info-box {
|
|
302
302
|
pointer-events: initial;
|
|
303
|
-
min-width:
|
|
303
|
+
min-width: 185px;
|
|
304
304
|
}
|
|
305
305
|
|
|
306
306
|
.history-menu-item {
|
|
307
307
|
color: var(--normal-text);
|
|
308
308
|
cursor: pointer;
|
|
309
|
-
padding: 2px
|
|
309
|
+
padding-top: 2px;
|
|
310
310
|
white-space: nowrap;
|
|
311
311
|
}
|
|
312
312
|
|
|
@@ -323,12 +323,6 @@ body.map-view {
|
|
|
323
323
|
pointer-events: none;
|
|
324
324
|
}
|
|
325
325
|
|
|
326
|
-
.history-menu-separator {
|
|
327
|
-
height: 1px;
|
|
328
|
-
background-color: #ddd;
|
|
329
|
-
margin: 6px 0 5px 0;
|
|
330
|
-
}
|
|
331
|
-
|
|
332
326
|
.history-menu-note {
|
|
333
327
|
color: #777;
|
|
334
328
|
font-size: 12px;
|
|
@@ -338,6 +332,14 @@ body.map-view {
|
|
|
338
332
|
white-space: normal;
|
|
339
333
|
}
|
|
340
334
|
|
|
335
|
+
|
|
336
|
+
.history-snapshot-list .save-menu-item {
|
|
337
|
+
right: auto;
|
|
338
|
+
text-align: left;
|
|
339
|
+
padding-left: 0;
|
|
340
|
+
padding-right: 0;
|
|
341
|
+
}
|
|
342
|
+
|
|
341
343
|
.header-menu-item.header-menu-sponsor svg {
|
|
342
344
|
width: 12px;
|
|
343
345
|
height: 12px;
|
|
@@ -670,7 +672,7 @@ textarea:focus {
|
|
|
670
672
|
word-wrap: break-word;
|
|
671
673
|
text-align: left;
|
|
672
674
|
margin-top: 12px;
|
|
673
|
-
padding:
|
|
675
|
+
padding: 14px 16px 13px 18px;
|
|
674
676
|
vertical-align: top;
|
|
675
677
|
display: inline-block;
|
|
676
678
|
/* border: 1px solid #aaa; */
|
|
@@ -704,11 +706,11 @@ textarea:focus {
|
|
|
704
706
|
}
|
|
705
707
|
|
|
706
708
|
.info-box h3 {
|
|
707
|
-
font-size:
|
|
709
|
+
font-size: 17px;
|
|
708
710
|
line-height: 1.1;
|
|
709
711
|
padding: 0;
|
|
710
712
|
margin: 0 0 0.4em 0;
|
|
711
|
-
font-weight:
|
|
713
|
+
font-weight: 500;
|
|
712
714
|
}
|
|
713
715
|
|
|
714
716
|
.info-box h3.list-header {
|
|
@@ -1009,13 +1011,28 @@ body.console-open .console-tab {
|
|
|
1009
1011
|
.console-info-title {
|
|
1010
1012
|
color: #fff;
|
|
1011
1013
|
border-bottom: 1px solid rgba(255,255,255,0.35);
|
|
1012
|
-
|
|
1014
|
+
line-height: 1.45; /* space between border and text */
|
|
1013
1015
|
}
|
|
1014
1016
|
|
|
1015
1017
|
.console-info-subtitle {
|
|
1016
1018
|
margin-top: 0.65em;
|
|
1017
1019
|
}
|
|
1018
1020
|
|
|
1021
|
+
.layer-info-popup .console-info-title {
|
|
1022
|
+
color: var(--normal-text);
|
|
1023
|
+
border-bottom-color: #ccc;
|
|
1024
|
+
}
|
|
1025
|
+
|
|
1026
|
+
.layer-info-popup .console-attribute-table tr:first-child {
|
|
1027
|
+
border-bottom-color: #ccc;
|
|
1028
|
+
}
|
|
1029
|
+
|
|
1030
|
+
.layer-info-popup .console-info-table td:first-child,
|
|
1031
|
+
.layer-info-popup .console-attribute-table td:first-child,
|
|
1032
|
+
.layer-info-popup .console-attribute-table th:first-child {
|
|
1033
|
+
color: #555;
|
|
1034
|
+
}
|
|
1035
|
+
|
|
1019
1036
|
.input-field {
|
|
1020
1037
|
outline: none;
|
|
1021
1038
|
min-width: 100px;
|
|
@@ -1883,6 +1900,15 @@ body.pan.panning .map-layers:not(.drawing) {
|
|
|
1883
1900
|
stroke-linejoin: round;
|
|
1884
1901
|
}
|
|
1885
1902
|
|
|
1903
|
+
.map-layers > svg text.label-style-selected {
|
|
1904
|
+
stroke: #fce300;
|
|
1905
|
+
stroke-opacity: 0.25;
|
|
1906
|
+
paint-order: stroke fill;
|
|
1907
|
+
stroke-width: 4px;
|
|
1908
|
+
stroke-linecap: round;
|
|
1909
|
+
stroke-linejoin: round;
|
|
1910
|
+
}
|
|
1911
|
+
|
|
1886
1912
|
/* --- MAP BUTTONS --- */
|
|
1887
1913
|
|
|
1888
1914
|
/*.pointer-btn {
|
|
@@ -1979,6 +2005,370 @@ body.pan.panning .map-layers:not(.drawing) {
|
|
|
1979
2005
|
fill: white;
|
|
1980
2006
|
}
|
|
1981
2007
|
|
|
2008
|
+
.label-style-panel {
|
|
2009
|
+
position: absolute;
|
|
2010
|
+
z-index: 21;
|
|
2011
|
+
top: 6px;
|
|
2012
|
+
right: 36px;
|
|
2013
|
+
width: 185px;
|
|
2014
|
+
padding: 8px 12px 12px;
|
|
2015
|
+
text-align: left;
|
|
2016
|
+
background-color: white;
|
|
2017
|
+
border: 1px solid #ddd;
|
|
2018
|
+
border-radius: 6px;
|
|
2019
|
+
box-shadow: 0 1px 7px rgba(0,0,0,0.12);
|
|
2020
|
+
}
|
|
2021
|
+
|
|
2022
|
+
.label-style-panel button,
|
|
2023
|
+
.label-style-panel select,
|
|
2024
|
+
.label-style-panel input {
|
|
2025
|
+
font-size: 12.5px;
|
|
2026
|
+
}
|
|
2027
|
+
|
|
2028
|
+
.label-style-panel select {
|
|
2029
|
+
padding: 1px 0;
|
|
2030
|
+
}
|
|
2031
|
+
|
|
2032
|
+
.label-style-panel-title {
|
|
2033
|
+
position: relative;
|
|
2034
|
+
font-weight: 600;
|
|
2035
|
+
font-size: 16px;
|
|
2036
|
+
}
|
|
2037
|
+
|
|
2038
|
+
.label-style-close {
|
|
2039
|
+
position: absolute;
|
|
2040
|
+
right: -5px;
|
|
2041
|
+
border: 0;
|
|
2042
|
+
background: transparent;
|
|
2043
|
+
cursor: pointer;
|
|
2044
|
+
font-size: 16px;
|
|
2045
|
+
line-height: 1;
|
|
2046
|
+
}
|
|
2047
|
+
|
|
2048
|
+
.label-style-row {
|
|
2049
|
+
display: block;
|
|
2050
|
+
margin-top: 7px;
|
|
2051
|
+
}
|
|
2052
|
+
|
|
2053
|
+
.label-style-row span,
|
|
2054
|
+
.label-style-row-label {
|
|
2055
|
+
display: block;
|
|
2056
|
+
margin-bottom: 3px;
|
|
2057
|
+
color: #555;
|
|
2058
|
+
}
|
|
2059
|
+
|
|
2060
|
+
.label-style-row select {
|
|
2061
|
+
width: 100%;
|
|
2062
|
+
box-sizing: border-box;
|
|
2063
|
+
}
|
|
2064
|
+
|
|
2065
|
+
.label-style-panel select {
|
|
2066
|
+
background-color: white;
|
|
2067
|
+
border: 1px solid #999;
|
|
2068
|
+
box-shadow: none;
|
|
2069
|
+
}
|
|
2070
|
+
|
|
2071
|
+
.label-style-panel select:focus {
|
|
2072
|
+
border-color: #d3aa00;
|
|
2073
|
+
box-shadow: none;
|
|
2074
|
+
outline: none;
|
|
2075
|
+
}
|
|
2076
|
+
|
|
2077
|
+
.label-style-panel input[type="text"] {
|
|
2078
|
+
-webkit-appearance: none;
|
|
2079
|
+
appearance: none;
|
|
2080
|
+
background: white;
|
|
2081
|
+
border: 1px solid #999;
|
|
2082
|
+
border-radius: 0;
|
|
2083
|
+
box-shadow: none;
|
|
2084
|
+
}
|
|
2085
|
+
|
|
2086
|
+
.label-style-panel input[type="text"]:focus {
|
|
2087
|
+
border-color: #d3aa00;
|
|
2088
|
+
box-shadow: none;
|
|
2089
|
+
outline: none;
|
|
2090
|
+
}
|
|
2091
|
+
|
|
2092
|
+
.label-create-expression-row input {
|
|
2093
|
+
width: 100%;
|
|
2094
|
+
box-sizing: border-box;
|
|
2095
|
+
}
|
|
2096
|
+
|
|
2097
|
+
.label-create-copy-row {
|
|
2098
|
+
display: flex;
|
|
2099
|
+
align-items: flex-start;
|
|
2100
|
+
gap: 5px;
|
|
2101
|
+
}
|
|
2102
|
+
|
|
2103
|
+
.label-create-copy-row input {
|
|
2104
|
+
margin-top: 1px;
|
|
2105
|
+
}
|
|
2106
|
+
|
|
2107
|
+
.label-create-copy-row span {
|
|
2108
|
+
display: inline;
|
|
2109
|
+
margin: 0;
|
|
2110
|
+
color: #555;
|
|
2111
|
+
}
|
|
2112
|
+
|
|
2113
|
+
.label-saved-style-row select {
|
|
2114
|
+
width: 100%;
|
|
2115
|
+
margin-bottom: 4px;
|
|
2116
|
+
}
|
|
2117
|
+
|
|
2118
|
+
.label-saved-style-row {
|
|
2119
|
+
margin-top: 10px;
|
|
2120
|
+
padding-top: 8px;
|
|
2121
|
+
border-top: 1px solid #ccc;
|
|
2122
|
+
}
|
|
2123
|
+
|
|
2124
|
+
.label-saved-style-row button {
|
|
2125
|
+
margin-right: 5px;
|
|
2126
|
+
}
|
|
2127
|
+
|
|
2128
|
+
.label-split-row {
|
|
2129
|
+
display: grid;
|
|
2130
|
+
grid-template-columns: 105px 1fr;
|
|
2131
|
+
column-gap: 8px;
|
|
2132
|
+
align-items: start;
|
|
2133
|
+
}
|
|
2134
|
+
|
|
2135
|
+
.label-split-cell > span,
|
|
2136
|
+
.label-split-cell > .label-style-row-label {
|
|
2137
|
+
display: block;
|
|
2138
|
+
margin-bottom: 2px;
|
|
2139
|
+
color: #555;
|
|
2140
|
+
}
|
|
2141
|
+
|
|
2142
|
+
.label-split-row .label-size-row,
|
|
2143
|
+
.label-split-row .label-icon-size-row {
|
|
2144
|
+
justify-self: end;
|
|
2145
|
+
white-space: nowrap;
|
|
2146
|
+
}
|
|
2147
|
+
|
|
2148
|
+
.label-color-row {
|
|
2149
|
+
position: relative;
|
|
2150
|
+
}
|
|
2151
|
+
|
|
2152
|
+
.label-panel-btn {
|
|
2153
|
+
box-sizing: border-box;
|
|
2154
|
+
user-select: none;
|
|
2155
|
+
cursor: pointer;
|
|
2156
|
+
border: 1px solid #999;
|
|
2157
|
+
border-radius: 3px;
|
|
2158
|
+
background: #eee;
|
|
2159
|
+
padding: 0;
|
|
2160
|
+
height: 19px;
|
|
2161
|
+
width: 19px;
|
|
2162
|
+
}
|
|
2163
|
+
|
|
2164
|
+
.label-panel-btn.disabled {
|
|
2165
|
+
color: #999;
|
|
2166
|
+
cursor: default;
|
|
2167
|
+
opacity: 0.45;
|
|
2168
|
+
}
|
|
2169
|
+
|
|
2170
|
+
.label-color-row .label-color-chit {
|
|
2171
|
+
display: inline-block;
|
|
2172
|
+
width: 19px;
|
|
2173
|
+
height: 19px;
|
|
2174
|
+
margin-right: 5px;
|
|
2175
|
+
padding: 0;
|
|
2176
|
+
vertical-align: top;
|
|
2177
|
+
border: 1px solid #888;
|
|
2178
|
+
cursor: pointer;
|
|
2179
|
+
}
|
|
2180
|
+
|
|
2181
|
+
.label-color-row input[type="text"] {
|
|
2182
|
+
width: 79px;
|
|
2183
|
+
height: 19px;
|
|
2184
|
+
padding-top: 0;
|
|
2185
|
+
padding-bottom: 0;
|
|
2186
|
+
box-sizing: border-box;
|
|
2187
|
+
vertical-align: top;
|
|
2188
|
+
}
|
|
2189
|
+
|
|
2190
|
+
.label-color-row .label-color-picker {
|
|
2191
|
+
left: auto;
|
|
2192
|
+
right: 0;
|
|
2193
|
+
}
|
|
2194
|
+
|
|
2195
|
+
.label-color-row .label-color-picker input[type="text"] {
|
|
2196
|
+
width: 45px;
|
|
2197
|
+
}
|
|
2198
|
+
|
|
2199
|
+
.label-css-row input {
|
|
2200
|
+
width: 100%;
|
|
2201
|
+
box-sizing: border-box;
|
|
2202
|
+
}
|
|
2203
|
+
|
|
2204
|
+
.label-color-picker {
|
|
2205
|
+
position: absolute;
|
|
2206
|
+
z-index: 25;
|
|
2207
|
+
top: 48px;
|
|
2208
|
+
right: 0;
|
|
2209
|
+
padding: 8px;
|
|
2210
|
+
background: white;
|
|
2211
|
+
border: 1px solid #ddd;
|
|
2212
|
+
border-radius: 6px;
|
|
2213
|
+
box-shadow: 0 1px 7px rgba(0,0,0,0.18);
|
|
2214
|
+
}
|
|
2215
|
+
|
|
2216
|
+
.label-color-picker canvas {
|
|
2217
|
+
display: block;
|
|
2218
|
+
width: 256px;
|
|
2219
|
+
margin: 0 0 6px 0;
|
|
2220
|
+
cursor: crosshair;
|
|
2221
|
+
}
|
|
2222
|
+
|
|
2223
|
+
.label-color-picker.dragging-color canvas {
|
|
2224
|
+
cursor: none;
|
|
2225
|
+
}
|
|
2226
|
+
|
|
2227
|
+
body.dragging-color-picker,
|
|
2228
|
+
body.dragging-color-picker * {
|
|
2229
|
+
cursor: none !important;
|
|
2230
|
+
}
|
|
2231
|
+
|
|
2232
|
+
.label-color-canvas-wrap {
|
|
2233
|
+
position: relative;
|
|
2234
|
+
width: 256px;
|
|
2235
|
+
overflow: visible;
|
|
2236
|
+
}
|
|
2237
|
+
|
|
2238
|
+
.label-color-marker {
|
|
2239
|
+
position: absolute;
|
|
2240
|
+
pointer-events: none;
|
|
2241
|
+
overflow: visible;
|
|
2242
|
+
}
|
|
2243
|
+
|
|
2244
|
+
.label-color-marker circle {
|
|
2245
|
+
fill: none;
|
|
2246
|
+
stroke-width: 1.5;
|
|
2247
|
+
}
|
|
2248
|
+
|
|
2249
|
+
.label-color-picker-fields {
|
|
2250
|
+
display: flex;
|
|
2251
|
+
align-items: center;
|
|
2252
|
+
gap: 6px;
|
|
2253
|
+
margin-top: 6px;
|
|
2254
|
+
}
|
|
2255
|
+
|
|
2256
|
+
.label-color-picker-fields label {
|
|
2257
|
+
display: inline-flex;
|
|
2258
|
+
align-items: center;
|
|
2259
|
+
gap: 3px;
|
|
2260
|
+
margin: 0;
|
|
2261
|
+
color: #555;
|
|
2262
|
+
}
|
|
2263
|
+
|
|
2264
|
+
.label-color-picker-fields span {
|
|
2265
|
+
display: inline;
|
|
2266
|
+
margin: 0;
|
|
2267
|
+
color: #555;
|
|
2268
|
+
}
|
|
2269
|
+
|
|
2270
|
+
.label-color-picker-fields input {
|
|
2271
|
+
width: 34px;
|
|
2272
|
+
box-sizing: border-box;
|
|
2273
|
+
}
|
|
2274
|
+
|
|
2275
|
+
.label-color-picker-fields button {
|
|
2276
|
+
margin-left: auto;
|
|
2277
|
+
}
|
|
2278
|
+
|
|
2279
|
+
.label-style-selection-row button {
|
|
2280
|
+
margin-right: 5px;
|
|
2281
|
+
}
|
|
2282
|
+
|
|
2283
|
+
.label-position-grid {
|
|
2284
|
+
display: grid;
|
|
2285
|
+
grid-template-columns: repeat(3, 10px);
|
|
2286
|
+
gap: 2px;
|
|
2287
|
+
}
|
|
2288
|
+
|
|
2289
|
+
.label-position-grid .label-panel-btn {
|
|
2290
|
+
width: 9px;
|
|
2291
|
+
height: 9px;
|
|
2292
|
+
cursor: pointer;
|
|
2293
|
+
border-radius: 0;
|
|
2294
|
+
background: white;
|
|
2295
|
+
}
|
|
2296
|
+
|
|
2297
|
+
.label-panel-btn.selected {
|
|
2298
|
+
background-color: black;
|
|
2299
|
+
border-color: black;
|
|
2300
|
+
color: white;
|
|
2301
|
+
}
|
|
2302
|
+
|
|
2303
|
+
.label-icon-buttons {
|
|
2304
|
+
display: flex;
|
|
2305
|
+
gap: 2px;
|
|
2306
|
+
}
|
|
2307
|
+
|
|
2308
|
+
.label-icon-buttons .label-panel-btn {
|
|
2309
|
+
display: flex;
|
|
2310
|
+
align-items: center;
|
|
2311
|
+
justify-content: center;
|
|
2312
|
+
}
|
|
2313
|
+
|
|
2314
|
+
.label-icon-symbol {
|
|
2315
|
+
display: block;
|
|
2316
|
+
width: 13px;
|
|
2317
|
+
height: 13px;
|
|
2318
|
+
fill: currentColor;
|
|
2319
|
+
stroke: none;
|
|
2320
|
+
}
|
|
2321
|
+
|
|
2322
|
+
.label-icon-buttons .label-panel-btn[data-icon="none"] .label-icon-symbol,
|
|
2323
|
+
.label-icon-buttons .label-panel-btn[data-icon="ring"] .label-icon-symbol {
|
|
2324
|
+
fill: none;
|
|
2325
|
+
stroke: currentColor;
|
|
2326
|
+
stroke-width: 1.8;
|
|
2327
|
+
stroke-linecap: round;
|
|
2328
|
+
stroke-linejoin: round;
|
|
2329
|
+
}
|
|
2330
|
+
|
|
2331
|
+
.label-icon-buttons .label-panel-btn[data-icon="star"] .label-icon-symbol {
|
|
2332
|
+
transform: scale(1.4);
|
|
2333
|
+
}
|
|
2334
|
+
|
|
2335
|
+
.label-size-row .label-panel-btn,
|
|
2336
|
+
.label-icon-size-row .label-panel-btn {
|
|
2337
|
+
display: inline-block;
|
|
2338
|
+
text-align: center;
|
|
2339
|
+
line-height: 18px;
|
|
2340
|
+
}
|
|
2341
|
+
|
|
2342
|
+
.label-size-row .label-panel-btn,
|
|
2343
|
+
.label-icon-size-row .label-panel-btn {
|
|
2344
|
+
margin-right: 4px;
|
|
2345
|
+
}
|
|
2346
|
+
|
|
2347
|
+
.label-split-row .label-size-row .label-panel-btn,
|
|
2348
|
+
.label-split-row .label-icon-size-row .label-panel-btn {
|
|
2349
|
+
margin-right: 2px;
|
|
2350
|
+
}
|
|
2351
|
+
|
|
2352
|
+
.label-split-row .label-size-row .label-panel-btn:last-child,
|
|
2353
|
+
.label-split-row .label-icon-size-row .label-panel-btn:last-child {
|
|
2354
|
+
margin-right: 0;
|
|
2355
|
+
}
|
|
2356
|
+
|
|
2357
|
+
.label-size-row .label-size-value,
|
|
2358
|
+
.label-icon-size-row .label-icon-size-value {
|
|
2359
|
+
display: inline-block;
|
|
2360
|
+
width: 28px;
|
|
2361
|
+
margin: 0 3px 0 0;
|
|
2362
|
+
text-align: center;
|
|
2363
|
+
color: black;
|
|
2364
|
+
}
|
|
2365
|
+
|
|
2366
|
+
.label-split-row .label-size-value,
|
|
2367
|
+
.label-split-row .label-icon-size-value {
|
|
2368
|
+
width: 24px;
|
|
2369
|
+
margin-right: 2px;
|
|
2370
|
+
}
|
|
2371
|
+
|
|
1982
2372
|
.nav-menu-item,
|
|
1983
2373
|
.contextmenu-item {
|
|
1984
2374
|
background-color: #fff;
|
|
@@ -2033,9 +2423,9 @@ body.pan.panning .map-layers:not(.drawing) {
|
|
|
2033
2423
|
display: inline-block;
|
|
2034
2424
|
border-radius: 4px;
|
|
2035
2425
|
border: 1px solid #aaa;
|
|
2036
|
-
font-size:
|
|
2037
|
-
margin-left:
|
|
2038
|
-
padding:
|
|
2426
|
+
font-size: 13px;
|
|
2427
|
+
margin-left: 4px;
|
|
2428
|
+
padding: 2px 4px 3px 4px;
|
|
2039
2429
|
}
|
|
2040
2430
|
|
|
2041
2431
|
.add-field-btn,
|
|
@@ -2081,7 +2471,7 @@ body.pan.panning .map-layers:not(.drawing) {
|
|
|
2081
2471
|
text-align: right;
|
|
2082
2472
|
background-color: #fff;
|
|
2083
2473
|
white-space: nowrap;
|
|
2084
|
-
padding:
|
|
2474
|
+
padding: 3px 7px 0px 7px;
|
|
2085
2475
|
line-height: 11px;
|
|
2086
2476
|
cursor: pointer;
|
|
2087
2477
|
}
|