@corva/ui 3.82.0-0 → 3.82.0-2

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.
Files changed (111) hide show
  1. package/cjs-bundle/components/CommentComposer/CommentComposer.js +1 -1
  2. package/cjs-bundle/components/CommentComposer/CommentComposer.js.map +1 -1
  3. package/cjs-bundle/components/CommentInputNext/CommentInputNext.scss.js +1 -1
  4. package/cjs-bundle/componentsV2/ImageViewer/GalleryImageStatus.js +2 -0
  5. package/cjs-bundle/componentsV2/ImageViewer/GalleryImageStatus.js.map +1 -0
  6. package/cjs-bundle/componentsV2/ImageViewer/GalleryImageViewer.js +2 -0
  7. package/cjs-bundle/componentsV2/ImageViewer/GalleryImageViewer.js.map +1 -0
  8. package/cjs-bundle/componentsV2/ImageViewer/GalleryToolbar.js +2 -0
  9. package/cjs-bundle/componentsV2/ImageViewer/GalleryToolbar.js.map +1 -0
  10. package/cjs-bundle/componentsV2/ImageViewer/GalleryViewer.scss.js +2 -0
  11. package/cjs-bundle/componentsV2/ImageViewer/GalleryViewer.scss.js.map +1 -0
  12. package/cjs-bundle/componentsV2/ImageViewer/ImageViewer.js +1 -1
  13. package/cjs-bundle/componentsV2/ImageViewer/ImageViewer.js.map +1 -1
  14. package/cjs-bundle/componentsV2/ImageViewer/legacyWheel.js +2 -0
  15. package/cjs-bundle/componentsV2/ImageViewer/legacyWheel.js.map +1 -0
  16. package/cjs-bundle/componentsV2/ImageViewer/legacyZoom.js +2 -0
  17. package/cjs-bundle/componentsV2/ImageViewer/legacyZoom.js.map +1 -0
  18. package/cjs-bundle/componentsV2/ImageViewer/logicalSlides.js +2 -0
  19. package/cjs-bundle/componentsV2/ImageViewer/logicalSlides.js.map +1 -0
  20. package/cjs-bundle/componentsV2/ImageViewer/registerLegacyLifecycle.js +2 -0
  21. package/cjs-bundle/componentsV2/ImageViewer/registerLegacyLifecycle.js.map +1 -0
  22. package/cjs-bundle/componentsV2/ImageViewer/registerLegacyToolbar.js +2 -0
  23. package/cjs-bundle/componentsV2/ImageViewer/registerLegacyToolbar.js.map +1 -0
  24. package/cjs-bundle/componentsV2/ImageViewer/registerLegacyWheel.js +2 -0
  25. package/cjs-bundle/componentsV2/ImageViewer/registerLegacyWheel.js.map +1 -0
  26. package/cjs-bundle/componentsV2/ImageViewer/registerSourceToolbar.js +2 -0
  27. package/cjs-bundle/componentsV2/ImageViewer/registerSourceToolbar.js.map +1 -0
  28. package/cjs-bundle/componentsV2/ImageViewer/registerViewerWindow.js +2 -0
  29. package/cjs-bundle/componentsV2/ImageViewer/registerViewerWindow.js.map +1 -0
  30. package/cjs-bundle/componentsV2/ImageViewer/useImageDimensions.js +2 -0
  31. package/cjs-bundle/componentsV2/ImageViewer/useImageDimensions.js.map +1 -0
  32. package/components/CommentComposer/CommentComposer.d.ts +7 -1
  33. package/components/CommentComposer/CommentComposer.d.ts.map +1 -1
  34. package/components/CommentComposer/CommentComposer.js +1 -1
  35. package/components/CommentComposer/CommentComposer.js.map +1 -1
  36. package/components/CommentComposer/__tests__/CommentComposer.trailing.test.d.ts +2 -0
  37. package/components/CommentComposer/__tests__/CommentComposer.trailing.test.d.ts.map +1 -0
  38. package/components/CommentInputNext/CommentInputNext.scss.js +1 -1
  39. package/componentsV2/ImageViewer/GalleryImageStatus.d.ts +8 -0
  40. package/componentsV2/ImageViewer/GalleryImageStatus.d.ts.map +1 -0
  41. package/componentsV2/ImageViewer/GalleryImageStatus.js +2 -0
  42. package/componentsV2/ImageViewer/GalleryImageStatus.js.map +1 -0
  43. package/componentsV2/ImageViewer/GalleryImageViewer.d.ts +6 -0
  44. package/componentsV2/ImageViewer/GalleryImageViewer.d.ts.map +1 -0
  45. package/componentsV2/ImageViewer/GalleryImageViewer.js +2 -0
  46. package/componentsV2/ImageViewer/GalleryImageViewer.js.map +1 -0
  47. package/componentsV2/ImageViewer/GalleryToolbar.d.ts +7 -0
  48. package/componentsV2/ImageViewer/GalleryToolbar.d.ts.map +1 -0
  49. package/componentsV2/ImageViewer/GalleryToolbar.js +2 -0
  50. package/componentsV2/ImageViewer/GalleryToolbar.js.map +1 -0
  51. package/componentsV2/ImageViewer/GalleryViewer.scss.js +2 -0
  52. package/componentsV2/ImageViewer/GalleryViewer.scss.js.map +1 -0
  53. package/componentsV2/ImageViewer/ImageViewer.d.ts +3 -9
  54. package/componentsV2/ImageViewer/ImageViewer.d.ts.map +1 -1
  55. package/componentsV2/ImageViewer/ImageViewer.js +1 -1
  56. package/componentsV2/ImageViewer/ImageViewer.js.map +1 -1
  57. package/componentsV2/ImageViewer/ImageViewer.stories.d.ts +11 -0
  58. package/componentsV2/ImageViewer/ImageViewer.stories.d.ts.map +1 -0
  59. package/componentsV2/ImageViewer/__tests__/ImageViewerGallery.test.d.ts +2 -0
  60. package/componentsV2/ImageViewer/__tests__/ImageViewerGallery.test.d.ts.map +1 -0
  61. package/componentsV2/ImageViewer/__tests__/ImageViewerIsolation.test.d.ts +2 -0
  62. package/componentsV2/ImageViewer/__tests__/ImageViewerIsolation.test.d.ts.map +1 -0
  63. package/componentsV2/ImageViewer/__tests__/ImageViewerLegacy.test.d.ts +2 -0
  64. package/componentsV2/ImageViewer/__tests__/ImageViewerLegacy.test.d.ts.map +1 -0
  65. package/componentsV2/ImageViewer/__tests__/ImageViewerLoading.test.d.ts +2 -0
  66. package/componentsV2/ImageViewer/__tests__/ImageViewerLoading.test.d.ts.map +1 -0
  67. package/componentsV2/ImageViewer/__tests__/ImageViewerNested.test.d.ts +2 -0
  68. package/componentsV2/ImageViewer/__tests__/ImageViewerNested.test.d.ts.map +1 -0
  69. package/componentsV2/ImageViewer/__tests__/fixtures.d.ts +8 -0
  70. package/componentsV2/ImageViewer/__tests__/fixtures.d.ts.map +1 -0
  71. package/componentsV2/ImageViewer/legacyWheel.d.ts +22 -0
  72. package/componentsV2/ImageViewer/legacyWheel.d.ts.map +1 -0
  73. package/componentsV2/ImageViewer/legacyWheel.js +2 -0
  74. package/componentsV2/ImageViewer/legacyWheel.js.map +1 -0
  75. package/componentsV2/ImageViewer/legacyZoom.d.ts +6 -0
  76. package/componentsV2/ImageViewer/legacyZoom.d.ts.map +1 -0
  77. package/componentsV2/ImageViewer/legacyZoom.js +2 -0
  78. package/componentsV2/ImageViewer/legacyZoom.js.map +1 -0
  79. package/componentsV2/ImageViewer/logicalSlides.d.ts +4 -0
  80. package/componentsV2/ImageViewer/logicalSlides.d.ts.map +1 -0
  81. package/componentsV2/ImageViewer/logicalSlides.js +2 -0
  82. package/componentsV2/ImageViewer/logicalSlides.js.map +1 -0
  83. package/componentsV2/ImageViewer/registerLegacyLifecycle.d.ts +7 -0
  84. package/componentsV2/ImageViewer/registerLegacyLifecycle.d.ts.map +1 -0
  85. package/componentsV2/ImageViewer/registerLegacyLifecycle.js +2 -0
  86. package/componentsV2/ImageViewer/registerLegacyLifecycle.js.map +1 -0
  87. package/componentsV2/ImageViewer/registerLegacyToolbar.d.ts +3 -0
  88. package/componentsV2/ImageViewer/registerLegacyToolbar.d.ts.map +1 -0
  89. package/componentsV2/ImageViewer/registerLegacyToolbar.js +2 -0
  90. package/componentsV2/ImageViewer/registerLegacyToolbar.js.map +1 -0
  91. package/componentsV2/ImageViewer/registerLegacyWheel.d.ts +3 -0
  92. package/componentsV2/ImageViewer/registerLegacyWheel.d.ts.map +1 -0
  93. package/componentsV2/ImageViewer/registerLegacyWheel.js +2 -0
  94. package/componentsV2/ImageViewer/registerLegacyWheel.js.map +1 -0
  95. package/componentsV2/ImageViewer/registerSourceToolbar.d.ts +3 -0
  96. package/componentsV2/ImageViewer/registerSourceToolbar.d.ts.map +1 -0
  97. package/componentsV2/ImageViewer/registerSourceToolbar.js +2 -0
  98. package/componentsV2/ImageViewer/registerSourceToolbar.js.map +1 -0
  99. package/componentsV2/ImageViewer/registerViewerWindow.d.ts +4 -0
  100. package/componentsV2/ImageViewer/registerViewerWindow.d.ts.map +1 -0
  101. package/componentsV2/ImageViewer/registerViewerWindow.js +2 -0
  102. package/componentsV2/ImageViewer/registerViewerWindow.js.map +1 -0
  103. package/componentsV2/ImageViewer/types.d.ts +31 -0
  104. package/componentsV2/ImageViewer/types.d.ts.map +1 -0
  105. package/componentsV2/ImageViewer/useImageDimensions.d.ts +6 -0
  106. package/componentsV2/ImageViewer/useImageDimensions.d.ts.map +1 -0
  107. package/componentsV2/ImageViewer/useImageDimensions.js +2 -0
  108. package/componentsV2/ImageViewer/useImageDimensions.js.map +1 -0
  109. package/mcp-server/server.mjs +8 -3
  110. package/package.json +1 -1
  111. package/tsconfig.tsbuildinfo +1 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ImageViewerLegacy.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageViewerLegacy.test.d.ts","sourceRoot":"","sources":["../../../../src/componentsV2/ImageViewer/__tests__/ImageViewerLegacy.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ImageViewerLoading.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageViewerLoading.test.d.ts","sourceRoot":"","sources":["../../../../src/componentsV2/ImageViewer/__tests__/ImageViewerLoading.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ImageViewerNested.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageViewerNested.test.d.ts","sourceRoot":"","sources":["../../../../src/componentsV2/ImageViewer/__tests__/ImageViewerNested.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ export declare const images: {
2
+ id: string;
3
+ src: string;
4
+ width: number;
5
+ height: number;
6
+ alt: string;
7
+ }[];
8
+ //# sourceMappingURL=fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../../src/componentsV2/ImageViewer/__tests__/fixtures.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;GAKlB,CAAC"}
@@ -0,0 +1,22 @@
1
+ type Point = {
2
+ x: number;
3
+ y: number;
4
+ };
5
+ type Input = {
6
+ deltaX: number;
7
+ deltaY: number;
8
+ clientX: number;
9
+ clientY: number;
10
+ isOnImage: boolean;
11
+ };
12
+ type Options = {
13
+ zoom: (delta: number, point: Point) => void;
14
+ move: (direction: number) => void;
15
+ isAnimating: () => boolean;
16
+ };
17
+ export declare const createLegacyWheel: ({ zoom, move, isAnimating }: Options) => {
18
+ handle: ({ deltaX, deltaY, clientX, clientY, isOnImage }: Input) => void;
19
+ dispose: () => void;
20
+ };
21
+ export {};
22
+ //# sourceMappingURL=legacyWheel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacyWheel.d.ts","sourceRoot":"","sources":["../../../src/componentsV2/ImageViewer/legacyWheel.ts"],"names":[],"mappings":"AAAA,KAAK,KAAK,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACtC,KAAK,KAAK,GAAG;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AACF,KAAK,OAAO,GAAG;IACb,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC5C,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,EAAE,MAAM,OAAO,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,iBAAiB,gCAAiC,OAAO;IAMlE,MAAM,oDAAoD,KAAK;IA0B/D,OAAO;CAMV,CAAC"}
@@ -0,0 +1,2 @@
1
+ var t=function(t){var i,a,e=t.zoom,n=t.move,o=t.isAnimating,r=0,u=!1;return{handle:function(t){var s=t.deltaX,c=t.deltaY,f=t.clientX,m=t.clientY,l=t.isOnImage;if(!u){if(l&&Math.abs(c)>=Math.abs(s)){if(Math.abs(c)<1)return;return r=0,void e(-c,{x:f,y:m})}if(clearTimeout(i),i=setTimeout((function(){r=0}),300),void 0===a&&!o()&&Math.abs(c)<Math.abs(s)){var v=(r+=s)>=200||s>=100?1:r<=-200||s<=-100?-1:0;v&&(n(v),r=0,a=setTimeout((function(){a=void 0}),500))}}},dispose:function(){u=!0,clearTimeout(i),clearTimeout(a)}}};export{t as createLegacyWheel};
2
+ //# sourceMappingURL=legacyWheel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacyWheel.js","sources":["../../../src/componentsV2/ImageViewer/legacyWheel.ts"],"sourcesContent":["type Point = { x: number; y: number };\ntype Input = {\n deltaX: number;\n deltaY: number;\n clientX: number;\n clientY: number;\n isOnImage: boolean;\n};\ntype Options = {\n zoom: (delta: number, point: Point) => void;\n move: (direction: number) => void;\n isAnimating: () => boolean;\n};\n\nexport const createLegacyWheel = ({ zoom, move, isAnimating }: Options) => {\n let scrollX = 0;\n let resetTimer: ReturnType<typeof setTimeout> | undefined;\n let actionTimer: ReturnType<typeof setTimeout> | undefined;\n let isDisposed = false;\n return {\n handle: ({ deltaX, deltaY, clientX, clientY, isOnImage }: Input) => {\n if (isDisposed) return;\n if (isOnImage && Math.abs(deltaY) >= Math.abs(deltaX)) {\n if (Math.abs(deltaY) < 1) return;\n scrollX = 0;\n zoom(-deltaY, { x: clientX, y: clientY });\n return;\n }\n clearTimeout(resetTimer);\n resetTimer = setTimeout(() => {\n scrollX = 0;\n }, 300);\n if (actionTimer !== undefined || isAnimating()) return;\n if (Math.abs(deltaY) < Math.abs(deltaX)) {\n scrollX += deltaX;\n const direction =\n scrollX >= 200 || deltaX >= 100 ? 1 : scrollX <= -200 || deltaX <= -100 ? -1 : 0;\n if (direction) {\n move(direction);\n scrollX = 0;\n actionTimer = setTimeout(() => {\n actionTimer = undefined;\n }, 500);\n }\n }\n },\n dispose: () => {\n isDisposed = true;\n clearTimeout(resetTimer);\n clearTimeout(actionTimer);\n },\n };\n};\n"],"names":["createLegacyWheel","_ref","resetTimer","actionTimer","zoom","move","isAnimating","scrollX","isDisposed","handle","_ref2","deltaX","deltaY","clientX","clientY","isOnImage","Math","abs","x","y","clearTimeout","setTimeout","undefined","direction","dispose"],"mappings":"AAcaA,IAAAA,EAAoB,SAA0CC,GAAA,IAErEC,EACAC,EAH8BC,IAAAA,KAAMC,IAAAA,KAAMC,IAAAA,YAC1CC,EAAU,EAGVC,GAAa,EACjB,MAAO,CACLC,OAAQ,SAA4DC,GAAA,IAAzDC,IAAAA,OAAQC,IAAAA,OAAQC,IAAAA,QAASC,IAAAA,QAASC,IAAAA,UAC3C,IAAIP,EAAJ,CACA,GAAIO,GAAaC,KAAKC,IAAIL,IAAWI,KAAKC,IAAIN,GAAS,CACrD,GAAIK,KAAKC,IAAIL,GAAU,EAAG,OAG1B,OAFAL,EAAU,OACVH,GAAMQ,EAAQ,CAAEM,EAAGL,EAASM,EAAGL,GAEjC,CAKA,GAJAM,aAAalB,GACbA,EAAamB,YAAW,WACtBd,EAAU,CACX,GAAE,UACiBe,IAAhBnB,IAA6BG,KAC7BU,KAAKC,IAAIL,GAAUI,KAAKC,IAAIN,GAAS,CAEvC,IAAMY,GADNhB,GAAWI,IAEE,KAAOA,GAAU,IAAM,EAAIJ,IAAY,KAAOI,IAAW,KAAO,EAAI,EAC7EY,IACFlB,EAAKkB,GACLhB,EAAU,EACVJ,EAAckB,YAAW,WACvBlB,OAAcmB,CACf,GAAE,KAEP,CAvBgB,CAwBjB,EACDE,QAAS,WACPhB,GAAa,EACbY,aAAalB,GACbkB,aAAajB,EACf,EAEJ"}
@@ -0,0 +1,6 @@
1
+ export declare const LEGACY_MAX_LEVEL = 300;
2
+ export declare const LEGACY_STEP = 100;
3
+ export declare const getLegacyScale: (fit: number, level: number) => number;
4
+ export declare const getLegacyLevel: (fit: number, scale: number) => number;
5
+ export declare const getNextLegacyLevel: (level: number, delta: number) => number;
6
+ //# sourceMappingURL=legacyZoom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacyZoom.d.ts","sourceRoot":"","sources":["../../../src/componentsV2/ImageViewer/legacyZoom.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC,eAAO,MAAM,WAAW,MAAM,CAAC;AAC/B,eAAO,MAAM,cAAc,QAAS,MAAM,SAAS,MAAM,WAAyB,CAAC;AACnF,eAAO,MAAM,cAAc,QAAS,MAAM,SAAS,MAAM,WAKxD,CAAC;AACF,eAAO,MAAM,kBAAkB,UAAW,MAAM,SAAS,MAAM,WACP,CAAC"}
@@ -0,0 +1,2 @@
1
+ var t=300,n=100,r=function(t,n){return t*Math.pow(1.007,n)},a=function(t,n){var r=Math.log(n/t)/Math.log(1.007);return r<1e-6?0:r>299.999999?300:r},o=function(t,n){return Math.max(0,Math.min(300,t+n))};export{t as LEGACY_MAX_LEVEL,n as LEGACY_STEP,a as getLegacyLevel,r as getLegacyScale,o as getNextLegacyLevel};
2
+ //# sourceMappingURL=legacyZoom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacyZoom.js","sources":["../../../src/componentsV2/ImageViewer/legacyZoom.ts"],"sourcesContent":["export const LEGACY_MAX_LEVEL = 300;\nexport const LEGACY_STEP = 100;\nexport const getLegacyScale = (fit: number, level: number) => fit * 1.007 ** level;\nexport const getLegacyLevel = (fit: number, scale: number) => {\n const level = Math.log(scale / fit) / Math.log(1.007);\n if (level < 0.000001) return 0;\n if (level > LEGACY_MAX_LEVEL - 0.000001) return LEGACY_MAX_LEVEL;\n return level;\n};\nexport const getNextLegacyLevel = (level: number, delta: number) =>\n Math.max(0, Math.min(LEGACY_MAX_LEVEL, level + delta));\n"],"names":["LEGACY_MAX_LEVEL","LEGACY_STEP","getLegacyScale","fit","level","Math","pow","getLegacyLevel","scale","log","getNextLegacyLevel","delta","max","min"],"mappings":"AAAO,IAAMA,EAAmB,IACnBC,EAAc,IACdC,EAAiB,SAACC,EAAaC,GAAa,OAAKD,EAAGE,KAAAC,IAAG,MAASF,EAAK,EACrEG,EAAiB,SAACJ,EAAaK,GAC1C,IAAMJ,EAAQC,KAAKI,IAAID,EAAQL,GAAOE,KAAKI,IAAI,OAC/C,OAAIL,EAAQ,KAAiB,EACzBA,EAAQJ,WANkB,IAOvBI,CACT,EACaM,EAAqB,SAACN,EAAeO,GAAa,OAC7DN,KAAKO,IAAI,EAAGP,KAAKQ,IAVa,IAUST,EAAQO,GAAO"}
@@ -0,0 +1,4 @@
1
+ export declare const physicalCount: (count: number) => number;
2
+ export declare const logicalIndex: (index: number, count: number) => number;
3
+ export declare const slideAt: <T>(items: T[], index: number) => T;
4
+ //# sourceMappingURL=logicalSlides.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logicalSlides.d.ts","sourceRoot":"","sources":["../../../src/componentsV2/ImageViewer/logicalSlides.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,UAAW,MAAM,WAA8B,CAAC;AAC1E,eAAO,MAAM,YAAY,UAAW,MAAM,SAAS,MAAM,WAAsC,CAAC;AAChG,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,KAAG,CACb,CAAC"}
@@ -0,0 +1,2 @@
1
+ var n=function(n){return 2===n?4:n},r=function(n,r){return(n%r+r)%r},t=function(n,t){return n[r(t,n.length)]};export{r as logicalIndex,n as physicalCount,t as slideAt};
2
+ //# sourceMappingURL=logicalSlides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logicalSlides.js","sources":["../../../src/componentsV2/ImageViewer/logicalSlides.ts"],"sourcesContent":["export const physicalCount = (count: number) => (count === 2 ? 4 : count);\nexport const logicalIndex = (index: number, count: number) => ((index % count) + count) % count;\nexport const slideAt = <T>(items: T[], index: number): T =>\n items[logicalIndex(index, items.length)];\n"],"names":["physicalCount","count","logicalIndex","index","slideAt","items","length"],"mappings":"IAAaA,EAAgB,SAACC,GAAa,OAAgB,IAAVA,EAAc,EAAIA,CAAK,EAC3DC,EAAe,SAACC,EAAeF,GAAa,OAAOE,EAAQF,EAASA,GAASA,CAAK,EAClFG,EAAU,SAAIC,EAAYF,GAAa,OAClDE,EAAMH,EAAaC,EAAOE,EAAMC,QAAQ"}
@@ -0,0 +1,7 @@
1
+ import PhotoSwipeLightbox from 'photoswipe/lightbox';
2
+ export declare const registerLegacyLifecycle: (lightbox: PhotoSwipeLightbox, onClose: () => void, targetWindow?: Window) => {
3
+ closeImmediately: () => void;
4
+ isClosing: () => boolean;
5
+ dispose: () => void;
6
+ };
7
+ //# sourceMappingURL=registerLegacyLifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerLegacyLifecycle.d.ts","sourceRoot":"","sources":["../../../src/componentsV2/ImageViewer/registerLegacyLifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,qBAAqB,CAAC;AAErD,eAAO,MAAM,uBAAuB,aACxB,kBAAkB,WACnB,MAAM,IAAI,iBACL,MAAM;;;;CAwIrB,CAAC"}
@@ -0,0 +1,2 @@
1
+ var e=function(e,t){var n,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window,r=o.document,i=document.activeElement instanceof HTMLElement?document.activeElement:null,l=e.pswp,a=!1,u=!1,d=!1,s=!1,y=function(){n&&(n.forEach((function(e){var t=e.property,n=e.value,o=e.priority;r.body.style.setProperty(t,n,o)})),n=void 0)},f=function(){u||d||(d=!0,t())},v=function(){null!=i&&i.isConnected&&i.focus()},c=function(){var e;null!==(e=l)&&void 0!==e&&e.element&&(l.element.style.display="none")},p=function(){a||u||(a=!0,c(),l?l.destroy():(e.destroy(),s=!0,r.removeEventListener("keydown",m,!0),f()),v())},m=function(e){var t;if("Tab"===e.key&&null!==(t=l)&&void 0!==t&&t.element&&!a&&!u){var n,i=l.element,d=Array.from(i.querySelectorAll("button, [href], input, select, textarea, [tabindex]")).filter((function(e){if(e.tabIndex<0||e.matches(':disabled, [aria-disabled="true"]'))return!1;for(var t=e;t;t=t.parentElement){var n=o.getComputedStyle(t);if(t.hidden||t.hasAttribute("inert")||"true"===t.getAttribute("aria-hidden")||"none"===n.display||"hidden"===n.visibility||"collapse"===n.visibility)return!1;if(t===i)break}return!0})),s=d.findIndex((function(e){return e===r.activeElement})),y=e.shiftKey?s<=0?d.length-1:s-1:(s+1)%d.length;return e.preventDefault(),e.stopPropagation(),void(null!==(n=d[y])&&void 0!==n?n:i).focus()}"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),p())};return r.addEventListener("keydown",m,!0),e.on("afterInit",(function(){var t;l=e.pswp,u||a?c():null!==(t=l)&&void 0!==t&&t.element&&(l.element.setAttribute("aria-label","Lightbox"),l.element.setAttribute("aria-modal","true"),"hidden"!==o.getComputedStyle(r.body).overflow&&(n=["overflow","overflow-x","overflow-y"].map((function(e){return{property:e,value:r.body.style.getPropertyValue(e),priority:r.body.style.getPropertyPriority(e)}})),r.body.style.setProperty("overflow","hidden",n[0].priority)),l.element.focus())})),e.on("openingAnimationEnd",(function(){var e;(a||u)&&(null===(e=l)||void 0===e||e.destroy())})),e.on("close",(function(){var e;a=!0,null!==(e=l)&&void 0!==e&&e.element&&(l.element.style.animation="none")})),e.on("destroy",(function(){s=!0,y(),r.removeEventListener("keydown",m,!0),queueMicrotask((function(){v(),a&&f()}))})),{closeImmediately:p,isClosing:function(){return a||u},dispose:function(){u=!0,y(),r.removeEventListener("keydown",m,!0),s||(c(),e.destroy(),v())}}};export{e as registerLegacyLifecycle};
2
+ //# sourceMappingURL=registerLegacyLifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerLegacyLifecycle.js","sources":["../../../src/componentsV2/ImageViewer/registerLegacyLifecycle.ts"],"sourcesContent":["import PhotoSwipeLightbox from 'photoswipe/lightbox';\n\nexport const registerLegacyLifecycle = (\n lightbox: PhotoSwipeLightbox,\n onClose: () => void,\n targetWindow: Window = window\n) => {\n const targetDocument = targetWindow.document;\n const opener = document.activeElement instanceof HTMLElement ? document.activeElement : null;\n let core = lightbox.pswp;\n let isClosing = false;\n let isDisposed = false;\n let isNotified = false;\n let isDestroyed = false;\n let originalOverflow: { property: string; value: string; priority: string }[] | undefined;\n const restoreOverflow = () => {\n if (!originalOverflow) return;\n originalOverflow.forEach(({ property, value, priority }) => {\n targetDocument.body.style.setProperty(property, value, priority);\n });\n originalOverflow = undefined;\n };\n const notify = () => {\n if (isDisposed || isNotified) return;\n isNotified = true;\n onClose();\n };\n const restoreFocus = () => {\n if (opener?.isConnected) opener.focus();\n };\n const hide = () => {\n if (core?.element) core.element.style.display = 'none';\n };\n const closeImmediately = () => {\n if (isClosing || isDisposed) return;\n isClosing = true;\n hide();\n if (core) core.destroy();\n else {\n // No core exists yet, so no destroy event will be dispatched. Cancel the\n // pending module promise and release our listener before notifying callers.\n lightbox.destroy();\n isDestroyed = true;\n targetDocument.removeEventListener('keydown', handleKeyDown, true);\n notify();\n }\n restoreFocus();\n };\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Tab' && core?.element && !isClosing && !isDisposed) {\n const root = core.element;\n const controls = Array.from(\n root.querySelectorAll<HTMLElement>('button, [href], input, select, textarea, [tabindex]')\n ).filter(control => {\n if (control.tabIndex < 0 || control.matches(':disabled, [aria-disabled=\"true\"]'))\n return false;\n for (let element: HTMLElement | null = control; element; element = element.parentElement) {\n const style = targetWindow.getComputedStyle(element);\n if (\n element.hidden ||\n element.hasAttribute('inert') ||\n element.getAttribute('aria-hidden') === 'true' ||\n style.display === 'none' ||\n style.visibility === 'hidden' ||\n style.visibility === 'collapse'\n )\n return false;\n if (element === root) break;\n }\n return true;\n });\n const index = controls.findIndex(control => control === targetDocument.activeElement);\n const nextIndex = event.shiftKey\n ? index <= 0\n ? controls.length - 1\n : index - 1\n : (index + 1) % controls.length;\n event.preventDefault();\n event.stopPropagation();\n (controls[nextIndex] ?? root).focus();\n return;\n }\n if (event.key !== 'Escape') return;\n event.preventDefault();\n event.stopPropagation();\n closeImmediately();\n };\n targetDocument.addEventListener('keydown', handleKeyDown, true);\n lightbox.on('afterInit', () => {\n core = lightbox.pswp;\n if (isDisposed || isClosing) hide();\n else if (core?.element) {\n core.element.setAttribute('aria-label', 'Lightbox');\n core.element.setAttribute('aria-modal', 'true');\n // An enclosing modal owns an existing lock and may release it before our\n // unmount cleanup. Do not restore its old lock after that parent is gone.\n if (targetWindow.getComputedStyle(targetDocument.body).overflow !== 'hidden') {\n // The shorthand overwrites both axes, including separately declared priorities.\n originalOverflow = ['overflow', 'overflow-x', 'overflow-y'].map(property => ({\n property,\n value: targetDocument.body.style.getPropertyValue(property),\n priority: targetDocument.body.style.getPropertyPriority(property),\n }));\n targetDocument.body.style.setProperty('overflow', 'hidden', originalOverflow[0].priority);\n }\n core.element.focus();\n }\n });\n lightbox.on('openingAnimationEnd', () => {\n // PhotoSwipe ignores destroy while opening. Finish an earlier close or unmount\n // once the opener can close, so its DOM and global instance are released.\n if (isClosing || isDisposed) core?.destroy();\n });\n lightbox.on('close', () => {\n isClosing = true;\n if (core?.element) core.element.style.animation = 'none';\n });\n lightbox.on('destroy', () => {\n isDestroyed = true;\n restoreOverflow();\n targetDocument.removeEventListener('keydown', handleKeyDown, true);\n // destroy is dispatched before DOM/content cleanup and native focus restoration.\n queueMicrotask(() => {\n restoreFocus();\n if (isClosing) notify();\n });\n });\n return {\n closeImmediately,\n isClosing: () => isClosing || isDisposed,\n dispose: () => {\n isDisposed = true;\n restoreOverflow();\n targetDocument.removeEventListener('keydown', handleKeyDown, true);\n if (!isDestroyed) {\n hide();\n lightbox.destroy();\n restoreFocus();\n }\n },\n };\n};\n"],"names":["registerLegacyLifecycle","lightbox","onClose","originalOverflow","targetWindow","window","targetDocument","document","opener","activeElement","HTMLElement","core","pswp","isClosing","isDisposed","isNotified","isDestroyed","restoreOverflow","forEach","_ref","property","value","priority","body","style","setProperty","undefined","notify","restoreFocus","isConnected","focus","hide","_core","element","display","closeImmediately","destroy","removeEventListener","handleKeyDown","event","_core2","key","_controls$nextIndex","root","controls","Array","from","querySelectorAll","filter","control","tabIndex","matches","parentElement","getComputedStyle","hidden","hasAttribute","getAttribute","visibility","index","findIndex","nextIndex","shiftKey","length","preventDefault","stopPropagation","addEventListener","on","_core3","setAttribute","overflow","map","getPropertyValue","getPropertyPriority","_core4","_core5","animation","queueMicrotask","dispose"],"mappings":"AAEO,IAAMA,EAA0B,SACrCC,EACAC,GAEG,IAQCC,EATJC,yDAAuBC,OAEjBC,EAAiBF,EAAaG,SAC9BC,EAASD,SAASE,yBAAyBC,YAAcH,SAASE,cAAgB,KACpFE,EAAOV,EAASW,KAChBC,GAAY,EACZC,GAAa,EACbC,GAAa,EACbC,GAAc,EAEZC,EAAkB,WACjBd,IACLA,EAAiBe,SAAQ,SAAmCC,GAAA,IAAhCC,IAAAA,SAAUC,IAAAA,MAAOC,IAAAA,SAC3ChB,EAAeiB,KAAKC,MAAMC,YAAYL,EAAUC,EAAOC,EACzD,IACAnB,OAAmBuB,IAEfC,EAAS,WACTb,GAAcC,IAClBA,GAAa,EACbb,MAEI0B,EAAe,WACfpB,SAAAA,EAAQqB,aAAarB,EAAOsB,SAE5BC,EAAO,WAAM,IAAAC,EACT,QAARA,EAAIrB,SAAI,IAAAqB,GAAJA,EAAMC,UAAStB,EAAKsB,QAAQT,MAAMU,QAAU,SAE5CC,EAAmB,WACnBtB,GAAaC,IACjBD,GAAY,EACZkB,IACIpB,EAAMA,EAAKyB,WAIbnC,EAASmC,UACTpB,GAAc,EACdV,EAAe+B,oBAAoB,UAAWC,GAAe,GAC7DX,KAEFC,MAEIU,EAAgB,SAACC,GAAyB,IAAAC,EAC9C,GAAkB,QAAdD,EAAME,KAAqB,UAAJ9B,SAAI,IAAA6B,GAAJA,EAAMP,UAAYpB,IAAcC,EAAY,CAAA,IAAA4B,EAC/DC,EAAOhC,EAAKsB,QACZW,EAAWC,MAAMC,KACrBH,EAAKI,iBAA8B,wDACnCC,QAAO,SAAAC,GACP,GAAIA,EAAQC,SAAW,GAAKD,EAAQE,QAAQ,qCAC1C,OAAO,EACT,IAAK,IAAIlB,EAA8BgB,EAAShB,EAASA,EAAUA,EAAQmB,cAAe,CACxF,IAAM5B,EAAQpB,EAAaiD,iBAAiBpB,GAC5C,GACEA,EAAQqB,QACRrB,EAAQsB,aAAa,UACmB,SAAxCtB,EAAQuB,aAAa,gBACH,SAAlBhC,EAAMU,SACe,WAArBV,EAAMiC,YACe,aAArBjC,EAAMiC,WAEN,OAAO,EACT,GAAIxB,IAAYU,EAAM,KACxB,CACA,OAAO,CACT,IACMe,EAAQd,EAASe,WAAU,SAAAV,GAAO,OAAIA,IAAY3C,EAAeG,iBACjEmD,EAAYrB,EAAMsB,SACpBH,GAAS,EACPd,EAASkB,OAAS,EAClBJ,EAAQ,GACTA,EAAQ,GAAKd,EAASkB,OAI3B,OAHAvB,EAAMwB,iBACNxB,EAAMyB,+BACLpB,EAAAA,EAASgB,kBAAcjB,GAAMb,OAEhC,CACkB,WAAdS,EAAME,MACVF,EAAMwB,iBACNxB,EAAMyB,kBACN7B,MA0CF,OAxCA7B,EAAe2D,iBAAiB,UAAW3B,GAAe,GAC1DrC,EAASiE,GAAG,aAAa,WAAM,IAAAC,EAC7BxD,EAAOV,EAASW,KACZE,GAAcD,EAAWkB,IACpB,QAAApB,EAAAA,SAAA,IAAAwD,GAAAA,EAAMlC,UACbtB,EAAKsB,QAAQmC,aAAa,aAAc,YACxCzD,EAAKsB,QAAQmC,aAAa,aAAc,QAG4B,WAAhEhE,EAAaiD,iBAAiB/C,EAAeiB,MAAM8C,WAErDlE,EAAmB,CAAC,WAAY,aAAc,cAAcmE,KAAI,SAAAlD,GAAQ,MAAK,CAC3EA,SAAAA,EACAC,MAAOf,EAAeiB,KAAKC,MAAM+C,iBAAiBnD,GAClDE,SAAUhB,EAAeiB,KAAKC,MAAMgD,oBAAoBpD,GACzD,IACDd,EAAeiB,KAAKC,MAAMC,YAAY,WAAY,SAAUtB,EAAiB,GAAGmB,WAElFX,EAAKsB,QAAQH,QAEjB,IACA7B,EAASiE,GAAG,uBAAuB,WAAM,IAAAO,GAGnC5D,GAAaC,KAAgB,UAAJH,SAAI,IAAA8D,GAAJA,EAAMrC,UACrC,IACAnC,EAASiE,GAAG,SAAS,WAAM,IAAAQ,EACzB7D,GAAY,EACJ,QAAR6D,EAAI/D,SAAI,IAAA+D,GAAJA,EAAMzC,UAAStB,EAAKsB,QAAQT,MAAMmD,UAAY,OACpD,IACA1E,EAASiE,GAAG,WAAW,WACrBlD,GAAc,EACdC,IACAX,EAAe+B,oBAAoB,UAAWC,GAAe,GAE7DsC,gBAAe,WACbhD,IACIf,GAAWc,GACjB,GACF,IACO,CACLQ,iBAAAA,EACAtB,UAAW,WAAA,OAAMA,GAAaC,CAAU,EACxC+D,QAAS,WACP/D,GAAa,EACbG,IACAX,EAAe+B,oBAAoB,UAAWC,GAAe,GACxDtB,IACHe,IACA9B,EAASmC,UACTR,IAEJ,EAEJ"}
@@ -0,0 +1,3 @@
1
+ import PhotoSwipeLightbox from 'photoswipe/lightbox';
2
+ export declare const registerLegacyToolbar: (lightbox: PhotoSwipeLightbox, presentation: 'single' | 'chat', onClose: () => void, isClosing: () => boolean) => () => void | undefined;
3
+ //# sourceMappingURL=registerLegacyToolbar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerLegacyToolbar.d.ts","sourceRoot":"","sources":["../../../src/componentsV2/ImageViewer/registerLegacyToolbar.tsx"],"names":[],"mappings":"AAEA,OAAO,kBAAkB,MAAM,qBAAqB,CAAC;AAUrD,eAAO,MAAM,qBAAqB,aACtB,kBAAkB,gBACd,QAAQ,GAAG,MAAM,WACtB,MAAM,IAAI,aACR,MAAM,OAAO,2BA0EzB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import{isViewerElement as o}from"./registerViewerWindow.js";import{renderToString as e}from"react-dom/server";import{GalleryToolbar as i}from"./GalleryToolbar.js";import{getLegacyLevel as t,LEGACY_MAX_LEVEL as r,getLegacyScale as n,LEGACY_STEP as l,getNextLegacyLevel as a}from"./legacyZoom.js";import{jsx as d}from"react/jsx-runtime";var v=function(v,u,c,s){var m,p,f,b=function(){var o,e=null===(o=v.pswp)||void 0===o?void 0:o.currSlide;if(e&&m&&p){var i=t(e.zoomLevels.initial,e.currZoomLevel);m.disabled=i>=r-1e-6,p.disabled=i<=1e-6}},z=function(o){var e,i,l,d=null===(e=v.pswp)||void 0===e?void 0:e.currSlide;if(d&&!s()){var u=t(d.zoomLevels.initial,d.currZoomLevel),c=u+o,f=a(u,o);d.zoomTo(n(d.zoomLevels.initial,f),void 0,0),b(),Math.abs(c-r)<1e-6&&(null===(i=p)||void 0===i||i.focus()),Math.abs(c)<1e-6&&(null===(l=m)||void 0===l||l.focus())}},g=function(e){var i;if(o(e.target)&&e.target.closest(".pswp__img")){var r=null===(i=v.pswp)||void 0===i?void 0:i.currSlide;if(r&&!s()){e.preventDefault();var a=t(r.zoomLevels.initial,r.currZoomLevel)>1e-6?0:l;r.zoomTo(n(r.zoomLevels.initial,a),{x:e.clientX,y:e.clientY},0)}}};return v.on("bindEvents",(function(){var o,e;null===(e=f=null===(o=v.pswp)||void 0===o?void 0:o.element)||void 0===e||e.addEventListener("dblclick",g)})),v.on("zoomPanUpdate",b),v.on("change",b),v.on("loadComplete",b),v.on("uiRegister",(function(){var t,r,n,a,f;null===(t=v.pswp)||void 0===t||null===(r=t.ui)||void 0===r||r.registerElement({name:"gallery-toolbar",order:20,appendTo:"root",html:e(d(i,{presentation:u,src:null===(n=v.pswp)||void 0===n||null===(a=n.currSlide)||void 0===a||null===(f=a.data)||void 0===f?void 0:f.src})),onInit:function(o,e){m=o.querySelector('[data-action="zoom-in"]')||void 0,p=o.querySelector('[data-action="zoom-out"]')||void 0;var i=o.querySelector("[data-download]");e.on("change",(function(){var o,t=null===(o=e.currSlide)||void 0===o?void 0:o.data.src;t?null==i||i.setAttribute("href",t):null==i||i.removeAttribute("href")})),b()},onClick:function(e){var i=e.target;if(!s()&&o(i)){var t=i.closest("button[data-action]");t&&!t.disabled&&("zoom-in"===t.dataset.action&&z(l),"zoom-out"===t.dataset.action&&z(-l),"close"===t.dataset.action&&c())}}})})),function(){var o;return null===(o=f)||void 0===o?void 0:o.removeEventListener("dblclick",g)}};export{v as registerLegacyToolbar};
2
+ //# sourceMappingURL=registerLegacyToolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerLegacyToolbar.js","sources":["../../../src/componentsV2/ImageViewer/registerLegacyToolbar.tsx"],"sourcesContent":["import { isViewerElement } from './registerViewerWindow';\nimport { renderToString } from 'react-dom/server';\nimport PhotoSwipeLightbox from 'photoswipe/lightbox';\nimport { GalleryToolbar } from './GalleryToolbar';\nimport {\n getLegacyLevel,\n getLegacyScale,\n getNextLegacyLevel,\n LEGACY_MAX_LEVEL,\n LEGACY_STEP,\n} from './legacyZoom';\n\nexport const registerLegacyToolbar = (\n lightbox: PhotoSwipeLightbox,\n presentation: 'single' | 'chat',\n onClose: () => void,\n isClosing: () => boolean\n) => {\n let zoomIn: HTMLButtonElement | undefined;\n let zoomOut: HTMLButtonElement | undefined;\n const sync = () => {\n const slide = lightbox.pswp?.currSlide;\n if (!slide || !zoomIn || !zoomOut) return;\n const level = getLegacyLevel(slide.zoomLevels.initial, slide.currZoomLevel);\n zoomIn.disabled = level >= LEGACY_MAX_LEVEL - 0.000001;\n zoomOut.disabled = level <= 0.000001;\n };\n const change = (delta: number) => {\n const slide = lightbox.pswp?.currSlide;\n if (!slide || isClosing()) return;\n const currentLevel = getLegacyLevel(slide.zoomLevels.initial, slide.currZoomLevel);\n const rawLevel = currentLevel + delta;\n const level = getNextLegacyLevel(currentLevel, delta);\n slide.zoomTo(getLegacyScale(slide.zoomLevels.initial, level), undefined, 0);\n sync();\n if (Math.abs(rawLevel - LEGACY_MAX_LEVEL) < 0.000001) zoomOut?.focus();\n if (Math.abs(rawLevel) < 0.000001) zoomIn?.focus();\n };\n const doubleClick = (event: MouseEvent) => {\n if (!isViewerElement(event.target) || !event.target.closest('.pswp__img')) return;\n const slide = lightbox.pswp?.currSlide;\n if (!slide || isClosing()) return;\n event.preventDefault();\n const level =\n getLegacyLevel(slide.zoomLevels.initial, slide.currZoomLevel) > 0.000001 ? 0 : LEGACY_STEP;\n slide.zoomTo(\n getLegacyScale(slide.zoomLevels.initial, level),\n { x: event.clientX, y: event.clientY },\n 0\n );\n };\n let element: HTMLElement | undefined;\n lightbox.on('bindEvents', () => {\n element = lightbox.pswp?.element;\n element?.addEventListener('dblclick', doubleClick);\n });\n lightbox.on('zoomPanUpdate', sync);\n lightbox.on('change', sync);\n lightbox.on('loadComplete', sync);\n lightbox.on('uiRegister', () => {\n lightbox.pswp?.ui?.registerElement({\n name: 'gallery-toolbar',\n order: 20,\n appendTo: 'root',\n html: renderToString(\n <GalleryToolbar presentation={presentation} src={lightbox.pswp?.currSlide?.data?.src} />\n ),\n onInit: (el, pswp) => {\n zoomIn = el.querySelector<HTMLButtonElement>('[data-action=\"zoom-in\"]') || undefined;\n zoomOut = el.querySelector<HTMLButtonElement>('[data-action=\"zoom-out\"]') || undefined;\n const download = el.querySelector<HTMLAnchorElement>('[data-download]');\n pswp.on('change', () => {\n const src = pswp.currSlide?.data.src;\n if (src) download?.setAttribute('href', src);\n else download?.removeAttribute('href');\n });\n sync();\n },\n onClick: event => {\n const target = event.target;\n if (isClosing() || !isViewerElement(target)) return;\n const button = target.closest<HTMLButtonElement>('button[data-action]');\n if (!button || button.disabled) return;\n if (button.dataset.action === 'zoom-in') change(LEGACY_STEP);\n if (button.dataset.action === 'zoom-out') change(-LEGACY_STEP);\n if (button.dataset.action === 'close') onClose();\n },\n });\n });\n return () => element?.removeEventListener('dblclick', doubleClick);\n};\n"],"names":["registerLegacyToolbar","lightbox","presentation","onClose","isClosing","zoomIn","zoomOut","element","sync","_lightbox$pswp","slide","pswp","currSlide","level","getLegacyLevel","zoomLevels","initial","currZoomLevel","disabled","LEGACY_MAX_LEVEL","change","delta","_lightbox$pswp2","_zoomOut","_zoomIn","currentLevel","rawLevel","getNextLegacyLevel","zoomTo","getLegacyScale","undefined","Math","abs","focus","doubleClick","event","_lightbox$pswp3","isViewerElement","target","closest","preventDefault","LEGACY_STEP","x","clientX","y","clientY","on","_lightbox$pswp4","_element","addEventListener","_lightbox$pswp5","_lightbox$pswp5$ui","_lightbox$pswp6","_lightbox$pswp6$currS","_lightbox$pswp6$currS2","ui","registerElement","name","order","appendTo","html","renderToString","_jsx","GalleryToolbar","src","data","onInit","el","querySelector","download","_pswp$currSlide","setAttribute","removeAttribute","onClick","button","dataset","action","_element2","removeEventListener"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import PhotoSwipeLightbox from 'photoswipe/lightbox';
2
+ export declare const registerLegacyWheel: (lightbox: PhotoSwipeLightbox, targetDocument?: Document) => () => void;
3
+ //# sourceMappingURL=registerLegacyWheel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerLegacyWheel.d.ts","sourceRoot":"","sources":["../../../src/componentsV2/ImageViewer/registerLegacyWheel.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,MAAM,qBAAqB,CAAC;AAIrD,eAAO,MAAM,mBAAmB,aACpB,kBAAkB,mBACZ,QAAQ,eAiEzB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import{isViewerElement as e}from"./registerViewerWindow.js";import{createLegacyWheel as o}from"./legacyWheel.js";import{getNextLegacyLevel as n,getLegacyLevel as i,getLegacyScale as t}from"./legacyZoom.js";var r=function(r){var l,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document,v=!1,c=0,u=!1,d=function(e){"ArrowLeft"!==e.key&&"ArrowRight"!==e.key||(u=!0,queueMicrotask((function(){u=!1})))},s=o({zoom:function(e,o){var l;if(!v){var a=null===(l=r.pswp)||void 0===l?void 0:l.currSlide;if(a){var c=n(i(a.zoomLevels.initial,a.currZoomLevel),e);a.zoomTo(t(a.zoomLevels.initial,c),o,0)}}},move:function(e){var o=r.pswp;if(o){var n=o.currSlide;null==n||n.zoomTo(n.zoomLevels.initial,void 0,0),1===e?o.next():o.prev()}},isAnimating:function(){return v||Date.now()<c}});return r.on("change",(function(){var e,o=null===(e=r.pswp)||void 0===e?void 0:e.currIndex;void 0===l||o===l||u||(c=Date.now()+300),l=o,u=!1})),r.on("close",(function(){v=!0})),r.on("wheel",(function(o){o.preventDefault();var n=o.originalEvent;n.preventDefault(),n.stopPropagation(),v||s.handle({deltaX:n.deltaX,deltaY:n.deltaY,clientX:n.clientX,clientY:n.clientY,isOnImage:e(n.target)&&!!n.target.closest(".pswp__img")})})),a.addEventListener("keydown",d,!0),function(){v=!0,a.removeEventListener("keydown",d,!0),s.dispose()}};export{r as registerLegacyWheel};
2
+ //# sourceMappingURL=registerLegacyWheel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerLegacyWheel.js","sources":["../../../src/componentsV2/ImageViewer/registerLegacyWheel.ts"],"sourcesContent":["import { isViewerElement } from './registerViewerWindow';\nimport PhotoSwipeLightbox from 'photoswipe/lightbox';\nimport { createLegacyWheel } from './legacyWheel';\nimport { getLegacyLevel, getLegacyScale, getNextLegacyLevel } from './legacyZoom';\n\nexport const registerLegacyWheel = (\n lightbox: PhotoSwipeLightbox,\n targetDocument: Document = document\n) => {\n let isClosing = false;\n let animationUntil = 0;\n let previousIndex: number | undefined;\n let isArrowKey = false;\n const keyboard = (event: KeyboardEvent) => {\n if (event.key !== 'ArrowLeft' && event.key !== 'ArrowRight') return;\n isArrowKey = true;\n // PhotoSwipe key navigation is synchronous; do not exempt a later action.\n queueMicrotask(() => {\n isArrowKey = false;\n });\n };\n const wheel = createLegacyWheel({\n zoom: (delta, point) => {\n if (isClosing) return;\n const slide = lightbox.pswp?.currSlide;\n if (!slide) return;\n const level = getNextLegacyLevel(\n getLegacyLevel(slide.zoomLevels.initial, slide.currZoomLevel),\n delta\n );\n slide.zoomTo(getLegacyScale(slide.zoomLevels.initial, level), point, 0);\n },\n move: direction => {\n const pswp = lightbox.pswp;\n if (!pswp) return;\n const slide = pswp.currSlide;\n slide?.zoomTo(slide.zoomLevels.initial, undefined, 0);\n if (direction === 1) pswp.next();\n else pswp.prev();\n },\n isAnimating: () => isClosing || Date.now() < animationUntil,\n });\n lightbox.on('change', () => {\n const index = lightbox.pswp?.currIndex;\n if (previousIndex !== undefined && index !== previousIndex && !isArrowKey)\n animationUntil = Date.now() + 300;\n previousIndex = index;\n isArrowKey = false;\n });\n lightbox.on('close', () => {\n isClosing = true;\n });\n lightbox.on('wheel', event => {\n event.preventDefault();\n const original = event.originalEvent;\n original.preventDefault();\n original.stopPropagation();\n if (isClosing) return;\n wheel.handle({\n deltaX: original.deltaX,\n deltaY: original.deltaY,\n clientX: original.clientX,\n clientY: original.clientY,\n isOnImage: isViewerElement(original.target) && !!original.target.closest('.pswp__img'),\n });\n });\n targetDocument.addEventListener('keydown', keyboard, true);\n return () => {\n isClosing = true;\n targetDocument.removeEventListener('keydown', keyboard, true);\n wheel.dispose();\n };\n};\n"],"names":["registerLegacyWheel","lightbox","previousIndex","targetDocument","document","isClosing","animationUntil","isArrowKey","keyboard","event","key","queueMicrotask","wheel","createLegacyWheel","zoom","delta","point","_lightbox$pswp","slide","pswp","currSlide","level","getNextLegacyLevel","getLegacyLevel","zoomLevels","initial","currZoomLevel","zoomTo","getLegacyScale","move","direction","undefined","next","prev","isAnimating","Date","now","on","_lightbox$pswp2","index","currIndex","preventDefault","original","originalEvent","stopPropagation","handle","deltaX","deltaY","clientX","clientY","isOnImage","isViewerElement","target","closest","addEventListener","removeEventListener","dispose"],"mappings":"kNAKaA,EAAsB,SACjCC,GAEG,IAGCC,EAJJC,yDAA2BC,SAEvBC,GAAY,EACZC,EAAiB,EAEjBC,GAAa,EACXC,EAAW,SAACC,GACE,cAAdA,EAAMC,KAAqC,eAAdD,EAAMC,MACvCH,GAAa,EAEbI,gBAAe,WACbJ,GAAa,CACf,MAEIK,EAAQC,EAAkB,CAC9BC,KAAM,SAACC,EAAOC,GAAU,IAAAC,EACtB,IAAIZ,EAAJ,CACA,IAAMa,EAAqB,QAAbjB,EAAAA,EAASkB,YAAI,IAAAF,OAAA,EAAbA,EAAeG,UAC7B,GAAKF,EAAL,CACA,IAAMG,EAAQC,EACZC,EAAeL,EAAMM,WAAWC,QAASP,EAAMQ,eAC/CX,GAEFG,EAAMS,OAAOC,EAAeV,EAAMM,WAAWC,QAASJ,GAAQL,EAAO,EALzD,CAFG,CAQhB,EACDa,KAAM,SAAAC,GACJ,IAAMX,EAAOlB,EAASkB,KACtB,GAAKA,EAAL,CACA,IAAMD,EAAQC,EAAKC,UACnBF,SAAAA,EAAOS,OAAOT,EAAMM,WAAWC,aAASM,EAAW,GACjC,IAAdD,EAAiBX,EAAKa,OACrBb,EAAKc,MAJC,CAKZ,EACDC,YAAa,WAAA,OAAM7B,GAAa8B,KAAKC,MAAQ9B,CAAc,IA2B7D,OAzBAL,EAASoC,GAAG,UAAU,WAAM,IAAAC,EACpBC,EAAqB,QAAbtC,EAAAA,EAASkB,YAAI,IAAAmB,OAAA,EAAbA,EAAeE,eACPT,IAAlB7B,GAA+BqC,IAAUrC,GAAkBK,IAC7DD,EAAiB6B,KAAKC,MAAQ,KAChClC,EAAgBqC,EAChBhC,GAAa,CACf,IACAN,EAASoC,GAAG,SAAS,WACnBhC,GAAY,CACd,IACAJ,EAASoC,GAAG,SAAS,SAAA5B,GACnBA,EAAMgC,iBACN,IAAMC,EAAWjC,EAAMkC,cACvBD,EAASD,iBACTC,EAASE,kBACLvC,GACJO,EAAMiC,OAAO,CACXC,OAAQJ,EAASI,OACjBC,OAAQL,EAASK,OACjBC,QAASN,EAASM,QAClBC,QAASP,EAASO,QAClBC,UAAWC,EAAgBT,EAASU,WAAaV,EAASU,OAAOC,QAAQ,eAE7E,IACAlD,EAAemD,iBAAiB,UAAW9C,GAAU,GAC9C,WACLH,GAAY,EACZF,EAAeoD,oBAAoB,UAAW/C,GAAU,GACxDI,EAAM4C,UAEV"}
@@ -0,0 +1,3 @@
1
+ import PhotoSwipeLightbox from 'photoswipe/lightbox';
2
+ export declare const registerSourceToolbar: (lightbox: PhotoSwipeLightbox) => void;
3
+ //# sourceMappingURL=registerSourceToolbar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerSourceToolbar.d.ts","sourceRoot":"","sources":["../../../src/componentsV2/ImageViewer/registerSourceToolbar.tsx"],"names":[],"mappings":"AACA,OAAO,kBAAkB,MAAM,qBAAqB,CAAC;AAOrD,eAAO,MAAM,qBAAqB,aAAc,kBAAkB,SAyFjE,CAAC"}
@@ -0,0 +1,2 @@
1
+ import{renderToString as o}from"react-dom/server";import{DownloadIcon as s,ZoomInIcon as c,ZoomOutIcon as i}from"../../icons/iconParkIcons.js";import"../../icons/customIcons/icons/AddMessage.js";import"../../icons/customIcons/icons/DragOne.js";import"../../icons/customIcons/icons/Attention.js";import"../../icons/customIcons/icons/Collapse.js";import"../../icons/customIcons/icons/Dashboard.js";import"../../icons/customIcons/icons/Expand.js";import"../../icons/customIcons/icons/FolderClosed.js";import"../../icons/customIcons/icons/FolderClosedFilled.js";import"../../icons/customIcons/icons/FolderOpened.js";import"../../icons/customIcons/icons/GreaterOrEqual.js";import"../../icons/customIcons/icons/LessOrEqual.js";import"../../icons/customIcons/icons/Search.js";import"../../icons/customIcons/icons/SearchOne.js";import"../../icons/customIcons/icons/Wellhub.js";import"../../icons/customIcons/icons/MultiRuler.js";import"../../icons/customIcons/icons/Checkbox.js";import"../../icons/customIcons/icons/CheckboxChecked.js";import"../../icons/customIcons/icons/CheckboxIndeterminate.js";import"../../icons/customIcons/icons/Radio.js";import"../../icons/customIcons/icons/RadioChecked.js";import"../../icons/customIcons/icons/SimulFrac.js";import"../../icons/customIcons/icons/ZipperFrac.js";import"../../icons/customIcons/icons/CautionFilled.js";import"../../icons/customIcons/icons/InfoRounded.js";import"../../icons/customIcons/icons/FlameFilled.js";import"../../icons/customIcons/icons/MoreApp.js";import"../../icons/customIcons/icons/Pad.js";import"../../icons/customIcons/icons/DrilloutUnit.js";import"../../icons/customIcons/icons/FracFleet.js";import"../../icons/customIcons/icons/Global.js";import"../../icons/customIcons/icons/Program.js";import"../../icons/customIcons/icons/Rig.js";import"../../icons/customIcons/icons/Well.js";import"../../icons/customIcons/icons/Gap.js";import"../../icons/customIcons/icons/Pin.js";import"../../icons/customIcons/icons/PinOne.js";import"../../icons/customIcons/icons/PinOneCrossed.js";import"../../icons/customIcons/icons/CloseOneFilled.js";import"../../icons/customIcons/icons/AttentionFilled.js";import"../../icons/customIcons/icons/CheckOneFilled.js";import"../../icons/customIcons/icons/Archive.js";import"../../icons/customIcons/icons/ArchiveCancel.js";import"../../icons/customIcons/icons/Unarchive.js";import"../../icons/customIcons/icons/Archived.js";import"../../icons/customIcons/icons/InterventionUnit.js";import"../../icons/customIcons/icons/CloudDelete.js";import"../../icons/customIcons/icons/Lasso.js";import"../../icons/customIcons/icons/Radius.js";import"../../icons/customIcons/icons/ErrorOps.js";import"../../icons/customIcons/icons/DataTypeOps.js";import"../../icons/customIcons/icons/FalsePositiveOps.js";import"../../icons/customIcons/icons/CalibrationOps.js";import"../../icons/customIcons/icons/CriticalOps.js";import"../../icons/customIcons/icons/Company.js";import"../../icons/customIcons/icons/ArchiveOne.js";import"../../icons/customIcons/icons/ParseBotFusion.js";import"../../icons/customIcons/icons/Connect.js";import"../../icons/customIcons/icons/PuzzleOne.js";import"../../icons/customIcons/icons/Feed.js";import"../../icons/customIcons/icons/Prompt.js";import"../../icons/customIcons/icons/Companies.js";import"../../icons/customIcons/icons/ClipboardAi.js";import"../../icons/customIcons/icons/Key.js";import"../../icons/customIcons/icons/AtSignCrossed.js";import"../../icons/customIcons/icons/MappingManual.js";import"../../icons/customIcons/icons/Mapping.js";import"../../icons/customIcons/icons/Metrics.js";import"../../icons/customIcons/icons/Drops.js";import"../../icons/customIcons/icons/ClipboardSearch.js";import"../../icons/customIcons/icons/Template.js";import"../../icons/customIcons/icons/ClipboardMetrics.js";import"../../icons/customIcons/icons/ClipboardBuilder.js";import"../../icons/customIcons/icons/UnitConversion.js";import"../../icons/customIcons/icons/NPT.js";import"../../icons/customIcons/icons/GuidedFrac.js";import{jsx as n}from"react/jsx-runtime";var t=function(t){t.on("uiRegister",(function(){var r,m=null==t||null===(r=t.pswp)||void 0===r?void 0:r.ui;null==m||m.registerElement({name:"download-button",order:7,isButton:!0,tagName:"a",html:o(n(s,{className:"pswp__icn"})),onInit:function(o,s){o.setAttribute("download",""),o.setAttribute("target","_blank"),o.setAttribute("rel","noopener"),null==s||s.on("change",(function(){var c;o.href=(null==s||null===(c=s.currSlide)||void 0===c?void 0:c.data.src)||""}))}}),null==m||m.registerElement({name:"zoom-in-button",order:8,isButton:!0,tagName:"button",html:o(n(c,{className:"pswp__icn"})),onInit:function(o,s){s.on("zoomPanUpdate",(function(c){var i,n=o,t=(null===(i=s.currSlide)||void 0===i?void 0:i.currZoomLevel)||1;c.slide===s.currSlide&&(n.disabled=t>=2)}))},onClick:function(o,s,c){var i;if(null!=c&&null!==(i=c.currSlide)&&void 0!==i&&i.currZoomLevel){var n=c.currSlide.currZoomLevel+.5,t=Math.min(.5*Math.floor(n/.5),2);c.currSlide.zoomTo(t,void 0)}}});var e=new WeakMap;null==m||m.registerElement({name:"zoom-out-button",order:9,isButton:!0,tagName:"button",html:o(n(i,{className:"pswp__icn"})),onInit:function(o,s){s.on("zoomPanUpdate",(function(c){var i,n=o,t=(null===(i=s.currSlide)||void 0===i?void 0:i.currZoomLevel)||1;c.slide===s.currSlide&&(e.get(s.currSlide)||e.set(s.currSlide,t),n.disabled=t<=(e.get(s.currSlide)||1))}))},onClick:function(o,s,c){var i;if(null!=c&&null!==(i=c.currSlide)&&void 0!==i&&i.currZoomLevel&&e.get(c.currSlide)){var n=c.currSlide.currZoomLevel-.5,t=Math.max(.5*Math.ceil(n/.5),e.get(c.currSlide)||1);c.currSlide.zoomTo(t,void 0)}}})}))};export{t as registerSourceToolbar};
2
+ //# sourceMappingURL=registerSourceToolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerSourceToolbar.js","sources":["../../../src/componentsV2/ImageViewer/registerSourceToolbar.tsx"],"sourcesContent":["import { renderToString } from 'react-dom/server';\nimport PhotoSwipeLightbox from 'photoswipe/lightbox';\nimport { DownloadIcon, ZoomInIcon, ZoomOutIcon } from '~/icons';\n\nconst MaxZoomLevel = 2;\nconst ZoomStep = 0.5;\n\n// Preserve the src API controls while sharing the gallery engine and lifecycle.\nexport const registerSourceToolbar = (lightbox: PhotoSwipeLightbox) => {\n lightbox.on('uiRegister', () => {\n const ui = lightbox?.pswp?.ui;\n\n ui?.registerElement({\n name: 'download-button',\n order: 7,\n isButton: true,\n tagName: 'a',\n\n html: renderToString(<DownloadIcon className=\"pswp__icn\" />),\n\n onInit: (el, pswp) => {\n el.setAttribute('download', '');\n el.setAttribute('target', '_blank');\n el.setAttribute('rel', 'noopener');\n\n pswp?.on('change', () => {\n // eslint-disable-next-line no-param-reassign\n (el as HTMLAnchorElement).href = pswp?.currSlide?.data.src || '';\n });\n },\n });\n\n ui?.registerElement({\n name: 'zoom-in-button',\n order: 8,\n isButton: true,\n tagName: 'button',\n html: renderToString(<ZoomInIcon className=\"pswp__icn\" />),\n onInit: (el, pswp) => {\n pswp.on('zoomPanUpdate', e => {\n const button = el as HTMLButtonElement;\n const zoomLevel = pswp.currSlide?.currZoomLevel || 1;\n\n if (e.slide === pswp.currSlide) {\n button.disabled = zoomLevel >= MaxZoomLevel;\n }\n });\n },\n onClick: (_e, _el, pswp) => {\n if (!pswp?.currSlide?.currZoomLevel) {\n return;\n }\n\n const rawNewZoom = pswp.currSlide.currZoomLevel + ZoomStep;\n const newZoom = Math.min(Math.floor(rawNewZoom / ZoomStep) * ZoomStep, MaxZoomLevel);\n\n pswp.currSlide.zoomTo(newZoom, undefined);\n },\n });\n\n const initialZoomLevelsMap = new WeakMap<object, number | undefined>();\n ui?.registerElement({\n name: 'zoom-out-button',\n order: 9,\n isButton: true,\n tagName: 'button',\n html: renderToString(<ZoomOutIcon className=\"pswp__icn\" />),\n onInit: (el, pswp) => {\n pswp.on('zoomPanUpdate', e => {\n const button = el as HTMLButtonElement;\n const zoomLevel = pswp.currSlide?.currZoomLevel || 1;\n\n if (e.slide === pswp.currSlide) {\n // First run - save current zoom as minimal\n if (!initialZoomLevelsMap.get(pswp.currSlide)) {\n initialZoomLevelsMap.set(pswp.currSlide, zoomLevel);\n }\n\n button.disabled = zoomLevel <= (initialZoomLevelsMap.get(pswp.currSlide) || 1);\n }\n });\n },\n onClick: (_e, _el, pswp) => {\n if (!pswp?.currSlide?.currZoomLevel || !initialZoomLevelsMap.get(pswp.currSlide)) {\n return;\n }\n\n const rawNewZoom = pswp.currSlide.currZoomLevel - ZoomStep;\n const newZoom = Math.max(\n Math.ceil(rawNewZoom / ZoomStep) * ZoomStep,\n initialZoomLevelsMap.get(pswp.currSlide) || 1\n );\n\n pswp.currSlide.zoomTo(newZoom, undefined);\n },\n });\n });\n};\n"],"names":["registerSourceToolbar","lightbox","on","_lightbox$pswp","ui","pswp","registerElement","name","order","isButton","tagName","html","renderToString","_jsx","DownloadIcon","className","onInit","el","setAttribute","_pswp$currSlide","href","currSlide","data","src","ZoomInIcon","e","_pswp$currSlide2","button","zoomLevel","currZoomLevel","slide","disabled","onClick","_e","_el","_pswp$currSlide3","rawNewZoom","newZoom","Math","min","floor","zoomTo","undefined","initialZoomLevelsMap","WeakMap","ZoomOutIcon","_pswp$currSlide4","get","set","_pswp$currSlide5","max","ceil"],"mappings":"y9HAIA,IAIaA,EAAwB,SAACC,GACpCA,EAASC,GAAG,cAAc,WAAM,IAAAC,EACxBC,EAAKH,SAAA,QAAAA,EAAAA,EAAUI,YAAV,IAAAF,OAAAF,EAAAE,EAAgBC,GAE3BA,SAAAA,EAAIE,gBAAgB,CAClBC,KAAM,kBACNC,MAAO,EACPC,UAAU,EACVC,QAAS,IAETC,KAAMC,EAAeC,EAACC,EAAY,CAACC,UAAU,eAE7CC,OAAQ,SAACC,EAAIZ,GACXY,EAAGC,aAAa,WAAY,IAC5BD,EAAGC,aAAa,SAAU,UAC1BD,EAAGC,aAAa,MAAO,YAEvBb,SAAAA,EAAMH,GAAG,UAAU,WAAM,IAAAiB,EAEtBF,EAAyBG,MAAOf,SAAA,QAAIc,EAAJd,EAAMgB,iBAAN,IAAAF,OAAI,EAAJA,EAAiBG,KAAKC,MAAO,EAChE,GACF,IAGFnB,SAAAA,EAAIE,gBAAgB,CAClBC,KAAM,iBACNC,MAAO,EACPC,UAAU,EACVC,QAAS,SACTC,KAAMC,EAAeC,EAACW,EAAU,CAACT,UAAU,eAC3CC,OAAQ,SAACC,EAAIZ,GACXA,EAAKH,GAAG,iBAAiB,SAAAuB,GAAK,IAAAC,EACtBC,EAASV,EACTW,GAAY,QAAAF,EAAArB,EAAKgB,iBAAL,IAAAK,OAAA,EAAAA,EAAgBG,gBAAiB,EAE/CJ,EAAEK,QAAUzB,EAAKgB,YACnBM,EAAOI,SAAWH,GAxCT,EA0Cb,GACD,EACDI,QAAS,SAACC,EAAIC,EAAK7B,GAAS,IAAA8B,EAC1B,GAAK9B,SAAe,QAAX8B,EAAJ9B,EAAMgB,iBAAS,IAAAc,GAAfA,EAAiBN,cAAtB,CAIA,IAAMO,EAAa/B,EAAKgB,UAAUQ,cAhDzB,GAiDHQ,EAAUC,KAAKC,IAjDZ,GAiDgBD,KAAKE,MAAMJ,EAjD3B,IADI,GAoDb/B,EAAKgB,UAAUoB,OAAOJ,OAASK,EAL/B,CAMF,IAGF,IAAMC,EAAuB,IAAIC,QACjCxC,SAAAA,EAAIE,gBAAgB,CAClBC,KAAM,kBACNC,MAAO,EACPC,UAAU,EACVC,QAAS,SACTC,KAAMC,EAAeC,EAACgC,EAAW,CAAC9B,UAAU,eAC5CC,OAAQ,SAACC,EAAIZ,GACXA,EAAKH,GAAG,iBAAiB,SAAAuB,GAAK,IAAAqB,EACtBnB,EAASV,EACTW,GAAY,QAAAkB,EAAAzC,EAAKgB,iBAAL,IAAAyB,OAAA,EAAAA,EAAgBjB,gBAAiB,EAE/CJ,EAAEK,QAAUzB,EAAKgB,YAEdsB,EAAqBI,IAAI1C,EAAKgB,YACjCsB,EAAqBK,IAAI3C,EAAKgB,UAAWO,GAG3CD,EAAOI,SAAWH,IAAce,EAAqBI,IAAI1C,EAAKgB,YAAc,GAEhF,GACD,EACDW,QAAS,SAACC,EAAIC,EAAK7B,GAAS,IAAA4C,EAC1B,GAAK5C,SAAA,UAAAA,EAAMgB,iBAAN,IAAA4B,GAAAA,EAAiBpB,eAAkBc,EAAqBI,IAAI1C,EAAKgB,WAAtE,CAIA,IAAMe,EAAa/B,EAAKgB,UAAUQ,cAlFzB,GAmFHQ,EAAUC,KAAKY,IAnFZ,GAoFPZ,KAAKa,KAAKf,EApFH,IAqFPO,EAAqBI,IAAI1C,EAAKgB,YAAc,GAG9ChB,EAAKgB,UAAUoB,OAAOJ,OAASK,EAR/B,CASF,GAEJ,GACF"}
@@ -0,0 +1,4 @@
1
+ import PhotoSwipeLightbox from 'photoswipe/lightbox';
2
+ export declare const isViewerElement: (target: EventTarget | null) => target is Element;
3
+ export declare const registerViewerWindow: (lightbox: PhotoSwipeLightbox, targetWindow: Window) => void;
4
+ //# sourceMappingURL=registerViewerWindow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerViewerWindow.d.ts","sourceRoot":"","sources":["../../../src/componentsV2/ImageViewer/registerViewerWindow.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,qBAAqB,CAAC;AAGrD,eAAO,MAAM,eAAe,WAAY,WAAW,GAAG,IAAI,KAAG,MAAM,IAAI,OACW,CAAC;AAEnF,eAAO,MAAM,oBAAoB,aAAc,kBAAkB,gBAAgB,MAAM,SAoCtF,CAAC"}
@@ -0,0 +1,2 @@
1
+ var e=function(e){return!!e&&"nodeType"in e&&1===e.nodeType&&"closest"in e},n=function(e,n){if(n!==window){var t=function(){var t;return null===(t=e.pswp)||void 0===t?void 0:t.setScrollOffset(0,n.pageYOffset)};e.on("initialLayout",t),e.on("viewportSize",t),e.on("bindEvents",(function(){var t=e.pswp;t&&t.events._pool.slice().forEach((function(e){var o=e.target,i=e.type,r=e.listener,s=e.passive,f=o===window?n:o===document?n.document:null;f&&(t.events.remove(o,i,r,s),t.events.add(f,i,o===window&&"scroll"===i?function(){return t.setScrollOffset(0,n.pageYOffset)}:r,s))}))}))}};export{e as isViewerElement,n as registerViewerWindow};
2
+ //# sourceMappingURL=registerViewerWindow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registerViewerWindow.js","sources":["../../../src/componentsV2/ImageViewer/registerViewerWindow.ts"],"sourcesContent":["import PhotoSwipeLightbox from 'photoswipe/lightbox';\n\n// Nodes adopted by the parent document may still have the iframe's prototype.\nexport const isViewerElement = (target: EventTarget | null): target is Element =>\n !!target && 'nodeType' in target && target.nodeType === 1 && 'closest' in target;\n\nexport const registerViewerWindow = (lightbox: PhotoSwipeLightbox, targetWindow: Window) => {\n if (targetWindow === window) return;\n const syncScrollOffset = () => lightbox.pswp?.setScrollOffset(0, targetWindow.pageYOffset);\n lightbox.on('initialLayout', syncScrollOffset);\n // updateSize reads the source window's scroll offset before this public event.\n lightbox.on('viewportSize', syncScrollOffset);\n lightbox.on('bindEvents', () => {\n const core = lightbox.pswp;\n if (!core) return;\n // PhotoSwipe 5 exposes appendToEl/viewport but no event-window option.\n // Keep the existing isolation bridge: move its global listeners in the pool\n // so PhotoSwipe's own destroy removes them from the correct document/window.\n /* eslint-disable no-underscore-dangle */\n // @ts-expect-error PhotoSwipe's internal listener pool is not public API.\n const pool = core.events._pool.slice() as {\n target: Parameters<typeof core.events.add>[0];\n type: string;\n listener: Parameters<typeof core.events.add>[2];\n passive?: boolean;\n }[];\n /* eslint-enable no-underscore-dangle */\n pool.forEach(({ target, type, listener, passive }) => {\n const destination =\n target === window ? targetWindow : target === document ? targetWindow.document : null;\n if (!destination) return;\n core.events.remove(target, type, listener, passive);\n core.events.add(\n destination,\n type,\n target === window && type === 'scroll'\n ? () => core.setScrollOffset(0, targetWindow.pageYOffset)\n : listener,\n passive\n );\n });\n });\n};\n"],"names":["isViewerElement","target","nodeType","registerViewerWindow","lightbox","targetWindow","window","syncScrollOffset","_lightbox$pswp","pswp","setScrollOffset","pageYOffset","on","core","events","_pool","slice","forEach","_ref","type","listener","passive","destination","document","remove","add"],"mappings":"IAGaA,EAAkB,SAACC,GAA0B,QACtDA,GAAU,aAAcA,GAA8B,IAApBA,EAAOC,UAAkB,YAAaD,CAAM,EAErEE,EAAuB,SAACC,EAA8BC,GACjE,GAAIA,IAAiBC,OAArB,CACA,IAAMC,EAAmB,WAAH,IAAAC,EAAA,OAAsB,QAAtBA,EAASJ,EAASK,YAAI,IAAAD,OAAA,EAAbA,EAAeE,gBAAgB,EAAGL,EAAaM,YAAY,EAC1FP,EAASQ,GAAG,gBAAiBL,GAE7BH,EAASQ,GAAG,eAAgBL,GAC5BH,EAASQ,GAAG,cAAc,WACxB,IAAMC,EAAOT,EAASK,KACjBI,GAMQA,EAAKC,OAAOC,MAAMC,QAO1BC,SAAQ,SAAyCC,GAAA,IAAtCjB,IAAAA,OAAQkB,IAAAA,KAAMC,IAAAA,SAAUC,IAAAA,QAChCC,EACJrB,IAAWK,OAASD,EAAeJ,IAAWsB,SAAWlB,EAAakB,SAAW,KAC9ED,IACLT,EAAKC,OAAOU,OAAOvB,EAAQkB,EAAMC,EAAUC,GAC3CR,EAAKC,OAAOW,IACVH,EACAH,EACAlB,IAAWK,QAAmB,WAATa,EACjB,WAAA,OAAMN,EAAKH,gBAAgB,EAAGL,EAAaM,cAC3CS,EACJC,GAEJ,GACF,GAlC6B,CAmC/B"}
@@ -0,0 +1,31 @@
1
+ export type ImageViewerItem = {
2
+ id: string;
3
+ src: string;
4
+ width?: number;
5
+ height?: number;
6
+ alt?: string;
7
+ };
8
+ type Callbacks = {
9
+ onOpen?: () => void;
10
+ onClose?: () => void;
11
+ };
12
+ export type GalleryImageViewerProps = Callbacks & {
13
+ images: ImageViewerItem[];
14
+ initialIndex?: number;
15
+ onIndexChange?: (index: number) => void;
16
+ presentation?: 'single' | 'chat';
17
+ src?: never;
18
+ width?: never;
19
+ height?: never;
20
+ };
21
+ export type ImageViewerProps = GalleryImageViewerProps | (Callbacks & {
22
+ src?: string;
23
+ width?: number;
24
+ height?: number;
25
+ images?: never;
26
+ initialIndex?: never;
27
+ onIndexChange?: never;
28
+ presentation?: never;
29
+ });
30
+ export {};
31
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/componentsV2/ImageViewer/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG;IAChD,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACjC,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACxB,uBAAuB,GACvB,CAAC,SAAS,GAAG;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,YAAY,CAAC,EAAE,KAAK,CAAC;CACtB,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { ImageViewerItem } from './types';
2
+ export type ResolvedImage = ImageViewerItem & {
3
+ status: 'pending' | 'ready' | 'error';
4
+ };
5
+ export declare const useImageDimensions: (items: ImageViewerItem[]) => ResolvedImage[];
6
+ //# sourceMappingURL=useImageDimensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useImageDimensions.d.ts","sourceRoot":"","sources":["../../../src/componentsV2/ImageViewer/useImageDimensions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG;IAAE,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAA;CAAE,CAAC;AAGxF,eAAO,MAAM,kBAAkB,UAAW,eAAe,EAAE,KAAG,aAAa,EA6C1E,CAAC"}
@@ -0,0 +1,2 @@
1
+ import r from"@babel/runtime/helpers/defineProperty";import t from"@babel/runtime/helpers/slicedToArray";import{useState as e,useEffect as n,useMemo as o}from"react";function i(r,t){var e=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),e.push.apply(e,n)}return e}function u(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?i(Object(n),!0).forEach((function(e){r(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))}))}return t}var c=function(i){var c=e({}),a=t(c,2),f=a[0],s=a[1];return n((function(){var t=!1,e=i.filter((function(r){return r.src&&!(r.width&&r.height)})).map((function(e){var n=new Image,o=function(o){t||s((function(t){return u(u({},t),{},r({},e.id,{src:e.src,status:o,width:"ready"===o?n.naturalWidth:void 0,height:"ready"===o?n.naturalHeight:void 0}))}))};return n.onload=function(){return o(n.naturalWidth&&n.naturalHeight?"ready":"error")},n.onerror=function(){return o("error")},n.src=e.src,n}));return function(){t=!0,e.forEach((function(r){r.onload=null,r.onerror=null}))}}),[i]),o((function(){return i.map((function(r){if(!r.src)return u(u({},r),{},{status:"pending"});if(r.width&&r.height)return u(u({},r),{},{status:"ready"});var t=f[r.id];return(null==t?void 0:t.src)===r.src?u(u({},r),t):u(u({},r),{},{width:void 0,height:void 0,status:"pending"})}))}),[i,f])};export{c as useImageDimensions};
2
+ //# sourceMappingURL=useImageDimensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useImageDimensions.js","sources":["../../../src/componentsV2/ImageViewer/useImageDimensions.ts"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react';\nimport { ImageViewerItem } from './types';\n\nexport type ResolvedImage = ImageViewerItem & { status: 'pending' | 'ready' | 'error' };\ntype Measurement = { src: string; width?: number; height?: number; status: 'ready' | 'error' };\n\nexport const useImageDimensions = (items: ImageViewerItem[]): ResolvedImage[] => {\n const [measurements, setMeasurements] = useState<Record<string, Measurement>>({});\n useEffect(() => {\n let isDisposed = false;\n const probes = items\n .filter(item => item.src && !(item.width && item.height))\n .map(item => {\n const image = new Image();\n const settle = (status: Measurement['status']) => {\n if (isDisposed) return;\n setMeasurements(previous => ({\n ...previous,\n [item.id]: {\n src: item.src,\n status,\n width: status === 'ready' ? image.naturalWidth : undefined,\n height: status === 'ready' ? image.naturalHeight : undefined,\n },\n }));\n };\n image.onload = () => settle(image.naturalWidth && image.naturalHeight ? 'ready' : 'error');\n image.onerror = () => settle('error');\n image.src = item.src;\n return image;\n });\n return () => {\n isDisposed = true;\n probes.forEach(image => {\n image.onload = null;\n image.onerror = null;\n });\n };\n }, [items]);\n\n return useMemo(\n () =>\n items.map(item => {\n if (!item.src) return { ...item, status: 'pending' };\n if (item.width && item.height) return { ...item, status: 'ready' };\n const measured = measurements[item.id];\n if (measured?.src === item.src) return { ...item, ...measured };\n return { ...item, width: undefined, height: undefined, status: 'pending' };\n }),\n [items, measurements]\n );\n};\n"],"names":["useImageDimensions","items","_useState","useState","_useState2","_slicedToArray","measurements","setMeasurements","useEffect","isDisposed","probes","filter","item","src","width","height","map","image","Image","settle","status","previous","_objectSpread","_defineProperty","id","naturalWidth","undefined","naturalHeight","onload","onerror","forEach","useMemo","measured"],"mappings":"yuBAMaA,EAAqB,SAACC,GACjC,IAAAC,EAAwCC,EAAsC,IAAGC,EAAAC,EAAAH,EAAA,GAA1EI,EAAYF,EAAA,GAAEG,EAAeH,EAAA,GAiCpC,OAhCAI,GAAU,WACR,IAAIC,GAAa,EACXC,EAAST,EACZU,QAAO,SAAAC,GAAI,OAAIA,EAAKC,OAASD,EAAKE,OAASF,EAAKG,OAAO,IACvDC,KAAI,SAAAJ,GACH,IAAMK,EAAQ,IAAIC,MACZC,EAAS,SAACC,GACVX,GACJF,GAAgB,SAAAc,GAAQ,OAAAC,EAAAA,EAAA,CAAA,EACnBD,GAAQ,CAAA,EAAAE,EAAA,CAAA,EACVX,EAAKY,GAAK,CACTX,IAAKD,EAAKC,IACVO,OAAAA,EACAN,MAAkB,UAAXM,EAAqBH,EAAMQ,kBAAeC,EACjDX,OAAmB,UAAXK,EAAqBH,EAAMU,mBAAgBD,IACpD,KAML,OAHAT,EAAMW,OAAS,WAAA,OAAMT,EAAOF,EAAMQ,cAAgBR,EAAMU,cAAgB,QAAU,QAAQ,EAC1FV,EAAMY,QAAU,WAAA,OAAMV,EAAO,QAAQ,EACrCF,EAAMJ,IAAMD,EAAKC,IACVI,CACT,IACF,OAAO,WACLR,GAAa,EACbC,EAAOoB,SAAQ,SAAAb,GACbA,EAAMW,OAAS,KACfX,EAAMY,QAAU,IAClB,IAEJ,GAAG,CAAC5B,IAEG8B,GACL,WAAA,OACE9B,EAAMe,KAAI,SAAAJ,GACR,IAAKA,EAAKC,IAAK,cAAYD,GAAI,GAAA,CAAEQ,OAAQ,YACzC,GAAIR,EAAKE,OAASF,EAAKG,OAAQ,OAAAO,EAAAA,EAAA,CAAA,EAAYV,GAAI,GAAA,CAAEQ,OAAQ,UACzD,IAAMY,EAAW1B,EAAaM,EAAKY,IACnC,OAAIQ,aAAQ,EAARA,EAAUnB,OAAQD,EAAKC,IAAiBD,EAAAA,EAAAA,CAAAA,EAAAA,GAASoB,GACrDV,EAAAA,EAAA,CAAA,EAAYV,GAAI,CAAA,EAAA,CAAEE,WAAOY,EAAWX,YAAQW,EAAWN,OAAQ,WACjE,GAAE,GACJ,CAACnB,EAAOK,GAEZ"}