@tamagui/select 3.0.0-beta.924.1 → 3.0.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/Select.cjs +23 -25
- package/dist/cjs/Select.native.cjs +27 -26
- package/dist/cjs/Select.native.js +27 -26
- package/dist/cjs/Select.native.js.map +1 -1
- package/dist/cjs/SelectImpl.cjs +56 -50
- package/dist/cjs/SelectItem.cjs +49 -60
- package/dist/cjs/SelectItem.native.cjs +51 -79
- package/dist/cjs/SelectItem.native.js +51 -79
- package/dist/cjs/SelectItem.native.js.map +1 -1
- package/dist/cjs/SelectScrollButton.cjs +2 -2
- package/dist/cjs/SelectTrigger.cjs +22 -5
- package/dist/cjs/SelectTrigger.native.cjs +15 -5
- package/dist/cjs/SelectTrigger.native.js +15 -5
- package/dist/cjs/SelectTrigger.native.js.map +1 -1
- package/dist/cjs/SelectViewport.cjs +22 -30
- package/dist/cjs/SelectViewport.native.cjs +2 -2
- package/dist/cjs/SelectViewport.native.js +2 -2
- package/dist/cjs/SelectViewport.native.js.map +1 -1
- package/dist/cjs/selectionController.cjs +15 -5
- package/dist/cjs/selectionController.native.cjs +20 -15
- package/dist/cjs/selectionController.native.js +20 -15
- package/dist/cjs/selectionController.native.js.map +1 -1
- package/dist/esm/Select.mjs +27 -28
- package/dist/esm/Select.mjs.map +1 -1
- package/dist/esm/Select.native.js +31 -29
- package/dist/esm/Select.native.js.map +1 -1
- package/dist/esm/SelectImpl.mjs +56 -50
- package/dist/esm/SelectImpl.mjs.map +1 -1
- package/dist/esm/SelectItem.mjs +50 -61
- package/dist/esm/SelectItem.mjs.map +1 -1
- package/dist/esm/SelectItem.native.js +52 -80
- package/dist/esm/SelectItem.native.js.map +1 -1
- package/dist/esm/SelectScrollButton.mjs +2 -2
- package/dist/esm/SelectScrollButton.mjs.map +1 -1
- package/dist/esm/SelectTrigger.mjs +16 -5
- package/dist/esm/SelectTrigger.mjs.map +1 -1
- package/dist/esm/SelectTrigger.native.js +15 -4
- package/dist/esm/SelectTrigger.native.js.map +1 -1
- package/dist/esm/SelectViewport.mjs +22 -30
- package/dist/esm/SelectViewport.mjs.map +1 -1
- package/dist/esm/SelectViewport.native.js +3 -3
- package/dist/esm/SelectViewport.native.js.map +1 -1
- package/dist/esm/selectionController.mjs +15 -5
- package/dist/esm/selectionController.mjs.map +1 -1
- package/dist/esm/selectionController.native.js +20 -15
- package/dist/esm/selectionController.native.js.map +1 -1
- package/dist/jsx/Select.mjs +27 -28
- package/dist/jsx/Select.mjs.map +1 -1
- package/dist/jsx/Select.native.cjs +27 -26
- package/dist/jsx/Select.native.js +27 -26
- package/dist/jsx/Select.native.js.map +1 -1
- package/dist/jsx/SelectImpl.mjs +56 -50
- package/dist/jsx/SelectImpl.mjs.map +1 -1
- package/dist/jsx/SelectItem.mjs +50 -61
- package/dist/jsx/SelectItem.mjs.map +1 -1
- package/dist/jsx/SelectItem.native.cjs +51 -79
- package/dist/jsx/SelectItem.native.js +51 -79
- package/dist/jsx/SelectItem.native.js.map +1 -1
- package/dist/jsx/SelectScrollButton.mjs +2 -2
- package/dist/jsx/SelectScrollButton.mjs.map +1 -1
- package/dist/jsx/SelectTrigger.mjs +16 -5
- package/dist/jsx/SelectTrigger.mjs.map +1 -1
- package/dist/jsx/SelectTrigger.native.cjs +15 -5
- package/dist/jsx/SelectTrigger.native.js +15 -5
- package/dist/jsx/SelectTrigger.native.js.map +1 -1
- package/dist/jsx/SelectViewport.mjs +22 -30
- package/dist/jsx/SelectViewport.mjs.map +1 -1
- package/dist/jsx/SelectViewport.native.cjs +2 -2
- package/dist/jsx/SelectViewport.native.js +2 -2
- package/dist/jsx/SelectViewport.native.js.map +1 -1
- package/dist/jsx/selectionController.mjs +15 -5
- package/dist/jsx/selectionController.mjs.map +1 -1
- package/dist/jsx/selectionController.native.cjs +20 -15
- package/dist/jsx/selectionController.native.js +20 -15
- package/dist/jsx/selectionController.native.js.map +1 -1
- package/package.json +30 -29
- package/src/Select.tsx +41 -41
- package/src/SelectImpl.tsx +83 -81
- package/src/SelectItem.tsx +66 -91
- package/src/SelectScrollButton.tsx +2 -2
- package/src/SelectTrigger.tsx +19 -2
- package/src/SelectViewport.native.tsx +4 -4
- package/src/SelectViewport.tsx +21 -27
- package/src/selectionController.ts +20 -5
- package/src/types.tsx +26 -21
- package/types/Select.d.ts +42 -81
- package/types/Select.d.ts.map +1 -1
- package/types/SelectImpl.d.ts.map +1 -1
- package/types/SelectItem.d.ts +3 -5
- package/types/SelectItem.d.ts.map +1 -1
- package/types/SelectItemText.d.ts +3 -5
- package/types/SelectItemText.d.ts.map +1 -1
- package/types/SelectScrollButton.d.ts +5 -9
- package/types/SelectScrollButton.d.ts.map +1 -1
- package/types/SelectScrollButton.native.d.ts +5 -9
- package/types/SelectScrollButton.native.d.ts.map +1 -1
- package/types/SelectTrigger.d.ts +3 -5
- package/types/SelectTrigger.d.ts.map +1 -1
- package/types/SelectViewport.d.ts +4 -9
- package/types/SelectViewport.d.ts.map +1 -1
- package/types/SelectViewport.native.d.ts +4 -9
- package/types/SelectViewport.native.d.ts.map +1 -1
- package/types/selectionController.d.ts +2 -0
- package/types/selectionController.d.ts.map +1 -1
- package/types/types.d.ts +30 -21
- package/types/types.d.ts.map +1 -1
|
@@ -40,14 +40,14 @@ var SelectViewport = (0, import_core.createStyledHOC)(SelectViewportFrame, funct
|
|
|
40
40
|
var context = (0, import_context.useSelectContext)(scope);
|
|
41
41
|
var itemParentContext = (0, import_context.useSelectItemParentContext)(scope);
|
|
42
42
|
var themeName = (0, import_core.useThemeName)();
|
|
43
|
-
var adaptContext = (0, import_adapt.useAdaptContext)();
|
|
43
|
+
var adaptContext = (0, import_adapt.useAdaptContext)(context.adaptScope);
|
|
44
44
|
var isAdapted = (0, import_adapt.useAdaptIsActive)(context.adaptScope);
|
|
45
45
|
var contents = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Theme, {
|
|
46
46
|
name: themeName,
|
|
47
47
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_context.ForwardSelectContext, {
|
|
48
48
|
itemContext: itemParentContext,
|
|
49
49
|
context,
|
|
50
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_adapt.
|
|
50
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_adapt.ProvideAdaptContext, {
|
|
51
51
|
...adaptContext,
|
|
52
52
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectViewportFrame, {
|
|
53
53
|
...viewportProps,
|
|
@@ -40,14 +40,14 @@ var SelectViewport = (0, import_core.createStyledHOC)(SelectViewportFrame, funct
|
|
|
40
40
|
var context = (0, import_context.useSelectContext)(scope);
|
|
41
41
|
var itemParentContext = (0, import_context.useSelectItemParentContext)(scope);
|
|
42
42
|
var themeName = (0, import_core.useThemeName)();
|
|
43
|
-
var adaptContext = (0, import_adapt.useAdaptContext)();
|
|
43
|
+
var adaptContext = (0, import_adapt.useAdaptContext)(context.adaptScope);
|
|
44
44
|
var isAdapted = (0, import_adapt.useAdaptIsActive)(context.adaptScope);
|
|
45
45
|
var contents = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Theme, {
|
|
46
46
|
name: themeName,
|
|
47
47
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_context.ForwardSelectContext, {
|
|
48
48
|
itemContext: itemParentContext,
|
|
49
49
|
context,
|
|
50
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_adapt.
|
|
50
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_adapt.ProvideAdaptContext, {
|
|
51
51
|
...adaptContext,
|
|
52
52
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectViewportFrame, {
|
|
53
53
|
...viewportProps,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectViewport.native.js","names":[],"sources":["cjs/SelectViewport.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar SelectViewport_native_exports = {};\n__export(SelectViewport_native_exports, {\n SelectViewport: () => SelectViewport,\n SelectViewportFrame: () => SelectViewportFrame\n});\nmodule.exports = __toCommonJS(SelectViewport_native_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_adapt = require(\"@tamagui/adapt\");\nvar import_core = require(\"@tamagui/core\");\nvar import_constants = require(\"./constants\");\nvar import_context = require(\"./context\");\nvar SelectViewportFrame = (0, import_core.styled)(import_core.View, {\n displayName: import_constants.VIEWPORT_NAME,\n position: \"relative\"\n});\nvar SelectViewport = (0, import_core.createStyledHOC)(SelectViewportFrame, function SelectViewport2(props, forwardedRef) {\n var { scope, children, disableScroll: _disableScroll, ...viewportProps } = props;\n var context = (0, import_context.useSelectContext)(scope);\n var itemParentContext = (0, import_context.useSelectItemParentContext)(scope);\n var themeName = (0, import_core.useThemeName)();\n var adaptContext = (0, import_adapt.useAdaptContext)();\n var isAdapted = (0, import_adapt.useAdaptIsActive)(context.adaptScope);\n var contents = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Theme, {\n name: themeName,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_context.ForwardSelectContext, {\n itemContext: itemParentContext,\n context,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_adapt.
|
|
1
|
+
{"version":3,"file":"SelectViewport.native.js","names":[],"sources":["cjs/SelectViewport.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar SelectViewport_native_exports = {};\n__export(SelectViewport_native_exports, {\n SelectViewport: () => SelectViewport,\n SelectViewportFrame: () => SelectViewportFrame\n});\nmodule.exports = __toCommonJS(SelectViewport_native_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_adapt = require(\"@tamagui/adapt\");\nvar import_core = require(\"@tamagui/core\");\nvar import_constants = require(\"./constants\");\nvar import_context = require(\"./context\");\nvar SelectViewportFrame = (0, import_core.styled)(import_core.View, {\n displayName: import_constants.VIEWPORT_NAME,\n position: \"relative\"\n});\nvar SelectViewport = (0, import_core.createStyledHOC)(SelectViewportFrame, function SelectViewport2(props, forwardedRef) {\n var { scope, children, disableScroll: _disableScroll, ...viewportProps } = props;\n var context = (0, import_context.useSelectContext)(scope);\n var itemParentContext = (0, import_context.useSelectItemParentContext)(scope);\n var themeName = (0, import_core.useThemeName)();\n var adaptContext = (0, import_adapt.useAdaptContext)(context.adaptScope);\n var isAdapted = (0, import_adapt.useAdaptIsActive)(context.adaptScope);\n var contents = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Theme, {\n name: themeName,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_context.ForwardSelectContext, {\n itemContext: itemParentContext,\n context,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_adapt.ProvideAdaptContext, {\n ...adaptContext,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectViewportFrame, {\n ...viewportProps,\n ref: forwardedRef,\n children\n })\n })\n })\n });\n if (!context.open) {\n if (context.lazyMount && context.renderValue) return null;\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SelectViewportFrame, {\n display: \"none\",\n children: contents\n });\n }\n return isAdapted ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_adapt.AdaptPortalContents, {\n scope: context.adaptScope,\n children: contents\n }) : contents;\n});\nSelectViewport.displayName = import_constants.VIEWPORT_NAME;\n//# sourceMappingURL=SelectViewport.native.js.map\n"],"mappings":";;;AACA,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,YAAY,QAAQ,QAAQ;CAC9B,KAAK,IAAI,QAAQ,KACf,UAAU,QAAQ,MAAM;EAAE,KAAK,IAAI;EAAO,YAAY;CAAK,CAAC;AAChE;AACA,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,gCAAgC,CAAC;AACrC,SAAS,+BAA+B;CACtC,sBAAsB;CACtB,2BAA2B;AAC7B,CAAC;AACD,OAAO,UAAU,aAAa,6BAA6B;AAC3D,IAAI,qBAAqB,QAAQ,mBAAmB;AACpD,IAAI,eAAe,QAAQ,gBAAgB;AAC3C,IAAI,cAAc,QAAQ,eAAe;AACzC,IAAI,mBAAmB,QAAQ,uBAAa;AAC5C,IAAI,iBAAiB,QAAQ,qBAAW;AACxC,IAAI,uBAAuB,GAAG,YAAY,OAAM,CAAE,YAAY,MAAM;CAClE,aAAa,iBAAiB;CAC9B,UAAU;AACZ,CAAC;AACD,IAAI,kBAAkB,GAAG,YAAY,gBAAe,CAAE,qBAAqB,SAAS,gBAAgB,OAAO,cAAc;CACvH,IAAI,EAAE,OAAO,UAAU,eAAe,gBAAgB,GAAG,kBAAkB;CAC3E,IAAI,WAAW,GAAG,eAAe,iBAAgB,CAAE,KAAK;CACxD,IAAI,qBAAqB,GAAG,eAAe,2BAA0B,CAAE,KAAK;CAC5E,IAAI,aAAa,GAAG,YAAY,aAAY,CAAE;CAC9C,IAAI,gBAAgB,GAAG,aAAa,gBAAe,CAAE,QAAQ,UAAU;CACvE,IAAI,aAAa,GAAG,aAAa,iBAAgB,CAAE,QAAQ,UAAU;CACrE,IAAI,WAA2B,iBAAC,GAAG,mBAAmB,IAAG,CAAE,YAAY,OAAO;EAC5E,MAAM;EACN,UAA0B,iBAAC,GAAG,mBAAmB,IAAG,CAAE,eAAe,sBAAsB;GACzF,aAAa;GACb;GACA,UAA0B,iBAAC,GAAG,mBAAmB,IAAG,CAAE,aAAa,qBAAqB;IACtF,GAAG;IACH,UAA0B,iBAAC,GAAG,mBAAmB,IAAG,CAAE,qBAAqB;KACzE,GAAG;KACH,KAAK;KACL;IACF,CAAC;GACH,CAAC;EACH,CAAC;CACH,CAAC;CACD,IAAI,CAAC,QAAQ,MAAM;EACjB,IAAI,QAAQ,aAAa,QAAQ,aAAa,OAAO;EACrD,OAAuB,iBAAC,GAAG,mBAAmB,IAAG,CAAE,qBAAqB;GACtE,SAAS;GACT,UAAU;EACZ,CAAC;CACH;CACA,OAAO,YAA4B,iBAAC,GAAG,mBAAmB,IAAG,CAAE,aAAa,qBAAqB;EAC/F,OAAO,QAAQ;EACf,UAAU;CACZ,CAAC,IAAI;AACP,CAAC;AACD,eAAe,cAAc,iBAAiB"}
|
|
@@ -47,13 +47,24 @@ function createSelectItemRegistry(onChange) {
|
|
|
47
47
|
const explicitTextValues = /* @__PURE__ */ new Map();
|
|
48
48
|
const itemNodes = /* @__PURE__ */ new Map();
|
|
49
49
|
const listeners = /* @__PURE__ */ new Set();
|
|
50
|
+
let indexByValue = null;
|
|
50
51
|
const notify = () => {
|
|
52
|
+
indexByValue = null;
|
|
51
53
|
onChange?.();
|
|
52
54
|
listeners.forEach((listener) => listener());
|
|
53
55
|
};
|
|
54
56
|
const getItems = () => items;
|
|
55
57
|
const getItem = (value) => items.find((item) => item.value === value);
|
|
56
|
-
const getIndex = (value) =>
|
|
58
|
+
const getIndex = (value) => {
|
|
59
|
+
if (!indexByValue) {
|
|
60
|
+
indexByValue = /* @__PURE__ */ new Map();
|
|
61
|
+
items.forEach((item, index) => {
|
|
62
|
+
if (!indexByValue.has(item.value)) indexByValue.set(item.value, index);
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
return indexByValue.get(value) ?? -1;
|
|
66
|
+
};
|
|
67
|
+
const getNodes = () => items.map((item) => itemNodes.get(item.id) ?? null);
|
|
57
68
|
const getRegisteredLabel = (value) => {
|
|
58
69
|
const registrations = labelRegistrations.get(value);
|
|
59
70
|
if (!registrations?.size) return void 0;
|
|
@@ -76,7 +87,6 @@ function createSelectItemRegistry(onChange) {
|
|
|
76
87
|
if (changed) notify();
|
|
77
88
|
};
|
|
78
89
|
const syncNodeOrder = () => {
|
|
79
|
-
const previousOrder = items.map((item) => item.id);
|
|
80
90
|
items.sort((a, b) => {
|
|
81
91
|
const aNode = itemNodes.get(a.id);
|
|
82
92
|
const bNode = itemNodes.get(b.id);
|
|
@@ -88,9 +98,6 @@ function createSelectItemRegistry(onChange) {
|
|
|
88
98
|
if (position & 2) return 1;
|
|
89
99
|
return 0;
|
|
90
100
|
});
|
|
91
|
-
if (items.some((item, index) => item.id !== previousOrder[index])) {
|
|
92
|
-
notify();
|
|
93
|
-
}
|
|
94
101
|
};
|
|
95
102
|
const registerItem = (item) => {
|
|
96
103
|
const id = Symbol(item.value);
|
|
@@ -130,12 +137,14 @@ function createSelectItemRegistry(onChange) {
|
|
|
130
137
|
notify();
|
|
131
138
|
},
|
|
132
139
|
setNode(node) {
|
|
140
|
+
if ((itemNodes.get(id) ?? null) === (node ?? null)) return;
|
|
133
141
|
if (node) {
|
|
134
142
|
itemNodes.set(id, node);
|
|
135
143
|
syncNodeOrder();
|
|
136
144
|
} else {
|
|
137
145
|
itemNodes.delete(id);
|
|
138
146
|
}
|
|
147
|
+
notify();
|
|
139
148
|
},
|
|
140
149
|
unregister() {
|
|
141
150
|
const index = items.findIndex((current) => current.id === id);
|
|
@@ -210,6 +219,7 @@ function createSelectItemRegistry(onChange) {
|
|
|
210
219
|
getItems,
|
|
211
220
|
getItem,
|
|
212
221
|
getIndex,
|
|
222
|
+
getNodes,
|
|
213
223
|
firstEnabledIndex,
|
|
214
224
|
nextEnabledIndex,
|
|
215
225
|
findTypeaheadIndex,
|
|
@@ -31,10 +31,6 @@ __export(selectionController_exports, {
|
|
|
31
31
|
selectedValuesFromSelection: () => selectedValuesFromSelection
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(selectionController_exports);
|
|
34
|
-
function _type_of(obj) {
|
|
35
|
-
"@swc/helpers - typeof";
|
|
36
|
-
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
37
|
-
}
|
|
38
34
|
function getSelectLabelText(label) {
|
|
39
35
|
if (typeof label === "string" || typeof label === "number") {
|
|
40
36
|
return String(label);
|
|
@@ -42,7 +38,7 @@ function getSelectLabelText(label) {
|
|
|
42
38
|
if (Array.isArray(label)) {
|
|
43
39
|
return label.map(getSelectLabelText).join("");
|
|
44
40
|
}
|
|
45
|
-
if (label &&
|
|
41
|
+
if (label && typeof label === "object" && "props" in label) {
|
|
46
42
|
var _label_props;
|
|
47
43
|
return getSelectLabelText((_label_props = label.props) === null || _label_props === void 0 ? void 0 : _label_props.children);
|
|
48
44
|
}
|
|
@@ -54,7 +50,9 @@ function createSelectItemRegistry(onChange) {
|
|
|
54
50
|
var explicitTextValues = /* @__PURE__ */ new Map();
|
|
55
51
|
var itemNodes = /* @__PURE__ */ new Map();
|
|
56
52
|
var listeners = /* @__PURE__ */ new Set();
|
|
53
|
+
var indexByValue = null;
|
|
57
54
|
var notify = function() {
|
|
55
|
+
indexByValue = null;
|
|
58
56
|
onChange === null || onChange === void 0 ? void 0 : onChange();
|
|
59
57
|
listeners.forEach(function(listener) {
|
|
60
58
|
return listener();
|
|
@@ -69,8 +67,19 @@ function createSelectItemRegistry(onChange) {
|
|
|
69
67
|
});
|
|
70
68
|
};
|
|
71
69
|
var getIndex = function(value) {
|
|
72
|
-
|
|
73
|
-
|
|
70
|
+
if (!indexByValue) {
|
|
71
|
+
indexByValue = /* @__PURE__ */ new Map();
|
|
72
|
+
items.forEach(function(item, index) {
|
|
73
|
+
if (!indexByValue.has(item.value)) indexByValue.set(item.value, index);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
var _indexByValue_get;
|
|
77
|
+
return (_indexByValue_get = indexByValue.get(value)) !== null && _indexByValue_get !== void 0 ? _indexByValue_get : -1;
|
|
78
|
+
};
|
|
79
|
+
var getNodes = function() {
|
|
80
|
+
return items.map(function(item) {
|
|
81
|
+
var _itemNodes_get;
|
|
82
|
+
return (_itemNodes_get = itemNodes.get(item.id)) !== null && _itemNodes_get !== void 0 ? _itemNodes_get : null;
|
|
74
83
|
});
|
|
75
84
|
};
|
|
76
85
|
var getRegisteredLabel = function(value) {
|
|
@@ -112,9 +121,6 @@ function createSelectItemRegistry(onChange) {
|
|
|
112
121
|
if (changed) notify();
|
|
113
122
|
};
|
|
114
123
|
var syncNodeOrder = function() {
|
|
115
|
-
var previousOrder = items.map(function(item) {
|
|
116
|
-
return item.id;
|
|
117
|
-
});
|
|
118
124
|
items.sort(function(a, b) {
|
|
119
125
|
var aNode = itemNodes.get(a.id);
|
|
120
126
|
var bNode = itemNodes.get(b.id);
|
|
@@ -126,11 +132,6 @@ function createSelectItemRegistry(onChange) {
|
|
|
126
132
|
if (position & 2) return 1;
|
|
127
133
|
return 0;
|
|
128
134
|
});
|
|
129
|
-
if (items.some(function(item, index) {
|
|
130
|
-
return item.id !== previousOrder[index];
|
|
131
|
-
})) {
|
|
132
|
-
notify();
|
|
133
|
-
}
|
|
134
135
|
};
|
|
135
136
|
var registerItem = function(item) {
|
|
136
137
|
var id = Symbol(item.value);
|
|
@@ -176,12 +177,15 @@ function createSelectItemRegistry(onChange) {
|
|
|
176
177
|
notify();
|
|
177
178
|
},
|
|
178
179
|
setNode(node) {
|
|
180
|
+
var _itemNodes_get;
|
|
181
|
+
if (((_itemNodes_get = itemNodes.get(id)) !== null && _itemNodes_get !== void 0 ? _itemNodes_get : null) === (node !== null && node !== void 0 ? node : null)) return;
|
|
179
182
|
if (node) {
|
|
180
183
|
itemNodes.set(id, node);
|
|
181
184
|
syncNodeOrder();
|
|
182
185
|
} else {
|
|
183
186
|
itemNodes.delete(id);
|
|
184
187
|
}
|
|
188
|
+
notify();
|
|
185
189
|
},
|
|
186
190
|
unregister() {
|
|
187
191
|
var index = items.findIndex(function(current) {
|
|
@@ -264,6 +268,7 @@ function createSelectItemRegistry(onChange) {
|
|
|
264
268
|
getItems,
|
|
265
269
|
getItem,
|
|
266
270
|
getIndex,
|
|
271
|
+
getNodes,
|
|
267
272
|
firstEnabledIndex,
|
|
268
273
|
nextEnabledIndex,
|
|
269
274
|
findTypeaheadIndex,
|
|
@@ -31,10 +31,6 @@ __export(selectionController_exports, {
|
|
|
31
31
|
selectedValuesFromSelection: () => selectedValuesFromSelection
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(selectionController_exports);
|
|
34
|
-
function _type_of(obj) {
|
|
35
|
-
"@swc/helpers - typeof";
|
|
36
|
-
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
37
|
-
}
|
|
38
34
|
function getSelectLabelText(label) {
|
|
39
35
|
if (typeof label === "string" || typeof label === "number") {
|
|
40
36
|
return String(label);
|
|
@@ -42,7 +38,7 @@ function getSelectLabelText(label) {
|
|
|
42
38
|
if (Array.isArray(label)) {
|
|
43
39
|
return label.map(getSelectLabelText).join("");
|
|
44
40
|
}
|
|
45
|
-
if (label &&
|
|
41
|
+
if (label && typeof label === "object" && "props" in label) {
|
|
46
42
|
var _label_props;
|
|
47
43
|
return getSelectLabelText((_label_props = label.props) === null || _label_props === void 0 ? void 0 : _label_props.children);
|
|
48
44
|
}
|
|
@@ -54,7 +50,9 @@ function createSelectItemRegistry(onChange) {
|
|
|
54
50
|
var explicitTextValues = /* @__PURE__ */ new Map();
|
|
55
51
|
var itemNodes = /* @__PURE__ */ new Map();
|
|
56
52
|
var listeners = /* @__PURE__ */ new Set();
|
|
53
|
+
var indexByValue = null;
|
|
57
54
|
var notify = function() {
|
|
55
|
+
indexByValue = null;
|
|
58
56
|
onChange === null || onChange === void 0 ? void 0 : onChange();
|
|
59
57
|
listeners.forEach(function(listener) {
|
|
60
58
|
return listener();
|
|
@@ -69,8 +67,19 @@ function createSelectItemRegistry(onChange) {
|
|
|
69
67
|
});
|
|
70
68
|
};
|
|
71
69
|
var getIndex = function(value) {
|
|
72
|
-
|
|
73
|
-
|
|
70
|
+
if (!indexByValue) {
|
|
71
|
+
indexByValue = /* @__PURE__ */ new Map();
|
|
72
|
+
items.forEach(function(item, index) {
|
|
73
|
+
if (!indexByValue.has(item.value)) indexByValue.set(item.value, index);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
var _indexByValue_get;
|
|
77
|
+
return (_indexByValue_get = indexByValue.get(value)) !== null && _indexByValue_get !== void 0 ? _indexByValue_get : -1;
|
|
78
|
+
};
|
|
79
|
+
var getNodes = function() {
|
|
80
|
+
return items.map(function(item) {
|
|
81
|
+
var _itemNodes_get;
|
|
82
|
+
return (_itemNodes_get = itemNodes.get(item.id)) !== null && _itemNodes_get !== void 0 ? _itemNodes_get : null;
|
|
74
83
|
});
|
|
75
84
|
};
|
|
76
85
|
var getRegisteredLabel = function(value) {
|
|
@@ -112,9 +121,6 @@ function createSelectItemRegistry(onChange) {
|
|
|
112
121
|
if (changed) notify();
|
|
113
122
|
};
|
|
114
123
|
var syncNodeOrder = function() {
|
|
115
|
-
var previousOrder = items.map(function(item) {
|
|
116
|
-
return item.id;
|
|
117
|
-
});
|
|
118
124
|
items.sort(function(a, b) {
|
|
119
125
|
var aNode = itemNodes.get(a.id);
|
|
120
126
|
var bNode = itemNodes.get(b.id);
|
|
@@ -126,11 +132,6 @@ function createSelectItemRegistry(onChange) {
|
|
|
126
132
|
if (position & 2) return 1;
|
|
127
133
|
return 0;
|
|
128
134
|
});
|
|
129
|
-
if (items.some(function(item, index) {
|
|
130
|
-
return item.id !== previousOrder[index];
|
|
131
|
-
})) {
|
|
132
|
-
notify();
|
|
133
|
-
}
|
|
134
135
|
};
|
|
135
136
|
var registerItem = function(item) {
|
|
136
137
|
var id = Symbol(item.value);
|
|
@@ -176,12 +177,15 @@ function createSelectItemRegistry(onChange) {
|
|
|
176
177
|
notify();
|
|
177
178
|
},
|
|
178
179
|
setNode(node) {
|
|
180
|
+
var _itemNodes_get;
|
|
181
|
+
if (((_itemNodes_get = itemNodes.get(id)) !== null && _itemNodes_get !== void 0 ? _itemNodes_get : null) === (node !== null && node !== void 0 ? node : null)) return;
|
|
179
182
|
if (node) {
|
|
180
183
|
itemNodes.set(id, node);
|
|
181
184
|
syncNodeOrder();
|
|
182
185
|
} else {
|
|
183
186
|
itemNodes.delete(id);
|
|
184
187
|
}
|
|
188
|
+
notify();
|
|
185
189
|
},
|
|
186
190
|
unregister() {
|
|
187
191
|
var index = items.findIndex(function(current) {
|
|
@@ -264,6 +268,7 @@ function createSelectItemRegistry(onChange) {
|
|
|
264
268
|
getItems,
|
|
265
269
|
getItem,
|
|
266
270
|
getIndex,
|
|
271
|
+
getNodes,
|
|
267
272
|
firstEnabledIndex,
|
|
268
273
|
nextEnabledIndex,
|
|
269
274
|
findTypeaheadIndex,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectionController.native.js","names":[],"sources":["cjs/selectionController.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar selectionController_exports = {};\n__export(selectionController_exports, {\n createSelectItemRegistry: () => createSelectItemRegistry,\n createSelectSelectionController: () => createSelectSelectionController,\n getSelectLabelText: () => getSelectLabelText,\n getSelectListboxProps: () => getSelectListboxProps,\n getSelectOptionProps: () => getSelectOptionProps,\n normalizeSelectSelection: () => normalizeSelectSelection,\n selectedValuesFromSelection: () => selectedValuesFromSelection\n});\nmodule.exports = __toCommonJS(selectionController_exports);\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nfunction getSelectLabelText(label) {\n if (typeof label === \"string\" || typeof label === \"number\") {\n return String(label);\n }\n if (Array.isArray(label)) {\n return label.map(getSelectLabelText).join(\"\");\n }\n if (label && (typeof label === \"undefined\" ? \"undefined\" : _type_of(label)) === \"object\" && \"props\" in label) {\n var _label_props;\n return getSelectLabelText((_label_props = label.props) === null || _label_props === void 0 ? void 0 : _label_props.children);\n }\n return \"\";\n}\nfunction createSelectItemRegistry(onChange) {\n var items = [];\n var labelRegistrations = /* @__PURE__ */ new Map();\n var explicitTextValues = /* @__PURE__ */ new Map();\n var itemNodes = /* @__PURE__ */ new Map();\n var listeners = /* @__PURE__ */ new Set();\n var notify = function() {\n onChange === null || onChange === void 0 ? void 0 : onChange();\n listeners.forEach(function(listener) {\n return listener();\n });\n };\n var getItems = function() {\n return items;\n };\n var getItem = function(value) {\n return items.find(function(item) {\n return item.value === value;\n });\n };\n var getIndex = function(value) {\n return items.findIndex(function(item) {\n return item.value === value;\n });\n };\n var getRegisteredLabel = function(value) {\n var registrations = labelRegistrations.get(value);\n if (!(registrations === null || registrations === void 0 ? void 0 : registrations.size)) return void 0;\n var values = Array.from(registrations.values());\n return values[values.length - 1];\n };\n var applyRegisteredLabel = function(value) {\n var registeredLabel = getRegisteredLabel(value);\n var changed = false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = items[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var item = _step.value;\n if (item.value !== value) continue;\n var nextLabel = registeredLabel === null || registeredLabel === void 0 ? void 0 : registeredLabel.label;\n var nextTextValue = explicitTextValues.get(item.id) || (registeredLabel === null || registeredLabel === void 0 ? void 0 : registeredLabel.textValue);\n if (item.label !== nextLabel || item.textValue !== nextTextValue) {\n item.label = nextLabel;\n item.textValue = nextTextValue;\n changed = true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (changed) notify();\n };\n var syncNodeOrder = function() {\n var previousOrder = items.map(function(item) {\n return item.id;\n });\n items.sort(function(a, b) {\n var aNode = itemNodes.get(a.id);\n var bNode = itemNodes.get(b.id);\n if (!aNode || !bNode || typeof aNode.compareDocumentPosition !== \"function\") {\n return 0;\n }\n var position = aNode.compareDocumentPosition(bNode);\n if (position & 4) return -1;\n if (position & 2) return 1;\n return 0;\n });\n if (items.some(function(item, index) {\n return item.id !== previousOrder[index];\n })) {\n notify();\n }\n };\n var registerItem = function(item) {\n var id = Symbol(item.value);\n var registeredLabel = getRegisteredLabel(item.value);\n var _item_textValue;\n var registeredItem = {\n ...item,\n ...registeredLabel,\n textValue: (_item_textValue = item.textValue) !== null && _item_textValue !== void 0 ? _item_textValue : registeredLabel === null || registeredLabel === void 0 ? void 0 : registeredLabel.textValue,\n id\n };\n explicitTextValues.set(id, item.textValue);\n items.push(registeredItem);\n notify();\n return {\n id,\n update(next) {\n var index = items.findIndex(function(current2) {\n return current2.id === id;\n });\n if (index < 0) return;\n var current = items[index];\n if (\"textValue\" in next) {\n explicitTextValues.set(id, next.textValue);\n }\n var nextItem = {\n ...current,\n ...next\n };\n if (next.value !== void 0 && next.value !== current.value) {\n var nextLabel = getRegisteredLabel(next.value);\n nextItem.label = nextLabel === null || nextLabel === void 0 ? void 0 : nextLabel.label;\n }\n var explicitTextValue = explicitTextValues.get(id);\n nextItem.textValue = explicitTextValue || getSelectLabelText(nextItem.label) || (nextItem.label ? nextItem.value : void 0);\n var changed = Object.entries(next).some(function(param) {\n var [key, value] = param;\n return current[key] !== value;\n });\n var textValueChanged = current.textValue !== nextItem.textValue;\n if (!changed && !textValueChanged) return;\n items[index] = nextItem;\n notify();\n },\n setNode(node) {\n if (node) {\n itemNodes.set(id, node);\n syncNodeOrder();\n } else {\n itemNodes.delete(id);\n }\n },\n unregister() {\n var index = items.findIndex(function(current) {\n return current.id === id;\n });\n if (index < 0) return;\n items.splice(index, 1);\n explicitTextValues.delete(id);\n itemNodes.delete(id);\n notify();\n }\n };\n };\n var registerLabel = function(value, label, textValue) {\n var id = Symbol(value);\n var normalizedTextValue = textValue || getSelectLabelText(label) || value;\n var _labelRegistrations_get;\n var registrations = (_labelRegistrations_get = labelRegistrations.get(value)) !== null && _labelRegistrations_get !== void 0 ? _labelRegistrations_get : (function() {\n var next = /* @__PURE__ */ new Map();\n labelRegistrations.set(value, next);\n return next;\n })();\n registrations.set(id, {\n label,\n textValue: normalizedTextValue\n });\n applyRegisteredLabel(value);\n return function() {\n registrations.delete(id);\n if (!registrations.size) {\n labelRegistrations.delete(value);\n }\n applyRegisteredLabel(value);\n };\n };\n var firstEnabledIndex = function() {\n return items.findIndex(function(item) {\n return !item.disabled;\n });\n };\n var nextEnabledIndex = function(fromIndex, direction) {\n if (!items.length) return -1;\n if (fromIndex == null || fromIndex < 0 || fromIndex >= items.length) {\n if (direction === 1) return firstEnabledIndex();\n for (var index = items.length - 1; index >= 0; index--) {\n if (!items[index].disabled) return index;\n }\n return -1;\n }\n for (var offset = 1; offset <= items.length; offset++) {\n var _items_index;\n var index1 = (fromIndex + direction * offset + items.length) % items.length;\n if (!((_items_index = items[index1]) === null || _items_index === void 0 ? void 0 : _items_index.disabled)) return index1;\n }\n return -1;\n };\n var findTypeaheadIndex = function(search, fromIndex) {\n var normalizedSearch = search.trim().toLocaleLowerCase();\n if (!normalizedSearch) return -1;\n var start = fromIndex == null || fromIndex < 0 ? -1 : fromIndex;\n for (var offset = 1; offset <= items.length; offset++) {\n var index = (start + offset) % items.length;\n var item = items[index];\n var label = item.textValue || getSelectLabelText(item.label) || item.value;\n if (!item.disabled && label.toLocaleLowerCase().startsWith(normalizedSearch)) {\n return index;\n }\n }\n return -1;\n };\n return {\n subscribe(listener) {\n listeners.add(listener);\n return function() {\n listeners.delete(listener);\n };\n },\n registerItem,\n registerLabel,\n getItems,\n getItem,\n getIndex,\n firstEnabledIndex,\n nextEnabledIndex,\n findTypeaheadIndex,\n getDisabledIndices: function() {\n return items.flatMap(function(item, index) {\n return item.disabled ? [\n index\n ] : [];\n });\n },\n getTypeaheadLabels: function() {\n return items.map(function(item) {\n return item.textValue || getSelectLabelText(item.label) || item.value;\n });\n }\n };\n}\nfunction normalizeSelectSelection(mode, value) {\n if (mode === \"single\") {\n return typeof value === \"string\" ? value : \"\";\n }\n var values = Array.isArray(value) ? value : [];\n return [\n ...new Set(values)\n ];\n}\nfunction selectedValuesFromSelection(mode, value) {\n var normalized = normalizeSelectSelection(mode, value);\n return mode === \"multiple\" ? normalized : normalized ? [\n normalized\n ] : [];\n}\nfunction createSelectSelectionController(param) {\n var { mode: initialMode, value: initialValue, registry } = param;\n var mode = initialMode;\n var value = normalizeSelectSelection(mode, initialValue);\n var activeIndex = null;\n var selectedValues = function() {\n return selectedValuesFromSelection(mode, value);\n };\n var setMode = function(nextMode) {\n if (mode === nextMode) return value;\n mode = nextMode;\n value = normalizeSelectSelection(mode, value);\n return value;\n };\n var setValue = function(nextValue) {\n value = normalizeSelectSelection(mode, nextValue);\n return value;\n };\n var isSelected = function(itemValue) {\n return selectedValues().includes(itemValue);\n };\n var toggle = function(itemValue) {\n var item = registry.getItem(itemValue);\n if (!item || item.disabled) return value;\n if (mode === \"single\") {\n value = itemValue;\n return value;\n }\n var current = selectedValues();\n value = current.includes(itemValue) ? current.filter(function(currentValue) {\n return currentValue !== itemValue;\n }) : [\n ...current,\n itemValue\n ];\n return value;\n };\n var selectionAnchor = function() {\n var values = selectedValues();\n for (var index = values.length - 1; index >= 0; index--) {\n var item = registry.getItem(values[index]);\n if (item) return item;\n }\n var firstEnabledIndex = registry.firstEnabledIndex();\n return firstEnabledIndex < 0 ? void 0 : registry.getItems()[firstEnabledIndex];\n };\n var selectionAnchorIndex = function() {\n var anchor = selectionAnchor();\n return anchor ? registry.getIndex(anchor.value) : -1;\n };\n var initialActiveIndex = function() {\n var anchorIndex = selectionAnchorIndex();\n var anchor = anchorIndex < 0 ? void 0 : registry.getItems()[anchorIndex];\n return anchor && !anchor.disabled ? anchorIndex : registry.firstEnabledIndex();\n };\n var moveActive = function(direction) {\n var nextIndex = registry.nextEnabledIndex(activeIndex, direction);\n activeIndex = nextIndex < 0 ? null : nextIndex;\n return activeIndex == null ? void 0 : registry.getItems()[activeIndex];\n };\n return {\n registry,\n get mode() {\n return mode;\n },\n get value() {\n return value;\n },\n get activeIndex() {\n return activeIndex;\n },\n get activeItem() {\n return activeIndex == null ? void 0 : registry.getItems()[activeIndex];\n },\n get shouldCloseOnSelect() {\n return mode === \"single\";\n },\n setMode,\n setValue,\n isSelected,\n toggle,\n selectionAnchor,\n selectionAnchorIndex,\n initialActiveIndex,\n setActiveIndex(index) {\n activeIndex = index;\n },\n moveActive\n };\n}\nfunction getSelectListboxProps(mode) {\n return {\n role: \"listbox\",\n \"aria-multiselectable\": mode === \"multiple\" ? true : void 0\n };\n}\nfunction getSelectOptionProps(mode, selected, disabled, platform) {\n if (platform === \"native\") {\n return {\n accessibilityRole: mode === \"multiple\" ? \"checkbox\" : \"button\",\n accessibilityState: {\n selected: mode === \"single\" ? selected : void 0,\n checked: mode === \"multiple\" ? selected : void 0,\n disabled\n }\n };\n }\n return {\n role: \"option\",\n \"aria-selected\": selected,\n \"aria-disabled\": disabled || void 0\n };\n}\n//# sourceMappingURL=selectionController.js.map\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"selectionController.native.js","names":[],"sources":["cjs/selectionController.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar selectionController_exports = {};\n__export(selectionController_exports, {\n createSelectItemRegistry: () => createSelectItemRegistry,\n createSelectSelectionController: () => createSelectSelectionController,\n getSelectLabelText: () => getSelectLabelText,\n getSelectListboxProps: () => getSelectListboxProps,\n getSelectOptionProps: () => getSelectOptionProps,\n normalizeSelectSelection: () => normalizeSelectSelection,\n selectedValuesFromSelection: () => selectedValuesFromSelection\n});\nmodule.exports = __toCommonJS(selectionController_exports);\nfunction getSelectLabelText(label) {\n if (typeof label === \"string\" || typeof label === \"number\") {\n return String(label);\n }\n if (Array.isArray(label)) {\n return label.map(getSelectLabelText).join(\"\");\n }\n if (label && typeof label === \"object\" && \"props\" in label) {\n var _label_props;\n return getSelectLabelText((_label_props = label.props) === null || _label_props === void 0 ? void 0 : _label_props.children);\n }\n return \"\";\n}\nfunction createSelectItemRegistry(onChange) {\n var items = [];\n var labelRegistrations = /* @__PURE__ */ new Map();\n var explicitTextValues = /* @__PURE__ */ new Map();\n var itemNodes = /* @__PURE__ */ new Map();\n var listeners = /* @__PURE__ */ new Set();\n var indexByValue = null;\n var notify = function() {\n indexByValue = null;\n onChange === null || onChange === void 0 ? void 0 : onChange();\n listeners.forEach(function(listener) {\n return listener();\n });\n };\n var getItems = function() {\n return items;\n };\n var getItem = function(value) {\n return items.find(function(item) {\n return item.value === value;\n });\n };\n var getIndex = function(value) {\n if (!indexByValue) {\n indexByValue = /* @__PURE__ */ new Map();\n items.forEach(function(item, index) {\n if (!indexByValue.has(item.value)) indexByValue.set(item.value, index);\n });\n }\n var _indexByValue_get;\n return (_indexByValue_get = indexByValue.get(value)) !== null && _indexByValue_get !== void 0 ? _indexByValue_get : -1;\n };\n var getNodes = function() {\n return items.map(function(item) {\n var _itemNodes_get;\n return (_itemNodes_get = itemNodes.get(item.id)) !== null && _itemNodes_get !== void 0 ? _itemNodes_get : null;\n });\n };\n var getRegisteredLabel = function(value) {\n var registrations = labelRegistrations.get(value);\n if (!(registrations === null || registrations === void 0 ? void 0 : registrations.size)) return void 0;\n var values = Array.from(registrations.values());\n return values[values.length - 1];\n };\n var applyRegisteredLabel = function(value) {\n var registeredLabel = getRegisteredLabel(value);\n var changed = false;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = items[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var item = _step.value;\n if (item.value !== value) continue;\n var nextLabel = registeredLabel === null || registeredLabel === void 0 ? void 0 : registeredLabel.label;\n var nextTextValue = explicitTextValues.get(item.id) || (registeredLabel === null || registeredLabel === void 0 ? void 0 : registeredLabel.textValue);\n if (item.label !== nextLabel || item.textValue !== nextTextValue) {\n item.label = nextLabel;\n item.textValue = nextTextValue;\n changed = true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (changed) notify();\n };\n var syncNodeOrder = function() {\n items.sort(function(a, b) {\n var aNode = itemNodes.get(a.id);\n var bNode = itemNodes.get(b.id);\n if (!aNode || !bNode || typeof aNode.compareDocumentPosition !== \"function\") {\n return 0;\n }\n var position = aNode.compareDocumentPosition(bNode);\n if (position & 4) return -1;\n if (position & 2) return 1;\n return 0;\n });\n };\n var registerItem = function(item) {\n var id = Symbol(item.value);\n var registeredLabel = getRegisteredLabel(item.value);\n var _item_textValue;\n var registeredItem = {\n ...item,\n ...registeredLabel,\n textValue: (_item_textValue = item.textValue) !== null && _item_textValue !== void 0 ? _item_textValue : registeredLabel === null || registeredLabel === void 0 ? void 0 : registeredLabel.textValue,\n id\n };\n explicitTextValues.set(id, item.textValue);\n items.push(registeredItem);\n notify();\n return {\n id,\n update(next) {\n var index = items.findIndex(function(current2) {\n return current2.id === id;\n });\n if (index < 0) return;\n var current = items[index];\n if (\"textValue\" in next) {\n explicitTextValues.set(id, next.textValue);\n }\n var nextItem = {\n ...current,\n ...next\n };\n if (next.value !== void 0 && next.value !== current.value) {\n var nextLabel = getRegisteredLabel(next.value);\n nextItem.label = nextLabel === null || nextLabel === void 0 ? void 0 : nextLabel.label;\n }\n var explicitTextValue = explicitTextValues.get(id);\n nextItem.textValue = explicitTextValue || getSelectLabelText(nextItem.label) || (nextItem.label ? nextItem.value : void 0);\n var changed = Object.entries(next).some(function(param) {\n var [key, value] = param;\n return current[key] !== value;\n });\n var textValueChanged = current.textValue !== nextItem.textValue;\n if (!changed && !textValueChanged) return;\n items[index] = nextItem;\n notify();\n },\n setNode(node) {\n var _itemNodes_get;\n if (((_itemNodes_get = itemNodes.get(id)) !== null && _itemNodes_get !== void 0 ? _itemNodes_get : null) === (node !== null && node !== void 0 ? node : null)) return;\n if (node) {\n itemNodes.set(id, node);\n syncNodeOrder();\n } else {\n itemNodes.delete(id);\n }\n notify();\n },\n unregister() {\n var index = items.findIndex(function(current) {\n return current.id === id;\n });\n if (index < 0) return;\n items.splice(index, 1);\n explicitTextValues.delete(id);\n itemNodes.delete(id);\n notify();\n }\n };\n };\n var registerLabel = function(value, label, textValue) {\n var id = Symbol(value);\n var normalizedTextValue = textValue || getSelectLabelText(label) || value;\n var _labelRegistrations_get;\n var registrations = (_labelRegistrations_get = labelRegistrations.get(value)) !== null && _labelRegistrations_get !== void 0 ? _labelRegistrations_get : (function() {\n var next = /* @__PURE__ */ new Map();\n labelRegistrations.set(value, next);\n return next;\n })();\n registrations.set(id, {\n label,\n textValue: normalizedTextValue\n });\n applyRegisteredLabel(value);\n return function() {\n registrations.delete(id);\n if (!registrations.size) {\n labelRegistrations.delete(value);\n }\n applyRegisteredLabel(value);\n };\n };\n var firstEnabledIndex = function() {\n return items.findIndex(function(item) {\n return !item.disabled;\n });\n };\n var nextEnabledIndex = function(fromIndex, direction) {\n if (!items.length) return -1;\n if (fromIndex == null || fromIndex < 0 || fromIndex >= items.length) {\n if (direction === 1) return firstEnabledIndex();\n for (var index = items.length - 1; index >= 0; index--) {\n if (!items[index].disabled) return index;\n }\n return -1;\n }\n for (var offset = 1; offset <= items.length; offset++) {\n var _items_index;\n var index1 = (fromIndex + direction * offset + items.length) % items.length;\n if (!((_items_index = items[index1]) === null || _items_index === void 0 ? void 0 : _items_index.disabled)) return index1;\n }\n return -1;\n };\n var findTypeaheadIndex = function(search, fromIndex) {\n var normalizedSearch = search.trim().toLocaleLowerCase();\n if (!normalizedSearch) return -1;\n var start = fromIndex == null || fromIndex < 0 ? -1 : fromIndex;\n for (var offset = 1; offset <= items.length; offset++) {\n var index = (start + offset) % items.length;\n var item = items[index];\n var label = item.textValue || getSelectLabelText(item.label) || item.value;\n if (!item.disabled && label.toLocaleLowerCase().startsWith(normalizedSearch)) {\n return index;\n }\n }\n return -1;\n };\n return {\n subscribe(listener) {\n listeners.add(listener);\n return function() {\n listeners.delete(listener);\n };\n },\n registerItem,\n registerLabel,\n getItems,\n getItem,\n getIndex,\n getNodes,\n firstEnabledIndex,\n nextEnabledIndex,\n findTypeaheadIndex,\n getDisabledIndices: function() {\n return items.flatMap(function(item, index) {\n return item.disabled ? [\n index\n ] : [];\n });\n },\n getTypeaheadLabels: function() {\n return items.map(function(item) {\n return item.textValue || getSelectLabelText(item.label) || item.value;\n });\n }\n };\n}\nfunction normalizeSelectSelection(mode, value) {\n if (mode === \"single\") {\n return typeof value === \"string\" ? value : \"\";\n }\n var values = Array.isArray(value) ? value : [];\n return [\n ...new Set(values)\n ];\n}\nfunction selectedValuesFromSelection(mode, value) {\n var normalized = normalizeSelectSelection(mode, value);\n return mode === \"multiple\" ? normalized : normalized ? [\n normalized\n ] : [];\n}\nfunction createSelectSelectionController(param) {\n var { mode: initialMode, value: initialValue, registry } = param;\n var mode = initialMode;\n var value = normalizeSelectSelection(mode, initialValue);\n var activeIndex = null;\n var selectedValues = function() {\n return selectedValuesFromSelection(mode, value);\n };\n var setMode = function(nextMode) {\n if (mode === nextMode) return value;\n mode = nextMode;\n value = normalizeSelectSelection(mode, value);\n return value;\n };\n var setValue = function(nextValue) {\n value = normalizeSelectSelection(mode, nextValue);\n return value;\n };\n var isSelected = function(itemValue) {\n return selectedValues().includes(itemValue);\n };\n var toggle = function(itemValue) {\n var item = registry.getItem(itemValue);\n if (!item || item.disabled) return value;\n if (mode === \"single\") {\n value = itemValue;\n return value;\n }\n var current = selectedValues();\n value = current.includes(itemValue) ? current.filter(function(currentValue) {\n return currentValue !== itemValue;\n }) : [\n ...current,\n itemValue\n ];\n return value;\n };\n var selectionAnchor = function() {\n var values = selectedValues();\n for (var index = values.length - 1; index >= 0; index--) {\n var item = registry.getItem(values[index]);\n if (item) return item;\n }\n var firstEnabledIndex = registry.firstEnabledIndex();\n return firstEnabledIndex < 0 ? void 0 : registry.getItems()[firstEnabledIndex];\n };\n var selectionAnchorIndex = function() {\n var anchor = selectionAnchor();\n return anchor ? registry.getIndex(anchor.value) : -1;\n };\n var initialActiveIndex = function() {\n var anchorIndex = selectionAnchorIndex();\n var anchor = anchorIndex < 0 ? void 0 : registry.getItems()[anchorIndex];\n return anchor && !anchor.disabled ? anchorIndex : registry.firstEnabledIndex();\n };\n var moveActive = function(direction) {\n var nextIndex = registry.nextEnabledIndex(activeIndex, direction);\n activeIndex = nextIndex < 0 ? null : nextIndex;\n return activeIndex == null ? void 0 : registry.getItems()[activeIndex];\n };\n return {\n registry,\n get mode() {\n return mode;\n },\n get value() {\n return value;\n },\n get activeIndex() {\n return activeIndex;\n },\n get activeItem() {\n return activeIndex == null ? void 0 : registry.getItems()[activeIndex];\n },\n get shouldCloseOnSelect() {\n return mode === \"single\";\n },\n setMode,\n setValue,\n isSelected,\n toggle,\n selectionAnchor,\n selectionAnchorIndex,\n initialActiveIndex,\n setActiveIndex(index) {\n activeIndex = index;\n },\n moveActive\n };\n}\nfunction getSelectListboxProps(mode) {\n return {\n role: \"listbox\",\n \"aria-multiselectable\": mode === \"multiple\" ? true : void 0\n };\n}\nfunction getSelectOptionProps(mode, selected, disabled, platform) {\n if (platform === \"native\") {\n return {\n accessibilityRole: mode === \"multiple\" ? \"checkbox\" : \"button\",\n accessibilityState: {\n selected: mode === \"single\" ? selected : void 0,\n checked: mode === \"multiple\" ? selected : void 0,\n disabled\n }\n };\n }\n return {\n role: \"option\",\n \"aria-selected\": selected,\n \"aria-disabled\": disabled || void 0\n };\n}\n//# sourceMappingURL=selectionController.js.map\n"],"mappings":"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"}
|
package/dist/esm/Select.mjs
CHANGED
|
@@ -23,6 +23,8 @@ const SelectValue = createStyledHOC(SelectValueFrame, function SelectValue2({ sc
|
|
|
23
23
|
const itemParentContext = useSelectItemParentContext(scope);
|
|
24
24
|
const composedRefs = useComposedRefs(forwardedRef, context.onValueNodeChange);
|
|
25
25
|
const isEmptyValue = context.selectedValues.length === 0;
|
|
26
|
+
const [, rerender] = React.useReducer((version) => version + 1, 0);
|
|
27
|
+
useIsomorphicLayoutEffect(() => itemParentContext.registry.subscribe(rerender), [itemParentContext.registry]);
|
|
26
28
|
const registeredValue = context.mode === "multiple" ? context.selectedValues.map((value, index) => /* @__PURE__ */ jsxs(React.Fragment, { children: [index > 0 ? ", " : null, itemParentContext.registry.getItem(value)?.label ?? value] }, value)) : itemParentContext.registry.getItem(context.selectedValues[0])?.label ?? context.value;
|
|
27
29
|
const children = childrenProp !== void 0 ? childrenProp : context.renderValue ? context.renderValue(context.value) : registeredValue;
|
|
28
30
|
const selectValueChildren = isEmptyValue ? placeholder ?? children : children;
|
|
@@ -62,7 +64,7 @@ const SelectIndicator = createStyledHOC(SelectIndicatorFrame, function SelectInd
|
|
|
62
64
|
const context = useSelectContext(scope);
|
|
63
65
|
const [layout, setLayout] = React.useState(null);
|
|
64
66
|
const rafRef = React.useRef(0);
|
|
65
|
-
|
|
67
|
+
useIsomorphicLayoutEffect(() => {
|
|
66
68
|
const update = (index) => {
|
|
67
69
|
if (typeof index !== "number") return;
|
|
68
70
|
cancelAnimationFrame(rafRef.current);
|
|
@@ -161,12 +163,14 @@ function SelectRoot(props) {
|
|
|
161
163
|
defaultProp: props.defaultOpen || false,
|
|
162
164
|
onChange: props.onOpenChange
|
|
163
165
|
});
|
|
166
|
+
const handleAdaptOpenChange = React.useCallback((nextOpen) => {
|
|
167
|
+
requestOpenChange(nextOpen, createChangeEventDetails(nextOpen ? "trigger-press" : "outside-press"));
|
|
168
|
+
}, [requestOpenChange]);
|
|
164
169
|
return /* @__PURE__ */ jsx(AdaptParent, {
|
|
165
170
|
scope: adaptScope,
|
|
171
|
+
adaptChildren: props.children,
|
|
166
172
|
open,
|
|
167
|
-
onOpenChange:
|
|
168
|
-
requestOpenChange(nextOpen, createChangeEventDetails(nextOpen ? "trigger-press" : "outside-press"));
|
|
169
|
-
}, [requestOpenChange]),
|
|
173
|
+
onOpenChange: handleAdaptOpenChange,
|
|
170
174
|
children: /* @__PURE__ */ jsx(SelectInner, {
|
|
171
175
|
...props,
|
|
172
176
|
scope: props.scope,
|
|
@@ -233,28 +237,32 @@ function SelectInner(props) {
|
|
|
233
237
|
controller.setValue(value);
|
|
234
238
|
React.useEffect(() => {}, [props.id, requestOpenChange]);
|
|
235
239
|
const activeIndexRef = React.useRef(null);
|
|
236
|
-
const [activeIndex, setActiveIndexState] = React.useState(null);
|
|
237
240
|
const [emitActiveIndex, activeIndexSubscribe] = useEmitter();
|
|
238
241
|
const selectedIndexRef = React.useRef(null);
|
|
242
|
+
const lastPointerRef = React.useRef({
|
|
243
|
+
x: -1,
|
|
244
|
+
y: -1
|
|
245
|
+
});
|
|
239
246
|
const listContentRef = React.useRef([]);
|
|
240
247
|
const listRef = React.useRef([]);
|
|
241
248
|
const [valueNode, setValueNode] = React.useState(null);
|
|
242
249
|
const selectedIndex = Math.max(0, controller.selectionAnchorIndex());
|
|
243
250
|
listContentRef.current = registry.getTypeaheadLabels();
|
|
244
|
-
|
|
251
|
+
const itemNodes = registry.getNodes();
|
|
252
|
+
listRef.current.length = itemNodes.length;
|
|
253
|
+
for (let i = 0; i < itemNodes.length; i++) listRef.current[i] = itemNodes[i];
|
|
245
254
|
useIsomorphicLayoutEffect(() => {
|
|
246
255
|
selectedIndexRef.current = selectedIndex;
|
|
247
256
|
});
|
|
248
257
|
const shouldRenderWebNative = isWeb && (native === true || native === "web" || Array.isArray(native) && native.includes("web"));
|
|
249
|
-
const
|
|
250
|
-
if (activeIndexRef.current
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
}
|
|
258
|
+
const setActiveIndex = React.useCallback((index, details) => {
|
|
259
|
+
if (activeIndexRef.current === index) return;
|
|
260
|
+
activeIndexRef.current = index;
|
|
261
|
+
controller.setActiveIndex(index);
|
|
262
|
+
emitActiveIndex(index);
|
|
263
|
+
if (typeof index === "number") {
|
|
264
|
+
const item = registry.getItems()[index];
|
|
265
|
+
if (item && details) onActiveChange?.(item.value, details);
|
|
258
266
|
}
|
|
259
267
|
}, [
|
|
260
268
|
controller,
|
|
@@ -262,10 +270,6 @@ function SelectInner(props) {
|
|
|
262
270
|
onActiveChange,
|
|
263
271
|
registry
|
|
264
272
|
]);
|
|
265
|
-
const setActiveIndex = React.useCallback((index, details) => {
|
|
266
|
-
setActiveIndexFast(index, details);
|
|
267
|
-
setActiveIndexState(index);
|
|
268
|
-
}, [setActiveIndexFast]);
|
|
269
273
|
const activeDetails = React.useCallback((reason, index, event) => ({
|
|
270
274
|
reason,
|
|
271
275
|
event,
|
|
@@ -308,10 +312,7 @@ function SelectInner(props) {
|
|
|
308
312
|
if (open) {
|
|
309
313
|
const nextIndex = controller.initialActiveIndex();
|
|
310
314
|
if (nextIndex >= 0) setActiveIndex(nextIndex, activeDetails("list-navigation", nextIndex));
|
|
311
|
-
} else
|
|
312
|
-
setActiveIndexFast(null);
|
|
313
|
-
setActiveIndexState(null);
|
|
314
|
-
}
|
|
315
|
+
} else setActiveIndex(null);
|
|
315
316
|
}, [
|
|
316
317
|
open,
|
|
317
318
|
selectedIndex,
|
|
@@ -357,7 +358,9 @@ function SelectInner(props) {
|
|
|
357
358
|
if (!details.isCanceled) controller.setValue(nextValue);
|
|
358
359
|
}, [controller, requestValueChange]),
|
|
359
360
|
shouldRenderWebNative,
|
|
360
|
-
|
|
361
|
+
setActiveIndex,
|
|
362
|
+
selectedIndex,
|
|
363
|
+
lastPointerRef,
|
|
361
364
|
listRef,
|
|
362
365
|
moveActive,
|
|
363
366
|
search,
|
|
@@ -371,15 +374,12 @@ function SelectInner(props) {
|
|
|
371
374
|
fallback: false,
|
|
372
375
|
valueNode,
|
|
373
376
|
onValueNodeChange: setValueNode,
|
|
374
|
-
activeIndex,
|
|
375
377
|
activeIndexRef,
|
|
376
378
|
selectedIndex,
|
|
377
379
|
setActiveIndex,
|
|
378
380
|
value,
|
|
379
381
|
mode,
|
|
380
382
|
selectedValues,
|
|
381
|
-
activeItem: activeIndex == null ? void 0 : registry.getItems()[activeIndex]?.value,
|
|
382
|
-
selectionAnchor: controller.selectionAnchor()?.value,
|
|
383
383
|
open,
|
|
384
384
|
native,
|
|
385
385
|
renderValue,
|
|
@@ -388,7 +388,6 @@ function SelectInner(props) {
|
|
|
388
388
|
activeIndexRef,
|
|
389
389
|
listContentRef,
|
|
390
390
|
selectedIndexRef,
|
|
391
|
-
setActiveIndexFast,
|
|
392
391
|
...props,
|
|
393
392
|
open,
|
|
394
393
|
value,
|