@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,271 @@
1
+ import { TBasePlugin } from "../../../base/base.class.js";
2
+ import { TElementPlugin } from "../../element/element.plugin.js";
3
+ import { isMeasurableElement } from "../../../utils/isMeasurableElement.js";
4
+ import { arrowStep, slideDirection } from "../../slide/direction.js";
5
+ //#region src/custom/table/column-resize/column-resize.plugin.ts
6
+ /** Шаг стрелки и жеста скринридера, px, — пока опция не задана. */
7
+ var STEP = 10;
8
+ /** Крупный шаг, px, — пока опция не задана: десять шагов. */
9
+ var LARGE_STEP = 100;
10
+ /**
11
+ * Ось ручки: ширина колонки растёт вдоль строки, к её концу, — горизонталь без
12
+ * разворота. По ней направление письма сводится в сторону роста
13
+ * (`slideDirection`), как у ползунка: от неё зависят и протяжка, и стрелки.
14
+ */
15
+ var AXIS = {
16
+ orientation: "horizontal",
17
+ inverted: false
18
+ };
19
+ /** Сдвиг призрака от края колонки, px по оси окна: плюс — вправо. */
20
+ var GHOST_VARIABLE = "--so-table-column-ghost";
21
+ /** Высота призрака, px: от верха заголовка до низа таблицы в видимой части окна. */
22
+ var GHOST_SIZE_VARIABLE = "--so-table-column-ghost-size";
23
+ /**
24
+ * Полоса ручки — ребёнок корня с классом `__resizer` владельца, по классу, а не
25
+ * строкой в плагине. Только прямые дети: в заголовке может лежать что угодно,
26
+ * вплоть до другой таблицы, и поиск вглубь нашёл бы её ручку.
27
+ */
28
+ function resizerOf(column, root) {
29
+ const className = column.classes.resolve("__resizer");
30
+ return Array.from(root.children).find((child) => child.classList.contains(className)) ?? null;
31
+ }
32
+ /** Поле ручки — ребёнок полосы `input`. */
33
+ function fieldOf(resizer) {
34
+ if (!resizer) return null;
35
+ return Array.from(resizer.children).find((child) => child instanceof HTMLInputElement) ?? null;
36
+ }
37
+ /**
38
+ * TTableColumnResizePlugin — ручка ширины колонки: указатель, клавиши и жест
39
+ * скринридера.
40
+ *
41
+ * Операции над DOM — здесь, ширина — у колонки: плагин переводит указатель и
42
+ * клавиши в px и зовёт её команды (`grab`, `drag`, `release`, `shift`,
43
+ * `moveToEdge`). Какой станет ширина, в каких пределах и когда слать `commit`,
44
+ * решает колонка, и жест она ведёт от своего итога ширины: ширины колонок
45
+ * раскладывает ядро, и итог — та ширина, что видна. Сторону, куда колонка
46
+ * растёт, плагин берёт у вычисленного направления письма (`slideDirection`):
47
+ * ручка стоит у конца строки, и в RTL колонку расширяет движение влево.
48
+ *
49
+ * **Указатель** — на полосе ручки: нажатие с её захватом начинает жест,
50
+ * протяжка двигает край, отпускание или отнятый указатель жест заканчивают.
51
+ * Своих действий у нажатия нет (`preventDefault`): ни выделения текста, ни
52
+ * своего фокуса браузера. Слушает корень, а не полосу: полосу разметка рисует
53
+ * и убирает, а корень — заголовок — живёт всё монтирование, и захват
54
+ * указателя держится на нём.
55
+ *
56
+ * **Отложенный жест** (`resizePreview: 'deferred'` таблицы) ширину до
57
+ * отпускания не меняет: её будущую границу показывает призрак, которого
58
+ * рисует тема по `data-resize-ghost` заголовка. Плагин пишет заголовку его
59
+ * сдвиг от края колонки (`--so-table-column-ghost`, по оси окна, на каждый
60
+ * шаг, если сменился) и высоту (`--so-table-column-ghost-size`, один раз на
61
+ * нажатии: от верха заголовка до низа таблицы в окне браузера) и снимает их
62
+ * в конце жеста. Переменные — на заголовке, а не на корне: запись на корень
63
+ * пересчитала бы стиль каждой ячейки тела. Escape посреди жеста — отмена в
64
+ * обоих режимах (`cancel` колонки).
65
+ *
66
+ * **Клавиши и жест скринридера** — у поля ручки, как у поля ползунка
67
+ * (`TSlideKeyboardPlugin`): стрелки — шаг по стороне роста, Shift со стрелкой,
68
+ * PageUp и PageDown — крупный шаг, Home и End — края хода. Поле браузер сдвинул
69
+ * бы своим шагом, поэтому клавиши плагин берёт себе. Мобильный скринридер
70
+ * клавиш не шлёт: свайп двигает поле и сообщает событием `input`, а плагин
71
+ * переводит направление правки в шаг колонки и возвращает полю её ширину.
72
+ * Шаги — опции установки.
73
+ */
74
+ var TTableColumnResizePlugin = class extends TBasePlugin {
75
+ _column = null;
76
+ _root = null;
77
+ _gesture = null;
78
+ _step = STEP;
79
+ _largeStep = LARGE_STEP;
80
+ install(ctx, options) {
81
+ super.install(ctx, options);
82
+ this._step = options?.step ?? this._step;
83
+ this._largeStep = options?.largeStep ?? this._largeStep;
84
+ this._column = ctx.getInstance();
85
+ const element = ctx.get(TElementPlugin);
86
+ element?.events.on("ready", (node) => this._attach(node));
87
+ element?.events.on("removed", () => this._detach());
88
+ }
89
+ destroy() {
90
+ this._detach();
91
+ this._column = null;
92
+ super.destroy();
93
+ }
94
+ _attach(root) {
95
+ this._detach();
96
+ this._root = root;
97
+ const target = root;
98
+ target.addEventListener("pointerdown", this._onPointerDown);
99
+ target.addEventListener("pointermove", this._onPointerMove);
100
+ target.addEventListener("pointerup", this._onPointerUp);
101
+ target.addEventListener("pointercancel", this._onPointerUp);
102
+ target.addEventListener("lostpointercapture", this._onPointerUp);
103
+ target.addEventListener("keydown", this._onKeyDown);
104
+ target.addEventListener("input", this._onInput);
105
+ }
106
+ _detach() {
107
+ this._end();
108
+ const target = this._root;
109
+ target?.removeEventListener("pointerdown", this._onPointerDown);
110
+ target?.removeEventListener("pointermove", this._onPointerMove);
111
+ target?.removeEventListener("pointerup", this._onPointerUp);
112
+ target?.removeEventListener("pointercancel", this._onPointerUp);
113
+ target?.removeEventListener("lostpointercapture", this._onPointerUp);
114
+ target?.removeEventListener("keydown", this._onKeyDown);
115
+ target?.removeEventListener("input", this._onInput);
116
+ this._root = null;
117
+ }
118
+ _onPointerDown = (event) => {
119
+ const column = this._column;
120
+ const root = this._root;
121
+ if (!column || !root || this._gesture || event.button !== 0) return;
122
+ const resizer = resizerOf(column, root);
123
+ if (!resizer || !(event.target instanceof Node) || !resizer.contains(event.target)) return;
124
+ const sign = slideDirection(AXIS, root) === "from-left" ? 1 : -1;
125
+ const ghostSize = column.resizePreview === "deferred" ? this._ghostSize(root) : 0;
126
+ if (!column.grab()) return;
127
+ event.preventDefault();
128
+ this._gesture = {
129
+ pointer: event.pointerId,
130
+ origin: event.clientX,
131
+ sign,
132
+ ghost: void 0
133
+ };
134
+ if (column.resizeGhost !== void 0 && isMeasurableElement(root)) {
135
+ root.style.setProperty(GHOST_SIZE_VARIABLE, `${ghostSize}px`);
136
+ this._moveGhost(column, root);
137
+ }
138
+ if ("setPointerCapture" in root) root.setPointerCapture(event.pointerId);
139
+ this._focus(fieldOf(resizer));
140
+ };
141
+ _onPointerMove = (event) => {
142
+ const gesture = this._gesture;
143
+ if (!gesture || event.pointerId !== gesture.pointer) return;
144
+ const column = this._column;
145
+ if (!column) return;
146
+ column.drag((event.clientX - gesture.origin) * gesture.sign);
147
+ if (this._root) this._moveGhost(column, this._root);
148
+ };
149
+ /**
150
+ * Призрак — на ширину, которую запишет отложенный жест: сдвиг от края
151
+ * колонки по оси окна. Ход колонка уже учла, поэтому за границы колонки
152
+ * призрак не уходит. Тот же сдвиг не пишется: переменная на заголовке
153
+ * пересчитывает его стиль. В живом жесте призрака нет.
154
+ */
155
+ _moveGhost(column, root) {
156
+ const gesture = this._gesture;
157
+ const ghost = column.resizeGhost;
158
+ const width = column.width;
159
+ if (!gesture || ghost === void 0 || width === void 0) return;
160
+ const offset = (ghost - width) * gesture.sign;
161
+ if (offset === gesture.ghost || !isMeasurableElement(root)) return;
162
+ gesture.ghost = offset;
163
+ root.style.setProperty(GHOST_VARIABLE, `${offset}px`);
164
+ }
165
+ /**
166
+ * Высота призрака: от верха заголовка до низа таблицы, но не ниже окна
167
+ * браузера — таблица в тысячи строк дала бы линию в сотни тысяч px.
168
+ */
169
+ _ghostSize(root) {
170
+ const table = root.closest("table") ?? root;
171
+ const view = root.ownerDocument.defaultView;
172
+ const bottom = table.getBoundingClientRect().bottom;
173
+ const top = root.getBoundingClientRect().top;
174
+ return Math.max(0, Math.min(bottom, view?.innerHeight ?? bottom) - top);
175
+ }
176
+ /** Снять переменные призрака: жест закончен. */
177
+ _clearGhost() {
178
+ const root = this._root;
179
+ if (!isMeasurableElement(root)) return;
180
+ root.style.removeProperty(GHOST_VARIABLE);
181
+ root.style.removeProperty(GHOST_SIZE_VARIABLE);
182
+ }
183
+ _onPointerUp = (event) => {
184
+ const gesture = this._gesture;
185
+ if (!gesture || event.pointerId !== gesture.pointer) return;
186
+ this._end();
187
+ };
188
+ /** Закончить жест: отпустили, браузер отнял указатель или корень ушёл. */
189
+ _end() {
190
+ const gesture = this._gesture;
191
+ if (!gesture) return;
192
+ this._gesture = null;
193
+ if (gesture.ghost !== void 0) this._clearGhost();
194
+ this._column?.release();
195
+ }
196
+ /**
197
+ * Escape посреди жеста — отмена: ширина нажатия, без `commit`. Захват
198
+ * указателя плагин отпускает сам: протяжка дальше ширину не двигает.
199
+ */
200
+ _cancel() {
201
+ const gesture = this._gesture;
202
+ const root = this._root;
203
+ if (!gesture) return;
204
+ this._gesture = null;
205
+ if (gesture.ghost !== void 0) this._clearGhost();
206
+ this._column?.cancel();
207
+ if (root && "releasePointerCapture" in root && root.hasPointerCapture(gesture.pointer)) root.releasePointerCapture(gesture.pointer);
208
+ }
209
+ /**
210
+ * Фокус — полю ручки, как у ползунка: клавиши продолжают с той ширины, на
211
+ * которой отпустили указатель. Без прокрутки: страница не должна прыгать к
212
+ * ручке, которую пользователь и так держит.
213
+ *
214
+ * И без кольца (`focusVisible: false`). Фокус ставит скрипт, а видимость
215
+ * такого фокуса браузер берёт у прошлого: пришёл тот не от мыши — свежая
216
+ * страница, Tab, — и нажатие мышью зажгло бы линию ручки, которую держит
217
+ * только фокус с клавиатуры.
218
+ */
219
+ _focus(field) {
220
+ if (field && field.ownerDocument.activeElement !== field) field.focus({
221
+ preventScroll: true,
222
+ focusVisible: false
223
+ });
224
+ }
225
+ _onKeyDown = (event) => {
226
+ if (this._gesture && event.key === "Escape") {
227
+ event.preventDefault();
228
+ this._cancel();
229
+ return;
230
+ }
231
+ if (event.altKey || event.ctrlKey || event.metaKey) return;
232
+ const column = this._column;
233
+ const root = this._root;
234
+ if (!column || !root || event.target !== fieldOf(resizerOf(column, root))) return;
235
+ const action = this._actionOf(column, root, event);
236
+ if (!action) return;
237
+ event.preventDefault();
238
+ action();
239
+ };
240
+ /** Что клавиша делает с шириной; не наша клавиша — `null`, её обработает браузер. */
241
+ _actionOf(column, root, event) {
242
+ switch (event.key) {
243
+ case "Home": return () => column.moveToEdge("start");
244
+ case "End": return () => column.moveToEdge("end");
245
+ case "PageUp": return () => column.shift(this._largeStep);
246
+ case "PageDown": return () => column.shift(-this._largeStep);
247
+ }
248
+ const step = arrowStep(slideDirection(AXIS, root), event.key);
249
+ if (step === null) return null;
250
+ const size = event.shiftKey ? this._largeStep : this._step;
251
+ return () => column.shift(step * size);
252
+ }
253
+ /**
254
+ * Правка поля не клавишей — жестом скринридера. Колонка делает шаг в ту же
255
+ * сторону, а поле показывает её ширину: и когда шаг сделан, и когда упёрся в
256
+ * край хода.
257
+ */
258
+ _onInput = (event) => {
259
+ const column = this._column;
260
+ const root = this._root;
261
+ const field = event.target;
262
+ if (!column || !root || !(field instanceof HTMLInputElement)) return;
263
+ if (field !== fieldOf(resizerOf(column, root))) return;
264
+ const direction = Math.sign(Number(field.value) - column.resizer.value);
265
+ if (direction) column.shift(direction * this._step);
266
+ const value = String(column.resizer.value);
267
+ if (field.value !== value) field.value = value;
268
+ };
269
+ };
270
+ //#endregion
271
+ export { TTableColumnResizePlugin };
@@ -0,0 +1,2 @@
1
+ export { TTableColumnResizePlugin } from './column-resize.plugin';
2
+ export type { ITableColumnResizePluginOptions, TTableColumnResizePluginEvents, TTableColumnResizeGesture, } from './types';
@@ -0,0 +1,38 @@
1
+ import type { TPluginEvents } from '../../../base';
2
+ /**
3
+ * Своих событий у плагина нет: результат жеста и клавиш виден через колонку —
4
+ * ширину, `data-resizing` и `commit` сообщает она, а таблица отдаёт наружу
5
+ * `column:resize`. Второй путь к тем же фактам через события плагина
6
+ * разошёлся бы с первым.
7
+ */
8
+ export type TTableColumnResizePluginEvents = TPluginEvents;
9
+ export interface ITableColumnResizePluginOptions {
10
+ /**
11
+ * Шаг стрелки и жеста скринридера, px. По умолчанию — 10: заметно глазу и
12
+ * не требует десятков нажатий, чтобы сдвинуть колонку на слово.
13
+ */
14
+ step?: number;
15
+ /**
16
+ * Крупный шаг — Shift со стрелкой, PageUp и PageDown, px. По умолчанию —
17
+ * 100, десять шагов, как крупный шаг ползунка.
18
+ */
19
+ largeStep?: number;
20
+ }
21
+ /** Жест, который ведёт плагин: от нажатия до отпускания. */
22
+ export type TTableColumnResizeGesture = {
23
+ /** `pointerId` указателя жеста: чужие указатели его не двигают */
24
+ pointer: number;
25
+ /** Точка нажатия по строке — `clientX` */
26
+ origin: number;
27
+ /**
28
+ * Знак роста ширины по оси окна: `1` — вправо, `-1` — влево. Ручка стоит у
29
+ * конца строки, и в RTL колонку расширяет движение влево. Вычислен при
30
+ * нажатии — на весь жест
31
+ */
32
+ sign: 1 | -1;
33
+ /**
34
+ * Сдвиг призрака, px по оси окна, который плагин записал последним, —
35
+ * только в отложенном жесте: тот же сдвиг второй раз не пишется
36
+ */
37
+ ghost: number | undefined;
38
+ };
@@ -0,0 +1,119 @@
1
+ import type { ITable } from '@soxa-ui/core';
2
+ import { TBasePlugin } from '../../../base';
3
+ import type { IPluginContext } from '../../../base';
4
+ import type { ITableGridPluginOptions, TTableGridPluginEvents } from './types';
5
+ /**
6
+ * TTableGridPlugin — сетка таблицы в документе (APG Data Grid): клавиши,
7
+ * выбор строки нажатием и DOM-фокус за фокусом сетки.
8
+ *
9
+ * Операции над DOM — здесь, фокус и выбор — у расширения `grid` коллекции
10
+ * строк: плагин переводит клавиши и нажатия в его команды (`focusCell`,
11
+ * `moveFocus`, `moveFocusToEdge`, `chooseRow`). Какая ячейка под фокусом,
12
+ * решает расширение, а плагин ставит на неё DOM-фокус. Движок плагин узнаёт
13
+ * от реестра bundles, узлы строк — от реестра узлов. Вне сетки плагин не
14
+ * делает ничего.
15
+ *
16
+ * **Ячейки** плагин находит по строкам: шапка — строка шапки своей таблицы
17
+ * (прямыми детьми, по классам владельца), строка тела — узел строки
18
+ * коллекции. Ячейки строки идут по колонкам сетки: колонка выбора и
19
+ * показанные колонки, — как их рисует таблица. Ячейки вложенной таблицы не
20
+ * её: строк этой таблицы у них нет.
21
+ *
22
+ * **Остановка Tab — сама таблица.** Фокус, пришедший на корень, — Tab в
23
+ * таблицу или нажатие мимо ячеек — плагин переводит на ячейку под фокусом
24
+ * сетки. Пришедший с клавиатуры снаружи на виджет внутри ячейки (Shift+Tab
25
+ * из-за таблицы) — тоже: у сетки одна остановка. Tab с ячейки уводит фокус
26
+ * из таблицы — к остановке за ней или, с Shift, перед ней: внутри у ячеек
27
+ * бывают свои поля и кнопки, и браузер повёл бы по ним.
28
+ *
29
+ * **Клавиши** — только с самой ячейки: ←/→ (по вычисленному направлению
30
+ * письма), ↑/↓, Home/End — края строки, Ctrl+Home/End — края сетки,
31
+ * PageUp/PageDown — на `pageStep` строк. Пробел (и Shift+пробел) на строке —
32
+ * её выбор, на ячейке колонки выбора шапки — все показанные строки или
33
+ * снять их; Ctrl/Cmd+A в `multiple` — выбрать все. Enter на заголовке
34
+ * сортируемой колонки сортирует, на остальных ячейках, как и F2, уводит
35
+ * фокус к первой остановке внутри ячейки. Там клавиши принадлежат виджетам,
36
+ * а сетке — только Escape и F2 (обратно на ячейку) и Tab (по кругу остановок
37
+ * ячейки). Ctrl+Shift+←/→ — перестановка колонки, её ведёт свой плагин.
38
+ *
39
+ * **Нажатие** по строке — где угодно, кроме контролов внутри ячейки, —
40
+ * выбор строки, как у строки ListBox. Фокус на ячейку ставит сам браузер
41
+ * (`tabindex="-1"`), а плагин сообщает его сетке (`focusin`).
42
+ */
43
+ export declare class TTableGridPlugin extends TBasePlugin<ITable, TTableGridPluginEvents> {
44
+ private _owner;
45
+ private _root;
46
+ private _engine;
47
+ private _elements;
48
+ private _pageStep;
49
+ /** Фокус придёт от нажатия указателя, а не с клавиатуры. */
50
+ private _pointer;
51
+ private _frame;
52
+ install(ctx: IPluginContext, options?: ITableGridPluginOptions): void;
53
+ destroy(): void;
54
+ private _attach;
55
+ private _detach;
56
+ /** Расширение сетки, пока таблица в сетке. */
57
+ private get _grid();
58
+ private _headRow;
59
+ private _body;
60
+ /** Строка сетки, чей узел — `line`; чужой узел — `undefined`. */
61
+ private _rowOf;
62
+ /** Узел строки сетки — пока он в теле своей таблицы. */
63
+ private _lineOf;
64
+ /**
65
+ * Ячейка сетки, в которой лежит цель, — её строка, колонка и узел. Ячейки
66
+ * строки идут по колонкам сетки; строка ещё не дорисовала смену колонок —
67
+ * ячейки нет: место в строке не совпало бы с колонкой.
68
+ */
69
+ private _cellOf;
70
+ /** Узел ячейки сетки — пока её строка дорисована по колонкам сетки. */
71
+ private _cellElement;
72
+ /**
73
+ * Фокус сетки перешёл — DOM-фокус за ним, если он в сетке: на корне или на
74
+ * ячейке. Фокус на виджете внутри ячейки плагин не трогает: там с
75
+ * клавишами работает виджет. Вне таблицы фокус сетка помнит до Tab в неё.
76
+ */
77
+ private readonly _follow;
78
+ /**
79
+ * DOM-фокус — на узел ячейки. Узла ещё нет — строку перерисовывают после
80
+ * смены, которая её показала, — ждём кадр.
81
+ */
82
+ private _focus;
83
+ private _focusNow;
84
+ private _cancelFrame;
85
+ private readonly _onPointerDown;
86
+ private readonly _onFocusIn;
87
+ private readonly _onKeyDown;
88
+ /** Клавиша с самой ячейки — ходьба по сетке, выбор и вход в ячейку. */
89
+ private _navigate;
90
+ /** Что клавиша на ячейке делает; не наша клавиша — `null`. */
91
+ private _actionOf;
92
+ /**
93
+ * Пробел: на строке — её выбор, на ячейке колонки выбора шапки — все
94
+ * показанные строки или снять их, как её чекбокс. Остальным ячейкам шапки
95
+ * пробел ничего не делает, но страницу не листает.
96
+ */
97
+ private _choose;
98
+ /** Enter: заголовок сортируемой колонки сортирует, остальные ячейки — вход в ячейку. */
99
+ private _activate;
100
+ /** Фокус — к первой остановке внутри ячейки: дальше клавиши принадлежат её виджетам. */
101
+ private _enter;
102
+ /**
103
+ * Tab с ячейки — из таблицы: к остановке за ней, с Shift — перед ней.
104
+ * Остановки нет — фокус снимается, и следующий Tab начнёт с края
105
+ * документа: внутри таблицы браузер повёл бы по полям ячеек.
106
+ */
107
+ private _leave;
108
+ /**
109
+ * Клавиша с виджета внутри ячейки. Escape и F2 возвращают фокус на ячейку,
110
+ * Tab ходит по кругу остановок ячейки: из сетки уводит Tab только с самой
111
+ * ячейки. Остальное — виджета.
112
+ */
113
+ private _interact;
114
+ /**
115
+ * Нажатие по строке — её выбор, как у строки ListBox. Контролы внутри
116
+ * ячейки — чекбокс строки, кнопки и поля слота — нажимаются сами.
117
+ */
118
+ private readonly _onClick;
119
+ }