@rt-tools/ui-kit-v2 0.16.0 → 0.18.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 (321) hide show
  1. package/README.md +25 -0
  2. package/fesm2022/rt-tools-ui-kit-v2-accordion.mjs +79 -0
  3. package/fesm2022/rt-tools-ui-kit-v2-accordion.mjs.map +1 -0
  4. package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs +227 -0
  5. package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs.map +1 -0
  6. package/fesm2022/rt-tools-ui-kit-v2-aside-section.mjs +47 -0
  7. package/fesm2022/rt-tools-ui-kit-v2-aside-section.mjs.map +1 -0
  8. package/fesm2022/rt-tools-ui-kit-v2-aside.mjs +702 -0
  9. package/fesm2022/rt-tools-ui-kit-v2-aside.mjs.map +1 -0
  10. package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs +214 -0
  11. package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs.map +1 -0
  12. package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs +53 -0
  13. package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs.map +1 -0
  14. package/fesm2022/rt-tools-ui-kit-v2-bottom-sheet.mjs +88 -0
  15. package/fesm2022/rt-tools-ui-kit-v2-bottom-sheet.mjs.map +1 -0
  16. package/fesm2022/rt-tools-ui-kit-v2-button.mjs +365 -0
  17. package/fesm2022/rt-tools-ui-kit-v2-button.mjs.map +1 -0
  18. package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs +152 -0
  19. package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs.map +1 -0
  20. package/fesm2022/rt-tools-ui-kit-v2-card.mjs +72 -0
  21. package/fesm2022/rt-tools-ui-kit-v2-card.mjs.map +1 -0
  22. package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs +111 -0
  23. package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs.map +1 -0
  24. package/fesm2022/rt-tools-ui-kit-v2-collapsible-text.mjs +76 -0
  25. package/fesm2022/rt-tools-ui-kit-v2-collapsible-text.mjs.map +1 -0
  26. package/fesm2022/rt-tools-ui-kit-v2-confirm-popover.mjs +255 -0
  27. package/fesm2022/rt-tools-ui-kit-v2-confirm-popover.mjs.map +1 -0
  28. package/fesm2022/rt-tools-ui-kit-v2-container.mjs +1326 -0
  29. package/fesm2022/rt-tools-ui-kit-v2-container.mjs.map +1 -0
  30. package/fesm2022/rt-tools-ui-kit-v2-core.mjs +2590 -0
  31. package/fesm2022/rt-tools-ui-kit-v2-core.mjs.map +1 -0
  32. package/fesm2022/rt-tools-ui-kit-v2-counter-row.mjs +45 -0
  33. package/fesm2022/rt-tools-ui-kit-v2-counter-row.mjs.map +1 -0
  34. package/fesm2022/rt-tools-ui-kit-v2-counter.mjs +158 -0
  35. package/fesm2022/rt-tools-ui-kit-v2-counter.mjs.map +1 -0
  36. package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs +894 -0
  37. package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs.map +1 -0
  38. package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs +1217 -0
  39. package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs.map +1 -0
  40. package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs +779 -0
  41. package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs.map +1 -0
  42. package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs +573 -0
  43. package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs.map +1 -0
  44. package/fesm2022/rt-tools-ui-kit-v2-delta-view.mjs +141 -0
  45. package/fesm2022/rt-tools-ui-kit-v2-delta-view.mjs.map +1 -0
  46. package/fesm2022/rt-tools-ui-kit-v2-detail-list.mjs +68 -0
  47. package/fesm2022/rt-tools-ui-kit-v2-detail-list.mjs.map +1 -0
  48. package/fesm2022/rt-tools-ui-kit-v2-dialog.mjs +478 -0
  49. package/fesm2022/rt-tools-ui-kit-v2-dialog.mjs.map +1 -0
  50. package/fesm2022/rt-tools-ui-kit-v2-dot-field.mjs +183 -0
  51. package/fesm2022/rt-tools-ui-kit-v2-dot-field.mjs.map +1 -0
  52. package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs +44 -0
  53. package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs.map +1 -0
  54. package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs +260 -0
  55. package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs.map +1 -0
  56. package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs +937 -0
  57. package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs.map +1 -0
  58. package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs +56 -0
  59. package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs.map +1 -0
  60. package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs +107 -0
  61. package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs.map +1 -0
  62. package/fesm2022/rt-tools-ui-kit-v2-field.mjs +183 -0
  63. package/fesm2022/rt-tools-ui-kit-v2-field.mjs.map +1 -0
  64. package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs +219 -0
  65. package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs.map +1 -0
  66. package/fesm2022/rt-tools-ui-kit-v2-file-drop.mjs +214 -0
  67. package/fesm2022/rt-tools-ui-kit-v2-file-drop.mjs.map +1 -0
  68. package/fesm2022/rt-tools-ui-kit-v2-file-input.mjs +117 -0
  69. package/fesm2022/rt-tools-ui-kit-v2-file-input.mjs.map +1 -0
  70. package/fesm2022/rt-tools-ui-kit-v2-file-list.mjs +32 -0
  71. package/fesm2022/rt-tools-ui-kit-v2-file-list.mjs.map +1 -0
  72. package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs +91 -0
  73. package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs.map +1 -0
  74. package/fesm2022/rt-tools-ui-kit-v2-form-control.mjs +220 -0
  75. package/fesm2022/rt-tools-ui-kit-v2-form-control.mjs.map +1 -0
  76. package/fesm2022/rt-tools-ui-kit-v2-header.mjs +72 -0
  77. package/fesm2022/rt-tools-ui-kit-v2-header.mjs.map +1 -0
  78. package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs +163 -0
  79. package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs.map +1 -0
  80. package/fesm2022/rt-tools-ui-kit-v2-icon.mjs +674 -0
  81. package/fesm2022/rt-tools-ui-kit-v2-icon.mjs.map +1 -0
  82. package/fesm2022/rt-tools-ui-kit-v2-image-cropper.mjs +540 -0
  83. package/fesm2022/rt-tools-ui-kit-v2-image-cropper.mjs.map +1 -0
  84. package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs +227 -0
  85. package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs.map +1 -0
  86. package/fesm2022/rt-tools-ui-kit-v2-info-item.mjs +37 -0
  87. package/fesm2022/rt-tools-ui-kit-v2-info-item.mjs.map +1 -0
  88. package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs +361 -0
  89. package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs.map +1 -0
  90. package/fesm2022/rt-tools-ui-kit-v2-input.mjs +143 -0
  91. package/fesm2022/rt-tools-ui-kit-v2-input.mjs.map +1 -0
  92. package/fesm2022/rt-tools-ui-kit-v2-live-badge.mjs +49 -0
  93. package/fesm2022/rt-tools-ui-kit-v2-live-badge.mjs.map +1 -0
  94. package/fesm2022/rt-tools-ui-kit-v2-logo.mjs +97 -0
  95. package/fesm2022/rt-tools-ui-kit-v2-logo.mjs.map +1 -0
  96. package/fesm2022/rt-tools-ui-kit-v2-markdown-text.mjs +57 -0
  97. package/fesm2022/rt-tools-ui-kit-v2-markdown-text.mjs.map +1 -0
  98. package/fesm2022/rt-tools-ui-kit-v2-menu.mjs +537 -0
  99. package/fesm2022/rt-tools-ui-kit-v2-menu.mjs.map +1 -0
  100. package/fesm2022/rt-tools-ui-kit-v2-message.mjs +105 -0
  101. package/fesm2022/rt-tools-ui-kit-v2-message.mjs.map +1 -0
  102. package/fesm2022/rt-tools-ui-kit-v2-money-list.mjs +71 -0
  103. package/fesm2022/rt-tools-ui-kit-v2-money-list.mjs.map +1 -0
  104. package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs +315 -0
  105. package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs.map +1 -0
  106. package/fesm2022/rt-tools-ui-kit-v2-night-grid.mjs +51 -0
  107. package/fesm2022/rt-tools-ui-kit-v2-night-grid.mjs.map +1 -0
  108. package/fesm2022/rt-tools-ui-kit-v2-note.mjs +44 -0
  109. package/fesm2022/rt-tools-ui-kit-v2-note.mjs.map +1 -0
  110. package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs +54 -0
  111. package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs.map +1 -0
  112. package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs +339 -0
  113. package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs.map +1 -0
  114. package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs +187 -0
  115. package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs.map +1 -0
  116. package/fesm2022/rt-tools-ui-kit-v2-photo-viewer.mjs +170 -0
  117. package/fesm2022/rt-tools-ui-kit-v2-photo-viewer.mjs.map +1 -0
  118. package/fesm2022/rt-tools-ui-kit-v2-popover.mjs +312 -0
  119. package/fesm2022/rt-tools-ui-kit-v2-popover.mjs.map +1 -0
  120. package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs +174 -0
  121. package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs.map +1 -0
  122. package/fesm2022/rt-tools-ui-kit-v2-radius.mjs +56 -0
  123. package/fesm2022/rt-tools-ui-kit-v2-radius.mjs.map +1 -0
  124. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +96 -41
  125. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
  126. package/fesm2022/rt-tools-ui-kit-v2-ripple.mjs +118 -0
  127. package/fesm2022/rt-tools-ui-kit-v2-ripple.mjs.map +1 -0
  128. package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs +290 -0
  129. package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs.map +1 -0
  130. package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs +37 -0
  131. package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs.map +1 -0
  132. package/fesm2022/rt-tools-ui-kit-v2-select.mjs +495 -0
  133. package/fesm2022/rt-tools-ui-kit-v2-select.mjs.map +1 -0
  134. package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs +1493 -0
  135. package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs.map +1 -0
  136. package/fesm2022/rt-tools-ui-kit-v2-skeleton-wrapper.mjs +49 -0
  137. package/fesm2022/rt-tools-ui-kit-v2-skeleton-wrapper.mjs.map +1 -0
  138. package/fesm2022/rt-tools-ui-kit-v2-skeleton.mjs +123 -0
  139. package/fesm2022/rt-tools-ui-kit-v2-skeleton.mjs.map +1 -0
  140. package/fesm2022/rt-tools-ui-kit-v2-spinner.mjs +70 -0
  141. package/fesm2022/rt-tools-ui-kit-v2-spinner.mjs.map +1 -0
  142. package/fesm2022/rt-tools-ui-kit-v2-split-button.mjs +92 -0
  143. package/fesm2022/rt-tools-ui-kit-v2-split-button.mjs.map +1 -0
  144. package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs +147 -0
  145. package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs.map +1 -0
  146. package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs +117 -0
  147. package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs.map +1 -0
  148. package/fesm2022/rt-tools-ui-kit-v2-table.mjs +1636 -0
  149. package/fesm2022/rt-tools-ui-kit-v2-table.mjs.map +1 -0
  150. package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs +350 -0
  151. package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs.map +1 -0
  152. package/fesm2022/rt-tools-ui-kit-v2-tag.mjs +122 -0
  153. package/fesm2022/rt-tools-ui-kit-v2-tag.mjs.map +1 -0
  154. package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs +85 -0
  155. package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs.map +1 -0
  156. package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs +73 -0
  157. package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs.map +1 -0
  158. package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs +196 -0
  159. package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs.map +1 -0
  160. package/fesm2022/rt-tools-ui-kit-v2-timeline.mjs +39 -0
  161. package/fesm2022/rt-tools-ui-kit-v2-timeline.mjs.map +1 -0
  162. package/fesm2022/rt-tools-ui-kit-v2-toast.mjs +338 -0
  163. package/fesm2022/rt-tools-ui-kit-v2-toast.mjs.map +1 -0
  164. package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs +132 -0
  165. package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs.map +1 -0
  166. package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs +162 -0
  167. package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs.map +1 -0
  168. package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs +135 -0
  169. package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs.map +1 -0
  170. package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs +214 -0
  171. package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs.map +1 -0
  172. package/fesm2022/rt-tools-ui-kit-v2-welcome-dialog.mjs +64 -0
  173. package/fesm2022/rt-tools-ui-kit-v2-welcome-dialog.mjs.map +1 -0
  174. package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs +263 -0
  175. package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs.map +1 -0
  176. package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs +296 -0
  177. package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs.map +1 -0
  178. package/fesm2022/rt-tools-ui-kit-v2.mjs +91 -23164
  179. package/fesm2022/rt-tools-ui-kit-v2.mjs.map +1 -1
  180. package/package.json +349 -1
  181. package/rt-tools-ui-kit-v2-0.18.0.tgz +0 -0
  182. package/src/lib/components/action-bar/CONTEXT.md +5 -0
  183. package/src/lib/components/action-bar/rt-action-bar.component.scss +30 -16
  184. package/src/lib/components/aside/CONTEXT.md +9 -1
  185. package/src/lib/components/aside/footer/rt-aside-footer.component.scss +7 -8
  186. package/src/lib/components/aside/header/rt-aside-header.component.scss +16 -1
  187. package/src/lib/components/aside/rt-aside.component.scss +17 -1
  188. package/src/lib/components/button/CONTEXT.md +12 -11
  189. package/src/lib/components/button/rt-button.directive.scss +36 -0
  190. package/src/lib/components/data-list/settings/rt-data-list-settings-aside.component.scss +2 -2
  191. package/src/lib/components/data-table/cell/rt-data-table-cell.component.scss +1 -1
  192. package/src/lib/components/data-table/filter-cell/rt-data-table-filter-cell.component.scss +1 -1
  193. package/src/lib/components/data-table/rt-data-table.component.scss +1 -1
  194. package/src/lib/components/dialog/CONTEXT.md +9 -0
  195. package/src/lib/components/dialog/content/rt-dialog-content.component.scss +20 -0
  196. package/src/lib/components/dialog/footer/rt-dialog-footer.component.scss +18 -2
  197. package/src/lib/components/dialog/header/rt-dialog-header.component.scss +21 -3
  198. package/src/lib/components/dialog/rt-dialog.component.scss +9 -3
  199. package/src/lib/components/dot-field/CONTEXT.md +31 -0
  200. package/src/lib/components/dot-field/rt-dot-field.component.scss +20 -0
  201. package/src/lib/components/dot-field/stories/component/CONTEXT.md +14 -0
  202. package/src/lib/components/dot-field/stories/component/test-dot-field.component.scss +31 -0
  203. package/src/lib/components/dynamic-selector/CONTEXT.md +6 -0
  204. package/src/lib/components/field/CONTEXT.md +18 -2
  205. package/src/lib/components/header/CONTEXT.md +2 -2
  206. package/src/lib/components/icon/CONTEXT.md +11 -7
  207. package/src/lib/components/icon/rt-icon.component.scss +47 -0
  208. package/src/lib/components/icon-button/CONTEXT.md +27 -20
  209. package/src/lib/components/icon-button/rt-icon-button.component.scss +51 -25
  210. package/src/lib/components/image-upload/CONTEXT.md +20 -15
  211. package/src/lib/components/image-upload/rt-image-upload.component.scss +14 -2
  212. package/src/lib/components/pagination/rt-pagination.component.scss +1 -1
  213. package/src/lib/components/scroll-area/CONTEXT.md +2 -0
  214. package/src/lib/components/scroll-area/rt-scroll-area.component.scss +20 -3
  215. package/src/lib/components/select/rt-select.component.scss +4 -0
  216. package/src/lib/components/side-menu/CONTEXT.md +7 -2
  217. package/src/lib/components/spinner/CONTEXT.md +15 -8
  218. package/src/lib/components/spinner/rt-spinner.component.scss +108 -9
  219. package/src/lib/components/tag/rt-tag.component.scss +43 -23
  220. package/src/lib/components/toast/CONTEXT.md +8 -0
  221. package/src/lib/components/toast/rt-toast.component.scss +74 -15
  222. package/src/lib/components/toast/rt-toaster.component.scss +5 -1
  223. package/src/lib/components/toggle-button-group/rt-toggle-button-group.component.scss +35 -37
  224. package/src/lib/components/toggle-switch/CONTEXT.md +11 -3
  225. package/src/lib/components/toggle-switch/rt-toggle-switch.component.scss +53 -14
  226. package/src/lib/components/toolbar/rt-toolbar.component.scss +15 -4
  227. package/src/lib/components/tooltip/CONTEXT.md +5 -5
  228. package/src/rich-editor/lib/components/chat/CONTEXT.md +7 -2
  229. package/src/rich-editor/lib/components/chat/rt-chat.component.scss +25 -0
  230. package/src/styles/_semantic.scss +1 -1
  231. package/styles/tokens.css +43 -8
  232. package/types/rt-tools-ui-kit-v2-accordion.d.ts +30 -0
  233. package/types/rt-tools-ui-kit-v2-action-bar.d.ts +140 -0
  234. package/types/rt-tools-ui-kit-v2-aside-section.d.ts +25 -0
  235. package/types/rt-tools-ui-kit-v2-aside.d.ts +436 -0
  236. package/types/rt-tools-ui-kit-v2-autocomplete.d.ts +78 -0
  237. package/types/rt-tools-ui-kit-v2-bar-list.d.ts +41 -0
  238. package/types/rt-tools-ui-kit-v2-bottom-sheet.d.ts +20 -0
  239. package/types/rt-tools-ui-kit-v2-button.d.ts +76 -0
  240. package/types/rt-tools-ui-kit-v2-calendar.d.ts +96 -0
  241. package/types/rt-tools-ui-kit-v2-card.d.ts +38 -0
  242. package/types/rt-tools-ui-kit-v2-checkbox.d.ts +46 -0
  243. package/types/rt-tools-ui-kit-v2-collapsible-text.d.ts +20 -0
  244. package/types/rt-tools-ui-kit-v2-confirm-popover.d.ts +85 -0
  245. package/types/rt-tools-ui-kit-v2-container.d.ts +425 -0
  246. package/types/rt-tools-ui-kit-v2-core.d.ts +1222 -0
  247. package/types/rt-tools-ui-kit-v2-counter-row.d.ts +22 -0
  248. package/types/rt-tools-ui-kit-v2-counter.d.ts +70 -0
  249. package/types/rt-tools-ui-kit-v2-data-list.d.ts +334 -0
  250. package/types/rt-tools-ui-kit-v2-data-table.d.ts +494 -0
  251. package/types/rt-tools-ui-kit-v2-date-picker.d.ts +181 -0
  252. package/types/rt-tools-ui-kit-v2-date-range.d.ts +98 -0
  253. package/types/rt-tools-ui-kit-v2-delta-view.d.ts +20 -0
  254. package/types/rt-tools-ui-kit-v2-detail-list.d.ts +33 -0
  255. package/types/rt-tools-ui-kit-v2-dialog.d.ts +287 -0
  256. package/types/rt-tools-ui-kit-v2-dot-field.d.ts +17 -0
  257. package/types/rt-tools-ui-kit-v2-download-link.d.ts +17 -0
  258. package/types/rt-tools-ui-kit-v2-dynamic-list.d.ts +139 -0
  259. package/types/rt-tools-ui-kit-v2-dynamic-selector.d.ts +384 -0
  260. package/types/rt-tools-ui-kit-v2-empty-state.d.ts +29 -0
  261. package/types/rt-tools-ui-kit-v2-expansion-panel.d.ts +57 -0
  262. package/types/rt-tools-ui-kit-v2-field.d.ts +82 -0
  263. package/types/rt-tools-ui-kit-v2-file-card.d.ts +114 -0
  264. package/types/rt-tools-ui-kit-v2-file-drop.d.ts +75 -0
  265. package/types/rt-tools-ui-kit-v2-file-input.d.ts +48 -0
  266. package/types/rt-tools-ui-kit-v2-file-list.d.ts +13 -0
  267. package/types/rt-tools-ui-kit-v2-filter-control.d.ts +72 -0
  268. package/types/rt-tools-ui-kit-v2-form-control.d.ts +74 -0
  269. package/types/rt-tools-ui-kit-v2-header.d.ts +40 -0
  270. package/types/rt-tools-ui-kit-v2-icon-button.d.ts +113 -0
  271. package/types/rt-tools-ui-kit-v2-icon.d.ts +238 -0
  272. package/types/rt-tools-ui-kit-v2-image-cropper.d.ts +168 -0
  273. package/types/rt-tools-ui-kit-v2-image-upload.d.ts +102 -0
  274. package/types/rt-tools-ui-kit-v2-info-item.d.ts +13 -0
  275. package/types/rt-tools-ui-kit-v2-input-number.d.ts +67 -0
  276. package/types/rt-tools-ui-kit-v2-input.d.ts +54 -0
  277. package/types/rt-tools-ui-kit-v2-live-badge.d.ts +23 -0
  278. package/types/rt-tools-ui-kit-v2-logo.d.ts +58 -0
  279. package/types/rt-tools-ui-kit-v2-markdown-text.d.ts +30 -0
  280. package/types/rt-tools-ui-kit-v2-menu.d.ts +217 -0
  281. package/types/rt-tools-ui-kit-v2-message.d.ts +56 -0
  282. package/types/rt-tools-ui-kit-v2-money-list.d.ts +34 -0
  283. package/types/rt-tools-ui-kit-v2-multiselect.d.ts +93 -0
  284. package/types/rt-tools-ui-kit-v2-night-grid.d.ts +39 -0
  285. package/types/rt-tools-ui-kit-v2-note.d.ts +21 -0
  286. package/types/rt-tools-ui-kit-v2-notifications-bell.d.ts +23 -0
  287. package/types/rt-tools-ui-kit-v2-page-header.d.ts +173 -0
  288. package/types/rt-tools-ui-kit-v2-pagination.d.ts +64 -0
  289. package/types/rt-tools-ui-kit-v2-photo-viewer.d.ts +98 -0
  290. package/types/rt-tools-ui-kit-v2-popover.d.ts +79 -0
  291. package/types/rt-tools-ui-kit-v2-radio-button.d.ts +61 -0
  292. package/types/rt-tools-ui-kit-v2-radius.d.ts +37 -0
  293. package/types/rt-tools-ui-kit-v2-rich-editor.d.ts +16 -20
  294. package/types/rt-tools-ui-kit-v2-ripple.d.ts +39 -0
  295. package/types/rt-tools-ui-kit-v2-scroll-area.d.ts +91 -0
  296. package/types/rt-tools-ui-kit-v2-section-nav.d.ts +23 -0
  297. package/types/rt-tools-ui-kit-v2-select.d.ts +215 -0
  298. package/types/rt-tools-ui-kit-v2-side-menu.d.ts +483 -0
  299. package/types/rt-tools-ui-kit-v2-skeleton-wrapper.d.ts +32 -0
  300. package/types/rt-tools-ui-kit-v2-skeleton.d.ts +41 -0
  301. package/types/rt-tools-ui-kit-v2-spinner.d.ts +56 -0
  302. package/types/rt-tools-ui-kit-v2-split-button.d.ts +72 -0
  303. package/types/rt-tools-ui-kit-v2-stat-tile.d.ts +81 -0
  304. package/types/rt-tools-ui-kit-v2-stepper.d.ts +51 -0
  305. package/types/rt-tools-ui-kit-v2-table.d.ts +739 -0
  306. package/types/rt-tools-ui-kit-v2-tabs.d.ts +153 -0
  307. package/types/rt-tools-ui-kit-v2-tag.d.ts +70 -0
  308. package/types/rt-tools-ui-kit-v2-textarea.d.ts +36 -0
  309. package/types/rt-tools-ui-kit-v2-theme-toggle.d.ts +43 -0
  310. package/types/rt-tools-ui-kit-v2-thread-list.d.ts +111 -0
  311. package/types/rt-tools-ui-kit-v2-timeline.d.ts +35 -0
  312. package/types/rt-tools-ui-kit-v2-toast.d.ts +103 -0
  313. package/types/rt-tools-ui-kit-v2-toggle-button-group.d.ts +109 -0
  314. package/types/rt-tools-ui-kit-v2-toggle-switch.d.ts +85 -0
  315. package/types/rt-tools-ui-kit-v2-toolbar.d.ts +66 -0
  316. package/types/rt-tools-ui-kit-v2-tooltip.d.ts +74 -0
  317. package/types/rt-tools-ui-kit-v2-welcome-dialog.d.ts +33 -0
  318. package/types/rt-tools-ui-kit-v2-workspace-details.d.ts +128 -0
  319. package/types/rt-tools-ui-kit-v2-workspace.d.ts +84 -0
  320. package/types/rt-tools-ui-kit-v2.d.ts +87 -9290
  321. package/rt-tools-ui-kit-v2-0.16.0.tgz +0 -0
