@edgepdf/viewer-react 0.0.2 → 0.0.4
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/dist/index.js +161 -10
- package/dist/lib/viewer-context.d.ts.map +1 -1
- package/dist/styles.css +1003 -0
- package/package.json +4 -2
package/dist/index.js
CHANGED
|
@@ -9583,6 +9583,26 @@ var require_leaflet_src = __commonJS({
|
|
|
9583
9583
|
});
|
|
9584
9584
|
}
|
|
9585
9585
|
});
|
|
9586
|
+
if (typeof window !== "undefined" && typeof document !== "undefined") {
|
|
9587
|
+
const existingLink = document.querySelector("link[data-edgepdf-styles]");
|
|
9588
|
+
if (!existingLink) {
|
|
9589
|
+
const link = document.createElement("link");
|
|
9590
|
+
link.rel = "stylesheet";
|
|
9591
|
+
link.type = "text/css";
|
|
9592
|
+
link.setAttribute("data-edgepdf-styles", "true");
|
|
9593
|
+
try {
|
|
9594
|
+
if (typeof import.meta !== "undefined" && import.meta.url) {
|
|
9595
|
+
const baseUrl = new URL(import.meta.url);
|
|
9596
|
+
link.href = new URL("./styles.css", baseUrl).href;
|
|
9597
|
+
} else {
|
|
9598
|
+
link.href = "./styles.css";
|
|
9599
|
+
}
|
|
9600
|
+
} catch (e) {
|
|
9601
|
+
link.href = "./styles.css";
|
|
9602
|
+
}
|
|
9603
|
+
document.head.appendChild(link);
|
|
9604
|
+
}
|
|
9605
|
+
}
|
|
9586
9606
|
var import_leaflet4 = __toESM(require_leaflet_src(), 1);
|
|
9587
9607
|
var import_leaflet = __toESM(require_leaflet_src(), 1);
|
|
9588
9608
|
function calculateTileCount(imageSize, tileSize, zoom) {
|
|
@@ -10575,6 +10595,9 @@ var MarkerManager = class {
|
|
|
10575
10595
|
showEditButton: true,
|
|
10576
10596
|
showDeleteButton: true
|
|
10577
10597
|
};
|
|
10598
|
+
defaultIconType = "pin";
|
|
10599
|
+
iconBasePath = "./images/";
|
|
10600
|
+
// Default to library's images folder
|
|
10578
10601
|
/**
|
|
10579
10602
|
* Creates a new MarkerManager instance
|
|
10580
10603
|
*
|
|
@@ -10661,7 +10684,8 @@ var MarkerManager = class {
|
|
|
10661
10684
|
annotation: options.annotation,
|
|
10662
10685
|
href: options.href,
|
|
10663
10686
|
target: options.target,
|
|
10664
|
-
showLabel: options.showLabel ?? true
|
|
10687
|
+
showLabel: options.showLabel ?? true,
|
|
10688
|
+
iconType: options.iconType || this.defaultIconType
|
|
10665
10689
|
};
|
|
10666
10690
|
this.validateMarker(marker);
|
|
10667
10691
|
const leafletMarker = this.createLeafletMarker(marker);
|
|
@@ -11043,6 +11067,95 @@ var MarkerManager = class {
|
|
|
11043
11067
|
this.eventListeners.clear();
|
|
11044
11068
|
}
|
|
11045
11069
|
}
|
|
11070
|
+
/**
|
|
11071
|
+
* Sets the default icon type for new markers
|
|
11072
|
+
*
|
|
11073
|
+
* @param iconType - Icon type to use as default
|
|
11074
|
+
*/
|
|
11075
|
+
setDefaultIconType(iconType) {
|
|
11076
|
+
this.defaultIconType = iconType;
|
|
11077
|
+
}
|
|
11078
|
+
/**
|
|
11079
|
+
* Gets the current default icon type
|
|
11080
|
+
*
|
|
11081
|
+
* @returns Current default icon type
|
|
11082
|
+
*/
|
|
11083
|
+
getDefaultIconType() {
|
|
11084
|
+
return this.defaultIconType;
|
|
11085
|
+
}
|
|
11086
|
+
/**
|
|
11087
|
+
* Sets the base path for marker icons
|
|
11088
|
+
*
|
|
11089
|
+
* @param basePath - Base path for icon files (default: './images/')
|
|
11090
|
+
*
|
|
11091
|
+
* @example
|
|
11092
|
+
* ```typescript
|
|
11093
|
+
* // Use library's built-in icons (default)
|
|
11094
|
+
* markerManager.setIconBasePath('./images/');
|
|
11095
|
+
*
|
|
11096
|
+
* // Use custom icons from public folder
|
|
11097
|
+
* markerManager.setIconBasePath('/');
|
|
11098
|
+
*
|
|
11099
|
+
* // Use icons from a CDN
|
|
11100
|
+
* markerManager.setIconBasePath('https://cdn.example.com/icons/');
|
|
11101
|
+
* ```
|
|
11102
|
+
*/
|
|
11103
|
+
setIconBasePath(basePath) {
|
|
11104
|
+
this.iconBasePath = basePath.endsWith("/") ? basePath : `${basePath}/`;
|
|
11105
|
+
}
|
|
11106
|
+
/**
|
|
11107
|
+
* Gets the current base path for marker icons
|
|
11108
|
+
*
|
|
11109
|
+
* @returns The current icon base path
|
|
11110
|
+
*/
|
|
11111
|
+
getIconBasePath() {
|
|
11112
|
+
return this.iconBasePath;
|
|
11113
|
+
}
|
|
11114
|
+
/**
|
|
11115
|
+
* Updates the icon type for a specific marker
|
|
11116
|
+
*
|
|
11117
|
+
* @param id - Marker ID
|
|
11118
|
+
* @param iconType - New icon type
|
|
11119
|
+
* @returns True if marker was updated, false if not found
|
|
11120
|
+
*/
|
|
11121
|
+
updateMarkerIcon(id, iconType) {
|
|
11122
|
+
const marker = this.markers.get(id);
|
|
11123
|
+
const leafletMarker = this.leafletMarkers.get(id);
|
|
11124
|
+
if (!marker || !leafletMarker) {
|
|
11125
|
+
return false;
|
|
11126
|
+
}
|
|
11127
|
+
const isSelected = this.selectedIds.has(id);
|
|
11128
|
+
if (isSelected && (iconType === "pin-gray" || iconType === "pin-yellow" || iconType === "pin")) {
|
|
11129
|
+
if (iconType === "pin-gray" || iconType === "pin") {
|
|
11130
|
+
iconType = "pin-gray-selected";
|
|
11131
|
+
} else if (iconType === "pin-yellow") {
|
|
11132
|
+
iconType = "pin-yellow-selected";
|
|
11133
|
+
}
|
|
11134
|
+
}
|
|
11135
|
+
marker.iconType = iconType;
|
|
11136
|
+
const newIcon = this.createCustomIcon(iconType);
|
|
11137
|
+
leafletMarker.setIcon(newIcon);
|
|
11138
|
+
return true;
|
|
11139
|
+
}
|
|
11140
|
+
/**
|
|
11141
|
+
* Updates all markers to use a new icon type
|
|
11142
|
+
*
|
|
11143
|
+
* @param iconType - Icon type to apply to all markers
|
|
11144
|
+
*/
|
|
11145
|
+
updateAllMarkerIcons(iconType) {
|
|
11146
|
+
this.markers.forEach((marker, id) => {
|
|
11147
|
+
const isSelected = this.selectedIds.has(id);
|
|
11148
|
+
let finalIconType = iconType;
|
|
11149
|
+
if (isSelected) {
|
|
11150
|
+
if (iconType === "pin-gray" || iconType === "pin") {
|
|
11151
|
+
finalIconType = "pin-gray-selected";
|
|
11152
|
+
} else if (iconType === "pin-yellow") {
|
|
11153
|
+
finalIconType = "pin-yellow-selected";
|
|
11154
|
+
}
|
|
11155
|
+
}
|
|
11156
|
+
this.updateMarkerIcon(id, finalIconType);
|
|
11157
|
+
});
|
|
11158
|
+
}
|
|
11046
11159
|
/**
|
|
11047
11160
|
* Disposes of the marker manager and cleans up resources
|
|
11048
11161
|
*
|
|
@@ -11055,6 +11168,28 @@ var MarkerManager = class {
|
|
|
11055
11168
|
this.map.removeLayer(this.markerLayerGroup);
|
|
11056
11169
|
}
|
|
11057
11170
|
}
|
|
11171
|
+
/**
|
|
11172
|
+
* Creates a custom icon for a marker
|
|
11173
|
+
*
|
|
11174
|
+
* @param iconType - Icon type to use
|
|
11175
|
+
* @returns Leaflet icon instance
|
|
11176
|
+
*/
|
|
11177
|
+
createCustomIcon(iconType) {
|
|
11178
|
+
const iconUrl = `${this.iconBasePath}${iconType}.png`;
|
|
11179
|
+
return import_leaflet3.default.icon({
|
|
11180
|
+
iconUrl,
|
|
11181
|
+
iconSize: [30, 40],
|
|
11182
|
+
// Default marker size
|
|
11183
|
+
iconAnchor: [30, 10],
|
|
11184
|
+
// Point of the icon which will correspond to marker's location
|
|
11185
|
+
popupAnchor: [0, 0],
|
|
11186
|
+
// Point from which the popup should open relative to the iconAnchor
|
|
11187
|
+
shadowUrl: void 0,
|
|
11188
|
+
// No shadow
|
|
11189
|
+
shadowSize: void 0,
|
|
11190
|
+
shadowAnchor: void 0
|
|
11191
|
+
});
|
|
11192
|
+
}
|
|
11058
11193
|
/**
|
|
11059
11194
|
* Creates a Leaflet marker from marker data
|
|
11060
11195
|
*
|
|
@@ -11062,8 +11197,11 @@ var MarkerManager = class {
|
|
|
11062
11197
|
* @returns Leaflet marker instance
|
|
11063
11198
|
*/
|
|
11064
11199
|
createLeafletMarker(marker) {
|
|
11200
|
+
const iconType = marker.iconType || this.defaultIconType;
|
|
11201
|
+
const customIcon = this.createCustomIcon(iconType);
|
|
11065
11202
|
const markerOptions = {
|
|
11066
|
-
title: marker.title
|
|
11203
|
+
title: marker.title,
|
|
11204
|
+
icon: customIcon
|
|
11067
11205
|
};
|
|
11068
11206
|
if (this.interactionConfig.draggable) {
|
|
11069
11207
|
markerOptions.draggable = true;
|
|
@@ -11166,20 +11304,32 @@ var MarkerManager = class {
|
|
|
11166
11304
|
* @param selected - Whether marker is selected
|
|
11167
11305
|
*/
|
|
11168
11306
|
updateMarkerSelectionVisual(id, selected) {
|
|
11307
|
+
const marker = this.markers.get(id);
|
|
11169
11308
|
const leafletMarker = this.leafletMarkers.get(id);
|
|
11170
|
-
if (!leafletMarker) {
|
|
11309
|
+
if (!marker || !leafletMarker) {
|
|
11171
11310
|
return;
|
|
11172
11311
|
}
|
|
11173
|
-
|
|
11174
|
-
if (
|
|
11175
|
-
if (selected) {
|
|
11176
|
-
|
|
11177
|
-
|
|
11312
|
+
let newIconType;
|
|
11313
|
+
if (selected) {
|
|
11314
|
+
if (marker.iconType === "pin-gray" || marker.iconType === "pin-gray-selected") {
|
|
11315
|
+
newIconType = "pin-gray-selected";
|
|
11316
|
+
} else if (marker.iconType === "pin-yellow" || marker.iconType === "pin-yellow-selected") {
|
|
11317
|
+
newIconType = "pin-yellow-selected";
|
|
11318
|
+
} else {
|
|
11319
|
+
newIconType = "pin-gray-selected";
|
|
11320
|
+
}
|
|
11321
|
+
} else {
|
|
11322
|
+
if (marker.iconType === "pin-gray" || marker.iconType === "pin-gray-selected") {
|
|
11323
|
+
newIconType = "pin-gray";
|
|
11324
|
+
} else if (marker.iconType === "pin-yellow" || marker.iconType === "pin-yellow-selected") {
|
|
11325
|
+
newIconType = "pin-yellow";
|
|
11178
11326
|
} else {
|
|
11179
|
-
|
|
11180
|
-
iconElement.style.zIndex = "";
|
|
11327
|
+
newIconType = marker.iconType || this.defaultIconType;
|
|
11181
11328
|
}
|
|
11182
11329
|
}
|
|
11330
|
+
marker.iconType = newIconType;
|
|
11331
|
+
const newIcon = this.createCustomIcon(newIconType);
|
|
11332
|
+
leafletMarker.setIcon(newIcon);
|
|
11183
11333
|
}
|
|
11184
11334
|
/**
|
|
11185
11335
|
* Emits an event to all registered listeners
|
|
@@ -11809,6 +11959,7 @@ function ViewerProvider({
|
|
|
11809
11959
|
setIsInitialized(true);
|
|
11810
11960
|
const markerManager = viewerInstance.getMarkerManager();
|
|
11811
11961
|
if (markerManager) {
|
|
11962
|
+
markerManager.setIconBasePath("/");
|
|
11812
11963
|
markerManager.setInteractionConfig({
|
|
11813
11964
|
draggable: enableAnnotation,
|
|
11814
11965
|
selectable: enableAnnotation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewer-context.d.ts","sourceRoot":"","sources":["../../src/lib/viewer-context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,MAAM,EACN,UAAU,EACV,SAAS,EACV,MAAM,gBAAgB,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sBAAsB;IACtB,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,oCAAoC;IACpC,aAAa,EAAE,OAAO,CAAC;IACvB,sBAAsB;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,yBAAyB;IACzB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CAC7B;AAOD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2BAA2B;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,2BAA2B;IAC3B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,6CAA6C;IAC7C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACxC,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;IACpC,0BAA0B;IAC1B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,UAAU,EACV,gBAAuB,EACvB,YAAY,EACZ,WAAW,EACX,QAAQ,GACT,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"viewer-context.d.ts","sourceRoot":"","sources":["../../src/lib/viewer-context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,MAAM,EACN,UAAU,EACV,SAAS,EACV,MAAM,gBAAgB,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sBAAsB;IACtB,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,oCAAoC;IACpC,aAAa,EAAE,OAAO,CAAC;IACvB,sBAAsB;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,yBAAyB;IACzB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CAC7B;AAOD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2BAA2B;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,2BAA2B;IAC3B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,6CAA6C;IAC7C,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACxC,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;IACpC,0BAA0B;IAC1B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,UAAU,EACV,gBAAuB,EACvB,YAAY,EACZ,WAAW,EACX,QAAQ,GACT,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAqPnC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,IAAI,kBAAkB,CAMrD"}
|
package/dist/styles.css
ADDED
|
@@ -0,0 +1,1003 @@
|
|
|
1
|
+
/* Re-export Leaflet CSS for convenience */
|
|
2
|
+
/* Inlined leaflet/dist/leaflet.css */
|
|
3
|
+
/* required styles */
|
|
4
|
+
|
|
5
|
+
.leaflet-pane,
|
|
6
|
+
.leaflet-tile,
|
|
7
|
+
.leaflet-marker-icon,
|
|
8
|
+
.leaflet-marker-shadow,
|
|
9
|
+
.leaflet-tile-container,
|
|
10
|
+
.leaflet-pane > svg,
|
|
11
|
+
.leaflet-pane > canvas,
|
|
12
|
+
.leaflet-zoom-box,
|
|
13
|
+
.leaflet-image-layer,
|
|
14
|
+
.leaflet-layer {
|
|
15
|
+
position: absolute;
|
|
16
|
+
left: 0;
|
|
17
|
+
top: 0;
|
|
18
|
+
}
|
|
19
|
+
.leaflet-container {
|
|
20
|
+
overflow: hidden;
|
|
21
|
+
}
|
|
22
|
+
.leaflet-tile,
|
|
23
|
+
.leaflet-marker-icon,
|
|
24
|
+
.leaflet-marker-shadow {
|
|
25
|
+
-webkit-user-select: none;
|
|
26
|
+
-moz-user-select: none;
|
|
27
|
+
user-select: none;
|
|
28
|
+
-webkit-user-drag: none;
|
|
29
|
+
}
|
|
30
|
+
/* Prevents IE11 from highlighting tiles in blue */
|
|
31
|
+
.leaflet-tile::selection {
|
|
32
|
+
background: transparent;
|
|
33
|
+
}
|
|
34
|
+
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
|
|
35
|
+
.leaflet-safari .leaflet-tile {
|
|
36
|
+
image-rendering: -webkit-optimize-contrast;
|
|
37
|
+
}
|
|
38
|
+
/* hack that prevents hw layers "stretching" when loading new tiles */
|
|
39
|
+
.leaflet-safari .leaflet-tile-container {
|
|
40
|
+
width: 1600px;
|
|
41
|
+
height: 1600px;
|
|
42
|
+
-webkit-transform-origin: 0 0;
|
|
43
|
+
}
|
|
44
|
+
.leaflet-marker-icon,
|
|
45
|
+
.leaflet-marker-shadow {
|
|
46
|
+
display: block;
|
|
47
|
+
}
|
|
48
|
+
/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
|
|
49
|
+
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
|
|
50
|
+
.leaflet-container .leaflet-overlay-pane svg {
|
|
51
|
+
max-width: none !important;
|
|
52
|
+
max-height: none !important;
|
|
53
|
+
}
|
|
54
|
+
.leaflet-container .leaflet-marker-pane img,
|
|
55
|
+
.leaflet-container .leaflet-shadow-pane img,
|
|
56
|
+
.leaflet-container .leaflet-tile-pane img,
|
|
57
|
+
.leaflet-container img.leaflet-image-layer,
|
|
58
|
+
.leaflet-container .leaflet-tile {
|
|
59
|
+
max-width: none !important;
|
|
60
|
+
max-height: none !important;
|
|
61
|
+
width: auto;
|
|
62
|
+
padding: 0;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.leaflet-container img.leaflet-tile {
|
|
66
|
+
/* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */
|
|
67
|
+
mix-blend-mode: plus-lighter;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.leaflet-container.leaflet-touch-zoom {
|
|
71
|
+
-ms-touch-action: pan-x pan-y;
|
|
72
|
+
touch-action: pan-x pan-y;
|
|
73
|
+
}
|
|
74
|
+
.leaflet-container.leaflet-touch-drag {
|
|
75
|
+
-ms-touch-action: pinch-zoom;
|
|
76
|
+
/* Fallback for FF which doesn't support pinch-zoom */
|
|
77
|
+
touch-action: none;
|
|
78
|
+
touch-action: pinch-zoom;
|
|
79
|
+
}
|
|
80
|
+
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
|
|
81
|
+
-ms-touch-action: none;
|
|
82
|
+
touch-action: none;
|
|
83
|
+
}
|
|
84
|
+
.leaflet-container {
|
|
85
|
+
-webkit-tap-highlight-color: transparent;
|
|
86
|
+
}
|
|
87
|
+
.leaflet-container a {
|
|
88
|
+
-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
|
|
89
|
+
}
|
|
90
|
+
.leaflet-tile {
|
|
91
|
+
filter: inherit;
|
|
92
|
+
visibility: hidden;
|
|
93
|
+
}
|
|
94
|
+
.leaflet-tile-loaded {
|
|
95
|
+
visibility: inherit;
|
|
96
|
+
}
|
|
97
|
+
.leaflet-zoom-box {
|
|
98
|
+
width: 0;
|
|
99
|
+
height: 0;
|
|
100
|
+
-moz-box-sizing: border-box;
|
|
101
|
+
box-sizing: border-box;
|
|
102
|
+
z-index: 800;
|
|
103
|
+
}
|
|
104
|
+
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
|
|
105
|
+
.leaflet-overlay-pane svg {
|
|
106
|
+
-moz-user-select: none;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.leaflet-pane { z-index: 400; }
|
|
110
|
+
|
|
111
|
+
.leaflet-tile-pane { z-index: 200; }
|
|
112
|
+
.leaflet-overlay-pane { z-index: 400; }
|
|
113
|
+
.leaflet-shadow-pane { z-index: 500; }
|
|
114
|
+
.leaflet-marker-pane { z-index: 600; }
|
|
115
|
+
.leaflet-tooltip-pane { z-index: 650; }
|
|
116
|
+
.leaflet-popup-pane { z-index: 700; }
|
|
117
|
+
|
|
118
|
+
.leaflet-map-pane canvas { z-index: 100; }
|
|
119
|
+
.leaflet-map-pane svg { z-index: 200; }
|
|
120
|
+
|
|
121
|
+
.leaflet-vml-shape {
|
|
122
|
+
width: 1px;
|
|
123
|
+
height: 1px;
|
|
124
|
+
}
|
|
125
|
+
.lvml {
|
|
126
|
+
behavior: url(#default#VML);
|
|
127
|
+
display: inline-block;
|
|
128
|
+
position: absolute;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
/* control positioning */
|
|
133
|
+
|
|
134
|
+
.leaflet-control {
|
|
135
|
+
position: relative;
|
|
136
|
+
z-index: 800;
|
|
137
|
+
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
|
|
138
|
+
pointer-events: auto;
|
|
139
|
+
}
|
|
140
|
+
.leaflet-top,
|
|
141
|
+
.leaflet-bottom {
|
|
142
|
+
position: absolute;
|
|
143
|
+
z-index: 1000;
|
|
144
|
+
pointer-events: none;
|
|
145
|
+
}
|
|
146
|
+
.leaflet-top {
|
|
147
|
+
top: 0;
|
|
148
|
+
}
|
|
149
|
+
.leaflet-right {
|
|
150
|
+
right: 0;
|
|
151
|
+
}
|
|
152
|
+
.leaflet-bottom {
|
|
153
|
+
bottom: 0;
|
|
154
|
+
}
|
|
155
|
+
.leaflet-left {
|
|
156
|
+
left: 0;
|
|
157
|
+
}
|
|
158
|
+
.leaflet-control {
|
|
159
|
+
float: left;
|
|
160
|
+
clear: both;
|
|
161
|
+
}
|
|
162
|
+
.leaflet-right .leaflet-control {
|
|
163
|
+
float: right;
|
|
164
|
+
}
|
|
165
|
+
.leaflet-top .leaflet-control {
|
|
166
|
+
margin-top: 10px;
|
|
167
|
+
}
|
|
168
|
+
.leaflet-bottom .leaflet-control {
|
|
169
|
+
margin-bottom: 10px;
|
|
170
|
+
}
|
|
171
|
+
.leaflet-left .leaflet-control {
|
|
172
|
+
margin-left: 10px;
|
|
173
|
+
}
|
|
174
|
+
.leaflet-right .leaflet-control {
|
|
175
|
+
margin-right: 10px;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
/* zoom and fade animations */
|
|
180
|
+
|
|
181
|
+
.leaflet-fade-anim .leaflet-popup {
|
|
182
|
+
opacity: 0;
|
|
183
|
+
-webkit-transition: opacity 0.2s linear;
|
|
184
|
+
-moz-transition: opacity 0.2s linear;
|
|
185
|
+
transition: opacity 0.2s linear;
|
|
186
|
+
}
|
|
187
|
+
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
|
|
188
|
+
opacity: 1;
|
|
189
|
+
}
|
|
190
|
+
.leaflet-zoom-animated {
|
|
191
|
+
-webkit-transform-origin: 0 0;
|
|
192
|
+
-ms-transform-origin: 0 0;
|
|
193
|
+
transform-origin: 0 0;
|
|
194
|
+
}
|
|
195
|
+
svg.leaflet-zoom-animated {
|
|
196
|
+
will-change: transform;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.leaflet-zoom-anim .leaflet-zoom-animated {
|
|
200
|
+
-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
|
|
201
|
+
-moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
|
|
202
|
+
transition: transform 0.25s cubic-bezier(0,0,0.25,1);
|
|
203
|
+
}
|
|
204
|
+
.leaflet-zoom-anim .leaflet-tile,
|
|
205
|
+
.leaflet-pan-anim .leaflet-tile {
|
|
206
|
+
-webkit-transition: none;
|
|
207
|
+
-moz-transition: none;
|
|
208
|
+
transition: none;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.leaflet-zoom-anim .leaflet-zoom-hide {
|
|
212
|
+
visibility: hidden;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
/* cursors */
|
|
217
|
+
|
|
218
|
+
.leaflet-interactive {
|
|
219
|
+
cursor: pointer;
|
|
220
|
+
}
|
|
221
|
+
.leaflet-grab {
|
|
222
|
+
cursor: -webkit-grab;
|
|
223
|
+
cursor: -moz-grab;
|
|
224
|
+
cursor: grab;
|
|
225
|
+
}
|
|
226
|
+
.leaflet-crosshair,
|
|
227
|
+
.leaflet-crosshair .leaflet-interactive {
|
|
228
|
+
cursor: crosshair;
|
|
229
|
+
}
|
|
230
|
+
.leaflet-popup-pane,
|
|
231
|
+
.leaflet-control {
|
|
232
|
+
cursor: auto;
|
|
233
|
+
}
|
|
234
|
+
.leaflet-dragging .leaflet-grab,
|
|
235
|
+
.leaflet-dragging .leaflet-grab .leaflet-interactive,
|
|
236
|
+
.leaflet-dragging .leaflet-marker-draggable {
|
|
237
|
+
cursor: move;
|
|
238
|
+
cursor: -webkit-grabbing;
|
|
239
|
+
cursor: -moz-grabbing;
|
|
240
|
+
cursor: grabbing;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/* marker & overlays interactivity */
|
|
244
|
+
.leaflet-marker-icon,
|
|
245
|
+
.leaflet-marker-shadow,
|
|
246
|
+
.leaflet-image-layer,
|
|
247
|
+
.leaflet-pane > svg path,
|
|
248
|
+
.leaflet-tile-container {
|
|
249
|
+
pointer-events: none;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.leaflet-marker-icon.leaflet-interactive,
|
|
253
|
+
.leaflet-image-layer.leaflet-interactive,
|
|
254
|
+
.leaflet-pane > svg path.leaflet-interactive,
|
|
255
|
+
svg.leaflet-image-layer.leaflet-interactive path {
|
|
256
|
+
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
|
|
257
|
+
pointer-events: auto;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/* visual tweaks */
|
|
261
|
+
|
|
262
|
+
.leaflet-container {
|
|
263
|
+
background: #ddd;
|
|
264
|
+
outline-offset: 1px;
|
|
265
|
+
}
|
|
266
|
+
.leaflet-container a {
|
|
267
|
+
color: #0078A8;
|
|
268
|
+
}
|
|
269
|
+
.leaflet-zoom-box {
|
|
270
|
+
border: 2px dotted #38f;
|
|
271
|
+
background: rgba(255,255,255,0.5);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
/* general typography */
|
|
276
|
+
.leaflet-container {
|
|
277
|
+
font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
|
|
278
|
+
font-size: 12px;
|
|
279
|
+
font-size: 0.75rem;
|
|
280
|
+
line-height: 1.5;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
/* general toolbar styles */
|
|
285
|
+
|
|
286
|
+
.leaflet-bar {
|
|
287
|
+
box-shadow: 0 1px 5px rgba(0,0,0,0.65);
|
|
288
|
+
border-radius: 4px;
|
|
289
|
+
}
|
|
290
|
+
.leaflet-bar a {
|
|
291
|
+
background-color: #fff;
|
|
292
|
+
border-bottom: 1px solid #ccc;
|
|
293
|
+
width: 26px;
|
|
294
|
+
height: 26px;
|
|
295
|
+
line-height: 26px;
|
|
296
|
+
display: block;
|
|
297
|
+
text-align: center;
|
|
298
|
+
text-decoration: none;
|
|
299
|
+
color: black;
|
|
300
|
+
}
|
|
301
|
+
.leaflet-bar a,
|
|
302
|
+
.leaflet-control-layers-toggle {
|
|
303
|
+
background-position: 50% 50%;
|
|
304
|
+
background-repeat: no-repeat;
|
|
305
|
+
display: block;
|
|
306
|
+
}
|
|
307
|
+
.leaflet-bar a:hover,
|
|
308
|
+
.leaflet-bar a:focus {
|
|
309
|
+
background-color: #f4f4f4;
|
|
310
|
+
}
|
|
311
|
+
.leaflet-bar a:first-child {
|
|
312
|
+
border-top-left-radius: 4px;
|
|
313
|
+
border-top-right-radius: 4px;
|
|
314
|
+
}
|
|
315
|
+
.leaflet-bar a:last-child {
|
|
316
|
+
border-bottom-left-radius: 4px;
|
|
317
|
+
border-bottom-right-radius: 4px;
|
|
318
|
+
border-bottom: none;
|
|
319
|
+
}
|
|
320
|
+
.leaflet-bar a.leaflet-disabled {
|
|
321
|
+
cursor: default;
|
|
322
|
+
background-color: #f4f4f4;
|
|
323
|
+
color: #bbb;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
.leaflet-touch .leaflet-bar a {
|
|
327
|
+
width: 30px;
|
|
328
|
+
height: 30px;
|
|
329
|
+
line-height: 30px;
|
|
330
|
+
}
|
|
331
|
+
.leaflet-touch .leaflet-bar a:first-child {
|
|
332
|
+
border-top-left-radius: 2px;
|
|
333
|
+
border-top-right-radius: 2px;
|
|
334
|
+
}
|
|
335
|
+
.leaflet-touch .leaflet-bar a:last-child {
|
|
336
|
+
border-bottom-left-radius: 2px;
|
|
337
|
+
border-bottom-right-radius: 2px;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
/* zoom control */
|
|
341
|
+
|
|
342
|
+
.leaflet-control-zoom-in,
|
|
343
|
+
.leaflet-control-zoom-out {
|
|
344
|
+
font: bold 18px 'Lucida Console', Monaco, monospace;
|
|
345
|
+
text-indent: 1px;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out {
|
|
349
|
+
font-size: 22px;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
|
|
353
|
+
/* layers control */
|
|
354
|
+
|
|
355
|
+
.leaflet-control-layers {
|
|
356
|
+
box-shadow: 0 1px 5px rgba(0,0,0,0.4);
|
|
357
|
+
background: #fff;
|
|
358
|
+
border-radius: 5px;
|
|
359
|
+
}
|
|
360
|
+
.leaflet-control-layers-toggle {
|
|
361
|
+
background-image: url(./images/layers.png);
|
|
362
|
+
width: 36px;
|
|
363
|
+
height: 36px;
|
|
364
|
+
}
|
|
365
|
+
.leaflet-retina .leaflet-control-layers-toggle {
|
|
366
|
+
background-image: url(./images/layers-2x.png);
|
|
367
|
+
background-size: 26px 26px;
|
|
368
|
+
}
|
|
369
|
+
.leaflet-touch .leaflet-control-layers-toggle {
|
|
370
|
+
width: 44px;
|
|
371
|
+
height: 44px;
|
|
372
|
+
}
|
|
373
|
+
.leaflet-control-layers .leaflet-control-layers-list,
|
|
374
|
+
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
|
|
375
|
+
display: none;
|
|
376
|
+
}
|
|
377
|
+
.leaflet-control-layers-expanded .leaflet-control-layers-list {
|
|
378
|
+
display: block;
|
|
379
|
+
position: relative;
|
|
380
|
+
}
|
|
381
|
+
.leaflet-control-layers-expanded {
|
|
382
|
+
padding: 6px 10px 6px 6px;
|
|
383
|
+
color: #333;
|
|
384
|
+
background: #fff;
|
|
385
|
+
}
|
|
386
|
+
.leaflet-control-layers-scrollbar {
|
|
387
|
+
overflow-y: scroll;
|
|
388
|
+
overflow-x: hidden;
|
|
389
|
+
padding-right: 5px;
|
|
390
|
+
}
|
|
391
|
+
.leaflet-control-layers-selector {
|
|
392
|
+
margin-top: 2px;
|
|
393
|
+
position: relative;
|
|
394
|
+
top: 1px;
|
|
395
|
+
}
|
|
396
|
+
.leaflet-control-layers label {
|
|
397
|
+
display: block;
|
|
398
|
+
font-size: 13px;
|
|
399
|
+
font-size: 1.08333em;
|
|
400
|
+
}
|
|
401
|
+
.leaflet-control-layers-separator {
|
|
402
|
+
height: 0;
|
|
403
|
+
border-top: 1px solid #ddd;
|
|
404
|
+
margin: 5px -10px 5px -6px;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
/* Default icon URLs */
|
|
408
|
+
.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */
|
|
409
|
+
background-image: url(./images/marker-icon.png);
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
/* attribution and scale controls */
|
|
414
|
+
|
|
415
|
+
.leaflet-container .leaflet-control-attribution {
|
|
416
|
+
background: #fff;
|
|
417
|
+
background: rgba(255, 255, 255, 0.8);
|
|
418
|
+
margin: 0;
|
|
419
|
+
}
|
|
420
|
+
.leaflet-control-attribution,
|
|
421
|
+
.leaflet-control-scale-line {
|
|
422
|
+
padding: 0 5px;
|
|
423
|
+
color: #333;
|
|
424
|
+
line-height: 1.4;
|
|
425
|
+
}
|
|
426
|
+
.leaflet-control-attribution a {
|
|
427
|
+
text-decoration: none;
|
|
428
|
+
}
|
|
429
|
+
.leaflet-control-attribution a:hover,
|
|
430
|
+
.leaflet-control-attribution a:focus {
|
|
431
|
+
text-decoration: underline;
|
|
432
|
+
}
|
|
433
|
+
.leaflet-attribution-flag {
|
|
434
|
+
display: inline !important;
|
|
435
|
+
vertical-align: baseline !important;
|
|
436
|
+
width: 1em;
|
|
437
|
+
height: 0.6669em;
|
|
438
|
+
}
|
|
439
|
+
.leaflet-left .leaflet-control-scale {
|
|
440
|
+
margin-left: 5px;
|
|
441
|
+
}
|
|
442
|
+
.leaflet-bottom .leaflet-control-scale {
|
|
443
|
+
margin-bottom: 5px;
|
|
444
|
+
}
|
|
445
|
+
.leaflet-control-scale-line {
|
|
446
|
+
border: 2px solid #777;
|
|
447
|
+
border-top: none;
|
|
448
|
+
line-height: 1.1;
|
|
449
|
+
padding: 2px 5px 1px;
|
|
450
|
+
white-space: nowrap;
|
|
451
|
+
-moz-box-sizing: border-box;
|
|
452
|
+
box-sizing: border-box;
|
|
453
|
+
background: rgba(255, 255, 255, 0.8);
|
|
454
|
+
text-shadow: 1px 1px #fff;
|
|
455
|
+
}
|
|
456
|
+
.leaflet-control-scale-line:not(:first-child) {
|
|
457
|
+
border-top: 2px solid #777;
|
|
458
|
+
border-bottom: none;
|
|
459
|
+
margin-top: -2px;
|
|
460
|
+
}
|
|
461
|
+
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
|
|
462
|
+
border-bottom: 2px solid #777;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
.leaflet-touch .leaflet-control-attribution,
|
|
466
|
+
.leaflet-touch .leaflet-control-layers,
|
|
467
|
+
.leaflet-touch .leaflet-bar {
|
|
468
|
+
box-shadow: none;
|
|
469
|
+
}
|
|
470
|
+
.leaflet-touch .leaflet-control-layers,
|
|
471
|
+
.leaflet-touch .leaflet-bar {
|
|
472
|
+
border: 2px solid rgba(0,0,0,0.2);
|
|
473
|
+
background-clip: padding-box;
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
|
|
477
|
+
/* popup */
|
|
478
|
+
|
|
479
|
+
.leaflet-popup {
|
|
480
|
+
position: absolute;
|
|
481
|
+
text-align: center;
|
|
482
|
+
margin-bottom: 20px;
|
|
483
|
+
}
|
|
484
|
+
.leaflet-popup-content-wrapper {
|
|
485
|
+
padding: 1px;
|
|
486
|
+
text-align: left;
|
|
487
|
+
border-radius: 12px;
|
|
488
|
+
}
|
|
489
|
+
.leaflet-popup-content {
|
|
490
|
+
margin: 13px 24px 13px 20px;
|
|
491
|
+
line-height: 1.3;
|
|
492
|
+
font-size: 13px;
|
|
493
|
+
font-size: 1.08333em;
|
|
494
|
+
min-height: 1px;
|
|
495
|
+
}
|
|
496
|
+
.leaflet-popup-content p {
|
|
497
|
+
margin: 17px 0;
|
|
498
|
+
margin: 1.3em 0;
|
|
499
|
+
}
|
|
500
|
+
.leaflet-popup-tip-container {
|
|
501
|
+
width: 40px;
|
|
502
|
+
height: 20px;
|
|
503
|
+
position: absolute;
|
|
504
|
+
left: 50%;
|
|
505
|
+
margin-top: -1px;
|
|
506
|
+
margin-left: -20px;
|
|
507
|
+
overflow: hidden;
|
|
508
|
+
pointer-events: none;
|
|
509
|
+
}
|
|
510
|
+
.leaflet-popup-tip {
|
|
511
|
+
width: 17px;
|
|
512
|
+
height: 17px;
|
|
513
|
+
padding: 1px;
|
|
514
|
+
|
|
515
|
+
margin: -10px auto 0;
|
|
516
|
+
pointer-events: auto;
|
|
517
|
+
|
|
518
|
+
-webkit-transform: rotate(45deg);
|
|
519
|
+
-moz-transform: rotate(45deg);
|
|
520
|
+
-ms-transform: rotate(45deg);
|
|
521
|
+
transform: rotate(45deg);
|
|
522
|
+
}
|
|
523
|
+
.leaflet-popup-content-wrapper,
|
|
524
|
+
.leaflet-popup-tip {
|
|
525
|
+
background: white;
|
|
526
|
+
color: #333;
|
|
527
|
+
box-shadow: 0 3px 14px rgba(0,0,0,0.4);
|
|
528
|
+
}
|
|
529
|
+
.leaflet-container a.leaflet-popup-close-button {
|
|
530
|
+
position: absolute;
|
|
531
|
+
top: 0;
|
|
532
|
+
right: 0;
|
|
533
|
+
border: none;
|
|
534
|
+
text-align: center;
|
|
535
|
+
width: 24px;
|
|
536
|
+
height: 24px;
|
|
537
|
+
font: 16px/24px Tahoma, Verdana, sans-serif;
|
|
538
|
+
color: #757575;
|
|
539
|
+
text-decoration: none;
|
|
540
|
+
background: transparent;
|
|
541
|
+
}
|
|
542
|
+
.leaflet-container a.leaflet-popup-close-button:hover,
|
|
543
|
+
.leaflet-container a.leaflet-popup-close-button:focus {
|
|
544
|
+
color: #585858;
|
|
545
|
+
}
|
|
546
|
+
.leaflet-popup-scrolled {
|
|
547
|
+
overflow: auto;
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
.leaflet-oldie .leaflet-popup-content-wrapper {
|
|
551
|
+
-ms-zoom: 1;
|
|
552
|
+
}
|
|
553
|
+
.leaflet-oldie .leaflet-popup-tip {
|
|
554
|
+
width: 24px;
|
|
555
|
+
margin: 0 auto;
|
|
556
|
+
|
|
557
|
+
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
|
|
558
|
+
filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
.leaflet-oldie .leaflet-control-zoom,
|
|
562
|
+
.leaflet-oldie .leaflet-control-layers,
|
|
563
|
+
.leaflet-oldie .leaflet-popup-content-wrapper,
|
|
564
|
+
.leaflet-oldie .leaflet-popup-tip {
|
|
565
|
+
border: 1px solid #999;
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
|
|
569
|
+
/* div icon */
|
|
570
|
+
|
|
571
|
+
.leaflet-div-icon {
|
|
572
|
+
background: #fff;
|
|
573
|
+
border: 1px solid #666;
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
|
|
577
|
+
/* Tooltip */
|
|
578
|
+
/* Base styles for the element that has a tooltip */
|
|
579
|
+
.leaflet-tooltip {
|
|
580
|
+
position: absolute;
|
|
581
|
+
padding: 6px;
|
|
582
|
+
background-color: #fff;
|
|
583
|
+
border: 1px solid #fff;
|
|
584
|
+
border-radius: 3px;
|
|
585
|
+
color: #222;
|
|
586
|
+
white-space: nowrap;
|
|
587
|
+
-webkit-user-select: none;
|
|
588
|
+
-moz-user-select: none;
|
|
589
|
+
-ms-user-select: none;
|
|
590
|
+
user-select: none;
|
|
591
|
+
pointer-events: none;
|
|
592
|
+
box-shadow: 0 1px 3px rgba(0,0,0,0.4);
|
|
593
|
+
}
|
|
594
|
+
.leaflet-tooltip.leaflet-interactive {
|
|
595
|
+
cursor: pointer;
|
|
596
|
+
pointer-events: auto;
|
|
597
|
+
}
|
|
598
|
+
.leaflet-tooltip-top:before,
|
|
599
|
+
.leaflet-tooltip-bottom:before,
|
|
600
|
+
.leaflet-tooltip-left:before,
|
|
601
|
+
.leaflet-tooltip-right:before {
|
|
602
|
+
position: absolute;
|
|
603
|
+
pointer-events: none;
|
|
604
|
+
border: 6px solid transparent;
|
|
605
|
+
background: transparent;
|
|
606
|
+
content: "";
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
/* Directions */
|
|
610
|
+
|
|
611
|
+
.leaflet-tooltip-bottom {
|
|
612
|
+
margin-top: 6px;
|
|
613
|
+
}
|
|
614
|
+
.leaflet-tooltip-top {
|
|
615
|
+
margin-top: -6px;
|
|
616
|
+
}
|
|
617
|
+
.leaflet-tooltip-bottom:before,
|
|
618
|
+
.leaflet-tooltip-top:before {
|
|
619
|
+
left: 50%;
|
|
620
|
+
margin-left: -6px;
|
|
621
|
+
}
|
|
622
|
+
.leaflet-tooltip-top:before {
|
|
623
|
+
bottom: 0;
|
|
624
|
+
margin-bottom: -12px;
|
|
625
|
+
border-top-color: #fff;
|
|
626
|
+
}
|
|
627
|
+
.leaflet-tooltip-bottom:before {
|
|
628
|
+
top: 0;
|
|
629
|
+
margin-top: -12px;
|
|
630
|
+
margin-left: -6px;
|
|
631
|
+
border-bottom-color: #fff;
|
|
632
|
+
}
|
|
633
|
+
.leaflet-tooltip-left {
|
|
634
|
+
margin-left: -6px;
|
|
635
|
+
}
|
|
636
|
+
.leaflet-tooltip-right {
|
|
637
|
+
margin-left: 6px;
|
|
638
|
+
}
|
|
639
|
+
.leaflet-tooltip-left:before,
|
|
640
|
+
.leaflet-tooltip-right:before {
|
|
641
|
+
top: 50%;
|
|
642
|
+
margin-top: -6px;
|
|
643
|
+
}
|
|
644
|
+
.leaflet-tooltip-left:before {
|
|
645
|
+
right: 0;
|
|
646
|
+
margin-right: -12px;
|
|
647
|
+
border-left-color: #fff;
|
|
648
|
+
}
|
|
649
|
+
.leaflet-tooltip-right:before {
|
|
650
|
+
left: 0;
|
|
651
|
+
margin-left: -12px;
|
|
652
|
+
border-right-color: #fff;
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
/* Printing */
|
|
656
|
+
|
|
657
|
+
@media print {
|
|
658
|
+
/* Prevent printers from removing background-images of controls. */
|
|
659
|
+
.leaflet-control {
|
|
660
|
+
-webkit-print-color-adjust: exact;
|
|
661
|
+
print-color-adjust: exact;
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
|
|
666
|
+
|
|
667
|
+
/* Seamless tile rendering - removes borders and gaps between tiles */
|
|
668
|
+
.seamless-tiles img,
|
|
669
|
+
.leaflet-tile {
|
|
670
|
+
border: none !important;
|
|
671
|
+
outline: none !important;
|
|
672
|
+
margin: 0 !important;
|
|
673
|
+
padding: 0 !important;
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
.leaflet-layer {
|
|
677
|
+
border: none !important;
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
/* Marker tooltip alignment */
|
|
681
|
+
.edgepdf-marker-tooltip {
|
|
682
|
+
text-align: center;
|
|
683
|
+
white-space: nowrap;
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
/* Center the tooltip arrow */
|
|
687
|
+
.leaflet-tooltip-top.edgepdf-marker-tooltip::before,
|
|
688
|
+
.leaflet-tooltip-bottom.edgepdf-marker-tooltip::before {
|
|
689
|
+
left: 50% !important;
|
|
690
|
+
margin-left: -8px !important;
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
.leaflet-tooltip-left.edgepdf-marker-tooltip::before,
|
|
694
|
+
.leaflet-tooltip-right.edgepdf-marker-tooltip::before {
|
|
695
|
+
top: 50% !important;
|
|
696
|
+
margin-top: -8px !important;
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
/* Marker popup action buttons */
|
|
700
|
+
.edgepdf-marker-popup-actions {
|
|
701
|
+
display: flex;
|
|
702
|
+
gap: 8px;
|
|
703
|
+
margin-top: 12px;
|
|
704
|
+
padding-top: 12px;
|
|
705
|
+
border-top: 1px solid #e0e0e0;
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
.edgepdf-marker-popup-edit,
|
|
709
|
+
.edgepdf-marker-popup-delete {
|
|
710
|
+
flex: 1;
|
|
711
|
+
padding: 6px 12px;
|
|
712
|
+
border: 1px solid #ccc;
|
|
713
|
+
border-radius: 4px;
|
|
714
|
+
background-color: #fff;
|
|
715
|
+
color: #333;
|
|
716
|
+
cursor: pointer;
|
|
717
|
+
font-size: 14px;
|
|
718
|
+
transition: all 0.2s ease;
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
.edgepdf-marker-popup-edit:hover {
|
|
722
|
+
background-color: #f0f0f0;
|
|
723
|
+
border-color: #999;
|
|
724
|
+
}
|
|
725
|
+
|
|
726
|
+
.edgepdf-marker-popup-delete {
|
|
727
|
+
color: #d32f2f;
|
|
728
|
+
border-color: #d32f2f;
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
.edgepdf-marker-popup-delete:hover {
|
|
732
|
+
background-color: #ffebee;
|
|
733
|
+
border-color: #b71c1c;
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
/* Edit popup modal */
|
|
737
|
+
.edgepdf-marker-edit-popup {
|
|
738
|
+
position: fixed;
|
|
739
|
+
top: 0;
|
|
740
|
+
left: 0;
|
|
741
|
+
right: 0;
|
|
742
|
+
bottom: 0;
|
|
743
|
+
z-index: 100000;
|
|
744
|
+
display: flex;
|
|
745
|
+
align-items: center;
|
|
746
|
+
justify-content: center;
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
.edgepdf-marker-edit-popup-overlay {
|
|
750
|
+
position: absolute;
|
|
751
|
+
top: 0;
|
|
752
|
+
left: 0;
|
|
753
|
+
right: 0;
|
|
754
|
+
bottom: 0;
|
|
755
|
+
background-color: rgba(0, 0, 0, 0.5);
|
|
756
|
+
cursor: pointer;
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
.edgepdf-marker-edit-popup-content {
|
|
760
|
+
position: relative;
|
|
761
|
+
background-color: #fff;
|
|
762
|
+
border-radius: 8px;
|
|
763
|
+
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
|
|
764
|
+
width: 90%;
|
|
765
|
+
max-width: 500px;
|
|
766
|
+
max-height: 90vh;
|
|
767
|
+
overflow: auto;
|
|
768
|
+
z-index: 100001;
|
|
769
|
+
}
|
|
770
|
+
|
|
771
|
+
.edgepdf-marker-edit-popup-header {
|
|
772
|
+
display: flex;
|
|
773
|
+
justify-content: space-between;
|
|
774
|
+
align-items: center;
|
|
775
|
+
padding: 16px 20px;
|
|
776
|
+
border-bottom: 1px solid #e0e0e0;
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
.edgepdf-marker-edit-popup-header h3 {
|
|
780
|
+
margin: 0;
|
|
781
|
+
font-size: 18px;
|
|
782
|
+
font-weight: 600;
|
|
783
|
+
color: #333;
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
.edgepdf-marker-edit-popup-close {
|
|
787
|
+
background: none;
|
|
788
|
+
border: none;
|
|
789
|
+
font-size: 24px;
|
|
790
|
+
line-height: 1;
|
|
791
|
+
color: #666;
|
|
792
|
+
cursor: pointer;
|
|
793
|
+
padding: 0;
|
|
794
|
+
width: 32px;
|
|
795
|
+
height: 32px;
|
|
796
|
+
display: flex;
|
|
797
|
+
align-items: center;
|
|
798
|
+
justify-content: center;
|
|
799
|
+
border-radius: 4px;
|
|
800
|
+
transition: background-color 0.2s ease;
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
.edgepdf-marker-edit-popup-close:hover {
|
|
804
|
+
background-color: #f0f0f0;
|
|
805
|
+
color: #333;
|
|
806
|
+
}
|
|
807
|
+
|
|
808
|
+
.edgepdf-marker-edit-popup-body {
|
|
809
|
+
padding: 20px;
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
.edgepdf-marker-edit-field {
|
|
813
|
+
margin-bottom: 16px;
|
|
814
|
+
}
|
|
815
|
+
|
|
816
|
+
.edgepdf-marker-edit-field:last-child {
|
|
817
|
+
margin-bottom: 0;
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
.edgepdf-marker-edit-field label {
|
|
821
|
+
display: block;
|
|
822
|
+
margin-bottom: 8px;
|
|
823
|
+
font-size: 14px;
|
|
824
|
+
font-weight: 500;
|
|
825
|
+
color: #333;
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
.edgepdf-marker-edit-input {
|
|
829
|
+
width: 100%;
|
|
830
|
+
padding: 10px 12px;
|
|
831
|
+
border: 1px solid #ccc;
|
|
832
|
+
border-radius: 4px;
|
|
833
|
+
font-size: 14px;
|
|
834
|
+
box-sizing: border-box;
|
|
835
|
+
transition: border-color 0.2s ease;
|
|
836
|
+
}
|
|
837
|
+
|
|
838
|
+
.edgepdf-marker-edit-input:focus {
|
|
839
|
+
outline: none;
|
|
840
|
+
border-color: #1976d2;
|
|
841
|
+
box-shadow: 0 0 0 2px rgba(25, 118, 210, 0.1);
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
.edgepdf-marker-edit-popup-footer {
|
|
845
|
+
display: flex;
|
|
846
|
+
justify-content: flex-end;
|
|
847
|
+
gap: 12px;
|
|
848
|
+
padding: 16px 20px;
|
|
849
|
+
border-top: 1px solid #e0e0e0;
|
|
850
|
+
}
|
|
851
|
+
|
|
852
|
+
.edgepdf-marker-edit-button {
|
|
853
|
+
padding: 10px 20px;
|
|
854
|
+
border: 1px solid #ccc;
|
|
855
|
+
border-radius: 4px;
|
|
856
|
+
background-color: #fff;
|
|
857
|
+
color: #333;
|
|
858
|
+
cursor: pointer;
|
|
859
|
+
font-size: 14px;
|
|
860
|
+
font-weight: 500;
|
|
861
|
+
transition: all 0.2s ease;
|
|
862
|
+
}
|
|
863
|
+
|
|
864
|
+
.edgepdf-marker-edit-button-cancel:hover {
|
|
865
|
+
background-color: #f0f0f0;
|
|
866
|
+
border-color: #999;
|
|
867
|
+
}
|
|
868
|
+
|
|
869
|
+
.edgepdf-marker-edit-button-save {
|
|
870
|
+
background-color: #1976d2;
|
|
871
|
+
color: #fff;
|
|
872
|
+
border-color: #1976d2;
|
|
873
|
+
}
|
|
874
|
+
|
|
875
|
+
.edgepdf-marker-edit-button-save:hover {
|
|
876
|
+
background-color: #1565c0;
|
|
877
|
+
border-color: #1565c0;
|
|
878
|
+
}
|
|
879
|
+
|
|
880
|
+
/* Delete popup modal - reuses most edit popup styles */
|
|
881
|
+
.edgepdf-marker-delete-popup {
|
|
882
|
+
position: fixed;
|
|
883
|
+
top: 0;
|
|
884
|
+
left: 0;
|
|
885
|
+
right: 0;
|
|
886
|
+
bottom: 0;
|
|
887
|
+
z-index: 100000;
|
|
888
|
+
display: flex;
|
|
889
|
+
align-items: center;
|
|
890
|
+
justify-content: center;
|
|
891
|
+
}
|
|
892
|
+
|
|
893
|
+
.edgepdf-marker-delete-popup-overlay {
|
|
894
|
+
position: absolute;
|
|
895
|
+
top: 0;
|
|
896
|
+
left: 0;
|
|
897
|
+
right: 0;
|
|
898
|
+
bottom: 0;
|
|
899
|
+
background-color: rgba(0, 0, 0, 0.5);
|
|
900
|
+
cursor: pointer;
|
|
901
|
+
}
|
|
902
|
+
|
|
903
|
+
.edgepdf-marker-delete-popup-content {
|
|
904
|
+
position: relative;
|
|
905
|
+
background-color: #fff;
|
|
906
|
+
border-radius: 8px;
|
|
907
|
+
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
|
|
908
|
+
width: 90%;
|
|
909
|
+
max-width: 500px;
|
|
910
|
+
max-height: 90vh;
|
|
911
|
+
overflow: auto;
|
|
912
|
+
z-index: 100001;
|
|
913
|
+
}
|
|
914
|
+
|
|
915
|
+
.edgepdf-marker-delete-popup-header {
|
|
916
|
+
display: flex;
|
|
917
|
+
justify-content: space-between;
|
|
918
|
+
align-items: center;
|
|
919
|
+
padding: 16px 20px;
|
|
920
|
+
border-bottom: 1px solid #e0e0e0;
|
|
921
|
+
}
|
|
922
|
+
|
|
923
|
+
.edgepdf-marker-delete-popup-header h3 {
|
|
924
|
+
margin: 0;
|
|
925
|
+
font-size: 18px;
|
|
926
|
+
font-weight: 600;
|
|
927
|
+
color: #333;
|
|
928
|
+
}
|
|
929
|
+
|
|
930
|
+
.edgepdf-marker-delete-popup-close {
|
|
931
|
+
background: none;
|
|
932
|
+
border: none;
|
|
933
|
+
font-size: 24px;
|
|
934
|
+
line-height: 1;
|
|
935
|
+
color: #666;
|
|
936
|
+
cursor: pointer;
|
|
937
|
+
padding: 0;
|
|
938
|
+
width: 32px;
|
|
939
|
+
height: 32px;
|
|
940
|
+
display: flex;
|
|
941
|
+
align-items: center;
|
|
942
|
+
justify-content: center;
|
|
943
|
+
border-radius: 4px;
|
|
944
|
+
transition: background-color 0.2s ease;
|
|
945
|
+
}
|
|
946
|
+
|
|
947
|
+
.edgepdf-marker-delete-popup-close:hover {
|
|
948
|
+
background-color: #f0f0f0;
|
|
949
|
+
color: #333;
|
|
950
|
+
}
|
|
951
|
+
|
|
952
|
+
.edgepdf-marker-delete-popup-body {
|
|
953
|
+
padding: 20px;
|
|
954
|
+
}
|
|
955
|
+
|
|
956
|
+
.edgepdf-marker-delete-popup-body p {
|
|
957
|
+
margin: 0;
|
|
958
|
+
font-size: 14px;
|
|
959
|
+
color: #333;
|
|
960
|
+
line-height: 1.5;
|
|
961
|
+
}
|
|
962
|
+
|
|
963
|
+
.edgepdf-marker-delete-popup-body strong {
|
|
964
|
+
font-weight: 600;
|
|
965
|
+
color: #d32f2f;
|
|
966
|
+
}
|
|
967
|
+
|
|
968
|
+
.edgepdf-marker-delete-popup-footer {
|
|
969
|
+
display: flex;
|
|
970
|
+
justify-content: flex-end;
|
|
971
|
+
gap: 12px;
|
|
972
|
+
padding: 16px 20px;
|
|
973
|
+
border-top: 1px solid #e0e0e0;
|
|
974
|
+
}
|
|
975
|
+
|
|
976
|
+
.edgepdf-marker-delete-button {
|
|
977
|
+
padding: 10px 20px;
|
|
978
|
+
border: 1px solid #ccc;
|
|
979
|
+
border-radius: 4px;
|
|
980
|
+
background-color: #fff;
|
|
981
|
+
color: #333;
|
|
982
|
+
cursor: pointer;
|
|
983
|
+
font-size: 14px;
|
|
984
|
+
font-weight: 500;
|
|
985
|
+
transition: all 0.2s ease;
|
|
986
|
+
}
|
|
987
|
+
|
|
988
|
+
.edgepdf-marker-delete-button-cancel:hover {
|
|
989
|
+
background-color: #f0f0f0;
|
|
990
|
+
border-color: #999;
|
|
991
|
+
}
|
|
992
|
+
|
|
993
|
+
.edgepdf-marker-delete-button-confirm {
|
|
994
|
+
background-color: #d32f2f;
|
|
995
|
+
color: #fff;
|
|
996
|
+
border-color: #d32f2f;
|
|
997
|
+
}
|
|
998
|
+
|
|
999
|
+
.edgepdf-marker-delete-button-confirm:hover {
|
|
1000
|
+
background-color: #b71c1c;
|
|
1001
|
+
border-color: #b71c1c;
|
|
1002
|
+
}
|
|
1003
|
+
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@edgepdf/viewer-react",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "EdgePDF Viewer - React components for viewing PDF documents with interactive markers and zoom controls",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -32,7 +32,8 @@
|
|
|
32
32
|
"import": "./dist/index.js",
|
|
33
33
|
"require": "./dist/index.js",
|
|
34
34
|
"default": "./dist/index.js"
|
|
35
|
-
}
|
|
35
|
+
},
|
|
36
|
+
"./styles.css": "./dist/styles.css"
|
|
36
37
|
},
|
|
37
38
|
"sideEffects": [
|
|
38
39
|
"./dist/index.js",
|
|
@@ -69,6 +70,7 @@
|
|
|
69
70
|
"@edgepdf/testing-utils": "workspace:*"
|
|
70
71
|
},
|
|
71
72
|
"peerDependencies": {
|
|
73
|
+
"@edgepdf/viewer-js": "^0.0.4",
|
|
72
74
|
"react": "^18.0.0",
|
|
73
75
|
"react-dom": "^18.0.0"
|
|
74
76
|
}
|