jekyll-image-links 0.1.2 → 0.2.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 19b54b99566ef68cb4781a9ac97bbf0244aecdc8df97de25842b379916d5ffb6
4
- data.tar.gz: f8398c0bbfabd847e30639200b95b11bccee7e205938f440eb0d96a1b6da83ab
3
+ metadata.gz: 8c93aabbb9cd425deaacd65bb022a89262b8799957d6817e58cd1a3ada3d640c
4
+ data.tar.gz: fe69971d43751442a622ed8571760f0ed5ebce7f74aca6bfa13942e9ec6b4521
5
5
  SHA512:
6
- metadata.gz: 67dc7db67ce397dd3c9df03c8c84681a7fb60731a717520e5d30d6b5c57ab3a8f3be1fbdddcd564ccecad632941982d4d7311e79a67487b4f72020b9fa7025d2
7
- data.tar.gz: 84f6ddb951f954fcf32d8af81fcef097104c16d987824abc95766654e64d9895f4728669c321cfb2f9de250d601b3ff86d1e1e9f8c87a18dc5753fc9b23d6559
6
+ metadata.gz: 6e741d3e37b158ee40f071ea3fe8a833427e4a7321df076e3ecedb68ed6b67e48449be4764c105179364dc15c0c6465617bbbaedf123d8dc3e54e5bd6959196a
7
+ data.tar.gz: a74db4de8774eea228b99baca8a3d237807bd7167aa5c1e242798a6c9ec693e29905eba853563c2711c09ed78f3d15bcb97673abe1e2dc3e86306849003214fb
@@ -248,7 +248,21 @@
248
248
  });
249
249
  zoomFit.addEventListener("click", fitZoom);
250
250
 
251
+ let dragStart = null;
252
+ let didPan = false;
253
+
254
+ const cursorForPoint = (event) => {
255
+ const point = canvasPointFromEvent(canvas, state.zoom, event);
256
+ const region = firstIntersectedRegion(mapData.regions, point);
257
+ return region ? "pointer" : "grab";
258
+ };
259
+
251
260
  canvas.addEventListener("click", (event) => {
261
+ if (didPan) {
262
+ didPan = false;
263
+ event.preventDefault();
264
+ return;
265
+ }
252
266
  const point = canvasPointFromEvent(canvas, state.zoom, event);
253
267
  const region = firstIntersectedRegion(mapData.regions, point);
254
268
  if (!region) return;
@@ -257,15 +271,21 @@
257
271
  });
258
272
 
259
273
  canvas.addEventListener("mousemove", (event) => {
260
- const point = canvasPointFromEvent(canvas, state.zoom, event);
261
- const region = firstIntersectedRegion(mapData.regions, point);
262
- canvas.style.cursor = region ? "pointer" : "grab";
274
+ if (dragStart) return;
275
+ canvas.style.cursor = cursorForPoint(event);
263
276
  });
264
277
 
265
- let dragStart = null;
266
278
  canvas.addEventListener("mousedown", (event) => {
267
- if (event.button !== 2) return;
279
+ // Left-drag empty areas to pan; right-drag pans from anywhere.
280
+ if (event.button === 0) {
281
+ const point = canvasPointFromEvent(canvas, state.zoom, event);
282
+ if (firstIntersectedRegion(mapData.regions, point)) return;
283
+ } else if (event.button !== 2) {
284
+ return;
285
+ }
286
+
268
287
  event.preventDefault();
288
+ didPan = false;
269
289
  dragStart = {
270
290
  x: event.clientX,
271
291
  y: event.clientY,
@@ -275,15 +295,25 @@
275
295
  canvas.style.cursor = "grabbing";
276
296
  });
277
297
 
278
- window.addEventListener("mouseup", () => {
298
+ window.addEventListener("mouseup", (event) => {
299
+ if (!dragStart) return;
279
300
  dragStart = null;
280
- canvas.style.cursor = "grab";
301
+ canvas.style.cursor = cursorForPoint(event);
302
+ // Clear after the trailing click so a pan doesn't open a region.
303
+ if (didPan) {
304
+ setTimeout(() => {
305
+ didPan = false;
306
+ }, 0);
307
+ }
281
308
  });
282
309
 
283
310
  window.addEventListener("mousemove", (event) => {
284
311
  if (!dragStart) return;
285
- scroll.scrollLeft = dragStart.scrollLeft + (dragStart.x - event.clientX);
286
- scroll.scrollTop = dragStart.scrollTop + (dragStart.y - event.clientY);
312
+ const dx = dragStart.x - event.clientX;
313
+ const dy = dragStart.y - event.clientY;
314
+ if (Math.abs(dx) > 2 || Math.abs(dy) > 2) didPan = true;
315
+ scroll.scrollLeft = dragStart.scrollLeft + dx;
316
+ scroll.scrollTop = dragStart.scrollTop + dy;
287
317
  });
288
318
 
289
319
  canvas.addEventListener("contextmenu", (event) => event.preventDefault());
@@ -1,5 +1,5 @@
1
1
  module Jekyll
2
2
  module ImageLinks
3
- VERSION = "0.1.2"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-image-links
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - directsun