@okam/stack-ui 1.39.3 → 1.40.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.
Files changed (447) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/components/fields/ComboBox/components/ComboBoxButton.d.ts +3 -0
  3. package/components/fields/ComboBox/interface.d.ts +5 -1
  4. package/index.d.ts +1 -0
  5. package/index108.js +6 -1
  6. package/index108.mjs +29 -12
  7. package/index123.js +1 -1
  8. package/index123.mjs +1 -1
  9. package/index125.js +1 -1
  10. package/index125.mjs +2 -2
  11. package/index126.js +1 -1
  12. package/index126.mjs +1 -1
  13. package/index131.js +1 -1
  14. package/index131.mjs +1 -1
  15. package/index133.js +1 -1
  16. package/index133.mjs +4 -4
  17. package/index134.js +1 -1
  18. package/index134.mjs +3 -3
  19. package/index135.js +1 -1
  20. package/index135.mjs +1 -1
  21. package/index136.js +1 -1
  22. package/index136.mjs +1 -1
  23. package/index137.js +1 -1
  24. package/index137.mjs +3 -3
  25. package/index141.js +1 -1
  26. package/index141.mjs +13 -38
  27. package/index142.js +1 -2
  28. package/index142.mjs +38 -24
  29. package/index143.js +2 -1
  30. package/index143.mjs +23 -21
  31. package/index144.js +1 -1
  32. package/index144.mjs +21 -41
  33. package/index145.js +1 -1
  34. package/index145.mjs +42 -25
  35. package/index146.js +1 -1
  36. package/index146.mjs +25 -40
  37. package/index147.js +1 -2
  38. package/index147.mjs +39 -56
  39. package/index148.js +2 -1
  40. package/index148.mjs +57 -38
  41. package/index149.js +1 -1
  42. package/index149.mjs +34 -26
  43. package/index150.js +1 -2
  44. package/index150.mjs +30 -8
  45. package/index151.js +1 -1
  46. package/index151.mjs +7 -8
  47. package/index152.js +2 -1
  48. package/index152.mjs +10 -30
  49. package/index153.js +1 -1
  50. package/index153.mjs +30 -15
  51. package/index154.js +1 -1
  52. package/index154.mjs +13 -15
  53. package/index155.js +1 -2
  54. package/index155.mjs +16 -47
  55. package/index156.js +2 -1
  56. package/index156.mjs +46 -36
  57. package/index157.js +1 -1
  58. package/index157.mjs +36 -27
  59. package/index158.js +1 -1
  60. package/index158.mjs +27 -20
  61. package/index159.js +1 -1
  62. package/index159.mjs +18 -32
  63. package/index160.js +1 -1
  64. package/index160.mjs +35 -21
  65. package/index161.js +1 -1
  66. package/index161.mjs +21 -56
  67. package/index162.js +1 -1
  68. package/index162.mjs +57 -46
  69. package/index163.js +1 -2
  70. package/index163.mjs +11 -12
  71. package/index164.js +1 -2
  72. package/index164.mjs +46 -31
  73. package/index165.js +2 -1
  74. package/index165.mjs +12 -11
  75. package/index166.js +2 -1
  76. package/index166.mjs +31 -12
  77. package/index167.js +1 -1
  78. package/index167.mjs +11 -5
  79. package/index168.js +1 -2
  80. package/index168.mjs +5 -49
  81. package/index169.js +2 -1
  82. package/index169.mjs +46 -200
  83. package/index170.js +1 -1
  84. package/index170.mjs +122 -61
  85. package/index171.js +1 -1
  86. package/index171.mjs +26 -142
  87. package/index172.js +1 -1
  88. package/index172.mjs +69 -120
  89. package/index173.js +1 -1
  90. package/index173.mjs +370 -213
  91. package/index174.js +1 -1
  92. package/index174.mjs +44 -188
  93. package/index175.js +1 -1
  94. package/index175.mjs +4 -70
  95. package/index176.js +1 -1
  96. package/index176.mjs +21 -276
  97. package/index177.js +1 -1
  98. package/index177.mjs +45 -96
  99. package/index178.js +1 -1
  100. package/index178.mjs +4 -187
  101. package/index179.js +1 -1
  102. package/index179.mjs +24 -84
  103. package/index180.js +1 -1
  104. package/index180.mjs +12 -58
  105. package/index181.js +1 -1
  106. package/index181.mjs +4 -126
  107. package/index182.js +1 -1
  108. package/index182.mjs +14 -116
  109. package/index183.js +1 -1
  110. package/index183.mjs +38 -118
  111. package/index184.js +1 -1
  112. package/index184.mjs +55 -70
  113. package/index185.js +1 -1
  114. package/index185.mjs +39 -108
  115. package/index186.js +1 -1
  116. package/index186.mjs +26 -50
  117. package/index187.js +1 -1
  118. package/index187.mjs +30 -92
  119. package/index188.js +1 -1
  120. package/index188.mjs +13 -69
  121. package/index189.js +1 -1
  122. package/index189.mjs +10 -56
  123. package/index19.js +1 -1
  124. package/index19.mjs +3 -2
  125. package/index190.js +1 -1
  126. package/index190.mjs +27 -98
  127. package/index191.js +1 -5
  128. package/index191.mjs +8 -79
  129. package/index192.js +1 -1
  130. package/index192.mjs +6 -2025
  131. package/index193.js +1 -1
  132. package/index193.mjs +5 -59
  133. package/index194.js +1 -1
  134. package/index194.mjs +7 -188
  135. package/index195.js +1 -1
  136. package/index195.mjs +26 -122
  137. package/index196.js +1 -1
  138. package/index196.mjs +14 -23
  139. package/index197.js +1 -1
  140. package/index197.mjs +12 -72
  141. package/index198.js +1 -1
  142. package/index198.mjs +39 -377
  143. package/index199.js +1 -1
  144. package/index199.mjs +8 -46
  145. package/index20.js +1 -1
  146. package/index20.mjs +1 -1
  147. package/index200.js +1 -1
  148. package/index200.mjs +18 -4
  149. package/index201.js +1 -1
  150. package/index201.mjs +3 -25
  151. package/index202.js +1 -1
  152. package/index202.mjs +4 -47
  153. package/index203.js +1 -1
  154. package/index203.mjs +19 -5
  155. package/index204.js +1 -1
  156. package/index204.mjs +54 -24
  157. package/index205.js +1 -1
  158. package/index205.mjs +123 -11
  159. package/index206.js +1 -1
  160. package/index206.mjs +134 -4
  161. package/index207.js +1 -1
  162. package/index207.mjs +44 -14
  163. package/index208.js +1 -1
  164. package/index208.mjs +12 -40
  165. package/index209.js +1 -1
  166. package/index209.mjs +91 -53
  167. package/index210.js +1 -1
  168. package/index210.mjs +107 -42
  169. package/index211.js +1 -1
  170. package/index211.mjs +4 -28
  171. package/index212.js +1 -1
  172. package/index212.mjs +3 -31
  173. package/index213.js +1 -1
  174. package/index213.mjs +125 -14
  175. package/index214.js +1 -1
  176. package/index214.mjs +29 -10
  177. package/index215.js +1 -1
  178. package/index215.mjs +50 -27
  179. package/index216.js +1 -1
  180. package/index216.mjs +44 -9
  181. package/index217.js +1 -1
  182. package/index217.mjs +37 -6
  183. package/index218.js +1 -1
  184. package/index218.mjs +113 -5
  185. package/index219.js +1 -1
  186. package/index219.mjs +77 -7
  187. package/index220.js +1 -1
  188. package/index220.mjs +101 -29
  189. package/index221.js +1 -1
  190. package/index221.mjs +98 -19
  191. package/index222.js +1 -1
  192. package/index222.mjs +139 -12
  193. package/index223.js +1 -1
  194. package/index223.mjs +195 -41
  195. package/index224.js +1 -1
  196. package/index224.mjs +22 -8
  197. package/index225.js +1 -1
  198. package/index225.mjs +47 -15
  199. package/index226.js +1 -1
  200. package/index226.mjs +49 -3
  201. package/index227.js +1 -1
  202. package/index227.mjs +97 -4
  203. package/index228.js +1 -1
  204. package/index228.mjs +72 -20
  205. package/index229.js +1 -1
  206. package/index229.mjs +64 -50
  207. package/index230.js +1 -1
  208. package/index230.mjs +7 -124
  209. package/index231.js +1 -1
  210. package/index231.mjs +10 -133
  211. package/index232.js +1 -1
  212. package/index232.mjs +202 -43
  213. package/index233.js +1 -1
  214. package/index233.mjs +64 -14
  215. package/index234.js +1 -1
  216. package/index234.mjs +134 -86
  217. package/index235.js +1 -1
  218. package/index235.mjs +120 -102
  219. package/index236.js +1 -1
  220. package/index236.mjs +224 -4
  221. package/index237.js +1 -1
  222. package/index237.mjs +190 -3
  223. package/index238.js +1 -1
  224. package/index238.mjs +67 -123
  225. package/index239.js +1 -1
  226. package/index239.mjs +273 -23
  227. package/index24.js +1 -1
  228. package/index24.mjs +1 -1
  229. package/index240.js +1 -1
  230. package/index240.mjs +93 -46
  231. package/index241.js +1 -1
  232. package/index241.mjs +187 -43
  233. package/index242.js +1 -1
  234. package/index242.mjs +83 -36
  235. package/index243.js +1 -1
  236. package/index243.mjs +54 -109
  237. package/index244.js +1 -1
  238. package/index244.mjs +125 -76
  239. package/index245.js +1 -1
  240. package/index245.mjs +116 -101
  241. package/index246.js +1 -1
  242. package/index246.mjs +123 -98
  243. package/index247.js +1 -1
  244. package/index247.mjs +67 -135
  245. package/index248.js +1 -1
  246. package/index248.mjs +101 -188
  247. package/index249.js +1 -1
  248. package/index249.mjs +52 -22
  249. package/index25.js +1 -1
  250. package/index25.mjs +3 -3
  251. package/index250.js +1 -1
  252. package/index250.mjs +90 -46
  253. package/index251.js +1 -1
  254. package/index251.mjs +69 -47
  255. package/index252.js +1 -1
  256. package/index252.mjs +55 -96
  257. package/index253.js +1 -1
  258. package/index253.mjs +100 -72
  259. package/index254.js +5 -1
  260. package/index254.mjs +76 -64
  261. package/index255.js +1 -1
  262. package/index255.mjs +2025 -7
  263. package/index256.js +1 -1
  264. package/index256.mjs +59 -11
  265. package/index257.js +1 -1
  266. package/index257.mjs +188 -5
  267. package/index258.js +1 -1
  268. package/index258.mjs +5 -121
  269. package/index259.js +1 -1
  270. package/index259.mjs +121 -43
  271. package/index26.js +1 -1
  272. package/index26.mjs +1 -1
  273. package/index260.js +1 -1
  274. package/index260.mjs +43 -230
  275. package/index261.js +1 -1
  276. package/index261.mjs +226 -27
  277. package/index262.js +1 -1
  278. package/index262.mjs +30 -129
  279. package/index263.js +1 -1
  280. package/index263.mjs +3 -190
  281. package/index264.js +1 -1
  282. package/index264.mjs +4 -9
  283. package/index265.js +1 -1
  284. package/index265.mjs +5 -4
  285. package/index266.js +1 -1
  286. package/index266.mjs +5 -37
  287. package/index267.js +1 -1
  288. package/index267.mjs +5 -6
  289. package/index268.js +1 -1
  290. package/index268.mjs +5 -30
  291. package/index269.js +1 -1
  292. package/index269.mjs +5 -7
  293. package/index27.js +1 -1
  294. package/index27.mjs +1 -1
  295. package/index270.js +1 -1
  296. package/index270.mjs +5 -4
  297. package/index271.js +1 -1
  298. package/index271.mjs +5 -5
  299. package/index272.js +1 -1
  300. package/index272.mjs +4 -4
  301. package/index273.js +1 -1
  302. package/index273.mjs +4 -4
  303. package/index274.js +1 -1
  304. package/index274.mjs +1 -1
  305. package/index275.js +1 -1
  306. package/index275.mjs +1 -1
  307. package/index276.js +1 -1
  308. package/index276.mjs +4 -4
  309. package/index277.js +1 -1
  310. package/index277.mjs +4 -4
  311. package/index278.js +1 -1
  312. package/index278.mjs +1 -1
  313. package/index279.js +1 -1
  314. package/index279.mjs +1 -1
  315. package/index280.js +1 -1
  316. package/index280.mjs +4 -4
  317. package/index281.js +1 -1
  318. package/index281.mjs +4 -4
  319. package/index282.js +1 -1
  320. package/index282.mjs +4 -4
  321. package/index283.js +1 -1
  322. package/index283.mjs +4 -4
  323. package/index284.js +1 -1
  324. package/index284.mjs +1 -1
  325. package/index285.js +1 -1
  326. package/index285.mjs +4 -4
  327. package/index286.js +1 -1
  328. package/index286.mjs +4 -4
  329. package/index287.js +1 -1
  330. package/index287.mjs +4 -4
  331. package/index288.js +1 -1
  332. package/index288.mjs +1 -1
  333. package/index289.js +1 -1
  334. package/index289.mjs +4 -4
  335. package/index29.js +1 -1
  336. package/index29.mjs +3 -3
  337. package/index290.js +1 -1
  338. package/index290.mjs +4 -4
  339. package/index291.js +1 -1
  340. package/index291.mjs +1 -1
  341. package/index292.js +1 -1
  342. package/index292.mjs +4 -4
  343. package/index293.js +1 -1
  344. package/index293.mjs +4 -4
  345. package/index294.js +1 -1
  346. package/index294.mjs +4 -4
  347. package/index295.js +1 -1
  348. package/index295.mjs +4 -4
  349. package/index296.js +1 -1
  350. package/index296.mjs +4 -4
  351. package/index297.js +1 -1
  352. package/index297.mjs +4 -4
  353. package/index298.js +1 -1
  354. package/index298.mjs +1 -1
  355. package/index299.js +1 -1
  356. package/index299.mjs +130 -4
  357. package/index30.js +1 -1
  358. package/index30.mjs +3 -3
  359. package/index300.js +1 -1
  360. package/index300.mjs +191 -5
  361. package/index301.js +1 -1
  362. package/index301.mjs +10 -5
  363. package/index302.js +1 -1
  364. package/index302.mjs +4 -5
  365. package/index303.js +1 -1
  366. package/index303.mjs +37 -5
  367. package/index304.js +1 -1
  368. package/index304.mjs +6 -5
  369. package/index305.js +1 -1
  370. package/index305.mjs +30 -5
  371. package/index306.js +1 -1
  372. package/index306.mjs +6 -62
  373. package/index307.js +1 -1
  374. package/index307.mjs +63 -7
  375. package/index308.js +1 -1
  376. package/index308.mjs +25 -23
  377. package/index309.js +1 -1
  378. package/index309.mjs +7 -93
  379. package/index31.js +1 -1
  380. package/index31.mjs +3 -3
  381. package/index310.js +1 -1
  382. package/index310.mjs +24 -6
  383. package/index311.js +1 -1
  384. package/index311.mjs +90 -23
  385. package/index312.js +1 -1
  386. package/index312.mjs +8 -32
  387. package/index313.js +1 -1
  388. package/index313.mjs +25 -6
  389. package/index314.js +1 -1
  390. package/index314.mjs +33 -6
  391. package/index315.js +1 -1
  392. package/index315.mjs +6 -50
  393. package/index316.js +1 -1
  394. package/index316.mjs +6 -29
  395. package/index317.js +1 -1
  396. package/index317.mjs +50 -14
  397. package/index318.js +1 -1
  398. package/index318.mjs +14 -21
  399. package/index319.js +1 -1
  400. package/index319.mjs +20 -28
  401. package/index320.js +1 -1
  402. package/index320.mjs +27 -64
  403. package/index321.js +1 -1
  404. package/index321.mjs +66 -53
  405. package/index322.js +1 -1
  406. package/index322.mjs +53 -54
  407. package/index323.js +1 -1
  408. package/index323.mjs +54 -281
  409. package/index324.js +1 -1
  410. package/index324.mjs +281 -20
  411. package/index325.js +1 -1
  412. package/index325.mjs +20 -3
  413. package/index326.js +1 -1
  414. package/index326.mjs +3 -4
  415. package/index327.js +1 -1
  416. package/index327.mjs +4 -8
  417. package/index328.js +1 -1
  418. package/index328.mjs +7 -4
  419. package/index329.js +1 -1
  420. package/index329.mjs +164 -27
  421. package/index33.js +1 -1
  422. package/index33.mjs +1 -1
  423. package/index330.js +1 -1
  424. package/index330.mjs +27 -164
  425. package/index331.js +1 -0
  426. package/index331.mjs +8 -0
  427. package/index35.js +1 -1
  428. package/index35.mjs +2 -2
  429. package/index36.js +1 -1
  430. package/index36.mjs +1 -1
  431. package/index39.js +1 -1
  432. package/index39.mjs +1 -1
  433. package/index43.js +1 -1
  434. package/index43.mjs +1 -1
  435. package/index45.js +1 -1
  436. package/index45.mjs +3 -3
  437. package/index47.js +1 -1
  438. package/index47.mjs +2 -2
  439. package/index48.js +1 -1
  440. package/index48.mjs +1 -1
  441. package/index49.js +1 -1
  442. package/index49.mjs +81 -82
  443. package/index51.js +1 -1
  444. package/index51.mjs +1 -1
  445. package/index95.js +1 -1
  446. package/index95.mjs +1 -1
  447. package/package.json +1 -1
