@rt-tools/ui-kit-v2 0.23.3 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (354) hide show
  1. package/fesm2022/rt-tools-ui-kit-v2-accordion.mjs +142 -71
  2. package/fesm2022/rt-tools-ui-kit-v2-accordion.mjs.map +1 -1
  3. package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs +467 -231
  4. package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs.map +1 -1
  5. package/fesm2022/rt-tools-ui-kit-v2-ai-run-status.mjs +260 -91
  6. package/fesm2022/rt-tools-ui-kit-v2-ai-run-status.mjs.map +1 -1
  7. package/fesm2022/rt-tools-ui-kit-v2-aside-section.mjs +80 -46
  8. package/fesm2022/rt-tools-ui-kit-v2-aside-section.mjs.map +1 -1
  9. package/fesm2022/rt-tools-ui-kit-v2-aside.mjs +984 -697
  10. package/fesm2022/rt-tools-ui-kit-v2-aside.mjs.map +1 -1
  11. package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs +452 -210
  12. package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs.map +1 -1
  13. package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs +143 -52
  14. package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs.map +1 -1
  15. package/fesm2022/rt-tools-ui-kit-v2-bottom-sheet.mjs +158 -83
  16. package/fesm2022/rt-tools-ui-kit-v2-bottom-sheet.mjs.map +1 -1
  17. package/fesm2022/rt-tools-ui-kit-v2-breadcrumbs.mjs +335 -0
  18. package/fesm2022/rt-tools-ui-kit-v2-breadcrumbs.mjs.map +1 -0
  19. package/fesm2022/rt-tools-ui-kit-v2-button.mjs +437 -363
  20. package/fesm2022/rt-tools-ui-kit-v2-button.mjs.map +1 -1
  21. package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs +430 -149
  22. package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs.map +1 -1
  23. package/fesm2022/rt-tools-ui-kit-v2-card.mjs +155 -71
  24. package/fesm2022/rt-tools-ui-kit-v2-card.mjs.map +1 -1
  25. package/fesm2022/rt-tools-ui-kit-v2-carousel.mjs +155 -0
  26. package/fesm2022/rt-tools-ui-kit-v2-carousel.mjs.map +1 -0
  27. package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs +215 -110
  28. package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs.map +1 -1
  29. package/fesm2022/rt-tools-ui-kit-v2-collapsible-text.mjs +158 -75
  30. package/fesm2022/rt-tools-ui-kit-v2-collapsible-text.mjs.map +1 -1
  31. package/fesm2022/rt-tools-ui-kit-v2-color-palette.mjs +769 -0
  32. package/fesm2022/rt-tools-ui-kit-v2-color-palette.mjs.map +1 -0
  33. package/fesm2022/rt-tools-ui-kit-v2-confirm-popover.mjs +462 -253
  34. package/fesm2022/rt-tools-ui-kit-v2-confirm-popover.mjs.map +1 -1
  35. package/fesm2022/rt-tools-ui-kit-v2-container.mjs +1276 -1316
  36. package/fesm2022/rt-tools-ui-kit-v2-container.mjs.map +1 -1
  37. package/fesm2022/rt-tools-ui-kit-v2-copy-value.mjs +185 -80
  38. package/fesm2022/rt-tools-ui-kit-v2-copy-value.mjs.map +1 -1
  39. package/fesm2022/rt-tools-ui-kit-v2-core.mjs +2321 -2619
  40. package/fesm2022/rt-tools-ui-kit-v2-core.mjs.map +1 -1
  41. package/fesm2022/rt-tools-ui-kit-v2-counter-row.mjs +100 -44
  42. package/fesm2022/rt-tools-ui-kit-v2-counter-row.mjs.map +1 -1
  43. package/fesm2022/rt-tools-ui-kit-v2-counter.mjs +290 -155
  44. package/fesm2022/rt-tools-ui-kit-v2-counter.mjs.map +1 -1
  45. package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs +2097 -858
  46. package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs.map +1 -1
  47. package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs +2247 -1176
  48. package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs.map +1 -1
  49. package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs +1043 -705
  50. package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs.map +1 -1
  51. package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs +810 -525
  52. package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs.map +1 -1
  53. package/fesm2022/rt-tools-ui-kit-v2-delta-view.mjs +158 -138
  54. package/fesm2022/rt-tools-ui-kit-v2-delta-view.mjs.map +1 -1
  55. package/fesm2022/rt-tools-ui-kit-v2-detail-list.mjs +177 -67
  56. package/fesm2022/rt-tools-ui-kit-v2-detail-list.mjs.map +1 -1
  57. package/fesm2022/rt-tools-ui-kit-v2-dialog.mjs +550 -477
  58. package/fesm2022/rt-tools-ui-kit-v2-dialog.mjs.map +1 -1
  59. package/fesm2022/rt-tools-ui-kit-v2-dot-field.mjs +185 -168
  60. package/fesm2022/rt-tools-ui-kit-v2-dot-field.mjs.map +1 -1
  61. package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs +116 -43
  62. package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs.map +1 -1
  63. package/fesm2022/rt-tools-ui-kit-v2-draggable-tree.mjs +585 -0
  64. package/fesm2022/rt-tools-ui-kit-v2-draggable-tree.mjs.map +1 -0
  65. package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs +755 -259
  66. package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs.map +1 -1
  67. package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs +3266 -1115
  68. package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs.map +1 -1
  69. package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs +190 -55
  70. package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs.map +1 -1
  71. package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs +283 -103
  72. package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs.map +1 -1
  73. package/fesm2022/rt-tools-ui-kit-v2-field.mjs +393 -177
  74. package/fesm2022/rt-tools-ui-kit-v2-field.mjs.map +1 -1
  75. package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs +399 -207
  76. package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs.map +1 -1
  77. package/fesm2022/rt-tools-ui-kit-v2-file-drop.mjs +288 -212
  78. package/fesm2022/rt-tools-ui-kit-v2-file-drop.mjs.map +1 -1
  79. package/fesm2022/rt-tools-ui-kit-v2-file-input.mjs +262 -116
  80. package/fesm2022/rt-tools-ui-kit-v2-file-input.mjs.map +1 -1
  81. package/fesm2022/rt-tools-ui-kit-v2-file-list.mjs +57 -31
  82. package/fesm2022/rt-tools-ui-kit-v2-file-list.mjs.map +1 -1
  83. package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs +258 -90
  84. package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs.map +1 -1
  85. package/fesm2022/rt-tools-ui-kit-v2-form-control.mjs +249 -215
  86. package/fesm2022/rt-tools-ui-kit-v2-form-control.mjs.map +1 -1
  87. package/fesm2022/rt-tools-ui-kit-v2-header.mjs +199 -71
  88. package/fesm2022/rt-tools-ui-kit-v2-header.mjs.map +1 -1
  89. package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree-selector.mjs +231 -0
  90. package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree-selector.mjs.map +1 -0
  91. package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree.mjs +336 -0
  92. package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree.mjs.map +1 -0
  93. package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs +451 -162
  94. package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs.map +1 -1
  95. package/fesm2022/rt-tools-ui-kit-v2-icon.mjs +931 -686
  96. package/fesm2022/rt-tools-ui-kit-v2-icon.mjs.map +1 -1
  97. package/fesm2022/rt-tools-ui-kit-v2-image-cropper.mjs +664 -491
  98. package/fesm2022/rt-tools-ui-kit-v2-image-cropper.mjs.map +1 -1
  99. package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs +574 -222
  100. package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs.map +1 -1
  101. package/fesm2022/rt-tools-ui-kit-v2-info-item.mjs +150 -36
  102. package/fesm2022/rt-tools-ui-kit-v2-info-item.mjs.map +1 -1
  103. package/fesm2022/rt-tools-ui-kit-v2-inline-edit.mjs +606 -0
  104. package/fesm2022/rt-tools-ui-kit-v2-inline-edit.mjs.map +1 -0
  105. package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs +461 -355
  106. package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs.map +1 -1
  107. package/fesm2022/rt-tools-ui-kit-v2-input.mjs +338 -143
  108. package/fesm2022/rt-tools-ui-kit-v2-input.mjs.map +1 -1
  109. package/fesm2022/rt-tools-ui-kit-v2-live-badge.mjs +135 -48
  110. package/fesm2022/rt-tools-ui-kit-v2-live-badge.mjs.map +1 -1
  111. package/fesm2022/rt-tools-ui-kit-v2-logo.mjs +166 -92
  112. package/fesm2022/rt-tools-ui-kit-v2-logo.mjs.map +1 -1
  113. package/fesm2022/rt-tools-ui-kit-v2-markdown-text.mjs +118 -56
  114. package/fesm2022/rt-tools-ui-kit-v2-markdown-text.mjs.map +1 -1
  115. package/fesm2022/rt-tools-ui-kit-v2-menu.mjs +1054 -527
  116. package/fesm2022/rt-tools-ui-kit-v2-menu.mjs.map +1 -1
  117. package/fesm2022/rt-tools-ui-kit-v2-message.mjs +230 -104
  118. package/fesm2022/rt-tools-ui-kit-v2-message.mjs.map +1 -1
  119. package/fesm2022/rt-tools-ui-kit-v2-money-list.mjs +210 -70
  120. package/fesm2022/rt-tools-ui-kit-v2-money-list.mjs.map +1 -1
  121. package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs +532 -311
  122. package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs.map +1 -1
  123. package/fesm2022/rt-tools-ui-kit-v2-night-grid.mjs +125 -50
  124. package/fesm2022/rt-tools-ui-kit-v2-night-grid.mjs.map +1 -1
  125. package/fesm2022/rt-tools-ui-kit-v2-note.mjs +73 -43
  126. package/fesm2022/rt-tools-ui-kit-v2-note.mjs.map +1 -1
  127. package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs +161 -53
  128. package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs.map +1 -1
  129. package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs +491 -310
  130. package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs.map +1 -1
  131. package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs +374 -174
  132. package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs.map +1 -1
  133. package/fesm2022/rt-tools-ui-kit-v2-photo-viewer.mjs +202 -159
  134. package/fesm2022/rt-tools-ui-kit-v2-photo-viewer.mjs.map +1 -1
  135. package/fesm2022/rt-tools-ui-kit-v2-popover.mjs +438 -309
  136. package/fesm2022/rt-tools-ui-kit-v2-popover.mjs.map +1 -1
  137. package/fesm2022/rt-tools-ui-kit-v2-profile-menu.mjs +295 -0
  138. package/fesm2022/rt-tools-ui-kit-v2-profile-menu.mjs.map +1 -0
  139. package/fesm2022/rt-tools-ui-kit-v2-prompt-suggestion.mjs +135 -45
  140. package/fesm2022/rt-tools-ui-kit-v2-prompt-suggestion.mjs.map +1 -1
  141. package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs +293 -171
  142. package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs.map +1 -1
  143. package/fesm2022/rt-tools-ui-kit-v2-radius.mjs +62 -55
  144. package/fesm2022/rt-tools-ui-kit-v2-radius.mjs.map +1 -1
  145. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +3379 -1466
  146. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
  147. package/fesm2022/rt-tools-ui-kit-v2-ripple.mjs +114 -116
  148. package/fesm2022/rt-tools-ui-kit-v2-ripple.mjs.map +1 -1
  149. package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs +406 -299
  150. package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs.map +1 -1
  151. package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs +137 -36
  152. package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs.map +1 -1
  153. package/fesm2022/rt-tools-ui-kit-v2-select.mjs +687 -468
  154. package/fesm2022/rt-tools-ui-kit-v2-select.mjs.map +1 -1
  155. package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs +2195 -1569
  156. package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs.map +1 -1
  157. package/fesm2022/rt-tools-ui-kit-v2-skeleton-wrapper.mjs +187 -48
  158. package/fesm2022/rt-tools-ui-kit-v2-skeleton-wrapper.mjs.map +1 -1
  159. package/fesm2022/rt-tools-ui-kit-v2-skeleton.mjs +242 -122
  160. package/fesm2022/rt-tools-ui-kit-v2-skeleton.mjs.map +1 -1
  161. package/fesm2022/rt-tools-ui-kit-v2-speed-menu.mjs +439 -0
  162. package/fesm2022/rt-tools-ui-kit-v2-speed-menu.mjs.map +1 -0
  163. package/fesm2022/rt-tools-ui-kit-v2-spinner.mjs +218 -69
  164. package/fesm2022/rt-tools-ui-kit-v2-spinner.mjs.map +1 -1
  165. package/fesm2022/rt-tools-ui-kit-v2-split-button.mjs +292 -91
  166. package/fesm2022/rt-tools-ui-kit-v2-split-button.mjs.map +1 -1
  167. package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs +225 -138
  168. package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs.map +1 -1
  169. package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs +150 -116
  170. package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs.map +1 -1
  171. package/fesm2022/rt-tools-ui-kit-v2-table.mjs +2462 -1583
  172. package/fesm2022/rt-tools-ui-kit-v2-table.mjs.map +1 -1
  173. package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs +647 -346
  174. package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs.map +1 -1
  175. package/fesm2022/rt-tools-ui-kit-v2-tag.mjs +335 -121
  176. package/fesm2022/rt-tools-ui-kit-v2-tag.mjs.map +1 -1
  177. package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs +217 -84
  178. package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs.map +1 -1
  179. package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs +151 -72
  180. package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs.map +1 -1
  181. package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs +697 -226
  182. package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs.map +1 -1
  183. package/fesm2022/rt-tools-ui-kit-v2-timeline.mjs +92 -38
  184. package/fesm2022/rt-tools-ui-kit-v2-timeline.mjs.map +1 -1
  185. package/fesm2022/rt-tools-ui-kit-v2-toast.mjs +752 -338
  186. package/fesm2022/rt-tools-ui-kit-v2-toast.mjs.map +1 -1
  187. package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs +310 -129
  188. package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs.map +1 -1
  189. package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs +286 -158
  190. package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs.map +1 -1
  191. package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs +270 -134
  192. package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs.map +1 -1
  193. package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs +322 -202
  194. package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs.map +1 -1
  195. package/fesm2022/rt-tools-ui-kit-v2-tree-selector.mjs +908 -0
  196. package/fesm2022/rt-tools-ui-kit-v2-tree-selector.mjs.map +1 -0
  197. package/fesm2022/rt-tools-ui-kit-v2-tree.mjs +785 -0
  198. package/fesm2022/rt-tools-ui-kit-v2-tree.mjs.map +1 -0
  199. package/fesm2022/rt-tools-ui-kit-v2-welcome-dialog.mjs +118 -63
  200. package/fesm2022/rt-tools-ui-kit-v2-welcome-dialog.mjs.map +1 -1
  201. package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs +783 -262
  202. package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs.map +1 -1
  203. package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs +633 -294
  204. package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs.map +1 -1
  205. package/fesm2022/rt-tools-ui-kit-v2.mjs +100 -103
  206. package/package.json +45 -1
  207. package/src/assets/icons/collapse-all.svg +9 -0
  208. package/src/assets/icons/expand-all.svg +9 -0
  209. package/src/assets/icons-material/collapse-all.fill.svg +5 -0
  210. package/src/assets/icons-material/collapse-all.svg +5 -0
  211. package/src/assets/icons-material/expand-all.fill.svg +5 -0
  212. package/src/assets/icons-material/expand-all.svg +5 -0
  213. package/src/assets/icons-material/undo.fill.svg +5 -0
  214. package/src/assets/icons-material/undo.svg +5 -0
  215. package/src/lib/components/bottom-sheet/CONTEXT.md +20 -2
  216. package/src/lib/components/bottom-sheet/rt-bottom-sheet.component.scss +36 -1
  217. package/src/lib/components/breadcrumbs/CONTEXT.md +37 -0
  218. package/src/lib/components/breadcrumbs/rt-breadcrumbs.component.scss +205 -0
  219. package/src/lib/components/carousel/CONTEXT.md +42 -0
  220. package/src/lib/components/carousel/rt-carousel.component.scss +117 -0
  221. package/src/lib/components/checkbox/CONTEXT.md +3 -0
  222. package/src/lib/components/checkbox/rt-checkbox.component.scss +9 -3
  223. package/src/lib/components/color-palette/CONTEXT.md +49 -0
  224. package/src/lib/components/color-palette/picker/rt-color-picker.component.scss +161 -0
  225. package/src/lib/components/color-palette/rt-color-palette.component.scss +132 -0
  226. package/src/lib/components/draggable-tree/CONTEXT.md +54 -0
  227. package/src/lib/components/draggable-tree/rt-draggable-tree.component.scss +219 -0
  228. package/src/lib/components/hybrid-tree/CONTEXT.md +31 -0
  229. package/src/lib/components/hybrid-tree-selector/CONTEXT.md +25 -0
  230. package/src/lib/components/icon-button/CONTEXT.md +3 -0
  231. package/src/lib/components/inline-edit/CONTEXT.md +41 -0
  232. package/src/lib/components/inline-edit/rt-inline-edit.component.scss +274 -0
  233. package/src/lib/components/popover/CONTEXT.md +3 -0
  234. package/src/lib/components/profile-menu/CONTEXT.md +32 -0
  235. package/src/lib/components/profile-menu/rt-profile-menu.component.scss +104 -0
  236. package/src/lib/components/speed-menu/CONTEXT.md +34 -0
  237. package/src/lib/components/speed-menu/rt-speed-menu.component.scss +118 -0
  238. package/src/lib/components/tag/rt-tag.component.scss +12 -0
  239. package/src/lib/components/thread-list/CONTEXT.md +1 -0
  240. package/src/lib/components/thread-list/rt-thread-list.component.scss +2 -1
  241. package/src/lib/components/toolbar/CONTEXT.md +9 -4
  242. package/src/lib/components/toolbar/rt-toolbar.component.scss +10 -2
  243. package/src/lib/components/tooltip/CONTEXT.md +8 -1
  244. package/src/lib/components/tree/CONTEXT.md +66 -0
  245. package/src/lib/components/tree/rt-tree.component.scss +313 -0
  246. package/src/lib/components/tree-selector/CONTEXT.md +47 -0
  247. package/src/lib/components/tree-selector/rt-tree-selector.component.scss +121 -0
  248. package/src/styles/_primitives.scss +4 -0
  249. package/src/styles/_semantic.scss +5 -0
  250. package/styles/tokens.css +43 -0
  251. package/types/rt-tools-ui-kit-v2-accordion.d.ts +31 -24
  252. package/types/rt-tools-ui-kit-v2-action-bar.d.ts +112 -91
  253. package/types/rt-tools-ui-kit-v2-ai-run-status.d.ts +64 -40
  254. package/types/rt-tools-ui-kit-v2-aside-section.d.ts +13 -10
  255. package/types/rt-tools-ui-kit-v2-aside.d.ts +268 -206
  256. package/types/rt-tools-ui-kit-v2-autocomplete.d.ts +102 -61
  257. package/types/rt-tools-ui-kit-v2-bar-list.d.ts +39 -27
  258. package/types/rt-tools-ui-kit-v2-bottom-sheet.d.ts +31 -20
  259. package/types/rt-tools-ui-kit-v2-breadcrumbs.d.ts +89 -0
  260. package/types/rt-tools-ui-kit-v2-button.d.ts +119 -59
  261. package/types/rt-tools-ui-kit-v2-calendar.d.ts +151 -86
  262. package/types/rt-tools-ui-kit-v2-card.d.ts +42 -21
  263. package/types/rt-tools-ui-kit-v2-carousel.d.ts +76 -0
  264. package/types/rt-tools-ui-kit-v2-checkbox.d.ts +48 -24
  265. package/types/rt-tools-ui-kit-v2-collapsible-text.d.ts +28 -20
  266. package/types/rt-tools-ui-kit-v2-color-palette.d.ts +208 -0
  267. package/types/rt-tools-ui-kit-v2-confirm-popover.d.ts +104 -47
  268. package/types/rt-tools-ui-kit-v2-container.d.ts +278 -221
  269. package/types/rt-tools-ui-kit-v2-copy-value.d.ts +39 -24
  270. package/types/rt-tools-ui-kit-v2-core.d.ts +862 -865
  271. package/types/rt-tools-ui-kit-v2-counter-row.d.ts +20 -12
  272. package/types/rt-tools-ui-kit-v2-counter.d.ts +70 -38
  273. package/types/rt-tools-ui-kit-v2-data-list.d.ts +429 -264
  274. package/types/rt-tools-ui-kit-v2-data-table.d.ts +500 -351
  275. package/types/rt-tools-ui-kit-v2-date-picker.d.ts +164 -138
  276. package/types/rt-tools-ui-kit-v2-date-range.d.ts +102 -84
  277. package/types/rt-tools-ui-kit-v2-delta-view.d.ts +16 -13
  278. package/types/rt-tools-ui-kit-v2-detail-list.d.ts +23 -16
  279. package/types/rt-tools-ui-kit-v2-dialog.d.ts +130 -101
  280. package/types/rt-tools-ui-kit-v2-dot-field.d.ts +10 -13
  281. package/types/rt-tools-ui-kit-v2-download-link.d.ts +22 -17
  282. package/types/rt-tools-ui-kit-v2-draggable-tree.d.ts +132 -0
  283. package/types/rt-tools-ui-kit-v2-dynamic-list.d.ts +185 -96
  284. package/types/rt-tools-ui-kit-v2-dynamic-selector.d.ts +904 -404
  285. package/types/rt-tools-ui-kit-v2-empty-state.d.ts +48 -19
  286. package/types/rt-tools-ui-kit-v2-expansion-panel.d.ts +67 -39
  287. package/types/rt-tools-ui-kit-v2-field.d.ts +90 -49
  288. package/types/rt-tools-ui-kit-v2-file-card.d.ts +115 -75
  289. package/types/rt-tools-ui-kit-v2-file-drop.d.ts +75 -48
  290. package/types/rt-tools-ui-kit-v2-file-input.d.ts +53 -36
  291. package/types/rt-tools-ui-kit-v2-file-list.d.ts +5 -8
  292. package/types/rt-tools-ui-kit-v2-filter-control.d.ts +83 -49
  293. package/types/rt-tools-ui-kit-v2-form-control.d.ts +102 -74
  294. package/types/rt-tools-ui-kit-v2-header.d.ts +40 -22
  295. package/types/rt-tools-ui-kit-v2-hybrid-tree-selector.d.ts +14 -0
  296. package/types/rt-tools-ui-kit-v2-hybrid-tree.d.ts +72 -0
  297. package/types/rt-tools-ui-kit-v2-icon-button.d.ts +190 -90
  298. package/types/rt-tools-ui-kit-v2-icon.d.ts +160 -129
  299. package/types/rt-tools-ui-kit-v2-image-cropper.d.ts +151 -111
  300. package/types/rt-tools-ui-kit-v2-image-upload.d.ts +159 -85
  301. package/types/rt-tools-ui-kit-v2-info-item.d.ts +26 -13
  302. package/types/rt-tools-ui-kit-v2-inline-edit.d.ts +194 -0
  303. package/types/rt-tools-ui-kit-v2-input-number.d.ts +102 -53
  304. package/types/rt-tools-ui-kit-v2-input.d.ts +82 -43
  305. package/types/rt-tools-ui-kit-v2-live-badge.d.ts +30 -17
  306. package/types/rt-tools-ui-kit-v2-logo.d.ts +49 -32
  307. package/types/rt-tools-ui-kit-v2-markdown-text.d.ts +26 -17
  308. package/types/rt-tools-ui-kit-v2-menu.d.ts +272 -155
  309. package/types/rt-tools-ui-kit-v2-message.d.ts +59 -33
  310. package/types/rt-tools-ui-kit-v2-money-list.d.ts +36 -18
  311. package/types/rt-tools-ui-kit-v2-multiselect.d.ts +114 -80
  312. package/types/rt-tools-ui-kit-v2-night-grid.d.ts +34 -25
  313. package/types/rt-tools-ui-kit-v2-note.d.ts +12 -9
  314. package/types/rt-tools-ui-kit-v2-notifications-bell.d.ts +37 -16
  315. package/types/rt-tools-ui-kit-v2-page-header.d.ts +218 -150
  316. package/types/rt-tools-ui-kit-v2-pagination.d.ts +99 -63
  317. package/types/rt-tools-ui-kit-v2-photo-viewer.d.ts +61 -66
  318. package/types/rt-tools-ui-kit-v2-popover.d.ts +116 -55
  319. package/types/rt-tools-ui-kit-v2-profile-menu.d.ts +103 -0
  320. package/types/rt-tools-ui-kit-v2-prompt-suggestion.d.ts +26 -16
  321. package/types/rt-tools-ui-kit-v2-radio-button.d.ts +85 -43
  322. package/types/rt-tools-ui-kit-v2-radius.d.ts +18 -15
  323. package/types/rt-tools-ui-kit-v2-rich-editor.d.ts +931 -590
  324. package/types/rt-tools-ui-kit-v2-ripple.d.ts +28 -25
  325. package/types/rt-tools-ui-kit-v2-scroll-area.d.ts +60 -58
  326. package/types/rt-tools-ui-kit-v2-section-nav.d.ts +32 -22
  327. package/types/rt-tools-ui-kit-v2-select.d.ts +182 -139
  328. package/types/rt-tools-ui-kit-v2-side-menu.d.ts +452 -349
  329. package/types/rt-tools-ui-kit-v2-skeleton-wrapper.d.ts +53 -20
  330. package/types/rt-tools-ui-kit-v2-skeleton.d.ts +55 -26
  331. package/types/rt-tools-ui-kit-v2-speed-menu.d.ts +131 -0
  332. package/types/rt-tools-ui-kit-v2-spinner.d.ts +56 -28
  333. package/types/rt-tools-ui-kit-v2-split-button.d.ts +96 -55
  334. package/types/rt-tools-ui-kit-v2-stat-tile.d.ts +88 -60
  335. package/types/rt-tools-ui-kit-v2-stepper.d.ts +50 -37
  336. package/types/rt-tools-ui-kit-v2-table.d.ts +631 -480
  337. package/types/rt-tools-ui-kit-v2-tabs.d.ts +198 -113
  338. package/types/rt-tools-ui-kit-v2-tag.d.ts +106 -53
  339. package/types/rt-tools-ui-kit-v2-textarea.d.ts +48 -25
  340. package/types/rt-tools-ui-kit-v2-theme-toggle.d.ts +28 -26
  341. package/types/rt-tools-ui-kit-v2-thread-list.d.ts +154 -94
  342. package/types/rt-tools-ui-kit-v2-timeline.d.ts +30 -28
  343. package/types/rt-tools-ui-kit-v2-toast.d.ts +174 -98
  344. package/types/rt-tools-ui-kit-v2-toggle-button-group.d.ts +132 -86
  345. package/types/rt-tools-ui-kit-v2-toggle-switch.d.ts +88 -50
  346. package/types/rt-tools-ui-kit-v2-toolbar.d.ts +30 -27
  347. package/types/rt-tools-ui-kit-v2-tooltip.d.ts +65 -41
  348. package/types/rt-tools-ui-kit-v2-tree-selector.d.ts +257 -0
  349. package/types/rt-tools-ui-kit-v2-tree.d.ts +282 -0
  350. package/types/rt-tools-ui-kit-v2-welcome-dialog.d.ts +21 -24
  351. package/types/rt-tools-ui-kit-v2-workspace-details.d.ts +195 -124
  352. package/types/rt-tools-ui-kit-v2-workspace.d.ts +122 -79
  353. package/types/rt-tools-ui-kit-v2.d.ts +100 -90
  354. package/fesm2022/rt-tools-ui-kit-v2.mjs.map +0 -1
