@soxa-ui/plugins 0.0.0-stage → 0.3.0-beta.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 (630) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +125 -2
  3. package/dist/base/base.class.d.ts +54 -0
  4. package/dist/base/base.class.js +69 -0
  5. package/dist/base/bundle.class.d.ts +25 -0
  6. package/dist/base/bundle.class.js +68 -0
  7. package/dist/base/index.d.ts +3 -0
  8. package/dist/base/types.d.ts +147 -0
  9. package/dist/custom/accordion/header.d.ts +19 -0
  10. package/dist/custom/accordion/header.js +38 -0
  11. package/dist/custom/accordion/index.d.ts +2 -0
  12. package/dist/custom/accordion/item-ids/index.d.ts +1 -0
  13. package/dist/custom/accordion/item-ids/item-ids.plugin.d.ts +24 -0
  14. package/dist/custom/accordion/item-ids/item-ids.plugin.js +44 -0
  15. package/dist/custom/action/action.plugin.d.ts +178 -0
  16. package/dist/custom/action/action.plugin.js +339 -0
  17. package/dist/custom/action/index.d.ts +2 -0
  18. package/dist/custom/action/types.d.ts +65 -0
  19. package/dist/custom/calendar/ids/ids.plugin.d.ts +25 -0
  20. package/dist/custom/calendar/ids/ids.plugin.js +44 -0
  21. package/dist/custom/calendar/ids/index.d.ts +1 -0
  22. package/dist/custom/calendar/index.d.ts +5 -0
  23. package/dist/custom/calendar/keyboard/index.d.ts +2 -0
  24. package/dist/custom/calendar/keyboard/keyboard.plugin.d.ts +114 -0
  25. package/dist/custom/calendar/keyboard/keyboard.plugin.js +249 -0
  26. package/dist/custom/calendar/keyboard/types.d.ts +16 -0
  27. package/dist/custom/calendar/names/index.d.ts +1 -0
  28. package/dist/custom/calendar/names/names.plugin.d.ts +24 -0
  29. package/dist/custom/calendar/names/names.plugin.js +45 -0
  30. package/dist/custom/calendar/parts.d.ts +58 -0
  31. package/dist/custom/calendar/parts.js +119 -0
  32. package/dist/custom/calendar/pointer/index.d.ts +2 -0
  33. package/dist/custom/calendar/pointer/pointer.plugin.d.ts +58 -0
  34. package/dist/custom/calendar/pointer/pointer.plugin.js +144 -0
  35. package/dist/custom/calendar/pointer/types.d.ts +6 -0
  36. package/dist/custom/calendar/stop.d.ts +20 -0
  37. package/dist/custom/calendar/stop.js +32 -0
  38. package/dist/custom/calendar/types.d.ts +16 -0
  39. package/dist/custom/clearable/index.d.ts +1 -0
  40. package/dist/custom/clearable/names/index.d.ts +1 -0
  41. package/dist/custom/clearable/names/names.plugin.d.ts +24 -0
  42. package/dist/custom/clearable/names/names.plugin.js +29 -0
  43. package/dist/custom/collection/bundles.plugin.d.ts +55 -0
  44. package/dist/custom/collection/bundles.plugin.js +100 -0
  45. package/dist/custom/collection/collection-bundles-access.plugin.d.ts +29 -0
  46. package/dist/custom/collection/collection-bundles-access.plugin.js +44 -0
  47. package/dist/custom/collection/collection-elements.plugin.d.ts +55 -0
  48. package/dist/custom/collection/collection-elements.plugin.js +100 -0
  49. package/dist/custom/collection/index.d.ts +4 -0
  50. package/dist/custom/collection/leaving-focus.d.ts +119 -0
  51. package/dist/custom/collection/leaving-focus.js +164 -0
  52. package/dist/custom/collection/reachable.d.ts +14 -0
  53. package/dist/custom/collection/reachable.js +18 -0
  54. package/dist/custom/collection/types.d.ts +14 -0
  55. package/dist/custom/component-view/aria.plugin.d.ts +102 -0
  56. package/dist/custom/component-view/aria.plugin.js +190 -0
  57. package/dist/custom/component-view/index.d.ts +2 -0
  58. package/dist/custom/component-view/types.d.ts +62 -0
  59. package/dist/custom/date-input/clipboard/clipboard.plugin.d.ts +41 -0
  60. package/dist/custom/date-input/clipboard/clipboard.plugin.js +98 -0
  61. package/dist/custom/date-input/clipboard/index.d.ts +2 -0
  62. package/dist/custom/date-input/clipboard/types.d.ts +6 -0
  63. package/dist/custom/date-input/ids/ids.plugin.d.ts +21 -0
  64. package/dist/custom/date-input/ids/ids.plugin.js +28 -0
  65. package/dist/custom/date-input/ids/index.d.ts +1 -0
  66. package/dist/custom/date-input/index.d.ts +6 -0
  67. package/dist/custom/date-input/keyboard/index.d.ts +2 -0
  68. package/dist/custom/date-input/keyboard/keyboard.plugin.d.ts +54 -0
  69. package/dist/custom/date-input/keyboard/keyboard.plugin.js +154 -0
  70. package/dist/custom/date-input/keyboard/types.d.ts +9 -0
  71. package/dist/custom/date-input/parts.d.ts +49 -0
  72. package/dist/custom/date-input/parts.js +127 -0
  73. package/dist/custom/date-input/pointer/index.d.ts +2 -0
  74. package/dist/custom/date-input/pointer/pointer.plugin.d.ts +51 -0
  75. package/dist/custom/date-input/pointer/pointer.plugin.js +141 -0
  76. package/dist/custom/date-input/pointer/types.d.ts +6 -0
  77. package/dist/custom/date-input/touch/index.d.ts +2 -0
  78. package/dist/custom/date-input/touch/touch.plugin.d.ts +100 -0
  79. package/dist/custom/date-input/touch/touch.plugin.js +276 -0
  80. package/dist/custom/date-input/touch/types.d.ts +6 -0
  81. package/dist/custom/date-input/types.d.ts +6 -0
  82. package/dist/custom/date-picker/field.d.ts +20 -0
  83. package/dist/custom/date-picker/field.js +27 -0
  84. package/dist/custom/date-picker/focus/focus.plugin.d.ts +56 -0
  85. package/dist/custom/date-picker/focus/focus.plugin.js +81 -0
  86. package/dist/custom/date-picker/focus/index.d.ts +2 -0
  87. package/dist/custom/date-picker/focus/types.d.ts +3 -0
  88. package/dist/custom/date-picker/ids/ids.plugin.d.ts +19 -0
  89. package/dist/custom/date-picker/ids/ids.plugin.js +28 -0
  90. package/dist/custom/date-picker/ids/index.d.ts +1 -0
  91. package/dist/custom/date-picker/index.d.ts +5 -0
  92. package/dist/custom/date-picker/names/index.d.ts +2 -0
  93. package/dist/custom/date-picker/names/names.plugin.d.ts +33 -0
  94. package/dist/custom/date-picker/names/names.plugin.js +80 -0
  95. package/dist/custom/date-picker/names/types.d.ts +12 -0
  96. package/dist/custom/date-picker/trigger/index.d.ts +2 -0
  97. package/dist/custom/date-picker/trigger/trigger.plugin.d.ts +37 -0
  98. package/dist/custom/date-picker/trigger/trigger.plugin.js +69 -0
  99. package/dist/custom/date-picker/trigger/types.d.ts +3 -0
  100. package/dist/custom/dialog/ids/ids.plugin.d.ts +15 -0
  101. package/dist/custom/dialog/ids/ids.plugin.js +28 -0
  102. package/dist/custom/dialog/ids/index.d.ts +1 -0
  103. package/dist/custom/dialog/index.d.ts +3 -0
  104. package/dist/custom/dialog/layout/index.d.ts +3 -0
  105. package/dist/custom/dialog/layout/layout.plugin.d.ts +42 -0
  106. package/dist/custom/dialog/layout/layout.plugin.js +78 -0
  107. package/dist/custom/dialog/layout/offset-event.d.ts +35 -0
  108. package/dist/custom/dialog/layout/offset-event.js +44 -0
  109. package/dist/custom/dialog/layout/types.d.ts +12 -0
  110. package/dist/custom/dialog/names/index.d.ts +1 -0
  111. package/dist/custom/dialog/names/names.plugin.d.ts +13 -0
  112. package/dist/custom/dialog/names/names.plugin.js +17 -0
  113. package/dist/custom/dismiss/dismiss.plugin.d.ts +174 -0
  114. package/dist/custom/dismiss/dismiss.plugin.js +287 -0
  115. package/dist/custom/dismiss/index.d.ts +2 -0
  116. package/dist/custom/dismiss/types.d.ts +59 -0
  117. package/dist/custom/drag-and-drop/drag.plugin.d.ts +87 -0
  118. package/dist/custom/drag-and-drop/drag.plugin.js +310 -0
  119. package/dist/custom/drag-and-drop/index.d.ts +2 -0
  120. package/dist/custom/drag-and-drop/types.d.ts +13 -0
  121. package/dist/custom/drawer/index.d.ts +1 -0
  122. package/dist/custom/drawer/layout/index.d.ts +2 -0
  123. package/dist/custom/drawer/layout/layout.plugin.d.ts +17 -0
  124. package/dist/custom/drawer/layout/layout.plugin.js +22 -0
  125. package/dist/custom/drawer/layout/types.d.ts +3 -0
  126. package/dist/custom/element/element.plugin.d.ts +35 -0
  127. package/dist/custom/element/element.plugin.js +58 -0
  128. package/dist/custom/element/index.d.ts +2 -0
  129. package/dist/custom/element/types.d.ts +18 -0
  130. package/dist/custom/field/ids/ids.plugin.d.ts +64 -0
  131. package/dist/custom/field/ids/ids.plugin.js +126 -0
  132. package/dist/custom/field/ids/index.d.ts +2 -0
  133. package/dist/custom/field/ids/types.d.ts +28 -0
  134. package/dist/custom/field/index.d.ts +1 -0
  135. package/dist/custom/frame/anchor/anchor.plugin.d.ts +483 -0
  136. package/dist/custom/frame/anchor/anchor.plugin.js +820 -0
  137. package/dist/custom/frame/anchor/index.d.ts +2 -0
  138. package/dist/custom/frame/anchor/types.d.ts +83 -0
  139. package/dist/custom/frame/index.d.ts +2 -0
  140. package/dist/custom/frame/layout/index.d.ts +2 -0
  141. package/dist/custom/frame/layout/layout.plugin.d.ts +24 -0
  142. package/dist/custom/frame/layout/layout.plugin.js +65 -0
  143. package/dist/custom/frame/layout/types.d.ts +5 -0
  144. package/dist/custom/icon/index.d.ts +2 -0
  145. package/dist/custom/icon/layout.plugin.d.ts +21 -0
  146. package/dist/custom/icon/layout.plugin.js +51 -0
  147. package/dist/custom/icon/types.d.ts +5 -0
  148. package/dist/custom/id/id.plugin.d.ts +32 -0
  149. package/dist/custom/id/id.plugin.js +42 -0
  150. package/dist/custom/id/index.d.ts +2 -0
  151. package/dist/custom/id/types.d.ts +6 -0
  152. package/dist/custom/index.d.ts +42 -0
  153. package/dist/custom/input/field.d.ts +16 -0
  154. package/dist/custom/input/field.js +27 -0
  155. package/dist/custom/input/index.d.ts +3 -0
  156. package/dist/custom/input/input.plugin.d.ts +12 -0
  157. package/dist/custom/input/input.plugin.js +46 -0
  158. package/dist/custom/input/types.d.ts +2 -0
  159. package/dist/custom/input-bool/index.d.ts +2 -0
  160. package/dist/custom/input-bool/input-bool.plugin.d.ts +30 -0
  161. package/dist/custom/input-bool/input-bool.plugin.js +77 -0
  162. package/dist/custom/input-bool/types.d.ts +5 -0
  163. package/dist/custom/input-control/index.d.ts +2 -0
  164. package/dist/custom/input-control/input-control.plugin.d.ts +12 -0
  165. package/dist/custom/input-control/input-control.plugin.js +40 -0
  166. package/dist/custom/input-control/types.d.ts +2 -0
  167. package/dist/custom/item-group/ids/ids.plugin.d.ts +19 -0
  168. package/dist/custom/item-group/ids/ids.plugin.js +32 -0
  169. package/dist/custom/item-group/ids/index.d.ts +1 -0
  170. package/dist/custom/item-group/index.d.ts +1 -0
  171. package/dist/custom/label/index.d.ts +1 -0
  172. package/dist/custom/label/nested-warn/index.d.ts +1 -0
  173. package/dist/custom/label/nested-warn/nested-warn.plugin.d.ts +21 -0
  174. package/dist/custom/label/nested-warn/nested-warn.plugin.js +41 -0
  175. package/dist/custom/list/height/height.plugin.d.ts +129 -0
  176. package/dist/custom/list/height/height.plugin.js +272 -0
  177. package/dist/custom/list/height/index.d.ts +2 -0
  178. package/dist/custom/list/height/types.d.ts +10 -0
  179. package/dist/custom/list/index.d.ts +7 -0
  180. package/dist/custom/list/item/index.d.ts +2 -0
  181. package/dist/custom/list/item/item.plugin.d.ts +25 -0
  182. package/dist/custom/list/item/item.plugin.js +46 -0
  183. package/dist/custom/list/item/types.d.ts +5 -0
  184. package/dist/custom/list/keyboard/index.d.ts +2 -0
  185. package/dist/custom/list/keyboard/keyboard.plugin.d.ts +133 -0
  186. package/dist/custom/list/keyboard/keyboard.plugin.js +199 -0
  187. package/dist/custom/list/keyboard/types.d.ts +3 -0
  188. package/dist/custom/list/navigation/index.d.ts +2 -0
  189. package/dist/custom/list/navigation/navigation.plugin.d.ts +262 -0
  190. package/dist/custom/list/navigation/navigation.plugin.js +402 -0
  191. package/dist/custom/list/navigation/types.d.ts +25 -0
  192. package/dist/custom/list/newly-selected.d.ts +17 -0
  193. package/dist/custom/list/newly-selected.js +22 -0
  194. package/dist/custom/list/option-ids/index.d.ts +1 -0
  195. package/dist/custom/list/option-ids/option-ids.plugin.d.ts +29 -0
  196. package/dist/custom/list/option-ids/option-ids.plugin.js +43 -0
  197. package/dist/custom/list/row.d.ts +50 -0
  198. package/dist/custom/list/row.js +99 -0
  199. package/dist/custom/list/scroll/index.d.ts +2 -0
  200. package/dist/custom/list/scroll/scroll.plugin.d.ts +132 -0
  201. package/dist/custom/list/scroll/scroll.plugin.js +286 -0
  202. package/dist/custom/list/scroll/types.d.ts +21 -0
  203. package/dist/custom/list/typeahead.d.ts +53 -0
  204. package/dist/custom/list/typeahead.js +58 -0
  205. package/dist/custom/menu/focus/focus.plugin.d.ts +61 -0
  206. package/dist/custom/menu/focus/focus.plugin.js +105 -0
  207. package/dist/custom/menu/focus/index.d.ts +2 -0
  208. package/dist/custom/menu/focus/types.d.ts +2 -0
  209. package/dist/custom/menu/hover/hover.plugin.d.ts +99 -0
  210. package/dist/custom/menu/hover/hover.plugin.js +235 -0
  211. package/dist/custom/menu/hover/index.d.ts +2 -0
  212. package/dist/custom/menu/hover/types.d.ts +2 -0
  213. package/dist/custom/menu/ids/ids.plugin.d.ts +29 -0
  214. package/dist/custom/menu/ids/ids.plugin.js +46 -0
  215. package/dist/custom/menu/ids/index.d.ts +1 -0
  216. package/dist/custom/menu/index.d.ts +11 -0
  217. package/dist/custom/menu/keyboard/index.d.ts +2 -0
  218. package/dist/custom/menu/keyboard/keyboard.plugin.d.ts +41 -0
  219. package/dist/custom/menu/keyboard/keyboard.plugin.js +68 -0
  220. package/dist/custom/menu/keyboard/types.d.ts +2 -0
  221. package/dist/custom/menu/navigation/index.d.ts +2 -0
  222. package/dist/custom/menu/navigation/navigation.plugin.d.ts +116 -0
  223. package/dist/custom/menu/navigation/navigation.plugin.js +222 -0
  224. package/dist/custom/menu/navigation/types.d.ts +2 -0
  225. package/dist/custom/menu/nested-layer.d.ts +13 -0
  226. package/dist/custom/menu/nested-layer.js +20 -0
  227. package/dist/custom/menu/pointer/index.d.ts +2 -0
  228. package/dist/custom/menu/pointer/pointer.plugin.d.ts +45 -0
  229. package/dist/custom/menu/pointer/pointer.plugin.js +95 -0
  230. package/dist/custom/menu/pointer/strategies/context.strategy.d.ts +70 -0
  231. package/dist/custom/menu/pointer/strategies/context.strategy.js +170 -0
  232. package/dist/custom/menu/pointer/strategies/index.d.ts +3 -0
  233. package/dist/custom/menu/pointer/strategies/press.strategy.d.ts +23 -0
  234. package/dist/custom/menu/pointer/strategies/press.strategy.js +33 -0
  235. package/dist/custom/menu/pointer/strategies/types.d.ts +49 -0
  236. package/dist/custom/menu/pointer/types.d.ts +2 -0
  237. package/dist/custom/menu/popover-item-focus/focus.plugin.d.ts +54 -0
  238. package/dist/custom/menu/popover-item-focus/focus.plugin.js +70 -0
  239. package/dist/custom/menu/popover-item-focus/index.d.ts +2 -0
  240. package/dist/custom/menu/popover-item-focus/types.d.ts +10 -0
  241. package/dist/custom/menu/popover-item-keyboard/index.d.ts +2 -0
  242. package/dist/custom/menu/popover-item-keyboard/keyboard.plugin.d.ts +43 -0
  243. package/dist/custom/menu/popover-item-keyboard/keyboard.plugin.js +79 -0
  244. package/dist/custom/menu/popover-item-keyboard/types.d.ts +2 -0
  245. package/dist/custom/menu/popup-ids/ids.plugin.d.ts +27 -0
  246. package/dist/custom/menu/popup-ids/ids.plugin.js +47 -0
  247. package/dist/custom/menu/popup-ids/index.d.ts +1 -0
  248. package/dist/custom/menu/submenu-focus/focus.plugin.d.ts +53 -0
  249. package/dist/custom/menu/submenu-focus/focus.plugin.js +84 -0
  250. package/dist/custom/menu/submenu-focus/index.d.ts +2 -0
  251. package/dist/custom/menu/submenu-focus/types.d.ts +10 -0
  252. package/dist/custom/menu/submenu-keyboard/index.d.ts +2 -0
  253. package/dist/custom/menu/submenu-keyboard/keyboard.plugin.d.ts +43 -0
  254. package/dist/custom/menu/submenu-keyboard/keyboard.plugin.js +74 -0
  255. package/dist/custom/menu/submenu-keyboard/types.d.ts +2 -0
  256. package/dist/custom/number-input/index.d.ts +5 -0
  257. package/dist/custom/number-input/keyboard/index.d.ts +2 -0
  258. package/dist/custom/number-input/keyboard/keyboard.plugin.d.ts +36 -0
  259. package/dist/custom/number-input/keyboard/keyboard.plugin.js +80 -0
  260. package/dist/custom/number-input/keyboard/types.d.ts +3 -0
  261. package/dist/custom/number-input/names/index.d.ts +1 -0
  262. package/dist/custom/number-input/names/names.plugin.d.ts +17 -0
  263. package/dist/custom/number-input/names/names.plugin.js +24 -0
  264. package/dist/custom/number-input/parts.d.ts +21 -0
  265. package/dist/custom/number-input/parts.js +39 -0
  266. package/dist/custom/number-input/stepper/index.d.ts +2 -0
  267. package/dist/custom/number-input/stepper/stepper.plugin.d.ts +59 -0
  268. package/dist/custom/number-input/stepper/stepper.plugin.js +166 -0
  269. package/dist/custom/number-input/stepper/types.d.ts +19 -0
  270. package/dist/custom/number-input/touch/index.d.ts +2 -0
  271. package/dist/custom/number-input/touch/touch.plugin.d.ts +25 -0
  272. package/dist/custom/number-input/touch/touch.plugin.js +53 -0
  273. package/dist/custom/number-input/touch/types.d.ts +3 -0
  274. package/dist/custom/number-input/types.d.ts +8 -0
  275. package/dist/custom/number-input/typing/index.d.ts +2 -0
  276. package/dist/custom/number-input/typing/types.d.ts +6 -0
  277. package/dist/custom/number-input/typing/typing.plugin.d.ts +47 -0
  278. package/dist/custom/number-input/typing/typing.plugin.js +149 -0
  279. package/dist/custom/overlay/focus/focus.plugin.d.ts +150 -0
  280. package/dist/custom/overlay/focus/focus.plugin.js +242 -0
  281. package/dist/custom/overlay/focus/index.d.ts +1 -0
  282. package/dist/custom/overlay/hide-outside/hide-outside.plugin.d.ts +84 -0
  283. package/dist/custom/overlay/hide-outside/hide-outside.plugin.js +187 -0
  284. package/dist/custom/overlay/hide-outside/index.d.ts +2 -0
  285. package/dist/custom/overlay/hide-outside/marks.d.ts +19 -0
  286. package/dist/custom/overlay/hide-outside/marks.js +43 -0
  287. package/dist/custom/overlay/hide-outside/types.d.ts +17 -0
  288. package/dist/custom/overlay/index.d.ts +9 -0
  289. package/dist/custom/overlay/modal-focus/index.d.ts +1 -0
  290. package/dist/custom/overlay/modal-focus/modal-focus.plugin.d.ts +72 -0
  291. package/dist/custom/overlay/modal-focus/modal-focus.plugin.js +109 -0
  292. package/dist/custom/overlay/modal-ids/index.d.ts +1 -0
  293. package/dist/custom/overlay/modal-ids/modal-ids.plugin.d.ts +21 -0
  294. package/dist/custom/overlay/modal-ids/modal-ids.plugin.js +30 -0
  295. package/dist/custom/overlay/modal-layout/index.d.ts +2 -0
  296. package/dist/custom/overlay/modal-layout/modal-layout.plugin.d.ts +66 -0
  297. package/dist/custom/overlay/modal-layout/modal-layout.plugin.js +119 -0
  298. package/dist/custom/overlay/modal-layout/types.d.ts +13 -0
  299. package/dist/custom/overlay/modal-names/index.d.ts +1 -0
  300. package/dist/custom/overlay/modal-names/modal-names.plugin.d.ts +14 -0
  301. package/dist/custom/overlay/modal-names/modal-names.plugin.js +17 -0
  302. package/dist/custom/overlay/open-state.d.ts +12 -0
  303. package/dist/custom/overlay/open-state.js +42 -0
  304. package/dist/custom/overlay/scroll-lock/index.d.ts +2 -0
  305. package/dist/custom/overlay/scroll-lock/lock.d.ts +17 -0
  306. package/dist/custom/overlay/scroll-lock/lock.js +83 -0
  307. package/dist/custom/overlay/scroll-lock/scroll-lock.plugin.d.ts +78 -0
  308. package/dist/custom/overlay/scroll-lock/scroll-lock.plugin.js +134 -0
  309. package/dist/custom/overlay/scroll-lock/types.d.ts +17 -0
  310. package/dist/custom/overlay/swipe/index.d.ts +2 -0
  311. package/dist/custom/overlay/swipe/swipe.plugin.d.ts +150 -0
  312. package/dist/custom/overlay/swipe/swipe.plugin.js +432 -0
  313. package/dist/custom/overlay/swipe/types.d.ts +62 -0
  314. package/dist/custom/overlay/types.d.ts +40 -0
  315. package/dist/custom/pagination/current.d.ts +24 -0
  316. package/dist/custom/pagination/current.js +34 -0
  317. package/dist/custom/pagination/focus/focus.plugin.d.ts +57 -0
  318. package/dist/custom/pagination/focus/focus.plugin.js +106 -0
  319. package/dist/custom/pagination/focus/index.d.ts +2 -0
  320. package/dist/custom/pagination/focus/types.d.ts +8 -0
  321. package/dist/custom/pagination/index.d.ts +3 -0
  322. package/dist/custom/pagination/names/index.d.ts +1 -0
  323. package/dist/custom/pagination/names/names.plugin.d.ts +15 -0
  324. package/dist/custom/pagination/names/names.plugin.js +19 -0
  325. package/dist/custom/popover/focus/focus.plugin.d.ts +69 -0
  326. package/dist/custom/popover/focus/focus.plugin.js +107 -0
  327. package/dist/custom/popover/focus/index.d.ts +2 -0
  328. package/dist/custom/popover/focus/types.d.ts +2 -0
  329. package/dist/custom/popover/ids/ids.plugin.d.ts +18 -0
  330. package/dist/custom/popover/ids/ids.plugin.js +27 -0
  331. package/dist/custom/popover/ids/index.d.ts +1 -0
  332. package/dist/custom/popover/index.d.ts +4 -0
  333. package/dist/custom/popover/names/index.d.ts +1 -0
  334. package/dist/custom/popover/names/names.plugin.d.ts +7 -0
  335. package/dist/custom/popover/names/names.plugin.js +10 -0
  336. package/dist/custom/popover/pointer/index.d.ts +2 -0
  337. package/dist/custom/popover/pointer/pointer.plugin.d.ts +35 -0
  338. package/dist/custom/popover/pointer/pointer.plugin.js +65 -0
  339. package/dist/custom/popover/pointer/types.d.ts +2 -0
  340. package/dist/custom/radio-group/checked/checked.plugin.d.ts +45 -0
  341. package/dist/custom/radio-group/checked/checked.plugin.js +81 -0
  342. package/dist/custom/radio-group/checked/index.d.ts +1 -0
  343. package/dist/custom/radio-group/index.d.ts +3 -0
  344. package/dist/custom/radio-group/name/index.d.ts +1 -0
  345. package/dist/custom/radio-group/name/name.plugin.d.ts +21 -0
  346. package/dist/custom/radio-group/name/name.plugin.js +39 -0
  347. package/dist/custom/radio-group/stop.d.ts +17 -0
  348. package/dist/custom/radio-group/stop.js +30 -0
  349. package/dist/custom/rating/hover/hover.plugin.d.ts +36 -0
  350. package/dist/custom/rating/hover/hover.plugin.js +71 -0
  351. package/dist/custom/rating/hover/index.d.ts +2 -0
  352. package/dist/custom/rating/hover/types.d.ts +7 -0
  353. package/dist/custom/rating/index.d.ts +3 -0
  354. package/dist/custom/rating/names/index.d.ts +1 -0
  355. package/dist/custom/rating/names/names.plugin.d.ts +25 -0
  356. package/dist/custom/rating/names/names.plugin.js +45 -0
  357. package/dist/custom/rating/validity/index.d.ts +2 -0
  358. package/dist/custom/rating/validity/types.d.ts +7 -0
  359. package/dist/custom/rating/validity/validity.plugin.d.ts +48 -0
  360. package/dist/custom/rating/validity/validity.plugin.js +91 -0
  361. package/dist/custom/ready/index.d.ts +1 -0
  362. package/dist/custom/ready/ready.plugin.d.ts +14 -0
  363. package/dist/custom/ready/ready.plugin.js +28 -0
  364. package/dist/custom/scroller/index.d.ts +2 -0
  365. package/dist/custom/scroller/names/index.d.ts +1 -0
  366. package/dist/custom/scroller/names/names.plugin.d.ts +11 -0
  367. package/dist/custom/scroller/names/names.plugin.js +15 -0
  368. package/dist/custom/scroller/viewport/edges.d.ts +34 -0
  369. package/dist/custom/scroller/viewport/edges.js +29 -0
  370. package/dist/custom/scroller/viewport/focus.d.ts +39 -0
  371. package/dist/custom/scroller/viewport/focus.js +61 -0
  372. package/dist/custom/scroller/viewport/index.d.ts +6 -0
  373. package/dist/custom/scroller/viewport/stop.d.ts +24 -0
  374. package/dist/custom/scroller/viewport/stop.js +34 -0
  375. package/dist/custom/scroller/viewport/types.d.ts +31 -0
  376. package/dist/custom/scroller/viewport/viewport.plugin.d.ts +163 -0
  377. package/dist/custom/scroller/viewport/viewport.plugin.js +352 -0
  378. package/dist/custom/select/backspace/backspace.plugin.d.ts +50 -0
  379. package/dist/custom/select/backspace/backspace.plugin.js +125 -0
  380. package/dist/custom/select/backspace/index.d.ts +2 -0
  381. package/dist/custom/select/backspace/types.d.ts +2 -0
  382. package/dist/custom/select/editable/editable.plugin.d.ts +193 -0
  383. package/dist/custom/select/editable/editable.plugin.js +347 -0
  384. package/dist/custom/select/editable/index.d.ts +2 -0
  385. package/dist/custom/select/editable/types.d.ts +6 -0
  386. package/dist/custom/select/ids/ids.plugin.d.ts +22 -0
  387. package/dist/custom/select/ids/ids.plugin.js +31 -0
  388. package/dist/custom/select/ids/index.d.ts +1 -0
  389. package/dist/custom/select/index.d.ts +5 -0
  390. package/dist/custom/select/keyboard/index.d.ts +2 -0
  391. package/dist/custom/select/keyboard/keyboard.plugin.d.ts +125 -0
  392. package/dist/custom/select/keyboard/keyboard.plugin.js +205 -0
  393. package/dist/custom/select/keyboard/strategies/base.strategy.d.ts +37 -0
  394. package/dist/custom/select/keyboard/strategies/base.strategy.js +81 -0
  395. package/dist/custom/select/keyboard/strategies/editable.strategy.d.ts +16 -0
  396. package/dist/custom/select/keyboard/strategies/editable.strategy.js +20 -0
  397. package/dist/custom/select/keyboard/strategies/index.d.ts +4 -0
  398. package/dist/custom/select/keyboard/strategies/select-only.strategy.d.ts +13 -0
  399. package/dist/custom/select/keyboard/strategies/select-only.strategy.js +59 -0
  400. package/dist/custom/select/keyboard/strategies/types.d.ts +29 -0
  401. package/dist/custom/select/keyboard/types.d.ts +18 -0
  402. package/dist/custom/select/pointer/index.d.ts +2 -0
  403. package/dist/custom/select/pointer/pointer.plugin.d.ts +59 -0
  404. package/dist/custom/select/pointer/pointer.plugin.js +104 -0
  405. package/dist/custom/select/pointer/types.d.ts +2 -0
  406. package/dist/custom/skeleton/index.d.ts +2 -0
  407. package/dist/custom/skeleton/layout.plugin.d.ts +18 -0
  408. package/dist/custom/skeleton/layout.plugin.js +47 -0
  409. package/dist/custom/skeleton/types.d.ts +5 -0
  410. package/dist/custom/slide/direction.d.ts +30 -0
  411. package/dist/custom/slide/direction.js +75 -0
  412. package/dist/custom/slide/index.d.ts +4 -0
  413. package/dist/custom/slide/keyboard/index.d.ts +2 -0
  414. package/dist/custom/slide/keyboard/keyboard.plugin.d.ts +46 -0
  415. package/dist/custom/slide/keyboard/keyboard.plugin.js +106 -0
  416. package/dist/custom/slide/keyboard/types.d.ts +6 -0
  417. package/dist/custom/slide/parts.d.ts +7 -0
  418. package/dist/custom/slide/parts.js +26 -0
  419. package/dist/custom/slide/pointer/index.d.ts +2 -0
  420. package/dist/custom/slide/pointer/pointer.plugin.d.ts +100 -0
  421. package/dist/custom/slide/pointer/pointer.plugin.js +268 -0
  422. package/dist/custom/slide/pointer/strategies/base.strategy.d.ts +16 -0
  423. package/dist/custom/slide/pointer/strategies/base.strategy.js +23 -0
  424. package/dist/custom/slide/pointer/strategies/hold.strategy.d.ts +28 -0
  425. package/dist/custom/slide/pointer/strategies/hold.strategy.js +48 -0
  426. package/dist/custom/slide/pointer/strategies/index.d.ts +7 -0
  427. package/dist/custom/slide/pointer/strategies/magnet.strategy.d.ts +11 -0
  428. package/dist/custom/slide/pointer/strategies/magnet.strategy.js +17 -0
  429. package/dist/custom/slide/pointer/strategies/none.strategy.d.ts +7 -0
  430. package/dist/custom/slide/pointer/strategies/none.strategy.js +9 -0
  431. package/dist/custom/slide/pointer/strategies/plateau.strategy.d.ts +24 -0
  432. package/dist/custom/slide/pointer/strategies/plateau.strategy.js +81 -0
  433. package/dist/custom/slide/pointer/strategies/points.d.ts +16 -0
  434. package/dist/custom/slide/pointer/strategies/points.js +32 -0
  435. package/dist/custom/slide/pointer/strategies/settle.strategy.d.ts +11 -0
  436. package/dist/custom/slide/pointer/strategies/settle.strategy.js +17 -0
  437. package/dist/custom/slide/pointer/strategies/types.d.ts +57 -0
  438. package/dist/custom/slide/pointer/types.d.ts +46 -0
  439. package/dist/custom/slide/types.d.ts +14 -0
  440. package/dist/custom/table/column-ids/column-ids.plugin.d.ts +26 -0
  441. package/dist/custom/table/column-ids/column-ids.plugin.js +36 -0
  442. package/dist/custom/table/column-ids/index.d.ts +1 -0
  443. package/dist/custom/table/column-names/column-names.plugin.d.ts +18 -0
  444. package/dist/custom/table/column-names/column-names.plugin.js +24 -0
  445. package/dist/custom/table/column-names/index.d.ts +1 -0
  446. package/dist/custom/table/column-reorder/column-reorder.plugin.d.ts +169 -0
  447. package/dist/custom/table/column-reorder/column-reorder.plugin.js +465 -0
  448. package/dist/custom/table/column-reorder/index.d.ts +2 -0
  449. package/dist/custom/table/column-reorder/types.d.ts +81 -0
  450. package/dist/custom/table/column-resize/column-resize.plugin.d.ts +96 -0
  451. package/dist/custom/table/column-resize/column-resize.plugin.js +271 -0
  452. package/dist/custom/table/column-resize/index.d.ts +2 -0
  453. package/dist/custom/table/column-resize/types.d.ts +38 -0
  454. package/dist/custom/table/grid/grid.plugin.d.ts +119 -0
  455. package/dist/custom/table/grid/grid.plugin.js +356 -0
  456. package/dist/custom/table/grid/index.d.ts +2 -0
  457. package/dist/custom/table/grid/types.d.ts +22 -0
  458. package/dist/custom/table/index.d.ts +8 -0
  459. package/dist/custom/table/layout/index.d.ts +2 -0
  460. package/dist/custom/table/layout/layout.plugin.d.ts +52 -0
  461. package/dist/custom/table/layout/layout.plugin.js +122 -0
  462. package/dist/custom/table/layout/types.d.ts +7 -0
  463. package/dist/custom/table/names/index.d.ts +2 -0
  464. package/dist/custom/table/names/names.plugin.d.ts +18 -0
  465. package/dist/custom/table/names/names.plugin.js +31 -0
  466. package/dist/custom/table/names/types.d.ts +6 -0
  467. package/dist/custom/table/row-ids/index.d.ts +1 -0
  468. package/dist/custom/table/row-ids/row-ids.plugin.d.ts +21 -0
  469. package/dist/custom/table/row-ids/row-ids.plugin.js +28 -0
  470. package/dist/custom/tabs/active-tab/active-tab.plugin.d.ts +42 -0
  471. package/dist/custom/tabs/active-tab/active-tab.plugin.js +103 -0
  472. package/dist/custom/tabs/active-tab/index.d.ts +2 -0
  473. package/dist/custom/tabs/active-tab/types.d.ts +17 -0
  474. package/dist/custom/tabs/content-warn/content-warn.plugin.d.ts +21 -0
  475. package/dist/custom/tabs/content-warn/content-warn.plugin.js +41 -0
  476. package/dist/custom/tabs/content-warn/index.d.ts +1 -0
  477. package/dist/custom/tabs/index.d.ts +7 -0
  478. package/dist/custom/tabs/item-ids/index.d.ts +1 -0
  479. package/dist/custom/tabs/item-ids/item-ids.plugin.d.ts +60 -0
  480. package/dist/custom/tabs/item-ids/item-ids.plugin.js +94 -0
  481. package/dist/custom/tabs/item-names/index.d.ts +1 -0
  482. package/dist/custom/tabs/item-names/item-names.plugin.d.ts +17 -0
  483. package/dist/custom/tabs/item-names/item-names.plugin.js +23 -0
  484. package/dist/custom/tabs/keyboard/index.d.ts +2 -0
  485. package/dist/custom/tabs/keyboard/keyboard.plugin.d.ts +105 -0
  486. package/dist/custom/tabs/keyboard/keyboard.plugin.js +206 -0
  487. package/dist/custom/tabs/keyboard/types.d.ts +6 -0
  488. package/dist/custom/tabs/layout/index.d.ts +2 -0
  489. package/dist/custom/tabs/layout/layout.plugin.d.ts +37 -0
  490. package/dist/custom/tabs/layout/layout.plugin.js +81 -0
  491. package/dist/custom/tabs/layout/types.d.ts +4 -0
  492. package/dist/custom/tabs/parts.d.ts +15 -0
  493. package/dist/custom/tabs/parts.js +21 -0
  494. package/dist/custom/tabs/tab.d.ts +29 -0
  495. package/dist/custom/tabs/tab.js +44 -0
  496. package/dist/custom/tags/index.d.ts +4 -0
  497. package/dist/custom/tags/item-names/index.d.ts +1 -0
  498. package/dist/custom/tags/item-names/item-names.plugin.d.ts +12 -0
  499. package/dist/custom/tags/item-names/item-names.plugin.js +18 -0
  500. package/dist/custom/tags/keyboard/index.d.ts +2 -0
  501. package/dist/custom/tags/keyboard/keyboard.plugin.d.ts +133 -0
  502. package/dist/custom/tags/keyboard/keyboard.plugin.js +253 -0
  503. package/dist/custom/tags/keyboard/types.d.ts +6 -0
  504. package/dist/custom/tags/scroll/index.d.ts +2 -0
  505. package/dist/custom/tags/scroll/scroll.plugin.d.ts +68 -0
  506. package/dist/custom/tags/scroll/scroll.plugin.js +120 -0
  507. package/dist/custom/tags/scroll/types.d.ts +6 -0
  508. package/dist/custom/tags/tag.d.ts +41 -0
  509. package/dist/custom/tags/tag.js +66 -0
  510. package/dist/custom/textarea/autoresize/autoresize.plugin.d.ts +70 -0
  511. package/dist/custom/textarea/autoresize/autoresize.plugin.js +176 -0
  512. package/dist/custom/textarea/autoresize/index.d.ts +2 -0
  513. package/dist/custom/textarea/autoresize/types.d.ts +6 -0
  514. package/dist/custom/textarea/ids/ids.plugin.d.ts +26 -0
  515. package/dist/custom/textarea/ids/ids.plugin.js +44 -0
  516. package/dist/custom/textarea/ids/index.d.ts +1 -0
  517. package/dist/custom/textarea/index.d.ts +3 -0
  518. package/dist/custom/textarea/names/index.d.ts +2 -0
  519. package/dist/custom/textarea/names/names.plugin.d.ts +33 -0
  520. package/dist/custom/textarea/names/names.plugin.js +65 -0
  521. package/dist/custom/textarea/names/types.d.ts +8 -0
  522. package/dist/custom/toasts/cascade/cascade.plugin.d.ts +81 -0
  523. package/dist/custom/toasts/cascade/cascade.plugin.js +214 -0
  524. package/dist/custom/toasts/cascade/index.d.ts +2 -0
  525. package/dist/custom/toasts/cascade/types.d.ts +15 -0
  526. package/dist/custom/toasts/index.d.ts +7 -0
  527. package/dist/custom/toasts/item-names/index.d.ts +1 -0
  528. package/dist/custom/toasts/item-names/item-names.plugin.d.ts +12 -0
  529. package/dist/custom/toasts/item-names/item-names.plugin.js +18 -0
  530. package/dist/custom/toasts/keyboard/index.d.ts +2 -0
  531. package/dist/custom/toasts/keyboard/keyboard.plugin.d.ts +57 -0
  532. package/dist/custom/toasts/keyboard/keyboard.plugin.js +136 -0
  533. package/dist/custom/toasts/keyboard/types.d.ts +6 -0
  534. package/dist/custom/toasts/layout/index.d.ts +2 -0
  535. package/dist/custom/toasts/layout/layout.plugin.d.ts +23 -0
  536. package/dist/custom/toasts/layout/layout.plugin.js +39 -0
  537. package/dist/custom/toasts/layout/types.d.ts +5 -0
  538. package/dist/custom/toasts/names/index.d.ts +1 -0
  539. package/dist/custom/toasts/names/names.plugin.d.ts +10 -0
  540. package/dist/custom/toasts/names/names.plugin.js +13 -0
  541. package/dist/custom/toasts/removal/index.d.ts +2 -0
  542. package/dist/custom/toasts/removal/removal.plugin.d.ts +35 -0
  543. package/dist/custom/toasts/removal/removal.plugin.js +69 -0
  544. package/dist/custom/toasts/removal/types.d.ts +6 -0
  545. package/dist/custom/toasts/timer/index.d.ts +2 -0
  546. package/dist/custom/toasts/timer/timer.plugin.d.ts +71 -0
  547. package/dist/custom/toasts/timer/timer.plugin.js +213 -0
  548. package/dist/custom/toasts/timer/types.d.ts +15 -0
  549. package/dist/custom/tooltip/ids/ids.plugin.d.ts +22 -0
  550. package/dist/custom/tooltip/ids/ids.plugin.js +42 -0
  551. package/dist/custom/tooltip/ids/index.d.ts +1 -0
  552. package/dist/custom/tooltip/index.d.ts +2 -0
  553. package/dist/custom/tooltip/trigger/document-state.d.ts +42 -0
  554. package/dist/custom/tooltip/trigger/document-state.js +50 -0
  555. package/dist/custom/tooltip/trigger/index.d.ts +2 -0
  556. package/dist/custom/tooltip/trigger/trigger.plugin.d.ts +133 -0
  557. package/dist/custom/tooltip/trigger/trigger.plugin.js +271 -0
  558. package/dist/custom/tooltip/trigger/types.d.ts +20 -0
  559. package/dist/custom/virtual/index.d.ts +2 -0
  560. package/dist/custom/virtual/types.d.ts +6 -0
  561. package/dist/custom/virtual/virtual.plugin.d.ts +126 -0
  562. package/dist/custom/virtual/virtual.plugin.js +311 -0
  563. package/dist/index.d.ts +7 -0
  564. package/dist/index.js +149 -0
  565. package/dist/locale/index.d.ts +6 -0
  566. package/dist/locale/locale.d.ts +38 -0
  567. package/dist/locale/locale.js +93 -0
  568. package/dist/locale/locale.plugin.d.ts +26 -0
  569. package/dist/locale/locale.plugin.js +35 -0
  570. package/dist/locale/locales/ar.d.ts +5 -0
  571. package/dist/locale/locales/ar.js +59 -0
  572. package/dist/locale/locales/en.d.ts +7 -0
  573. package/dist/locale/locales/en.js +61 -0
  574. package/dist/locale/locales/es.d.ts +2 -0
  575. package/dist/locale/locales/es.js +56 -0
  576. package/dist/locale/locales/fr.d.ts +2 -0
  577. package/dist/locale/locales/fr.js +56 -0
  578. package/dist/locale/locales/index.d.ts +6 -0
  579. package/dist/locale/locales/ru.d.ts +2 -0
  580. package/dist/locale/locales/ru.js +56 -0
  581. package/dist/locale/locales/zh.d.ts +2 -0
  582. package/dist/locale/locales/zh.js +56 -0
  583. package/dist/locale/names.plugin.d.ts +32 -0
  584. package/dist/locale/names.plugin.js +39 -0
  585. package/dist/locale/source.class.d.ts +22 -0
  586. package/dist/locale/source.class.js +32 -0
  587. package/dist/locale/types.d.ts +197 -0
  588. package/dist/motion/index.d.ts +2 -0
  589. package/dist/motion/motion.d.ts +28 -0
  590. package/dist/motion/motion.js +67 -0
  591. package/dist/motion/types.d.ts +14 -0
  592. package/dist/utils/afterTransitions.d.ts +49 -0
  593. package/dist/utils/afterTransitions.js +79 -0
  594. package/dist/utils/focusFirst.d.ts +13 -0
  595. package/dist/utils/focusFirst.js +24 -0
  596. package/dist/utils/graceArea.d.ts +21 -0
  597. package/dist/utils/graceArea.js +66 -0
  598. package/dist/utils/index.d.ts +18 -0
  599. package/dist/utils/isAboveLayer.d.ts +14 -0
  600. package/dist/utils/isAboveLayer.js +24 -0
  601. package/dist/utils/isAppleTouch.d.ts +10 -0
  602. package/dist/utils/isAppleTouch.js +17 -0
  603. package/dist/utils/isFocusableElement.d.ts +8 -0
  604. package/dist/utils/isFocusableElement.js +13 -0
  605. package/dist/utils/isMeasurableElement.d.ts +11 -0
  606. package/dist/utils/isMeasurableElement.js +16 -0
  607. package/dist/utils/isPrintableKey.d.ts +7 -0
  608. package/dist/utils/isPrintableKey.js +12 -0
  609. package/dist/utils/layerOf.d.ts +12 -0
  610. package/dist/utils/layerOf.js +21 -0
  611. package/dist/utils/nearestShift.d.ts +19 -0
  612. package/dist/utils/nearestShift.js +58 -0
  613. package/dist/utils/positionOrigin.d.ts +34 -0
  614. package/dist/utils/positionOrigin.js +71 -0
  615. package/dist/utils/scrollParent.d.ts +12 -0
  616. package/dist/utils/scrollParent.js +23 -0
  617. package/dist/utils/scrollWindow.d.ts +27 -0
  618. package/dist/utils/scrollWindow.js +50 -0
  619. package/dist/utils/tabStops.d.ts +44 -0
  620. package/dist/utils/tabStops.js +102 -0
  621. package/dist/utils/tabStopsAfter.d.ts +10 -0
  622. package/dist/utils/tabStopsAfter.js +16 -0
  623. package/dist/utils/tabStopsBefore.d.ts +11 -0
  624. package/dist/utils/tabStopsBefore.js +17 -0
  625. package/dist/utils/toCssValue.d.ts +8 -0
  626. package/dist/utils/toCssValue.js +17 -0
  627. package/dist/utils/trapTab.d.ts +16 -0
  628. package/dist/utils/trapTab.js +36 -0
  629. package/dist/utils/types.d.ts +64 -0
  630. package/package.json +43 -4
