wimui 0.49.0 → 0.50.1
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/data-display/Carousel/Carousel.cjs +1 -1
- package/dist/components/data-display/Carousel/Carousel.js +94 -95
- package/dist/components/data-display/TreeView/TreeView.cjs +1 -1
- package/dist/components/data-display/TreeView/TreeView.js +2 -2
- package/dist/components/form/PhoneInput/PhoneInput.cjs +1 -1
- package/dist/components/form/PhoneInput/PhoneInput.d.ts +2 -2
- package/dist/components/form/PhoneInput/PhoneInput.js +46 -29
- package/dist/components/form/QueryBuilder/QueryBuilder.cjs +1 -1
- package/dist/components/form/QueryBuilder/QueryBuilder.d.ts +1 -28
- package/dist/components/form/QueryBuilder/QueryBuilder.js +1 -28
- package/dist/components/form/Select/useSelect.cjs +1 -1
- package/dist/components/form/Select/useSelect.js +3 -0
- package/dist/components/overlay/FocusTrap/FocusTrap.cjs +1 -1
- package/dist/components/overlay/FocusTrap/FocusTrap.js +10 -8
- package/dist/i18n/generated/keys.d.ts +1 -1
- package/dist/i18n/generated/resources.cjs +1 -1
- package/dist/i18n/generated/resources.js +120 -9
- package/dist/llms-full.txt +1 -1
- package/dist/llms.txt +1 -1
- package/dist/locales/en/components.json +24 -1
- package/dist/locales/en/form.json +13 -1
- package/dist/locales/ja/components.json +24 -1
- package/dist/locales/ja/form.json +13 -1
- package/dist/locales/pt/components.json +24 -1
- package/dist/locales/pt/form.json +13 -1
- package/dist/wimui.umd.js +5 -5
- package/package.json +6 -5
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../node_modules/@radix-ui/react-slot/dist/index.cjs"),n=require("../../../icon/chevron-left.cjs"),
|
|
2
|
+
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../node_modules/@radix-ui/react-slot/dist/index.cjs"),n=require("../../../i18n/useWimTranslation.cjs"),r=require("../../../icon/chevron-left.cjs"),i=require("../../../icon/chevron-right.cjs"),a=require("../../media/Icon/Icon.cjs"),o=require("./carousel.module.cjs");let s=require("react");s=e.__toESM(s,1);let c=require("classnames");c=e.__toESM(c,1);let l=require("react/jsx-runtime");var u=(e,t)=>typeof e==`number`?e:e?t>=1280&&e.xl?e.xl:t>=1024&&e.lg?e.lg:t>=768&&e.md?e.md:t>=640&&e.sm?e.sm:e.base||1:1,d=(0,s.forwardRef)(({children:e,autoPlay:d=!1,interval:f=5e3,showIndicators:p=!0,showControls:m=!0,controlsPlacement:h=`overlay`,loop:g=!0,slidesToShow:_=1,aspectRatio:v,objectFit:y=`cover`,labels:b,className:x,asChild:S,...C},w)=>{let T=S?t.Root:`div`,{t:E}=n.useWimTranslation(`components`),D={slideLabel:e=>E(`carousel.slide`,{number:e}),prevSlide:E(`carousel.prev_slide`),nextSlide:E(`carousel.next_slide`),goToSlide:e=>E(`carousel.go_to_slide`,{number:e}),...b},O=(0,s.useMemo)(()=>s.default.Children.toArray(e),[e]),k=O.length,[A,j]=(0,s.useState)(typeof window<`u`?window.innerWidth:0),[M,N]=(0,s.useState)(g?k:0),[P,F]=(0,s.useState)(!1),[I,L]=(0,s.useState)(!1),R=u(_,A),z=(0,s.useRef)(null),B=(0,s.useRef)(null),V=(0,s.useRef)(null),H=(0,s.useRef)(null);(0,s.useEffect)(()=>{let e=()=>j(window.innerWidth);return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]);let U=(0,s.useMemo)(()=>!g||k===0?O:[...O,...O,...O],[O,g,k]),W=(0,s.useCallback)(()=>{if(!P){if(!g){N(e=>Math.min(e+1,k-R));return}F(!0),N(e=>e+1)}},[P,g,k,R]),G=(0,s.useCallback)(()=>{if(!P){if(!g){N(e=>Math.max(e-1,0));return}F(!0),N(e=>e-1)}},[P,g]),K=e=>{P||(g?(F(!0),N(e+k)):N(e))},q=()=>{g&&(F(!1),M>=k*2?N(M-k):M<k&&N(M+k))};(0,s.useEffect)(()=>(d&&!I&&k>R&&(z.current=window.setInterval(W,f)),()=>{z.current&&window.clearInterval(z.current)}),[d,f,W,k,R,I]);let J=e=>{e.key===`ArrowLeft`?G():e.key===`ArrowRight`&&W()},Y=e=>{V.current=e.targetTouches[0].clientX},X=e=>{H.current=e.targetTouches[0].clientX},Z=()=>{if(!V.current||!H.current)return;let e=V.current-H.current;e>50?W():e<-50&&G(),V.current=null,H.current=null};if(k===0)return null;let Q=100/R,$=-M*Q;return(0,l.jsxs)(T,{ref:w,className:(0,c.default)(`wim-carousel`,o.default.root,h===`outside`&&o.default.controlsOutside,x),onMouseEnter:()=>L(!0),onMouseLeave:()=>L(!1),onFocus:()=>L(!0),onBlur:()=>L(!1),onKeyDown:J,tabIndex:0,role:`region`,"aria-roledescription":`carousel`,...C,children:[(0,l.jsx)(`div`,{className:o.default.viewport,children:(0,l.jsx)(`div`,{ref:B,className:(0,c.default)(o.default.track,P&&o.default.transition),style:{transform:`translateX(${$}%)`},onTransitionEnd:q,onTouchStart:Y,onTouchMove:X,onTouchEnd:Z,children:U.map((e,t)=>(0,l.jsx)(`div`,{className:(0,c.default)(o.default.item,v&&o.default.hasAspectRatio),style:{flex:`0 0 ${Q}%`,width:`${Q}%`,...v?{aspectRatio:v,"--wim-carousel-object-fit":y}:{}},role:`group`,"aria-roledescription":`slide`,"aria-label":D.slideLabel(t%k+1),children:e},t))})}),m&&k>R&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(`button`,{className:(0,c.default)(o.default.control,o.default.prev),onClick:G,"aria-label":D.prevSlide,disabled:!g&&M===0,tabIndex:-1,children:(0,l.jsx)(a.Icon,{component:r.default,size:`md`})}),(0,l.jsx)(`button`,{className:(0,c.default)(o.default.control,o.default.next),onClick:W,"aria-label":D.nextSlide,disabled:!g&&M>=k-R,tabIndex:-1,children:(0,l.jsx)(a.Icon,{component:i.default,size:`md`})})]}),p&&k>1&&(0,l.jsx)(`div`,{className:o.default.indicators,children:O.map((e,t)=>{let n=g?M%k===t:M===t;return(0,l.jsx)(`button`,{className:(0,c.default)(o.default.indicator,n&&o.default.active),onClick:()=>K(t),"aria-label":D.goToSlide(t+1),"aria-current":n?`true`:`false`},t)})})]})});d.displayName=`Carousel`,exports.Carousel=d;
|
|
@@ -1,109 +1,108 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { Root as e } from "../../../node_modules/@radix-ui/react-slot/dist/index.js";
|
|
3
|
-
import t from "../../../
|
|
4
|
-
import n from "../../../icon/chevron-
|
|
5
|
-
import
|
|
6
|
-
import i from "
|
|
7
|
-
import a
|
|
3
|
+
import { useWimTranslation as t } from "../../../i18n/useWimTranslation.js";
|
|
4
|
+
import n from "../../../icon/chevron-left.js";
|
|
5
|
+
import r from "../../../icon/chevron-right.js";
|
|
6
|
+
import { Icon as i } from "../../media/Icon/Icon.js";
|
|
7
|
+
import a from "./carousel.module.js";
|
|
8
|
+
import ee, { forwardRef as o, useCallback as s, useEffect as c, useMemo as l, useRef as u, useState as d } from "react";
|
|
8
9
|
import f from "classnames";
|
|
9
|
-
import { Fragment as
|
|
10
|
+
import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
10
11
|
//#region src/components/data-display/Carousel/Carousel.tsx
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
let j = O ? e : "div", M = {
|
|
18
|
-
...h,
|
|
12
|
+
var g = (e, t) => typeof e == "number" ? e : e ? t >= 1280 && e.xl ? e.xl : t >= 1024 && e.lg ? e.lg : t >= 768 && e.md ? e.md : t >= 640 && e.sm ? e.sm : e.base || 1 : 1, _ = o(({ children: o, autoPlay: _ = !1, interval: v = 5e3, showIndicators: y = !0, showControls: b = !0, controlsPlacement: x = "overlay", loop: S = !0, slidesToShow: C = 1, aspectRatio: w, objectFit: T = "cover", labels: E, className: D, asChild: O, ...k }, A) => {
|
|
13
|
+
let j = O ? e : "div", { t: M } = t("components"), N = {
|
|
14
|
+
slideLabel: (e) => M("carousel.slide", { number: e }),
|
|
15
|
+
prevSlide: M("carousel.prev_slide"),
|
|
16
|
+
nextSlide: M("carousel.next_slide"),
|
|
17
|
+
goToSlide: (e) => M("carousel.go_to_slide", { number: e }),
|
|
19
18
|
...E
|
|
20
|
-
},
|
|
19
|
+
}, P = l(() => ee.Children.toArray(o), [o]), F = P.length, [I, L] = d(typeof window < "u" ? window.innerWidth : 0), [R, z] = d(S ? F : 0), [B, V] = d(!1), [H, U] = d(!1), W = g(C, I), G = u(null), K = u(null), q = u(null), J = u(null);
|
|
21
20
|
c(() => {
|
|
22
|
-
let e = () =>
|
|
21
|
+
let e = () => L(window.innerWidth);
|
|
23
22
|
return window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
|
|
24
23
|
}, []);
|
|
25
|
-
let
|
|
26
|
-
...
|
|
27
|
-
...
|
|
28
|
-
...
|
|
24
|
+
let Y = l(() => !S || F === 0 ? P : [
|
|
25
|
+
...P,
|
|
26
|
+
...P,
|
|
27
|
+
...P
|
|
29
28
|
], [
|
|
30
|
-
|
|
29
|
+
P,
|
|
31
30
|
S,
|
|
32
|
-
|
|
33
|
-
]),
|
|
34
|
-
if (!
|
|
31
|
+
F
|
|
32
|
+
]), X = s(() => {
|
|
33
|
+
if (!B) {
|
|
35
34
|
if (!S) {
|
|
36
|
-
|
|
35
|
+
z((e) => Math.min(e + 1, F - W));
|
|
37
36
|
return;
|
|
38
37
|
}
|
|
39
|
-
|
|
38
|
+
V(!0), z((e) => e + 1);
|
|
40
39
|
}
|
|
41
40
|
}, [
|
|
42
|
-
|
|
41
|
+
B,
|
|
43
42
|
S,
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
]),
|
|
47
|
-
if (!
|
|
43
|
+
F,
|
|
44
|
+
W
|
|
45
|
+
]), Z = s(() => {
|
|
46
|
+
if (!B) {
|
|
48
47
|
if (!S) {
|
|
49
|
-
|
|
48
|
+
z((e) => Math.max(e - 1, 0));
|
|
50
49
|
return;
|
|
51
50
|
}
|
|
52
|
-
|
|
51
|
+
V(!0), z((e) => e - 1);
|
|
53
52
|
}
|
|
54
|
-
}, [
|
|
55
|
-
|
|
56
|
-
},
|
|
57
|
-
S && (
|
|
53
|
+
}, [B, S]), Q = (e) => {
|
|
54
|
+
B || (S ? (V(!0), z(e + F)) : z(e));
|
|
55
|
+
}, te = () => {
|
|
56
|
+
S && (V(!1), R >= F * 2 ? z(R - F) : R < F && z(R + F));
|
|
58
57
|
};
|
|
59
|
-
c(() => (_ && !
|
|
60
|
-
|
|
58
|
+
c(() => (_ && !H && F > W && (G.current = window.setInterval(X, v)), () => {
|
|
59
|
+
G.current && window.clearInterval(G.current);
|
|
61
60
|
}), [
|
|
62
61
|
_,
|
|
63
62
|
v,
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
63
|
+
X,
|
|
64
|
+
F,
|
|
65
|
+
W,
|
|
66
|
+
H
|
|
68
67
|
]);
|
|
69
|
-
let
|
|
70
|
-
e.key === "ArrowLeft" ?
|
|
71
|
-
}, ne = (e) => {
|
|
72
|
-
K.current = e.targetTouches[0].clientX;
|
|
68
|
+
let ne = (e) => {
|
|
69
|
+
e.key === "ArrowLeft" ? Z() : e.key === "ArrowRight" && X();
|
|
73
70
|
}, re = (e) => {
|
|
74
71
|
q.current = e.targetTouches[0].clientX;
|
|
75
|
-
}, ie = () => {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
72
|
+
}, ie = (e) => {
|
|
73
|
+
J.current = e.targetTouches[0].clientX;
|
|
74
|
+
}, ae = () => {
|
|
75
|
+
if (!q.current || !J.current) return;
|
|
76
|
+
let e = q.current - J.current;
|
|
77
|
+
e > 50 ? X() : e < -50 && Z(), q.current = null, J.current = null;
|
|
79
78
|
};
|
|
80
|
-
if (
|
|
81
|
-
let $ = 100 /
|
|
82
|
-
return /* @__PURE__ */
|
|
79
|
+
if (F === 0) return null;
|
|
80
|
+
let $ = 100 / W, oe = -R * $;
|
|
81
|
+
return /* @__PURE__ */ h(j, {
|
|
83
82
|
ref: A,
|
|
84
|
-
className: f("wim-carousel",
|
|
85
|
-
onMouseEnter: () =>
|
|
86
|
-
onMouseLeave: () =>
|
|
87
|
-
onFocus: () =>
|
|
88
|
-
onBlur: () =>
|
|
89
|
-
onKeyDown:
|
|
83
|
+
className: f("wim-carousel", a.root, x === "outside" && a.controlsOutside, D),
|
|
84
|
+
onMouseEnter: () => U(!0),
|
|
85
|
+
onMouseLeave: () => U(!1),
|
|
86
|
+
onFocus: () => U(!0),
|
|
87
|
+
onBlur: () => U(!1),
|
|
88
|
+
onKeyDown: ne,
|
|
90
89
|
tabIndex: 0,
|
|
91
90
|
role: "region",
|
|
92
91
|
"aria-roledescription": "carousel",
|
|
93
92
|
...k,
|
|
94
93
|
children: [
|
|
95
|
-
/* @__PURE__ */
|
|
96
|
-
className:
|
|
97
|
-
children: /* @__PURE__ */
|
|
98
|
-
ref:
|
|
99
|
-
className: f(
|
|
100
|
-
style: { transform: `translateX(${
|
|
101
|
-
onTransitionEnd:
|
|
102
|
-
onTouchStart:
|
|
103
|
-
onTouchMove:
|
|
104
|
-
onTouchEnd:
|
|
105
|
-
children:
|
|
106
|
-
className: f(
|
|
94
|
+
/* @__PURE__ */ m("div", {
|
|
95
|
+
className: a.viewport,
|
|
96
|
+
children: /* @__PURE__ */ m("div", {
|
|
97
|
+
ref: K,
|
|
98
|
+
className: f(a.track, B && a.transition),
|
|
99
|
+
style: { transform: `translateX(${oe}%)` },
|
|
100
|
+
onTransitionEnd: te,
|
|
101
|
+
onTouchStart: re,
|
|
102
|
+
onTouchMove: ie,
|
|
103
|
+
onTouchEnd: ae,
|
|
104
|
+
children: Y.map((e, t) => /* @__PURE__ */ m("div", {
|
|
105
|
+
className: f(a.item, w && a.hasAspectRatio),
|
|
107
106
|
style: {
|
|
108
107
|
flex: `0 0 ${$}%`,
|
|
109
108
|
width: `${$}%`,
|
|
@@ -114,40 +113,40 @@ var h = {
|
|
|
114
113
|
},
|
|
115
114
|
role: "group",
|
|
116
115
|
"aria-roledescription": "slide",
|
|
117
|
-
"aria-label":
|
|
116
|
+
"aria-label": N.slideLabel(t % F + 1),
|
|
118
117
|
children: e
|
|
119
118
|
}, t))
|
|
120
119
|
})
|
|
121
120
|
}),
|
|
122
|
-
b &&
|
|
123
|
-
className: f(
|
|
124
|
-
onClick:
|
|
125
|
-
"aria-label":
|
|
126
|
-
disabled: !S &&
|
|
121
|
+
b && F > W && /* @__PURE__ */ h(p, { children: [/* @__PURE__ */ m("button", {
|
|
122
|
+
className: f(a.control, a.prev),
|
|
123
|
+
onClick: Z,
|
|
124
|
+
"aria-label": N.prevSlide,
|
|
125
|
+
disabled: !S && R === 0,
|
|
127
126
|
tabIndex: -1,
|
|
128
|
-
children: /* @__PURE__ */
|
|
129
|
-
component:
|
|
127
|
+
children: /* @__PURE__ */ m(i, {
|
|
128
|
+
component: n,
|
|
130
129
|
size: "md"
|
|
131
130
|
})
|
|
132
|
-
}), /* @__PURE__ */
|
|
133
|
-
className: f(
|
|
134
|
-
onClick:
|
|
135
|
-
"aria-label":
|
|
136
|
-
disabled: !S &&
|
|
131
|
+
}), /* @__PURE__ */ m("button", {
|
|
132
|
+
className: f(a.control, a.next),
|
|
133
|
+
onClick: X,
|
|
134
|
+
"aria-label": N.nextSlide,
|
|
135
|
+
disabled: !S && R >= F - W,
|
|
137
136
|
tabIndex: -1,
|
|
138
|
-
children: /* @__PURE__ */
|
|
139
|
-
component:
|
|
137
|
+
children: /* @__PURE__ */ m(i, {
|
|
138
|
+
component: r,
|
|
140
139
|
size: "md"
|
|
141
140
|
})
|
|
142
141
|
})] }),
|
|
143
|
-
y &&
|
|
144
|
-
className:
|
|
145
|
-
children:
|
|
146
|
-
let n = S ?
|
|
147
|
-
return /* @__PURE__ */
|
|
148
|
-
className: f(
|
|
149
|
-
onClick: () =>
|
|
150
|
-
"aria-label":
|
|
142
|
+
y && F > 1 && /* @__PURE__ */ m("div", {
|
|
143
|
+
className: a.indicators,
|
|
144
|
+
children: P.map((e, t) => {
|
|
145
|
+
let n = S ? R % F === t : R === t;
|
|
146
|
+
return /* @__PURE__ */ m("button", {
|
|
147
|
+
className: f(a.indicator, n && a.active),
|
|
148
|
+
onClick: () => Q(t),
|
|
149
|
+
"aria-label": N.goToSlide(t + 1),
|
|
151
150
|
"aria-current": n ? "true" : "false"
|
|
152
151
|
}, t);
|
|
153
152
|
})
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../icon/chevron-right.cjs"),r=require("../../media/Icon/Icon.cjs"),i=require("../../_internal/BaseListItem/BaseListItem.cjs"),a=require("../VirtualList/VirtualList.cjs"),o=require("./tree-view.module.cjs"),s=require("./useTreeViewItemExpansion.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=(0,c.createContext)(null),f=()=>{let e=(0,c.useContext)(d);if(!e)throw Error(`TreeView components must be used within a TreeView`);return e},p=40,m=100;function h(e){return typeof e==`string`?e:typeof e==`number`?String(e):``}function g(e,t,n,r=0){let i=[];for(let a of e){let e=h(a.label),o=!n||e.toLowerCase().includes(n.toLowerCase()),s=n&&a.children?_(a.children,n):!1;if(n&&!o&&!s)continue;i.push({...a,depth:r,hasChildren:!!(a.children&&a.children.length>0)});let c=t.includes(a.value)||!!n&&s;a.children&&a.children.length>0&&c&&i.push(...g(a.children,t,n,r+1))}return i}function _(e,t){return e.some(e=>h(e.label).toLowerCase().includes(t.toLowerCase())||(e.children?_(e.children,t):!1))}function v(e,t){for(let n of e){if(n.value===t){let e=[],t=n=>{for(let r of n)e.push(r.value),r.children&&t(r.children)};return n.children&&t(n.children),e}if(n.children){let e=v(n.children,t);if(e!==null)return e}}return null}function y(e,t,n=[]){for(let r of e){if(r.value===t)return n;if(r.children){let e=y(r.children,t,[...n,r.value]);if(e!==null)return e}}return null}function b(e,t){let n=[],r=new Set(t);function i(e){if(!e.children?.length)return r.has(e.value)?`checked`:`unchecked`;let t=e.children.map(i),a=t.every(e=>e===`checked`),o=t.some(e=>e!==`unchecked`);return a?(r.add(e.value),`checked`):o?(n.push(e.value),`indeterminate`):`unchecked`}for(let t of e)i(t);return{indeterminateValues:n,effectiveCheckedSet:r}}var x=({children:e,nodes:s,className:f,multiSelect:_=!1,checkable:x=!1,checkStrategy:S=`cascade`,searchable:C=!1,defaultExpandedValues:w=[],defaultSelectedValues:T=[],defaultCheckedValues:ee=[],onCheckedChange:E,onSelectedChange:D,width:O,virtualThreshold:k=m,labels:A={},labelId:j,styles:M})=>{let{t:N}=t.useWimTranslation(`components`),{searchPlaceholder:P,searchAriaLabel:F=N(`treeview.search_aria`),expandLabel:I=e=>N(`treeview.expand`,{label:e}),collapseLabel:L=e=>N(`treeview.collapse`,{label:e})}=A,[R,z]=(0,c.useState)(w),[B,V]=(0,c.useState)(T),[H,U]=(0,c.useState)(ee),[W,te]=(0,c.useState)(``),[G,K]=(0,c.useState)(T[0]||null),q=c.default.useRef(null),{indeterminateValues:J,effectiveCheckedSet:Y}=(0,c.useMemo)(()=>!s||S!==`cascade`?{indeterminateValues:[],effectiveCheckedSet:new Set(H)}:b(s,new Set(H)),[s,S,H]),X=(0,c.useCallback)(e=>{z(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),Z=(0,c.useCallback)(e=>{if(_)V(t=>{let n=t.includes(e)?t.filter(t=>t!==e):[...t,e];return D?.(n),n});else{let t=[e];V(t),D?.(t)}},[_,D]),Q=(0,c.useCallback)(e=>{U(t=>{let n;if(!s)return n=t.includes(e)?t.filter(t=>t!==e):[...t,e],E?.(n),n;if(S===`cascade`){let{indeterminateValues:r}=b(s,new Set(t)),i=t.includes(e)&&!r.includes(e),a=[e,...v(s,e)??[]];n=i?t.filter(e=>!a.includes(e)):[...t,...a.filter(e=>!t.includes(e))];let{indeterminateValues:o,effectiveCheckedSet:c}=b(s,new Set(n));E?.([...c].filter(e=>!o.includes(e)))}else{if(t.includes(e))n=t.filter(t=>t!==e);else{let r=y(s,e)??[],i=v(s,e)??[],a=new Set([...r,...i]);n=[...t.filter(e=>!a.has(e)),e]}E?.(n)}return n})},[S,s,E]),ne=(0,c.useMemo)(()=>({expandedValues:R,selectedValues:B,checkedValues:H,indeterminateValues:J,focusedValue:G,toggleExpand:X,select:Z,toggleCheck:Q,setFocusedValue:K,containerRef:q,multiSelect:_,checkable:x,checkStrategy:S,searchQuery:W,labels:{expandLabel:I,collapseLabel:L}}),[R,B,H,J,G,X,Z,Q,_,x,S,W,I,L]),$=(0,c.useMemo)(()=>s?g(s,R,W):[],[s,R,W]),re=!!s&&$.length>=k,ie=(0,c.useCallback)((e,t,n)=>{switch(e.key){case`Enter`:case` `:e.preventDefault(),Z(t.value),x&&Q(t.value);break;case`ArrowDown`:e.preventDefault(),n<$.length-1&&K($[n+1].value);break;case`ArrowUp`:e.preventDefault(),n>0&&K($[n-1].value);break;case`Home`:e.preventDefault(),$.length>0&&K($[0].value);break;case`End`:e.preventDefault(),$.length>0&&K($[$.length-1].value);break;case`ArrowRight`:e.preventDefault(),t.hasChildren&&!R.includes(t.value)?X(t.value):t.hasChildren&&n<$.length-1&&K($[n+1].value);break;case`ArrowLeft`:if(e.preventDefault(),t.hasChildren&&R.includes(t.value))X(t.value);else for(let e=n-1;e>=0;e--)if($[e].depth<t.depth){K($[e].value);break}}},[$,R,Z,x,Q,X]),ae=(0,c.useCallback)((e,t)=>{let a=B.includes(e.value),s=Y.has(e.value),c=J.includes(e.value),d=R.includes(e.value),f=G===e.value,p=h(e.label);return(0,u.jsx)(`div`,{className:(0,l.default)(o.default.item,a&&o.default.selected,e.disabled&&o.default.disabled,M?.item),role:`treeitem`,"aria-expanded":e.hasChildren?d:void 0,"aria-selected":a,"aria-disabled":e.disabled,"aria-setsize":$.length,"aria-posinset":t+1,"aria-level":e.depth+1,"data-value":e.value,tabIndex:f?0:-1,onClick:t=>{t.stopPropagation(),K(e.value),e.disabled||(_&&x?Q(e.value):Z(e.value))},onKeyDown:n=>{n.stopPropagation(),ie(n,e,t)},onFocus:t=>{t.stopPropagation(),K(e.value)},style:{paddingLeft:e.depth*20},children:(0,u.jsx)(i.BaseListItem,{className:(0,l.default)(o.default.labelContainer,M?.labelContainer),active:a,disabled:e.disabled,icon:(0,u.jsxs)(`div`,{className:(0,l.default)(o.default.iconWrapper,M?.iconWrapper),children:[e.hasChildren?(0,u.jsx)(`button`,{type:`button`,className:(0,l.default)(o.default.expandBtn,d&&o.default.expanded,M?.expandBtn),onClick:t=>{t.stopPropagation(),e.disabled||X(e.value)},disabled:e.disabled,"aria-label":d?L(p):I(p),tabIndex:-1,children:(0,u.jsx)(r.Icon,{component:n.default,size:`sm`})}):(0,u.jsx)(`span`,{className:o.default.spacer}),x&&(0,u.jsx)(`input`,{type:`checkbox`,className:(0,l.default)(o.default.checkbox,M?.checkbox),checked:s&&!c,ref:e=>{e&&(e.indeterminate=c)},onChange:t=>{t.stopPropagation(),e.disabled||Q(e.value)},disabled:e.disabled,onClick:e=>e.stopPropagation(),"aria-label":p,tabIndex:-1}),e.icon&&(0,u.jsx)(`span`,{className:(0,l.default)(o.default.icon,M?.icon),children:e.icon})]}),children:e.label})},e.value)},[B,Y,J,R,G,$.length,_,x,Z,Q,X,ie,I,L,M]);return(0,u.jsx)(d.Provider,{value:ne,children:(0,u.jsxs)(`div`,{ref:q,"data-testid":`tree-view-root`,className:(0,l.default)(`wim-tree-view`,o.default.root,!!s&&o.default.dataDriven,f,M?.root),role:`tree`,"aria-label":A.treeAriaLabel,"aria-labelledby":A.treeAriaLabel?void 0:j,style:{width:O,maxWidth:`100%`},tabIndex:G?-1:0,onFocus:e=>{e.target===q.current&&(s?G?K(G):$.length>0&&K($[0].value):G?(q.current?.querySelector(`[role="treeitem"][data-value="${G}"]`))?.focus():(q.current?.querySelector(`[role="treeitem"]`))?.focus())},children:[C&&(0,u.jsx)(`div`,{className:(0,l.default)(o.default.search,M?.search),children:(0,u.jsx)(`input`,{type:`text`,"data-testid":`tree-view-search-input`,className:(0,l.default)(o.default.searchInput,M?.searchInput),placeholder:P,value:W,onChange:e=>te(e.target.value),"aria-label":F})}),s?re?(0,u.jsx)(a.VirtualList,{items:$,itemHeight:p,height:400,renderItem:ae,itemRole:`none`,role:`presentation`}):$.map((e,t)=>ae(e,t)):e]})})},S=({value:e,label:t,icon:a,children:d,className:p,disabled:m=!1})=>{let{expandedValues:g,selectedValues:_,checkedValues:v,indeterminateValues:y,focusedValue:b,toggleExpand:x,select:C,toggleCheck:w,setFocusedValue:T,containerRef:ee,multiSelect:E,checkable:D,searchQuery:O}=f(),k=c.default.useId(),A=`wim-tree-view-item-checkbox-${k}`,j=`wim-tree-view-item-label-${k}`,M=h(t),N=!O||M.toLowerCase().includes(O.toLowerCase()),P=c.default.useMemo(()=>{if(!O||!d)return!1;let e=t=>c.default.Children.toArray(t).some(t=>{if(!c.default.isValidElement(t)||t.type!==S)return!1;let n=t.props,r=n.label;return h(r).toLowerCase().includes(O.toLowerCase())?!0:n.children?e(n.children):!1});return e(d)},[d,O]),F=!!O&&P,I=g.includes(e)||F,L=_.includes(e),R=v.includes(e),z=y.includes(e),B=!!c.default.Children.count(d),{shouldRender:V,isVisualExpanded:H,handleTransitionEnd:U}=s.useTreeViewItemExpansion(I);return O&&!N&&!P?null:(0,u.jsxs)(`div`,{className:(0,l.default)(o.default.item,L&&o.default.selected,m&&o.default.disabled,p),role:`treeitem`,"aria-expanded":B?I:void 0,"aria-selected":L,"aria-disabled":m,"data-value":e,onClick:t=>{t.stopPropagation(),T(e),m||(E&&D?w(e):C(e))},onKeyDown:t=>{if(m)return;t.stopPropagation();let n=Array.from(ee.current?.querySelectorAll(`[role="treeitem"]:not([aria-disabled="true"])`)||[]),r=n.indexOf(t.currentTarget);switch(t.key){case`Enter`:case` `:t.preventDefault(),C(e),D&&w(e);break;case`ArrowDown`:t.preventDefault(),r<n.length-1&&n[r+1].focus();break;case`ArrowUp`:t.preventDefault(),r>0&&n[r-1].focus();break;case`Home`:t.preventDefault(),n.length>0&&n[0].focus();break;case`End`:t.preventDefault(),n.length>0&&n[n.length-1].focus();break;case`ArrowRight`:B&&(I?(t.preventDefault(),r<n.length-1&&n[r+1].focus()):(t.preventDefault(),x(e)));break;case`ArrowLeft`:if(B&&I)t.preventDefault(),x(e);else{t.preventDefault();let e=t.currentTarget.parentElement?.closest(`[role="treeitem"]`);e&&e.focus()}}},onFocus:t=>{t.stopPropagation(),T(e)},tabIndex:b===e?0:-1,children:[(0,u.jsx)(i.BaseListItem,{id:j,className:o.default.labelContainer,active:L,disabled:m,icon:(0,u.jsxs)(`div`,{className:o.default.iconWrapper,children:[B&&(0,u.jsx)(`button`,{type:`button`,className:(0,l.default)(o.default.expandBtn,I&&o.default.expanded),onClick:t=>{t.stopPropagation(),!m&&B&&x(e)},disabled:m,"aria-label":I?`Collapse ${typeof t==`string`?t:``}`:`Expand ${typeof t==`string`?t:``}`,tabIndex:-1,children:(0,u.jsx)(r.Icon,{component:n.default,size:`sm`})}),!B&&(0,u.jsx)(`span`,{className:o.default.spacer}),D&&(0,u.jsx)(`input`,{id:A,type:`checkbox`,className:o.default.checkbox,checked:R&&!z,ref:e=>{e&&(e.indeterminate=z)},onChange:t=>{t.stopPropagation(),m||w(e)},disabled:m,onClick:e=>e.stopPropagation(),"aria-labelledby":j,tabIndex:-1}),a&&(0,u.jsx)(`span`,{className:o.default.icon,children:a})]}),children:t}),B&&V&&(0,u.jsx)(`div`,{className:(0,l.default)(o.default.children,H&&o.default.expanded),onTransitionEnd:U,style:{gridTemplateRows:H?`1fr`:`0fr`},children:(0,u.jsx)(`div`,{className:o.default.childrenInner,role:`group`,children:d})})]})};x.displayName=`TreeView`,S.displayName=`TreeView.Item`;var C=x;C.Item=S,exports.TreeView=C,exports.default=C,exports.TreeViewItem=S;
|
|
2
|
+
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../../icon/chevron-right.cjs"),r=require("../../media/Icon/Icon.cjs"),i=require("../../_internal/BaseListItem/BaseListItem.cjs"),a=require("../VirtualList/VirtualList.cjs"),o=require("./tree-view.module.cjs"),s=require("./useTreeViewItemExpansion.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=(0,c.createContext)(null),f=()=>{let e=(0,c.useContext)(d);if(!e)throw Error(`TreeView components must be used within a TreeView`);return e},p=40,m=100;function h(e){return typeof e==`string`?e:typeof e==`number`?String(e):``}function g(e,t,n,r=0){let i=[];for(let a of e){let e=h(a.label),o=!n||e.toLowerCase().includes(n.toLowerCase()),s=n&&a.children?_(a.children,n):!1;if(n&&!o&&!s)continue;i.push({...a,depth:r,hasChildren:!!(a.children&&a.children.length>0)});let c=t.includes(a.value)||!!n&&s;a.children&&a.children.length>0&&c&&i.push(...g(a.children,t,n,r+1))}return i}function _(e,t){return e.some(e=>h(e.label).toLowerCase().includes(t.toLowerCase())||(e.children?_(e.children,t):!1))}function v(e,t){for(let n of e){if(n.value===t){let e=[],t=n=>{for(let r of n)e.push(r.value),r.children&&t(r.children)};return n.children&&t(n.children),e}if(n.children){let e=v(n.children,t);if(e!==null)return e}}return null}function y(e,t,n=[]){for(let r of e){if(r.value===t)return n;if(r.children){let e=y(r.children,t,[...n,r.value]);if(e!==null)return e}}return null}function b(e,t){let n=[],r=new Set(t);function i(e){if(!e.children?.length)return r.has(e.value)?`checked`:`unchecked`;let t=e.children.map(i),a=t.every(e=>e===`checked`),o=t.some(e=>e!==`unchecked`);return a?(r.add(e.value),`checked`):o?(n.push(e.value),`indeterminate`):`unchecked`}for(let t of e)i(t);return{indeterminateValues:n,effectiveCheckedSet:r}}var x=({children:e,nodes:s,className:f,multiSelect:_=!1,checkable:x=!1,checkStrategy:S=`cascade`,searchable:C=!1,defaultExpandedValues:w=[],defaultSelectedValues:T=[],defaultCheckedValues:ee=[],onCheckedChange:E,onSelectedChange:D,width:O,virtualThreshold:k=m,labels:A={},labelId:j,styles:M})=>{let{t:N}=t.useWimTranslation(`components`),{searchPlaceholder:P,searchAriaLabel:F=N(`treeview.search_aria`),expandLabel:I=e=>N(`treeview.expand`,{label:e}),collapseLabel:L=e=>N(`treeview.collapse`,{label:e})}=A,[R,z]=(0,c.useState)(w),[B,V]=(0,c.useState)(T),[H,U]=(0,c.useState)(ee),[W,te]=(0,c.useState)(``),[G,K]=(0,c.useState)(T[0]||null),q=c.default.useRef(null),{indeterminateValues:J,effectiveCheckedSet:Y}=(0,c.useMemo)(()=>!s||S!==`cascade`?{indeterminateValues:[],effectiveCheckedSet:new Set(H)}:b(s,new Set(H)),[s,S,H]),X=(0,c.useCallback)(e=>{z(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),Z=(0,c.useCallback)(e=>{if(_)V(t=>{let n=t.includes(e)?t.filter(t=>t!==e):[...t,e];return D?.(n),n});else{let t=[e];V(t),D?.(t)}},[_,D]),Q=(0,c.useCallback)(e=>{U(t=>{let n;if(!s)return n=t.includes(e)?t.filter(t=>t!==e):[...t,e],E?.(n),n;if(S===`cascade`){let{indeterminateValues:r}=b(s,new Set(t)),i=t.includes(e)&&!r.includes(e),a=[e,...v(s,e)??[]];n=i?t.filter(e=>!a.includes(e)):[...t,...a.filter(e=>!t.includes(e))];let{indeterminateValues:o,effectiveCheckedSet:c}=b(s,new Set(n));E?.([...c].filter(e=>!o.includes(e)))}else{if(t.includes(e))n=t.filter(t=>t!==e);else{let r=y(s,e)??[],i=v(s,e)??[],a=new Set([...r,...i]);n=[...t.filter(e=>!a.has(e)),e]}E?.(n)}return n})},[S,s,E]),ne=(0,c.useMemo)(()=>({expandedValues:R,selectedValues:B,checkedValues:H,indeterminateValues:J,focusedValue:G,toggleExpand:X,select:Z,toggleCheck:Q,setFocusedValue:K,containerRef:q,multiSelect:_,checkable:x,checkStrategy:S,searchQuery:W,labels:{expandLabel:I,collapseLabel:L}}),[R,B,H,J,G,X,Z,Q,_,x,S,W,I,L]),$=(0,c.useMemo)(()=>s?g(s,R,W):[],[s,R,W]),re=!!s&&$.length>=k,ie=(0,c.useCallback)((e,t,n)=>{switch(e.key){case`Enter`:case` `:e.preventDefault(),Z(t.value),x&&Q(t.value);break;case`ArrowDown`:e.preventDefault(),n<$.length-1&&K($[n+1].value);break;case`ArrowUp`:e.preventDefault(),n>0&&K($[n-1].value);break;case`Home`:e.preventDefault(),$.length>0&&K($[0].value);break;case`End`:e.preventDefault(),$.length>0&&K($[$.length-1].value);break;case`ArrowRight`:e.preventDefault(),t.hasChildren&&!R.includes(t.value)?X(t.value):t.hasChildren&&n<$.length-1&&K($[n+1].value);break;case`ArrowLeft`:if(e.preventDefault(),t.hasChildren&&R.includes(t.value))X(t.value);else for(let e=n-1;e>=0;e--)if($[e].depth<t.depth){K($[e].value);break}}},[$,R,Z,x,Q,X]),ae=(0,c.useCallback)((e,t)=>{let a=B.includes(e.value),s=Y.has(e.value),c=J.includes(e.value),d=R.includes(e.value),f=G===e.value,p=h(e.label);return(0,u.jsx)(`div`,{className:(0,l.default)(o.default.item,a&&o.default.selected,e.disabled&&o.default.disabled,M?.item),role:`treeitem`,"aria-expanded":e.hasChildren?d:void 0,"aria-selected":a,"aria-disabled":e.disabled,"aria-setsize":$.length,"aria-posinset":t+1,"aria-level":e.depth+1,"data-value":e.value,tabIndex:f?0:-1,onClick:t=>{t.stopPropagation(),K(e.value),e.disabled||(_&&x?Q(e.value):Z(e.value))},onKeyDown:n=>{n.key!==`Tab`&&n.stopPropagation(),ie(n,e,t)},onFocus:t=>{t.stopPropagation(),K(e.value)},style:{paddingLeft:e.depth*20},children:(0,u.jsx)(i.BaseListItem,{className:(0,l.default)(o.default.labelContainer,M?.labelContainer),active:a,disabled:e.disabled,icon:(0,u.jsxs)(`div`,{className:(0,l.default)(o.default.iconWrapper,M?.iconWrapper),children:[e.hasChildren?(0,u.jsx)(`button`,{type:`button`,className:(0,l.default)(o.default.expandBtn,d&&o.default.expanded,M?.expandBtn),onClick:t=>{t.stopPropagation(),e.disabled||X(e.value)},disabled:e.disabled,"aria-label":d?L(p):I(p),tabIndex:-1,children:(0,u.jsx)(r.Icon,{component:n.default,size:`sm`})}):(0,u.jsx)(`span`,{className:o.default.spacer}),x&&(0,u.jsx)(`input`,{type:`checkbox`,className:(0,l.default)(o.default.checkbox,M?.checkbox),checked:s&&!c,ref:e=>{e&&(e.indeterminate=c)},onChange:t=>{t.stopPropagation(),e.disabled||Q(e.value)},disabled:e.disabled,onClick:e=>e.stopPropagation(),"aria-label":p,tabIndex:-1}),e.icon&&(0,u.jsx)(`span`,{className:(0,l.default)(o.default.icon,M?.icon),children:e.icon})]}),children:e.label})},e.value)},[B,Y,J,R,G,$.length,_,x,Z,Q,X,ie,I,L,M]);return(0,u.jsx)(d.Provider,{value:ne,children:(0,u.jsxs)(`div`,{ref:q,"data-testid":`tree-view-root`,className:(0,l.default)(`wim-tree-view`,o.default.root,!!s&&o.default.dataDriven,f,M?.root),role:`tree`,"aria-label":A.treeAriaLabel,"aria-labelledby":A.treeAriaLabel?void 0:j,style:{width:O,maxWidth:`100%`},tabIndex:G?-1:0,onFocus:e=>{e.target===q.current&&(s?G?K(G):$.length>0&&K($[0].value):G?(q.current?.querySelector(`[role="treeitem"][data-value="${G}"]`))?.focus():(q.current?.querySelector(`[role="treeitem"]`))?.focus())},children:[C&&(0,u.jsx)(`div`,{className:(0,l.default)(o.default.search,M?.search),children:(0,u.jsx)(`input`,{type:`text`,"data-testid":`tree-view-search-input`,className:(0,l.default)(o.default.searchInput,M?.searchInput),placeholder:P,value:W,onChange:e=>te(e.target.value),"aria-label":F})}),s?re?(0,u.jsx)(a.VirtualList,{items:$,itemHeight:p,height:400,renderItem:ae,itemRole:`none`,role:`presentation`}):$.map((e,t)=>ae(e,t)):e]})})},S=({value:e,label:t,icon:a,children:d,className:p,disabled:m=!1})=>{let{expandedValues:g,selectedValues:_,checkedValues:v,indeterminateValues:y,focusedValue:b,toggleExpand:x,select:C,toggleCheck:w,setFocusedValue:T,containerRef:ee,multiSelect:E,checkable:D,searchQuery:O}=f(),k=c.default.useId(),A=`wim-tree-view-item-checkbox-${k}`,j=`wim-tree-view-item-label-${k}`,M=h(t),N=!O||M.toLowerCase().includes(O.toLowerCase()),P=c.default.useMemo(()=>{if(!O||!d)return!1;let e=t=>c.default.Children.toArray(t).some(t=>{if(!c.default.isValidElement(t)||t.type!==S)return!1;let n=t.props,r=n.label;return h(r).toLowerCase().includes(O.toLowerCase())?!0:n.children?e(n.children):!1});return e(d)},[d,O]),F=!!O&&P,I=g.includes(e)||F,L=_.includes(e),R=v.includes(e),z=y.includes(e),B=!!c.default.Children.count(d),{shouldRender:V,isVisualExpanded:H,handleTransitionEnd:U}=s.useTreeViewItemExpansion(I);return O&&!N&&!P?null:(0,u.jsxs)(`div`,{className:(0,l.default)(o.default.item,L&&o.default.selected,m&&o.default.disabled,p),role:`treeitem`,"aria-expanded":B?I:void 0,"aria-selected":L,"aria-disabled":m,"data-value":e,onClick:t=>{t.stopPropagation(),T(e),m||(E&&D?w(e):C(e))},onKeyDown:t=>{if(m)return;t.key!==`Tab`&&t.stopPropagation();let n=Array.from(ee.current?.querySelectorAll(`[role="treeitem"]:not([aria-disabled="true"])`)||[]),r=n.indexOf(t.currentTarget);switch(t.key){case`Enter`:case` `:t.preventDefault(),C(e),D&&w(e);break;case`ArrowDown`:t.preventDefault(),r<n.length-1&&n[r+1].focus();break;case`ArrowUp`:t.preventDefault(),r>0&&n[r-1].focus();break;case`Home`:t.preventDefault(),n.length>0&&n[0].focus();break;case`End`:t.preventDefault(),n.length>0&&n[n.length-1].focus();break;case`ArrowRight`:B&&(I?(t.preventDefault(),r<n.length-1&&n[r+1].focus()):(t.preventDefault(),x(e)));break;case`ArrowLeft`:if(B&&I)t.preventDefault(),x(e);else{t.preventDefault();let e=t.currentTarget.parentElement?.closest(`[role="treeitem"]`);e&&e.focus()}}},onFocus:t=>{t.stopPropagation(),T(e)},tabIndex:b===e?0:-1,children:[(0,u.jsx)(i.BaseListItem,{id:j,className:o.default.labelContainer,active:L,disabled:m,icon:(0,u.jsxs)(`div`,{className:o.default.iconWrapper,children:[B&&(0,u.jsx)(`button`,{type:`button`,className:(0,l.default)(o.default.expandBtn,I&&o.default.expanded),onClick:t=>{t.stopPropagation(),!m&&B&&x(e)},disabled:m,"aria-label":I?`Collapse ${typeof t==`string`?t:``}`:`Expand ${typeof t==`string`?t:``}`,tabIndex:-1,children:(0,u.jsx)(r.Icon,{component:n.default,size:`sm`})}),!B&&(0,u.jsx)(`span`,{className:o.default.spacer}),D&&(0,u.jsx)(`input`,{id:A,type:`checkbox`,className:o.default.checkbox,checked:R&&!z,ref:e=>{e&&(e.indeterminate=z)},onChange:t=>{t.stopPropagation(),m||w(e)},disabled:m,onClick:e=>e.stopPropagation(),"aria-labelledby":j,tabIndex:-1}),a&&(0,u.jsx)(`span`,{className:o.default.icon,children:a})]}),children:t}),B&&V&&(0,u.jsx)(`div`,{className:(0,l.default)(o.default.children,H&&o.default.expanded),onTransitionEnd:U,style:{gridTemplateRows:H?`1fr`:`0fr`},children:(0,u.jsx)(`div`,{className:o.default.childrenInner,role:`group`,children:d})})]})};x.displayName=`TreeView`,S.displayName=`TreeView.Item`;var C=x;C.Item=S,exports.TreeView=C,exports.default=C,exports.TreeViewItem=S;
|
|
@@ -205,7 +205,7 @@ var T = ({ children: o, nodes: c, className: u, multiSelect: _ = !1, checkable:
|
|
|
205
205
|
t.stopPropagation(), q(e.value), e.disabled || (_ && x ? Q(e.value) : Z(e.value));
|
|
206
206
|
},
|
|
207
207
|
onKeyDown: (t) => {
|
|
208
|
-
t.stopPropagation(), ce(t, e, i);
|
|
208
|
+
t.key !== "Tab" && t.stopPropagation(), ce(t, e, i);
|
|
209
209
|
},
|
|
210
210
|
onFocus: (t) => {
|
|
211
211
|
t.stopPropagation(), q(e.value);
|
|
@@ -333,7 +333,7 @@ var T = ({ children: o, nodes: c, className: u, multiSelect: _ = !1, checkable:
|
|
|
333
333
|
},
|
|
334
334
|
onKeyDown: (t) => {
|
|
335
335
|
if (d) return;
|
|
336
|
-
t.stopPropagation();
|
|
336
|
+
t.key !== "Tab" && t.stopPropagation();
|
|
337
337
|
let n = Array.from(T.current?.querySelectorAll("[role=\"treeitem\"]:not([aria-disabled=\"true\"])") || []), r = n.indexOf(t.currentTarget);
|
|
338
338
|
switch (t.key) {
|
|
339
339
|
case "Enter":
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../layout/Transition/Transition.cjs"),r=require("../../../icon/chevron-down.cjs"),i=require("../../media/Icon/Icon.cjs"),a=require("../FieldTemplate/FieldTemplate.cjs"),o=require("./phone-input.module.cjs");let s=require("react");s=e.__toESM(s,1);let c=require("classnames");c=e.__toESM(c,1);let l=require("react/jsx-runtime");var u=[{code:`US`,
|
|
2
|
+
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../layout/Transition/Transition.cjs"),r=require("../../../icon/chevron-down.cjs"),i=require("../../media/Icon/Icon.cjs"),a=require("../FieldTemplate/FieldTemplate.cjs"),o=require("./phone-input.module.cjs");let s=require("react");s=e.__toESM(s,1);let c=require("classnames");c=e.__toESM(c,1);let l=require("react/jsx-runtime");var u=[{code:`US`,dialCode:`1`,flag:`🇺🇸`},{code:`JP`,dialCode:`81`,flag:`🇯🇵`},{code:`GB`,dialCode:`44`,flag:`🇬🇧`},{code:`AU`,dialCode:`61`,flag:`🇦🇺`},{code:`DE`,dialCode:`49`,flag:`🇩🇪`},{code:`FR`,dialCode:`33`,flag:`🇫🇷`},{code:`CN`,dialCode:`86`,flag:`🇨🇳`},{code:`KR`,dialCode:`82`,flag:`🇰🇷`},{code:`IN`,dialCode:`91`,flag:`🇮🇳`},{code:`BR`,dialCode:`55`,flag:`🇧🇷`}],d=(0,s.forwardRef)(({value:e=``,onChange:d,countryCode:f=`US`,onCountryChange:p,placeholder:m=`000-0000-0000`,disabled:h=!1,error:g,required:_=!1,label:v,layout:y=`vertical`,className:b,fullWidth:x=!1,...S},C)=>{let w=`wim-phone-input-${(0,s.useId)()}`,T=v?`${w}-label`:void 0,{t:E}=t.useWimTranslation(`form`),D=E(`phone.select_country`),O=`${w}-countries`,k=e=>`${w}-country-${e}`,A=g?`${w}-error`:void 0,[j,M]=(0,s.useState)(!1),[N,P]=(0,s.useState)(-1),F=(0,s.useRef)(null),I=(0,s.useRef)(null),L=(0,s.useRef)({text:``,timer:null});(0,s.useEffect)(()=>{let e=e=>{F.current&&!F.current.contains(e.target)&&M(!1)};return j&&document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`mousedown`,e)}},[j]);let R=u.find(e=>e.code===f)??u[0],z=e=>{d?.(e.target.value)},B=u.length-1,V=e=>{let t=u.findIndex(e=>e.code===R.code);P(e??Math.max(t,0)),M(!0)},H=e=>{let t=u[e];t&&(p?.(t.code),M(!1))},U=e=>E(`phone.countries.${e.code}`),W=(e,t)=>{let n=e.toLowerCase().replace(/^\+/,``);if(n===``)return-1;let r=/^[0-9]+$/.test(n),i=(e,t)=>r?e.dialCode.startsWith(t):U(e).toLowerCase().startsWith(t),a=!r&&n.length>1&&n.split(``).every(e=>e===n[0]),o=a?n[0]:n,s=a||n.length===1?t+1:t;for(let e=0;e<u.length;e++){let t=(Math.max(s,0)+e)%u.length;if(i(u[t],o))return t}return-1},G=e=>{let t=L.current;t.timer&&clearTimeout(t.timer),t.text+=e,t.timer=setTimeout(()=>{t.text=``,t.timer=null},500);let n=W(t.text,j?N:-1);n<0||(j?P(n):V(n))},K=e=>{if(!h)switch(e.key){case`ArrowDown`:case`ArrowUp`:if(e.preventDefault(),!j)V();else{let t=e.key===`ArrowDown`?1:-1;P(e=>(e+t+u.length)%u.length)}break;case`Home`:case`End`:e.preventDefault(),j?P(e.key===`Home`?0:B):V(e.key===`Home`?0:B);break;case`Enter`:case` `:e.preventDefault(),e.key===` `&&L.current.text!==``?G(` `):j?H(N):V();break;case`Escape`:j&&(e.preventDefault(),M(!1));break;case`Tab`:M(!1);break;default:e.key.length===1&&!e.ctrlKey&&!e.metaKey&&!e.altKey&&(e.preventDefault(),G(e.key))}};return(0,s.useEffect)(()=>{let e=L.current;return()=>{e.timer&&clearTimeout(e.timer)}},[]),(0,s.useEffect)(()=>{j&&N>=0&&(I.current?.querySelectorAll(`[role="option"]`)?.[N])?.scrollIntoView?.({block:`nearest`})},[N,j]),(0,l.jsx)(a.FieldTemplate,{label:v,labelId:T,htmlFor:w,required:_,error:g,errorId:A,layout:y,className:b,children:(0,l.jsxs)(`div`,{ref:F,className:(0,c.default)(`wim-phone-input`,o.default.root,x&&o.default.fullWidth,h&&o.default.disabled,g&&o.default.danger),"data-testid":`phone-input-root`,...S,children:[(0,l.jsxs)(`div`,{className:o.default.countryWrapper,children:[(0,l.jsxs)(`button`,{type:`button`,role:`combobox`,className:o.default.countryTrigger,onClick:()=>{h||(j?M(!1):V())},onKeyDown:K,onKeyUp:e=>{e.key===` `&&e.preventDefault()},disabled:h,"aria-haspopup":`listbox`,"aria-expanded":j,"aria-controls":j?O:void 0,"aria-activedescendant":j&&N>=0?k(N):void 0,"aria-label":D,children:[(0,l.jsx)(`span`,{"aria-hidden":`true`,style:{fontSize:`1.2em`},children:R.flag}),(0,l.jsxs)(`span`,{children:[`+`,R.dialCode]}),(0,l.jsx)(i.Icon,{component:r.default,size:`sm`,className:(0,c.default)(o.default.chevron,j&&o.default.chevronOpen)})]}),(0,l.jsx)(n.Transition,{show:j,preset:`fade`,className:o.default.dropdown,children:(0,l.jsx)(`ul`,{ref:I,id:O,className:o.default.countryList,role:`listbox`,"aria-label":D,tabIndex:-1,onMouseDown:e=>e.preventDefault(),children:u.map((e,t)=>(0,l.jsxs)(`li`,{id:k(t),className:(0,c.default)(o.default.countryOption,t===N&&o.default.active,R.code===e.code&&o.default.selected),onMouseEnter:()=>P(t),onClick:()=>H(t),role:`option`,"aria-selected":R.code===e.code,children:[(0,l.jsx)(`span`,{"aria-hidden":`true`,children:e.flag}),(0,l.jsx)(`span`,{className:o.default.countryName,children:U(e)}),(0,l.jsxs)(`span`,{className:o.default.countryCode,children:[`+`,e.dialCode]})]},e.code))})})]}),(0,l.jsx)(`div`,{className:o.default.divider,"aria-hidden":`true`}),(0,l.jsx)(`input`,{id:w,ref:C,type:`tel`,value:e,onChange:z,placeholder:m,disabled:h,className:o.default.number,"aria-invalid":!!g,"aria-describedby":A})]})})});d.displayName=`PhoneInput`,exports.PHONE_COUNTRIES=u,exports.PhoneInput=d;
|
|
@@ -12,66 +12,59 @@ import { jsx as f, jsxs as p } from "react/jsx-runtime";
|
|
|
12
12
|
var m = [
|
|
13
13
|
{
|
|
14
14
|
code: "US",
|
|
15
|
-
name: "United States",
|
|
16
15
|
dialCode: "1",
|
|
17
16
|
flag: "🇺🇸"
|
|
18
17
|
},
|
|
19
18
|
{
|
|
20
19
|
code: "JP",
|
|
21
|
-
name: "Japan",
|
|
22
20
|
dialCode: "81",
|
|
23
21
|
flag: "🇯🇵"
|
|
24
22
|
},
|
|
25
23
|
{
|
|
26
24
|
code: "GB",
|
|
27
|
-
name: "United Kingdom",
|
|
28
25
|
dialCode: "44",
|
|
29
26
|
flag: "🇬🇧"
|
|
30
27
|
},
|
|
31
28
|
{
|
|
32
29
|
code: "AU",
|
|
33
|
-
name: "Australia",
|
|
34
30
|
dialCode: "61",
|
|
35
31
|
flag: "🇦🇺"
|
|
36
32
|
},
|
|
37
33
|
{
|
|
38
34
|
code: "DE",
|
|
39
|
-
name: "Germany",
|
|
40
35
|
dialCode: "49",
|
|
41
36
|
flag: "🇩🇪"
|
|
42
37
|
},
|
|
43
38
|
{
|
|
44
39
|
code: "FR",
|
|
45
|
-
name: "France",
|
|
46
40
|
dialCode: "33",
|
|
47
41
|
flag: "🇫🇷"
|
|
48
42
|
},
|
|
49
43
|
{
|
|
50
44
|
code: "CN",
|
|
51
|
-
name: "China",
|
|
52
45
|
dialCode: "86",
|
|
53
46
|
flag: "🇨🇳"
|
|
54
47
|
},
|
|
55
48
|
{
|
|
56
49
|
code: "KR",
|
|
57
|
-
name: "South Korea",
|
|
58
50
|
dialCode: "82",
|
|
59
51
|
flag: "🇰🇷"
|
|
60
52
|
},
|
|
61
53
|
{
|
|
62
54
|
code: "IN",
|
|
63
|
-
name: "India",
|
|
64
55
|
dialCode: "91",
|
|
65
56
|
flag: "🇮🇳"
|
|
66
57
|
},
|
|
67
58
|
{
|
|
68
59
|
code: "BR",
|
|
69
|
-
name: "Brazil",
|
|
70
60
|
dialCode: "55",
|
|
71
61
|
flag: "🇧🇷"
|
|
72
62
|
}
|
|
73
63
|
], h = o(({ value: o = "", onChange: h, countryCode: g = "US", onCountryChange: _, placeholder: v = "000-0000-0000", disabled: y = !1, error: b, required: x = !1, label: S, layout: C = "vertical", className: w, fullWidth: T = !1, ...E }, D) => {
|
|
74
|
-
let O = `wim-phone-input-${c()}`, k = S ? `${O}-label` : void 0, { t: A } = e("form"), j = A("phone.select_country"), M = `${O}-countries`, N = (e) => `${O}-country-${e}`, P = b ? `${O}-error` : void 0, [F, I] = u(!1), [L, R] = u(-1), z = l(null), B = l(null)
|
|
64
|
+
let O = `wim-phone-input-${c()}`, k = S ? `${O}-label` : void 0, { t: A } = e("form"), j = A("phone.select_country"), M = `${O}-countries`, N = (e) => `${O}-country-${e}`, P = b ? `${O}-error` : void 0, [F, I] = u(!1), [L, R] = u(-1), z = l(null), B = l(null), V = l({
|
|
65
|
+
text: "",
|
|
66
|
+
timer: null
|
|
67
|
+
});
|
|
75
68
|
s(() => {
|
|
76
69
|
let e = (e) => {
|
|
77
70
|
z.current && !z.current.contains(e.target) && I(!1);
|
|
@@ -80,19 +73,35 @@ var m = [
|
|
|
80
73
|
document.removeEventListener("mousedown", e);
|
|
81
74
|
};
|
|
82
75
|
}, [F]);
|
|
83
|
-
let
|
|
76
|
+
let H = m.find((e) => e.code === g) ?? m[0], U = (e) => {
|
|
84
77
|
h?.(e.target.value);
|
|
85
|
-
},
|
|
86
|
-
let t = m.findIndex((e) => e.code ===
|
|
78
|
+
}, W = m.length - 1, G = (e) => {
|
|
79
|
+
let t = m.findIndex((e) => e.code === H.code);
|
|
87
80
|
R(e ?? Math.max(t, 0)), I(!0);
|
|
88
|
-
},
|
|
81
|
+
}, K = (e) => {
|
|
89
82
|
let t = m[e];
|
|
90
83
|
t && (_?.(t.code), I(!1));
|
|
91
|
-
},
|
|
84
|
+
}, q = (e) => A(`phone.countries.${e.code}`), J = (e, t) => {
|
|
85
|
+
let n = e.toLowerCase().replace(/^\+/, "");
|
|
86
|
+
if (n === "") return -1;
|
|
87
|
+
let r = /^[0-9]+$/.test(n), i = (e, t) => r ? e.dialCode.startsWith(t) : q(e).toLowerCase().startsWith(t), a = !r && n.length > 1 && n.split("").every((e) => e === n[0]), o = a ? n[0] : n, s = a || n.length === 1 ? t + 1 : t;
|
|
88
|
+
for (let e = 0; e < m.length; e++) {
|
|
89
|
+
let t = (Math.max(s, 0) + e) % m.length;
|
|
90
|
+
if (i(m[t], o)) return t;
|
|
91
|
+
}
|
|
92
|
+
return -1;
|
|
93
|
+
}, Y = (e) => {
|
|
94
|
+
let t = V.current;
|
|
95
|
+
t.timer && clearTimeout(t.timer), t.text += e, t.timer = setTimeout(() => {
|
|
96
|
+
t.text = "", t.timer = null;
|
|
97
|
+
}, 500);
|
|
98
|
+
let n = J(t.text, F ? L : -1);
|
|
99
|
+
n < 0 || (F ? R(n) : G(n));
|
|
100
|
+
}, X = (e) => {
|
|
92
101
|
if (!y) switch (e.key) {
|
|
93
102
|
case "ArrowDown":
|
|
94
103
|
case "ArrowUp":
|
|
95
|
-
if (e.preventDefault(), !F)
|
|
104
|
+
if (e.preventDefault(), !F) G();
|
|
96
105
|
else {
|
|
97
106
|
let t = e.key === "ArrowDown" ? 1 : -1;
|
|
98
107
|
R((e) => (e + t + m.length) % m.length);
|
|
@@ -100,19 +109,27 @@ var m = [
|
|
|
100
109
|
break;
|
|
101
110
|
case "Home":
|
|
102
111
|
case "End":
|
|
103
|
-
e.preventDefault(), F ? R(e.key === "Home" ? 0 :
|
|
112
|
+
e.preventDefault(), F ? R(e.key === "Home" ? 0 : W) : G(e.key === "Home" ? 0 : W);
|
|
104
113
|
break;
|
|
105
114
|
case "Enter":
|
|
106
115
|
case " ":
|
|
107
|
-
e.preventDefault(), F ?
|
|
116
|
+
e.preventDefault(), e.key === " " && V.current.text !== "" ? Y(" ") : F ? K(L) : G();
|
|
108
117
|
break;
|
|
109
118
|
case "Escape":
|
|
110
119
|
F && (e.preventDefault(), I(!1));
|
|
111
120
|
break;
|
|
112
|
-
case "Tab":
|
|
121
|
+
case "Tab":
|
|
122
|
+
I(!1);
|
|
123
|
+
break;
|
|
124
|
+
default: e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey && (e.preventDefault(), Y(e.key));
|
|
113
125
|
}
|
|
114
126
|
};
|
|
115
127
|
return s(() => {
|
|
128
|
+
let e = V.current;
|
|
129
|
+
return () => {
|
|
130
|
+
e.timer && clearTimeout(e.timer);
|
|
131
|
+
};
|
|
132
|
+
}, []), s(() => {
|
|
116
133
|
F && L >= 0 && (B.current?.querySelectorAll("[role=\"option\"]")?.[L])?.scrollIntoView?.({ block: "nearest" });
|
|
117
134
|
}, [L, F]), /* @__PURE__ */ f(i, {
|
|
118
135
|
label: S,
|
|
@@ -136,9 +153,9 @@ var m = [
|
|
|
136
153
|
role: "combobox",
|
|
137
154
|
className: a.countryTrigger,
|
|
138
155
|
onClick: () => {
|
|
139
|
-
y || (F ? I(!1) :
|
|
156
|
+
y || (F ? I(!1) : G());
|
|
140
157
|
},
|
|
141
|
-
onKeyDown:
|
|
158
|
+
onKeyDown: X,
|
|
142
159
|
onKeyUp: (e) => {
|
|
143
160
|
e.key === " " && e.preventDefault();
|
|
144
161
|
},
|
|
@@ -152,9 +169,9 @@ var m = [
|
|
|
152
169
|
/* @__PURE__ */ f("span", {
|
|
153
170
|
"aria-hidden": "true",
|
|
154
171
|
style: { fontSize: "1.2em" },
|
|
155
|
-
children:
|
|
172
|
+
children: H.flag
|
|
156
173
|
}),
|
|
157
|
-
/* @__PURE__ */ p("span", { children: ["+",
|
|
174
|
+
/* @__PURE__ */ p("span", { children: ["+", H.dialCode] }),
|
|
158
175
|
/* @__PURE__ */ f(r, {
|
|
159
176
|
component: n,
|
|
160
177
|
size: "sm",
|
|
@@ -175,11 +192,11 @@ var m = [
|
|
|
175
192
|
onMouseDown: (e) => e.preventDefault(),
|
|
176
193
|
children: m.map((e, t) => /* @__PURE__ */ p("li", {
|
|
177
194
|
id: N(t),
|
|
178
|
-
className: d(a.countryOption, t === L && a.active,
|
|
195
|
+
className: d(a.countryOption, t === L && a.active, H.code === e.code && a.selected),
|
|
179
196
|
onMouseEnter: () => R(t),
|
|
180
|
-
onClick: () =>
|
|
197
|
+
onClick: () => K(t),
|
|
181
198
|
role: "option",
|
|
182
|
-
"aria-selected":
|
|
199
|
+
"aria-selected": H.code === e.code,
|
|
183
200
|
children: [
|
|
184
201
|
/* @__PURE__ */ f("span", {
|
|
185
202
|
"aria-hidden": "true",
|
|
@@ -187,7 +204,7 @@ var m = [
|
|
|
187
204
|
}),
|
|
188
205
|
/* @__PURE__ */ f("span", {
|
|
189
206
|
className: a.countryName,
|
|
190
|
-
children: e
|
|
207
|
+
children: q(e)
|
|
191
208
|
}),
|
|
192
209
|
/* @__PURE__ */ p("span", {
|
|
193
210
|
className: a.countryCode,
|
|
@@ -207,7 +224,7 @@ var m = [
|
|
|
207
224
|
ref: D,
|
|
208
225
|
type: "tel",
|
|
209
226
|
value: o,
|
|
210
|
-
onChange:
|
|
227
|
+
onChange: U,
|
|
211
228
|
placeholder: v,
|
|
212
229
|
disabled: y,
|
|
213
230
|
className: a.number,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../Button/Button.cjs"),r=require("../Input/Input.cjs"),i=require("../DatePicker/DatePicker.cjs"),a=require("../NumberInput/NumberInput.cjs"),o=require("../SegmentedControl/SegmentedControl.cjs"),s=require("../Select/Select.cjs"),c=require("../Switch/Switch.cjs"),l=require("../IconButton/IconButton.cjs"),u=require("./querybuilder.module.cjs"),d=require("./warn-unknown-operator.cjs");let f=require("react");f=e.__toESM(f,1);let p=require("classnames");p=e.__toESM(p,1);let m=require("react/jsx-runtime");var h=0,g=()=>typeof window<`u`&&window.__VRT__?(h+=1,`vrt-id-${h}`):Math.random().toString(36).substring(2,11),_={string:[{
|
|
2
|
+
const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../Button/Button.cjs"),r=require("../Input/Input.cjs"),i=require("../DatePicker/DatePicker.cjs"),a=require("../NumberInput/NumberInput.cjs"),o=require("../SegmentedControl/SegmentedControl.cjs"),s=require("../Select/Select.cjs"),c=require("../Switch/Switch.cjs"),l=require("../IconButton/IconButton.cjs"),u=require("./querybuilder.module.cjs"),d=require("./warn-unknown-operator.cjs");let f=require("react");f=e.__toESM(f,1);let p=require("classnames");p=e.__toESM(p,1);let m=require("react/jsx-runtime");var h=0,g=()=>typeof window<`u`&&window.__VRT__?(h+=1,`vrt-id-${h}`):Math.random().toString(36).substring(2,11),_={string:[{value:`=`,key:`equal`},{value:`!=`,key:`not_equal`},{value:`contains`,key:`contains`},{value:`starts_with`,key:`starts_with`},{value:`ends_with`,key:`ends_with`},{value:`is_null`,key:`is_null`},{value:`is_not_null`,key:`is_not_null`}],number:[{value:`=`,key:`equal`},{value:`!=`,key:`not_equal`},{value:`>`,key:`greater_than`},{value:`<`,key:`less_than`},{value:`>=`,key:`greater_than_or_equal`},{value:`<=`,key:`less_than_or_equal`},{value:`is_null`,key:`is_null`},{value:`is_not_null`,key:`is_not_null`}],date:[{value:`=`,key:`equal`},{value:`!=`,key:`not_equal`},{value:`>`,key:`after`},{value:`<`,key:`before`},{value:`>=`,key:`after_or_on`},{value:`<=`,key:`before_or_on`},{value:`is_null`,key:`is_null`},{value:`is_not_null`,key:`is_not_null`}],boolean:[{value:`=`,key:`equal`},{value:`!=`,key:`not_equal`},{value:`is_null`,key:`is_null`},{value:`is_not_null`,key:`is_not_null`}]},v=({fields:e,query:h,defaultQuery:v,onChange:y,maxDepth:b=3,className:x,id:S,labels:C={}})=>{let{t:w}=t.useWimTranslation(`components`),{ruleAdded:T=w(`query.builder.rule_added`),groupAdded:E=w(`query.builder.group_added`),removed:D=w(`query.builder.removed`),ruleAriaLabel:O=w(`query.builder.rule`),fieldAriaLabel:k=w(`query.builder.field`),operatorAriaLabel:A=w(`query.builder.operator`),valueAriaLabel:j=w(`query.builder.value`),trueLabel:M=w(`query.builder.true`),falseLabel:N=w(`query.builder.false`),removeRuleAriaLabel:P=w(`query.builder.remove_rule`),removeGroupAriaLabel:F=w(`query.builder.remove_group`),addRuleLabel:I=w(`query.builder.add_rule`),addGroupLabel:L=w(`query.builder.add_group`),regionAriaLabel:R=w(`query.builder.region_label`),combinatorAriaLabel:z=w(`query.builder.combinator`),operators:B={}}=C,V=(0,f.useId)(),H=S||`wim-qb-${V}`,U=(0,f.useRef)(null),[W,G]=(0,f.useState)(v||{id:g(),combinator:`and`,not:!1,rules:[]}),K=h===void 0?W:h,q=(0,f.useCallback)(e=>{U.current&&(U.current.textContent=``,setTimeout(()=>{U.current&&(U.current.textContent=e)},50))},[]),J=(0,f.useCallback)(e=>{h===void 0&&G(e),y?.(e)},[h,y]),Y=(e,t)=>{let n=r=>r.id===e?{...r,...t}:{...r,rules:r.rules.map(r=>r.id===e?{...r,...t}:`rules`in r?n(r):r)};J(n(K))},X=t=>{let n=e[0],r={id:g(),field:n?.name||``,operator:`=`,value:n?.type!==`boolean`&&``},i=e=>e.id===t?{...e,rules:[...e.rules,r]}:{...e,rules:e.rules.map(e=>`rules`in e?i(e):e)};J(i(K)),q(T)},Z=e=>{let t={id:g(),combinator:`and`,not:!1,rules:[]},n=r=>r.id===e?{...r,rules:[...r.rules,t]}:{...r,rules:r.rules.map(e=>`rules`in e?n(e):e)};J(n(K)),q(E)},Q=e=>{let t=n=>({...n,rules:n.rules.filter(t=>t.id!==e).map(e=>`rules`in e?t(e):e)});J(t(K)),q(D)},$=(e,t,r)=>{let i=`${e.combinator.toUpperCase()} group`;return(0,m.jsxs)(`div`,{role:`group`,"aria-label":i,className:(0,p.default)(u.default.group,t>0&&u.default.nested,r&&u.default.excluded),children:[(0,m.jsxs)(`div`,{className:u.default.groupHeader,children:[(0,m.jsxs)(`div`,{className:u.default.groupHeaderLeft,children:[(0,m.jsx)(o.SegmentedControl,{size:`md`,options:[{label:`AND`,value:`and`},{label:`OR`,value:`or`}],value:e.combinator,onChange:t=>Y(e.id,{combinator:t}),"aria-label":z,styles:{root:u.default.segmentedControl,item:u.default.segmentedControlItem,slider:u.default.segmentedControlSlider}}),(0,m.jsx)(c.Switch,{size:`md`,checked:e.not,onChange:t=>Y(e.id,{not:t.target.checked}),children:`NOT`})]}),t>0&&(0,m.jsx)(l.IconButton,{iconName:`TrashIcon`,"aria-label":F,variant:`ghost`,size:`md`,intent:`danger`,onClick:()=>Q(e.id),className:u.default.removeGroup})]}),(0,m.jsx)(`div`,{className:u.default.ruleList,children:e.rules.map(e=>`rules`in e?$(e,t+1,r):ee(e))}),(0,m.jsxs)(`div`,{className:u.default.groupActions,children:[(0,m.jsx)(n.Button,{size:`md`,variant:`ghost`,icon:`PlusIcon`,onClick:()=>X(e.id),children:I}),t<b&&(0,m.jsx)(n.Button,{size:`md`,variant:`ghost`,icon:`PlusIcon`,onClick:()=>Z(e.id),children:L})]})]},e.id)},ee=t=>{let n=e.find(e=>e.name===t.field)?.type||`string`,o=_[n].map(e=>({...e,label:B[e.key]||w(`query.builder.operators.${e.key}`)})),c=n=>{let r=e.find(e=>e.name===n);Y(t.id,{field:n,operator:`=`,value:r?.type!==`boolean`&&``})};o.some(e=>e.value===t.operator)||d.warnUnknownOperator(t.operator,n,o.map(e=>e.value));let f=t.operator===`is_null`||t.operator===`is_not_null`;return(0,m.jsx)(`div`,{className:u.default.rule,role:`group`,"aria-label":O,children:(0,m.jsxs)(`div`,{className:u.default.ruleFields,children:[(0,m.jsx)(s.Select,{className:u.default.field,options:e.map(e=>({label:e.label,value:e.name})),value:t.field,onChange:c,"aria-label":k,fullWidth:!0,styles:{root:u.default.select,trigger:u.default.selectTrigger,inputBase:{root:u.default.inputBase}}}),(0,m.jsx)(s.Select,{className:u.default.operator,options:o.map(e=>({label:e.label,value:e.value})),value:t.operator,onChange:e=>Y(t.id,{operator:e}),"aria-label":A,fullWidth:!0,styles:{root:u.default.select,trigger:u.default.selectTrigger,inputBase:{root:u.default.inputBase}}}),!f&&(0,m.jsx)(`div`,{className:u.default.value,children:n===`number`?(0,m.jsx)(a.NumberInput,{value:typeof t.value==`boolean`?void 0:t.value??void 0,onChange:e=>Y(t.id,{value:e.target.value}),"aria-label":j}):n===`date`?(0,m.jsx)(i.DatePicker,{value:typeof t.value==`string`||typeof t.value==`number`?new Date(t.value):void 0,onChange:e=>Y(t.id,{value:e?e.toISOString():``}),"aria-label":j}):n===`boolean`?(0,m.jsx)(s.Select,{options:[{label:M,value:`true`},{label:N,value:`false`}],value:String(t.value),onChange:e=>Y(t.id,{value:e===`true`}),"aria-label":j,fullWidth:!0,styles:{root:u.default.select,trigger:u.default.selectTrigger,inputBase:{root:u.default.inputBase}}}):(0,m.jsx)(r.Input,{value:typeof t.value==`boolean`?void 0:t.value??void 0,onChange:e=>Y(t.id,{value:e.target.value}),"aria-label":j,styles:{root:u.default.inputBase}})}),(0,m.jsx)(l.IconButton,{iconName:`TrashIcon`,"aria-label":P,variant:`ghost`,size:`md`,intent:`danger`,onClick:()=>Q(t.id),className:u.default.removeRule})]})},t.id)};return(0,m.jsxs)(`div`,{id:H,role:`region`,"aria-label":R,className:(0,p.default)(`wim-query-builder`,u.default.root,x),children:[(0,m.jsx)(`div`,{ref:U,"aria-live":`polite`,"aria-atomic":`true`,className:u.default.srOnly}),$(K,0,!1)]})};exports.QueryBuilder=v;
|