wimui 0.63.0 → 0.63.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.
- package/dist/components/_internal/OverlayBase.cjs +1 -1
- package/dist/components/_internal/OverlayBase.js +31 -30
- package/dist/components/_internal/composeEventHandlers.cjs +2 -0
- package/dist/components/_internal/composeEventHandlers.d.ts +25 -0
- package/dist/components/_internal/composeEventHandlers.js +8 -0
- package/dist/components/_internal/observeMove.cjs +1 -1
- package/dist/components/_internal/observeMove.js +3 -1
- package/dist/components/ai/ChatUI/ChatUI.cjs +1 -1
- package/dist/components/ai/ChatUI/ChatUI.js +83 -82
- package/dist/components/data-display/Accordion/Accordion.cjs +1 -1
- package/dist/components/data-display/Accordion/Accordion.js +79 -78
- package/dist/components/data-display/PullToRefresh/PullToRefresh.cjs +1 -1
- package/dist/components/data-display/PullToRefresh/PullToRefresh.js +73 -72
- package/dist/components/data-display/SortableList/SortableList.cjs +1 -1
- package/dist/components/data-display/SortableList/SortableList.js +54 -53
- package/dist/components/data-display/SwipeAction/SwipeAction.cjs +1 -1
- package/dist/components/data-display/SwipeAction/SwipeAction.js +77 -76
- package/dist/components/form/Cascader/Cascader.cjs +1 -1
- package/dist/components/form/Cascader/Cascader.js +99 -98
- package/dist/components/form/DatePicker/DatePicker.cjs +1 -1
- package/dist/components/form/DatePicker/DatePicker.js +53 -52
- package/dist/components/form/RangeSlider/RangeSlider.cjs +1 -1
- package/dist/components/form/RangeSlider/RangeSlider.js +109 -108
- package/dist/components/form/Rating/Rating.cjs +1 -1
- package/dist/components/form/Rating/Rating.js +75 -74
- package/dist/components/form/Slider/Slider.cjs +1 -1
- package/dist/components/form/Slider/Slider.js +58 -57
- package/dist/components/form/SmartSearchInput/SmartSearchInput.cjs +1 -1
- package/dist/components/form/SmartSearchInput/SmartSearchInput.js +65 -64
- package/dist/components/form/TimePicker/TimePicker.cjs +1 -1
- package/dist/components/form/TimePicker/TimePicker.js +31 -30
- package/dist/components/layout/AppShell/AppShell.cjs +1 -1
- package/dist/components/layout/AppShell/AppShell.js +4 -1
- package/dist/components/layout/InteractiveArea/InteractiveArea.cjs +1 -1
- package/dist/components/layout/InteractiveArea/InteractiveArea.js +1 -1
- package/dist/components/layout/Navbar/Navbar.cjs +1 -1
- package/dist/components/layout/Navbar/Navbar.js +68 -67
- package/dist/components/layout/Sidebar/Sidebar.cjs +1 -1
- package/dist/components/layout/Sidebar/Sidebar.js +4 -1
- package/dist/components/layout/Splitter/Splitter.cjs +1 -1
- package/dist/components/layout/Splitter/Splitter.js +47 -46
- package/dist/components/layout/Transition/Transition.cjs +1 -1
- package/dist/components/layout/Transition/Transition.js +25 -24
- package/dist/components/media/Audio/Audio.cjs +1 -1
- package/dist/components/media/Audio/Audio.js +39 -38
- package/dist/components/media/Image/Image.cjs +2 -2
- package/dist/components/media/Image/Image.js +96 -95
- package/dist/components/media/ImageCompare/ImageCompare.cjs +1 -1
- package/dist/components/media/ImageCompare/ImageCompare.js +75 -74
- package/dist/components/media/Video/Video.cjs +1 -1
- package/dist/components/media/Video/Video.js +114 -113
- package/dist/components/navigation/Anchor/Anchor.cjs +1 -1
- package/dist/components/navigation/Anchor/Anchor.js +77 -72
- package/dist/components/navigation/SpeedDial/SpeedDial.cjs +1 -1
- package/dist/components/navigation/SpeedDial/SpeedDial.js +47 -46
- package/dist/components/navigation/Tabs/Tabs.cjs +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +87 -86
- package/dist/components/overlay/Popover/Popover.cjs +1 -1
- package/dist/components/overlay/Popover/Popover.js +1 -1
- package/dist/llms-full.txt +1 -1
- package/dist/llms.txt +1 -1
- package/dist/wimui.umd.js +5 -5
- package/package.json +4 -1
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import e from "./transition.module.js";
|
|
3
|
-
import
|
|
4
|
-
import s from "
|
|
5
|
-
import
|
|
3
|
+
import { composeEventHandlers as t } from "../../_internal/composeEventHandlers.js";
|
|
4
|
+
import n, { useCallback as r, useImperativeHandle as i, useLayoutEffect as a, useRef as o, useState as s } from "react";
|
|
5
|
+
import c from "classnames";
|
|
6
|
+
import { jsx as l } from "react/jsx-runtime";
|
|
6
7
|
//#region src/components/layout/Transition/Transition.tsx
|
|
7
|
-
var
|
|
8
|
+
var u = (t) => {
|
|
8
9
|
switch (t) {
|
|
9
10
|
case "fade": return {
|
|
10
11
|
enter: e.fadeEnterTo,
|
|
@@ -56,32 +57,32 @@ var l = (t) => {
|
|
|
56
57
|
};
|
|
57
58
|
default: return {};
|
|
58
59
|
}
|
|
59
|
-
},
|
|
60
|
-
let [
|
|
61
|
-
|
|
62
|
-
let
|
|
63
|
-
if (e.target ===
|
|
64
|
-
let e =
|
|
65
|
-
|
|
60
|
+
}, d = n.forwardRef(({ show: n, children: d, preset: f, enterPreset: p, leavePreset: m, enter: h = "", enterFrom: g = "", enterTo: _ = "", leave: v = "", leaveFrom: y = "", leaveTo: b = "", unmount: x = !0, appear: S = !1, className: C, ...w }, T) => {
|
|
61
|
+
let [E, D] = s(n), [O, k] = s(() => n && S ? "entering" : "idle"), [A, j] = s(n), [M, N] = s("from"), P = o(null), F = (e) => e && e !== "none" ? u(e) : {}, I = F(p ?? f), L = F(m ?? f), R = c(I.enter, h), z = c(I.enterFrom, g), B = c(I.enterTo, _), V = c(L.leave, v), H = c(L.leaveFrom, y), U = c(L.leaveTo, b);
|
|
62
|
+
n && !E && D(!0), n !== A && (j(n), n ? O !== "entering" && k("entering") : O !== "leaving" && k("leaving")), i(T, () => P.current);
|
|
63
|
+
let W = r((e) => {
|
|
64
|
+
if (e.target === P.current && (O === "entering" || O === "leaving")) {
|
|
65
|
+
let e = O === "leaving";
|
|
66
|
+
k("idle"), e && x && D(!1);
|
|
66
67
|
}
|
|
67
|
-
}, [
|
|
68
|
-
return
|
|
69
|
-
if (
|
|
70
|
-
|
|
68
|
+
}, [O, x]);
|
|
69
|
+
return a(() => {
|
|
70
|
+
if (O === "idle") return;
|
|
71
|
+
N("from");
|
|
71
72
|
let e = 0, t = requestAnimationFrame(() => {
|
|
72
|
-
e = requestAnimationFrame(() =>
|
|
73
|
+
e = requestAnimationFrame(() => N("to"));
|
|
73
74
|
});
|
|
74
75
|
return () => {
|
|
75
76
|
cancelAnimationFrame(t), cancelAnimationFrame(e);
|
|
76
77
|
};
|
|
77
|
-
}, [
|
|
78
|
-
ref:
|
|
79
|
-
className:
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
children:
|
|
78
|
+
}, [O, W]), !E && x ? null : /* @__PURE__ */ l("div", {
|
|
79
|
+
ref: P,
|
|
80
|
+
className: c(C, !n && O === "idle" && !x && e.hidden, O === "entering" && R, O === "entering" && (M === "from" ? z : B), O === "leaving" && V, O === "leaving" && (M === "from" ? H : U)),
|
|
81
|
+
...w,
|
|
82
|
+
onTransitionEnd: t(w.onTransitionEnd, W),
|
|
83
|
+
children: d
|
|
83
84
|
});
|
|
84
85
|
});
|
|
85
|
-
|
|
86
|
+
d.displayName = "Transition";
|
|
86
87
|
//#endregion
|
|
87
|
-
export {
|
|
88
|
+
export { d as Transition };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../i18n/generated/common.cjs"),r=require("../../../hooks/useMediaLoader.cjs"),
|
|
2
|
+
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../i18n/generated/common.cjs"),r=require("../../_internal/composeEventHandlers.cjs"),i=require("../../../hooks/useMediaLoader.cjs"),a=require("./hooks/useAudioPlayer.cjs"),o=require("./hooks/useAudioMetadata.cjs"),s=require("./components/AudioCustomControls.cjs"),c=require("./audio.module.cjs");let l=require("react");l=e.__toESM(l,1);let u=require("classnames");u=e.__toESM(u,1);let d=require("react/jsx-runtime");var f=({src:e,autoPlay:f=!1,loop:ee=!1,muted:p=!1,controls:m=!0,radius:h=`none`,shadow:te=!1,border:g=!1,preload:_,caption:v,className:y,style:b,customControls:x=!1,visualizer:S=!1,showMetadata:C=!1,fadeIn:w=!1,fadeOut:ne=!1,crossfade:T=!1,playbackRate:E=!1,hotkeys:D=!1,presets:O=!1,sleepTimer:k=!1,loading:A=`lazy`,demoDelay:j,labels:M={},tracks:N,...P})=>{let{t:F}=t.useWimTranslation(n.commonNs),{unknownTitle:I=F(`audio.unknown_title`),unknownArtist:L=F(`audio.unknown_artist`)}=M,R=(0,l.useMemo)(()=>e?(Array.isArray(e)?e:[e]).map(e=>typeof e==`string`?{src:e}:e):[],[e]),{containerRef:z,isLoaded:re,isIntersecting:B,notifyLoaded:V,shouldShowSkeleton:H}=i.useMediaLoader({loading:A,demoDelay:j,src:R[0]?.src}),U=a.useAudioPlayer({playlist:R,loop:ee,muted:p,fadeIn:w,fadeOut:ne,crossfade:T,visualizer:S,hotkeys:D,autoPlay:f}),{isPlaying:W,currentTrack:G,currentTrackIndex:K,activeAudioRef:q,nextAudioRef:J,canvasRef:Y,handleTimeUpdate:X,handleEnded:ie,setDuration:ae,playActivePlayer:oe}=U,{metaTitle:Z,metaArtist:Q,metaCover:$}=o.useAudioMetadata({currentTrack:G,showMetadata:C});(0,l.useEffect)(()=>{G&&q.current&&(q.current.src=G.src,(f||W)&&oe())},[K,G]);let se=h===`none`?null:c.default[`radius${h.charAt(0).toUpperCase()+h.slice(1)}`];return(0,d.jsxs)(`figure`,{className:(0,u.default)(`wim-audio`,c.default.root,y),style:b,"data-testid":`audio-root`,children:[(0,d.jsxs)(`div`,{ref:z,className:(0,u.default)(c.default.inner,se,x&&te&&c.default.shadow,x&&g&&c.default.border,x&&c.default.custom,w&&c.default.fadeIn,w&&re&&c.default.isLoaded,H&&c.default.loading),"data-testid":`audio-inner`,children:[S&&x&&(0,d.jsx)(`canvas`,{ref:Y,className:c.default.visualizerCanvas,"data-testid":`audio-canvas`}),x&&C&&(Z||Q||$)&&(0,d.jsxs)(`div`,{className:c.default.metadata,style:{position:`relative`,zIndex:2},"data-testid":`audio-metadata`,children:[$&&(0,d.jsx)(`img`,{src:$,alt:F(`a11y.cover_art`),className:c.default.cover,"data-testid":`audio-cover`}),(0,d.jsxs)(`div`,{className:c.default.info,children:[(0,d.jsx)(`div`,{className:c.default.title,"data-testid":`audio-title`,children:Z||I}),(0,d.jsx)(`div`,{className:c.default.artist,"data-testid":`audio-artist`,children:Q||L})]})]}),(0,d.jsxs)(`div`,{style:{display:x?`none`:`block`,width:`100%`},children:[B&&(0,d.jsx)(`audio`,{ref:q,src:G?.src,className:c.default.audio,"data-testid":`audio-active`,loop:U.repeatMode===1&&R.length===1,muted:U.isMuted,controls:!x&&m,preload:_,crossOrigin:`anonymous`,...P,onTimeUpdate:r.composeEventHandlers(P.onTimeUpdate,X),onEnded:r.composeEventHandlers(P.onEnded,ie),onLoadedMetadata:e=>{ae(e.currentTarget.duration),V(),P.onLoadedMetadata?.(e)},onLoadedData:e=>{V(),P.onLoadedData?.(e)},onCanPlay:e=>{V(),P.onCanPlay?.(e)},children:N?.map((e,t)=>(0,d.jsx)(`track`,{...e},t))}),(0,d.jsx)(`audio`,{ref:J,muted:U.isMuted,preload:`auto`,crossOrigin:`anonymous`,"data-testid":`audio-next`})]}),x&&(0,d.jsx)(s.AudioCustomControls,{styles:c.default,isPlaying:W,currentTime:U.currentTime,duration:U.duration,volume:U.volume,isMuted:U.isMuted,repeatMode:U.repeatMode,shuffleMode:U.shuffleMode,currentPlaybackRate:U.currentPlaybackRate,isBassBoost:U.isBassBoost,remainingSleepTime:U.remainingSleepTime,playbackRate:E,presets:O,sleepTimer:k,setRepeatMode:U.setRepeatMode,setShuffleMode:U.setShuffleMode,setCurrentPlaybackRate:U.setCurrentPlaybackRate,setIsBassBoost:U.setIsBassBoost,setIsMuted:U.setIsMuted,togglePlay:U.togglePlay,handleSeek:U.handleSeek,handleVolumeChange:U.handleVolumeChange,playNext:U.playNext,toggleSleepTimer:U.toggleSleepTimer,formatTime:U.formatTime,labels:M})]}),v&&(0,d.jsx)(`figcaption`,{className:c.default.caption,children:v})]})};exports.Audio=f;
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { useWimTranslation as e } from "../../../i18n/useWimTranslation.js";
|
|
3
3
|
import { commonNs as t } from "../../../i18n/generated/common.js";
|
|
4
|
+
import { composeEventHandlers as n } from "../../_internal/composeEventHandlers.js";
|
|
4
5
|
import { useMediaLoader as ee } from "../../../hooks/useMediaLoader.js";
|
|
5
|
-
import { useAudioPlayer as
|
|
6
|
-
import { useAudioMetadata as
|
|
7
|
-
import { AudioCustomControls as
|
|
8
|
-
import
|
|
9
|
-
import { useEffect as
|
|
6
|
+
import { useAudioPlayer as r } from "./hooks/useAudioPlayer.js";
|
|
7
|
+
import { useAudioMetadata as te } from "./hooks/useAudioMetadata.js";
|
|
8
|
+
import { AudioCustomControls as ne } from "./components/AudioCustomControls.js";
|
|
9
|
+
import i from "./audio.module.js";
|
|
10
|
+
import { useEffect as a, useMemo as o } from "react";
|
|
10
11
|
import s from "classnames";
|
|
11
12
|
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
12
13
|
//#region src/components/media/Audio/Audio.tsx
|
|
13
|
-
var u = ({ src: u, autoPlay: d = !1, loop: f = !1, muted: p = !1, controls: m = !0, radius: h = "none", shadow: g = !1, border:
|
|
14
|
-
let { t: I } = e(t), { unknownTitle: L = I("audio.unknown_title"), unknownArtist: R = I("audio.unknown_artist") } = N, z =
|
|
14
|
+
var u = ({ src: u, autoPlay: d = !1, loop: f = !1, muted: p = !1, controls: m = !0, radius: h = "none", shadow: g = !1, border: _ = !1, preload: v, caption: y, className: b, style: re, customControls: x = !1, visualizer: S = !1, showMetadata: C = !1, fadeIn: w = !1, fadeOut: T = !1, crossfade: E = !1, playbackRate: D = !1, hotkeys: O = !1, presets: k = !1, sleepTimer: A = !1, loading: j = "lazy", demoDelay: M, labels: N = {}, tracks: P, ...F }) => {
|
|
15
|
+
let { t: I } = e(t), { unknownTitle: L = I("audio.unknown_title"), unknownArtist: R = I("audio.unknown_artist") } = N, z = o(() => u ? (Array.isArray(u) ? u : [u]).map((e) => typeof e == "string" ? { src: e } : e) : [], [u]), { containerRef: ie, isLoaded: B, isIntersecting: V, notifyLoaded: H, shouldShowSkeleton: U } = ee({
|
|
15
16
|
loading: j,
|
|
16
17
|
demoDelay: M,
|
|
17
18
|
src: z[0]?.src
|
|
18
|
-
}), W =
|
|
19
|
+
}), W = r({
|
|
19
20
|
playlist: z,
|
|
20
21
|
loop: f,
|
|
21
22
|
muted: p,
|
|
@@ -25,50 +26,50 @@ var u = ({ src: u, autoPlay: d = !1, loop: f = !1, muted: p = !1, controls: m =
|
|
|
25
26
|
visualizer: S,
|
|
26
27
|
hotkeys: O,
|
|
27
28
|
autoPlay: d
|
|
28
|
-
}), { isPlaying: G, currentTrack: K, currentTrackIndex: q, activeAudioRef: J, nextAudioRef: Y, canvasRef:
|
|
29
|
+
}), { isPlaying: G, currentTrack: K, currentTrackIndex: q, activeAudioRef: J, nextAudioRef: Y, canvasRef: ae, handleTimeUpdate: oe, handleEnded: se, setDuration: ce, playActivePlayer: le } = W, { metaTitle: X, metaArtist: Z, metaCover: Q } = te({
|
|
29
30
|
currentTrack: K,
|
|
30
31
|
showMetadata: C
|
|
31
32
|
});
|
|
32
|
-
|
|
33
|
-
K && J.current && (J.current.src = K.src, (d || G) &&
|
|
33
|
+
a(() => {
|
|
34
|
+
K && J.current && (J.current.src = K.src, (d || G) && le());
|
|
34
35
|
}, [q, K]);
|
|
35
|
-
let
|
|
36
|
+
let $ = h === "none" ? null : i[`radius${h.charAt(0).toUpperCase() + h.slice(1)}`];
|
|
36
37
|
return /* @__PURE__ */ l("figure", {
|
|
37
|
-
className: s("wim-audio",
|
|
38
|
-
style:
|
|
38
|
+
className: s("wim-audio", i.root, b),
|
|
39
|
+
style: re,
|
|
39
40
|
"data-testid": "audio-root",
|
|
40
41
|
children: [/* @__PURE__ */ l("div", {
|
|
41
|
-
ref:
|
|
42
|
-
className: s(
|
|
42
|
+
ref: ie,
|
|
43
|
+
className: s(i.inner, $, x && g && i.shadow, x && _ && i.border, x && i.custom, w && i.fadeIn, w && B && i.isLoaded, U && i.loading),
|
|
43
44
|
"data-testid": "audio-inner",
|
|
44
45
|
children: [
|
|
45
46
|
S && x && /* @__PURE__ */ c("canvas", {
|
|
46
|
-
ref:
|
|
47
|
-
className:
|
|
47
|
+
ref: ae,
|
|
48
|
+
className: i.visualizerCanvas,
|
|
48
49
|
"data-testid": "audio-canvas"
|
|
49
50
|
}),
|
|
50
|
-
x && C && (
|
|
51
|
-
className:
|
|
51
|
+
x && C && (X || Z || Q) && /* @__PURE__ */ l("div", {
|
|
52
|
+
className: i.metadata,
|
|
52
53
|
style: {
|
|
53
54
|
position: "relative",
|
|
54
55
|
zIndex: 2
|
|
55
56
|
},
|
|
56
57
|
"data-testid": "audio-metadata",
|
|
57
|
-
children: [
|
|
58
|
-
src:
|
|
58
|
+
children: [Q && /* @__PURE__ */ c("img", {
|
|
59
|
+
src: Q,
|
|
59
60
|
alt: I("a11y.cover_art"),
|
|
60
|
-
className:
|
|
61
|
+
className: i.cover,
|
|
61
62
|
"data-testid": "audio-cover"
|
|
62
63
|
}), /* @__PURE__ */ l("div", {
|
|
63
|
-
className:
|
|
64
|
+
className: i.info,
|
|
64
65
|
children: [/* @__PURE__ */ c("div", {
|
|
65
|
-
className:
|
|
66
|
+
className: i.title,
|
|
66
67
|
"data-testid": "audio-title",
|
|
67
|
-
children:
|
|
68
|
+
children: X || L
|
|
68
69
|
}), /* @__PURE__ */ c("div", {
|
|
69
|
-
className:
|
|
70
|
+
className: i.artist,
|
|
70
71
|
"data-testid": "audio-artist",
|
|
71
|
-
children:
|
|
72
|
+
children: Z || R
|
|
72
73
|
})]
|
|
73
74
|
})]
|
|
74
75
|
}),
|
|
@@ -80,18 +81,18 @@ var u = ({ src: u, autoPlay: d = !1, loop: f = !1, muted: p = !1, controls: m =
|
|
|
80
81
|
children: [V && /* @__PURE__ */ c("audio", {
|
|
81
82
|
ref: J,
|
|
82
83
|
src: K?.src,
|
|
83
|
-
className:
|
|
84
|
+
className: i.audio,
|
|
84
85
|
"data-testid": "audio-active",
|
|
85
86
|
loop: W.repeatMode === 1 && z.length === 1,
|
|
86
87
|
muted: W.isMuted,
|
|
87
88
|
controls: !x && m,
|
|
88
|
-
preload:
|
|
89
|
+
preload: v,
|
|
89
90
|
crossOrigin: "anonymous",
|
|
90
|
-
onTimeUpdate: ie,
|
|
91
|
-
onEnded: ae,
|
|
92
91
|
...F,
|
|
92
|
+
onTimeUpdate: n(F.onTimeUpdate, oe),
|
|
93
|
+
onEnded: n(F.onEnded, se),
|
|
93
94
|
onLoadedMetadata: (e) => {
|
|
94
|
-
|
|
95
|
+
ce(e.currentTarget.duration), H(), F.onLoadedMetadata?.(e);
|
|
95
96
|
},
|
|
96
97
|
onLoadedData: (e) => {
|
|
97
98
|
H(), F.onLoadedData?.(e);
|
|
@@ -108,8 +109,8 @@ var u = ({ src: u, autoPlay: d = !1, loop: f = !1, muted: p = !1, controls: m =
|
|
|
108
109
|
"data-testid": "audio-next"
|
|
109
110
|
})]
|
|
110
111
|
}),
|
|
111
|
-
x && /* @__PURE__ */ c(
|
|
112
|
-
styles:
|
|
112
|
+
x && /* @__PURE__ */ c(ne, {
|
|
113
|
+
styles: i,
|
|
113
114
|
isPlaying: G,
|
|
114
115
|
currentTime: W.currentTime,
|
|
115
116
|
duration: W.duration,
|
|
@@ -137,9 +138,9 @@ var u = ({ src: u, autoPlay: d = !1, loop: f = !1, muted: p = !1, controls: m =
|
|
|
137
138
|
labels: N
|
|
138
139
|
})
|
|
139
140
|
]
|
|
140
|
-
}),
|
|
141
|
-
className:
|
|
142
|
-
children:
|
|
141
|
+
}), y && /* @__PURE__ */ c("figcaption", {
|
|
142
|
+
className: i.caption,
|
|
143
|
+
children: y
|
|
143
144
|
})]
|
|
144
145
|
});
|
|
145
146
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../icon/image.cjs"),
|
|
2
|
+
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../_internal/composeEventHandlers.cjs"),n=require("../../../icon/image.cjs"),r=require("../Icon/Icon.cjs"),i=require("../../../hooks/useMediaLoader.cjs"),a=require("./image.module.cjs");let o=require("react");o=e.__toESM(o,1);let s=require("classnames");s=e.__toESM(s,1);let c=require("react/jsx-runtime");var l=(e,t)=>{if(t===void 0||t===`none`||t===!1)return;let n={blur:{sm:`4px`,md:`8px`,lg:`16px`},grayscale:{sm:`33%`,md:`66%`,lg:`100%`,true:`100%`},brightness:{sm:`0.8`,md:`0.5`,lg:`0.3`},contrast:{sm:`1.2`,md:`1.5`,lg:`2`},sepia:{sm:`33%`,md:`66%`,lg:`100%`},saturate:{sm:`1.5`,md:`2`,lg:`3`},invert:{sm:`33%`,md:`66%`,lg:`100%`},opacity:{sm:`0.8`,md:`0.5`,lg:`0.2`}};if(e===`hueRotate`)return`${t}deg`;let r=typeof t==`boolean`?`true`:t;return n[e]?.[r]},u=e=>{let t=e.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,(e,t,n,r)=>t+t+n+n+r+r),n=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return n?{r:parseInt(n[1],16)/255,g:parseInt(n[2],16)/255,b:parseInt(n[3],16)/255}:{r:0,g:0,b:0}},d=e=>{if(!e)return;let t=[],n=l(`blur`,e.blur);n&&t.push(`blur(${n})`);let r=l(`grayscale`,e.grayscale);r&&t.push(`grayscale(${r})`);let i=l(`brightness`,e.brightness);i&&t.push(`brightness(${i})`);let a=l(`contrast`,e.contrast);a&&t.push(`contrast(${a})`);let o=l(`sepia`,e.sepia);o&&t.push(`sepia(${o})`);let s=l(`saturate`,e.saturate);s&&t.push(`saturate(${s})`);let c=l(`hueRotate`,e.hueRotate);c&&t.push(`hue-rotate(${c})`);let u=l(`invert`,e.invert);u&&t.push(`invert(${u})`);let d=l(`opacity`,e.opacity);return d&&t.push(`opacity(${d})`),t.length>0?t.join(` `):`none`},f=({src:e,alt:l,width:f,height:p,radius:m=`none`,shadow:h=!1,border:g=!1,fit:_=`cover`,loading:v,caption:y,filter:b,hoverFilter:x,backdropFilter:S,hoverBackdropFilter:C,transition:w=`normal`,noise:T,duotone:E,overlay:D,zoom:O=!1,tilt:k=!1,fadeIn:A=!1,blendMode:j,bgColor:M,demoDelay:N,priority:P=!1,fallback:F,className:I,style:L,...R})=>{let[z,B]=o.default.useState(!1),{containerRef:V,isLoaded:H,isIntersecting:U,notifyLoaded:W,shouldShowSkeleton:G}=i.useMediaLoader({loading:v,src:e,demoDelay:N}),[K,q]=o.default.useState({}),J=o.default.useId().replace(/:/g,``),Y=e=>{if(!k)return;let t=e.currentTarget.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top,i=t.width/2,a=t.height/2,o=(r-a)/a*-10,s=(n-i)/i*10;q({transform:`perspective(1000px) rotateX(${o}deg) rotateY(${s}deg)`})},X=()=>{k&&q({transform:`perspective(1000px) rotateX(0deg) rotateY(0deg)`})},Z=o.default.useMemo(()=>{let e={};O&&(e[`--wim-image-zoom-scale`]=(typeof O==`number`?O:1.05).toString());let t=d(b);t&&(e[`--wim-image-filter`]=t),E&&(e[`--wim-image-filter`]=`${e[`--wim-image-filter`]||``} url(#${J})`.trim());let n=d(S);n&&(e[`--wim-image-backdrop`]=n);let r=d(x);r&&(e[`--wim-image-hover-filter`]=r);let i=d(C);if(i&&(e[`--wim-image-hover-backdrop`]=i),T&&T!==`none`&&(e[`--wim-image-noise-opacity`]={xs:`0.02`,sm:`0.05`,md:`0.1`,lg:`0.2`,xl:`0.3`,"2xl":`0.4`,"3xl":`0.5`,"4xl":`0.6`,"5xl":`0.7`}[T]||`0`),D){let t=typeof D.intensity==`number`?D.intensity.toString():{sm:`0.3`,md:`0.6`,lg:`0.9`}[D.intensity]||`0.5`;e[`--wim-image-overlay-color`]=D.color||`rgba(0,0,0,0.5)`,e[`--wim-image-overlay-opacity`]=D.showOnHover?`0`:t,e[`--wim-image-overlay-hover-opacity`]=t,D.blendMode&&(e[`--wim-image-overlay-blend`]=D.blendMode)}return j&&(e[`--wim-image-blend-mode`]=j),M&&(e[`--wim-image-bg-color`]=M),e[`--wim-image-transition-duration`]={none:`0s`,fast:`var(--wim-duration-fast)`,normal:`var(--wim-duration-base)`,slow:`var(--wim-duration-extra-slow)`}[w],e},[b,x,S,C,w,T,E,D,J,O,j,M]),Q=o.default.useMemo(()=>{if(!E)return null;let e=u(E.light),t=u(E.dark);return`
|
|
3
3
|
${e.r-t.r} 0 0 0 ${t.r}
|
|
4
4
|
${e.g-t.g} 0 0 0 ${t.g}
|
|
5
5
|
${e.b-t.b} 0 0 0 ${t.b}
|
|
6
6
|
0 0 0 1 0
|
|
7
|
-
`},[
|
|
7
|
+
`},[E]),$={width:`100%`,height:p||`auto`,objectFit:_,...L},ee=m===`none`?null:a.default[`radius${m.charAt(0).toUpperCase()+m.slice(1)}`];return(0,c.jsxs)(`figure`,{ref:V,className:(0,s.default)(`wim-image`,a.default.root,I),"data-testid":`image-root`,style:{maxWidth:f||`100%`,width:`100%`,...Z,...K},onMouseMove:Y,onMouseLeave:X,children:[E&&(0,c.jsx)(`svg`,{style:{position:`absolute`,width:0,height:0},children:(0,c.jsx)(`filter`,{id:J,colorInterpolationFilters:`sRGB`,children:(0,c.jsx)(`feColorMatrix`,{type:`matrix`,values:Q||``})})}),(0,c.jsxs)(`div`,{className:(0,s.default)(a.default.inner,ee,h&&a.default.shadow,g&&a.default.border,(S||C)&&a.default.hasBackdrop,T&&T!==`none`&&a.default.hasNoise,D&&a.default.hasOverlay,O&&a.default.zoomable,A&&a.default.fadeIn,A&&H&&a.default.isLoaded,G&&A&&a.default.loading),style:p===void 0?void 0:{height:p},"data-testid":`image-inner`,children:[U&&!z&&(0,c.jsx)(`img`,{src:e,alt:l,className:(0,s.default)(a.default.image,(b||x||E)&&a.default.hasFilter),style:$,loading:v,fetchPriority:P?`high`:void 0,"data-testid":`image-element`,...R,onLoad:t.composeEventHandlers(R.onLoad,W),onError:t.composeEventHandlers(R.onError,()=>B(!0))}),z&&(0,c.jsx)(`div`,{className:a.default.fallback,"data-testid":`image-fallback`,children:F||(0,c.jsxs)(`div`,{className:a.default.defaultFallback,children:[(0,c.jsx)(r.Icon,{component:n.default,size:`lg`,color:`text-tertiary`}),l&&(0,c.jsx)(`span`,{className:a.default.fallbackText,children:l})]})})]}),y&&(0,c.jsx)(`figcaption`,{className:a.default.caption,"data-testid":`image-caption`,children:y})]})};exports.Image=f;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import e from "
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import r from "
|
|
6
|
-
import i from "
|
|
7
|
-
import a from "
|
|
8
|
-
import
|
|
2
|
+
import { composeEventHandlers as e } from "../../_internal/composeEventHandlers.js";
|
|
3
|
+
import t from "../../../icon/image.js";
|
|
4
|
+
import { Icon as n } from "../Icon/Icon.js";
|
|
5
|
+
import { useMediaLoader as r } from "../../../hooks/useMediaLoader.js";
|
|
6
|
+
import i from "./image.module.js";
|
|
7
|
+
import a from "react";
|
|
8
|
+
import o from "classnames";
|
|
9
|
+
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
9
10
|
//#region src/components/media/Image/Image.tsx
|
|
10
|
-
var
|
|
11
|
+
var l = (e, t) => {
|
|
11
12
|
if (t === void 0 || t === "none" || t === !1) return;
|
|
12
13
|
let n = {
|
|
13
14
|
blur: {
|
|
@@ -55,7 +56,7 @@ var c = (e, t) => {
|
|
|
55
56
|
if (e === "hueRotate") return `${t}deg`;
|
|
56
57
|
let r = typeof t == "boolean" ? "true" : t;
|
|
57
58
|
return n[e]?.[r];
|
|
58
|
-
},
|
|
59
|
+
}, u = (e) => {
|
|
59
60
|
let t = e.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, (e, t, n, r) => t + t + n + n + r + r), n = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);
|
|
60
61
|
return n ? {
|
|
61
62
|
r: parseInt(n[1], 16) / 255,
|
|
@@ -66,48 +67,48 @@ var c = (e, t) => {
|
|
|
66
67
|
g: 0,
|
|
67
68
|
b: 0
|
|
68
69
|
};
|
|
69
|
-
},
|
|
70
|
+
}, d = (e) => {
|
|
70
71
|
if (!e) return;
|
|
71
|
-
let t = [], n =
|
|
72
|
+
let t = [], n = l("blur", e.blur);
|
|
72
73
|
n && t.push(`blur(${n})`);
|
|
73
|
-
let r =
|
|
74
|
+
let r = l("grayscale", e.grayscale);
|
|
74
75
|
r && t.push(`grayscale(${r})`);
|
|
75
|
-
let i =
|
|
76
|
+
let i = l("brightness", e.brightness);
|
|
76
77
|
i && t.push(`brightness(${i})`);
|
|
77
|
-
let a =
|
|
78
|
+
let a = l("contrast", e.contrast);
|
|
78
79
|
a && t.push(`contrast(${a})`);
|
|
79
|
-
let o =
|
|
80
|
+
let o = l("sepia", e.sepia);
|
|
80
81
|
o && t.push(`sepia(${o})`);
|
|
81
|
-
let s =
|
|
82
|
+
let s = l("saturate", e.saturate);
|
|
82
83
|
s && t.push(`saturate(${s})`);
|
|
83
|
-
let
|
|
84
|
-
|
|
85
|
-
let u =
|
|
84
|
+
let c = l("hueRotate", e.hueRotate);
|
|
85
|
+
c && t.push(`hue-rotate(${c})`);
|
|
86
|
+
let u = l("invert", e.invert);
|
|
86
87
|
u && t.push(`invert(${u})`);
|
|
87
|
-
let d =
|
|
88
|
+
let d = l("opacity", e.opacity);
|
|
88
89
|
return d && t.push(`opacity(${d})`), t.length > 0 ? t.join(" ") : "none";
|
|
89
|
-
},
|
|
90
|
-
let [
|
|
91
|
-
loading:
|
|
92
|
-
src:
|
|
93
|
-
demoDelay:
|
|
94
|
-
}), [
|
|
95
|
-
if (!
|
|
90
|
+
}, f = ({ src: l, alt: f, width: p, height: m, radius: h = "none", shadow: g = !1, border: _ = !1, fit: v = "cover", loading: y, caption: b, filter: x, hoverFilter: S, backdropFilter: C, hoverBackdropFilter: w, transition: T = "normal", noise: E, duotone: D, overlay: O, zoom: k = !1, tilt: A = !1, fadeIn: j = !1, blendMode: M, bgColor: N, demoDelay: P, priority: F = !1, fallback: I, className: L, style: R, ...z }) => {
|
|
91
|
+
let [B, V] = a.useState(!1), { containerRef: H, isLoaded: U, isIntersecting: W, notifyLoaded: G, shouldShowSkeleton: K } = r({
|
|
92
|
+
loading: y,
|
|
93
|
+
src: l,
|
|
94
|
+
demoDelay: P
|
|
95
|
+
}), [q, J] = a.useState({}), Y = a.useId().replace(/:/g, ""), X = (e) => {
|
|
96
|
+
if (!A) return;
|
|
96
97
|
let t = e.currentTarget.getBoundingClientRect(), n = e.clientX - t.left, r = e.clientY - t.top, i = t.width / 2, a = t.height / 2, o = (r - a) / a * -10, s = (n - i) / i * 10;
|
|
97
|
-
|
|
98
|
-
},
|
|
99
|
-
|
|
100
|
-
},
|
|
98
|
+
J({ transform: `perspective(1000px) rotateX(${o}deg) rotateY(${s}deg)` });
|
|
99
|
+
}, Z = () => {
|
|
100
|
+
A && J({ transform: "perspective(1000px) rotateX(0deg) rotateY(0deg)" });
|
|
101
|
+
}, Q = a.useMemo(() => {
|
|
101
102
|
let e = {};
|
|
102
|
-
|
|
103
|
-
let t =
|
|
104
|
-
t && (e["--wim-image-filter"] = t),
|
|
105
|
-
let n =
|
|
103
|
+
k && (e["--wim-image-zoom-scale"] = (typeof k == "number" ? k : 1.05).toString());
|
|
104
|
+
let t = d(x);
|
|
105
|
+
t && (e["--wim-image-filter"] = t), D && (e["--wim-image-filter"] = `${e["--wim-image-filter"] || ""} url(#${Y})`.trim());
|
|
106
|
+
let n = d(C);
|
|
106
107
|
n && (e["--wim-image-backdrop"] = n);
|
|
107
|
-
let r =
|
|
108
|
+
let r = d(S);
|
|
108
109
|
r && (e["--wim-image-hover-filter"] = r);
|
|
109
|
-
let i =
|
|
110
|
-
if (i && (e["--wim-image-hover-backdrop"] = i),
|
|
110
|
+
let i = d(w);
|
|
111
|
+
if (i && (e["--wim-image-hover-backdrop"] = i), E && E !== "none" && (e["--wim-image-noise-opacity"] = {
|
|
111
112
|
xs: "0.02",
|
|
112
113
|
sm: "0.05",
|
|
113
114
|
md: "0.1",
|
|
@@ -117,22 +118,21 @@ var c = (e, t) => {
|
|
|
117
118
|
"3xl": "0.5",
|
|
118
119
|
"4xl": "0.6",
|
|
119
120
|
"5xl": "0.7"
|
|
120
|
-
}[
|
|
121
|
-
let t = typeof
|
|
121
|
+
}[E] || "0"), O) {
|
|
122
|
+
let t = typeof O.intensity == "number" ? O.intensity.toString() : {
|
|
122
123
|
sm: "0.3",
|
|
123
124
|
md: "0.6",
|
|
124
125
|
lg: "0.9"
|
|
125
|
-
}[
|
|
126
|
-
e["--wim-image-overlay-color"] =
|
|
126
|
+
}[O.intensity] || "0.5";
|
|
127
|
+
e["--wim-image-overlay-color"] = O.color || "rgba(0,0,0,0.5)", e["--wim-image-overlay-opacity"] = O.showOnHover ? "0" : t, e["--wim-image-overlay-hover-opacity"] = t, O.blendMode && (e["--wim-image-overlay-blend"] = O.blendMode);
|
|
127
128
|
}
|
|
128
|
-
return
|
|
129
|
+
return M && (e["--wim-image-blend-mode"] = M), N && (e["--wim-image-bg-color"] = N), e["--wim-image-transition-duration"] = {
|
|
129
130
|
none: "0s",
|
|
130
131
|
fast: "var(--wim-duration-fast)",
|
|
131
132
|
normal: "var(--wim-duration-base)",
|
|
132
133
|
slow: "var(--wim-duration-extra-slow)"
|
|
133
|
-
}[
|
|
134
|
+
}[T], e;
|
|
134
135
|
}, [
|
|
135
|
-
b,
|
|
136
136
|
x,
|
|
137
137
|
S,
|
|
138
138
|
C,
|
|
@@ -140,91 +140,92 @@ var c = (e, t) => {
|
|
|
140
140
|
T,
|
|
141
141
|
E,
|
|
142
142
|
D,
|
|
143
|
-
J,
|
|
144
143
|
O,
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
144
|
+
Y,
|
|
145
|
+
k,
|
|
146
|
+
M,
|
|
147
|
+
N
|
|
148
|
+
]), $ = a.useMemo(() => {
|
|
149
|
+
if (!D) return null;
|
|
150
|
+
let e = u(D.light), t = u(D.dark);
|
|
150
151
|
return `
|
|
151
152
|
${e.r - t.r} 0 0 0 ${t.r}
|
|
152
153
|
${e.g - t.g} 0 0 0 ${t.g}
|
|
153
154
|
${e.b - t.b} 0 0 0 ${t.b}
|
|
154
155
|
0 0 0 1 0
|
|
155
156
|
`;
|
|
156
|
-
}, [
|
|
157
|
+
}, [D]), ee = {
|
|
157
158
|
width: "100%",
|
|
158
|
-
height:
|
|
159
|
-
objectFit:
|
|
160
|
-
...
|
|
161
|
-
},
|
|
162
|
-
return /* @__PURE__ */
|
|
163
|
-
ref:
|
|
164
|
-
className:
|
|
159
|
+
height: m || "auto",
|
|
160
|
+
objectFit: v,
|
|
161
|
+
...R
|
|
162
|
+
}, te = h === "none" ? null : i[`radius${h.charAt(0).toUpperCase() + h.slice(1)}`];
|
|
163
|
+
return /* @__PURE__ */ c("figure", {
|
|
164
|
+
ref: H,
|
|
165
|
+
className: o("wim-image", i.root, L),
|
|
165
166
|
"data-testid": "image-root",
|
|
166
167
|
style: {
|
|
167
|
-
maxWidth:
|
|
168
|
+
maxWidth: p || "100%",
|
|
168
169
|
width: "100%",
|
|
169
|
-
...
|
|
170
|
-
...
|
|
170
|
+
...Q,
|
|
171
|
+
...q
|
|
171
172
|
},
|
|
172
|
-
onMouseMove:
|
|
173
|
-
onMouseLeave:
|
|
173
|
+
onMouseMove: X,
|
|
174
|
+
onMouseLeave: Z,
|
|
174
175
|
children: [
|
|
175
|
-
|
|
176
|
+
D && /* @__PURE__ */ s("svg", {
|
|
176
177
|
style: {
|
|
177
178
|
position: "absolute",
|
|
178
179
|
width: 0,
|
|
179
180
|
height: 0
|
|
180
181
|
},
|
|
181
|
-
children: /* @__PURE__ */
|
|
182
|
-
id:
|
|
182
|
+
children: /* @__PURE__ */ s("filter", {
|
|
183
|
+
id: Y,
|
|
183
184
|
colorInterpolationFilters: "sRGB",
|
|
184
|
-
children: /* @__PURE__ */
|
|
185
|
+
children: /* @__PURE__ */ s("feColorMatrix", {
|
|
185
186
|
type: "matrix",
|
|
186
|
-
values:
|
|
187
|
+
values: $ || ""
|
|
187
188
|
})
|
|
188
189
|
})
|
|
189
190
|
}),
|
|
190
|
-
/* @__PURE__ */
|
|
191
|
-
className:
|
|
192
|
-
style:
|
|
191
|
+
/* @__PURE__ */ c("div", {
|
|
192
|
+
className: o(i.inner, te, g && i.shadow, _ && i.border, (C || w) && i.hasBackdrop, E && E !== "none" && i.hasNoise, O && i.hasOverlay, k && i.zoomable, j && i.fadeIn, j && U && i.isLoaded, K && j && i.loading),
|
|
193
|
+
style: m === void 0 ? void 0 : { height: m },
|
|
193
194
|
"data-testid": "image-inner",
|
|
194
|
-
children: [
|
|
195
|
-
src:
|
|
196
|
-
alt:
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
loading: v,
|
|
202
|
-
fetchPriority: P ? "high" : void 0,
|
|
195
|
+
children: [W && !B && /* @__PURE__ */ s("img", {
|
|
196
|
+
src: l,
|
|
197
|
+
alt: f,
|
|
198
|
+
className: o(i.image, (x || S || D) && i.hasFilter),
|
|
199
|
+
style: ee,
|
|
200
|
+
loading: y,
|
|
201
|
+
fetchPriority: F ? "high" : void 0,
|
|
203
202
|
"data-testid": "image-element",
|
|
204
|
-
...
|
|
205
|
-
|
|
206
|
-
|
|
203
|
+
...z,
|
|
204
|
+
onLoad: e(z.onLoad, G),
|
|
205
|
+
onError: e(z.onError, () => V(!0))
|
|
206
|
+
}), B && /* @__PURE__ */ s("div", {
|
|
207
|
+
className: i.fallback,
|
|
207
208
|
"data-testid": "image-fallback",
|
|
208
|
-
children:
|
|
209
|
-
className:
|
|
210
|
-
children: [/* @__PURE__ */
|
|
211
|
-
component:
|
|
209
|
+
children: I || /* @__PURE__ */ c("div", {
|
|
210
|
+
className: i.defaultFallback,
|
|
211
|
+
children: [/* @__PURE__ */ s(n, {
|
|
212
|
+
component: t,
|
|
212
213
|
size: "lg",
|
|
213
214
|
color: "text-tertiary"
|
|
214
|
-
}),
|
|
215
|
-
className:
|
|
216
|
-
children:
|
|
215
|
+
}), f && /* @__PURE__ */ s("span", {
|
|
216
|
+
className: i.fallbackText,
|
|
217
|
+
children: f
|
|
217
218
|
})]
|
|
218
219
|
})
|
|
219
220
|
})]
|
|
220
221
|
}),
|
|
221
|
-
|
|
222
|
-
className:
|
|
222
|
+
b && /* @__PURE__ */ s("figcaption", {
|
|
223
|
+
className: i.caption,
|
|
223
224
|
"data-testid": "image-caption",
|
|
224
|
-
children:
|
|
225
|
+
children: b
|
|
225
226
|
})
|
|
226
227
|
]
|
|
227
228
|
});
|
|
228
229
|
};
|
|
229
230
|
//#endregion
|
|
230
|
-
export {
|
|
231
|
+
export { f as Image };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../i18n/generated/common.cjs"),r=require("../../../icon/chevron-left.cjs"),
|
|
2
|
+
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../i18n/generated/common.cjs"),r=require("../../_internal/composeEventHandlers.cjs"),i=require("../../../icon/chevron-left.cjs"),a=require("../../../icon/chevron-right.cjs"),o=require("../Icon/Icon.cjs"),s=require("./image-compare.module.cjs");let c=require("react");c=e.__toESM(c,1);let l=require("classnames");l=e.__toESM(l,1);let u=require("react/jsx-runtime");var d=e=>Math.max(0,Math.min(100,e)),f=c.default.forwardRef(({before:e,after:f,beforeAlt:p=``,afterAlt:m=``,beforeLabel:h,afterLabel:g,defaultPosition:_=50,position:v,onPositionChange:y,orientation:b=`horizontal`,width:x,height:S,radius:C=`md`,labels:w,className:T,"aria-label":E,"aria-labelledby":D,"aria-describedby":O,...k},A)=>{let{t:j}=t.useWimTranslation(n.commonNs),{handleAriaLabel:M=j(`imageCompare.handle`)}=w??{},N=v!==void 0,[P,F]=(0,c.useState)(d(_)),I=d(N?v:P),L=b===`vertical`,R=(0,c.useRef)(null),z=(0,c.useRef)(!1),B=(0,c.useCallback)(e=>{R.current=e,typeof A==`function`?A(e):A&&(A.current=e)},[A]),V=(0,c.useCallback)(e=>{let t=d(e);N||F(t),y?.(t)},[N,y]),H=(0,c.useCallback)((e,t)=>{let n=R.current?.getBoundingClientRect();if(!n)return;let r=L?(t-n.top)/n.height*100:(e-n.left)/n.width*100;V(r)},[L,V]),U=e=>{z.current=!0,e.currentTarget.setPointerCapture(e.pointerId),H(e.clientX,e.clientY)},W=e=>{z.current&&H(e.clientX,e.clientY)},G=e=>{z.current=!1,e.currentTarget.releasePointerCapture?.(e.pointerId)},K=e=>{let t=e.shiftKey?10:2,n=L?`ArrowUp`:`ArrowLeft`,r=L?`ArrowDown`:`ArrowRight`;e.key===n?(e.preventDefault(),V(I-t)):e.key===r?(e.preventDefault(),V(I+t)):e.key===`Home`?(e.preventDefault(),V(0)):e.key===`End`&&(e.preventDefault(),V(100))},q=L?{clipPath:`inset(0 0 ${100-I}% 0)`}:{clipPath:`inset(0 ${100-I}% 0 0)`},J=L?{top:`${I}%`}:{left:`${I}%`};return(0,u.jsxs)(`div`,{ref:B,className:(0,l.default)(`wim-image-compare`,s.default.root,L&&s.default.vertical,s.default[`radius-${C}`],T),...k,onPointerDown:r.composeEventHandlers(k.onPointerDown,U),onPointerMove:r.composeEventHandlers(k.onPointerMove,W),onPointerUp:r.composeEventHandlers(k.onPointerUp,G),style:{width:x,height:S,...k.style},children:[(0,u.jsx)(`img`,{className:s.default.image,src:f,alt:m,draggable:!1}),g&&(0,u.jsx)(`span`,{className:(0,l.default)(s.default.label,s.default.afterLabel),children:g}),(0,u.jsxs)(`div`,{className:s.default.beforeLayer,style:q,children:[(0,u.jsx)(`img`,{className:s.default.image,src:e,alt:p,draggable:!1}),h&&(0,u.jsx)(`span`,{className:(0,l.default)(s.default.label,s.default.beforeLabel),children:h})]}),(0,u.jsxs)(`div`,{className:s.default.divider,style:J,children:[(0,u.jsx)(`span`,{className:s.default.line,"aria-hidden":`true`}),(0,u.jsxs)(`button`,{type:`button`,className:s.default.handle,role:`slider`,"aria-label":D?void 0:E??M,"aria-labelledby":D,"aria-describedby":O,"aria-orientation":b,"aria-valuenow":Math.round(I),"aria-valuemin":0,"aria-valuemax":100,onKeyDown:K,onPointerDown:U,children:[(0,u.jsx)(o.Icon,{component:i.default,size:`sm`,className:s.default.arrow}),(0,u.jsx)(o.Icon,{component:a.default,size:`sm`,className:s.default.arrow})]})]})]})});f.displayName=`ImageCompare`,exports.ImageCompare=f;
|