@@ -1,18 +1,17 @@
1
- import { BooleanInput, NumberInput } from '@angular/cdk/coercion';
2
- import * as i0 from '@angular/core';
3
- import { WritableSignal, Signal, InputSignal, InputSignalWithTransform, TemplateRef, PipeTransform, OutputEmitterRef, ModelSignal } from '@angular/core';
4
- import { IRtIconButton } from '@rt-tools/ui-kit-v2/icon-button';
5
- import { IRtIcon, TRtKitLabelMap } from '@rt-tools/ui-kit-v2/core';
6
- import { TFilterOperatorType, ISortModel, TListSortOrderType, IFilterModel } from '@rt-tools/utils';
7
- import { CdkTable, CdkColumnDef, CdkTableDataSourceInput } from '@angular/cdk/table';
8
- import * as i1 from '@rt-tools/ui-kit-v2/radius';
9
- import { Observable } from 'rxjs';
10
- import { RtRouteAsideComponent } from '@rt-tools/ui-kit-v2/container';
11
- import { CdkDragDrop } from '@angular/cdk/drag-drop';
12
- import { FormControl } from '@angular/forms';
13
- import { RtPopoverDirective } from '@rt-tools/ui-kit-v2/popover';
14
- import { IRtSelect } from '@rt-tools/ui-kit-v2/select';
15
-
1
+ import { BooleanInput, NumberInput } from "@angular/cdk/coercion";
2
+ import * as i0 from "@angular/core";
3
+ import { InputSignal, InputSignalWithTransform, ModelSignal, OutputEmitterRef, PipeTransform, Signal, TemplateRef, WritableSignal } from "@angular/core";
4
+ import { IRtIconButton } from "@rt-tools/ui-kit-v2/icon-button";
5
+ import { IRtIcon, TRtKitLabelMap } from "@rt-tools/ui-kit-v2/core";
6
+ import { IFilterModel, ISortModel, TFilterOperatorType, TListSortOrderType } from "@rt-tools/utils";
7
+ import { CdkColumnDef, CdkTable, CdkTableDataSourceInput } from "@angular/cdk/table";
8
+ import * as i1 from "@rt-tools/ui-kit-v2/radius";
9
+ import { Observable } from "rxjs";
10
+ import { RtRouteAsideComponent } from "@rt-tools/ui-kit-v2/container";
11
+ import { CdkDragDrop } from "@angular/cdk/drag-drop";
12
+ import { FormControl } from "@angular/forms";
13
+ import { RtPopoverDirective } from "@rt-tools/ui-kit-v2/popover";
14
+ import { IRtSelect } from "@rt-tools/ui-kit-v2/select";
16
15
  /** Значение для буфера: явная строка/число либо `null` (тогда берётся отображаемый текст). */
