@tamagui/select 1.61.3 → 1.62.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/BubbleSelect.js +12 -26
- package/dist/cjs/BubbleSelect.js.map +1 -1
- package/dist/cjs/BubbleSelect.native.js +35 -0
- package/dist/cjs/BubbleSelect.native.js.map +6 -0
- package/dist/cjs/Select.js +80 -205
- package/dist/cjs/Select.js.map +2 -2
- package/dist/cjs/Select.native.js +353 -0
- package/dist/cjs/Select.native.js.map +6 -0
- package/dist/cjs/SelectContent.js +10 -34
- package/dist/cjs/SelectContent.js.map +1 -1
- package/dist/cjs/SelectContent.native.js +6 -11
- package/dist/cjs/SelectContent.native.js.map +1 -1
- package/dist/cjs/SelectImpl.js +94 -190
- package/dist/cjs/SelectImpl.js.map +1 -1
- package/dist/cjs/SelectImpl.native.js +6 -14
- package/dist/cjs/SelectImpl.native.js.map +1 -1
- package/dist/cjs/SelectItem.js +36 -88
- package/dist/cjs/SelectItem.js.map +1 -1
- package/dist/cjs/SelectItem.native.js +145 -0
- package/dist/cjs/SelectItem.native.js.map +6 -0
- package/dist/cjs/SelectScrollButton.js +40 -87
- package/dist/cjs/SelectScrollButton.js.map +2 -2
- package/dist/cjs/SelectScrollButton.native.js +6 -10
- package/dist/cjs/SelectScrollButton.native.js.map +1 -1
- package/dist/cjs/SelectTrigger.js +20 -40
- package/dist/cjs/SelectTrigger.js.map +2 -2
- package/dist/cjs/SelectTrigger.native.js +73 -0
- package/dist/cjs/SelectTrigger.native.js.map +6 -0
- package/dist/cjs/SelectViewport.js +24 -54
- package/dist/cjs/SelectViewport.js.map +2 -2
- package/dist/cjs/SelectViewport.native.js +9 -24
- package/dist/cjs/SelectViewport.native.js.map +1 -1
- package/dist/cjs/constants.js +6 -16
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/constants.native.js +38 -0
- package/dist/cjs/constants.native.js.map +6 -0
- package/dist/cjs/context.js +8 -20
- package/dist/cjs/context.js.map +1 -1
- package/dist/cjs/context.native.js +48 -0
- package/dist/cjs/context.native.js.map +6 -0
- package/dist/cjs/index.js +4 -8
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.native.js +22 -0
- package/dist/cjs/index.native.js.map +6 -0
- package/dist/cjs/types.js +3 -6
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/types.native.js +15 -0
- package/dist/cjs/types.native.js.map +6 -0
- package/dist/cjs/useSelectBreakpointActive.js +8 -17
- package/dist/cjs/useSelectBreakpointActive.js.map +1 -1
- package/dist/cjs/useSelectBreakpointActive.native.js +35 -0
- package/dist/cjs/useSelectBreakpointActive.native.js.map +6 -0
- package/dist/esm/BubbleSelect.js +7 -15
- package/dist/esm/BubbleSelect.js.map +1 -1
- package/dist/esm/Select.js +73 -171
- package/dist/esm/Select.js.map +2 -2
- package/dist/esm/SelectContent.js +5 -20
- package/dist/esm/SelectContent.js.map +1 -1
- package/dist/esm/SelectImpl.js +87 -171
- package/dist/esm/SelectImpl.js.map +1 -1
- package/dist/esm/SelectItem.js +29 -70
- package/dist/esm/SelectItem.js.map +1 -1
- package/dist/esm/SelectScrollButton.js +33 -68
- package/dist/esm/SelectScrollButton.js.map +2 -2
- package/dist/esm/SelectTrigger.js +13 -23
- package/dist/esm/SelectTrigger.js.map +2 -2
- package/dist/esm/SelectViewport.js +19 -36
- package/dist/esm/SelectViewport.js.map +2 -2
- package/dist/esm/constants.js +1 -7
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/context.js +3 -9
- package/dist/esm/context.js.map +1 -1
- package/dist/esm/useSelectBreakpointActive.js +3 -8
- package/dist/esm/useSelectBreakpointActive.js.map +1 -1
- package/dist/jsx/BubbleSelect.js +7 -15
- package/dist/jsx/BubbleSelect.js.map +1 -1
- package/dist/jsx/BubbleSelect.native.js +17 -0
- package/dist/jsx/BubbleSelect.native.js.map +6 -0
- package/dist/jsx/Select.js +68 -165
- package/dist/jsx/Select.js.map +2 -2
- package/dist/jsx/Select.native.js +337 -0
- package/dist/jsx/Select.native.js.map +6 -0
- package/dist/jsx/SelectContent.js +3 -18
- package/dist/jsx/SelectContent.js.map +1 -1
- package/dist/jsx/SelectContent.native.js +1 -3
- package/dist/jsx/SelectContent.native.js.map +1 -1
- package/dist/jsx/SelectImpl.js +86 -167
- package/dist/jsx/SelectImpl.js.map +1 -1
- package/dist/jsx/SelectImpl.native.js +1 -6
- package/dist/jsx/SelectImpl.native.js.map +1 -1
- package/dist/jsx/SelectItem.js +28 -68
- package/dist/jsx/SelectItem.js.map +1 -1
- package/dist/jsx/SelectItem.native.js +115 -0
- package/dist/jsx/SelectItem.native.js.map +6 -0
- package/dist/jsx/SelectScrollButton.js +22 -53
- package/dist/jsx/SelectScrollButton.js.map +1 -1
- package/dist/jsx/SelectScrollButton.native.js +1 -2
- package/dist/jsx/SelectScrollButton.native.js.map +1 -1
- package/dist/jsx/SelectTrigger.js +11 -19
- package/dist/jsx/SelectTrigger.js.map +2 -2
- package/dist/jsx/SelectTrigger.native.js +44 -0
- package/dist/jsx/SelectTrigger.native.js.map +6 -0
- package/dist/jsx/SelectViewport.js +16 -32
- package/dist/jsx/SelectViewport.js.map +2 -2
- package/dist/jsx/SelectViewport.native.js +1 -5
- package/dist/jsx/SelectViewport.native.js.map +1 -1
- package/dist/jsx/constants.js +1 -7
- package/dist/jsx/constants.js.map +1 -1
- package/dist/jsx/constants.native.js +11 -0
- package/dist/jsx/constants.native.js.map +6 -0
- package/dist/jsx/context.js +2 -8
- package/dist/jsx/context.js.map +1 -1
- package/dist/jsx/context.native.js +20 -0
- package/dist/jsx/context.native.js.map +6 -0
- package/dist/jsx/index.native.js +3 -0
- package/dist/jsx/index.native.js.map +6 -0
- package/dist/jsx/types.native.js +1 -0
- package/dist/jsx/types.native.js.map +6 -0
- package/dist/jsx/useSelectBreakpointActive.js +3 -8
- package/dist/jsx/useSelectBreakpointActive.js.map +1 -1
- package/dist/jsx/useSelectBreakpointActive.native.js +13 -0
- package/dist/jsx/useSelectBreakpointActive.native.js.map +6 -0
- package/package.json +19 -19
- package/types/Select.d.ts +1 -0
- package/types/Select.d.ts.map +1 -1
- package/dist/esm/SelectContent.native.js +0 -7
- package/dist/esm/SelectContent.native.js.map +0 -6
- package/dist/esm/SelectImpl.native.js +0 -11
- package/dist/esm/SelectImpl.native.js.map +0 -6
- package/dist/esm/SelectScrollButton.native.js +0 -7
- package/dist/esm/SelectScrollButton.native.js.map +0 -6
- package/dist/esm/SelectViewport.native.js +0 -32
- package/dist/esm/SelectViewport.native.js.map +0 -6
|
@@ -1,114 +1,79 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
1
|
import { autoUpdate, offset, useFloating } from "@floating-ui/react";
|
|
3
2
|
import { useComposedRefs } from "@tamagui/compose-refs";
|
|
4
3
|
import { YStack } from "@tamagui/stacks";
|
|
5
4
|
import * as React from "react";
|
|
6
5
|
import { flushSync } from "react-dom";
|
|
7
6
|
import { useSelectContext } from "./context";
|
|
8
|
-
|
|
9
|
-
const SelectScrollUpButton = React.forwardRef((props, forwardedRef) =>
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
);
|
|
19
|
-
});
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
const SCROLL_UP_BUTTON_NAME = "SelectScrollUpButton", SelectScrollUpButton = React.forwardRef((props, forwardedRef) => /* @__PURE__ */ jsx(
|
|
9
|
+
SelectScrollButtonImpl,
|
|
10
|
+
{
|
|
11
|
+
componentName: SCROLL_UP_BUTTON_NAME,
|
|
12
|
+
...props,
|
|
13
|
+
dir: "up",
|
|
14
|
+
ref: forwardedRef
|
|
15
|
+
}
|
|
16
|
+
));
|
|
20
17
|
SelectScrollUpButton.displayName = SCROLL_UP_BUTTON_NAME;
|
|
21
|
-
const SCROLL_DOWN_BUTTON_NAME = "SelectScrollDownButton"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
);
|
|
32
|
-
});
|
|
18
|
+
const SCROLL_DOWN_BUTTON_NAME = "SelectScrollDownButton", SelectScrollDownButton = React.forwardRef((props, forwardedRef) => /* @__PURE__ */ jsx(
|
|
19
|
+
SelectScrollButtonImpl,
|
|
20
|
+
{
|
|
21
|
+
componentName: SCROLL_DOWN_BUTTON_NAME,
|
|
22
|
+
...props,
|
|
23
|
+
dir: "down",
|
|
24
|
+
ref: forwardedRef
|
|
25
|
+
}
|
|
26
|
+
));
|
|
33
27
|
SelectScrollDownButton.displayName = SCROLL_DOWN_BUTTON_NAME;
|
|
34
28
|
const SelectScrollButtonImpl = React.memo(
|
|
35
29
|
React.forwardRef(
|
|
36
30
|
(props, forwardedRef) => {
|
|
37
|
-
|
|
38
|
-
const { __scopeSelect, dir, componentName, ...scrollIndicatorProps } = props;
|
|
39
|
-
const { forceUpdate, open, fallback, setScrollTop, setInnerOffset, ...context } = useSelectContext(componentName, __scopeSelect);
|
|
40
|
-
const floatingRef = (_a = context.floatingContext) == null ? void 0 : _a.refs.floating;
|
|
41
|
-
const statusRef = React.useRef("idle");
|
|
42
|
-
const isVisible = context[dir === "down" ? "canScrollDown" : "canScrollUp"];
|
|
43
|
-
const frameRef = React.useRef();
|
|
44
|
-
const { x, y, refs, strategy } = useFloating({
|
|
31
|
+
const { __scopeSelect, dir, componentName, ...scrollIndicatorProps } = props, { forceUpdate, open, fallback, setScrollTop, setInnerOffset, ...context } = useSelectContext(componentName, __scopeSelect), floatingRef = context.floatingContext?.refs.floating, statusRef = React.useRef("idle"), isVisible = context[dir === "down" ? "canScrollDown" : "canScrollUp"], frameRef = React.useRef(), { x, y, refs, strategy } = useFloating({
|
|
45
32
|
open: open && isVisible,
|
|
46
33
|
strategy: "fixed",
|
|
47
34
|
elements: {
|
|
48
|
-
reference: floatingRef
|
|
35
|
+
reference: floatingRef?.current
|
|
49
36
|
},
|
|
50
37
|
placement: dir === "up" ? "top" : "bottom",
|
|
51
38
|
middleware: [offset(({ rects }) => -rects.floating.height)],
|
|
52
|
-
whileElementsMounted: (...args) => autoUpdate(...args, { animationFrame:
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
if (!isVisible) {
|
|
39
|
+
whileElementsMounted: (...args) => autoUpdate(...args, { animationFrame: !0 })
|
|
40
|
+
}), composedRef = useComposedRefs(forwardedRef, refs.setFloating);
|
|
41
|
+
if (!isVisible)
|
|
56
42
|
return null;
|
|
57
|
-
}
|
|
58
43
|
const onScroll = (amount) => {
|
|
59
44
|
const floating = floatingRef;
|
|
60
|
-
|
|
61
|
-
return;
|
|
62
|
-
if (fallback) {
|
|
63
|
-
if (floating.current) {
|
|
64
|
-
floating.current.scrollTop -= amount;
|
|
65
|
-
flushSync(() => {
|
|
66
|
-
var _a2;
|
|
67
|
-
return setScrollTop(((_a2 = floating.current) == null ? void 0 : _a2.scrollTop) ?? 0);
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
} else {
|
|
71
|
-
flushSync(() => setInnerOffset((value) => value - amount));
|
|
72
|
-
}
|
|
45
|
+
floating && (fallback ? floating.current && (floating.current.scrollTop -= amount, flushSync(() => setScrollTop(floating.current?.scrollTop ?? 0))) : flushSync(() => setInnerOffset((value) => value - amount)));
|
|
73
46
|
};
|
|
74
47
|
return /* @__PURE__ */ jsx(
|
|
75
48
|
YStack,
|
|
76
49
|
{
|
|
77
50
|
ref: composedRef,
|
|
78
51
|
componentName,
|
|
79
|
-
"aria-hidden":
|
|
52
|
+
"aria-hidden": !0,
|
|
80
53
|
...scrollIndicatorProps,
|
|
81
54
|
zIndex: 1e3,
|
|
82
55
|
position: strategy,
|
|
83
56
|
left: x || 0,
|
|
84
57
|
top: y || 0,
|
|
85
|
-
width: `calc(${(
|
|
58
|
+
width: `calc(${(floatingRef?.current?.offsetWidth ?? 0) - 2}px)`,
|
|
86
59
|
onPointerEnter: () => {
|
|
87
60
|
statusRef.current = "active";
|
|
88
61
|
let prevNow = Date.now();
|
|
89
62
|
function frame() {
|
|
90
|
-
const element = floatingRef
|
|
63
|
+
const element = floatingRef?.current;
|
|
91
64
|
if (element) {
|
|
92
|
-
const currentNow = Date.now();
|
|
93
|
-
const msElapsed = currentNow - prevNow;
|
|
65
|
+
const currentNow = Date.now(), msElapsed = currentNow - prevNow;
|
|
94
66
|
prevNow = currentNow;
|
|
95
|
-
const pixelsToScroll = msElapsed / 2;
|
|
96
|
-
const remainingPixels = dir === "up" ? element.scrollTop : element.scrollHeight - element.clientHeight - element.scrollTop;
|
|
97
|
-
const scrollRemaining = dir === "up" ? element.scrollTop - pixelsToScroll > 0 : element.scrollTop + pixelsToScroll < element.scrollHeight - element.clientHeight;
|
|
67
|
+
const pixelsToScroll = msElapsed / 2, remainingPixels = dir === "up" ? element.scrollTop : element.scrollHeight - element.clientHeight - element.scrollTop, scrollRemaining = dir === "up" ? element.scrollTop - pixelsToScroll > 0 : element.scrollTop + pixelsToScroll < element.scrollHeight - element.clientHeight;
|
|
98
68
|
onScroll(
|
|
99
69
|
dir === "up" ? Math.min(pixelsToScroll, remainingPixels) : Math.max(-pixelsToScroll, -remainingPixels)
|
|
100
|
-
);
|
|
101
|
-
if (scrollRemaining) {
|
|
102
|
-
frameRef.current = requestAnimationFrame(frame);
|
|
103
|
-
}
|
|
70
|
+
), scrollRemaining && (frameRef.current = requestAnimationFrame(frame));
|
|
104
71
|
}
|
|
105
72
|
}
|
|
106
|
-
cancelAnimationFrame(frameRef.current);
|
|
107
|
-
frameRef.current = requestAnimationFrame(frame);
|
|
73
|
+
cancelAnimationFrame(frameRef.current), frameRef.current = requestAnimationFrame(frame);
|
|
108
74
|
},
|
|
109
75
|
onPointerLeave: () => {
|
|
110
|
-
statusRef.current = "idle";
|
|
111
|
-
cancelAnimationFrame(frameRef.current);
|
|
76
|
+
statusRef.current = "idle", cancelAnimationFrame(frameRef.current);
|
|
112
77
|
}
|
|
113
78
|
}
|
|
114
79
|
);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/SelectScrollButton.tsx"],
|
|
4
|
-
"mappings": "
|
|
5
|
-
"names": [
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
6
|
}
|
|
@@ -1,33 +1,25 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
1
|
import { useComposedRefs } from "@tamagui/compose-refs";
|
|
3
2
|
import { ListItem } from "@tamagui/list-item";
|
|
4
3
|
import * as React from "react";
|
|
5
4
|
import { useSelectContext, useSelectItemParentContext } from "./context";
|
|
6
|
-
|
|
7
|
-
const SelectTrigger = React.forwardRef(
|
|
8
|
-
function
|
|
9
|
-
|
|
10
|
-
const { __scopeSelect, disabled = false, unstyled = false, ...triggerProps } = props;
|
|
11
|
-
const context = useSelectContext(TRIGGER_NAME, __scopeSelect);
|
|
12
|
-
const itemParentContext = useSelectItemParentContext(TRIGGER_NAME, __scopeSelect);
|
|
13
|
-
const composedRefs = useComposedRefs(
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
const TRIGGER_NAME = "SelectTrigger", SelectTrigger = React.forwardRef(
|
|
7
|
+
function(props, forwardedRef) {
|
|
8
|
+
const { __scopeSelect, disabled = !1, unstyled = !1, ...triggerProps } = props, context = useSelectContext(TRIGGER_NAME, __scopeSelect), itemParentContext = useSelectItemParentContext(TRIGGER_NAME, __scopeSelect), composedRefs = useComposedRefs(
|
|
14
9
|
forwardedRef,
|
|
15
|
-
|
|
10
|
+
context.floatingContext?.refs.setReference
|
|
16
11
|
);
|
|
17
|
-
|
|
18
|
-
return null;
|
|
19
|
-
}
|
|
20
|
-
return /* @__PURE__ */ jsx(
|
|
12
|
+
return itemParentContext.shouldRenderWebNative ? null : /* @__PURE__ */ jsx(
|
|
21
13
|
ListItem,
|
|
22
14
|
{
|
|
23
15
|
componentName: TRIGGER_NAME,
|
|
24
16
|
unstyled,
|
|
25
17
|
...!unstyled && {
|
|
26
|
-
backgrounded:
|
|
27
|
-
radiused:
|
|
28
|
-
hoverTheme:
|
|
29
|
-
pressTheme:
|
|
30
|
-
focusable:
|
|
18
|
+
backgrounded: !0,
|
|
19
|
+
radiused: !0,
|
|
20
|
+
hoverTheme: !0,
|
|
21
|
+
pressTheme: !0,
|
|
22
|
+
focusable: !0,
|
|
31
23
|
focusStyle: {
|
|
32
24
|
outlineStyle: "solid",
|
|
33
25
|
outlineWidth: 2,
|
|
@@ -43,12 +35,10 @@ const SelectTrigger = React.forwardRef(
|
|
|
43
35
|
"data-disabled": disabled ? "" : void 0,
|
|
44
36
|
...triggerProps,
|
|
45
37
|
ref: composedRefs,
|
|
46
|
-
...
|
|
38
|
+
...itemParentContext.interactions ? {
|
|
47
39
|
...itemParentContext.interactions.getReferenceProps(),
|
|
48
40
|
onMouseDown() {
|
|
49
|
-
|
|
50
|
-
(_a2 = context.floatingContext) == null ? void 0 : _a2.update();
|
|
51
|
-
itemParentContext.setOpen(!context.open);
|
|
41
|
+
context.floatingContext?.update(), itemParentContext.setOpen(!context.open);
|
|
52
42
|
}
|
|
53
43
|
} : {
|
|
54
44
|
onPress() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/SelectTrigger.tsx"],
|
|
4
|
-
"mappings": "
|
|
5
|
-
"names": [
|
|
4
|
+
"mappings": "AAAA,SAAS,uBAAuB;AAEhC,SAAS,gBAA+B;AACxC,YAAY,WAAW;AAEvB,SAAS,kBAAkB,kCAAkC;AA4BvD;AAtBN,MAAM,eAAe,iBAIR,gBAAgB,MAAM;AAAA,EACjC,SAAuB,OAAwC,cAAc;AAC3E,UAAM,EAAE,eAAe,WAAW,IAAO,WAAW,IAAO,GAAG,aAAa,IAAI,OAEzE,UAAU,iBAAiB,cAAc,aAAa,GACtD,oBAAoB,2BAA2B,cAAc,aAAa,GAC1E,eAAe;AAAA,MACnB;AAAA,MACA,QAAQ,iBAAiB,KAAK;AAAA,IAChC;AAIA,WAAI,kBAAkB,wBACb,OAIP;AAAA,MAAC;AAAA;AAAA,QACC,eAAe;AAAA,QACf;AAAA,QACC,GAAI,CAAC,YAAY;AAAA,UAChB,cAAc;AAAA,UACd,UAAU;AAAA,UACV,YAAY;AAAA,UACZ,YAAY;AAAA,UACZ,WAAW;AAAA,UACX,YAAY;AAAA,YACV,cAAc;AAAA,YACd,cAAc;AAAA,YACd,cAAc;AAAA,UAChB;AAAA,UACA,aAAa;AAAA,QACf;AAAA,QACA,MAAM,kBAAkB;AAAA,QAExB,iBAAe,QAAQ;AAAA,QACvB,qBAAkB;AAAA,QAClB,KAAK,QAAQ;AAAA,QACb;AAAA,QACA,iBAAe,WAAW,KAAK;AAAA,QAC9B,GAAG;AAAA,QACJ,KAAK;AAAA,QACJ,GAA4C,kBAAkB,eAC3D;AAAA,UACE,GAAG,kBAAkB,aAAa,kBAAkB;AAAA,UACpD,cAAc;AACZ,oBAAQ,iBAAiB,OAAO,GAChC,kBAAkB,QAAQ,CAAC,QAAQ,IAAI;AAAA,UACzC;AAAA,QACF,IACA;AAAA,UACE,UAAU;AACR,8BAAkB,QAAQ,CAAC,QAAQ,IAAI;AAAA,UACzC;AAAA,QACF;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;",
|
|
5
|
+
"names": []
|
|
6
6
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
1
|
import { FloatingFocusManager } from "@floating-ui/react";
|
|
3
2
|
import { AnimatePresence } from "@tamagui/animate-presence";
|
|
4
3
|
import {
|
|
@@ -16,6 +15,7 @@ import {
|
|
|
16
15
|
useSelectItemParentContext
|
|
17
16
|
} from "./context";
|
|
18
17
|
import { useSelectBreakpointActive } from "./useSelectBreakpointActive";
|
|
18
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
19
19
|
const SelectViewportFrame = styled(ThemeableStack, {
|
|
20
20
|
name: VIEWPORT_NAME,
|
|
21
21
|
variants: {
|
|
@@ -23,44 +23,34 @@ const SelectViewportFrame = styled(ThemeableStack, {
|
|
|
23
23
|
false: {
|
|
24
24
|
size: "$2",
|
|
25
25
|
backgroundColor: "$background",
|
|
26
|
-
elevate:
|
|
27
|
-
bordered:
|
|
26
|
+
elevate: !0,
|
|
27
|
+
bordered: !0,
|
|
28
28
|
userSelect: "none",
|
|
29
29
|
outlineWidth: 0
|
|
30
30
|
}
|
|
31
31
|
},
|
|
32
32
|
size: {
|
|
33
|
-
"...size": (val, { tokens }) => {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
};
|
|
37
|
-
}
|
|
33
|
+
"...size": (val, { tokens }) => ({
|
|
34
|
+
borderRadius: tokens.radius[val] ?? val
|
|
35
|
+
})
|
|
38
36
|
}
|
|
39
37
|
},
|
|
40
38
|
defaultVariants: {
|
|
41
|
-
unstyled:
|
|
39
|
+
unstyled: !1
|
|
42
40
|
}
|
|
43
|
-
})
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
var _a;
|
|
47
|
-
const { __scopeSelect, children, disableScroll, ...viewportProps } = props;
|
|
48
|
-
const context = useSelectContext(VIEWPORT_NAME, __scopeSelect);
|
|
49
|
-
const itemContext = useSelectItemParentContext(VIEWPORT_NAME, __scopeSelect);
|
|
50
|
-
const breakpointActive = useSelectBreakpointActive(context.sheetBreakpoint);
|
|
41
|
+
}), SelectViewport = SelectViewportFrame.styleable(
|
|
42
|
+
function(props, forwardedRef) {
|
|
43
|
+
const { __scopeSelect, children, disableScroll, ...viewportProps } = props, context = useSelectContext(VIEWPORT_NAME, __scopeSelect), itemContext = useSelectItemParentContext(VIEWPORT_NAME, __scopeSelect), breakpointActive = useSelectBreakpointActive(context.sheetBreakpoint);
|
|
51
44
|
useIsomorphicLayoutEffect(() => {
|
|
52
|
-
|
|
53
|
-
context.update();
|
|
54
|
-
}
|
|
45
|
+
context.update && context.update();
|
|
55
46
|
}, [breakpointActive]);
|
|
56
47
|
const composedRefs = composeRefs(
|
|
57
48
|
forwardedRef,
|
|
58
|
-
|
|
49
|
+
context.floatingContext?.refs.setFloating
|
|
59
50
|
);
|
|
60
|
-
if (itemContext.shouldRenderWebNative)
|
|
51
|
+
if (itemContext.shouldRenderWebNative)
|
|
61
52
|
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
62
|
-
|
|
63
|
-
if (breakpointActive || !isWeb) {
|
|
53
|
+
if (breakpointActive || !isWeb)
|
|
64
54
|
return /* @__PURE__ */ jsx(PortalItem, { hostName: `${context.scopeKey}SheetContents`, children: /* @__PURE__ */ jsx(
|
|
65
55
|
ForwardSelectContext,
|
|
66
56
|
{
|
|
@@ -70,15 +60,9 @@ const SelectViewport = SelectViewportFrame.styleable(
|
|
|
70
60
|
children
|
|
71
61
|
}
|
|
72
62
|
) });
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
console.warn(`No interactions provided to Select, potentially missing Adapt`);
|
|
77
|
-
}
|
|
78
|
-
return null;
|
|
79
|
-
}
|
|
80
|
-
const { style, ...floatingProps } = itemContext.interactions.getFloatingProps();
|
|
81
|
-
const { scrollbarWidth, listStyleType, overflow, ...restStyle } = style;
|
|
63
|
+
if (!itemContext.interactions)
|
|
64
|
+
return process.env.NODE_ENV === "development" && console.warn("No interactions provided to Select, potentially missing Adapt"), null;
|
|
65
|
+
const { style, ...floatingProps } = itemContext.interactions.getFloatingProps(), { scrollbarWidth, listStyleType, overflow, ...restStyle } = style;
|
|
82
66
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
83
67
|
!disableScroll && !props.unstyled && /* @__PURE__ */ jsx(
|
|
84
68
|
"style",
|
|
@@ -91,7 +75,7 @@ const SelectViewport = SelectViewportFrame.styleable(
|
|
|
91
75
|
/* @__PURE__ */ jsx(FloatingFocusManager, { context: context.floatingContext, children: /* @__PURE__ */ jsx(AnimatePresence, { children: context.open ? /* @__PURE__ */ jsx(
|
|
92
76
|
SelectViewportFrame,
|
|
93
77
|
{
|
|
94
|
-
disableClassName:
|
|
78
|
+
disableClassName: !0,
|
|
95
79
|
size: itemContext.size,
|
|
96
80
|
role: "presentation",
|
|
97
81
|
...viewportProps,
|
|
@@ -108,8 +92,7 @@ const SelectViewport = SelectViewportFrame.styleable(
|
|
|
108
92
|
!context.open && /* @__PURE__ */ jsx("div", { style: { display: "none" }, children: props.children })
|
|
109
93
|
] });
|
|
110
94
|
}
|
|
111
|
-
)
|
|
112
|
-
const selectViewportCSS = `
|
|
95
|
+
), selectViewportCSS = `
|
|
113
96
|
.is_SelectViewport {
|
|
114
97
|
scrollbar-width: none;
|
|
115
98
|
-webkit-overflow-scrolling: touch;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/SelectViewport.tsx"],
|
|
4
|
-
"mappings": "
|
|
5
|
-
"names": [
|
|
4
|
+
"mappings": "AAAA,SAAS,4BAA4B;AACrC,SAAS,uBAAuB;AAChC;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,cAAc;AACvB,SAAS,kBAAkB;AAC3B,SAAS,sBAAsB;AAG/B,SAAS,qBAAqB;AAC9B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,iCAAiC;AAsD7B,wBA6BP,YA7BO;AAhDN,MAAM,sBAAsB,OAAO,gBAAgB;AAAA,EACxD,MAAM;AAAA,EAEN,UAAU;AAAA,IACR,UAAU;AAAA,MACR,OAAO;AAAA,QACL,MAAM;AAAA,QACN,iBAAiB;AAAA,QACjB,SAAS;AAAA,QACT,UAAU;AAAA,QACV,YAAY;AAAA,QACZ,cAAc;AAAA,MAChB;AAAA,IACF;AAAA,IAEA,MAAM;AAAA,MACJ,WAAW,CAAC,KAAK,EAAE,OAAO,OACjB;AAAA,QACL,cAAc,OAAO,OAAO,GAAG,KAAK;AAAA,MACtC;AAAA,IAEJ;AAAA,EACF;AAAA,EAEA,iBAAiB;AAAA,IACf,UAAU;AAAA,EACZ;AACF,CAAC,GAEY,iBAAiB,oBAAoB;AAAA,EAChD,SAAwB,OAAyC,cAAc;AAC7E,UAAM,EAAE,eAAe,UAAU,eAAe,GAAG,cAAc,IAAI,OAC/D,UAAU,iBAAiB,eAAe,aAAa,GACvD,cAAc,2BAA2B,eAAe,aAAa,GACrE,mBAAmB,0BAA0B,QAAQ,eAAe;AAE1E,8BAA0B,MAAM;AAC9B,MAAI,QAAQ,UACV,QAAQ,OAAO;AAAA,IAEnB,GAAG,CAAC,gBAAgB,CAAC;AAErB,UAAM,eAAe;AAAA,MACnB;AAAA,MACA,QAAQ,iBAAiB,KAAK;AAAA,IAChC;AAEA,QAAI,YAAY;AACd,aAAO,gCAAG,UAAS;AAGrB,QAAI,oBAAoB,CAAC;AACvB,aACE,oBAAC,cAAW,UAAU,GAAG,QAAQ,QAAQ,iBACvC;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UAEC;AAAA;AAAA,MACH,GACF;AAIJ,QAAI,CAAC,YAAY;AACf,aAAI,QAAQ,IAAI,aAAa,iBAC3B,QAAQ,KAAK,+DAA+D,GAGvE;AAGT,UAAM,EAAE,OAAO,GAAG,cAAc,IAAI,YAAY,aAAa,iBAAiB,GACxE,EAAE,gBAAgB,eAAe,UAAU,GAAG,UAAU,IAAI;AAElE,WACE,iCACG;AAAA,OAAC,iBAAiB,CAAC,MAAM,YACxB;AAAA,QAAC;AAAA;AAAA,UACC,yBAAyB;AAAA,YACvB,QAAQ;AAAA,UACV;AAAA;AAAA,MACF;AAAA,MAEF,oBAAC,wBAAqB,SAAS,QAAQ,iBACrC,8BAAC,mBACE,kBAAQ,OACP;AAAA,QAAC;AAAA;AAAA,UACC,kBAAgB;AAAA,UAEhB,MAAM,YAAY;AAAA,UAElB,MAAK;AAAA,UACJ,GAAG;AAAA,UACJ,KAAK;AAAA,UACJ,GAAG;AAAA,UACH,GAAG;AAAA,UACH,GAAI,CAAC,MAAM,YAAY;AAAA,YACtB,UAAU,gBAAgB,SAAY,YAAY;AAAA,UACpD;AAAA,UAEC;AAAA;AAAA,QAZG;AAAA,MAaN,IACE,MACN,GACF;AAAA,MAGC,CAAC,QAAQ,QAAQ,oBAAC,SAAI,OAAO,EAAE,SAAS,OAAO,GAAI,gBAAM,UAAS;AAAA,OACrE;AAAA,EAEJ;AACF,GAEM,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
|
|
5
|
+
"names": []
|
|
6
6
|
}
|
package/dist/esm/constants.js
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
const SELECT_NAME = "Select";
|
|
2
|
-
const WINDOW_PADDING = 8;
|
|
3
|
-
const SCROLL_ARROW_VELOCITY = 8;
|
|
4
|
-
const SCROLL_ARROW_THRESHOLD = 8;
|
|
5
|
-
const MIN_HEIGHT = 80;
|
|
6
|
-
const FALLBACK_THRESHOLD = 16;
|
|
7
|
-
const VIEWPORT_NAME = "SelectViewport";
|
|
1
|
+
const SELECT_NAME = "Select", WINDOW_PADDING = 8, SCROLL_ARROW_VELOCITY = 8, SCROLL_ARROW_THRESHOLD = 8, MIN_HEIGHT = 80, FALLBACK_THRESHOLD = 16, VIEWPORT_NAME = "SelectViewport";
|
|
8
2
|
export {
|
|
9
3
|
FALLBACK_THRESHOLD,
|
|
10
4
|
MIN_HEIGHT,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/constants.tsx"],
|
|
4
|
-
"mappings": "AAAO,MAAM,cAAc
|
|
4
|
+
"mappings": "AAAO,MAAM,cAAc,UACd,iBAAiB,GACjB,wBAAwB,GACxB,yBAAyB,GACzB,aAAa,IACb,qBAAqB,IACrB,gBAAgB;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/esm/context.js
CHANGED
|
@@ -1,18 +1,12 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
1
|
import { createContextScope } from "@tamagui/create-context";
|
|
3
2
|
import { SELECT_NAME } from "./constants";
|
|
4
|
-
|
|
5
|
-
const [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME)
|
|
6
|
-
const [createSelectItemParentContext, createSelectItemParentScope] = createContextScope(SELECT_NAME);
|
|
7
|
-
const [SelectItemParentProvider, useSelectItemParentContext] = createSelectContext(SELECT_NAME);
|
|
8
|
-
const ForwardSelectContext = ({
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
const [createSelectContext, createSelectScope] = createContextScope(SELECT_NAME), [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME), [createSelectItemParentContext, createSelectItemParentScope] = createContextScope(SELECT_NAME), [SelectItemParentProvider, useSelectItemParentContext] = createSelectContext(SELECT_NAME), ForwardSelectContext = ({
|
|
9
5
|
__scopeSelect,
|
|
10
6
|
context,
|
|
11
7
|
itemContext,
|
|
12
8
|
children
|
|
13
|
-
}) => {
|
|
14
|
-
return /* @__PURE__ */ jsx(SelectProvider, { isInSheet: true, scope: __scopeSelect, ...context, children: /* @__PURE__ */ jsx(SelectItemParentProvider, { scope: __scopeSelect, ...itemContext, children }) });
|
|
15
|
-
};
|
|
9
|
+
}) => /* @__PURE__ */ jsx(SelectProvider, { isInSheet: !0, scope: __scopeSelect, ...context, children: /* @__PURE__ */ jsx(SelectItemParentProvider, { scope: __scopeSelect, ...itemContext, children }) });
|
|
16
10
|
export {
|
|
17
11
|
ForwardSelectContext,
|
|
18
12
|
SelectItemParentProvider,
|
package/dist/esm/context.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/context.tsx"],
|
|
4
|
-
"mappings": "
|
|
4
|
+
"mappings": "AAAA,SAAS,0BAA0B;AAEnC,SAAS,mBAAmB;AA4BtB;AAzBC,MAAM,CAAC,qBAAqB,iBAAiB,IAAI,mBAAmB,WAAW,GAEzE,CAAC,gBAAgB,gBAAgB,IAC5C,oBAAwC,WAAW,GAIxC,CAAC,+BAA+B,2BAA2B,IACtE,mBAAmB,WAAW,GAEnB,CAAC,0BAA0B,0BAA0B,IAChE,oBAAkD,WAAW,GAElD,uBAAuB,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAMI,oBAAC,kBAAe,WAAS,IAAC,OAAO,eAAgB,GAAG,SAClD,8BAAC,4BAAyB,OAAO,eAAgB,GAAG,aACjD,UACH,GACF;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
import { useMedia } from "@tamagui/core";
|
|
2
2
|
const useSelectBreakpointActive = (sheetBreakpoint) => {
|
|
3
3
|
const media = useMedia();
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
if (sheetBreakpoint === true)
|
|
7
|
-
return true;
|
|
8
|
-
return sheetBreakpoint ? media[sheetBreakpoint] : false;
|
|
9
|
-
};
|
|
10
|
-
const useShowSelectSheet = (context) => {
|
|
4
|
+
return sheetBreakpoint ? sheetBreakpoint === !0 ? !0 : sheetBreakpoint ? media[sheetBreakpoint] : !1 : !1;
|
|
5
|
+
}, useShowSelectSheet = (context) => {
|
|
11
6
|
const breakpointActive = useSelectBreakpointActive(context.sheetBreakpoint);
|
|
12
|
-
return context.open ===
|
|
7
|
+
return context.open === !1 ? !1 : breakpointActive;
|
|
13
8
|
};
|
|
14
9
|
export {
|
|
15
10
|
useSelectBreakpointActive,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/useSelectBreakpointActive.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,gBAAgB;AAIlB,MAAM,4BAA4B,CACvC,oBACG;AACH,QAAM,QAAQ,SAAS;AACvB,
|
|
4
|
+
"mappings": "AAAA,SAAS,gBAAgB;AAIlB,MAAM,4BAA4B,CACvC,oBACG;AACH,QAAM,QAAQ,SAAS;AACvB,SAAK,kBACD,oBAAoB,KAAa,KAC9B,kBAAkB,MAAM,eAAe,IAAI,KAFrB;AAG/B,GAEa,qBAAqB,CAAC,YAAgC;AACjE,QAAM,mBAAmB,0BAA0B,QAAQ,eAAe;AAC1E,SAAO,QAAQ,SAAS,KAAQ,KAAQ;AAC1C;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/jsx/BubbleSelect.js
CHANGED
|
@@ -2,24 +2,16 @@ import { useComposedRefs } from "@tamagui/compose-refs";
|
|
|
2
2
|
import { usePrevious } from "@tamagui/use-previous";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
const BubbleSelect = React.forwardRef((props, forwardedRef) => {
|
|
5
|
-
const { value, ...selectProps } = props;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const prevValue = usePrevious(value);
|
|
9
|
-
React.useEffect(() => {
|
|
10
|
-
const select = ref.current;
|
|
11
|
-
const selectProto = window.HTMLSelectElement.prototype;
|
|
12
|
-
const descriptor = Object.getOwnPropertyDescriptor(
|
|
5
|
+
const { value, ...selectProps } = props, ref = React.useRef(null), composedRefs = useComposedRefs(forwardedRef, ref), prevValue = usePrevious(value);
|
|
6
|
+
return React.useEffect(() => {
|
|
7
|
+
const select = ref.current, selectProto = window.HTMLSelectElement.prototype, setValue = Object.getOwnPropertyDescriptor(
|
|
13
8
|
selectProto,
|
|
14
9
|
"value"
|
|
15
|
-
);
|
|
16
|
-
const setValue = descriptor.set;
|
|
10
|
+
).set;
|
|
17
11
|
if (prevValue !== value && setValue) {
|
|
18
|
-
const event = new Event("change", { bubbles:
|
|
19
|
-
setValue.call(select, value);
|
|
20
|
-
select.dispatchEvent(event);
|
|
12
|
+
const event = new Event("change", { bubbles: !0 });
|
|
13
|
+
setValue.call(select, value), select.dispatchEvent(event);
|
|
21
14
|
}
|
|
22
|
-
}, [prevValue, value]);
|
|
23
|
-
return null;
|
|
15
|
+
}, [prevValue, value]), null;
|
|
24
16
|
});
|
|
25
17
|
//# sourceMappingURL=BubbleSelect.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/BubbleSelect.tsx"],
|
|
4
|
-
"mappings": "AAAA,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAC5B,YAAY,WAAW;AAGvB,MAAM,eAAe,MAAM,WAGzB,CAAC,OAAO,iBAAiB;AACzB,QAAM,EAAE,OAAO,GAAG,YAAY,IAAI
|
|
4
|
+
"mappings": "AAAA,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAC5B,YAAY,WAAW;AAGvB,MAAM,eAAe,MAAM,WAGzB,CAAC,OAAO,iBAAiB;AACzB,QAAM,EAAE,OAAO,GAAG,YAAY,IAAI,OAC5B,MAAM,MAAM,OAA0B,IAAI,GAC1C,eAAe,gBAAgB,cAAc,GAAG,GAChD,YAAY,YAAY,KAAK;AAGnC,eAAM,UAAU,MAAM;AACpB,UAAM,SAAS,IAAI,SACb,cAAc,OAAO,kBAAkB,WAKvC,WAJa,OAAO;AAAA,MACxB;AAAA,MACA;AAAA,IACF,EAC4B;AAC5B,QAAI,cAAc,SAAS,UAAU;AACnC,YAAM,QAAQ,IAAI,MAAM,UAAU,EAAE,SAAS,GAAK,CAAC;AACnD,eAAS,KAAK,QAAQ,KAAK,GAC3B,OAAO,cAAc,KAAK;AAAA,IAC5B;AAAA,EACF,GAAG,CAAC,WAAW,KAAK,CAAC,GAed;AAMT,CAAC;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useComposedRefs } from "@tamagui/compose-refs";
|
|
2
|
+
import { usePrevious } from "@tamagui/use-previous";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
const BubbleSelect = React.forwardRef((props, forwardedRef) => {
|
|
5
|
+
const { value, ...selectProps } = props, ref = React.useRef(null), composedRefs = useComposedRefs(forwardedRef, ref), prevValue = usePrevious(value);
|
|
6
|
+
return React.useEffect(() => {
|
|
7
|
+
const select = ref.current, selectProto = window.HTMLSelectElement.prototype, setValue = Object.getOwnPropertyDescriptor(
|
|
8
|
+
selectProto,
|
|
9
|
+
"value"
|
|
10
|
+
).set;
|
|
11
|
+
if (prevValue !== value && setValue) {
|
|
12
|
+
const event = new Event("change", { bubbles: !0 });
|
|
13
|
+
setValue.call(select, value), select.dispatchEvent(event);
|
|
14
|
+
}
|
|
15
|
+
}, [prevValue, value]), null;
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=BubbleSelect.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/BubbleSelect.tsx"],
|
|
4
|
+
"mappings": "AAAA,SAAS,uBAAuB;AAChC,SAAS,mBAAmB;AAC5B,YAAY,WAAW;AAGvB,MAAM,eAAe,MAAM,WAGzB,CAAC,OAAO,iBAAiB;AACzB,QAAM,EAAE,OAAO,GAAG,YAAY,IAAI,OAC5B,MAAM,MAAM,OAA0B,IAAI,GAC1C,eAAe,gBAAgB,cAAc,GAAG,GAChD,YAAY,YAAY,KAAK;AAGnC,eAAM,UAAU,MAAM;AACpB,UAAM,SAAS,IAAI,SACb,cAAc,OAAO,kBAAkB,WAKvC,WAJa,OAAO;AAAA,MACxB;AAAA,MACA;AAAA,IACF,EAC4B;AAC5B,QAAI,cAAc,SAAS,UAAU;AACnC,YAAM,QAAQ,IAAI,MAAM,UAAU,EAAE,SAAS,GAAK,CAAC;AACnD,eAAS,KAAK,QAAQ,KAAK,GAC3B,OAAO,cAAc,KAAK;AAAA,IAC5B;AAAA,EACF,GAAG,CAAC,WAAW,KAAK,CAAC,GAed;AAMT,CAAC;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|