@@ -0,0 +1,739 @@
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
+
16
+ /** Значение для буфера: явная строка/число либо `null` (тогда берётся отображаемый текст). */
17
+ type TCopyValue = string | number | null;
18
+ /**
19
+ * Ячейка с копированием в буфер — переиспользуемый примитив для `cdkCellDef`
20
+ * (и не только). rt-table projection-driven: контент ячейки пишет
21
+ * потребитель, поэтому копирование оформлено отдельным cell-level компонентом,
22
+ * а не флагом на конфиге колонки.
23
+ *
24
+ * Потребитель проецирует отображаемый контент через `<ng-content>`. Что уйдёт в
25
+ * буфер:
26
+ * - если задан `[value]` — ровно он (нужно когда копируемое отличается от
27
+ * отображаемого: для id-ячейки показываем `#123`, копируем `123`);
28
+ * - если `[value]` не задан — берётся отображаемый текст (textContent
29
+ * проецируемого контента, схлопнутые пробелы) — «копировать как показано»,
30
+ * удобно для составных ячеек (`#7 — Имя`).
31
+ *
32
+ * По умолчанию кнопка скрыта и проявляется при наведении/фокусе (для плотных
33
+ * таблиц). Вне таблиц (модалки, карточки) строки для hover нет — там
34
+ * `revealOnHover="false"` держит кнопку всегда видимой. Палитра кнопки —
35
+ * через `variant` (по умолчанию `ghost`). После клика на `RESET_DELAY_MS`
36
+ * иконка меняется `copy`→`check`, подпись — на «Скопировано».
37
+ */
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>;
74
+ }
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
+ }
150
+ }
151
+
152
+ /** Значение атрибута `aria-sort` заголовка: направление либо его отсутствие. */
153
+ type TRtTableAriaSort = 'ascending' | 'descending' | 'none';
154
+ /**
155
+ * Следующее состояние сортировки при нажатии на заголовок колонки.
156
+ *
157
+ * Порядок кругов: по возрастанию → по убыванию → без сортировки. Третье состояние
158
+ * нужно, чтобы пользователь мог вернуть исходный порядок, не перезагружая список.
159
+ */
160
+ declare function nextSort(current: ISortModel<string> | null, propertyName: string): ISortModel<string> | null;
161
+ /** Направление сортировки по этой колонке либо `null`, когда сортирует другая. */
162
+ declare function sortDirectionOf(current: ISortModel<string> | null, propertyName: string): TListSortOrderType | null;
163
+ /** Значение `aria-sort` заголовка: направление читается скринридером с самой колонки. */
164
+ declare function ariaSortOf(current: ISortModel<string> | null, propertyName: string): TRtTableAriaSort;
165
+ /**
166
+ * Сортируется ли колонка. Колонка, описанная в `columnsConfig`, сортируется только
167
+ * по своему признаку; колонки, которой в конфиге нет, метаданных взять неоткуда —
168
+ * объявлением служит сам заголовок.
169
+ */
170
+ declare function isColumnSortable(config: ReadonlyArray<IRtTable.ColumnConfig>, key: string): boolean;
171
+
172
+ /**
173
+ * Заголовок сортируемой колонки — атрибутом на ячейке шапки:
174
+ * `<th *cdkHeaderCellDef cdk-header-cell rtSortHeader="checkIn">Заезд</th>`.
175
+ *
176
+ * Подпись проецируется внутрь кнопки, и доступное имя кнопки берётся из неё — порядок
177
+ * меняется не только мышью. Текущее направление читается с самой колонки через
178
+ * `aria-sort`, а видно его по стрелке.
179
+ *
180
+ * Колонка сортируется, только когда помечена `sortable` в `[columnsConfig]` таблицы;
181
+ * иначе заголовок остаётся обычной подписью. Элементная форма селектора нужна правилу
182
+ * префиксов и в разметке не применяется: `aria-sort` принадлежит ячейке шапки.
183
+ */
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>;
196
+ }
197
+
198
+ /**
199
+ * Контекст шаблона `[rtTableCard]`: `$implicit` — строка таблицы.
200
+ */
201
+ interface IRtTableCardContext<TRow> {
202
+ $implicit: TRow;
203
+ }
204
+ /**
205
+ * Захватывает `<ng-template rtTableCard let-row>` — кастомную разметку карточки
206
+ * строки для мобильного (узкого) режима `rt-table`. Когда задан, rt-table на
207
+ * узком экране (≤1080px) рендерит эту разметку в `<article>` вместо
208
+ * авто-карточки «label: value» по колонкам.
209
+ *
210
+ * Escape-hatch для страниц, которым нужна rich-карточка (составной primary-блок,
211
+ * теги, произвольная раскладка), а не построчный список полей.
212
+ *
213
+ * @example
214
+ * ```html
215
+ * <rt-table #t="rtTable" [dataSource]="rows" ...>
216
+ * ...колонки...
217
+ * <ng-template rtTableCard [rtTableCardRowType]="rows" let-row>
218
+ * <div class="my-card-head">{{ row.login }}</div>
219
+ * </ng-template>
220
+ * <tr cdk-row *cdkRowDef="let row; columns: t.displayedColumns()"></tr>
221
+ * </rt-table>
222
+ * ```
223
+ */
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>;
236
+ }
237
+
238
+ /**
239
+ * Контекст шаблона `[rtTableRowActions]`: `$implicit` — строка таблицы.
240
+ */
241
+ interface IRtTableRowActionsContext<TRow> {
242
+ $implicit: TRow;
243
+ }
244
+ /**
245
+ * Захватывает `<ng-template rtTableRowActions let-row>` — содержимое «…»-меню
246
+ * действий строки. `rt-table` (`[showRowActions]`) рендерит этот шаблон в конце
247
+ * каждой строки внутри `rt-menu`, прокидывая строку через `$implicit`.
248
+ *
249
+ * Тип `let-row` выводится из `[rtTableRowActionsRowType]` (передаётся тот же
250
+ * массив, что в `dataSource`) — type-carrier, как `*ngFor` выводит тип из
251
+ * `ngForOf`. В рантайме значение не используется.
252
+ *
253
+ * @example
254
+ * ```html
255
+ * <rt-table #t="rtTable" [columns]="cols" [showRowActions]="true" [dataSource]="rows" ...>
256
+ * ...колонки...
257
+ * <ng-template rtTableRowActions [rtTableRowActionsRowType]="rows" let-row>
258
+ * <rt-menu-item icon="ico-edit" label="Редактировать" (selected)="edit(row)" />
259
+ * </ng-template>
260
+ * <tr cdk-header-row *cdkHeaderRowDef="t.displayedColumns()"></tr>
261
+ * <tr cdk-row *cdkRowDef="let row; columns: t.displayedColumns()"></tr>
262
+ * </rt-table>
263
+ * ```
264
+ */
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>;
278
+ }
279
+
280
+ /**
281
+ * Есть ли у строки хотя бы одно доступное действие.
282
+ *
283
+ * Признак приходит предикатом от экрана, а не подсчётом отрисованных пунктов меню:
284
+ * содержимое спроецированного шаблона известно только после отрисовки, и кнопка
285
+ * успевала бы мигнуть на первом кадре.
286
+ *
287
+ * Предикат не задан — у строки есть действия: экран, который ничего не гейтит,
288
+ * показывает кнопку меню, как и раньше.
289
+ */
290
+ declare function rowHasAvailableActions<TRow>(row: TRow, hasActions: IRtTable.RowActionsPredicate<TRow> | null): boolean;
291
+
292
+ /**
293
+ * Есть ли у строки доступные действия — гейт кнопки «…» в ячейке действий.
294
+ *
295
+ * Pure-pipe: пересчитывается только при смене строки или предиката, а не на каждом
296
+ * цикле проверки. Значение приходит из контекста шаблона (строка таблицы), поэтому
297
+ * `computed()` здесь неприменим.
298
+ */
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>;
303
+ }
304
+
305
+ /**
306
+ * Делает строку таблицы (`<tr cdk-row>`) активируемой — общий паттерн «клик по
307
+ * строке открывает деталь/асайд». Инкапсулирует доступность: строка становится
308
+ * focusable, активируется кликом и Enter/Space, наружу отдаёт `(activated)`.
309
+ *
310
+ * Клик/клавиша по интерактивному потомку (кнопка/ссылка/контрол) активацией
311
+ * строки НЕ считается — иначе вложенные действия конфликтовали бы с переходом.
312
+ * Роль строки не переопределяется (table-семантика для скрин-ридеров сохраняется).
313
+ * Визуальный аффорданс (cursor/hover/focus-ring) включает `[clickable]` на rt-table.
314
+ */
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>;
321
+ }
322
+
323
+ /** Имя внутренней «…»-колонки действий, добавляемой при `[showRowActions]`. */
324
+ declare const RT_TABLE_ROW_ACTIONS_COLUMN: string;
325
+ /**
326
+ * Колонки конфига без применённых настроек пользователя — источник для кнопки
327
+ * «Сбросить» в панели. Закрытая колонка видима всегда: скрыть её панель не даёт.
328
+ */
329
+ declare function defaultColumnItems(config: ReadonlyArray<IRtTable.ColumnConfig>): ReadonlyArray<IRtTable.ColumnSettingItem>;
330
+ /**
331
+ * Разрешённые колонки настраиваемой таблицы: конфиг в применённом порядке с текущим
332
+ * признаком скрытия.
333
+ *
334
+ * Порядок берётся из сохранённых настроек, а колонки, появившиеся в конфиге после
335
+ * сохранения, встают в конец: настройки, снятые с прежнего состава, иначе прятали бы
336
+ * новую колонку молча. Настроек нет — порядок и скрытие берутся из самого конфига.
337
+ */
338
+ declare function resolveColumns(config: ReadonlyArray<IRtTable.ColumnConfig>, settings: IRtTable.ColumnSettings | null): ReadonlyArray<IRtTable.ColumnSettingItem>;
339
+ /**
340
+ * Имена колонок для строк CDK: у настраиваемой таблицы — видимые в применённом порядке,
341
+ * у остальных — то, что назвал вход `[columns]`. Колонка действий встаёт последней, когда
342
+ * действия строки включены.
343
+ */
344
+ declare function displayedColumnKeys(resolved: ReadonlyArray<IRtTable.ColumnSettingItem>, legacyColumns: ReadonlyArray<string>, configurable: boolean, showRowActions: boolean): ReadonlyArray<string>;
345
+ /**
346
+ * Настройки панели, приведённые к конфигу: ключи закрытых колонок из списка скрытых
347
+ * вычищаются. Панель их не предлагает, но настройки приезжают и из хранилища — снятые с
348
+ * той поры, когда колонка закрытой ещё не была.
349
+ */
350
+ declare function withoutLockedHidden(config: ReadonlyArray<IRtTable.ColumnConfig>, settings: IRtTable.ColumnSettings): IRtTable.ColumnSettings;
351
+
352
+ /**
353
+ * Поле авто-карточки узкого экрана: подпись колонки и её шаблон ячейки. Значение рисуется
354
+ * тем же шаблоном, что и в строке таблицы, — второй разметки у карточки нет.
355
+ */
356
+ interface IRtTableCardColumn<TRow> {
357
+ key: string;
358
+ label: string;
359
+ cell: TemplateRef<IRtTableCardContext<TRow>>;
360
+ }
361
+
362
+ /**
363
+ * Таблица — стилизованная обёртка над `cdk-table` (`@angular/cdk/table`).
364
+ *
365
+ * Селектор работает и как element (`<rt-table>`), и как attribute на native `<table rt-table>`.
366
+ * Native-вариант предпочтительнее — даёт правильную table-семантику для скрин-ридеров, но
367
+ * наложения загрузки, пустого места и заглушек требуют element-варианта: `<div>` не валиден как
368
+ * ребёнок `<table>`.
369
+ *
370
+ * Какие состояния таблица различает и чем рисует каждое — в заметке семьи рядом, `CONTEXT.md`.
371
+ */
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: {}; }]>;
530
+ }
531
+
532
+ /**
533
+ * Регистрация настраиваемой таблицы в реестре: её текущие/дефолтные колонки
534
+ * (сигналы) + callback применения новых настроек (применяет к таблице и
535
+ * персистит). Заполняется самой `rt-table`, читается route-асайдом настроек.
536
+ */
537
+ interface IRtTableSettingsRegistration {
538
+ columns: Signal<ReadonlyArray<IRtTable.ColumnSettingItem>>;
539
+ defaults: Signal<ReadonlyArray<IRtTable.ColumnSettingItem>>;
540
+ apply: (settings: IRtTable.ColumnSettings) => void;
541
+ }
542
+ /**
543
+ * Реестр настраиваемых таблиц — мост между `rt-table` (shared UI) и route-асайдом
544
+ * настроек колонок, которые живут в разных ветках дерева и не видят друг друга
545
+ * напрямую. `rt-table` регистрируется по `tableId` на init, снимается на destroy;
546
+ * асайд читает регистрацию активной таблицы (`active()` выставляется при открытии).
547
+ *
548
+ * Реестр реактивный (`Map` живёт в сигнале): при F5 route-асайд инициализируется
549
+ * раньше `rt-table`, и синхронный промах по пустому реестру не должен быть
550
+ * финальным — асайд дожидается регистрации через `effect` (фикс F-16).
551
+ */
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>;
571
+ }
572
+
573
+ /**
574
+ * Общий route-driven side-sheet настроек колонок для любой `rt-table`. Открывается
575
+ * навигацией на `(ro:table-settings)`; какая таблица настраивается — берётся из
576
+ * `RtTableSettingsRegistry.active()` (потребитель выставляет `setActive(tableId)`
577
+ * перед навигацией). Create-mode: id в route нет (`tableId` — строка, числовой базой
578
+ * не резолвится).
579
+ *
580
+ * Тело списка (drag-reorder + видимость) — переиспользуемый `rt-table-settings-panel`;
581
+ * «Сохранить»/«Сбросить» живут в chrome асайда над локальным `items`, засеянным из
582
+ * активной регистрации. Регистрируется в `routes.ts` каждого shell под `outlet: "ro"`.
583
+ */
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>;
597
+ }
598
+
599
+ /**
600
+ * Презентационный редактор списка колонок таблицы: reorder (drag-drop) + видимость
601
+ * (глаз). Locked-колонки всегда видимы и не перетаскиваются. Двусторонний `items` —
602
+ * текущее состояние; контейнер (route-асайд настроек) владеет сигналом, читает его
603
+ * для «Сохранить»/«Сбросить» и передаёт сюда через `[(items)]`.
604
+ */
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>;
614
+ }
615
+
616
+ /** Значение условия в том виде, в каком оно хранится и сверяется. */
617
+ type TRtTableFilterValue = string | number | boolean;
618
+ /** Что приходит в ячейку от человека: дата приходит объектом, остальное — уже готовым значением. */
619
+ type TRtTableFilterInput = TRtTableFilterValue | Date | null | undefined;
620
+ /**
621
+ * Значение в том виде, в каком оно хранится: дата — строкой.
622
+ *
623
+ * `Date` не равен строке никогда, и без приведения повторный выбор той же даты каждый раз
624
+ * считался бы новым значением — а тогда статья «повтор того же значения не сообщает ничего»
625
+ * не держалась бы именно там, где её проще всего нарушить.
626
+ */
627
+ declare function filterValueOf(value: TRtTableFilterInput): TRtTableFilterValue;
628
+ /** Условие по этой колонке из набора либо `null`, когда колонка ничего не отбирает. */
629
+ declare function filterOf(filters: readonly IFilterModel<string>[], propertyName: string): IFilterModel<string> | null;
630
+ /**
631
+ * Набор условий после перемены значения по одной колонке.
632
+ *
633
+ * Пустое значение снимает колонку с отбора, а не уходит пустым условием: условие без значения
634
+ * просит потребителя ответить «подходит всё», и потребитель, прочитавший его буквально, не
635
+ * вернёт ни одной строки.
636
+ *
637
+ * Возвращает прежний набор тем же объектом, когда менять нечего: по этому признаку ячейка и
638
+ * решает, сообщать ли наружу.
639
+ */
640
+ declare function filtersWithValue(filters: readonly IFilterModel<string>[], propertyName: string, operatorType: TFilterOperatorType, value: TRtTableFilterValue): readonly IFilterModel<string>[];
641
+ /**
642
+ * Набор условий после перемены вида сравнения по одной колонке.
643
+ *
644
+ * Пока значения нет, менять вид сравнения не у чего: отбирать нечего, и набор условий не
645
+ * изменился — значит, наружу ничего не уходит.
646
+ */
647
+ declare function filtersWithOperator(filters: readonly IFilterModel<string>[], propertyName: string, operatorType: TFilterOperatorType): readonly IFilterModel<string>[];
648
+ /** Вид сравнения, с которого колонка начинает: свой, первый разрешённый либо равенство. */
649
+ declare function startOperatorOf(allowed: readonly TFilterOperatorType[] | undefined, start: TFilterOperatorType | undefined): TFilterOperatorType;
650
+ /**
651
+ * Ячейки строки отбора: по ячейке на каждую показанную колонку, в том же порядке.
652
+ *
653
+ * У колонки без объявленного отбора ячейка пустая, и место своё она держит: убрать её значило бы
654
+ * сдвинуть все следующие ячейки на одну колонку влево — поле города встало бы под шапкой цены.
655
+ * Колонка действий строки приходит сюда тем же путём, последней, и отбора у неё нет никогда; её
656
+ * ячейка помечена, чтобы строка отбора не дала ширины колонке, которая места не занимает.
657
+ */
658
+ declare function filterCellsOf(columns: ReadonlyArray<string>, config: ReadonlyArray<IRtTable.ColumnConfig>): ReadonlyArray<IRtTable.FilterCell>;
659
+
660
+ /** Один вид сравнения в списке: сам вид и его подпись из словаря. */
661
+ interface IOperatorView {
662
+ readonly type: TFilterOperatorType;
663
+ readonly label: string;
664
+ }
665
+ /**
666
+ * Отбор в шапке столбца таблицы.
667
+ *
668
+ * Стоит рядом с именем колонки: сужение, живущее в стороне от того, что сужает, не даёт увидеть,
669
+ * какая колонка сузила список — человек читает короткий список и не узнаёт, почему он короткий.
670
+ *
671
+ * Своих полей не рисует ни одного: вид отбора решает, какую готовую часть кита позвать. Поля кита
672
+ * ведутся формой, поэтому значение идёт через `FormControl`, а не входом со своим выходом.
673
+ *
674
+ * Наружу уходит весь набор условий, а не одно изменившееся: потребитель спрашивает сервер набором,
675
+ * и, получив одно условие, держал бы вторую копию набора — две копии расходятся молча. Строк
676
+ * семейство не отбирает: строки принадлежат тому, кто держит список.
677
+ */
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>;
736
+ }
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 };