17
16
  type TCopyValue = string | number | null;
18
17
  /**
@@ -35,140 +34,143 @@ type TCopyValue = string | number | null;
35
34
  * через `variant` (по умолчанию `ghost`). После клика на `RESET_DELAY_MS`
36
35
  * иконка меняется `copy`→`check`, подпись — на «Скопировано».
37
36
  */
38
- declare class RtCopyCellComponent {
39
- #private;
40
- protected readonly copied: WritableSignal<boolean>;
41
- /**
42
- * Подсказка со значением целиком — только у обрезанного.
43
- *
44
- * У помещающегося она повторяла бы то, что человек и так читает, и всплывала бы над каждой
45
- * ячейкой таблицы; пустая строка директиву подсказки выключает.
46
- */
47
- protected readonly hint: WritableSignal<string>;
48
- protected readonly iconName: Signal<IRtIcon.Name>;
49
- protected readonly actionLabel: Signal<string>;
50
- /**
51
- * Строка для буфера. Если не задана — копируется отображаемый текст
52
- * (textContent проецируемого контента). Число приводится к строке.
53
- */
54
- readonly value: InputSignal<TCopyValue>;
55
- /** Палитра кнопки копирования. В таблицах — `ghost`; вне таблиц удобнее `secondary`. */
56
- readonly variant: InputSignal<IRtIconButton.Variant>;
57
- /**
58
- * Прятать кнопку до наведения/фокуса (поведение плотных таблиц). `false` —
59
- * кнопка всегда видима: нужно вне таблиц (модалки/карточки), где нет строки
60
- * для hover.
61
- */
62
- readonly revealOnHover: InputSignalWithTransform<boolean, BooleanInput>;
63
- constructor();
64
- /**
65
- * Замер обрезки в момент наведения.
66
- *
67
- * Ширина известна только отрисованному узлу, а меняется она и от переезда столбца, и от
68
- * ширины окна: посчитанная один раз при заведении, она соврала бы при первом же изменении.
69
- */
70
- protected measureTruncation(): void;
71
- protected onCopy(event: MouseEvent): void;
72
- static ɵfac: i0.ɵɵFactoryDeclaration<RtCopyCellComponent, never>;
73
- static ɵcmp: i0.ɵɵComponentDeclaration<RtCopyCellComponent, "rt-copy-cell", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "revealOnHover": { "alias": "revealOnHover"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
37
+ export declare class RtCopyCellComponent {
38
+ #private;
39
+ protected readonly copied: WritableSignal<boolean>;
40
+ /**
41
+ * Подсказка со значением целиком — только у обрезанного.
42
+ *
43
+ * У помещающегося она повторяла бы то, что человек и так читает, и всплывала бы над каждой
44
+ * ячейкой таблицы; пустая строка директиву подсказки выключает.
45
+ */
46
+ protected readonly hint: WritableSignal<string>;
47
+ protected readonly iconName: Signal<IRtIcon.Name>;
48
+ protected readonly actionLabel: Signal<string>;
49
+ /**
50
+ * Строка для буфера. Если не задана — копируется отображаемый текст
51
+ * (textContent проецируемого контента). Число приводится к строке.
52
+ */
53
+ readonly value: InputSignal<TCopyValue>;
54
+ /** Палитра кнопки копирования. В таблицах — `ghost`; вне таблиц удобнее `secondary`. */
55
+ readonly variant: InputSignal<IRtIconButton.Variant>;
56
+ /**
57
+ * Прятать кнопку до наведения/фокуса (поведение плотных таблиц). `false` —
58
+ * кнопка всегда видима: нужно вне таблиц (модалки/карточки), где нет строки
59
+ * для hover.
60
+ */
61
+ readonly revealOnHover: InputSignalWithTransform<boolean, BooleanInput>;
62
+ constructor();
63
+ /**
64
+ * Замер обрезки в момент наведения.
65
+ *
66
+ * Ширина известна только отрисованному узлу, а меняется она и от переезда столбца, и от
67
+ * ширины окна: посчитанная один раз при заведении, она соврала бы при первом же изменении.
68
+ */
69
+ protected measureTruncation(): void;
70
+ protected onCopy(event: MouseEvent): void;
71
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtCopyCellComponent, never>;
72
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtCopyCellComponent, "rt-copy-cell", never, {
73
+ "value": {
74
+ "alias": "value";
75
+ "required": false;
76
+ "isSignal": true;
77
+ };
78
+ "variant": {
79
+ "alias": "variant";
80
+ "required": false;
81
+ "isSignal": true;
82
+ };
83
+ "revealOnHover": {
84
+ "alias": "revealOnHover";
85
+ "required": false;
86
+ "isSignal": true;
87
+ };
88
+ }, {}, never, ["*"], true, never>;
74
89
  }
75
-
76
- /**
77
- * Контракты `rt-table` — стилизованная обёртка над `cdk-table` из `@angular/cdk/table`.
78
- * Один корневой неймспейс с префиксом `I`.
79
- *
80
- * Сама декларация колонок (`cdkColumnDef`, `*cdkHeaderCellDef`, `*cdkCellDef`) и
81
- * строк (`*cdkHeaderRowDef`, `*cdkRowDef`) живёт на стороне consumer'а — пишется
82
- * в шаблоне через template-projection. rt-table даёт визуальный treatment
83
- * (border 1px, height 50px, padding 16px 20px, hover-строка, `density`).
84
- */
85
-
86
- declare namespace IRtTable {
87
- /** Плотность таблицы — модификатор `rt-table--density--<value>`. */
88
- type Density = 'default' | 'compact';
89
- /**
90
- * Есть ли у строки хотя бы одно доступное действие. Заполняется экраном тем же
91
- * признаком, которым он гейтит сами пункты меню.
92
- */
93
- type RowActionsPredicate<TRow> = (row: TRow) => boolean;
94
- /**
95
- * Метаданные колонки для настраиваемых таблиц (панель настроек: видимость + порядок).
96
- * `key` совпадает с `cdkColumnDef` и именем в `displayedColumns`. Порядок по умолчанию —
97
- * позиция в массиве `[columnsConfig]`.
98
- */
99
- interface ColumnConfig {
100
- key: string;
101
- label: string;
102
- /** Скрыта по умолчанию (пользователь может показать в панели). Default false. */
103
- hidden?: boolean;
104
- /** Нельзя скрыть/переместить — всегда видима на своём месте. Default false. */
105
- locked?: boolean;
106
- /** Заголовок колонки переключает порядок строк. Default false. */
107
- sortable?: boolean;
108
- /** Чем колонка отбирает. Без этого поля отбора у колонки нет вовсе. */
109
- filter?: IRtTable.ColumnFilter;
110
- }
111
- /**
112
- * Одна ячейка строки отбора: ключ колонки и её отбор. `null` в отборе значит, что колонка
113
- * ничего не отбирает, — ячейка рисуется пустой и держит место колонки.
114
- */
115
- interface FilterCell {
116
- key: string;
117
- filter: IRtTable.ColumnFilter | null;
118
- /** Ячейка колонки действий строки: она нулевая, как шапка и ячейки этой колонки. */
119
- actions: boolean;
120
- }
121
- /** Каким видом колонка отбирает: вид решает, какую готовую часть кита позовёт шапка. */
122
- type FilterKind = 'text' | 'number' | 'select' | 'date';
123
- /**
124
- * Чем колонка отбирает. Вид объявляет колонка, а не угадывает значение: догадка по значению
125
- * читает пустую колонку как текст, и колонка получает сравнение, которого не обещала.
126
- *
127
- * `operators` — те виды сравнения, которые колонка разрешает; `startOperator` — тот, с
128
- * которого она начинает. `options` нужны только виду `select`.
129
- */
130
- interface ColumnFilter {
131
- kind: IRtTable.FilterKind;
132
- operators?: readonly TFilterOperatorType[];
133
- startOperator?: TFilterOperatorType;
134
- options?: readonly IRtTable.FilterOption[];
135
- }
136
- /** Один вариант выбора для отбора вида `select`. */
137
- interface FilterOption {
138
- value: string | number;
139
- label: string;
140
- }
141
- /** Текущее состояние настроек колонок (порядок ключей + скрытые ключи), применяемое к рендеру. */
142
- interface ColumnSettings {
143
- order: string[];
144
- hidden: string[];
145
- }
146
- /** Строка списка в панели настроек: конфиг колонки + разрешённое «скрыта». */
147
- interface ColumnSettingItem extends ColumnConfig {
148
- hidden: boolean;
149
- }
90
+ export declare namespace IRtTable {
91
+ /** Плотность таблицы — модификатор `rt-table--density--<value>`. */
92
+ type Density = 'default' | 'compact';
93
+ /**
94
+ * Есть ли у строки хотя бы одно доступное действие. Заполняется экраном тем же
95
+ * признаком, которым он гейтит сами пункты меню.
96
+ */
97
+ type RowActionsPredicate<TRow> = (row: TRow) => boolean;
98
+ /**
99
+ * Метаданные колонки для настраиваемых таблиц (панель настроек: видимость + порядок).
100
+ * `key` совпадает с `cdkColumnDef` и именем в `displayedColumns`. Порядок по умолчанию —
101
+ * позиция в массиве `[columnsConfig]`.
102
+ */
103
+ interface ColumnConfig {
104
+ key: string;
105
+ label: string;
106
+ /** Скрыта по умолчанию (пользователь может показать в панели). Default false. */
107
+ hidden?: boolean;
108
+ /** Нельзя скрыть/переместить — всегда видима на своём месте. Default false. */
109
+ locked?: boolean;
110
+ /** Заголовок колонки переключает порядок строк. Default false. */
111
+ sortable?: boolean;
112
+ /** Чем колонка отбирает. Без этого поля отбора у колонки нет вовсе. */
113
+ filter?: IRtTable.ColumnFilter;
114
+ }
115
+ /**
116
+ * Одна ячейка строки отбора: ключ колонки и её отбор. `null` в отборе значит, что колонка
117
+ * ничего не отбирает, — ячейка рисуется пустой и держит место колонки.
118
+ */
119
+ interface FilterCell {
120
+ key: string;
121
+ filter: IRtTable.ColumnFilter | null;
122
+ /** Ячейка колонки действий строки: она нулевая, как шапка и ячейки этой колонки. */
123
+ actions: boolean;
124
+ }
125
+ /** Каким видом колонка отбирает: вид решает, какую готовую часть кита позовёт шапка. */
126
+ type FilterKind = 'text' | 'number' | 'select' | 'date';
127
+ /**
128
+ * Чем колонка отбирает. Вид объявляет колонка, а не угадывает значение: догадка по значению
129
+ * читает пустую колонку как текст, и колонка получает сравнение, которого не обещала.
130
+ *
131
+ * `operators` — те виды сравнения, которые колонка разрешает; `startOperator` — тот, с
132
+ * которого она начинает. `options` нужны только виду `select`.
133
+ */
134
+ interface ColumnFilter {
135
+ kind: IRtTable.FilterKind;
136
+ operators?: readonly TFilterOperatorType[];
137
+ startOperator?: TFilterOperatorType;
138
+ options?: readonly IRtTable.FilterOption[];
139
+ }
140
+ /** Один вариант выбора для отбора вида `select`. */
141
+ interface FilterOption {
142
+ value: string | number;
143
+ label: string;
144
+ }
145
+ /** Текущее состояние настроек колонок (порядок ключей + скрытые ключи), применяемое к рендеру. */
146
+ interface ColumnSettings {
147
+ order: string[];
148
+ hidden: string[];
149
+ }
150
+ /** Строка списка в панели настроек: конфиг колонки + разрешённое «скрыта». */
151
+ interface ColumnSettingItem extends ColumnConfig {
152
+ hidden: boolean;
153
+ }
150
154
  }
151
-
152
155
  /** Значение атрибута `aria-sort` заголовка: направление либо его отсутствие. */
153
- type TRtTableAriaSort = 'ascending' | 'descending' | 'none';
156
+ export type TRtTableAriaSort = 'ascending' | 'descending' | 'none';
154
157
  /**
155
158
  * Следующее состояние сортировки при нажатии на заголовок колонки.
156
159
  *
157
160
  * Порядок кругов: по возрастанию → по убыванию → без сортировки. Третье состояние
158
161
  * нужно, чтобы пользователь мог вернуть исходный порядок, не перезагружая список.
159
162
  */
160
- declare function nextSort(current: ISortModel<string> | null, propertyName: string): ISortModel<string> | null;
163
+ export declare function nextSort(current: ISortModel<string> | null, propertyName: string): ISortModel<string> | null;
161
164
  /** Направление сортировки по этой колонке либо `null`, когда сортирует другая. */
162
- declare function sortDirectionOf(current: ISortModel<string> | null, propertyName: string): TListSortOrderType | null;
165
+ export declare function sortDirectionOf(current: ISortModel<string> | null, propertyName: string): TListSortOrderType | null;
163
166
  /** Значение `aria-sort` заголовка: направление читается скринридером с самой колонки. */
164
- declare function ariaSortOf(current: ISortModel<string> | null, propertyName: string): TRtTableAriaSort;
167
+ export declare function ariaSortOf(current: ISortModel<string> | null, propertyName: string): TRtTableAriaSort;
165
168
  /**
166
169
  * Сортируется ли колонка. Колонка, описанная в `columnsConfig`, сортируется только
167
170
  * по своему признаку; колонки, которой в конфиге нет, метаданных взять неоткуда —
168
171
  * объявлением служит сам заголовок.
169
172
  */
170
- declare function isColumnSortable(config: ReadonlyArray<IRtTable.ColumnConfig>, key: string): boolean;
171
-
173
+ export declare function isColumnSortable(config: ReadonlyArray<IRtTable.ColumnConfig>, key: string): boolean;
172
174
  /**
173
175
  * Заголовок сортируемой колонки — атрибутом на ячейке шапки:
174
176
  * `<th *cdkHeaderCellDef cdk-header-cell rtSortHeader="checkIn">Заезд</th>`.
@@ -181,25 +183,30 @@ declare function isColumnSortable(config: ReadonlyArray<IRtTable.ColumnConfig>,
181
183
  * иначе заголовок остаётся обычной подписью. Элементная форма селектора нужна правилу
182
184
  * префиксов и в разметке не применяется: `aria-sort` принадлежит ячейке шапки.
183
185
  */
184
- declare class RtTableSortHeaderComponent {
185
- #private;
186
- /** Направление сортировки по этой колонке; `null` — сортирует другая либо никакая. */
187
- protected readonly direction: Signal<TListSortOrderType | null>;
188
- protected readonly icon: Signal<IRtIcon.Name>;
189
- protected readonly sortable: Signal<boolean>;
190
- /** Ключ колонки — тот же, что в `cdkColumnDef` и в `[columnsConfig]`. */
191
- readonly rtSortHeader: InputSignal<string>;
192
- readonly ariaSort: Signal<TRtTableAriaSort>;
193
- protected onToggle(): void;
194
- static ɵfac: i0.ɵɵFactoryDeclaration<RtTableSortHeaderComponent, never>;
195
- static ɵcmp: i0.ɵɵComponentDeclaration<RtTableSortHeaderComponent, "rt-table-sort-header, th[rtSortHeader]", never, { "rtSortHeader": { "alias": "rtSortHeader"; "required": true; "isSignal": true; }; }, {}, never, ["*"], true, never>;
186
+ export declare class RtTableSortHeaderComponent {
187
+ #private;
188
+ /** Направление сортировки по этой колонке; `null` — сортирует другая либо никакая. */
189
+ protected readonly direction: Signal<TListSortOrderType | null>;
190
+ protected readonly icon: Signal<IRtIcon.Name>;
191
+ protected readonly sortable: Signal<boolean>;
192
+ /** Ключ колонки — тот же, что в `cdkColumnDef` и в `[columnsConfig]`. */
193
+ readonly rtSortHeader: InputSignal<string>;
194
+ readonly ariaSort: Signal<TRtTableAriaSort>;
195
+ protected onToggle(): void;
196
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtTableSortHeaderComponent, never>;
197
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtTableSortHeaderComponent, "rt-table-sort-header, th[rtSortHeader]", never, {
198
+ "rtSortHeader": {
199
+ "alias": "rtSortHeader";
200
+ "required": true;
201
+ "isSignal": true;
202
+ };
203
+ }, {}, never, ["*"], true, never>;
196
204
  }
197
-
198
205
  /**
199
206
  * Контекст шаблона `[rtTableCard]`: `$implicit` — строка таблицы.
200
207
  */
201
- interface IRtTableCardContext<TRow> {
202
- $implicit: TRow;
208
+ export interface IRtTableCardContext<TRow> {
209
+ $implicit: TRow;
203
210
  }
204
211
  /**
205
212
  * Захватывает `<ng-template rtTableCard let-row>` — кастомную разметку карточки
@@ -221,25 +228,30 @@ interface IRtTableCardContext<TRow> {
221
228
  * </rt-table>
222
229
  * ```
223
230
  */
224
- declare class RtTableCardDirective<TRow = unknown> {
225
- readonly template: TemplateRef<IRtTableCardContext<TRow>>;
226
- /**
227
- * Type-carrier для вывода `TRow`: биндят тот же массив, что в `dataSource`.
228
- * Значение в рантайме не читается — служит только подсказкой типизации для
229
- * `let-row` (через `ngTemplateContextGuard`).
230
- */
231
- readonly rtTableCardRowType: InputSignal<readonly TRow[]>;
232
- /** Type-guard: сужает контекст шаблона до строки таблицы при проверке шаблонов. */
233
- static ngTemplateContextGuard<TRow>(_directive: RtTableCardDirective<TRow>, context: unknown): context is IRtTableCardContext<TRow>;
234
- static ɵfac: i0.ɵɵFactoryDeclaration<RtTableCardDirective<any>, never>;
235
- static ɵdir: i0.ɵɵDirectiveDeclaration<RtTableCardDirective<any>, "ng-template[rtTableCard]", never, { "rtTableCardRowType": { "alias": "rtTableCardRowType"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
231
+ export declare class RtTableCardDirective<TRow = unknown> {
232
+ readonly template: TemplateRef<IRtTableCardContext<TRow>>;
233
+ /**
234
+ * Type-carrier для вывода `TRow`: биндят тот же массив, что в `dataSource`.
235
+ * Значение в рантайме не читается — служит только подсказкой типизации для
236
+ * `let-row` (через `ngTemplateContextGuard`).
237
+ */
238
+ readonly rtTableCardRowType: InputSignal<readonly TRow[]>;
239
+ /** Type-guard: сужает контекст шаблона до строки таблицы при проверке шаблонов. */
240
+ static ngTemplateContextGuard<TRow>(_directive: RtTableCardDirective<TRow>, context: unknown): context is IRtTableCardContext<TRow>;
241
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtTableCardDirective<any>, never>;
242
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RtTableCardDirective<any>, "ng-template[rtTableCard]", never, {
243
+ "rtTableCardRowType": {
244
+ "alias": "rtTableCardRowType";
245
+ "required": false;
246
+ "isSignal": true;
247
+ };
248
+ }, {}, never, never, true, never>;
236
249
  }
237
-
238
250
  /**
239
251
  * Контекст шаблона `[rtTableRowActions]`: `$implicit` — строка таблицы.
240
252
  */
241
- interface IRtTableRowActionsContext<TRow> {
242
- $implicit: TRow;
253
+ export interface IRtTableRowActionsContext<TRow> {
254
+ $implicit: TRow;
243
255
  }
244
256
  /**
245
257
  * Захватывает `<ng-template rtTableRowActions let-row>` — содержимое «…»-меню
@@ -262,21 +274,26 @@ interface IRtTableRowActionsContext<TRow> {
262
274
  * </rt-table>
263
275
  * ```
264
276
  */
265
- declare class RtTableRowActionsDirective<TRow = unknown> {
266
- readonly template: TemplateRef<IRtTableRowActionsContext<TRow>>;
267
- /**
268
- * Type-carrier для вывода `TRow`: биндят тот же массив, что в `dataSource`.
269
- * Значение в рантайме не читается — служит только подсказкой типизации для
270
- * `let-row` (через `ngTemplateContextGuard`). Имя совпадает с binding'ом —
271
- * без alias, чтобы не триггерить `no-input-rename`.
272
- */
273
- readonly rtTableRowActionsRowType: InputSignal<readonly TRow[]>;
274
- /** Type-guard: сужает контекст шаблона до строки таблицы при проверке шаблонов. */
275
- static ngTemplateContextGuard<TRow>(_directive: RtTableRowActionsDirective<TRow>, context: unknown): context is IRtTableRowActionsContext<TRow>;
276
- static ɵfac: i0.ɵɵFactoryDeclaration<RtTableRowActionsDirective<any>, never>;
277
- static ɵdir: i0.ɵɵDirectiveDeclaration<RtTableRowActionsDirective<any>, "ng-template[rtTableRowActions]", never, { "rtTableRowActionsRowType": { "alias": "rtTableRowActionsRowType"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
277
+ export declare class RtTableRowActionsDirective<TRow = unknown> {
278
+ readonly template: TemplateRef<IRtTableRowActionsContext<TRow>>;
279
+ /**
280
+ * Type-carrier для вывода `TRow`: биндят тот же массив, что в `dataSource`.
281
+ * Значение в рантайме не читается — служит только подсказкой типизации для
282
+ * `let-row` (через `ngTemplateContextGuard`). Имя совпадает с binding'ом —
283
+ * без alias, чтобы не триггерить `no-input-rename`.
284
+ */
285
+ readonly rtTableRowActionsRowType: InputSignal<readonly TRow[]>;
286
+ /** Type-guard: сужает контекст шаблона до строки таблицы при проверке шаблонов. */
287
+ static ngTemplateContextGuard<TRow>(_directive: RtTableRowActionsDirective<TRow>, context: unknown): context is IRtTableRowActionsContext<TRow>;
288
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtTableRowActionsDirective<any>, never>;
289
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RtTableRowActionsDirective<any>, "ng-template[rtTableRowActions]", never, {
290
+ "rtTableRowActionsRowType": {
291
+ "alias": "rtTableRowActionsRowType";
292
+ "required": false;
293
+ "isSignal": true;
294
+ };
295
+ }, {}, never, never, true, never>;
278
296
  }
279
-
280
297
  /**
281
298
  * Есть ли у строки хотя бы одно доступное действие.
282
299
  *
@@ -287,8 +304,7 @@ declare class RtTableRowActionsDirective<TRow = unknown> {
287
304
  * Предикат не задан — у строки есть действия: экран, который ничего не гейтит,
288
305
  * показывает кнопку меню, как и раньше.
289
306
  */
290
- declare function rowHasAvailableActions<TRow>(row: TRow, hasActions: IRtTable.RowActionsPredicate<TRow> | null): boolean;
291
-
307
+ export declare function rowHasAvailableActions<TRow>(row: TRow, hasActions: IRtTable.RowActionsPredicate<TRow> | null): boolean;
292
308
  /**
293
309
  * Есть ли у строки доступные действия — гейт кнопки «…» в ячейке действий.
294
310
  *
@@ -296,12 +312,11 @@ declare function rowHasAvailableActions<TRow>(row: TRow, hasActions: IRtTable.Ro
296
312
  * цикле проверки. Значение приходит из контекста шаблона (строка таблицы), поэтому
297
313
  * `computed()` здесь неприменим.
298
314
  */
299
- declare class RtRowHasActionsPipe implements PipeTransform {
300
- transform<TRow>(row: TRow, hasActions: IRtTable.RowActionsPredicate<TRow> | null): boolean;
301
- static ɵfac: i0.ɵɵFactoryDeclaration<RtRowHasActionsPipe, never>;
302
- static ɵpipe: i0.ɵɵPipeDeclaration<RtRowHasActionsPipe, "rtRowHasActions", true>;
315
+ export declare class RtRowHasActionsPipe implements PipeTransform {
316
+ transform<TRow>(row: TRow, hasActions: IRtTable.RowActionsPredicate<TRow> | null): boolean;
317
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtRowHasActionsPipe, never>;
318
+ static ɵpipe: i0.ɵɵPipeDeclaration<RtRowHasActionsPipe, "rtRowHasActions", true>;
303
319
  }
304
-
305
320
  /**
306
321
  * Делает строку таблицы (`<tr cdk-row>`) активируемой — общий паттерн «клик по
307
322
  * строке открывает деталь/асайд». Инкапсулирует доступность: строка становится
@@ -312,21 +327,22 @@ declare class RtRowHasActionsPipe implements PipeTransform {
312
327
  * Роль строки не переопределяется (table-семантика для скрин-ридеров сохраняется).
313
328
  * Визуальный аффорданс (cursor/hover/focus-ring) включает `[clickable]` на rt-table.
314
329
  */
315
- declare class RtTableRowDirective {
316
- readonly activated: OutputEmitterRef<void>;
317
- protected onClick(event: MouseEvent): void;
318
- protected onKey(event: Event): void;
319
- static ɵfac: i0.ɵɵFactoryDeclaration<RtTableRowDirective, never>;
320
- static ɵdir: i0.ɵɵDirectiveDeclaration<RtTableRowDirective, "[rtTableRow]", never, {}, { "activated": "activated"; }, never, never, true, never>;
330
+ export declare class RtTableRowDirective {
331
+ readonly activated: OutputEmitterRef<void>;
332
+ protected onClick(event: MouseEvent): void;
333
+ protected onKey(event: Event): void;
334
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtTableRowDirective, never>;
335
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RtTableRowDirective, "[rtTableRow]", never, {}, {
336
+ "activated": "activated";
337
+ }, never, never, true, never>;
321
338
  }
322
-
323
339
  /** Имя внутренней «…»-колонки действий, добавляемой при `[showRowActions]`. */
324
- declare const RT_TABLE_ROW_ACTIONS_COLUMN: string;
340
+ export declare const RT_TABLE_ROW_ACTIONS_COLUMN: string;
325
341
  /**
326
342
  * Колонки конфига без применённых настроек пользователя — источник для кнопки
327
343
  * «Сбросить» в панели. Закрытая колонка видима всегда: скрыть её панель не даёт.
328
344
  */
329
- declare function defaultColumnItems(config: ReadonlyArray<IRtTable.ColumnConfig>): ReadonlyArray<IRtTable.ColumnSettingItem>;
345
+ export declare function defaultColumnItems(config: ReadonlyArray<IRtTable.ColumnConfig>): ReadonlyArray<IRtTable.ColumnSettingItem>;
330
346
  /**
331
347
  * Разрешённые колонки настраиваемой таблицы: конфиг в применённом порядке с текущим
332
348
  * признаком скрытия.
@@ -335,30 +351,46 @@ declare function defaultColumnItems(config: ReadonlyArray<IRtTable.ColumnConfig>
335
351
  * сохранения, встают в конец: настройки, снятые с прежнего состава, иначе прятали бы
336
352
  * новую колонку молча. Настроек нет — порядок и скрытие берутся из самого конфига.
337
353
  */
338
- declare function resolveColumns(config: ReadonlyArray<IRtTable.ColumnConfig>, settings: IRtTable.ColumnSettings | null): ReadonlyArray<IRtTable.ColumnSettingItem>;
354
+ export declare function resolveColumns(config: ReadonlyArray<IRtTable.ColumnConfig>, settings: IRtTable.ColumnSettings | null): ReadonlyArray<IRtTable.ColumnSettingItem>;
339
355
  /**
340
356
  * Имена колонок для строк CDK: у настраиваемой таблицы — видимые в применённом порядке,
341
357
  * у остальных — то, что назвал вход `[columns]`. Колонка действий встаёт последней, когда
342
358
  * действия строки включены.
343
359
  */
344
- declare function displayedColumnKeys(resolved: ReadonlyArray<IRtTable.ColumnSettingItem>, legacyColumns: ReadonlyArray<string>, configurable: boolean, showRowActions: boolean): ReadonlyArray<string>;
360
+ export declare function displayedColumnKeys(resolved: ReadonlyArray<IRtTable.ColumnSettingItem>, legacyColumns: ReadonlyArray<string>, configurable: boolean, showRowActions: boolean): ReadonlyArray<string>;
345
361
  /**
346
362
  * Настройки панели, приведённые к конфигу: ключи закрытых колонок из списка скрытых
347
363
  * вычищаются. Панель их не предлагает, но настройки приезжают и из хранилища — снятые с
348
364
  * той поры, когда колонка закрытой ещё не была.
349
365
  */
350
- declare function withoutLockedHidden(config: ReadonlyArray<IRtTable.ColumnConfig>, settings: IRtTable.ColumnSettings): IRtTable.ColumnSettings;
351
-
366
+ export declare function withoutLockedHidden(config: ReadonlyArray<IRtTable.ColumnConfig>, settings: IRtTable.ColumnSettings): IRtTable.ColumnSettings;
352
367
  /**
353
368
  * Поле авто-карточки узкого экрана: подпись колонки и её шаблон ячейки. Значение рисуется
354
369
  * тем же шаблоном, что и в строке таблицы, — второй разметки у карточки нет.
355
370
  */
356
371
  interface IRtTableCardColumn<TRow> {
357
- key: string;
358
- label: string;
359
- cell: TemplateRef<IRtTableCardContext<TRow>>;
372
+ key: string;
373
+ label: string;
374
+ cell: TemplateRef<IRtTableCardContext<TRow>>;
360
375
  }
361
-
376
+ /**
377
+ * Строки, которые можно показать карточками. Источник данных таблицы бывает массивом,
378
+ * потоком и своим объектом, а карточки строятся только по массиву: у остальных состав строк
379
+ * известен лишь самой таблице, и брать его отсюда нечем.
380
+ */
381
+ declare function cardRowsOf<TRow>(dataSource: unknown): ReadonlyArray<TRow>;
382
+ /**
383
+ * Есть ли строки в источнике данных. CdkTable принимает массив, поток и свой объект — точно
384
+ * ответить можно только про массив. Для остальных ответ `true`: заглушку «пусто» и скелет там не
385
+ * показываем, раз не можем знать наверняка.
386
+ */
387
+ declare function hasRowsIn(dataSource: unknown): boolean;
388
+ /**
389
+ * Поля авто-карточки: видимые колонки, кроме колонки действий, с подписью из конфига и
390
+ * шаблоном ячейки из объявления колонки. Колонка без шаблона ячейки пропускается — рисовать
391
+ * её значение нечем.
392
+ */
393
+ declare function cardColumnsOf<TRow>(displayedColumns: ReadonlyArray<string>, columnDefs: ReadonlyArray<CdkColumnDef>, columnsConfig: ReadonlyArray<IRtTable.ColumnConfig>): ReadonlyArray<IRtTableCardColumn<TRow>>;
362
394
  /**
363
395
  * Таблица — стилизованная обёртка над `cdk-table` (`@angular/cdk/table`).
364
396
  *
@@ -369,175 +401,274 @@ interface IRtTableCardColumn<TRow> {
369
401
  *
370
402
  * Какие состояния таблица различает и чем рисует каждое — в заметке семьи рядом, `CONTEXT.md`.
371
403
  */
372
- declare class RtTableComponent<TRow> extends CdkTable<TRow> {
373
- #private;
374
- /** Колонка действий и её ячейки: регистрируются в CdkTable вручную — почему, сказано в `CONTEXT.md`. */
375
- private readonly actionsColumnDef?;
376
- private readonly actionsCellDef?;
377
- private readonly actionsHeaderCellDef?;
378
- /**
379
- * Роль хоста: у native `<table rt-table>` она есть от самого тега, а элементному
380
- * `<rt-table>` её ставим сами. Без неё скрин-ридер читает список строками текста: роли
381
- * строк и ячеек CDK проставляет сам, а роли самой таблицы у него нет, и проставленные
382
- * остаются висеть вне таблицы. Считается один раз — тег хоста по ходу жизни не меняется.
383
- */
384
- protected readonly hostRole: 'table' | null;
385
- /** `true` когда initial-load в полёте и entities ещё нет — рендерим skeleton rows. */
386
- protected readonly isInitialLoading: Signal<boolean>;
387
- /** `true` когда загрузка завершена и entities пустые — рендерим empty placeholder. */
388
- protected readonly isEmpty: Signal<boolean>;
389
- /** Массив для `@for` — числа от 0 до skeletonRows-1, рендерим placeholder-rows. */
390
- protected readonly skeletonRowIndexes: Signal<ReadonlyArray<number>>;
391
- /** Шаблон содержимого «…»-меню действий строки (`<ng-template rtTableRowActions>`). */
392
- protected readonly rowActions: Signal<RtTableRowActionsDirective | undefined>;
393
- /** Кастомный шаблон карточки мобильного режима (`<ng-template rtTableCard>`). Опционален. */
394
- protected readonly cardTemplate: Signal<RtTableCardDirective | undefined>;
395
- /**
396
- * Все проецируемые потребителем `cdkColumnDef` — источник cell-шаблонов для
397
- * авто-карточек. «…»-колонка действий объявлена во view rt-table, поэтому в
398
- * этот content-query не попадает.
399
- */
400
- protected readonly columnDefs: Signal<ReadonlyArray<CdkColumnDef>>;
401
- /** Узкий вьюпорт (≤1080px): таблица прячется, строки рендерятся карточками. */
402
- protected readonly isNarrow: Signal<boolean>;
403
- /** Карточки показываются только когда card-режим включён (`[cards]`) и экран узкий. */
404
- protected readonly showCards: Signal<boolean>;
405
- /**
406
- * Строки для карточек узкого экрана. Признак `#dataSourceVersion` пересчитывает список
407
- * при смене источника: CDK хранит его полем, а не сигналом.
408
- */
409
- protected readonly cardRows: Signal<ReadonlyArray<TRow>>;
410
- /** Поля авто-карточки узкого экрана: видимые колонки с подписью и шаблоном ячейки. */
411
- protected readonly cardColumns: Signal<ReadonlyArray<IRtTableCardColumn<TRow>>>;
412
- /** ContentChild template для кастом empty-placeholder'а. Опционален; fallback — emptyMessage. */
413
- readonly emptyTemplate: Signal<TemplateRef<unknown> | undefined>;
414
- /** ARIA-label корневого `<table>` (или `<rt-table>` элемента). */
415
- readonly ariaLabel: InputSignal<string | null>;
416
- /** Плотность: `"compact"` уменьшает padding и высоту ячеек. */
417
- readonly density: InputSignal<IRtTable.Density>;
418
- /**
419
- * Мобильный card-режим на узком экране (≤1080px): таблица рендерится списком
420
- * карточек «поле: значение». Включён по умолчанию для всех списков. Отключать
421
- * (`[cards]="false"`) для не-списочных таблиц — например, key-value quote-таблицы
422
- * внутри асайда, где карточки дублируют смысл.
423
- */
424
- readonly cards: InputSignalWithTransform<boolean, BooleanInput>;
425
- /**
426
- * Строки кликабельны (открывают деталь/асайд). Включает визуальный аффорданс
427
- * (cursor/focus-ring); саму активацию + a11y обеспечивает директива
428
- * `rtTableRow` на `<tr cdk-row>`.
429
- */
430
- readonly clickable: InputSignalWithTransform<boolean, BooleanInput>;
431
- /** Initial-load в полёте. При `true` + пустых entities рендерит skeleton rows. */
432
- readonly loading: InputSignalWithTransform<boolean, BooleanInput>;
433
- /** Re-fetch в полёте. При `true` рисует sticky overlay c rt-spinner поверх существующих rows. */
434
- readonly fetching: InputSignalWithTransform<boolean, BooleanInput>;
435
- /** Имена колонок (тот же массив что в `*cdkRowDef columns: ...`). Нужен для skeleton row layout. */
436
- readonly columns: InputSignal<ReadonlyArray<string>>;
437
- /**
438
- * Метаданные колонок для настраиваемой таблицы: `[{key,label,hidden?,locked?}]`.
439
- * Когда задан — `displayedColumns()` вычисляется из него с учётом настроек
440
- * (видимость + порядок), а таблица получает панель настроек (при заданном `[tableId]`).
441
- * Пуст — таблица работает по legacy `[columns]` без панели.
442
- */
443
- readonly columnsConfig: InputSignal<ReadonlyArray<IRtTable.ColumnConfig>>;
444
- /**
445
- * Идентификатор таблицы для персиста настроек колонок (ключ в IndexedDB).
446
- * Без него панель настроек недоступна (`canConfigure()` = false).
447
- */
448
- readonly tableId: InputSignal<string | null>;
449
- /**
450
- * Добавляет в конец строки «…»-колонку действий (`rt-menu`). Содержимое меню —
451
- * через `<ng-template rtTableRowActions let-row>`; колонку нужно подключить
452
- * в row-def'ах через `displayedColumns()`.
453
- */
454
- readonly showRowActions: InputSignalWithTransform<boolean, BooleanInput>;
455
- /**
456
- * Есть ли у строки доступные действия. Строка, которой нельзя сделать ничего,
457
- * кнопки «…» не показывает вовсе. Экран заполняет тем же признаком, которым
458
- * гейтит пункты меню; `null` — у всех строк действия есть.
459
- */
460
- readonly rowHasActions: InputSignal<IRtTable.RowActionsPredicate<TRow> | null>;
461
- /**
462
- * Показывать ли строку отбора под шапкой. Таблица с отбором в настройке колонок не
463
- * становится таблицей с полями над строками сама: вторая строка шапки стоит высоты
464
- * экрана, и платить за неё решает потребитель.
465
- */
466
- readonly showFilters: InputSignalWithTransform<boolean, BooleanInput>;
467
- /** Набор условий, по которому нарисованы ячейки отбора. Держит его потребитель. */
468
- readonly filters: InputSignal<ReadonlyArray<IFilterModel<string>>>;
469
- /** Набор условий изменился. Строки сужает потребитель — таблица только сообщает. */
470
- readonly filtersChange: OutputEmitterRef<ReadonlyArray<IFilterModel<string>>>;
471
- /** Выбранная сортировка: `null` — порядок задаёт источник данных. */
472
- readonly sort: InputSignal<ISortModel<string> | null>;
473
- /** Пользователь переключил порядок заголовком. Саму выборку делает потребитель. */
474
- readonly sortChange: OutputEmitterRef<ISortModel<string> | null>;
475
- /** Текущая сортировка — её читают заголовки колонок (`rtSortHeader`). */
476
- readonly currentSort: Signal<ISortModel<string> | null>;
477
- /**
478
- * Разрешённые колонки настраиваемой таблицы: `[columnsConfig]` в применённом
479
- * порядке, с текущим флагом `hidden` (locked всегда видимы). Панель настроек
480
- * читает этот список для отрисовки; из него же строится `displayedColumns()`.
481
- * Пустой при отсутствии `[columnsConfig]` (legacy-режим).
482
- */
483
- readonly resolvedColumns: Signal<ReadonlyArray<IRtTable.ColumnSettingItem>>;
484
- /**
485
- * Колонки для `*cdkHeaderRowDef`/`*cdkRowDef`. При заданном `[columnsConfig]` —
486
- * видимые колонки в применённом порядке; иначе — legacy `[columns]`. Плюс
487
- * «…»-колонка действий в конце при `[showRowActions]`. Потребитель читает через
488
- * template-ref: `<rt-table #t="rtTable" ...>` →
489
- * `*cdkRowDef="let row; columns: t.displayedColumns()"`.
490
- */
491
- readonly displayedColumns: Signal<ReadonlyArray<string>>;
492
- /**
493
- * Ячейки строки отбора: по ячейке на каждую показанную колонку, в том же порядке. У
494
- * колонки без объявленного отбора ячейка пустая, но своё место держит — иначе ячейки
495
- * съезжают на соседние колонки. Колонка действий строки попадает сюда тем же путём:
496
- * `displayedColumns()` уже несёт её последней.
497
- */
498
- readonly filterCells: Signal<ReadonlyArray<IRtTable.FilterCell>>;
499
- /** `true` когда таблица настраиваемая: есть и `[columnsConfig]`, и `[tableId]`. */
500
- readonly canConfigure: Signal<boolean>;
501
- /** Сколько skeleton-строк рендерить во время initial-load. Default 5. */
502
- readonly skeletonRows: InputSignalWithTransform<number, NumberInput>;
503
- /** Подпись пустой таблицы; пусто — берётся переведённое умолчание. */
504
- readonly emptyMessage: InputSignal<string>;
505
- /** Своя подпись пустой таблицы важнее умолчания */
506
- readonly emptyText: Signal<string>;
507
- /** Иконка дефолтного empty-placeholder'а (rt-empty-state). `null` — без иконки. */
508
- readonly emptyIcon: InputSignal<IRtIcon.Name | null>;
509
- /** Описание под заголовком дефолтного empty-placeholder'а. Опционально. */
510
- readonly emptyDescription: InputSignal<string | null>;
511
- ngOnInit(): void;
512
- ngOnDestroy(): void;
513
- /**
514
- * Переключает порядок по колонке: по возрастанию → по убыванию → без сортировки.
515
- * Выбранное состояние уходит наружу — выборку делает потребитель.
516
- */
517
- toggleSort(propertyName: string): void;
518
- /** Ячейка отбора сообщила новый набор условий — таблица отдаёт его наружу целиком. */
519
- reportFilters(filters: ReadonlyArray<IFilterModel<string>>): void;
520
- applyColumnSettings(settings: IRtTable.ColumnSettings): void;
521
- /**
522
- * Пробрасывает `dataSource` в CdkTable и отдельно инвалидирует signals,
523
- * которые вычисляют loading/empty-состояния по plain CDK input.
524
- */
525
- set dataSource(dataSource: CdkTableDataSourceInput<TRow>);
526
- /** Возвращает текущий источник данных, сохранённый базовым CdkTable. */
527
- get dataSource(): CdkTableDataSourceInput<TRow>;
528
- static ɵfac: i0.ɵɵFactoryDeclaration<RtTableComponent<any>, never>;
529
- static ɵcmp: i0.ɵɵComponentDeclaration<RtTableComponent<any>, "rt-table, table[rt-table]", ["rtTable"], { "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "density": { "alias": "density"; "required": false; "isSignal": true; }; "cards": { "alias": "cards"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "fetching": { "alias": "fetching"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "columnsConfig": { "alias": "columnsConfig"; "required": false; "isSignal": true; }; "tableId": { "alias": "tableId"; "required": false; "isSignal": true; }; "showRowActions": { "alias": "showRowActions"; "required": false; "isSignal": true; }; "rowHasActions": { "alias": "rowHasActions"; "required": false; "isSignal": true; }; "showFilters": { "alias": "showFilters"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "sort": { "alias": "sort"; "required": false; "isSignal": true; }; "skeletonRows": { "alias": "skeletonRows"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "emptyIcon": { "alias": "emptyIcon"; "required": false; "isSignal": true; }; "emptyDescription": { "alias": "emptyDescription"; "required": false; "isSignal": true; }; }, { "filtersChange": "filtersChange"; "sortChange": "sortChange"; }, ["rowActions", "cardTemplate", "columnDefs", "emptyTemplate"], ["caption", "colgroup, col"], true, [{ directive: typeof i1.RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
404
+ export declare class RtTableComponent<TRow> extends CdkTable<TRow> {
405
+ #private;
406
+ /** Колонка действий и её ячейки: регистрируются в CdkTable вручную — почему, сказано в `CONTEXT.md`. */
407
+ private readonly actionsColumnDef?;
408
+ private readonly actionsCellDef?;
409
+ private readonly actionsHeaderCellDef?;
410
+ /**
411
+ * Роль хоста: у native `<table rt-table>` она есть от самого тега, а элементному
412
+ * `<rt-table>` её ставим сами. Без неё скрин-ридер читает список строками текста: роли
413
+ * строк и ячеек CDK проставляет сам, а роли самой таблицы у него нет, и проставленные
414
+ * остаются висеть вне таблицы. Считается один раз — тег хоста по ходу жизни не меняется.
415
+ */
416
+ protected readonly hostRole: 'table' | null;
417
+ /** `true` когда initial-load в полёте и entities ещё нет — рендерим skeleton rows. */
418
+ protected readonly isInitialLoading: Signal<boolean>;
419
+ /** `true` когда загрузка завершена и entities пустые — рендерим empty placeholder. */
420
+ protected readonly isEmpty: Signal<boolean>;
421
+ /** Массив для `@for` — числа от 0 до skeletonRows-1, рендерим placeholder-rows. */
422
+ protected readonly skeletonRowIndexes: Signal<ReadonlyArray<number>>;
423
+ /** Шаблон содержимого «…»-меню действий строки (`<ng-template rtTableRowActions>`). */
424
+ protected readonly rowActions: Signal<RtTableRowActionsDirective | undefined>;
425
+ /** Кастомный шаблон карточки мобильного режима (`<ng-template rtTableCard>`). Опционален. */
426
+ protected readonly cardTemplate: Signal<RtTableCardDirective | undefined>;
427
+ /**
428
+ * Все проецируемые потребителем `cdkColumnDef` — источник cell-шаблонов для
429
+ * авто-карточек. «…»-колонка действий объявлена во view rt-table, поэтому в
430
+ * этот content-query не попадает.
431
+ */
432
+ protected readonly columnDefs: Signal<ReadonlyArray<CdkColumnDef>>;
433
+ /** Узкий вьюпорт (≤1080px): таблица прячется, строки рендерятся карточками. */
434
+ protected readonly isNarrow: Signal<boolean>;
435
+ /** Карточки показываются только когда card-режим включён (`[cards]`) и экран узкий. */
436
+ protected readonly showCards: Signal<boolean>;
437
+ /**
438
+ * Строки для карточек узкого экрана. Признак `#dataSourceVersion` пересчитывает список
439
+ * при смене источника: CDK хранит его полем, а не сигналом.
440
+ */
441
+ protected readonly cardRows: Signal<ReadonlyArray<TRow>>;
442
+ /** Поля авто-карточки узкого экрана: видимые колонки с подписью и шаблоном ячейки. */
443
+ protected readonly cardColumns: Signal<ReadonlyArray<IRtTableCardColumn<TRow>>>;
444
+ /** ContentChild template для кастом empty-placeholder'а. Опционален; fallback — emptyMessage. */
445
+ readonly emptyTemplate: Signal<TemplateRef<unknown> | undefined>;
446
+ /** ARIA-label корневого `<table>` (или `<rt-table>` элемента). */
447
+ readonly ariaLabel: InputSignal<string | null>;
448
+ /** Плотность: `"compact"` уменьшает padding и высоту ячеек. */
449
+ readonly density: InputSignal<IRtTable.Density>;
450
+ /**
451
+ * Мобильный card-режим на узком экране (≤1080px): таблица рендерится списком
452
+ * карточек «поле: значение». Включён по умолчанию для всех списков. Отключать
453
+ * (`[cards]="false"`) для не-списочных таблиц — например, key-value quote-таблицы
454
+ * внутри асайда, где карточки дублируют смысл.
455
+ */
456
+ readonly cards: InputSignalWithTransform<boolean, BooleanInput>;
457
+ /**
458
+ * Строки кликабельны (открывают деталь/асайд). Включает визуальный аффорданс
459
+ * (cursor/focus-ring); саму активацию + a11y обеспечивает директива
460
+ * `rtTableRow` на `<tr cdk-row>`.
461
+ */
462
+ readonly clickable: InputSignalWithTransform<boolean, BooleanInput>;
463
+ /** Initial-load в полёте. При `true` + пустых entities рендерит skeleton rows. */
464
+ readonly loading: InputSignalWithTransform<boolean, BooleanInput>;
465
+ /** Re-fetch в полёте. При `true` рисует sticky overlay c rt-spinner поверх существующих rows. */
466
+ readonly fetching: InputSignalWithTransform<boolean, BooleanInput>;
467
+ /** Имена колонок (тот же массив что в `*cdkRowDef columns: ...`). Нужен для skeleton row layout. */
468
+ readonly columns: InputSignal<ReadonlyArray<string>>;
469
+ /**
470
+ * Метаданные колонок для настраиваемой таблицы: `[{key,label,hidden?,locked?}]`.
471
+ * Когда задан — `displayedColumns()` вычисляется из него с учётом настроек
472
+ * (видимость + порядок), а таблица получает панель настроек (при заданном `[tableId]`).
473
+ * Пуст — таблица работает по legacy `[columns]` без панели.
474
+ */
475
+ readonly columnsConfig: InputSignal<ReadonlyArray<IRtTable.ColumnConfig>>;
476
+ /**
477
+ * Идентификатор таблицы для персиста настроек колонок (ключ в IndexedDB).
478
+ * Без него панель настроек недоступна (`canConfigure()` = false).
479
+ */
480
+ readonly tableId: InputSignal<string | null>;
481
+ /**
482
+ * Добавляет в конец строки «…»-колонку действий (`rt-menu`). Содержимое меню —
483
+ * через `<ng-template rtTableRowActions let-row>`; колонку нужно подключить
484
+ * в row-def'ах через `displayedColumns()`.
485
+ */
486
+ readonly showRowActions: InputSignalWithTransform<boolean, BooleanInput>;
487
+ /**
488
+ * Есть ли у строки доступные действия. Строка, которой нельзя сделать ничего,
489
+ * кнопки «…» не показывает вовсе. Экран заполняет тем же признаком, которым
490
+ * гейтит пункты меню; `null` — у всех строк действия есть.
491
+ */
492
+ readonly rowHasActions: InputSignal<IRtTable.RowActionsPredicate<TRow> | null>;
493
+ /**
494
+ * Показывать ли строку отбора под шапкой. Таблица с отбором в настройке колонок не
495
+ * становится таблицей с полями над строками сама: вторая строка шапки стоит высоты
496
+ * экрана, и платить за неё решает потребитель.
497
+ */
498
+ readonly showFilters: InputSignalWithTransform<boolean, BooleanInput>;
499
+ /** Набор условий, по которому нарисованы ячейки отбора. Держит его потребитель. */
500
+ readonly filters: InputSignal<ReadonlyArray<IFilterModel<string>>>;
501
+ /** Набор условий изменился. Строки сужает потребитель — таблица только сообщает. */
502
+ readonly filtersChange: OutputEmitterRef<ReadonlyArray<IFilterModel<string>>>;
503
+ /** Выбранная сортировка: `null` — порядок задаёт источник данных. */
504
+ readonly sort: InputSignal<ISortModel<string> | null>;
505
+ /** Пользователь переключил порядок заголовком. Саму выборку делает потребитель. */
506
+ readonly sortChange: OutputEmitterRef<ISortModel<string> | null>;
507
+ /** Текущая сортировка — её читают заголовки колонок (`rtSortHeader`). */
508
+ readonly currentSort: Signal<ISortModel<string> | null>;
509
+ /**
510
+ * Разрешённые колонки настраиваемой таблицы: `[columnsConfig]` в применённом
511
+ * порядке, с текущим флагом `hidden` (locked всегда видимы). Панель настроек
512
+ * читает этот список для отрисовки; из него же строится `displayedColumns()`.
513
+ * Пустой при отсутствии `[columnsConfig]` (legacy-режим).
514
+ */
515
+ readonly resolvedColumns: Signal<ReadonlyArray<IRtTable.ColumnSettingItem>>;
516
+ /**
517
+ * Колонки для `*cdkHeaderRowDef`/`*cdkRowDef`. При заданном `[columnsConfig]` —
518
+ * видимые колонки в применённом порядке; иначе — legacy `[columns]`. Плюс
519
+ * «…»-колонка действий в конце при `[showRowActions]`. Потребитель читает через
520
+ * template-ref: `<rt-table #t="rtTable" ...>` →
521
+ * `*cdkRowDef="let row; columns: t.displayedColumns()"`.
522
+ */
523
+ readonly displayedColumns: Signal<ReadonlyArray<string>>;
524
+ /**
525
+ * Ячейки строки отбора: по ячейке на каждую показанную колонку, в том же порядке. У
526
+ * колонки без объявленного отбора ячейка пустая, но своё место держит — иначе ячейки
527
+ * съезжают на соседние колонки. Колонка действий строки попадает сюда тем же путём:
528
+ * `displayedColumns()` уже несёт её последней.
529
+ */
530
+ readonly filterCells: Signal<ReadonlyArray<IRtTable.FilterCell>>;
531
+ /** `true` когда таблица настраиваемая: есть и `[columnsConfig]`, и `[tableId]`. */
532
+ readonly canConfigure: Signal<boolean>;
533
+ /** Сколько skeleton-строк рендерить во время initial-load. Default 5. */
534
+ readonly skeletonRows: InputSignalWithTransform<number, NumberInput>;
535
+ /** Подпись пустой таблицы; пусто — берётся переведённое умолчание. */
536
+ readonly emptyMessage: InputSignal<string>;
537
+ /** Своя подпись пустой таблицы важнее умолчания */
538
+ readonly emptyText: Signal<string>;
539
+ /** Иконка дефолтного empty-placeholder'а (rt-empty-state). `null` — без иконки. */
540
+ readonly emptyIcon: InputSignal<IRtIcon.Name | null>;
541
+ /** Описание под заголовком дефолтного empty-placeholder'а. Опционально. */
542
+ readonly emptyDescription: InputSignal<string | null>;
543
+ ngOnInit(): void;
544
+ ngOnDestroy(): void;
545
+ /**
546
+ * Переключает порядок по колонке: по возрастанию → по убыванию → без сортировки.
547
+ * Выбранное состояние уходит наружу — выборку делает потребитель.
548
+ */
549
+ toggleSort(propertyName: string): void;
550
+ /** Ячейка отбора сообщила новый набор условий — таблица отдаёт его наружу целиком. */
551
+ reportFilters(filters: ReadonlyArray<IFilterModel<string>>): void;
552
+ applyColumnSettings(settings: IRtTable.ColumnSettings): void;
553
+ /**
554
+ * Пробрасывает `dataSource` в CdkTable и отдельно инвалидирует signals,
555
+ * которые вычисляют loading/empty-состояния по plain CDK input.
556
+ */
557
+ set dataSource(dataSource: CdkTableDataSourceInput<TRow>);
558
+ /** Возвращает текущий источник данных, сохранённый базовым CdkTable. */
559
+ get dataSource(): CdkTableDataSourceInput<TRow>;
560
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtTableComponent<any>, never>;
561
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtTableComponent<any>, "rt-table, table[rt-table]", ["rtTable"], {
562
+ "ariaLabel": {
563
+ "alias": "ariaLabel";
564
+ "required": false;
565
+ "isSignal": true;
566
+ };
567
+ "density": {
568
+ "alias": "density";
569
+ "required": false;
570
+ "isSignal": true;
571
+ };
572
+ "cards": {
573
+ "alias": "cards";
574
+ "required": false;
575
+ "isSignal": true;
576
+ };
577
+ "clickable": {
578
+ "alias": "clickable";
579
+ "required": false;
580
+ "isSignal": true;
581
+ };
582
+ "loading": {
583
+ "alias": "loading";
584
+ "required": false;
585
+ "isSignal": true;
586
+ };
587
+ "fetching": {
588
+ "alias": "fetching";
589
+ "required": false;
590
+ "isSignal": true;
591
+ };
592
+ "columns": {
593
+ "alias": "columns";
594
+ "required": false;
595
+ "isSignal": true;
596
+ };
597
+ "columnsConfig": {
598
+ "alias": "columnsConfig";
599
+ "required": false;
600
+ "isSignal": true;
601
+ };
602
+ "tableId": {
603
+ "alias": "tableId";
604
+ "required": false;
605
+ "isSignal": true;
606
+ };
607
+ "showRowActions": {
608
+ "alias": "showRowActions";
609
+ "required": false;
610
+ "isSignal": true;
611
+ };
612
+ "rowHasActions": {
613
+ "alias": "rowHasActions";
614
+ "required": false;
615
+ "isSignal": true;
616
+ };
617
+ "showFilters": {
618
+ "alias": "showFilters";
619
+ "required": false;
620
+ "isSignal": true;
621
+ };
622
+ "filters": {
623
+ "alias": "filters";
624
+ "required": false;
625
+ "isSignal": true;
626
+ };
627
+ "sort": {
628
+ "alias": "sort";
629
+ "required": false;
630
+ "isSignal": true;
631
+ };
632
+ "skeletonRows": {
633
+ "alias": "skeletonRows";
634
+ "required": false;
635
+ "isSignal": true;
636
+ };
637
+ "emptyMessage": {
638
+ "alias": "emptyMessage";
639
+ "required": false;
640
+ "isSignal": true;
641
+ };
642
+ "emptyIcon": {
643
+ "alias": "emptyIcon";
644
+ "required": false;
645
+ "isSignal": true;
646
+ };
647
+ "emptyDescription": {
648
+ "alias": "emptyDescription";
649
+ "required": false;
650
+ "isSignal": true;
651
+ };
652
+ }, {
653
+ "filtersChange": "filtersChange";
654
+ "sortChange": "sortChange";
655
+ }, ["rowActions", "cardTemplate", "columnDefs", "emptyTemplate"], ["caption", "colgroup, col"], true, [{
656
+ directive: typeof i1.RtRadiusDirective;
657
+ inputs: {
658
+ "radius": "radius";
659
+ };
660
+ outputs: {};
661
+ }]>;
530
662
  }
531
-
532
663
  /**
533
664
  * Регистрация настраиваемой таблицы в реестре: её текущие/дефолтные колонки
534
665
  * (сигналы) + callback применения новых настроек (применяет к таблице и
535
666
  * персистит). Заполняется самой `rt-table`, читается route-асайдом настроек.
536
667
  */
537
- interface IRtTableSettingsRegistration {
538
- columns: Signal<ReadonlyArray<IRtTable.ColumnSettingItem>>;
539
- defaults: Signal<ReadonlyArray<IRtTable.ColumnSettingItem>>;
540
- apply: (settings: IRtTable.ColumnSettings) => void;
668
+ export interface IRtTableSettingsRegistration {
669
+ columns: Signal<ReadonlyArray<IRtTable.ColumnSettingItem>>;
670
+ defaults: Signal<ReadonlyArray<IRtTable.ColumnSettingItem>>;
671
+ apply: (settings: IRtTable.ColumnSettings) => void;
541
672
  }
542
673
  /**
543
674
  * Реестр настраиваемых таблиц — мост между `rt-table` (shared UI) и route-асайдом
@@ -549,27 +680,26 @@ interface IRtTableSettingsRegistration {
549
680
  * раньше `rt-table`, и синхронный промах по пустому реестру не должен быть
550
681
  * финальным — асайд дожидается регистрации через `effect` (фикс F-16).
551
682
  */
552
- declare class RtTableSettingsRegistry {
553
- #private;
554
- /** Id таблицы, чьи настройки сейчас открыты в асайде (или `null`). */
555
- readonly active: Signal<string | null>;
556
- /**
557
- * Id единственной зарегистрированной таблицы (или `null`, если их 0 или >1).
558
- * Нужен асайду для восстановления `active` после F5: сервис пересоздан,
559
- * `setActive` никто не звал, но открытая страница регистрирует ровно
560
- * одну настраиваемую таблицу.
561
- */
562
- readonly soleTableId: Signal<string | null>;
563
- register(tableId: string, registration: IRtTableSettingsRegistration): void;
564
- unregister(tableId: string): void;
565
- /** Реактивная регистрация таблицы: `null`, пока таблица не зарегистрировалась. */
566
- get(tableId: string): Signal<IRtTableSettingsRegistration | null>;
567
- setActive(tableId: string): void;
568
- clearActive(): void;
569
- static ɵfac: i0.ɵɵFactoryDeclaration<RtTableSettingsRegistry, never>;
570
- static ɵprov: i0.ɵɵInjectableDeclaration<any>;
683
+ export declare class RtTableSettingsRegistry {
684
+ #private;
685
+ /** Id таблицы, чьи настройки сейчас открыты в асайде (или `null`). */
686
+ readonly active: Signal<string | null>;
687
+ /**
688
+ * Id единственной зарегистрированной таблицы (или `null`, если их 0 или >1).
689
+ * Нужен асайду для восстановления `active` после F5: сервис пересоздан,
690
+ * `setActive` никто не звал, но открытая страница регистрирует ровно
691
+ * одну настраиваемую таблицу.
692
+ */
693
+ readonly soleTableId: Signal<string | null>;
694
+ register(tableId: string, registration: IRtTableSettingsRegistration): void;
695
+ unregister(tableId: string): void;
696
+ /** Реактивная регистрация таблицы: `null`, пока таблица не зарегистрировалась. */
697
+ get(tableId: string): Signal<IRtTableSettingsRegistration | null>;
698
+ setActive(tableId: string): void;
699
+ clearActive(): void;
700
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtTableSettingsRegistry, never>;
701
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
571
702
  }
572
-
573
703
  /**
574
704
  * Общий route-driven side-sheet настроек колонок для любой `rt-table`. Открывается
575
705
  * навигацией на `(ro:table-settings)`; какая таблица настраивается — берётся из
@@ -581,42 +711,48 @@ declare class RtTableSettingsRegistry {
581
711
  * «Сохранить»/«Сбросить» живут в chrome асайда над локальным `items`, засеянным из
582
712
  * активной регистрации. Регистрируется в `routes.ts` каждого shell под `outlet: "ro"`.
583
713
  */
584
- declare class RtTableSettingsAsideComponent extends RtRouteAsideComponent<never> {
585
- #private;
586
- /** Рабочая копия списка колонок (сидится из регистрации, редактируется телом-панелью). */
587
- protected readonly t: Signal<TRtKitLabelMap>;
588
- protected readonly items: WritableSignal<ReadonlyArray<IRtTable.ColumnSettingItem>>;
589
- constructor();
590
- protected resolve(): Observable<never | null>;
591
- /** Сбросить рабочую копию к дефолтным колонкам из конфига. */
592
- protected onReset(): void;
593
- /** Применить настройки к таблице (через registry) и закрыть асайд. */
594
- protected onSave(): void;
595
- static ɵfac: i0.ɵɵFactoryDeclaration<RtTableSettingsAsideComponent, never>;
596
- static ɵcmp: i0.ɵɵComponentDeclaration<RtTableSettingsAsideComponent, "rt-table-settings-aside", never, {}, {}, never, never, true, never>;
714
+ export declare class RtTableSettingsAsideComponent extends RtRouteAsideComponent<never> {
715
+ #private;
716
+ /** Рабочая копия списка колонок (сидится из регистрации, редактируется телом-панелью). */
717
+ protected readonly t: Signal<TRtKitLabelMap>;
718
+ protected readonly items: WritableSignal<ReadonlyArray<IRtTable.ColumnSettingItem>>;
719
+ constructor();
720
+ protected resolve(): Observable<never | null>;
721
+ /** Сбросить рабочую копию к дефолтным колонкам из конфига. */
722
+ protected onReset(): void;
723
+ /** Применить настройки к таблице (через registry) и закрыть асайд. */
724
+ protected onSave(): void;
725
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtTableSettingsAsideComponent, never>;
726
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtTableSettingsAsideComponent, "rt-table-settings-aside", never, {}, {}, never, never, true, never>;
597
727
  }
598
-
599
728
  /**
600
729
  * Презентационный редактор списка колонок таблицы: reorder (drag-drop) + видимость
601
730
  * (глаз). Locked-колонки всегда видимы и не перетаскиваются. Двусторонний `items` —
602
731
  * текущее состояние; контейнер (route-асайд настроек) владеет сигналом, читает его
603
732
  * для «Сохранить»/«Сбросить» и передаёт сюда через `[(items)]`.
604
733
  */
605
- declare class RtTableSettingsPanelComponent {
606
- protected readonly t: Signal<TRtKitLabelMap>;
607
- readonly items: ModelSignal<ReadonlyArray<IRtTable.ColumnSettingItem>>;
608
- /** Reorder через drag-drop. Locked-строки drag-disabled; индексы — по всему списку. */
609
- protected onDrop(event: CdkDragDrop<ReadonlyArray<IRtTable.ColumnSettingItem>>): void;
610
- /** Переключить видимость колонки (locked — нельзя). */
611
- protected onToggleHidden(key: string): void;
612
- static ɵfac: i0.ɵɵFactoryDeclaration<RtTableSettingsPanelComponent, never>;
613
- static ɵcmp: i0.ɵɵComponentDeclaration<RtTableSettingsPanelComponent, "rt-table-settings-panel", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; }, { "items": "itemsChange"; }, never, never, true, never>;
734
+ export declare class RtTableSettingsPanelComponent {
735
+ protected readonly t: Signal<TRtKitLabelMap>;
736
+ readonly items: ModelSignal<ReadonlyArray<IRtTable.ColumnSettingItem>>;
737
+ /** Reorder через drag-drop. Locked-строки drag-disabled; индексы — по всему списку. */
738
+ protected onDrop(event: CdkDragDrop<ReadonlyArray<IRtTable.ColumnSettingItem>>): void;
739
+ /** Переключить видимость колонки (locked — нельзя). */
740
+ protected onToggleHidden(key: string): void;
741
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtTableSettingsPanelComponent, never>;
742
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtTableSettingsPanelComponent, "rt-table-settings-panel", never, {
743
+ "items": {
744
+ "alias": "items";
745
+ "required": true;
746
+ "isSignal": true;
747
+ };
748
+ }, {
749
+ "items": "itemsChange";
750
+ }, never, never, true, never>;
614
751
  }
615
-
616
752
  /** Значение условия в том виде, в каком оно хранится и сверяется. */
617
- type TRtTableFilterValue = string | number | boolean;
753
+ export type TRtTableFilterValue = string | number | boolean;
618
754
  /** Что приходит в ячейку от человека: дата приходит объектом, остальное — уже готовым значением. */
619
- type TRtTableFilterInput = TRtTableFilterValue | Date | null | undefined;
755
+ export type TRtTableFilterInput = TRtTableFilterValue | Date | null | undefined;
620
756
  /**
621
757
  * Значение в том виде, в каком оно хранится: дата — строкой.
622
758
  *
@@ -624,9 +760,9 @@ type TRtTableFilterInput = TRtTableFilterValue | Date | null | undefined;
624
760
  * считался бы новым значением — а тогда статья «повтор того же значения не сообщает ничего»
625
761
  * не держалась бы именно там, где её проще всего нарушить.
626
762
  */
627
- declare function filterValueOf(value: TRtTableFilterInput): TRtTableFilterValue;
763
+ export declare function filterValueOf(value: TRtTableFilterInput): TRtTableFilterValue;
628
764
  /** Условие по этой колонке из набора либо `null`, когда колонка ничего не отбирает. */
629
- declare function filterOf(filters: readonly IFilterModel<string>[], propertyName: string): IFilterModel<string> | null;
765
+ export declare function filterOf(filters: readonly IFilterModel<string>[], propertyName: string): IFilterModel<string> | null;
630
766
  /**
631
767
  * Набор условий после перемены значения по одной колонке.
632
768
  *
@@ -637,16 +773,16 @@ declare function filterOf(filters: readonly IFilterModel<string>[], propertyName
637
773
  * Возвращает прежний набор тем же объектом, когда менять нечего: по этому признаку ячейка и
638
774
  * решает, сообщать ли наружу.
639
775
  */
640
- declare function filtersWithValue(filters: readonly IFilterModel<string>[], propertyName: string, operatorType: TFilterOperatorType, value: TRtTableFilterValue): readonly IFilterModel<string>[];
776
+ export declare function filtersWithValue(filters: readonly IFilterModel<string>[], propertyName: string, operatorType: TFilterOperatorType, value: TRtTableFilterValue): readonly IFilterModel<string>[];
641
777
  /**
642
778
  * Набор условий после перемены вида сравнения по одной колонке.
643
779
  *
644
780
  * Пока значения нет, менять вид сравнения не у чего: отбирать нечего, и набор условий не
645
781
  * изменился — значит, наружу ничего не уходит.
646
782
  */
647
- declare function filtersWithOperator(filters: readonly IFilterModel<string>[], propertyName: string, operatorType: TFilterOperatorType): readonly IFilterModel<string>[];
783
+ export declare function filtersWithOperator(filters: readonly IFilterModel<string>[], propertyName: string, operatorType: TFilterOperatorType): readonly IFilterModel<string>[];
648
784
  /** Вид сравнения, с которого колонка начинает: свой, первый разрешённый либо равенство. */
649
- declare function startOperatorOf(allowed: readonly TFilterOperatorType[] | undefined, start: TFilterOperatorType | undefined): TFilterOperatorType;
785
+ export declare function startOperatorOf(allowed: readonly TFilterOperatorType[] | undefined, start: TFilterOperatorType | undefined): TFilterOperatorType;
650
786
  /**
651
787
  * Ячейки строки отбора: по ячейке на каждую показанную колонку, в том же порядке.
652
788
  *
@@ -655,12 +791,11 @@ declare function startOperatorOf(allowed: readonly TFilterOperatorType[] | undef
655
791
  * Колонка действий строки приходит сюда тем же путём, последней, и отбора у неё нет никогда; её
656
792
  * ячейка помечена, чтобы строка отбора не дала ширины колонке, которая места не занимает.
657
793
  */
658
- declare function filterCellsOf(columns: ReadonlyArray<string>, config: ReadonlyArray<IRtTable.ColumnConfig>): ReadonlyArray<IRtTable.FilterCell>;
659
-
794
+ export declare function filterCellsOf(columns: ReadonlyArray<string>, config: ReadonlyArray<IRtTable.ColumnConfig>): ReadonlyArray<IRtTable.FilterCell>;
660
795
  /** Один вид сравнения в списке: сам вид и его подпись из словаря. */
661
796
  interface IOperatorView {
662
- readonly type: TFilterOperatorType;
663
- readonly label: string;
797
+ readonly type: TFilterOperatorType;
798
+ readonly label: string;
664
799
  }
665
800
  /**
666
801
  * Отбор в шапке столбца таблицы.
@@ -675,65 +810,81 @@ interface IOperatorView {
675
810
  * и, получив одно условие, держал бы вторую копию набора — две копии расходятся молча. Строк
676
811
  * семейство не отбирает: строки принадлежат тому, кто держит список.
677
812
  */
678
- declare class RtTableFilterHeaderComponent {
679
- #private;
680
- /** Значение ведёт форма: поля кита берут его только так. */
681
- protected readonly control: FormControl<TRtTableFilterInput>;
682
- /**
683
- * Условие по этой колонке либо `null`: по нему видно и значение, и вид сравнения. Сверяется по
684
- * содержимому, а не по ссылке: перемена соседней колонки приносит новый набор, и условие этой
685
- * колонки, пересобранное потребителем тем же, переменой не считается.
686
- */
687
- protected readonly own: Signal<IFilterModel<string> | null>;
688
- /**
689
- * Вид сравнения, выбранный здесь, пока значения нет: условия ещё нет, и хранить выбор, кроме
690
- * самой ячейки, негде. Без него выбор терялся бы, и введённое значение уходило бы с видом по
691
- * умолчанию. Условие этой колонки, пришедшее снаружи, выбор сбрасывает — вид берётся из него.
692
- */
693
- protected readonly chosenOperator: WritableSignal<TFilterOperatorType | null>;
694
- protected readonly value: Signal<TRtTableFilterValue>;
695
- /** Очистка видна только там, где есть что очищать. */
696
- protected readonly clearable: Signal<boolean>;
697
- protected readonly operator: Signal<TFilterOperatorType>;
698
- /** Виды сравнения, которые разрешила колонка; молчит колонка — разрешены все. */
699
- protected readonly operators: Signal<readonly TFilterOperatorType[]>;
700
- protected readonly chooseLabel: Signal<string>;
701
- protected readonly valueLabel: Signal<string>;
702
- protected readonly clearLabel: Signal<string>;
703
- protected readonly filtersLabel: Signal<string>;
704
- /** Список видов сравнения открыт в слое; выбор пункта закрывает его отсюда — сам пункт не умеет. */
705
- protected readonly operatorPopover: Signal<RtPopoverDirective | undefined>;
706
- /** Список видов сравнения с подписями: шаблон читает готовое, а не зовёт словарь сам. */
707
- protected readonly operatorViews: Signal<readonly IOperatorView[]>;
708
- /** Подпись текущего вида сравнения — её несёт кнопка, открывающая список. */
709
- protected readonly operatorLabel: Signal<string>;
710
- /**
711
- * Имя кнопки для скринридера: что она открывает и какой вид стоит сейчас. Одно «Фильтры»
712
- * не отличало бы кнопку одной колонки от другой и не говорило бы, какой вид выбран.
713
- */
714
- protected readonly operatorAriaLabel: Signal<string>;
715
- /** Сообщает ли этот вид сразу: у выбора и даты недописанного состояния нет. */
716
- protected readonly instant: Signal<boolean>;
717
- protected readonly options: Signal<ReadonlyArray<IRtSelect.Option<string | number>>>;
718
- /** Ключ колонки — тот же, что в `cdkColumnDef` и в `[columnsConfig]`. */
719
- readonly propertyName: InputSignal<string>;
720
- /**
721
- * Чем колонка отбирает. Объявляет колонка, а не угадывает значение; колонка, которая молчит,
722
- * не отбирает вовсе — решает это сама ячейка, а не тот, кто её ставит: иначе обещание держал
723
- * бы каждый потребитель по-своему.
724
- */
725
- readonly filter: InputSignal<IRtTable.ColumnFilter | null>;
726
- /** Текущий набор условий — весь, по всем колонкам сразу. */
727
- readonly filters: InputSignal<readonly IFilterModel<string>[]>;
728
- readonly filtersChange: OutputEmitterRef<readonly IFilterModel<string>[]>;
729
- constructor();
730
- protected onOperator(operatorType: TFilterOperatorType): void;
731
- protected onClear(): void;
732
- /** Уход из поля и Enter: набранное значение уходит наружу разом, а не по знаку. */
733
- protected onCommit(): void;
734
- static ɵfac: i0.ɵɵFactoryDeclaration<RtTableFilterHeaderComponent, never>;
735
- static ɵcmp: i0.ɵɵComponentDeclaration<RtTableFilterHeaderComponent, "rt-table-filter-header", never, { "propertyName": { "alias": "propertyName"; "required": true; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; }, { "filtersChange": "filtersChange"; }, never, never, true, never>;
813
+ export declare class RtTableFilterHeaderComponent {
814
+ #private;
815
+ /** Значение ведёт форма: поля кита берут его только так. */
816
+ protected readonly control: FormControl<TRtTableFilterInput>;
817
+ /**
818
+ * Условие по этой колонке либо `null`: по нему видно и значение, и вид сравнения. Сверяется по
819
+ * содержимому, а не по ссылке: перемена соседней колонки приносит новый набор, и условие этой
820
+ * колонки, пересобранное потребителем тем же, переменой не считается.
821
+ */
822
+ protected readonly own: Signal<IFilterModel<string> | null>;
823
+ /**
824
+ * Вид сравнения, выбранный здесь, пока значения нет: условия ещё нет, и хранить выбор, кроме
825
+ * самой ячейки, негде. Без него выбор терялся бы, и введённое значение уходило бы с видом по
826
+ * умолчанию. Условие этой колонки, пришедшее снаружи, выбор сбрасывает — вид берётся из него.
827
+ */
828
+ protected readonly chosenOperator: WritableSignal<TFilterOperatorType | null>;
829
+ protected readonly value: Signal<TRtTableFilterValue>;
830
+ /** Очистка видна только там, где есть что очищать. */
831
+ protected readonly clearable: Signal<boolean>;
832
+ protected readonly operator: Signal<TFilterOperatorType>;
833
+ /** Виды сравнения, которые разрешила колонка; молчит колонка — разрешены все. */
834
+ protected readonly operators: Signal<readonly TFilterOperatorType[]>;
835
+ protected readonly chooseLabel: Signal<string>;
836
+ protected readonly valueLabel: Signal<string>;
837
+ protected readonly clearLabel: Signal<string>;
838
+ protected readonly filtersLabel: Signal<string>;
839
+ /** Список видов сравнения открыт в слое; выбор пункта закрывает его отсюда — сам пункт не умеет. */
840
+ protected readonly operatorPopover: Signal<RtPopoverDirective | undefined>;
841
+ /** Список видов сравнения с подписями: шаблон читает готовое, а не зовёт словарь сам. */
842
+ protected readonly operatorViews: Signal<readonly IOperatorView[]>;
843
+ /** Подпись текущего вида сравнения — её несёт кнопка, открывающая список. */
844
+ protected readonly operatorLabel: Signal<string>;
845
+ /**
846
+ * Имя кнопки для скринридера: что она открывает и какой вид стоит сейчас. Одно «Фильтры»
847
+ * не отличало бы кнопку одной колонки от другой и не говорило бы, какой вид выбран.
848
+ */
849
+ protected readonly operatorAriaLabel: Signal<string>;
850
+ /** Сообщает ли этот вид сразу: у выбора и даты недописанного состояния нет. */
851
+ protected readonly instant: Signal<boolean>;
852
+ protected readonly options: Signal<ReadonlyArray<IRtSelect.Option<string | number>>>;
853
+ /** Ключ колонки — тот же, что в `cdkColumnDef` и в `[columnsConfig]`. */
854
+ readonly propertyName: InputSignal<string>;
855
+ /**
856
+ * Чем колонка отбирает. Объявляет колонка, а не угадывает значение; колонка, которая молчит,
857
+ * не отбирает вовсе — решает это сама ячейка, а не тот, кто её ставит: иначе обещание держал
858
+ * бы каждый потребитель по-своему.
859
+ */
860
+ readonly filter: InputSignal<IRtTable.ColumnFilter | null>;
861
+ /** Текущий набор условий — весь, по всем колонкам сразу. */
862
+ readonly filters: InputSignal<readonly IFilterModel<string>[]>;
863
+ readonly filtersChange: OutputEmitterRef<readonly IFilterModel<string>[]>;
864
+ constructor();
865
+ protected onOperator(operatorType: TFilterOperatorType): void;
866
+ protected onClear(): void;
867
+ /** Уход из поля и Enter: набранное значение уходит наружу разом, а не по знаку. */
868
+ protected onCommit(): void;
869
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtTableFilterHeaderComponent, never>;
870
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtTableFilterHeaderComponent, "rt-table-filter-header", never, {
871
+ "propertyName": {
872
+ "alias": "propertyName";
873
+ "required": true;
874
+ "isSignal": true;
875
+ };
876
+ "filter": {
877
+ "alias": "filter";
878
+ "required": false;
879
+ "isSignal": true;
880
+ };
881
+ "filters": {
882
+ "alias": "filters";
883
+ "required": false;
884
+ "isSignal": true;
885
+ };
886
+ }, {
887
+ "filtersChange": "filtersChange";
888
+ }, never, never, true, never>;
736
889
  }
737
-
738
- export { IRtTable, RT_TABLE_ROW_ACTIONS_COLUMN, RtCopyCellComponent, RtRowHasActionsPipe, RtTableCardDirective, RtTableComponent, RtTableFilterHeaderComponent, RtTableRowActionsDirective, RtTableRowDirective, RtTableSettingsAsideComponent, RtTableSettingsPanelComponent, RtTableSettingsRegistry, RtTableSortHeaderComponent, ariaSortOf, defaultColumnItems, displayedColumnKeys, filterCellsOf, filterOf, filterValueOf, filtersWithOperator, filtersWithValue, isColumnSortable, nextSort, resolveColumns, rowHasAvailableActions, sortDirectionOf, startOperatorOf, withoutLockedHidden };
739
- export type { IRtTableCardContext, IRtTableRowActionsContext, IRtTableSettingsRegistration, TRtTableAriaSort, TRtTableFilterInput, TRtTableFilterValue };
890
+ export {};