@@ -0,0 +1,29 @@
1
+ import { TBasePlugin } from '../../base';
2
+ import type { IPluginContext, IPluginBundle } from '../../base';
3
+ import { TCollectionBundlesPlugin } from './bundles.plugin';
4
+ import type { TCollectionEngine } from '@soxa-ui/core';
5
+ /**
6
+ * TCollectionBundlesAccess — базовый плагин доступа к bundles элементов коллекции.
7
+ *
8
+ * Сам ничего не накапливает: накоплением bundles занимается {@link TCollectionBundlesPlugin}.
9
+ * Этот плагин лишь подхватывает реестр bundles в install() и предоставляет удобные
10
+ * accessors для обращения к бандлам по uid/item/индексу.
11
+ *
12
+ * Наследники (например, {@link TCollectionElements}) добавляют свои типизированные
13
+ * accessors поверх bundles.
14
+ */
15
+ export declare abstract class TCollectionBundlesAccess extends TBasePlugin<any> {
16
+ /** Реестр bundles элементов коллекции. */
17
+ protected bundles: TCollectionBundlesPlugin | undefined;
18
+ install(ctx: IPluginContext): void;
19
+ /** Ссылка на коллекцию, к которой привязан реестр bundles. */
20
+ get engine(): TCollectionEngine<any, any> | null;
21
+ /** Bundle элемента по uid. */
22
+ protected getBundleByUid(uid: string | number): IPluginBundle | undefined;
23
+ /** Bundle по элементу коллекции. */
24
+ protected getBundleByItem(item: unknown): IPluginBundle | undefined;
25
+ /** Элемент коллекции по порядковому индексу. */
26
+ protected getItemByIndex(index: number): unknown;
27
+ /** Все bundles в порядке элементов коллекции. */
28
+ protected getBundleAll(): IPluginBundle[];
29
+ }
@@ -0,0 +1,44 @@
1
+ import { TBasePlugin } from "../../base/base.class.js";
2
+ import { TCollectionBundlesPlugin } from "./bundles.plugin.js";
3
+ import { batchOf } from "@soxa-ui/core";
4
+ //#region src/custom/collection/collection-bundles-access.plugin.ts
5
+ /**
6
+ * TCollectionBundlesAccess — базовый плагин доступа к bundles элементов коллекции.
7
+ *
8
+ * Сам ничего не накапливает: накоплением bundles занимается {@link TCollectionBundlesPlugin}.
9
+ * Этот плагин лишь подхватывает реестр bundles в install() и предоставляет удобные
10
+ * accessors для обращения к бандлам по uid/item/индексу.
11
+ *
12
+ * Наследники (например, {@link TCollectionElements}) добавляют свои типизированные
13
+ * accessors поверх bundles.
14
+ */
15
+ var TCollectionBundlesAccess = class extends TBasePlugin {
16
+ /** Реестр bundles элементов коллекции. */
17
+ bundles;
18
+ install(ctx) {
19
+ super.install(ctx);
20
+ this.bundles = ctx.get(TCollectionBundlesPlugin);
21
+ }
22
+ /** Ссылка на коллекцию, к которой привязан реестр bundles. */
23
+ get engine() {
24
+ return this.bundles?.engine ?? null;
25
+ }
26
+ /** Bundle элемента по uid. */
27
+ getBundleByUid(uid) {
28
+ return this.bundles?.getByUid(uid);
29
+ }
30
+ /** Bundle по элементу коллекции. */
31
+ getBundleByItem(item) {
32
+ return this.bundles?.getByItem(item);
33
+ }
34
+ /** Элемент коллекции по порядковому индексу. */
35
+ getItemByIndex(index) {
36
+ return batchOf(this.bundles?.engine)?.items[index];
37
+ }
38
+ /** Все bundles в порядке элементов коллекции. */
39
+ getBundleAll() {
40
+ return this.bundles?.getAll() ?? [];
41
+ }
42
+ };
43
+ //#endregion
44
+ export { TCollectionBundlesAccess };
@@ -0,0 +1,55 @@
1
+ import { TCollectionBundlesAccess } from './collection-bundles-access.plugin';
2
+ /**
3
+ * TCollectionElements — быстрый доступ к DOM-элементам элементов коллекции.
4
+ *
5
+ * Не хранит элементы: извлекает их на лету из bundle каждого item'а через
6
+ * {@link TElementPlugin}. Сами элементы лежат в bundles (реестр
7
+ * {@link TCollectionBundlesPlugin}), инстансы — в engine.
8
+ *
9
+ * Узлы отдаются как `Element` — ровно тем типом, каким их держит
10
+ * {@link TElementPlugin}. Кому нужна HTML-специфика, сужает узел гардом из
11
+ * `utils`; отфильтровать не-HTML узлы здесь нельзя — пропавший элемент
12
+ * коллекции хуже ошибки типа.
13
+ *
14
+ * Узла, которого ещё нет в документе, ждут здесь же — {@link waitFor}.
15
+ *
16
+ * Зависит от TCollectionBundlesPlugin (регистрируется в том же bundle).
17
+ */
18
+ export declare class TCollectionElements extends TCollectionBundlesAccess {
19
+ /**
20
+ * Ждать узел элемента коллекции, которого в документе ещё нет: модель уже
21
+ * сменилась — новый месяц календаря, новый таб, — а разметка его ещё не
22
+ * нарисовала.
23
+ *
24
+ * Узел приходит в два шага: элемент входит в коллекцию — его набор
25
+ * регистрируется в реестре (`bundle:registered`), — и узел объявляет его
26
+ * `TElementPlugin` (`ready`, кадром позже привязки). Порядок шагов решает
27
+ * адаптер: обычно регистрация идёт раньше привязки узла, но бывает и после
28
+ * принятия компонента, когда узел уже привязан и его `ready` пришло раньше
29
+ * регистрации. Поэтому проверка зовётся на каждой регистрации сразу и ещё
30
+ * раз — на `ready` узла этого элемента.
31
+ *
32
+ * Какой узел нужен, помощник не знает: это решает проверка, и цель она
33
+ * ищет заново на каждый вызов — у модели, а не запомненную заранее. `true`
34
+ * — дождались: помощник снимает свои подписки. Подписки — прямые: шина
35
+ * реестра живёт в том же наборе, а шина узла умирает вместе с набором
36
+ * элемента. Первую попытку, до ожидания, делает тот, кто ждёт: помощник
37
+ * проверку сам не зовёт.
38
+ *
39
+ * @param check проверка: нашёлся ли узел и сделано ли с ним то, ради чего
40
+ * его ждали. `true` — ожидание кончено.
41
+ * @returns снять ожидание; повторный вызов и вызов после `true` ничего не
42
+ * делают.
43
+ */
44
+ waitFor(check: () => boolean): () => void;
45
+ /** DOM-элемент элемента коллекции по uid. */
46
+ getElementByUid(uid: string | number): Element | null;
47
+ /** DOM-элемент по элементу коллекции. */
48
+ getElementByItem(item: unknown): Element | null;
49
+ /** DOM-элемент по порядковому индексу в коллекции. */
50
+ getElementByIndex(index: number): Element | null;
51
+ /** Все DOM-элементы в порядке элементов коллекции. */
52
+ getAll(): Element[];
53
+ /** Найти uid по DOM-элементу. */
54
+ getUidByElement(element: Element): string | number | undefined;
55
+ }
@@ -0,0 +1,100 @@
1
+ import { TCollectionBundlesAccess } from "./collection-bundles-access.plugin.js";
2
+ import { TElementPlugin } from "../element/element.plugin.js";
3
+ import { batchOf } from "@soxa-ui/core";
4
+ //#region src/custom/collection/collection-elements.plugin.ts
5
+ /**
6
+ * TCollectionElements — быстрый доступ к DOM-элементам элементов коллекции.
7
+ *
8
+ * Не хранит элементы: извлекает их на лету из bundle каждого item'а через
9
+ * {@link TElementPlugin}. Сами элементы лежат в bundles (реестр
10
+ * {@link TCollectionBundlesPlugin}), инстансы — в engine.
11
+ *
12
+ * Узлы отдаются как `Element` — ровно тем типом, каким их держит
13
+ * {@link TElementPlugin}. Кому нужна HTML-специфика, сужает узел гардом из
14
+ * `utils`; отфильтровать не-HTML узлы здесь нельзя — пропавший элемент
15
+ * коллекции хуже ошибки типа.
16
+ *
17
+ * Узла, которого ещё нет в документе, ждут здесь же — {@link waitFor}.
18
+ *
19
+ * Зависит от TCollectionBundlesPlugin (регистрируется в том же bundle).
20
+ */
21
+ var TCollectionElements = class extends TCollectionBundlesAccess {
22
+ /**
23
+ * Ждать узел элемента коллекции, которого в документе ещё нет: модель уже
24
+ * сменилась — новый месяц календаря, новый таб, — а разметка его ещё не
25
+ * нарисовала.
26
+ *
27
+ * Узел приходит в два шага: элемент входит в коллекцию — его набор
28
+ * регистрируется в реестре (`bundle:registered`), — и узел объявляет его
29
+ * `TElementPlugin` (`ready`, кадром позже привязки). Порядок шагов решает
30
+ * адаптер: обычно регистрация идёт раньше привязки узла, но бывает и после
31
+ * принятия компонента, когда узел уже привязан и его `ready` пришло раньше
32
+ * регистрации. Поэтому проверка зовётся на каждой регистрации сразу и ещё
33
+ * раз — на `ready` узла этого элемента.
34
+ *
35
+ * Какой узел нужен, помощник не знает: это решает проверка, и цель она
36
+ * ищет заново на каждый вызов — у модели, а не запомненную заранее. `true`
37
+ * — дождались: помощник снимает свои подписки. Подписки — прямые: шина
38
+ * реестра живёт в том же наборе, а шина узла умирает вместе с набором
39
+ * элемента. Первую попытку, до ожидания, делает тот, кто ждёт: помощник
40
+ * проверку сам не зовёт.
41
+ *
42
+ * @param check проверка: нашёлся ли узел и сделано ли с ним то, ради чего
43
+ * его ждали. `true` — ожидание кончено.
44
+ * @returns снять ожидание; повторный вызов и вызов после `true` ничего не
45
+ * делают.
46
+ */
47
+ waitFor(check) {
48
+ const bundles = this.bundles;
49
+ const unsubscribes = [];
50
+ let waiting = true;
51
+ const stop = () => {
52
+ if (!waiting) return;
53
+ waiting = false;
54
+ for (const unsubscribe of unsubscribes.splice(0)) unsubscribe();
55
+ };
56
+ const test = () => {
57
+ if (waiting && check()) stop();
58
+ };
59
+ const onRegistered = ({ bundle }) => {
60
+ test();
61
+ const element = bundle.get(TElementPlugin);
62
+ if (!waiting || !element) return;
63
+ element.events.on("ready", test);
64
+ unsubscribes.push(() => element.events.off("ready", test));
65
+ };
66
+ if (bundles) {
67
+ bundles.events.on("bundle:registered", onRegistered);
68
+ unsubscribes.push(() => bundles.events.off("bundle:registered", onRegistered));
69
+ }
70
+ return stop;
71
+ }
72
+ /** DOM-элемент элемента коллекции по uid. */
73
+ getElementByUid(uid) {
74
+ return this.getBundleByUid(uid)?.get(TElementPlugin)?.element ?? null;
75
+ }
76
+ /** DOM-элемент по элементу коллекции. */
77
+ getElementByItem(item) {
78
+ return this.getBundleByItem(item)?.get(TElementPlugin)?.element ?? null;
79
+ }
80
+ /** DOM-элемент по порядковому индексу в коллекции. */
81
+ getElementByIndex(index) {
82
+ const item = this.getItemByIndex(index);
83
+ return item === void 0 ? null : this.getElementByItem(item);
84
+ }
85
+ /** Все DOM-элементы в порядке элементов коллекции. */
86
+ getAll() {
87
+ const result = [];
88
+ for (const bundle of this.getBundleAll()) {
89
+ const element = bundle.get(TElementPlugin)?.element;
90
+ if (element) result.push(element);
91
+ }
92
+ return result;
93
+ }
94
+ /** Найти uid по DOM-элементу. */
95
+ getUidByElement(element) {
96
+ for (const item of batchOf(this.bundles?.engine)?.items ?? []) if (this.getElementByItem(item) === element) return item.uid;
97
+ }
98
+ };
99
+ //#endregion
100
+ export { TCollectionElements };
@@ -0,0 +1,4 @@
1
+ export { TCollectionBundlesPlugin } from './bundles.plugin';
2
+ export type { TBundlesEvents } from './types';
3
+ export { TCollectionBundlesAccess } from './collection-bundles-access.plugin';
4
+ export { TCollectionElements } from './collection-elements.plugin';
@@ -0,0 +1,119 @@
1
+ import type { IPlainExtension } from '@soxa-ui/core';
2
+ import type { TCollectionElements } from './collection-elements.plugin';
3
+ /**
4
+ * Что решает плагин: где корень, что запомнить о месте элемента и куда отдать
5
+ * фокус.
6
+ */
7
+ export type TLeavingFocusHost<TItem, TPlace> = {
8
+ /**
9
+ * Узел корня владельца. `null` — узла нет, и фокус не читается: закрыть
10
+ * элемент из кода можно и на сервере, где документа нет.
11
+ */
12
+ readonly root: () => Element | null;
13
+ /**
14
+ * Что о месте элемента известно только до его удаления, кроме узла: у
15
+ * тега — соседи. Зовётся, когда фокус оказался в узле уходящего элемента.
16
+ */
17
+ readonly place: (item: TItem) => TPlace;
18
+ /**
19
+ * Отдать фокус: элемент закрыли, он ушёл, а фокус — в его узле или потерян
20
+ * вместе с ним.
21
+ */
22
+ readonly pass: (root: Element, place: TPlace) => void;
23
+ };
24
+ /**
25
+ * Фокус уходящего элемента коллекции — элемента, который закрыли: клавишей,
26
+ * крестиком, из кода. Узел элемента уходит из документа, и фокус, стоявший в
27
+ * нём, ушёл бы на страницу: следующий Tab начинал бы обход заново.
28
+ *
29
+ * Правило одно на коллекции с закрытием — Tags и Tabs, поэтому ожидание —
30
+ * модуль, а не копия в каждом плагине. Плагин слушает закрытие своего
31
+ * расширения и решает, что запомнить о месте элемента и куда отдать фокус
32
+ * (`host`), а когда переносить фокус и переносить ли вообще — помощник.
33
+ *
34
+ * Фокус переходит, когда сошлись два факта: элемент закрыли (`close` — плагин
35
+ * зовёт его из `item:close` своего расширения) и элемент ушёл из коллекции
36
+ * (`change:items` у `plain`), — вторым из них. Порядок у фактов разный:
37
+ * обычно элемент удаляет само закрытие, следом за `item:close`, но подписчик
38
+ * закрытия, стоящий раньше плагина, снимает его ещё в своём обработчике —
39
+ * так поле Select снимает выбор с опции, а приложение может удалить таб из
40
+ * своего обработчика события фасада, — и элемент уходит раньше, чем закрытие
41
+ * дойдёт до плагина.
42
+ *
43
+ * «Ушёл» — `change:items`, а не `item:removed`: `plain` отдаёт события
44
+ * драйвера пробросом, а проброс срабатывает раньше обработчиков самого
45
+ * драйвера. На `item:removed` расширения коллекции на удаление ещё не
46
+ * ответили — Tabs не активировал соседа закрытого активного таба, —
47
+ * а `change:items` драйвер шлёт после всех `item:*` записи.
48
+ *
49
+ * Где фокус, видно только до удаления: после него узла элемента нет в
50
+ * реестре, а места — в коллекции. Поэтому узел и место (`host.place`) снимает
51
+ * и закрытие, и хук удаления (`item:remove:before`, `items:clear:before`).
52
+ * Переносится только фокус из узла уходящего элемента. Фокус, который увели,
53
+ * пока элемент уходил, остаётся, где его поставили; потерянный — ушедший на
54
+ * страницу вместе с узлом, который разметка сняла синхронно, — переносится,
55
+ * как стоявший в узле.
56
+ *
57
+ * Удаление, отменённое в хуке, фокус не трогает. Элемент, ушедший без
58
+ * закрытия, — снятый из данных или размонтированный, — фокус не переносит:
59
+ * иначе набор, который снимают целиком, гонял бы фокус по своим уходящим
60
+ * элементам. Такое ожидание висит до следующего ухода или закрытия элемента с
61
+ * фокусом, смены движка (`bind`) или сброса (`reset`): ожидание одно на
62
+ * коллекцию. Фокус помощник читает только при узле корня.
63
+ */
64
+ export declare class TLeavingFocus<TItem extends object, TPlace> {
65
+ private readonly _elements;
66
+ private readonly _host;
67
+ private _plain;
68
+ private _leaving;
69
+ constructor(_elements: TCollectionElements | null, _host: TLeavingFocusHost<TItem, TPlace>);
70
+ /**
71
+ * Движок сменился — хуки удаления и состав слушаются у нового, ожидание
72
+ * прежнего забыто. `null` — снять подписки.
73
+ */
74
+ bind(plain: IPlainExtension<TItem> | null): void;
75
+ /**
76
+ * Элемент закрывают. Обычно он ещё в коллекции — закрытие удалит его
77
+ * следом, и фокус перейдёт на его уходе. Но подписчик закрытия, стоящий
78
+ * раньше плагина, мог уже снять его — и тогда фокус переходит сейчас.
79
+ */
80
+ close(item: TItem): void;
81
+ /** Забыть ожидание: узел корня снят. */
82
+ reset(): void;
83
+ private readonly _onRemoveBefore;
84
+ private readonly _onClearBefore;
85
+ /**
86
+ * Элементы вот-вот уйдут — пока их узлы в реестре, а места в коллекции,
87
+ * снять, не в них ли фокус и где они стоят. Уходит закрываемый элемент —
88
+ * его удаление запоминается: отменят — фокус останется на месте.
89
+ */
90
+ private _prepare;
91
+ /**
92
+ * Состав сменился — ушёл ли элемент. Драйвер шлёт `change:items` один раз
93
+ * на запись, после всех её `item:*`, когда расширения коллекции на них уже
94
+ * ответили.
95
+ */
96
+ private readonly _onItems;
97
+ /**
98
+ * Запомнить фокус элемента, если он в его узле, — вместе с местом
99
+ * элемента. Чтение фокуса — только при узле корня: на сервере документа
100
+ * нет.
101
+ *
102
+ * @returns запомнил ли — был ли фокус в узле элемента.
103
+ */
104
+ private _capture;
105
+ /**
106
+ * Удаление отменили (`item:remove:before`, `items:clear:before`) — элемент
107
+ * на месте, и фокус остаётся с ним. Видно это только после хука, поэтому
108
+ * ожидание сбрасывает следующее закрытие или удаление.
109
+ */
110
+ private _dropCancelled;
111
+ /** Элемент закрыли, и он ушёл — фокус переходит. */
112
+ private _settle;
113
+ /**
114
+ * Фокус, который увели из узла элемента, пока тот уходил, остаётся, где
115
+ * его поставили. Потерянный — ушедший на страницу вместе с узлом, который
116
+ * разметка сняла синхронно, — переносится, как стоявший в узле.
117
+ */
118
+ private _pass;
119
+ }
@@ -0,0 +1,164 @@
1
+ //#region src/custom/collection/leaving-focus.ts
2
+ /**
3
+ * Фокус уходящего элемента коллекции — элемента, который закрыли: клавишей,
4
+ * крестиком, из кода. Узел элемента уходит из документа, и фокус, стоявший в
5
+ * нём, ушёл бы на страницу: следующий Tab начинал бы обход заново.
6
+ *
7
+ * Правило одно на коллекции с закрытием — Tags и Tabs, поэтому ожидание —
8
+ * модуль, а не копия в каждом плагине. Плагин слушает закрытие своего
9
+ * расширения и решает, что запомнить о месте элемента и куда отдать фокус
10
+ * (`host`), а когда переносить фокус и переносить ли вообще — помощник.
11
+ *
12
+ * Фокус переходит, когда сошлись два факта: элемент закрыли (`close` — плагин
13
+ * зовёт его из `item:close` своего расширения) и элемент ушёл из коллекции
14
+ * (`change:items` у `plain`), — вторым из них. Порядок у фактов разный:
15
+ * обычно элемент удаляет само закрытие, следом за `item:close`, но подписчик
16
+ * закрытия, стоящий раньше плагина, снимает его ещё в своём обработчике —
17
+ * так поле Select снимает выбор с опции, а приложение может удалить таб из
18
+ * своего обработчика события фасада, — и элемент уходит раньше, чем закрытие
19
+ * дойдёт до плагина.
20
+ *
21
+ * «Ушёл» — `change:items`, а не `item:removed`: `plain` отдаёт события
22
+ * драйвера пробросом, а проброс срабатывает раньше обработчиков самого
23
+ * драйвера. На `item:removed` расширения коллекции на удаление ещё не
24
+ * ответили — Tabs не активировал соседа закрытого активного таба, —
25
+ * а `change:items` драйвер шлёт после всех `item:*` записи.
26
+ *
27
+ * Где фокус, видно только до удаления: после него узла элемента нет в
28
+ * реестре, а места — в коллекции. Поэтому узел и место (`host.place`) снимает
29
+ * и закрытие, и хук удаления (`item:remove:before`, `items:clear:before`).
30
+ * Переносится только фокус из узла уходящего элемента. Фокус, который увели,
31
+ * пока элемент уходил, остаётся, где его поставили; потерянный — ушедший на
32
+ * страницу вместе с узлом, который разметка сняла синхронно, — переносится,
33
+ * как стоявший в узле.
34
+ *
35
+ * Удаление, отменённое в хуке, фокус не трогает. Элемент, ушедший без
36
+ * закрытия, — снятый из данных или размонтированный, — фокус не переносит:
37
+ * иначе набор, который снимают целиком, гонял бы фокус по своим уходящим
38
+ * элементам. Такое ожидание висит до следующего ухода или закрытия элемента с
39
+ * фокусом, смены движка (`bind`) или сброса (`reset`): ожидание одно на
40
+ * коллекцию. Фокус помощник читает только при узле корня.
41
+ */
42
+ var TLeavingFocus = class {
43
+ _elements;
44
+ _host;
45
+ _plain = null;
46
+ _leaving;
47
+ constructor(_elements, _host) {
48
+ this._elements = _elements;
49
+ this._host = _host;
50
+ }
51
+ /**
52
+ * Движок сменился — хуки удаления и состав слушаются у нового, ожидание
53
+ * прежнего забыто. `null` — снять подписки.
54
+ */
55
+ bind(plain) {
56
+ const previous = this._plain?.events;
57
+ previous?.off("item:remove:before", this._onRemoveBefore);
58
+ previous?.off("items:clear:before", this._onClearBefore);
59
+ previous?.off("change:items", this._onItems);
60
+ this._plain = plain;
61
+ this._leaving = void 0;
62
+ plain?.events.on("item:remove:before", this._onRemoveBefore);
63
+ plain?.events.on("items:clear:before", this._onClearBefore);
64
+ plain?.events.on("change:items", this._onItems);
65
+ }
66
+ /**
67
+ * Элемент закрывают. Обычно он ещё в коллекции — закрытие удалит его
68
+ * следом, и фокус перейдёт на его уходе. Но подписчик закрытия, стоящий
69
+ * раньше плагина, мог уже снять его — и тогда фокус переходит сейчас.
70
+ */
71
+ close(item) {
72
+ this._dropCancelled();
73
+ const leaving = this._leaving;
74
+ if (leaving?.item === item) {
75
+ leaving.closed = true;
76
+ this._settle(leaving);
77
+ return;
78
+ }
79
+ this._capture(item, { closed: true });
80
+ }
81
+ /** Забыть ожидание: узел корня снят. */
82
+ reset() {
83
+ this._leaving = void 0;
84
+ }
85
+ _onRemoveBefore = (event) => this._prepare([event.item], event);
86
+ _onClearBefore = (event) => this._prepare(event.items, event);
87
+ /**
88
+ * Элементы вот-вот уйдут — пока их узлы в реестре, а места в коллекции,
89
+ * снять, не в них ли фокус и где они стоят. Уходит закрываемый элемент —
90
+ * его удаление запоминается: отменят — фокус останется на месте.
91
+ */
92
+ _prepare(items, removal) {
93
+ this._dropCancelled();
94
+ const leaving = this._leaving;
95
+ if (leaving && items.includes(leaving.item)) {
96
+ leaving.removal = removal;
97
+ return;
98
+ }
99
+ for (const item of items) if (this._capture(item, {
100
+ closed: false,
101
+ removal
102
+ })) return;
103
+ }
104
+ /**
105
+ * Состав сменился — ушёл ли элемент. Драйвер шлёт `change:items` один раз
106
+ * на запись, после всех её `item:*`, когда расширения коллекции на них уже
107
+ * ответили.
108
+ */
109
+ _onItems = ({ newValue: items }) => {
110
+ const leaving = this._leaving;
111
+ if (!leaving || items.includes(leaving.item)) return;
112
+ leaving.left = true;
113
+ this._settle(leaving);
114
+ };
115
+ /**
116
+ * Запомнить фокус элемента, если он в его узле, — вместе с местом
117
+ * элемента. Чтение фокуса — только при узле корня: на сервере документа
118
+ * нет.
119
+ *
120
+ * @returns запомнил ли — был ли фокус в узле элемента.
121
+ */
122
+ _capture(item, state) {
123
+ const root = this._host.root();
124
+ const node = root ? this._elements?.getElementByItem(item) ?? null : null;
125
+ const active = root?.ownerDocument.activeElement;
126
+ if (!node || !active || !node.contains(active)) return false;
127
+ this._leaving = {
128
+ item,
129
+ node,
130
+ place: this._host.place(item),
131
+ left: false,
132
+ ...state
133
+ };
134
+ return true;
135
+ }
136
+ /**
137
+ * Удаление отменили (`item:remove:before`, `items:clear:before`) — элемент
138
+ * на месте, и фокус остаётся с ним. Видно это только после хука, поэтому
139
+ * ожидание сбрасывает следующее закрытие или удаление.
140
+ */
141
+ _dropCancelled() {
142
+ if (this._leaving?.removal?.defaultPrevented) this._leaving = void 0;
143
+ }
144
+ /** Элемент закрыли, и он ушёл — фокус переходит. */
145
+ _settle(leaving) {
146
+ if (!leaving.closed || !leaving.left) return;
147
+ this._leaving = void 0;
148
+ this._pass(leaving);
149
+ }
150
+ /**
151
+ * Фокус, который увели из узла элемента, пока тот уходил, остаётся, где
152
+ * его поставили. Потерянный — ушедший на страницу вместе с узлом, который
153
+ * разметка сняла синхронно, — переносится, как стоявший в узле.
154
+ */
155
+ _pass(leaving) {
156
+ const root = this._host.root();
157
+ if (!root) return;
158
+ const { activeElement, body } = root.ownerDocument;
159
+ if (activeElement && activeElement !== body && !leaving.node.contains(activeElement)) return;
160
+ this._host.pass(root, leaving.place);
161
+ }
162
+ };
163
+ //#endregion
164
+ export { TLeavingFocus };
@@ -0,0 +1,14 @@
1
+ import type { IControl } from '@soxa-ui/core';
2
+ /**
3
+ * Элемент коллекции, на который можно перевести фокус: не выключен, видим и
4
+ * отрисован. Выключенное поле и скрытый узел фокус не примут, и запись
5
+ * `focused = true` ушла бы в пустоту, хотя рядом есть элемент, который его
6
+ * примет.
7
+ *
8
+ * Правило узла фокуса для коллекций, у которых своей остановки в модели нет:
9
+ * у секций Accordion остановок столько же, сколько заголовков, а остановку
10
+ * радио выбирает браузер. Где остановка в модели есть — у табов и тегов, —
11
+ * правило той же формы держит расширение коллекции (`isEnabledTab`,
12
+ * `isEnabledTag`), и копии здесь у него нет.
13
+ */
14
+ export declare function isReachable(item: Pick<IControl, 'disabled' | 'visible' | 'rendered'>): boolean;
@@ -0,0 +1,18 @@
1
+ //#region src/custom/collection/reachable.ts
2
+ /**
3
+ * Элемент коллекции, на который можно перевести фокус: не выключен, видим и
4
+ * отрисован. Выключенное поле и скрытый узел фокус не примут, и запись
5
+ * `focused = true` ушла бы в пустоту, хотя рядом есть элемент, который его
6
+ * примет.
7
+ *
8
+ * Правило узла фокуса для коллекций, у которых своей остановки в модели нет:
9
+ * у секций Accordion остановок столько же, сколько заголовков, а остановку
10
+ * радио выбирает браузер. Где остановка в модели есть — у табов и тегов, —
11
+ * правило той же формы держит расширение коллекции (`isEnabledTab`,
12
+ * `isEnabledTag`), и копии здесь у него нет.
13
+ */
14
+ function isReachable(item) {
15
+ return !item.disabled && item.visible && item.rendered;
16
+ }
17
+ //#endregion
18
+ export { isReachable };
@@ -0,0 +1,14 @@
1
+ import type { TCollectionEngine } from '@soxa-ui/core';
2
+ import type { IPluginBundle, TPluginEvents } from '../../base';
3
+ /** События реестра bundles элементов коллекции. */
4
+ export type TBundlesEvents = TPluginEvents & {
5
+ /** Коллекция привязана к реестру (вызывается bindEngine). */
6
+ 'engine:bound': (engine: TCollectionEngine<any, any>) => void;
7
+ 'bundle:registered': (payload: {
8
+ uid: string | number;
9
+ bundle: IPluginBundle;
10
+ }) => void;
11
+ 'bundle:unregistered': (payload: {
12
+ uid: string | number;
13
+ }) => void;
14
+ };