package/index323.mjs CHANGED
@@ -1,284 +1,57 @@
1
- import { Selection as n } from "./index328.mjs";
2
- import { compareNodeOrder as r, getFirstItem as d, getChildNodes as u } from "./index329.mjs";
3
- class h {
4
- /**
5
- * The type of selection that is allowed in the collection.
6
- */
7
- get selectionMode() {
8
- return this.state.selectionMode;
9
- }
10
- /**
11
- * Whether the collection allows empty selection.
12
- */
13
- get disallowEmptySelection() {
14
- return this.state.disallowEmptySelection;
15
- }
16
- /**
17
- * The selection behavior for the collection.
18
- */
19
- get selectionBehavior() {
20
- return this.state.selectionBehavior;
21
- }
22
- /**
23
- * Sets the selection behavior for the collection.
24
- */
25
- setSelectionBehavior(t) {
26
- this.state.setSelectionBehavior(t);
27
- }
28
- /**
29
- * Whether the collection is currently focused.
30
- */
31
- get isFocused() {
32
- return this.state.isFocused;
33
- }
34
- /**
35
- * Sets whether the collection is focused.
36
- */
37
- setFocused(t) {
38
- this.state.setFocused(t);
39
- }
40
- /**
41
- * The current focused key in the collection.
42
- */
43
- get focusedKey() {
44
- return this.state.focusedKey;
45
- }
46
- /** Whether the first or last child of the focused key should receive focus. */
47
- get childFocusStrategy() {
48
- return this.state.childFocusStrategy;
49
- }
50
- /**
51
- * Sets the focused key.
52
- */
53
- setFocusedKey(t, e) {
54
- (t == null || this.collection.getItem(t)) && this.state.setFocusedKey(t, e);
55
- }
56
- /**
57
- * The currently selected keys in the collection.
58
- */
59
- get selectedKeys() {
60
- return this.state.selectedKeys === "all" ? new Set(this.getSelectAllKeys()) : this.state.selectedKeys;
61
- }
62
- /**
63
- * The raw selection value for the collection.
64
- * Either 'all' for select all, or a set of keys.
65
- */
66
- get rawSelection() {
67
- return this.state.selectedKeys;
68
- }
69
- /**
70
- * Returns whether a key is selected.
71
- */
72
- isSelected(t) {
73
- if (this.state.selectionMode === "none") return !1;
74
- let e = this.getKey(t);
75
- return e == null ? !1 : this.state.selectedKeys === "all" ? this.canSelectItem(e) : this.state.selectedKeys.has(e);
76
- }
77
- /**
78
- * Whether the selection is empty.
79
- */
80
- get isEmpty() {
81
- return this.state.selectedKeys !== "all" && this.state.selectedKeys.size === 0;
82
- }
83
- /**
84
- * Whether all items in the collection are selected.
85
- */
86
- get isSelectAll() {
87
- if (this.isEmpty) return !1;
88
- if (this.state.selectedKeys === "all") return !0;
89
- if (this._isSelectAll != null) return this._isSelectAll;
90
- let t = this.getSelectAllKeys(), e = this.state.selectedKeys;
91
- return this._isSelectAll = t.every((l) => e.has(l)), this._isSelectAll;
92
- }
93
- get firstSelectedKey() {
94
- let t = null;
95
- for (let l of this.state.selectedKeys) {
96
- let s = this.collection.getItem(l);
97
- (!t || s && r(this.collection, s, t) < 0) && (t = s);
98
- }
99
- var e;
100
- return (e = t == null ? void 0 : t.key) !== null && e !== void 0 ? e : null;
101
- }
102
- get lastSelectedKey() {
103
- let t = null;
104
- for (let l of this.state.selectedKeys) {
105
- let s = this.collection.getItem(l);
106
- (!t || s && r(this.collection, s, t) > 0) && (t = s);
107
- }
108
- var e;
109
- return (e = t == null ? void 0 : t.key) !== null && e !== void 0 ? e : null;
110
- }
111
- get disabledKeys() {
112
- return this.state.disabledKeys;
113
- }
114
- get disabledBehavior() {
115
- return this.state.disabledBehavior;
116
- }
117
- /**
118
- * Extends the selection to the given key.
119
- */
120
- extendSelection(t) {
121
- if (this.selectionMode === "none") return;
122
- if (this.selectionMode === "single") {
123
- this.replaceSelection(t);
124
- return;
125
- }
126
- let e = this.getKey(t);
127
- if (e == null) return;
128
- let l;
129
- if (this.state.selectedKeys === "all") l = new n([
130
- e
131
- ], e, e);
132
- else {
133
- let i = this.state.selectedKeys;
134
- var s;
135
- let a = (s = i.anchorKey) !== null && s !== void 0 ? s : e;
136
- l = new n(i, a, e);
137
- var o;
138
- for (let c of this.getKeyRange(a, (o = i.currentKey) !== null && o !== void 0 ? o : e)) l.delete(c);
139
- for (let c of this.getKeyRange(e, a)) this.canSelectItem(c) && l.add(c);
140
- }
141
- this.state.setSelectedKeys(l);
142
- }
143
- getKeyRange(t, e) {
144
- let l = this.collection.getItem(t), s = this.collection.getItem(e);
145
- return l && s ? r(this.collection, l, s) <= 0 ? this.getKeyRangeInternal(t, e) : this.getKeyRangeInternal(e, t) : [];
146
- }
147
- getKeyRangeInternal(t, e) {
148
- var l;
149
- if (!((l = this.layoutDelegate) === null || l === void 0) && l.getKeyRange) return this.layoutDelegate.getKeyRange(t, e);
150
- let s = [], o = t;
151
- for (; o != null; ) {
152
- let i = this.collection.getItem(o);
153
- if (i && (i.type === "item" || i.type === "cell" && this.allowsCellSelection) && s.push(o), o === e) return s;
154
- o = this.collection.getKeyAfter(o);
155
- }
156
- return [];
157
- }
158
- getKey(t) {
159
- let e = this.collection.getItem(t);
160
- if (!e || e.type === "cell" && this.allowsCellSelection) return t;
161
- for (; e && e.type !== "item" && e.parentKey != null; ) e = this.collection.getItem(e.parentKey);
162
- return !e || e.type !== "item" ? null : e.key;
163
- }
164
- /**
165
- * Toggles whether the given key is selected.
166
- */
167
- toggleSelection(t) {
168
- if (this.selectionMode === "none") return;
169
- if (this.selectionMode === "single" && !this.isSelected(t)) {
170
- this.replaceSelection(t);
171
- return;
172
- }
173
- let e = this.getKey(t);
174
- if (e == null) return;
175
- let l = new n(this.state.selectedKeys === "all" ? this.getSelectAllKeys() : this.state.selectedKeys);
176
- l.has(e) ? l.delete(e) : this.canSelectItem(e) && (l.add(e), l.anchorKey = e, l.currentKey = e), !(this.disallowEmptySelection && l.size === 0) && this.state.setSelectedKeys(l);
177
- }
178
- /**
179
- * Replaces the selection with only the given key.
180
- */
181
- replaceSelection(t) {
182
- if (this.selectionMode === "none") return;
183
- let e = this.getKey(t);
184
- if (e == null) return;
185
- let l = this.canSelectItem(e) ? new n([
186
- e
187
- ], e, e) : new n();
188
- this.state.setSelectedKeys(l);
189
- }
190
- /**
191
- * Replaces the selection with the given keys.
192
- */
193
- setSelectedKeys(t) {
194
- if (this.selectionMode === "none") return;
195
- let e = new n();
196
- for (let l of t) {
197
- let s = this.getKey(l);
198
- if (s != null && (e.add(s), this.selectionMode === "single"))
199
- break;
200
- }
201
- this.state.setSelectedKeys(e);
202
- }
203
- getSelectAllKeys() {
204
- let t = [], e = (l) => {
205
- for (; l != null; ) {
206
- if (this.canSelectItem(l)) {
207
- var s;
208
- let i = this.collection.getItem(l);
209
- (i == null ? void 0 : i.type) === "item" && t.push(l);
210
- var o;
211
- i != null && i.hasChildNodes && (this.allowsCellSelection || i.type !== "item") && e((o = (s = d(u(i, this.collection))) === null || s === void 0 ? void 0 : s.key) !== null && o !== void 0 ? o : null);
212
- }
213
- l = this.collection.getKeyAfter(l);
214
- }
215
- };
216
- return e(this.collection.getFirstKey()), t;
217
- }
218
- /**
219
- * Selects all items in the collection.
220
- */
221
- selectAll() {
222
- !this.isSelectAll && this.selectionMode === "multiple" && this.state.setSelectedKeys("all");
223
- }
224
- /**
225
- * Removes all keys from the selection.
226
- */
227
- clearSelection() {
228
- !this.disallowEmptySelection && (this.state.selectedKeys === "all" || this.state.selectedKeys.size > 0) && this.state.setSelectedKeys(new n());
229
- }
230
- /**
231
- * Toggles between select all and an empty selection.
232
- */
233
- toggleSelectAll() {
234
- this.isSelectAll ? this.clearSelection() : this.selectAll();
235
- }
236
- select(t, e) {
237
- this.selectionMode !== "none" && (this.selectionMode === "single" ? this.isSelected(t) && !this.disallowEmptySelection ? this.toggleSelection(t) : this.replaceSelection(t) : this.selectionBehavior === "toggle" || e && (e.pointerType === "touch" || e.pointerType === "virtual") ? this.toggleSelection(t) : this.replaceSelection(t));
238
- }
239
- /**
240
- * Returns whether the current selection is equal to the given selection.
241
- */
242
- isSelectionEqual(t) {
243
- if (t === this.state.selectedKeys) return !0;
244
- let e = this.selectedKeys;
245
- if (t.size !== e.size) return !1;
246
- for (let l of t)
247
- if (!e.has(l)) return !1;
248
- for (let l of e)
249
- if (!t.has(l)) return !1;
250
- return !0;
251
- }
252
- canSelectItem(t) {
253
- var e;
254
- if (this.state.selectionMode === "none" || this.state.disabledKeys.has(t)) return !1;
255
- let l = this.collection.getItem(t);
256
- return !(!l || !(l == null || (e = l.props) === null || e === void 0) && e.isDisabled || l.type === "cell" && !this.allowsCellSelection);
257
- }
258
- isDisabled(t) {
259
- var e, l;
260
- return this.state.disabledBehavior === "all" && (this.state.disabledKeys.has(t) || !!(!((l = this.collection.getItem(t)) === null || l === void 0 || (e = l.props) === null || e === void 0) && e.isDisabled));
261
- }
262
- isLink(t) {
263
- var e, l;
264
- return !!(!((l = this.collection.getItem(t)) === null || l === void 0 || (e = l.props) === null || e === void 0) && e.href);
265
- }
266
- getItemProps(t) {
267
- var e;
268
- return (e = this.collection.getItem(t)) === null || e === void 0 ? void 0 : e.props;
269
- }
270
- withCollection(t) {
271
- return new h(t, this.state, {
272
- allowsCellSelection: this.allowsCellSelection,
273
- layoutDelegate: this.layoutDelegate || void 0
274
- });
275
- }
276
- constructor(t, e, l) {
277
- this.collection = t, this.state = e;
278
- var s;
279
- this.allowsCellSelection = (s = l == null ? void 0 : l.allowsCellSelection) !== null && s !== void 0 ? s : !1, this._isSelectAll = null, this.layoutDelegate = (l == null ? void 0 : l.layoutDelegate) || null;
280
- }
1
+ import { Selection as K } from "./index331.mjs";
2
+ import { useControlledState as M } from "./index171.mjs";
3
+ import { useRef as a, useState as r, useMemo as n, useEffect as x } from "react";
4
+ function R(e, s) {
5
+ if (e.size !== s.size) return !1;
6
+ for (let c of e)
7
+ if (!s.has(c)) return !1;
8
+ return !0;
9
+ }
10
+ function C(e) {
11
+ let { selectionMode: s = "none", disallowEmptySelection: c = !1, allowDuplicateSelectionEvents: v, selectionBehavior: l = "toggle", disabledBehavior: $ = "all" } = e, d = a(!1), [, h] = r(!1), u = a(null), f = a(null), [, m] = r(null), g = n(() => b(e.selectedKeys), [
12
+ e.selectedKeys
13
+ ]), w = n(() => b(e.defaultSelectedKeys, new K()), [
14
+ e.defaultSelectedKeys
15
+ ]), [o, B] = M(g, w, e.onSelectionChange), F = n(() => e.disabledKeys ? new Set(e.disabledKeys) : /* @__PURE__ */ new Set(), [
16
+ e.disabledKeys
17
+ ]), [S, i] = r(l);
18
+ l === "replace" && S === "toggle" && typeof o == "object" && o.size === 0 && i("replace");
19
+ let y = a(l);
20
+ return x(() => {
21
+ l !== y.current && (i(l), y.current = l);
22
+ }, [
23
+ l
24
+ ]), {
25
+ selectionMode: s,
26
+ disallowEmptySelection: c,
27
+ selectionBehavior: S,
28
+ setSelectionBehavior: i,
29
+ get isFocused() {
30
+ return d.current;
31
+ },
32
+ setFocused(t) {
33
+ d.current = t, h(t);
34
+ },
35
+ get focusedKey() {
36
+ return u.current;
37
+ },
38
+ get childFocusStrategy() {
39
+ return f.current;
40
+ },
41
+ setFocusedKey(t, E = "first") {
42
+ u.current = t, f.current = E, m(t);
43
+ },
44
+ selectedKeys: o,
45
+ setSelectedKeys(t) {
46
+ (v || !R(t, o)) && B(t);
47
+ },
48
+ disabledKeys: F,
49
+ disabledBehavior: $
50
+ };
51
+ }
52
+ function b(e, s) {
53
+ return e ? e === "all" ? "all" : new K(e) : s;
281
54
  }
282
55
  export {
283
- h as SelectionManager
56
+ C as useMultipleSelectionState
284
57
  };
package/index324.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("./index330.js"),n=require("react");function s(u,l,t){let i=n.useMemo(()=>new d.CollectionBuilder,[]),{children:r,items:o,collection:e}=u;return n.useMemo(()=>{if(e)return e;let c=i.build({children:r,items:o},t);return l(c)},[i,r,o,e,t,l])}exports.useCollection=s;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./index331.js"),c=require("./index330.js");class h{get selectionMode(){return this.state.selectionMode}get disallowEmptySelection(){return this.state.disallowEmptySelection}get selectionBehavior(){return this.state.selectionBehavior}setSelectionBehavior(t){this.state.setSelectionBehavior(t)}get isFocused(){return this.state.isFocused}setFocused(t){this.state.setFocused(t)}get focusedKey(){return this.state.focusedKey}get childFocusStrategy(){return this.state.childFocusStrategy}setFocusedKey(t,e){(t==null||this.collection.getItem(t))&&this.state.setFocusedKey(t,e)}get selectedKeys(){return this.state.selectedKeys==="all"?new Set(this.getSelectAllKeys()):this.state.selectedKeys}get rawSelection(){return this.state.selectedKeys}isSelected(t){if(this.state.selectionMode==="none")return!1;let e=this.getKey(t);return e==null?!1:this.state.selectedKeys==="all"?this.canSelectItem(e):this.state.selectedKeys.has(e)}get isEmpty(){return this.state.selectedKeys!=="all"&&this.state.selectedKeys.size===0}get isSelectAll(){if(this.isEmpty)return!1;if(this.state.selectedKeys==="all")return!0;if(this._isSelectAll!=null)return this._isSelectAll;let t=this.getSelectAllKeys(),e=this.state.selectedKeys;return this._isSelectAll=t.every(l=>e.has(l)),this._isSelectAll}get firstSelectedKey(){let t=null;for(let l of this.state.selectedKeys){let i=this.collection.getItem(l);(!t||i&&c.compareNodeOrder(this.collection,i,t)<0)&&(t=i)}var e;return(e=t==null?void 0:t.key)!==null&&e!==void 0?e:null}get lastSelectedKey(){let t=null;for(let l of this.state.selectedKeys){let i=this.collection.getItem(l);(!t||i&&c.compareNodeOrder(this.collection,i,t)>0)&&(t=i)}var e;return(e=t==null?void 0:t.key)!==null&&e!==void 0?e:null}get disabledKeys(){return this.state.disabledKeys}get disabledBehavior(){return this.state.disabledBehavior}extendSelection(t){if(this.selectionMode==="none")return;if(this.selectionMode==="single"){this.replaceSelection(t);return}let e=this.getKey(t);if(e==null)return;let l;if(this.state.selectedKeys==="all")l=new n.Selection([e],e,e);else{let s=this.state.selectedKeys;var i;let a=(i=s.anchorKey)!==null&&i!==void 0?i:e;l=new n.Selection(s,a,e);var o;for(let r of this.getKeyRange(a,(o=s.currentKey)!==null&&o!==void 0?o:e))l.delete(r);for(let r of this.getKeyRange(e,a))this.canSelectItem(r)&&l.add(r)}this.state.setSelectedKeys(l)}getKeyRange(t,e){let l=this.collection.getItem(t),i=this.collection.getItem(e);return l&&i?c.compareNodeOrder(this.collection,l,i)<=0?this.getKeyRangeInternal(t,e):this.getKeyRangeInternal(e,t):[]}getKeyRangeInternal(t,e){var l;if(!((l=this.layoutDelegate)===null||l===void 0)&&l.getKeyRange)return this.layoutDelegate.getKeyRange(t,e);let i=[],o=t;for(;o!=null;){let s=this.collection.getItem(o);if(s&&(s.type==="item"||s.type==="cell"&&this.allowsCellSelection)&&i.push(o),o===e)return i;o=this.collection.getKeyAfter(o)}return[]}getKey(t){let e=this.collection.getItem(t);if(!e||e.type==="cell"&&this.allowsCellSelection)return t;for(;e&&e.type!=="item"&&e.parentKey!=null;)e=this.collection.getItem(e.parentKey);return!e||e.type!=="item"?null:e.key}toggleSelection(t){if(this.selectionMode==="none")return;if(this.selectionMode==="single"&&!this.isSelected(t)){this.replaceSelection(t);return}let e=this.getKey(t);if(e==null)return;let l=new n.Selection(this.state.selectedKeys==="all"?this.getSelectAllKeys():this.state.selectedKeys);l.has(e)?l.delete(e):this.canSelectItem(e)&&(l.add(e),l.anchorKey=e,l.currentKey=e),!(this.disallowEmptySelection&&l.size===0)&&this.state.setSelectedKeys(l)}replaceSelection(t){if(this.selectionMode==="none")return;let e=this.getKey(t);if(e==null)return;let l=this.canSelectItem(e)?new n.Selection([e],e,e):new n.Selection;this.state.setSelectedKeys(l)}setSelectedKeys(t){if(this.selectionMode==="none")return;let e=new n.Selection;for(let l of t){let i=this.getKey(l);if(i!=null&&(e.add(i),this.selectionMode==="single"))break}this.state.setSelectedKeys(e)}getSelectAllKeys(){let t=[],e=l=>{for(;l!=null;){if(this.canSelectItem(l)){var i;let s=this.collection.getItem(l);(s==null?void 0:s.type)==="item"&&t.push(l);var o;s!=null&&s.hasChildNodes&&(this.allowsCellSelection||s.type!=="item")&&e((o=(i=c.getFirstItem(c.getChildNodes(s,this.collection)))===null||i===void 0?void 0:i.key)!==null&&o!==void 0?o:null)}l=this.collection.getKeyAfter(l)}};return e(this.collection.getFirstKey()),t}selectAll(){!this.isSelectAll&&this.selectionMode==="multiple"&&this.state.setSelectedKeys("all")}clearSelection(){!this.disallowEmptySelection&&(this.state.selectedKeys==="all"||this.state.selectedKeys.size>0)&&this.state.setSelectedKeys(new n.Selection)}toggleSelectAll(){this.isSelectAll?this.clearSelection():this.selectAll()}select(t,e){this.selectionMode!=="none"&&(this.selectionMode==="single"?this.isSelected(t)&&!this.disallowEmptySelection?this.toggleSelection(t):this.replaceSelection(t):this.selectionBehavior==="toggle"||e&&(e.pointerType==="touch"||e.pointerType==="virtual")?this.toggleSelection(t):this.replaceSelection(t))}isSelectionEqual(t){if(t===this.state.selectedKeys)return!0;let e=this.selectedKeys;if(t.size!==e.size)return!1;for(let l of t)if(!e.has(l))return!1;for(let l of e)if(!t.has(l))return!1;return!0}canSelectItem(t){var e;if(this.state.selectionMode==="none"||this.state.disabledKeys.has(t))return!1;let l=this.collection.getItem(t);return!(!l||!(l==null||(e=l.props)===null||e===void 0)&&e.isDisabled||l.type==="cell"&&!this.allowsCellSelection)}isDisabled(t){var e,l;return this.state.disabledBehavior==="all"&&(this.state.disabledKeys.has(t)||!!(!((l=this.collection.getItem(t))===null||l===void 0||(e=l.props)===null||e===void 0)&&e.isDisabled))}isLink(t){var e,l;return!!(!((l=this.collection.getItem(t))===null||l===void 0||(e=l.props)===null||e===void 0)&&e.href)}getItemProps(t){var e;return(e=this.collection.getItem(t))===null||e===void 0?void 0:e.props}withCollection(t){return new h(t,this.state,{allowsCellSelection:this.allowsCellSelection,layoutDelegate:this.layoutDelegate||void 0})}constructor(t,e,l){this.collection=t,this.state=e;var i;this.allowsCellSelection=(i=l==null?void 0:l.allowsCellSelection)!==null&&i!==void 0?i:!1,this._isSelectAll=null,this.layoutDelegate=(l==null?void 0:l.layoutDelegate)||null}}exports.SelectionManager=h;
package/index324.mjs CHANGED
@@ -1,23 +1,284 @@
1
- import { CollectionBuilder as u } from "./index330.mjs";
2
- import { useMemo as n } from "react";
3
- function b(d, l, r) {
4
- let t = n(() => new u(), []), { children: i, items: o, collection: e } = d;
5
- return n(() => {
6
- if (e) return e;
7
- let c = t.build({
8
- children: i,
9
- items: o
10
- }, r);
11
- return l(c);
12
- }, [
13
- t,
14
- i,
15
- o,
16
- e,
17
- r,
18
- l
19
- ]);
1
+ import { Selection as n } from "./index331.mjs";
2
+ import { compareNodeOrder as r, getFirstItem as d, getChildNodes as u } from "./index330.mjs";
3
+ class h {
4
+ /**
5
+ * The type of selection that is allowed in the collection.
6
+ */
7
+ get selectionMode() {
8
+ return this.state.selectionMode;
9
+ }
10
+ /**
11
+ * Whether the collection allows empty selection.
12
+ */
13
+ get disallowEmptySelection() {
14
+ return this.state.disallowEmptySelection;
15
+ }
16
+ /**
17
+ * The selection behavior for the collection.
18
+ */
19
+ get selectionBehavior() {
20
+ return this.state.selectionBehavior;
21
+ }
22
+ /**
23
+ * Sets the selection behavior for the collection.
24
+ */
25
+ setSelectionBehavior(t) {
26
+ this.state.setSelectionBehavior(t);
27
+ }
28
+ /**
29
+ * Whether the collection is currently focused.
30
+ */
31
+ get isFocused() {
32
+ return this.state.isFocused;
33
+ }
34
+ /**
35
+ * Sets whether the collection is focused.
36
+ */
37
+ setFocused(t) {
38
+ this.state.setFocused(t);
39
+ }
40
+ /**
41
+ * The current focused key in the collection.
42
+ */
43
+ get focusedKey() {
44
+ return this.state.focusedKey;
45
+ }
46
+ /** Whether the first or last child of the focused key should receive focus. */
47
+ get childFocusStrategy() {
48
+ return this.state.childFocusStrategy;
49
+ }
50
+ /**
51
+ * Sets the focused key.
52
+ */
53
+ setFocusedKey(t, e) {
54
+ (t == null || this.collection.getItem(t)) && this.state.setFocusedKey(t, e);
55
+ }
56
+ /**
57
+ * The currently selected keys in the collection.
58
+ */
59
+ get selectedKeys() {
60
+ return this.state.selectedKeys === "all" ? new Set(this.getSelectAllKeys()) : this.state.selectedKeys;
61
+ }
62
+ /**
63
+ * The raw selection value for the collection.
64
+ * Either 'all' for select all, or a set of keys.
65
+ */
66
+ get rawSelection() {
67
+ return this.state.selectedKeys;
68
+ }
69
+ /**
70
+ * Returns whether a key is selected.
71
+ */
72
+ isSelected(t) {
73
+ if (this.state.selectionMode === "none") return !1;
74
+ let e = this.getKey(t);
75
+ return e == null ? !1 : this.state.selectedKeys === "all" ? this.canSelectItem(e) : this.state.selectedKeys.has(e);
76
+ }
77
+ /**
78
+ * Whether the selection is empty.
79
+ */
80
+ get isEmpty() {
81
+ return this.state.selectedKeys !== "all" && this.state.selectedKeys.size === 0;
82
+ }
83
+ /**
84
+ * Whether all items in the collection are selected.
85
+ */
86
+ get isSelectAll() {
87
+ if (this.isEmpty) return !1;
88
+ if (this.state.selectedKeys === "all") return !0;
89
+ if (this._isSelectAll != null) return this._isSelectAll;
90
+ let t = this.getSelectAllKeys(), e = this.state.selectedKeys;
91
+ return this._isSelectAll = t.every((l) => e.has(l)), this._isSelectAll;
92
+ }
93
+ get firstSelectedKey() {
94
+ let t = null;
95
+ for (let l of this.state.selectedKeys) {
96
+ let s = this.collection.getItem(l);
97
+ (!t || s && r(this.collection, s, t) < 0) && (t = s);
98
+ }
99
+ var e;
100
+ return (e = t == null ? void 0 : t.key) !== null && e !== void 0 ? e : null;
101
+ }
102
+ get lastSelectedKey() {
103
+ let t = null;
104
+ for (let l of this.state.selectedKeys) {
105
+ let s = this.collection.getItem(l);
106
+ (!t || s && r(this.collection, s, t) > 0) && (t = s);
107
+ }
108
+ var e;
109
+ return (e = t == null ? void 0 : t.key) !== null && e !== void 0 ? e : null;
110
+ }
111
+ get disabledKeys() {
112
+ return this.state.disabledKeys;
113
+ }
114
+ get disabledBehavior() {
115
+ return this.state.disabledBehavior;
116
+ }
117
+ /**
118
+ * Extends the selection to the given key.
119
+ */
120
+ extendSelection(t) {
121
+ if (this.selectionMode === "none") return;
122
+ if (this.selectionMode === "single") {
123
+ this.replaceSelection(t);
124
+ return;
125
+ }
126
+ let e = this.getKey(t);
127
+ if (e == null) return;
128
+ let l;
129
+ if (this.state.selectedKeys === "all") l = new n([
130
+ e
131
+ ], e, e);
132
+ else {
133
+ let i = this.state.selectedKeys;
134
+ var s;
135
+ let a = (s = i.anchorKey) !== null && s !== void 0 ? s : e;
136
+ l = new n(i, a, e);
137
+ var o;
138
+ for (let c of this.getKeyRange(a, (o = i.currentKey) !== null && o !== void 0 ? o : e)) l.delete(c);
139
+ for (let c of this.getKeyRange(e, a)) this.canSelectItem(c) && l.add(c);
140
+ }
141
+ this.state.setSelectedKeys(l);
142
+ }
143
+ getKeyRange(t, e) {
144
+ let l = this.collection.getItem(t), s = this.collection.getItem(e);
145
+ return l && s ? r(this.collection, l, s) <= 0 ? this.getKeyRangeInternal(t, e) : this.getKeyRangeInternal(e, t) : [];
146
+ }
147
+ getKeyRangeInternal(t, e) {
148
+ var l;
149
+ if (!((l = this.layoutDelegate) === null || l === void 0) && l.getKeyRange) return this.layoutDelegate.getKeyRange(t, e);
150
+ let s = [], o = t;
151
+ for (; o != null; ) {
152
+ let i = this.collection.getItem(o);
153
+ if (i && (i.type === "item" || i.type === "cell" && this.allowsCellSelection) && s.push(o), o === e) return s;
154
+ o = this.collection.getKeyAfter(o);
155
+ }
156
+ return [];
157
+ }
158
+ getKey(t) {
159
+ let e = this.collection.getItem(t);
160
+ if (!e || e.type === "cell" && this.allowsCellSelection) return t;
161
+ for (; e && e.type !== "item" && e.parentKey != null; ) e = this.collection.getItem(e.parentKey);
162
+ return !e || e.type !== "item" ? null : e.key;
163
+ }
164
+ /**
165
+ * Toggles whether the given key is selected.
166
+ */
167
+ toggleSelection(t) {
168
+ if (this.selectionMode === "none") return;
169
+ if (this.selectionMode === "single" && !this.isSelected(t)) {
170
+ this.replaceSelection(t);
171
+ return;
172
+ }
173
+ let e = this.getKey(t);
174
+ if (e == null) return;
175
+ let l = new n(this.state.selectedKeys === "all" ? this.getSelectAllKeys() : this.state.selectedKeys);
176
+ l.has(e) ? l.delete(e) : this.canSelectItem(e) && (l.add(e), l.anchorKey = e, l.currentKey = e), !(this.disallowEmptySelection && l.size === 0) && this.state.setSelectedKeys(l);
177
+ }
178
+ /**
179
+ * Replaces the selection with only the given key.
180
+ */
181
+ replaceSelection(t) {
182
+ if (this.selectionMode === "none") return;
183
+ let e = this.getKey(t);
184
+ if (e == null) return;
185
+ let l = this.canSelectItem(e) ? new n([
186
+ e
187
+ ], e, e) : new n();
188
+ this.state.setSelectedKeys(l);
189
+ }
190
+ /**
191
+ * Replaces the selection with the given keys.
192
+ */
193
+ setSelectedKeys(t) {
194
+ if (this.selectionMode === "none") return;
195
+ let e = new n();
196
+ for (let l of t) {
197
+ let s = this.getKey(l);
198
+ if (s != null && (e.add(s), this.selectionMode === "single"))
199
+ break;
200
+ }
201
+ this.state.setSelectedKeys(e);
202
+ }
203
+ getSelectAllKeys() {
204
+ let t = [], e = (l) => {
205
+ for (; l != null; ) {
206
+ if (this.canSelectItem(l)) {
207
+ var s;
208
+ let i = this.collection.getItem(l);
209
+ (i == null ? void 0 : i.type) === "item" && t.push(l);
210
+ var o;
211
+ i != null && i.hasChildNodes && (this.allowsCellSelection || i.type !== "item") && e((o = (s = d(u(i, this.collection))) === null || s === void 0 ? void 0 : s.key) !== null && o !== void 0 ? o : null);
212
+ }
213
+ l = this.collection.getKeyAfter(l);
214
+ }
215
+ };
216
+ return e(this.collection.getFirstKey()), t;
217
+ }
218
+ /**
219
+ * Selects all items in the collection.
220
+ */
221
+ selectAll() {
222
+ !this.isSelectAll && this.selectionMode === "multiple" && this.state.setSelectedKeys("all");
223
+ }
224
+ /**
225
+ * Removes all keys from the selection.
226
+ */
227
+ clearSelection() {
228
+ !this.disallowEmptySelection && (this.state.selectedKeys === "all" || this.state.selectedKeys.size > 0) && this.state.setSelectedKeys(new n());
229
+ }
230
+ /**
231
+ * Toggles between select all and an empty selection.
232
+ */
233
+ toggleSelectAll() {
234
+ this.isSelectAll ? this.clearSelection() : this.selectAll();
235
+ }
236
+ select(t, e) {
237
+ this.selectionMode !== "none" && (this.selectionMode === "single" ? this.isSelected(t) && !this.disallowEmptySelection ? this.toggleSelection(t) : this.replaceSelection(t) : this.selectionBehavior === "toggle" || e && (e.pointerType === "touch" || e.pointerType === "virtual") ? this.toggleSelection(t) : this.replaceSelection(t));
238
+ }
239
+ /**
240
+ * Returns whether the current selection is equal to the given selection.
241
+ */
242
+ isSelectionEqual(t) {
243
+ if (t === this.state.selectedKeys) return !0;
244
+ let e = this.selectedKeys;
245
+ if (t.size !== e.size) return !1;
246
+ for (let l of t)
247
+ if (!e.has(l)) return !1;
248
+ for (let l of e)
249
+ if (!t.has(l)) return !1;
250
+ return !0;
251
+ }
252
+ canSelectItem(t) {
253
+ var e;
254
+ if (this.state.selectionMode === "none" || this.state.disabledKeys.has(t)) return !1;
255
+ let l = this.collection.getItem(t);
256
+ return !(!l || !(l == null || (e = l.props) === null || e === void 0) && e.isDisabled || l.type === "cell" && !this.allowsCellSelection);
257
+ }
258
+ isDisabled(t) {
259
+ var e, l;
260
+ return this.state.disabledBehavior === "all" && (this.state.disabledKeys.has(t) || !!(!((l = this.collection.getItem(t)) === null || l === void 0 || (e = l.props) === null || e === void 0) && e.isDisabled));
261
+ }
262
+ isLink(t) {
263
+ var e, l;
264
+ return !!(!((l = this.collection.getItem(t)) === null || l === void 0 || (e = l.props) === null || e === void 0) && e.href);
265
+ }
266
+ getItemProps(t) {
267
+ var e;
268
+ return (e = this.collection.getItem(t)) === null || e === void 0 ? void 0 : e.props;
269
+ }
270
+ withCollection(t) {
271
+ return new h(t, this.state, {
272
+ allowsCellSelection: this.allowsCellSelection,
273
+ layoutDelegate: this.layoutDelegate || void 0
274
+ });
275
+ }
276
+ constructor(t, e, l) {
277
+ this.collection = t, this.state = e;
278
+ var s;
279
+ this.allowsCellSelection = (s = l == null ? void 0 : l.allowsCellSelection) !== null && s !== void 0 ? s : !1, this._isSelectAll = null, this.layoutDelegate = (l == null ? void 0 : l.layoutDelegate) || null;
280
+ }
20
281
  }
21
282
  export {
22
- b as useCollection
283
+ h as SelectionManager
23
284
  };
package/index325.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function l(t,e){return e.get?e.get.call(t):e.value}exports._=l;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("./index329.js"),n=require("react");function s(u,l,t){let i=n.useMemo(()=>new d.CollectionBuilder,[]),{children:r,items:o,collection:e}=u;return n.useMemo(()=>{if(e)return e;let c=i.build({children:r,items:o},t);return l(c)},[i,r,o,e,t,l])}exports.useCollection=s;