web-mojo 2.1.936 → 2.1.955
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/admin.cjs.js +1 -1
- package/dist/admin.cjs.js.map +1 -1
- package/dist/admin.es.js +122 -229
- package/dist/admin.es.js.map +1 -1
- package/dist/auth.cjs.js +1 -1
- package/dist/auth.cjs.js.map +1 -1
- package/dist/auth.es.js +7 -7
- package/dist/auth.es.js.map +1 -1
- package/dist/charts.cjs.js +1 -1
- package/dist/charts.es.js +7 -7
- package/dist/chunks/ChatView-CTtQHvRP.js +2 -0
- package/dist/chunks/ChatView-CTtQHvRP.js.map +1 -0
- package/dist/chunks/{ChatView-DlSxjxah.js → ChatView-DLEStri1.js} +89 -574
- package/dist/chunks/ChatView-DLEStri1.js.map +1 -0
- package/dist/chunks/Collection-DD1_31eh.js +2 -0
- package/dist/chunks/Collection-DD1_31eh.js.map +1 -0
- package/dist/chunks/Collection-YRfGoT73.js +990 -0
- package/dist/chunks/Collection-YRfGoT73.js.map +1 -0
- package/dist/chunks/ContextMenu-By2g3KYY.js +1171 -0
- package/dist/chunks/ContextMenu-By2g3KYY.js.map +1 -0
- package/dist/chunks/ContextMenu-Cl0TRsIa.js +3 -0
- package/dist/chunks/ContextMenu-Cl0TRsIa.js.map +1 -0
- package/dist/chunks/DataView-CdDY9ijM.js +2 -0
- package/dist/chunks/{DataView-XJbTQ5q0.js.map → DataView-CdDY9ijM.js.map} +1 -1
- package/dist/chunks/{DataView-Vmjx4eCr.js → DataView-OUqaLmGB.js} +2 -2
- package/dist/chunks/{DataView-Vmjx4eCr.js.map → DataView-OUqaLmGB.js.map} +1 -1
- package/dist/chunks/{Dialog-D_rAf4gQ.js → Dialog-C2mRUxga.js} +8 -6
- package/dist/chunks/{Dialog-D_rAf4gQ.js.map → Dialog-C2mRUxga.js.map} +1 -1
- package/dist/chunks/Dialog-Cl6MN8if.js +2 -0
- package/dist/chunks/{Dialog-BinTQTfO.js.map → Dialog-Cl6MN8if.js.map} +1 -1
- package/dist/chunks/FormView-BSWaXDav.js +3 -0
- package/dist/chunks/{FormView-TPFsq8ZX.js.map → FormView-BSWaXDav.js.map} +1 -1
- package/dist/chunks/{FormView-CIriLDZY.js → FormView-HWvIdFkB.js} +10 -6
- package/dist/chunks/FormView-HWvIdFkB.js.map +1 -0
- package/dist/chunks/ListView-BMNhd5-B.js +492 -0
- package/dist/chunks/ListView-BMNhd5-B.js.map +1 -0
- package/dist/chunks/ListView-BRGiITfD.js +2 -0
- package/dist/chunks/ListView-BRGiITfD.js.map +1 -0
- package/dist/chunks/MetricsMiniChartWidget-BkTEO87S.js +2 -0
- package/dist/chunks/{MetricsMiniChartWidget-sONcM0pG.js.map → MetricsMiniChartWidget-BkTEO87S.js.map} +1 -1
- package/dist/chunks/{MetricsMiniChartWidget-BolRZ-Ja.js → MetricsMiniChartWidget-Y70IHFIe.js} +3 -3
- package/dist/chunks/{MetricsMiniChartWidget-BolRZ-Ja.js.map → MetricsMiniChartWidget-Y70IHFIe.js.map} +1 -1
- package/dist/chunks/PDFViewer-C0aMqGJL.js +2 -0
- package/dist/chunks/{PDFViewer-UBhinN8A.js.map → PDFViewer-C0aMqGJL.js.map} +1 -1
- package/dist/chunks/{PDFViewer-D6SKOl85.js → PDFViewer-DkbYnnoV.js} +3 -3
- package/dist/chunks/{PDFViewer-D6SKOl85.js.map → PDFViewer-DkbYnnoV.js.map} +1 -1
- package/dist/chunks/Page-CvbwEoLv.js +2 -0
- package/dist/chunks/{Page-CnvHhwLZ.js.map → Page-CvbwEoLv.js.map} +1 -1
- package/dist/chunks/{Page-B7L25Omb.js → Page-Deq4y2Kq.js} +2 -2
- package/dist/chunks/{Page-B7L25Omb.js.map → Page-Deq4y2Kq.js.map} +1 -1
- package/dist/chunks/Rest-BNYqGlnP.js +2 -0
- package/dist/chunks/Rest-BNYqGlnP.js.map +1 -0
- package/dist/chunks/{WebApp-El07OMHH.js → Rest-CS4jRCAs.js} +5 -1389
- package/dist/chunks/Rest-CS4jRCAs.js.map +1 -0
- package/dist/chunks/TopNav-A7NQ4viq.js +2 -0
- package/dist/chunks/{TopNav-Dcmcic-i.js.map → TopNav-A7NQ4viq.js.map} +1 -1
- package/dist/chunks/{TopNav-CPA884W7.js → TopNav-Dch6cZFa.js} +5 -5
- package/dist/chunks/{TopNav-CPA884W7.js.map → TopNav-Dch6cZFa.js.map} +1 -1
- package/dist/chunks/WebApp-CaOPY_k7.js +2 -0
- package/dist/chunks/WebApp-CaOPY_k7.js.map +1 -0
- package/dist/chunks/WebApp-RHtJ4hFZ.js +1388 -0
- package/dist/chunks/WebApp-RHtJ4hFZ.js.map +1 -0
- package/dist/css/web-mojo.css +2 -2
- package/dist/docit.cjs.js +1 -1
- package/dist/docit.cjs.js.map +1 -1
- package/dist/docit.es.js +12 -10
- package/dist/docit.es.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +120 -116
- package/dist/index.es.js.map +1 -1
- package/dist/lightbox.cjs.js +1 -1
- package/dist/lightbox.cjs.js.map +1 -1
- package/dist/lightbox.es.js +121 -121
- package/dist/lightbox.es.js.map +1 -1
- package/dist/map.cjs.js +2 -0
- package/dist/map.cjs.js.map +1 -0
- package/dist/map.es.js +188 -0
- package/dist/map.es.js.map +1 -0
- package/dist/timeline.cjs.js +2 -0
- package/dist/timeline.cjs.js.map +1 -0
- package/dist/timeline.es.js +225 -0
- package/dist/timeline.es.js.map +1 -0
- package/package.json +9 -1
- package/dist/chunks/ChatView-DlSxjxah.js.map +0 -1
- package/dist/chunks/ChatView-DnqrGXMC.js +0 -2
- package/dist/chunks/ChatView-DnqrGXMC.js.map +0 -1
- package/dist/chunks/ContextMenu-CE77rUmn.js +0 -2155
- package/dist/chunks/ContextMenu-CE77rUmn.js.map +0 -1
- package/dist/chunks/ContextMenu-KVxd0Kgd.js +0 -3
- package/dist/chunks/ContextMenu-KVxd0Kgd.js.map +0 -1
- package/dist/chunks/DataView-XJbTQ5q0.js +0 -2
- package/dist/chunks/Dialog-BinTQTfO.js +0 -2
- package/dist/chunks/FormView-CIriLDZY.js.map +0 -1
- package/dist/chunks/FormView-TPFsq8ZX.js +0 -3
- package/dist/chunks/MetricsMiniChartWidget-sONcM0pG.js +0 -2
- package/dist/chunks/PDFViewer-UBhinN8A.js +0 -2
- package/dist/chunks/Page-CnvHhwLZ.js +0 -2
- package/dist/chunks/TopNav-Dcmcic-i.js +0 -2
- package/dist/chunks/WebApp-El07OMHH.js.map +0 -1
- package/dist/chunks/WebApp-b9DQWz1d.js +0 -2
- package/dist/chunks/WebApp-b9DQWz1d.js.map +0 -1
package/dist/lightbox.es.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { V as View } from "./chunks/
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
1
|
+
import { V as View } from "./chunks/Rest-CS4jRCAs.js";
|
|
2
|
+
import Dialog from "./chunks/Dialog-C2mRUxga.js";
|
|
3
|
+
import { L, P } from "./chunks/PDFViewer-DkbYnnoV.js";
|
|
4
|
+
import { B, a, V, b, c, d, W } from "./chunks/WebApp-RHtJ4hFZ.js";
|
|
5
5
|
class ImageViewer extends View {
|
|
6
6
|
constructor(options = {}) {
|
|
7
7
|
super({
|
|
@@ -143,17 +143,17 @@ class ImageViewer extends View {
|
|
|
143
143
|
setupEventListeners() {
|
|
144
144
|
if (!this.canvas) return;
|
|
145
145
|
if (this.allowPan) {
|
|
146
|
-
this.canvas.addEventListener("mousedown", (
|
|
147
|
-
document.addEventListener("mousemove", (
|
|
148
|
-
document.addEventListener("mouseup", (
|
|
146
|
+
this.canvas.addEventListener("mousedown", (e) => this.handleMouseDown(e));
|
|
147
|
+
document.addEventListener("mousemove", (e) => this.handleMouseMove(e));
|
|
148
|
+
document.addEventListener("mouseup", (e) => this.handleMouseUp(e));
|
|
149
149
|
}
|
|
150
150
|
if (this.allowZoom) {
|
|
151
|
-
this.canvas.addEventListener("wheel", (
|
|
151
|
+
this.canvas.addEventListener("wheel", (e) => this.handleWheel(e), { passive: false });
|
|
152
152
|
}
|
|
153
|
-
this.canvas.addEventListener("touchstart", (
|
|
154
|
-
this.canvas.addEventListener("touchmove", (
|
|
155
|
-
this.canvas.addEventListener("touchend", (
|
|
156
|
-
this.canvas.addEventListener("contextmenu", (
|
|
153
|
+
this.canvas.addEventListener("touchstart", (e) => this.handleTouchStart(e), { passive: false });
|
|
154
|
+
this.canvas.addEventListener("touchmove", (e) => this.handleTouchMove(e), { passive: false });
|
|
155
|
+
this.canvas.addEventListener("touchend", (e) => this.handleTouchEnd(e));
|
|
156
|
+
this.canvas.addEventListener("contextmenu", (e) => e.preventDefault());
|
|
157
157
|
}
|
|
158
158
|
// Action handlers
|
|
159
159
|
async handleActionZoomIn() {
|
|
@@ -238,56 +238,56 @@ class ImageViewer extends View {
|
|
|
238
238
|
}
|
|
239
239
|
}
|
|
240
240
|
// Mouse interaction
|
|
241
|
-
handleMouseDown(
|
|
242
|
-
if (!this.allowPan ||
|
|
243
|
-
|
|
241
|
+
handleMouseDown(e) {
|
|
242
|
+
if (!this.allowPan || e.button !== 0) return;
|
|
243
|
+
e.preventDefault();
|
|
244
244
|
this.isDragging = true;
|
|
245
245
|
const rect = this.canvas.getBoundingClientRect();
|
|
246
|
-
this.lastPointerX =
|
|
247
|
-
this.lastPointerY =
|
|
246
|
+
this.lastPointerX = e.clientX - rect.left;
|
|
247
|
+
this.lastPointerY = e.clientY - rect.top;
|
|
248
248
|
this.canvas.style.cursor = "grabbing";
|
|
249
249
|
}
|
|
250
|
-
handleMouseMove(
|
|
250
|
+
handleMouseMove(e) {
|
|
251
251
|
if (!this.isDragging || !this.allowPan) return;
|
|
252
|
-
|
|
252
|
+
e.preventDefault();
|
|
253
253
|
const rect = this.canvas.getBoundingClientRect();
|
|
254
|
-
const currentX =
|
|
255
|
-
const currentY =
|
|
254
|
+
const currentX = e.clientX - rect.left;
|
|
255
|
+
const currentY = e.clientY - rect.top;
|
|
256
256
|
const deltaX = currentX - this.lastPointerX;
|
|
257
257
|
const deltaY = currentY - this.lastPointerY;
|
|
258
258
|
this.pan(deltaX, deltaY);
|
|
259
259
|
this.lastPointerX = currentX;
|
|
260
260
|
this.lastPointerY = currentY;
|
|
261
261
|
}
|
|
262
|
-
handleMouseUp(
|
|
262
|
+
handleMouseUp(e) {
|
|
263
263
|
if (!this.isDragging) return;
|
|
264
264
|
this.isDragging = false;
|
|
265
265
|
this.canvas.style.cursor = this.allowPan ? "grab" : "default";
|
|
266
266
|
}
|
|
267
|
-
handleWheel(
|
|
267
|
+
handleWheel(e) {
|
|
268
268
|
if (!this.allowZoom) return;
|
|
269
|
-
|
|
269
|
+
e.preventDefault();
|
|
270
270
|
const rect = this.canvas.getBoundingClientRect();
|
|
271
|
-
const x =
|
|
272
|
-
const y =
|
|
273
|
-
const delta =
|
|
271
|
+
const x = e.clientX - rect.left;
|
|
272
|
+
const y = e.clientY - rect.top;
|
|
273
|
+
const delta = e.deltaY > 0 ? -this.scaleStep * 0.5 : this.scaleStep * 0.5;
|
|
274
274
|
this.zoomAtPoint(this.scale + delta, x, y);
|
|
275
275
|
}
|
|
276
276
|
// Touch events
|
|
277
|
-
handleTouchStart(
|
|
278
|
-
if (
|
|
279
|
-
|
|
280
|
-
const touch =
|
|
277
|
+
handleTouchStart(e) {
|
|
278
|
+
if (e.touches.length === 1 && this.allowPan) {
|
|
279
|
+
e.preventDefault();
|
|
280
|
+
const touch = e.touches[0];
|
|
281
281
|
const rect = this.canvas.getBoundingClientRect();
|
|
282
282
|
this.isDragging = true;
|
|
283
283
|
this.lastPointerX = touch.clientX - rect.left;
|
|
284
284
|
this.lastPointerY = touch.clientY - rect.top;
|
|
285
285
|
}
|
|
286
286
|
}
|
|
287
|
-
handleTouchMove(
|
|
288
|
-
if (
|
|
289
|
-
|
|
290
|
-
const touch =
|
|
287
|
+
handleTouchMove(e) {
|
|
288
|
+
if (e.touches.length === 1 && this.isDragging && this.allowPan) {
|
|
289
|
+
e.preventDefault();
|
|
290
|
+
const touch = e.touches[0];
|
|
291
291
|
const rect = this.canvas.getBoundingClientRect();
|
|
292
292
|
const currentX = touch.clientX - rect.left;
|
|
293
293
|
const currentY = touch.clientY - rect.top;
|
|
@@ -298,7 +298,7 @@ class ImageViewer extends View {
|
|
|
298
298
|
this.lastPointerY = currentY;
|
|
299
299
|
}
|
|
300
300
|
}
|
|
301
|
-
handleTouchEnd(
|
|
301
|
+
handleTouchEnd(e) {
|
|
302
302
|
this.isDragging = false;
|
|
303
303
|
}
|
|
304
304
|
// Transform methods
|
|
@@ -448,7 +448,7 @@ class ImageViewer extends View {
|
|
|
448
448
|
if (filename && filename.includes(".")) {
|
|
449
449
|
return filename.replace(/\.[^.]+$/, ".png");
|
|
450
450
|
}
|
|
451
|
-
} catch (
|
|
451
|
+
} catch (e) {
|
|
452
452
|
}
|
|
453
453
|
return "image.png";
|
|
454
454
|
}
|
|
@@ -943,20 +943,20 @@ class ImageTransformView extends ImageCanvasView {
|
|
|
943
943
|
setupInteractionListeners() {
|
|
944
944
|
if (!this.canvas) return;
|
|
945
945
|
if (this.allowPan) {
|
|
946
|
-
this.canvas.addEventListener("mousedown", (
|
|
946
|
+
this.canvas.addEventListener("mousedown", (e) => this.handleMouseDown(e));
|
|
947
947
|
document.addEventListener("mousemove", this._handleMouseMove);
|
|
948
948
|
document.addEventListener("mouseup", this._handleMouseUp);
|
|
949
949
|
}
|
|
950
950
|
if (this.allowZoom) {
|
|
951
|
-
this.canvas.addEventListener("wheel", (
|
|
951
|
+
this.canvas.addEventListener("wheel", (e) => this.handleWheel(e), { passive: false });
|
|
952
952
|
}
|
|
953
|
-
this.canvas.addEventListener("touchstart", (
|
|
954
|
-
this.canvas.addEventListener("touchmove", (
|
|
955
|
-
this.canvas.addEventListener("touchend", (
|
|
953
|
+
this.canvas.addEventListener("touchstart", (e) => this.handleTouchStart(e), { passive: false });
|
|
954
|
+
this.canvas.addEventListener("touchmove", (e) => this.handleTouchMove(e), { passive: false });
|
|
955
|
+
this.canvas.addEventListener("touchend", (e) => this.handleTouchEnd(e));
|
|
956
956
|
if (this.allowKeyboard) {
|
|
957
957
|
document.addEventListener("keydown", this._handleKeyboard);
|
|
958
958
|
}
|
|
959
|
-
this.canvas.addEventListener("contextmenu", (
|
|
959
|
+
this.canvas.addEventListener("contextmenu", (e) => e.preventDefault());
|
|
960
960
|
this.canvas.style.cursor = this.allowPan ? "grab" : "default";
|
|
961
961
|
}
|
|
962
962
|
// Override renderImage to apply transforms
|
|
@@ -975,56 +975,56 @@ class ImageTransformView extends ImageCanvasView {
|
|
|
975
975
|
);
|
|
976
976
|
}
|
|
977
977
|
// Mouse interaction
|
|
978
|
-
handleMouseDown(
|
|
979
|
-
if (!this.allowPan ||
|
|
980
|
-
|
|
978
|
+
handleMouseDown(e) {
|
|
979
|
+
if (!this.allowPan || e.button !== 0) return;
|
|
980
|
+
e.preventDefault();
|
|
981
981
|
this.isDragging = true;
|
|
982
982
|
const rect = this.canvas.getBoundingClientRect();
|
|
983
|
-
this.lastPointerX =
|
|
984
|
-
this.lastPointerY =
|
|
983
|
+
this.lastPointerX = e.clientX - rect.left;
|
|
984
|
+
this.lastPointerY = e.clientY - rect.top;
|
|
985
985
|
this.canvas.style.cursor = "grabbing";
|
|
986
986
|
}
|
|
987
|
-
handleMouseMove(
|
|
987
|
+
handleMouseMove(e) {
|
|
988
988
|
if (!this.isDragging || !this.allowPan) return;
|
|
989
|
-
|
|
989
|
+
e.preventDefault();
|
|
990
990
|
const rect = this.canvas.getBoundingClientRect();
|
|
991
|
-
const currentX =
|
|
992
|
-
const currentY =
|
|
991
|
+
const currentX = e.clientX - rect.left;
|
|
992
|
+
const currentY = e.clientY - rect.top;
|
|
993
993
|
const deltaX = currentX - this.lastPointerX;
|
|
994
994
|
const deltaY = currentY - this.lastPointerY;
|
|
995
995
|
this.pan(deltaX, deltaY);
|
|
996
996
|
this.lastPointerX = currentX;
|
|
997
997
|
this.lastPointerY = currentY;
|
|
998
998
|
}
|
|
999
|
-
handleMouseUp(
|
|
999
|
+
handleMouseUp(e) {
|
|
1000
1000
|
if (!this.isDragging) return;
|
|
1001
1001
|
this.isDragging = false;
|
|
1002
1002
|
this.canvas.style.cursor = this.allowPan ? "grab" : "default";
|
|
1003
1003
|
}
|
|
1004
|
-
handleWheel(
|
|
1004
|
+
handleWheel(e) {
|
|
1005
1005
|
if (!this.allowZoom) return;
|
|
1006
|
-
|
|
1006
|
+
e.preventDefault();
|
|
1007
1007
|
const rect = this.canvas.getBoundingClientRect();
|
|
1008
|
-
const x =
|
|
1009
|
-
const y =
|
|
1010
|
-
const delta =
|
|
1008
|
+
const x = e.clientX - rect.left;
|
|
1009
|
+
const y = e.clientY - rect.top;
|
|
1010
|
+
const delta = e.deltaY > 0 ? -this.scaleStep * 0.5 : this.scaleStep * 0.5;
|
|
1011
1011
|
this.zoomAtPoint(this.scale + delta, x, y);
|
|
1012
1012
|
}
|
|
1013
1013
|
// Touch events
|
|
1014
|
-
handleTouchStart(
|
|
1015
|
-
if (
|
|
1016
|
-
|
|
1017
|
-
const touch =
|
|
1014
|
+
handleTouchStart(e) {
|
|
1015
|
+
if (e.touches.length === 1 && this.allowPan) {
|
|
1016
|
+
e.preventDefault();
|
|
1017
|
+
const touch = e.touches[0];
|
|
1018
1018
|
const rect = this.canvas.getBoundingClientRect();
|
|
1019
1019
|
this.isDragging = true;
|
|
1020
1020
|
this.lastPointerX = touch.clientX - rect.left;
|
|
1021
1021
|
this.lastPointerY = touch.clientY - rect.top;
|
|
1022
1022
|
}
|
|
1023
1023
|
}
|
|
1024
|
-
handleTouchMove(
|
|
1025
|
-
if (
|
|
1026
|
-
|
|
1027
|
-
const touch =
|
|
1024
|
+
handleTouchMove(e) {
|
|
1025
|
+
if (e.touches.length === 1 && this.isDragging && this.allowPan) {
|
|
1026
|
+
e.preventDefault();
|
|
1027
|
+
const touch = e.touches[0];
|
|
1028
1028
|
const rect = this.canvas.getBoundingClientRect();
|
|
1029
1029
|
const currentX = touch.clientX - rect.left;
|
|
1030
1030
|
const currentY = touch.clientY - rect.top;
|
|
@@ -1035,38 +1035,38 @@ class ImageTransformView extends ImageCanvasView {
|
|
|
1035
1035
|
this.lastPointerY = currentY;
|
|
1036
1036
|
}
|
|
1037
1037
|
}
|
|
1038
|
-
handleTouchEnd(
|
|
1038
|
+
handleTouchEnd(e) {
|
|
1039
1039
|
this.isDragging = false;
|
|
1040
1040
|
}
|
|
1041
1041
|
// Keyboard shortcuts
|
|
1042
|
-
handleKeyboard(
|
|
1043
|
-
if (
|
|
1044
|
-
switch (
|
|
1042
|
+
handleKeyboard(e) {
|
|
1043
|
+
if (e.target.tagName === "INPUT" || e.target.tagName === "TEXTAREA") return;
|
|
1044
|
+
switch (e.key) {
|
|
1045
1045
|
case "+":
|
|
1046
1046
|
case "=":
|
|
1047
1047
|
if (this.allowZoom) {
|
|
1048
|
-
|
|
1048
|
+
e.preventDefault();
|
|
1049
1049
|
this.zoomIn();
|
|
1050
1050
|
}
|
|
1051
1051
|
break;
|
|
1052
1052
|
case "-":
|
|
1053
1053
|
if (this.allowZoom) {
|
|
1054
|
-
|
|
1054
|
+
e.preventDefault();
|
|
1055
1055
|
this.zoomOut();
|
|
1056
1056
|
}
|
|
1057
1057
|
break;
|
|
1058
1058
|
case "0":
|
|
1059
|
-
|
|
1059
|
+
e.preventDefault();
|
|
1060
1060
|
this.fitToContainer();
|
|
1061
1061
|
break;
|
|
1062
1062
|
case "1":
|
|
1063
|
-
|
|
1063
|
+
e.preventDefault();
|
|
1064
1064
|
this.actualSize();
|
|
1065
1065
|
break;
|
|
1066
1066
|
case "r":
|
|
1067
1067
|
case "R":
|
|
1068
1068
|
if (this.allowRotate) {
|
|
1069
|
-
|
|
1069
|
+
e.preventDefault();
|
|
1070
1070
|
this.rotateRight();
|
|
1071
1071
|
}
|
|
1072
1072
|
break;
|
|
@@ -1515,12 +1515,12 @@ class ImageCropView extends ImageCanvasView {
|
|
|
1515
1515
|
}
|
|
1516
1516
|
setupCropListeners() {
|
|
1517
1517
|
if (!this.canvas) return;
|
|
1518
|
-
this.canvas.addEventListener("mousedown", (
|
|
1518
|
+
this.canvas.addEventListener("mousedown", (e) => this.handleMouseDown(e));
|
|
1519
1519
|
document.addEventListener("mousemove", this._handleMouseMove);
|
|
1520
1520
|
document.addEventListener("mouseup", this._handleMouseUp);
|
|
1521
|
-
this.canvas.addEventListener("touchstart", (
|
|
1522
|
-
this.canvas.addEventListener("touchmove", (
|
|
1523
|
-
this.canvas.addEventListener("touchend", (
|
|
1521
|
+
this.canvas.addEventListener("touchstart", (e) => this.handleTouchStart(e), { passive: false });
|
|
1522
|
+
this.canvas.addEventListener("touchmove", (e) => this.handleTouchMove(e), { passive: false });
|
|
1523
|
+
this.canvas.addEventListener("touchend", (e) => this.handleTouchEnd(e));
|
|
1524
1524
|
this.canvas.style.cursor = "crosshair";
|
|
1525
1525
|
}
|
|
1526
1526
|
// Override renderCanvas to include crop overlay
|
|
@@ -1650,12 +1650,12 @@ class ImageCropView extends ImageCanvasView {
|
|
|
1650
1650
|
});
|
|
1651
1651
|
}
|
|
1652
1652
|
// Mouse interaction
|
|
1653
|
-
handleMouseDown(
|
|
1653
|
+
handleMouseDown(e) {
|
|
1654
1654
|
if (!this.cropMode) return;
|
|
1655
|
-
|
|
1655
|
+
e.preventDefault();
|
|
1656
1656
|
const rect = this.canvas.getBoundingClientRect();
|
|
1657
|
-
const canvasX =
|
|
1658
|
-
const canvasY =
|
|
1657
|
+
const canvasX = e.clientX - rect.left;
|
|
1658
|
+
const canvasY = e.clientY - rect.top;
|
|
1659
1659
|
const imagePoint = this.pointCanvasToImage(canvasX, canvasY);
|
|
1660
1660
|
this.dragStartImageX = imagePoint.x;
|
|
1661
1661
|
this.dragStartImageY = imagePoint.y;
|
|
@@ -1679,11 +1679,11 @@ class ImageCropView extends ImageCanvasView {
|
|
|
1679
1679
|
}
|
|
1680
1680
|
}
|
|
1681
1681
|
}
|
|
1682
|
-
handleMouseMove(
|
|
1682
|
+
handleMouseMove(e) {
|
|
1683
1683
|
if (!this.cropMode) return;
|
|
1684
1684
|
const rect = this.canvas.getBoundingClientRect();
|
|
1685
|
-
const canvasX =
|
|
1686
|
-
const canvasY =
|
|
1685
|
+
const canvasX = e.clientX - rect.left;
|
|
1686
|
+
const canvasY = e.clientY - rect.top;
|
|
1687
1687
|
if (this.isResizing && this.dragHandle) {
|
|
1688
1688
|
this.resizeCropBox(canvasX, canvasY);
|
|
1689
1689
|
} else if (this.isDragging) {
|
|
@@ -1692,7 +1692,7 @@ class ImageCropView extends ImageCanvasView {
|
|
|
1692
1692
|
this.updateCursor(canvasX, canvasY);
|
|
1693
1693
|
}
|
|
1694
1694
|
}
|
|
1695
|
-
handleMouseUp(
|
|
1695
|
+
handleMouseUp(e) {
|
|
1696
1696
|
if (!this.cropMode) return;
|
|
1697
1697
|
this.isDragging = false;
|
|
1698
1698
|
this.isResizing = false;
|
|
@@ -1700,15 +1700,15 @@ class ImageCropView extends ImageCanvasView {
|
|
|
1700
1700
|
this.initialCropBox = null;
|
|
1701
1701
|
this.newCropStart = null;
|
|
1702
1702
|
const rect = this.canvas.getBoundingClientRect();
|
|
1703
|
-
const canvasX =
|
|
1704
|
-
const canvasY =
|
|
1703
|
+
const canvasX = e.clientX - rect.left;
|
|
1704
|
+
const canvasY = e.clientY - rect.top;
|
|
1705
1705
|
this.updateCursor(canvasX, canvasY);
|
|
1706
1706
|
}
|
|
1707
1707
|
// Touch events
|
|
1708
|
-
handleTouchStart(
|
|
1709
|
-
if (!this.cropMode ||
|
|
1710
|
-
|
|
1711
|
-
const touch =
|
|
1708
|
+
handleTouchStart(e) {
|
|
1709
|
+
if (!this.cropMode || e.touches.length !== 1) return;
|
|
1710
|
+
e.preventDefault();
|
|
1711
|
+
const touch = e.touches[0];
|
|
1712
1712
|
const rect = this.canvas.getBoundingClientRect();
|
|
1713
1713
|
touch.clientX - rect.left;
|
|
1714
1714
|
touch.clientY - rect.top;
|
|
@@ -2108,7 +2108,7 @@ class ImageCropView extends ImageCanvasView {
|
|
|
2108
2108
|
}
|
|
2109
2109
|
// Cleanup
|
|
2110
2110
|
// Action handlers for toolbar buttons
|
|
2111
|
-
async onPassThruActionSetAspectRatio(
|
|
2111
|
+
async onPassThruActionSetAspectRatio(e, el) {
|
|
2112
2112
|
const ratio = el.getAttribute("data-ratio");
|
|
2113
2113
|
const aspectRatio = ratio === "free" ? null : parseFloat(ratio);
|
|
2114
2114
|
this.setAspectRatio(aspectRatio);
|
|
@@ -2683,14 +2683,14 @@ class ImageFiltersView extends ImageCanvasView {
|
|
|
2683
2683
|
async onPassThruActionResetFilters() {
|
|
2684
2684
|
this.resetFilters();
|
|
2685
2685
|
}
|
|
2686
|
-
async onPassThruActionApplyPreset(
|
|
2687
|
-
|
|
2686
|
+
async onPassThruActionApplyPreset(e, el) {
|
|
2687
|
+
e.preventDefault();
|
|
2688
2688
|
const presetName = el.getAttribute("data-preset");
|
|
2689
2689
|
if (presetName && this.presetEffects[presetName]) {
|
|
2690
2690
|
this.applyPreset(presetName);
|
|
2691
2691
|
}
|
|
2692
2692
|
}
|
|
2693
|
-
async onPassThruActionPreviewOriginal(
|
|
2693
|
+
async onPassThruActionPreviewOriginal(e, el) {
|
|
2694
2694
|
const isPreviewing = el.dataset.previewing === "true";
|
|
2695
2695
|
if (isPreviewing) {
|
|
2696
2696
|
this.context.clearRect(0, 0, this.canvasWidth, this.canvasHeight);
|
|
@@ -2703,7 +2703,7 @@ class ImageFiltersView extends ImageCanvasView {
|
|
|
2703
2703
|
}
|
|
2704
2704
|
}
|
|
2705
2705
|
// Change Handler for filter sliders
|
|
2706
|
-
async onChangeFilterChange(
|
|
2706
|
+
async onChangeFilterChange(e, el) {
|
|
2707
2707
|
const filterName = el.getAttribute("data-filter");
|
|
2708
2708
|
const value = parseFloat(el.value);
|
|
2709
2709
|
this.updateFilter(filterName, value);
|
|
@@ -3088,7 +3088,7 @@ class ImageEditor extends View {
|
|
|
3088
3088
|
});
|
|
3089
3089
|
}
|
|
3090
3090
|
// Action handlers
|
|
3091
|
-
async handleActionSwitchMode(
|
|
3091
|
+
async handleActionSwitchMode(e, el) {
|
|
3092
3092
|
const mode = el.getAttribute("data-mode");
|
|
3093
3093
|
await this.switchMode(mode);
|
|
3094
3094
|
}
|
|
@@ -3483,33 +3483,33 @@ class ImageUploadView extends View {
|
|
|
3483
3483
|
document.addEventListener(eventName, this._preventDefaults);
|
|
3484
3484
|
});
|
|
3485
3485
|
}
|
|
3486
|
-
preventDefaults(
|
|
3487
|
-
|
|
3488
|
-
|
|
3486
|
+
preventDefaults(e) {
|
|
3487
|
+
e.preventDefault();
|
|
3488
|
+
e.stopPropagation();
|
|
3489
3489
|
}
|
|
3490
|
-
handleDragOver(
|
|
3491
|
-
this.preventDefaults(
|
|
3490
|
+
handleDragOver(e) {
|
|
3491
|
+
this.preventDefaults(e);
|
|
3492
3492
|
this.dropZone.classList.add("border-primary", "bg-light");
|
|
3493
3493
|
this.dropZone.style.borderColor = "#0d6efd";
|
|
3494
3494
|
}
|
|
3495
|
-
handleDragLeave(
|
|
3496
|
-
this.preventDefaults(
|
|
3497
|
-
if (!this.dropZone.contains(
|
|
3495
|
+
handleDragLeave(e) {
|
|
3496
|
+
this.preventDefaults(e);
|
|
3497
|
+
if (!this.dropZone.contains(e.relatedTarget)) {
|
|
3498
3498
|
this.dropZone.classList.remove("border-primary", "bg-light");
|
|
3499
3499
|
this.dropZone.style.borderColor = "#dee2e6";
|
|
3500
3500
|
}
|
|
3501
3501
|
}
|
|
3502
|
-
async handleDrop(
|
|
3503
|
-
this.preventDefaults(
|
|
3502
|
+
async handleDrop(e) {
|
|
3503
|
+
this.preventDefaults(e);
|
|
3504
3504
|
this.dropZone.classList.remove("border-primary", "bg-light");
|
|
3505
3505
|
this.dropZone.style.borderColor = "#dee2e6";
|
|
3506
|
-
const files = Array.from(
|
|
3506
|
+
const files = Array.from(e.dataTransfer.files);
|
|
3507
3507
|
if (files.length > 0) {
|
|
3508
3508
|
await this.processFile(files[0]);
|
|
3509
3509
|
}
|
|
3510
3510
|
}
|
|
3511
|
-
async handleFileSelect(
|
|
3512
|
-
const files = Array.from(
|
|
3511
|
+
async handleFileSelect(e) {
|
|
3512
|
+
const files = Array.from(e.target.files);
|
|
3513
3513
|
if (files.length > 0) {
|
|
3514
3514
|
await this.processFile(files[0]);
|
|
3515
3515
|
}
|
|
@@ -3583,9 +3583,9 @@ class ImageUploadView extends View {
|
|
|
3583
3583
|
const formData = new FormData();
|
|
3584
3584
|
formData.append("image", file);
|
|
3585
3585
|
const xhr = new XMLHttpRequest();
|
|
3586
|
-
xhr.upload.addEventListener("progress", (
|
|
3587
|
-
if (
|
|
3588
|
-
const progress = Math.round(
|
|
3586
|
+
xhr.upload.addEventListener("progress", (e) => {
|
|
3587
|
+
if (e.lengthComputable) {
|
|
3588
|
+
const progress = Math.round(e.loaded / e.total * 100);
|
|
3589
3589
|
this.updateProgress(progress);
|
|
3590
3590
|
}
|
|
3591
3591
|
});
|
|
@@ -3594,7 +3594,7 @@ class ImageUploadView extends View {
|
|
|
3594
3594
|
try {
|
|
3595
3595
|
const response = JSON.parse(xhr.responseText);
|
|
3596
3596
|
resolve(response);
|
|
3597
|
-
} catch (
|
|
3597
|
+
} catch (e) {
|
|
3598
3598
|
resolve({ success: true, response: xhr.responseText });
|
|
3599
3599
|
}
|
|
3600
3600
|
} else {
|
|
@@ -3727,11 +3727,11 @@ export {
|
|
|
3727
3727
|
ImageViewer,
|
|
3728
3728
|
L as LightboxGallery,
|
|
3729
3729
|
P as PDFViewer,
|
|
3730
|
-
|
|
3731
|
-
|
|
3732
|
-
|
|
3733
|
-
|
|
3734
|
-
|
|
3730
|
+
a as VERSION,
|
|
3731
|
+
V as VERSION_INFO,
|
|
3732
|
+
b as VERSION_MAJOR,
|
|
3733
|
+
c as VERSION_MINOR,
|
|
3734
|
+
d as VERSION_REVISION,
|
|
3735
3735
|
W as WebApp
|
|
3736
3736
|
};
|
|
3737
3737
|
//# sourceMappingURL=lightbox.es.js.map
|