@edgepdf/viewer-js 0.0.30 → 0.0.31
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 +87 -45
- package/dist/lib/coordinate-mapper.d.ts +3 -3
- package/dist/lib/coordinate-mapper.d.ts.map +1 -1
- package/dist/lib/leaflet-loader.d.ts +26 -0
- package/dist/lib/leaflet-loader.d.ts.map +1 -0
- package/dist/lib/marker-manager.d.ts +10 -6
- package/dist/lib/marker-manager.d.ts.map +1 -1
- package/dist/lib/tile-layer-manager.d.ts +5 -5
- package/dist/lib/tile-layer-manager.d.ts.map +1 -1
- package/dist/lib/viewer.d.ts +4 -4
- package/dist/lib/viewer.d.ts.map +1 -1
- package/dist/lib/zoom-controller.d.ts +2 -2
- package/dist/lib/zoom-controller.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -9575,11 +9575,30 @@ var require_leaflet_src = __commonJS({
|
|
|
9575
9575
|
}
|
|
9576
9576
|
});
|
|
9577
9577
|
|
|
9578
|
-
// packages/viewer-js/src/lib/
|
|
9579
|
-
var
|
|
9580
|
-
|
|
9581
|
-
|
|
9582
|
-
|
|
9578
|
+
// packages/viewer-js/src/lib/leaflet-loader.ts
|
|
9579
|
+
var L2 = null;
|
|
9580
|
+
var leafletLoadPromise = null;
|
|
9581
|
+
async function loadLeaflet() {
|
|
9582
|
+
if (L2) {
|
|
9583
|
+
return L2;
|
|
9584
|
+
}
|
|
9585
|
+
if (leafletLoadPromise) {
|
|
9586
|
+
return leafletLoadPromise;
|
|
9587
|
+
}
|
|
9588
|
+
if (typeof window === "undefined" || typeof document === "undefined") {
|
|
9589
|
+
throw new Error(
|
|
9590
|
+
"Leaflet requires a browser environment. This code can only be used in the browser."
|
|
9591
|
+
);
|
|
9592
|
+
}
|
|
9593
|
+
leafletLoadPromise = Promise.resolve().then(() => __toESM(require_leaflet_src(), 1)).then((leafletModule) => {
|
|
9594
|
+
L2 = leafletModule.default;
|
|
9595
|
+
return L2;
|
|
9596
|
+
});
|
|
9597
|
+
return leafletLoadPromise;
|
|
9598
|
+
}
|
|
9599
|
+
function getLeaflet() {
|
|
9600
|
+
return L2;
|
|
9601
|
+
}
|
|
9583
9602
|
|
|
9584
9603
|
// packages/utils/dist/index.js
|
|
9585
9604
|
var S3_PREFIX = {
|
|
@@ -9663,12 +9682,13 @@ var TileLayerManager = class {
|
|
|
9663
9682
|
*
|
|
9664
9683
|
* @throws {Error} If tile layer creation fails
|
|
9665
9684
|
*/
|
|
9666
|
-
createTileLayer(map) {
|
|
9685
|
+
async createTileLayer(map) {
|
|
9667
9686
|
if (this.tileLayer) {
|
|
9668
9687
|
console.warn("Tile layer already created. Use removeTileLayer() first.");
|
|
9669
9688
|
return this.tileLayer;
|
|
9670
9689
|
}
|
|
9671
9690
|
try {
|
|
9691
|
+
const L3 = getLeaflet() || await loadLeaflet();
|
|
9672
9692
|
const { imageInfo, tileUrl, keepBuffer, updateInterval } = this.config;
|
|
9673
9693
|
const bounds = this.calculateTileBounds();
|
|
9674
9694
|
const tileLayerOptions = {
|
|
@@ -9691,7 +9711,7 @@ var TileLayerManager = class {
|
|
|
9691
9711
|
className: "seamless-tiles"
|
|
9692
9712
|
// CSS class for styling
|
|
9693
9713
|
};
|
|
9694
|
-
this.tileLayer =
|
|
9714
|
+
this.tileLayer = L3.tileLayer(tileUrl, tileLayerOptions);
|
|
9695
9715
|
if (map) {
|
|
9696
9716
|
this.setupEventListeners(map);
|
|
9697
9717
|
}
|
|
@@ -9805,7 +9825,6 @@ var TileLayerManager = class {
|
|
|
9805
9825
|
};
|
|
9806
9826
|
|
|
9807
9827
|
// packages/viewer-js/src/lib/coordinate-mapper.ts
|
|
9808
|
-
var import_leaflet2 = __toESM(require_leaflet_src(), 1);
|
|
9809
9828
|
var CoordinateMapper = class {
|
|
9810
9829
|
imageInfo;
|
|
9811
9830
|
/**
|
|
@@ -9945,13 +9964,14 @@ var CoordinateMapper = class {
|
|
|
9945
9964
|
* // [[0, 0], [512, 512]] for minZoom 0 with tileSize 256
|
|
9946
9965
|
* ```
|
|
9947
9966
|
*/
|
|
9948
|
-
calculateMapBounds() {
|
|
9967
|
+
async calculateMapBounds() {
|
|
9968
|
+
const L3 = getLeaflet() || await loadLeaflet();
|
|
9949
9969
|
const tileSize = this.imageInfo.tileSize || 256;
|
|
9950
9970
|
const minZoom = this.imageInfo.minZoom || 0;
|
|
9951
9971
|
const gridSize = Math.pow(2, minZoom + 1);
|
|
9952
9972
|
const boundsWidth = gridSize * tileSize;
|
|
9953
9973
|
const boundsHeight = gridSize * tileSize;
|
|
9954
|
-
return
|
|
9974
|
+
return L3.latLngBounds([0, 0], [boundsHeight, boundsWidth]);
|
|
9955
9975
|
}
|
|
9956
9976
|
/**
|
|
9957
9977
|
* Validates Leaflet coordinates and checks bounds
|
|
@@ -10009,9 +10029,10 @@ var CoordinateMapper = class {
|
|
|
10009
10029
|
*
|
|
10010
10030
|
* @returns Custom CRS instance
|
|
10011
10031
|
*/
|
|
10012
|
-
createCustomCRS() {
|
|
10013
|
-
|
|
10014
|
-
|
|
10032
|
+
async createCustomCRS() {
|
|
10033
|
+
const L3 = getLeaflet() || await loadLeaflet();
|
|
10034
|
+
return L3.extend({}, L3.CRS.Simple, {
|
|
10035
|
+
transformation: new L3.Transformation(1, 0, 1, 0)
|
|
10015
10036
|
});
|
|
10016
10037
|
}
|
|
10017
10038
|
/**
|
|
@@ -10390,9 +10411,6 @@ var ZoomController = class {
|
|
|
10390
10411
|
}
|
|
10391
10412
|
};
|
|
10392
10413
|
|
|
10393
|
-
// packages/viewer-js/src/lib/marker-manager.ts
|
|
10394
|
-
var import_leaflet3 = __toESM(require_leaflet_src(), 1);
|
|
10395
|
-
|
|
10396
10414
|
// packages/viewer-js/src/lib/marker-edit-popup.ts
|
|
10397
10415
|
var currentEditPopup = null;
|
|
10398
10416
|
function createEditPopup(options) {
|
|
@@ -10624,7 +10642,7 @@ var MarkerManager = class {
|
|
|
10624
10642
|
imageInfo;
|
|
10625
10643
|
markers = /* @__PURE__ */ new Map();
|
|
10626
10644
|
leafletMarkers = /* @__PURE__ */ new Map();
|
|
10627
|
-
markerLayerGroup;
|
|
10645
|
+
markerLayerGroup = null;
|
|
10628
10646
|
eventListeners = /* @__PURE__ */ new Map();
|
|
10629
10647
|
selectedIds = /* @__PURE__ */ new Set();
|
|
10630
10648
|
activeMarkerId = null;
|
|
@@ -10669,7 +10687,16 @@ var MarkerManager = class {
|
|
|
10669
10687
|
this.map = options.map;
|
|
10670
10688
|
this.coordinateMapper = options.coordinateMapper;
|
|
10671
10689
|
this.imageInfo = options.imageInfo;
|
|
10672
|
-
|
|
10690
|
+
}
|
|
10691
|
+
/**
|
|
10692
|
+
* Initializes the marker layer group (called after Leaflet is loaded)
|
|
10693
|
+
*/
|
|
10694
|
+
async ensureLayerGroup() {
|
|
10695
|
+
if (this.markerLayerGroup) {
|
|
10696
|
+
return;
|
|
10697
|
+
}
|
|
10698
|
+
const L3 = getLeaflet() || await loadLeaflet();
|
|
10699
|
+
this.markerLayerGroup = L3.layerGroup().addTo(this.map);
|
|
10673
10700
|
}
|
|
10674
10701
|
/**
|
|
10675
10702
|
* Creates a new marker from coordinates
|
|
@@ -10692,7 +10719,7 @@ var MarkerManager = class {
|
|
|
10692
10719
|
* @throws {Error} If neither position nor imageCoords is provided
|
|
10693
10720
|
* @throws {Error} If coordinates are invalid or out of bounds
|
|
10694
10721
|
*/
|
|
10695
|
-
createMarker(options) {
|
|
10722
|
+
async createMarker(options) {
|
|
10696
10723
|
if (!options.position && !options.imageCoords) {
|
|
10697
10724
|
throw new Error("Either position or imageCoords must be provided");
|
|
10698
10725
|
}
|
|
@@ -10738,10 +10765,11 @@ var MarkerManager = class {
|
|
|
10738
10765
|
deletable: options.deletable
|
|
10739
10766
|
};
|
|
10740
10767
|
this.validateMarker(marker);
|
|
10741
|
-
const leafletMarker = this.createLeafletMarker(marker);
|
|
10768
|
+
const leafletMarker = await this.createLeafletMarker(marker);
|
|
10742
10769
|
this.setupMarkerInteractions(leafletMarker, marker);
|
|
10743
10770
|
this.markers.set(id, marker);
|
|
10744
10771
|
this.leafletMarkers.set(id, leafletMarker);
|
|
10772
|
+
await this.ensureLayerGroup();
|
|
10745
10773
|
this.markerLayerGroup.addLayer(leafletMarker);
|
|
10746
10774
|
return marker;
|
|
10747
10775
|
}
|
|
@@ -10883,7 +10911,9 @@ var MarkerManager = class {
|
|
|
10883
10911
|
if (!marker || !leafletMarker) {
|
|
10884
10912
|
return false;
|
|
10885
10913
|
}
|
|
10886
|
-
this.markerLayerGroup
|
|
10914
|
+
if (this.markerLayerGroup) {
|
|
10915
|
+
this.markerLayerGroup.removeLayer(leafletMarker);
|
|
10916
|
+
}
|
|
10887
10917
|
this.removeActiveMarkerOverlay(id);
|
|
10888
10918
|
if (this.activeMarkerId === id) {
|
|
10889
10919
|
this.setActiveMarker(null);
|
|
@@ -10896,7 +10926,9 @@ var MarkerManager = class {
|
|
|
10896
10926
|
* Removes all markers
|
|
10897
10927
|
*/
|
|
10898
10928
|
removeAllMarkers() {
|
|
10899
|
-
this.markerLayerGroup
|
|
10929
|
+
if (this.markerLayerGroup) {
|
|
10930
|
+
this.markerLayerGroup.clearLayers();
|
|
10931
|
+
}
|
|
10900
10932
|
this.markers.clear();
|
|
10901
10933
|
this.leafletMarkers.clear();
|
|
10902
10934
|
this.activeMarkerOverlays.clear();
|
|
@@ -10941,7 +10973,7 @@ var MarkerManager = class {
|
|
|
10941
10973
|
* @param updates - Partial marker properties to update
|
|
10942
10974
|
* @returns True if marker was updated, false if not found
|
|
10943
10975
|
*/
|
|
10944
|
-
updateMarker(id, updates) {
|
|
10976
|
+
async updateMarker(id, updates) {
|
|
10945
10977
|
const marker = this.markers.get(id);
|
|
10946
10978
|
const leafletMarker = this.leafletMarkers.get(id);
|
|
10947
10979
|
if (!marker || !leafletMarker) {
|
|
@@ -10964,7 +10996,7 @@ var MarkerManager = class {
|
|
|
10964
10996
|
}
|
|
10965
10997
|
if (updates.iconType !== void 0) {
|
|
10966
10998
|
marker.iconType = updates.iconType;
|
|
10967
|
-
const newIcon = this.createCustomIcon(updates.iconType);
|
|
10999
|
+
const newIcon = await this.createCustomIcon(updates.iconType);
|
|
10968
11000
|
leafletMarker.setIcon(newIcon);
|
|
10969
11001
|
}
|
|
10970
11002
|
if (updates.referenceId !== void 0) {
|
|
@@ -11122,7 +11154,7 @@ var MarkerManager = class {
|
|
|
11122
11154
|
* @param id - Marker ID to set as active, or null to clear active marker
|
|
11123
11155
|
* @returns True if marker was set as active, false if not found
|
|
11124
11156
|
*/
|
|
11125
|
-
setActiveMarker(id) {
|
|
11157
|
+
async setActiveMarker(id) {
|
|
11126
11158
|
if (id === null) {
|
|
11127
11159
|
const previousActiveId = this.activeMarkerId;
|
|
11128
11160
|
this.activeMarkerId = null;
|
|
@@ -11154,7 +11186,9 @@ var MarkerManager = class {
|
|
|
11154
11186
|
leafletMarker.closePopup();
|
|
11155
11187
|
}
|
|
11156
11188
|
this.activeMarkerId = id;
|
|
11157
|
-
this.addActiveMarkerOverlay(id)
|
|
11189
|
+
this.addActiveMarkerOverlay(id).catch((error) => {
|
|
11190
|
+
console.warn("Failed to add active marker overlay:", error);
|
|
11191
|
+
});
|
|
11158
11192
|
if (this.interactionConfig.onActiveMarkerChange) {
|
|
11159
11193
|
this.interactionConfig.onActiveMarkerChange(marker);
|
|
11160
11194
|
}
|
|
@@ -11279,14 +11313,14 @@ var MarkerManager = class {
|
|
|
11279
11313
|
* @param iconType - New icon type
|
|
11280
11314
|
* @returns True if marker was updated, false if not found
|
|
11281
11315
|
*/
|
|
11282
|
-
updateMarkerIcon(id, iconType) {
|
|
11316
|
+
async updateMarkerIcon(id, iconType) {
|
|
11283
11317
|
const marker = this.markers.get(id);
|
|
11284
11318
|
const leafletMarker = this.leafletMarkers.get(id);
|
|
11285
11319
|
if (!marker || !leafletMarker) {
|
|
11286
11320
|
return false;
|
|
11287
11321
|
}
|
|
11288
11322
|
marker.iconType = iconType;
|
|
11289
|
-
const newIcon = this.createCustomIcon(iconType);
|
|
11323
|
+
const newIcon = await this.createCustomIcon(iconType);
|
|
11290
11324
|
leafletMarker.setIcon(newIcon);
|
|
11291
11325
|
return true;
|
|
11292
11326
|
}
|
|
@@ -11318,9 +11352,10 @@ var MarkerManager = class {
|
|
|
11318
11352
|
* @param iconType - Icon type to use
|
|
11319
11353
|
* @returns Leaflet icon instance
|
|
11320
11354
|
*/
|
|
11321
|
-
createCustomIcon(iconType) {
|
|
11355
|
+
async createCustomIcon(iconType) {
|
|
11356
|
+
const L3 = getLeaflet() || await loadLeaflet();
|
|
11322
11357
|
const iconUrl = `${this.iconBasePath}${iconType}.png`;
|
|
11323
|
-
return
|
|
11358
|
+
return L3.icon({
|
|
11324
11359
|
iconUrl,
|
|
11325
11360
|
iconSize: [30, 40],
|
|
11326
11361
|
// Default marker size
|
|
@@ -11340,9 +11375,11 @@ var MarkerManager = class {
|
|
|
11340
11375
|
* @param marker - Marker data
|
|
11341
11376
|
* @returns Leaflet marker instance
|
|
11342
11377
|
*/
|
|
11343
|
-
createLeafletMarker(marker) {
|
|
11378
|
+
async createLeafletMarker(marker) {
|
|
11379
|
+
const L3 = getLeaflet() || await loadLeaflet();
|
|
11380
|
+
await this.ensureLayerGroup();
|
|
11344
11381
|
const iconType = marker.iconType || "pin-gray";
|
|
11345
|
-
const customIcon = this.createCustomIcon(iconType);
|
|
11382
|
+
const customIcon = await this.createCustomIcon(iconType);
|
|
11346
11383
|
const markerOptions = {
|
|
11347
11384
|
title: marker.label,
|
|
11348
11385
|
icon: customIcon
|
|
@@ -11351,7 +11388,7 @@ var MarkerManager = class {
|
|
|
11351
11388
|
if (isDraggable) {
|
|
11352
11389
|
markerOptions.draggable = true;
|
|
11353
11390
|
}
|
|
11354
|
-
const leafletMarker =
|
|
11391
|
+
const leafletMarker = L3.marker(
|
|
11355
11392
|
[marker.position[0], marker.position[1]],
|
|
11356
11393
|
markerOptions
|
|
11357
11394
|
);
|
|
@@ -11446,13 +11483,14 @@ var MarkerManager = class {
|
|
|
11446
11483
|
*
|
|
11447
11484
|
* @param id - Marker ID
|
|
11448
11485
|
*/
|
|
11449
|
-
addActiveMarkerOverlay(id) {
|
|
11486
|
+
async addActiveMarkerOverlay(id) {
|
|
11450
11487
|
this.removeActiveMarkerOverlay(id);
|
|
11451
11488
|
const marker = this.markers.get(id);
|
|
11452
11489
|
const leafletMarker = this.leafletMarkers.get(id);
|
|
11453
11490
|
if (!marker || !leafletMarker) {
|
|
11454
11491
|
return;
|
|
11455
11492
|
}
|
|
11493
|
+
await this.ensureLayerGroup();
|
|
11456
11494
|
const overlaySize = 40;
|
|
11457
11495
|
const borderWidth = 1;
|
|
11458
11496
|
const overlayAnchorX = 20;
|
|
@@ -11468,8 +11506,9 @@ var MarkerManager = class {
|
|
|
11468
11506
|
position: relative;
|
|
11469
11507
|
"></div>
|
|
11470
11508
|
`;
|
|
11471
|
-
const
|
|
11472
|
-
|
|
11509
|
+
const L3 = getLeaflet() || await loadLeaflet();
|
|
11510
|
+
const overlay = L3.marker([marker.position[0], marker.position[1]], {
|
|
11511
|
+
icon: L3.divIcon({
|
|
11473
11512
|
html: overlayHTML,
|
|
11474
11513
|
className: "edgepdf-active-marker-overlay",
|
|
11475
11514
|
iconSize: [overlaySize, overlaySize],
|
|
@@ -11481,7 +11520,9 @@ var MarkerManager = class {
|
|
|
11481
11520
|
// Below marker but visible
|
|
11482
11521
|
});
|
|
11483
11522
|
this.activeMarkerOverlays.set(id, overlay);
|
|
11484
|
-
this.markerLayerGroup
|
|
11523
|
+
if (this.markerLayerGroup) {
|
|
11524
|
+
this.markerLayerGroup.addLayer(overlay);
|
|
11525
|
+
}
|
|
11485
11526
|
leafletMarker.on("drag", () => {
|
|
11486
11527
|
const newPos = leafletMarker.getLatLng();
|
|
11487
11528
|
overlay.setLatLng(newPos);
|
|
@@ -11494,7 +11535,7 @@ var MarkerManager = class {
|
|
|
11494
11535
|
*/
|
|
11495
11536
|
removeActiveMarkerOverlay(id) {
|
|
11496
11537
|
const overlay = this.activeMarkerOverlays.get(id);
|
|
11497
|
-
if (overlay) {
|
|
11538
|
+
if (overlay && this.markerLayerGroup) {
|
|
11498
11539
|
this.markerLayerGroup.removeLayer(overlay);
|
|
11499
11540
|
this.activeMarkerOverlays.delete(id);
|
|
11500
11541
|
}
|
|
@@ -12245,7 +12286,7 @@ var EdgePdfViewer = class {
|
|
|
12245
12286
|
*
|
|
12246
12287
|
* @throws {Error} If map initialization fails
|
|
12247
12288
|
*/
|
|
12248
|
-
initialize() {
|
|
12289
|
+
async initialize() {
|
|
12249
12290
|
if (this.map) {
|
|
12250
12291
|
console.warn(
|
|
12251
12292
|
"Map already initialized. Call dispose() before reinitializing."
|
|
@@ -12253,9 +12294,10 @@ var EdgePdfViewer = class {
|
|
|
12253
12294
|
return;
|
|
12254
12295
|
}
|
|
12255
12296
|
try {
|
|
12297
|
+
const Leaflet = await loadLeaflet();
|
|
12256
12298
|
this.coordinateMapper = new CoordinateMapper(this.config.imageInfo);
|
|
12257
|
-
const customCRS = this.coordinateMapper.createCustomCRS();
|
|
12258
|
-
const bounds = this.coordinateMapper.calculateMapBounds();
|
|
12299
|
+
const customCRS = await this.coordinateMapper.createCustomCRS();
|
|
12300
|
+
const bounds = await this.coordinateMapper.calculateMapBounds();
|
|
12259
12301
|
const imageCenter = this.coordinateMapper.getImageCenter();
|
|
12260
12302
|
const center = this.mapOptions?.center || [
|
|
12261
12303
|
imageCenter.y,
|
|
@@ -12283,11 +12325,11 @@ var EdgePdfViewer = class {
|
|
|
12283
12325
|
// Mouse wheel sensitivity
|
|
12284
12326
|
...this.mapOptions
|
|
12285
12327
|
};
|
|
12286
|
-
this.map =
|
|
12328
|
+
this.map = Leaflet.map(this.container, leafletOptions);
|
|
12287
12329
|
if (!this.mapOptions?.center && !this.mapOptions?.zoom) {
|
|
12288
12330
|
this.map.setView([imageCenter.y, imageCenter.x], initialZoom);
|
|
12289
12331
|
}
|
|
12290
|
-
this.addTileLayer();
|
|
12332
|
+
await this.addTileLayer();
|
|
12291
12333
|
this.addSeamlessTileStyles();
|
|
12292
12334
|
this.zoomController = new ZoomController({
|
|
12293
12335
|
map: this.map,
|
|
@@ -12381,7 +12423,7 @@ var EdgePdfViewer = class {
|
|
|
12381
12423
|
*
|
|
12382
12424
|
* @throws {Error} If map is not initialized or tile layer creation fails
|
|
12383
12425
|
*/
|
|
12384
|
-
addTileLayer() {
|
|
12426
|
+
async addTileLayer() {
|
|
12385
12427
|
if (!this.map) {
|
|
12386
12428
|
throw new Error("Map must be initialized before adding tile layer");
|
|
12387
12429
|
}
|
|
@@ -12390,7 +12432,7 @@ var EdgePdfViewer = class {
|
|
|
12390
12432
|
tileUrl: this.config.tileUrl,
|
|
12391
12433
|
imageInfo: this.config.imageInfo
|
|
12392
12434
|
});
|
|
12393
|
-
const tileLayer = this.tileLayerManager.createTileLayer(this.map);
|
|
12435
|
+
const tileLayer = await this.tileLayerManager.createTileLayer(this.map);
|
|
12394
12436
|
tileLayer.addTo(this.map);
|
|
12395
12437
|
console.log("Tile layer added to map successfully");
|
|
12396
12438
|
} catch (error) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type * as LeafletType from 'leaflet';
|
|
2
2
|
import type { ImageInfo, LeafletCoords, ImageCoords, CoordinateBounds } from '@edgepdf/types';
|
|
3
3
|
/**
|
|
4
4
|
* Image position information within the tile grid canvas
|
|
@@ -124,7 +124,7 @@ export declare class CoordinateMapper {
|
|
|
124
124
|
* // [[0, 0], [512, 512]] for minZoom 0 with tileSize 256
|
|
125
125
|
* ```
|
|
126
126
|
*/
|
|
127
|
-
calculateMapBounds():
|
|
127
|
+
calculateMapBounds(): Promise<LeafletType.LatLngBoundsExpression>;
|
|
128
128
|
/**
|
|
129
129
|
* Validates Leaflet coordinates and checks bounds
|
|
130
130
|
*
|
|
@@ -145,7 +145,7 @@ export declare class CoordinateMapper {
|
|
|
145
145
|
*
|
|
146
146
|
* @returns Custom CRS instance
|
|
147
147
|
*/
|
|
148
|
-
createCustomCRS():
|
|
148
|
+
createCustomCRS(): Promise<LeafletType.CRS>;
|
|
149
149
|
/**
|
|
150
150
|
* Calculates the aspect ratio of the image
|
|
151
151
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordinate-mapper.d.ts","sourceRoot":"","sources":["../../src/lib/coordinate-mapper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"coordinate-mapper.d.ts","sourceRoot":"","sources":["../../src/lib/coordinate-mapper.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,WAAW,MAAM,SAAS,CAAC;AAE5C,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EACb,WAAW,EACX,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,gBAAgB,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAY;IAE7B;;;;;;OAMG;gBACS,SAAS,EAAE,SAAS;IAchC;;;;;OAKG;IACH,sBAAsB,IAAI,aAAa;IAuCvC;;;;;;;;;;;;;OAaG;IACH,cAAc,CACZ,aAAa,EAAE,aAAa,GAC3B,WAAW,GAAG;QAAE,YAAY,EAAE,OAAO,CAAA;KAAE;IAyB1C;;;;;;;;;;;;;OAaG;IACH,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,aAAa;IAkBvD;;;;;;;;;;OAUG;IACH,cAAc,IAAI;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE;IAU1C;;;;;;;;;;;;;OAaG;IACG,kBAAkB,IAAI,OAAO,CAAC,WAAW,CAAC,sBAAsB,CAAC;IAWvE;;;;;OAKG;IACH,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAqBlD;;;;;OAKG;IACH,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IA+B9C;;;;;OAKG;IACG,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC;IAOjD;;;;;;;;;;OAUG;IACH,cAAc,IAAI,MAAM;IAIxB;;;;;;;;;;OAUG;IACH,SAAS,IAAI,gBAAgB;IAS7B;;;;OAIG;IACH,YAAY,IAAI,SAAS;IAIzB;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IAS5C;;;;;;;;;;;;;OAaG;IACH,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW;IAO/C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,qBAAqB,CACnB,MAAM,EAAE,WAAW,EACnB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,GACtB,WAAW;CAaf"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Leaflet loader for SSR-safe dynamic imports
|
|
3
|
+
*
|
|
4
|
+
* This module provides a centralized way to load Leaflet only in browser environments.
|
|
5
|
+
* All files that need Leaflet should use this loader instead of direct imports.
|
|
6
|
+
*/
|
|
7
|
+
import type * as LeafletType from 'leaflet';
|
|
8
|
+
/**
|
|
9
|
+
* Lazy loads Leaflet only in browser environment
|
|
10
|
+
* Returns a promise that resolves to the Leaflet module
|
|
11
|
+
*
|
|
12
|
+
* @throws {Error} If called in a non-browser environment
|
|
13
|
+
*/
|
|
14
|
+
export declare function loadLeaflet(): Promise<typeof LeafletType>;
|
|
15
|
+
/**
|
|
16
|
+
* Gets the Leaflet instance if already loaded
|
|
17
|
+
* Returns null if not yet loaded (useful for synchronous access after initial load)
|
|
18
|
+
*
|
|
19
|
+
* @returns Leaflet instance or null if not loaded
|
|
20
|
+
*/
|
|
21
|
+
export declare function getLeaflet(): typeof LeafletType | null;
|
|
22
|
+
/**
|
|
23
|
+
* Type export for Leaflet types
|
|
24
|
+
*/
|
|
25
|
+
export type { LeafletType };
|
|
26
|
+
//# sourceMappingURL=leaflet-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leaflet-loader.d.ts","sourceRoot":"","sources":["../../src/lib/leaflet-loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,KAAK,WAAW,MAAM,SAAS,CAAC;AAM5C;;;;;GAKG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,WAAW,CAAC,CAyB/D;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,OAAO,WAAW,GAAG,IAAI,CAEtD;AAED;;GAEG;AACH,YAAY,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type * as LeafletType from 'leaflet';
|
|
2
2
|
import type { Marker, MarkerData, LeafletCoords, ImageCoords, ImageInfo, MarkerEvent, MarkerEventType, MarkerInteractionConfig, MarkerSelectionState } from '@edgepdf/types';
|
|
3
3
|
import { CoordinateMapper } from './coordinate-mapper.js';
|
|
4
4
|
/**
|
|
@@ -101,10 +101,14 @@ export declare class MarkerManager {
|
|
|
101
101
|
* @throws {Error} If imageInfo is not provided
|
|
102
102
|
*/
|
|
103
103
|
constructor(options: {
|
|
104
|
-
map:
|
|
104
|
+
map: LeafletType.Map;
|
|
105
105
|
coordinateMapper: CoordinateMapper;
|
|
106
106
|
imageInfo: ImageInfo;
|
|
107
107
|
});
|
|
108
|
+
/**
|
|
109
|
+
* Initializes the marker layer group (called after Leaflet is loaded)
|
|
110
|
+
*/
|
|
111
|
+
private ensureLayerGroup;
|
|
108
112
|
/**
|
|
109
113
|
* Creates a new marker from coordinates
|
|
110
114
|
*
|
|
@@ -126,7 +130,7 @@ export declare class MarkerManager {
|
|
|
126
130
|
* @throws {Error} If neither position nor imageCoords is provided
|
|
127
131
|
* @throws {Error} If coordinates are invalid or out of bounds
|
|
128
132
|
*/
|
|
129
|
-
createMarker(options: CreateMarkerOptions): Marker
|
|
133
|
+
createMarker(options: CreateMarkerOptions): Promise<Marker>;
|
|
130
134
|
/**
|
|
131
135
|
* Gets a marker by ID
|
|
132
136
|
*
|
|
@@ -225,7 +229,7 @@ export declare class MarkerManager {
|
|
|
225
229
|
* @param updates - Partial marker properties to update
|
|
226
230
|
* @returns True if marker was updated, false if not found
|
|
227
231
|
*/
|
|
228
|
-
updateMarker(id: string, updates: Partial<Omit<Marker, 'id' | 'position' | 'x' | 'y' | 'zoom'>>): boolean
|
|
232
|
+
updateMarker(id: string, updates: Partial<Omit<Marker, 'id' | 'position' | 'x' | 'y' | 'zoom'>>): Promise<boolean>;
|
|
229
233
|
/**
|
|
230
234
|
* Gets the number of markers
|
|
231
235
|
*
|
|
@@ -288,7 +292,7 @@ export declare class MarkerManager {
|
|
|
288
292
|
* @param id - Marker ID to set as active, or null to clear active marker
|
|
289
293
|
* @returns True if marker was set as active, false if not found
|
|
290
294
|
*/
|
|
291
|
-
setActiveMarker(id: string | null): boolean
|
|
295
|
+
setActiveMarker(id: string | null): Promise<boolean>;
|
|
292
296
|
/**
|
|
293
297
|
* Gets the currently active marker
|
|
294
298
|
*
|
|
@@ -366,7 +370,7 @@ export declare class MarkerManager {
|
|
|
366
370
|
* @param iconType - New icon type
|
|
367
371
|
* @returns True if marker was updated, false if not found
|
|
368
372
|
*/
|
|
369
|
-
updateMarkerIcon(id: string, iconType: 'pin-gray' | 'pin-yellow'): boolean
|
|
373
|
+
updateMarkerIcon(id: string, iconType: 'pin-gray' | 'pin-yellow'): Promise<boolean>;
|
|
370
374
|
/**
|
|
371
375
|
* Updates all markers to use a new icon type
|
|
372
376
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marker-manager.d.ts","sourceRoot":"","sources":["../../src/lib/marker-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"marker-manager.d.ts","sourceRoot":"","sources":["../../src/lib/marker-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type * as LeafletType from 'leaflet';
|
|
2
2
|
import type { TileConfig, ImageInfo } from '@edgepdf/types';
|
|
3
3
|
/**
|
|
4
4
|
* TileLayerManager - Manages Leaflet tile layer for displaying image tiles
|
|
@@ -45,7 +45,7 @@ export declare class TileLayerManager {
|
|
|
45
45
|
*
|
|
46
46
|
* @throws {Error} If tile layer creation fails
|
|
47
47
|
*/
|
|
48
|
-
createTileLayer(map?:
|
|
48
|
+
createTileLayer(map?: LeafletType.Map): Promise<LeafletType.TileLayer>;
|
|
49
49
|
/**
|
|
50
50
|
* Calculates tile bounds based on image dimensions
|
|
51
51
|
*
|
|
@@ -54,7 +54,7 @@ export declare class TileLayerManager {
|
|
|
54
54
|
*
|
|
55
55
|
* @returns Leaflet bounds for the tile layer
|
|
56
56
|
*/
|
|
57
|
-
calculateTileBounds():
|
|
57
|
+
calculateTileBounds(): LeafletType.LatLngBoundsExpression;
|
|
58
58
|
/**
|
|
59
59
|
* Calculates tile grid dimensions for a specific zoom level
|
|
60
60
|
*
|
|
@@ -79,13 +79,13 @@ export declare class TileLayerManager {
|
|
|
79
79
|
*
|
|
80
80
|
* @returns The tile layer, or null if not created
|
|
81
81
|
*/
|
|
82
|
-
getTileLayer():
|
|
82
|
+
getTileLayer(): LeafletType.TileLayer | null;
|
|
83
83
|
/**
|
|
84
84
|
* Removes the tile layer from the map and cleans up
|
|
85
85
|
*
|
|
86
86
|
* @param map - Optional map instance to remove layer from
|
|
87
87
|
*/
|
|
88
|
-
removeTileLayer(map?:
|
|
88
|
+
removeTileLayer(map?: LeafletType.Map): void;
|
|
89
89
|
/**
|
|
90
90
|
* Sets up event listeners for tile loading events
|
|
91
91
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tile-layer-manager.d.ts","sourceRoot":"","sources":["../../src/lib/tile-layer-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tile-layer-manager.d.ts","sourceRoot":"","sources":["../../src/lib/tile-layer-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,WAAW,MAAM,SAAS,CAAC;AAE5C,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAQ5D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,SAAS,CAAsC;IAEvD;;;;;;OAMG;gBACS,MAAM,EAAE,UAAU;IAmB9B;;;;;;;OAOG;IACG,eAAe,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC;IAqD5E;;;;;;;OAOG;IACH,mBAAmB,IAAI,WAAW,CAAC,sBAAsB;IAKzD;;;;;OAKG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE;IAKjE;;;;;;;OAOG;IACH,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAInD;;;;OAIG;IACH,YAAY,IAAI,WAAW,CAAC,SAAS,GAAG,IAAI;IAI5C;;;;OAIG;IACH,eAAe,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,GAAG,GAAG,IAAI;IAU5C;;;;OAIG;IAEH,OAAO,CAAC,mBAAmB;IAwB3B;;;;OAIG;IACH,YAAY,IAAI,SAAS;IAIzB;;;;OAIG;IACH,SAAS,IAAI,UAAU;CAGxB"}
|
package/dist/lib/viewer.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type * as LeafletType from 'leaflet';
|
|
2
2
|
import type { ViewerConfig, MapOptions } from '@edgepdf/types';
|
|
3
3
|
import { TileLayerManager } from './tile-layer-manager.js';
|
|
4
4
|
import { CoordinateMapper } from './coordinate-mapper.js';
|
|
@@ -28,7 +28,7 @@ import { MarkerManager } from './marker-manager.js';
|
|
|
28
28
|
* }
|
|
29
29
|
* });
|
|
30
30
|
*
|
|
31
|
-
* viewer.initialize();
|
|
31
|
+
* await viewer.initialize(); // initialize() is now async for SSR support
|
|
32
32
|
* ```
|
|
33
33
|
*/
|
|
34
34
|
export declare class EdgePdfViewer {
|
|
@@ -64,7 +64,7 @@ export declare class EdgePdfViewer {
|
|
|
64
64
|
*
|
|
65
65
|
* @throws {Error} If map initialization fails
|
|
66
66
|
*/
|
|
67
|
-
initialize(): void
|
|
67
|
+
initialize(): Promise<void>;
|
|
68
68
|
/**
|
|
69
69
|
* Calculates optimal initial zoom based on device type
|
|
70
70
|
*
|
|
@@ -84,7 +84,7 @@ export declare class EdgePdfViewer {
|
|
|
84
84
|
*
|
|
85
85
|
* @returns The Leaflet map instance, or null if not initialized
|
|
86
86
|
*/
|
|
87
|
-
getMap():
|
|
87
|
+
getMap(): LeafletType.Map | null;
|
|
88
88
|
/**
|
|
89
89
|
* Checks if the map is initialized
|
|
90
90
|
*
|
package/dist/lib/viewer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewer.d.ts","sourceRoot":"","sources":["../../src/lib/viewer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"viewer.d.ts","sourceRoot":"","sources":["../../src/lib/viewer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,WAAW,MAAM,SAAS,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAAgC;IAC3C,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,gBAAgB,CAAiC;IACzD,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,aAAa,CAA8B;IAEnD;;;;;;;;;;OAUG;gBACS,OAAO,EAAE;QACnB,SAAS,EAAE,WAAW,CAAC;QACvB,MAAM,EAAE,YAAY,CAAC;QACrB,UAAU,CAAC,EAAE,UAAU,CAAC;KACzB;IAmBD;;;;;;;OAOG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgGjC;;;;;;OAMG;IACH,OAAO,CAAC,2BAA2B;IAmBnC;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAuB7B;;;;OAIG;IACH,MAAM,IAAI,WAAW,CAAC,GAAG,GAAG,IAAI;IAIhC;;;;OAIG;IACH,aAAa,IAAI,OAAO;IAIxB;;;;;;;OAOG;YACW,YAAY;IAwB1B;;;;OAIG;IACH,mBAAmB,IAAI,gBAAgB,GAAG,IAAI;IAI9C;;;;OAIG;IACH,mBAAmB,IAAI,gBAAgB,GAAG,IAAI;IAI9C;;;;OAIG;IACH,iBAAiB,IAAI,cAAc,GAAG,IAAI;IAI1C;;;;OAIG;IACH,gBAAgB,IAAI,aAAa,GAAG,IAAI;IAIxC;;;;;OAKG;IACH,OAAO,IAAI,IAAI;CA0BhB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type * as LeafletType from 'leaflet';
|
|
2
2
|
import type { ImageInfo, ZoomConfig, ZoomState } from '@edgepdf/types';
|
|
3
3
|
/**
|
|
4
4
|
* ZoomController - Manages zoom state and operations for the viewer
|
|
@@ -55,7 +55,7 @@ export declare class ZoomController {
|
|
|
55
55
|
* @throws {Error} If imageInfo is invalid
|
|
56
56
|
*/
|
|
57
57
|
constructor(options: {
|
|
58
|
-
map:
|
|
58
|
+
map: LeafletType.Map;
|
|
59
59
|
imageInfo: ImageInfo;
|
|
60
60
|
config?: Partial<ZoomConfig>;
|
|
61
61
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zoom-controller.d.ts","sourceRoot":"","sources":["../../src/lib/zoom-controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"zoom-controller.d.ts","sourceRoot":"","sources":["../../src/lib/zoom-controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,WAAW,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,GAAG,CAAkB;IAC7B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,mBAAmB,CAA8C;IAEzE;;;;;;;;;;OAUG;gBACS,OAAO,EAAE;QACnB,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC;QACrB,SAAS,EAAE,SAAS,CAAC;QACrB,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;KAC9B;IAgDD;;;;;;;;;OASG;IACH,8BAA8B,IAAI,MAAM;IAyBxC;;;;;;OAMG;IACH,2BAA2B,IAAI,MAAM;IAiBrC;;;;;OAKG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAOnC;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQlC;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO;IAahD;;;;;;OAMG;IACH,OAAO,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO;IAajD;;;;;;;OAOG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAe5D;;;;OAIG;IACH,YAAY,IAAI,SAAS;IAIzB;;;;OAIG;IACH,OAAO,IAAI,MAAM;IAIjB;;;;OAIG;IACH,UAAU,IAAI,MAAM;IAIpB;;;;OAIG;IACH,UAAU,IAAI,MAAM;IAIpB;;;;OAIG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;OAIG;IACH,UAAU,IAAI,OAAO;IAIrB;;;;;OAKG;IACH,YAAY,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,MAAM,IAAI;IAS9D;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAI1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwB1B;;OAEG;IACH,OAAO,IAAI,IAAI;CAKhB"}
|
package/package.json
CHANGED