@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,65 +1,63 @@
1
- import * as i0 from '@angular/core';
2
- import { TemplateRef, Signal, ElementRef, WritableSignal, InputSignal, InputSignalWithTransform, OutputEmitterRef, OnInit, ModelSignal } from '@angular/core';
3
- import { RtFormControlBase } from '@rt-tools/ui-kit-v2/form-control';
4
- import { TRtRadius, IRtIcon, IButton, IRtInput } from '@rt-tools/ui-kit-v2/core';
5
- import { CdkDragDrop } from '@angular/cdk/drag-drop';
6
- import { RtPopoverDirective } from '@rt-tools/ui-kit-v2/popover';
7
-
1
+ import * as i0 from "@angular/core";
2
+ import { ElementRef, InputSignal, InputSignalWithTransform, ModelSignal, OnInit, OutputEmitterRef, Signal, TemplateRef, WritableSignal } from "@angular/core";
3
+ import { RtFormControlBase } from "@rt-tools/ui-kit-v2/form-control";
4
+ import { IButton, IRtIcon, IRtInput, TRtRadius } from "@rt-tools/ui-kit-v2/core";
5
+ import { CdkDragDrop } from "@angular/cdk/drag-drop";
6
+ import { RtPopoverDirective } from "@rt-tools/ui-kit-v2/popover";
8
7
  /**
9
8
  * Модель `rt-dynamic-selector`: один корневой неймспейс с префиксом `I`.
10
9
  */
11
- declare namespace IRtDynamicSelector {
12
- /** Состояние флажка «Выбрать всё» по видимым пунктам. */
13
- type SelectAllState = 'none' | 'some' | 'all';
14
- /** Как выбирает всплывающий список: один пункт переключателем или несколько флажками. */
15
- type Mode = 'single' | 'multi';
16
- /** Регистр подписи кнопки: как есть, каждое слово с заглавной или вся заглавными. */
17
- type LabelCase = 'none' | 'title' | 'upper';
18
- /** Строки всплывающего выбора: отмеченные раньше над разделителем и найденные под ним. */
19
- interface PopupRows<T> {
20
- readonly ticked: ReadonlyArray<T>;
21
- readonly found: ReadonlyArray<T>;
22
- }
23
- /** Кусок подписи пункта: совпал ли он со словом поиска. */
24
- interface MatchPart {
25
- readonly text: string;
26
- readonly matched: boolean;
27
- }
28
- /** Строка всплывающего выбора, готовая для разметки. */
29
- interface PopupRow<T> {
30
- readonly entity: T;
31
- readonly key: unknown;
32
- readonly label: string;
33
- /** Подпись по кускам; без подсветки поиска — один кусок без отметки. */
34
- readonly parts: ReadonlyArray<MatchPart>;
35
- readonly ticked: boolean;
36
- /** Под строкой стоит разделитель. */
37
- readonly separated: boolean;
38
- }
39
- /** Строка списка выбранного, готовая для разметки. */
40
- interface ListRow<T> {
41
- readonly item: T;
42
- readonly key: unknown;
43
- readonly label: string;
44
- /** Строку нельзя убрать из списка. */
45
- readonly locked: boolean;
46
- }
47
- /** Перенос строки списка выбранного: откуда и куда. */
48
- interface Move {
49
- readonly from: number;
50
- readonly to: number;
51
- }
52
- /** Обстановка шаблона строки, который принёс вызывающий. */
53
- interface RowContext<T> {
54
- readonly $implicit: T;
55
- }
56
- /** Правка строки поля списка строк: прежнее значение и новое. */
57
- interface TextEdit {
58
- readonly previous: string;
59
- readonly next: string;
60
- }
10
+ export declare namespace IRtDynamicSelector {
11
+ /** Состояние флажка «Выбрать всё» по видимым пунктам. */
12
+ type SelectAllState = 'none' | 'some' | 'all';
13
+ /** Как выбирает всплывающий список: один пункт переключателем или несколько флажками. */
14
+ type Mode = 'single' | 'multi';
15
+ /** Регистр подписи кнопки: как есть, каждое слово с заглавной или вся заглавными. */
16
+ type LabelCase = 'none' | 'title' | 'upper';
17
+ /** Строки всплывающего выбора: отмеченные раньше над разделителем и найденные под ним. */
18
+ interface PopupRows<T> {
19
+ readonly ticked: ReadonlyArray<T>;
20
+ readonly found: ReadonlyArray<T>;
21
+ }
22
+ /** Кусок подписи пункта: совпал ли он со словом поиска. */
23
+ interface MatchPart {
24
+ readonly text: string;
25
+ readonly matched: boolean;
26
+ }
27
+ /** Строка всплывающего выбора, готовая для разметки. */
28
+ interface PopupRow<T> {
29
+ readonly entity: T;
30
+ readonly key: unknown;
31
+ readonly label: string;
32
+ /** Подпись по кускам; без подсветки поиска — один кусок без отметки. */
33
+ readonly parts: ReadonlyArray<MatchPart>;
34
+ readonly ticked: boolean;
35
+ /** Под строкой стоит разделитель. */
36
+ readonly separated: boolean;
37
+ }
38
+ /** Строка списка выбранного, готовая для разметки. */
39
+ interface ListRow<T> {
40
+ readonly item: T;
41
+ readonly key: unknown;
42
+ readonly label: string;
43
+ /** Строку нельзя убрать из списка. */
44
+ readonly locked: boolean;
45
+ }
46
+ /** Перенос строки списка выбранного: откуда и куда. */
47
+ interface Move {
48
+ readonly from: number;
49
+ readonly to: number;
50
+ }
51
+ /** Обстановка шаблона строки, который принёс вызывающий. */
52
+ interface RowContext<T> {
53
+ readonly $implicit: T;
54
+ }
55
+ /** Правка строки поля списка строк: прежнее значение и новое. */
56
+ interface TextEdit {
57
+ readonly previous: string;
58
+ readonly next: string;
59
+ }
61
60
  }
62
-
63
61
  /**
64
62
  * Маркеры частей строки списка выбранного — своим файлом, как у соседних семей.
65
63
  *
@@ -79,18 +77,17 @@ declare namespace IRtDynamicSelector {
79
77
  * </rt-dynamic-selector>
80
78
  * ```
81
79
  */
82
- declare class RtDynamicSelectorRowControlsDirective<T = unknown> {
83
- readonly templateRef: TemplateRef<IRtDynamicSelector.RowContext<T>>;
84
- static ɵfac: i0.ɵɵFactoryDeclaration<RtDynamicSelectorRowControlsDirective<any>, never>;
85
- static ɵdir: i0.ɵɵDirectiveDeclaration<RtDynamicSelectorRowControlsDirective<any>, "[rtDynamicSelectorRowControls]", never, {}, {}, never, never, true, never>;
80
+ export declare class RtDynamicSelectorRowControlsDirective<T = unknown> {
81
+ readonly templateRef: TemplateRef<IRtDynamicSelector.RowContext<T>>;
82
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDynamicSelectorRowControlsDirective<any>, never>;
83
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RtDynamicSelectorRowControlsDirective<any>, "[rtDynamicSelectorRowControls]", never, {}, {}, never, never, true, never>;
86
84
  }
87
85
  /** Своё название строки вместо подписи из поля записи. */
88
- declare class RtDynamicSelectorRowTitleDirective<T = unknown> {
89
- readonly templateRef: TemplateRef<IRtDynamicSelector.RowContext<T>>;
90
- static ɵfac: i0.ɵɵFactoryDeclaration<RtDynamicSelectorRowTitleDirective<any>, never>;
91
- static ɵdir: i0.ɵɵDirectiveDeclaration<RtDynamicSelectorRowTitleDirective<any>, "[rtDynamicSelectorRowTitle]", never, {}, {}, never, never, true, never>;
86
+ export declare class RtDynamicSelectorRowTitleDirective<T = unknown> {
87
+ readonly templateRef: TemplateRef<IRtDynamicSelector.RowContext<T>>;
88
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDynamicSelectorRowTitleDirective<any>, never>;
89
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RtDynamicSelectorRowTitleDirective<any>, "[rtDynamicSelectorRowTitle]", never, {}, {}, never, never, true, never>;
92
90
  }
93
-
94
91
  /**
95
92
  * Поле списка строк: строки человек набирает сам. Значение — массив строк в порядке списка.
96
93
  * Enter или уход из поля добавляют срезанный по краям текст в конец; пустой и повторный не
@@ -101,236 +98,531 @@ declare class RtDynamicSelectorRowTitleDirective<T = unknown> {
101
98
  * <rt-dynamic-input editable [formControl]="tags" />
102
99
  * ```
103
100
  */
104
- declare class RtDynamicInputComponent extends RtFormControlBase<string[]> {
105
- #private;
106
- protected readonly addLabel: Signal<string>;
107
- protected readonly placeholderLabel: Signal<string>;
108
- protected readonly field: Signal<ElementRef<HTMLElement> | undefined>;
109
- protected readonly rowControls: Signal<RtDynamicSelectorRowControlsDirective<string> | undefined>;
110
- protected readonly controlsTpl: Signal<TemplateRef<IRtDynamicSelector.RowContext<string>> | null>;
111
- /** Поле набора открыто, и в нём текст. */
112
- protected readonly isFieldShown: WritableSignal<boolean>;
113
- protected readonly draft: WritableSignal<string>;
114
- /** Приглашение снимается нажатием его кнопки и до новой записи формы не возвращается. */
115
- protected readonly isInvitationDismissed: WritableSignal<boolean>;
116
- protected readonly rows: Signal<IRtDynamicSelector.ListRow<string>[]>;
117
- protected readonly isInvitationShown: Signal<boolean>;
118
- protected readonly isAddShown: Signal<boolean>;
119
- protected readonly isKeysReset: Signal<boolean>;
120
- protected readonly isKeysClear: Signal<boolean>;
121
- /** Правки в шаблоне строки держат сброс и очистку включёнными, даже когда строки не менялись. */
122
- protected readonly isResetDisabled: Signal<boolean>;
123
- protected readonly isClearDisabled: Signal<boolean>;
124
- protected readonly addTitle: Signal<string>;
125
- protected readonly fieldPlaceholder: Signal<string>;
126
- protected readonly hasValue: Signal<boolean>;
127
- readonly buttonTitle: InputSignal<string>;
128
- readonly placeholder: InputSignal<string>;
129
- /** Строки, которые нельзя убрать из списка. */
130
- readonly readonlyKeys: InputSignal<ReadonlyArray<string>>;
131
- readonly draggable: InputSignalWithTransform<boolean, unknown>;
132
- /** Шаг скругления кнопок-иконок списка; по умолчанию они круглые. */
133
- readonly buttonRadius: InputSignal<TRtRadius | null>;
134
- readonly editable: InputSignalWithTransform<boolean, unknown>;
135
- readonly invitation: InputSignalWithTransform<boolean, unknown>;
136
- readonly invitationIcon: InputSignal<IRtIcon.Name | null>;
137
- /** Имя Material вместо `invitationIcon` — уходит во вход `glyph` заглушки приглашения. */
138
- readonly invitationGlyph: InputSignal<string | null>;
139
- readonly invitationDescription: InputSignal<string>;
140
- /** Значок кнопки приглашения; null — кнопка без значка. */
141
- readonly invitationButtonIcon: InputSignal<IRtIcon.Name | null>;
142
- /** Вид кнопки приглашения — тот же набор, что у кнопки кита. */
143
- readonly invitationButtonAppearance: InputSignal<IButton.Appearance>;
144
- /** Значок кнопки «Очистить список». */
145
- readonly clearIcon: InputSignal<IRtIcon.Name>;
146
- /** Название строки переносится; `false` ведёт его одной строкой с многоточием и подсказкой при обрезке. */
147
- readonly titleWrap: InputSignalWithTransform<boolean, unknown>;
148
- /** Вид поля, в которое вводят новую строку. */
149
- readonly fieldAppearance: InputSignal<IRtInput.Appearance>;
150
- /** Подпись поля новой строки; пустая — поле без подписи, как раньше. */
151
- readonly fieldLabel: InputSignal<string>;
152
- /** Корзина строк; без неё строки убирает только очистка или сам вызывающий. */
153
- readonly removeShown: InputSignalWithTransform<boolean, unknown>;
154
- /** Сброс и очистка под списком: `false` их убирает, кнопка добавления остаётся. */
155
- readonly listActionsShown: InputSignalWithTransform<boolean, unknown>;
156
- /**
157
- * Строки правлены в шаблоне вызывающего: сброс и очистка включены и тогда, когда строки прежние.
158
- * Сброс сообщает `listReset`, очистка — `listCleared`, и вызывающий снимает свои правки.
159
- */
160
- readonly extraChanged: InputSignalWithTransform<boolean, unknown>;
161
- readonly listReset: OutputEmitterRef<void>;
162
- readonly listCleared: OutputEmitterRef<void>;
163
- readonly displayText: Signal<string>;
164
- /** Записанное формой становится и списком, и значением для сброса; пустой массив список опустошает. */
165
- writeValue(value: string[] | null): void;
166
- protected onAdd(): void;
167
- /** Enter или уход из поля: пустой текст поле не закрывает, повторный закрывает без изменений. */
168
- protected onCommit(): void;
169
- protected onRemoved(key: unknown): void;
170
- protected onMoved(move: IRtDynamicSelector.Move): void;
171
- protected onEdited(edit: IRtDynamicSelector.TextEdit): void;
172
- protected onReset(): void;
173
- protected onCleared(): void;
174
- protected getEmptyValue(): string[];
175
- protected focusAfterClear(): void;
176
- static ɵfac: i0.ɵɵFactoryDeclaration<RtDynamicInputComponent, never>;
177
- static ɵcmp: i0.ɵɵComponentDeclaration<RtDynamicInputComponent, "rt-dynamic-input", never, { "buttonTitle": { "alias": "buttonTitle"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "readonlyKeys": { "alias": "readonlyKeys"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "buttonRadius": { "alias": "buttonRadius"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "invitation": { "alias": "invitation"; "required": false; "isSignal": true; }; "invitationIcon": { "alias": "invitationIcon"; "required": false; "isSignal": true; }; "invitationGlyph": { "alias": "invitationGlyph"; "required": false; "isSignal": true; }; "invitationDescription": { "alias": "invitationDescription"; "required": false; "isSignal": true; }; "invitationButtonIcon": { "alias": "invitationButtonIcon"; "required": false; "isSignal": true; }; "invitationButtonAppearance": { "alias": "invitationButtonAppearance"; "required": false; "isSignal": true; }; "clearIcon": { "alias": "clearIcon"; "required": false; "isSignal": true; }; "titleWrap": { "alias": "titleWrap"; "required": false; "isSignal": true; }; "fieldAppearance": { "alias": "fieldAppearance"; "required": false; "isSignal": true; }; "fieldLabel": { "alias": "fieldLabel"; "required": false; "isSignal": true; }; "removeShown": { "alias": "removeShown"; "required": false; "isSignal": true; }; "listActionsShown": { "alias": "listActionsShown"; "required": false; "isSignal": true; }; "extraChanged": { "alias": "extraChanged"; "required": false; "isSignal": true; }; }, { "listReset": "listReset"; "listCleared": "listCleared"; }, ["rowControls"], never, true, never>;
101
+ export declare class RtDynamicInputComponent extends RtFormControlBase<string[]> {
102
+ #private;
103
+ protected readonly addLabel: Signal<string>;
104
+ protected readonly placeholderLabel: Signal<string>;
105
+ protected readonly field: Signal<ElementRef<HTMLElement> | undefined>;
106
+ protected readonly rowControls: Signal<RtDynamicSelectorRowControlsDirective<string> | undefined>;
107
+ protected readonly controlsTpl: Signal<TemplateRef<IRtDynamicSelector.RowContext<string>> | null>;
108
+ /** Поле набора открыто, и в нём текст. */
109
+ protected readonly isFieldShown: WritableSignal<boolean>;
110
+ protected readonly draft: WritableSignal<string>;
111
+ /** Приглашение снимается нажатием его кнопки и до новой записи формы не возвращается. */
112
+ protected readonly isInvitationDismissed: WritableSignal<boolean>;
113
+ protected readonly rows: Signal<IRtDynamicSelector.ListRow<string>[]>;
114
+ protected readonly isInvitationShown: Signal<boolean>;
115
+ protected readonly isAddShown: Signal<boolean>;
116
+ protected readonly isKeysReset: Signal<boolean>;
117
+ protected readonly isKeysClear: Signal<boolean>;
118
+ /** Правки в шаблоне строки держат сброс и очистку включёнными, даже когда строки не менялись. */
119
+ protected readonly isResetDisabled: Signal<boolean>;
120
+ protected readonly isClearDisabled: Signal<boolean>;
121
+ protected readonly addTitle: Signal<string>;
122
+ protected readonly fieldPlaceholder: Signal<string>;
123
+ protected readonly hasValue: Signal<boolean>;
124
+ readonly buttonTitle: InputSignal<string>;
125
+ readonly placeholder: InputSignal<string>;
126
+ /** Строки, которые нельзя убрать из списка. */
127
+ readonly readonlyKeys: InputSignal<ReadonlyArray<string>>;
128
+ readonly draggable: InputSignalWithTransform<boolean, unknown>;
129
+ /** Шаг скругления кнопок-иконок списка; по умолчанию они круглые. */
130
+ readonly buttonRadius: InputSignal<TRtRadius | null>;
131
+ readonly editable: InputSignalWithTransform<boolean, unknown>;
132
+ readonly invitation: InputSignalWithTransform<boolean, unknown>;
133
+ readonly invitationIcon: InputSignal<IRtIcon.Name | null>;
134
+ /** Имя Material вместо `invitationIcon` — уходит во вход `glyph` заглушки приглашения. */
135
+ readonly invitationGlyph: InputSignal<string | null>;
136
+ readonly invitationDescription: InputSignal<string>;
137
+ /** Значок кнопки приглашения; null — кнопка без значка. */
138
+ readonly invitationButtonIcon: InputSignal<IRtIcon.Name | null>;
139
+ /** Вид кнопки приглашения — тот же набор, что у кнопки кита. */
140
+ readonly invitationButtonAppearance: InputSignal<IButton.Appearance>;
141
+ /** Значок кнопки «Очистить список». */
142
+ readonly clearIcon: InputSignal<IRtIcon.Name>;
143
+ /** Название строки переносится; `false` ведёт его одной строкой с многоточием и подсказкой при обрезке. */
144
+ readonly titleWrap: InputSignalWithTransform<boolean, unknown>;
145
+ /** Вид поля, в которое вводят новую строку. */
146
+ readonly fieldAppearance: InputSignal<IRtInput.Appearance>;
147
+ /** Подпись поля новой строки; пустая — поле без подписи, как раньше. */
148
+ readonly fieldLabel: InputSignal<string>;
149
+ /** Корзина строк; без неё строки убирает только очистка или сам вызывающий. */
150
+ readonly removeShown: InputSignalWithTransform<boolean, unknown>;
151
+ /** Сброс и очистка под списком: `false` их убирает, кнопка добавления остаётся. */
152
+ readonly listActionsShown: InputSignalWithTransform<boolean, unknown>;
153
+ /**
154
+ * Строки правлены в шаблоне вызывающего: сброс и очистка включены и тогда, когда строки прежние.
155
+ * Сброс сообщает `listReset`, очистка — `listCleared`, и вызывающий снимает свои правки.
156
+ */
157
+ readonly extraChanged: InputSignalWithTransform<boolean, unknown>;
158
+ readonly listReset: OutputEmitterRef<void>;
159
+ readonly listCleared: OutputEmitterRef<void>;
160
+ readonly displayText: Signal<string>;
161
+ /** Записанное формой становится и списком, и значением для сброса; пустой массив список опустошает. */
162
+ writeValue(value: string[] | null): void;
163
+ protected onAdd(): void;
164
+ /** Enter или уход из поля: пустой текст поле не закрывает, повторный закрывает без изменений. */
165
+ protected onCommit(): void;
166
+ protected onRemoved(key: unknown): void;
167
+ protected onMoved(move: IRtDynamicSelector.Move): void;
168
+ protected onEdited(edit: IRtDynamicSelector.TextEdit): void;
169
+ protected onReset(): void;
170
+ protected onCleared(): void;
171
+ protected getEmptyValue(): string[];
172
+ protected focusAfterClear(): void;
173
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDynamicInputComponent, never>;
174
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtDynamicInputComponent, "rt-dynamic-input", never, {
175
+ "buttonTitle": {
176
+ "alias": "buttonTitle";
177
+ "required": false;
178
+ "isSignal": true;
179
+ };
180
+ "placeholder": {
181
+ "alias": "placeholder";
182
+ "required": false;
183
+ "isSignal": true;
184
+ };
185
+ "readonlyKeys": {
186
+ "alias": "readonlyKeys";
187
+ "required": false;
188
+ "isSignal": true;
189
+ };
190
+ "draggable": {
191
+ "alias": "draggable";
192
+ "required": false;
193
+ "isSignal": true;
194
+ };
195
+ "buttonRadius": {
196
+ "alias": "buttonRadius";
197
+ "required": false;
198
+ "isSignal": true;
199
+ };
200
+ "editable": {
201
+ "alias": "editable";
202
+ "required": false;
203
+ "isSignal": true;
204
+ };
205
+ "invitation": {
206
+ "alias": "invitation";
207
+ "required": false;
208
+ "isSignal": true;
209
+ };
210
+ "invitationIcon": {
211
+ "alias": "invitationIcon";
212
+ "required": false;
213
+ "isSignal": true;
214
+ };
215
+ "invitationGlyph": {
216
+ "alias": "invitationGlyph";
217
+ "required": false;
218
+ "isSignal": true;
219
+ };
220
+ "invitationDescription": {
221
+ "alias": "invitationDescription";
222
+ "required": false;
223
+ "isSignal": true;
224
+ };
225
+ "invitationButtonIcon": {
226
+ "alias": "invitationButtonIcon";
227
+ "required": false;
228
+ "isSignal": true;
229
+ };
230
+ "invitationButtonAppearance": {
231
+ "alias": "invitationButtonAppearance";
232
+ "required": false;
233
+ "isSignal": true;
234
+ };
235
+ "clearIcon": {
236
+ "alias": "clearIcon";
237
+ "required": false;
238
+ "isSignal": true;
239
+ };
240
+ "titleWrap": {
241
+ "alias": "titleWrap";
242
+ "required": false;
243
+ "isSignal": true;
244
+ };
245
+ "fieldAppearance": {
246
+ "alias": "fieldAppearance";
247
+ "required": false;
248
+ "isSignal": true;
249
+ };
250
+ "fieldLabel": {
251
+ "alias": "fieldLabel";
252
+ "required": false;
253
+ "isSignal": true;
254
+ };
255
+ "removeShown": {
256
+ "alias": "removeShown";
257
+ "required": false;
258
+ "isSignal": true;
259
+ };
260
+ "listActionsShown": {
261
+ "alias": "listActionsShown";
262
+ "required": false;
263
+ "isSignal": true;
264
+ };
265
+ "extraChanged": {
266
+ "alias": "extraChanged";
267
+ "required": false;
268
+ "isSignal": true;
269
+ };
270
+ }, {
271
+ "listReset": "listReset";
272
+ "listCleared": "listCleared";
273
+ }, ["rowControls"], never, true, never>;
178
274
  }
179
-
180
275
  /**
181
276
  * Список выбранного семьи динамических селекторов: строки с удалением, ручкой перетаскивания и
182
277
  * правкой, под ними полоса с кнопкой добавления вызывающего, сбросом и очисткой. Значения список
183
278
  * не держит: он сообщает, что человек сделал, а селектор и поле списка строк решают, что из этого
184
279
  * выходит.
185
280
  */
186
- declare class RtDynamicSelectorListComponent<TItem> {
187
- #private;
188
- /** На узком экране подсказки кнопок не показываются: наведения там нет. */
189
- protected readonly isNarrow: Signal<boolean>;
190
- protected readonly dragLabel: Signal<string>;
191
- protected readonly removeLabel: Signal<string>;
192
- protected readonly editLabel: Signal<string>;
193
- protected readonly applyLabel: Signal<string>;
194
- protected readonly cancelLabel: Signal<string>;
195
- protected readonly resetLabel: Signal<string>;
196
- protected readonly clearLabel: Signal<string>;
197
- /** Строка, открытая для правки, и текст в её поле. */
198
- protected readonly editedIndex: WritableSignal<number | null>;
199
- protected readonly draft: WritableSignal<string>;
200
- readonly rows: InputSignal<ReadonlyArray<IRtDynamicSelector.ListRow<TItem>>>;
201
- readonly draggable: InputSignalWithTransform<boolean, unknown>;
202
- readonly editable: InputSignalWithTransform<boolean, unknown>;
203
- readonly disabled: InputSignalWithTransform<boolean, unknown>;
204
- /** Полоса под строками; приглашение вызывающего встаёт на её место. */
205
- readonly actionsShown: InputSignalWithTransform<boolean, unknown>;
206
- /** Сброс и очистка в полосе; без них в полосе остаётся кнопка добавления. */
207
- readonly resetClearShown: InputSignalWithTransform<boolean, unknown>;
208
- /** Корзина строк; без неё строки двигаются и правятся, но не убираются. */
209
- readonly removeShown: InputSignalWithTransform<boolean, unknown>;
210
- readonly resetDisabled: InputSignalWithTransform<boolean, unknown>;
211
- readonly clearDisabled: InputSignalWithTransform<boolean, unknown>;
212
- /** Шаг скругления кнопок-иконок списка; по умолчанию они круглые. */
213
- readonly buttonRadius: InputSignal<TRtRadius | null>;
214
- /** Значок кнопки «Очистить список»; по умолчанию крестик. */
215
- readonly clearIcon: InputSignal<IRtIcon.Name>;
216
- /** Название строки переносится; `false` ведёт его одной строкой с многоточием и подсказкой при обрезке. */
217
- readonly titleWrap: InputSignalWithTransform<boolean, unknown>;
218
- readonly titleTpl: InputSignal<TemplateRef<IRtDynamicSelector.RowContext<TItem>> | null>;
219
- readonly controlsTpl: InputSignal<TemplateRef<IRtDynamicSelector.RowContext<TItem>> | null>;
220
- readonly removed: OutputEmitterRef<unknown>;
221
- readonly moved: OutputEmitterRef<IRtDynamicSelector.Move>;
222
- readonly edited: OutputEmitterRef<IRtDynamicSelector.TextEdit>;
223
- readonly resetClicked: OutputEmitterRef<void>;
224
- readonly cleared: OutputEmitterRef<void>;
225
- /** Строка, взятая из чужого списка, ничего не меняет; брошенная на своё место — тоже. */
226
- protected onDrop(event: CdkDragDrop<unknown>): void;
227
- protected onRemove(row: IRtDynamicSelector.ListRow<TItem>): void;
228
- protected onEditStart(index: number, row: IRtDynamicSelector.ListRow<TItem>): void;
229
- protected onEditApply(row: IRtDynamicSelector.ListRow<TItem>): void;
230
- protected onEditCancel(): void;
231
- static ɵfac: i0.ɵɵFactoryDeclaration<RtDynamicSelectorListComponent<any>, never>;
232
- static ɵcmp: i0.ɵɵComponentDeclaration<RtDynamicSelectorListComponent<any>, "rt-dynamic-selector-list", never, { "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "actionsShown": { "alias": "actionsShown"; "required": false; "isSignal": true; }; "resetClearShown": { "alias": "resetClearShown"; "required": false; "isSignal": true; }; "removeShown": { "alias": "removeShown"; "required": false; "isSignal": true; }; "resetDisabled": { "alias": "resetDisabled"; "required": false; "isSignal": true; }; "clearDisabled": { "alias": "clearDisabled"; "required": false; "isSignal": true; }; "buttonRadius": { "alias": "buttonRadius"; "required": false; "isSignal": true; }; "clearIcon": { "alias": "clearIcon"; "required": false; "isSignal": true; }; "titleWrap": { "alias": "titleWrap"; "required": false; "isSignal": true; }; "titleTpl": { "alias": "titleTpl"; "required": false; "isSignal": true; }; "controlsTpl": { "alias": "controlsTpl"; "required": false; "isSignal": true; }; }, { "removed": "removed"; "moved": "moved"; "edited": "edited"; "resetClicked": "resetClicked"; "cleared": "cleared"; }, never, ["*"], true, never>;
281
+ export declare class RtDynamicSelectorListComponent<TItem> {
282
+ #private;
283
+ /** На узком экране подсказки кнопок не показываются: наведения там нет. */
284
+ protected readonly isNarrow: Signal<boolean>;
285
+ protected readonly dragLabel: Signal<string>;
286
+ protected readonly removeLabel: Signal<string>;
287
+ protected readonly editLabel: Signal<string>;
288
+ protected readonly applyLabel: Signal<string>;
289
+ protected readonly cancelLabel: Signal<string>;
290
+ protected readonly resetLabel: Signal<string>;
291
+ protected readonly clearLabel: Signal<string>;
292
+ /** Строка, открытая для правки, и текст в её поле. */
293
+ protected readonly editedIndex: WritableSignal<number | null>;
294
+ protected readonly draft: WritableSignal<string>;
295
+ readonly rows: InputSignal<ReadonlyArray<IRtDynamicSelector.ListRow<TItem>>>;
296
+ readonly draggable: InputSignalWithTransform<boolean, unknown>;
297
+ readonly editable: InputSignalWithTransform<boolean, unknown>;
298
+ readonly disabled: InputSignalWithTransform<boolean, unknown>;
299
+ /** Полоса под строками; приглашение вызывающего встаёт на её место. */
300
+ readonly actionsShown: InputSignalWithTransform<boolean, unknown>;
301
+ /** Сброс и очистка в полосе; без них в полосе остаётся кнопка добавления. */
302
+ readonly resetClearShown: InputSignalWithTransform<boolean, unknown>;
303
+ /** Корзина строк; без неё строки двигаются и правятся, но не убираются. */
304
+ readonly removeShown: InputSignalWithTransform<boolean, unknown>;
305
+ readonly resetDisabled: InputSignalWithTransform<boolean, unknown>;
306
+ readonly clearDisabled: InputSignalWithTransform<boolean, unknown>;
307
+ /** Шаг скругления кнопок-иконок списка; по умолчанию они круглые. */
308
+ readonly buttonRadius: InputSignal<TRtRadius | null>;
309
+ /** Значок кнопки «Очистить список»; по умолчанию крестик. */
310
+ readonly clearIcon: InputSignal<IRtIcon.Name>;
311
+ /** Название строки переносится; `false` ведёт его одной строкой с многоточием и подсказкой при обрезке. */
312
+ readonly titleWrap: InputSignalWithTransform<boolean, unknown>;
313
+ readonly titleTpl: InputSignal<TemplateRef<IRtDynamicSelector.RowContext<TItem>> | null>;
314
+ readonly controlsTpl: InputSignal<TemplateRef<IRtDynamicSelector.RowContext<TItem>> | null>;
315
+ readonly removed: OutputEmitterRef<unknown>;
316
+ readonly moved: OutputEmitterRef<IRtDynamicSelector.Move>;
317
+ readonly edited: OutputEmitterRef<IRtDynamicSelector.TextEdit>;
318
+ readonly resetClicked: OutputEmitterRef<void>;
319
+ readonly cleared: OutputEmitterRef<void>;
320
+ /** Строка, взятая из чужого списка, ничего не меняет; брошенная на своё место — тоже. */
321
+ protected onDrop(event: CdkDragDrop<unknown>): void;
322
+ protected onRemove(row: IRtDynamicSelector.ListRow<TItem>): void;
323
+ protected onEditStart(index: number, row: IRtDynamicSelector.ListRow<TItem>): void;
324
+ protected onEditApply(row: IRtDynamicSelector.ListRow<TItem>): void;
325
+ protected onEditCancel(): void;
326
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDynamicSelectorListComponent<any>, never>;
327
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtDynamicSelectorListComponent<any>, "rt-dynamic-selector-list", never, {
328
+ "rows": {
329
+ "alias": "rows";
330
+ "required": false;
331
+ "isSignal": true;
332
+ };
333
+ "draggable": {
334
+ "alias": "draggable";
335
+ "required": false;
336
+ "isSignal": true;
337
+ };
338
+ "editable": {
339
+ "alias": "editable";
340
+ "required": false;
341
+ "isSignal": true;
342
+ };
343
+ "disabled": {
344
+ "alias": "disabled";
345
+ "required": false;
346
+ "isSignal": true;
347
+ };
348
+ "actionsShown": {
349
+ "alias": "actionsShown";
350
+ "required": false;
351
+ "isSignal": true;
352
+ };
353
+ "resetClearShown": {
354
+ "alias": "resetClearShown";
355
+ "required": false;
356
+ "isSignal": true;
357
+ };
358
+ "removeShown": {
359
+ "alias": "removeShown";
360
+ "required": false;
361
+ "isSignal": true;
362
+ };
363
+ "resetDisabled": {
364
+ "alias": "resetDisabled";
365
+ "required": false;
366
+ "isSignal": true;
367
+ };
368
+ "clearDisabled": {
369
+ "alias": "clearDisabled";
370
+ "required": false;
371
+ "isSignal": true;
372
+ };
373
+ "buttonRadius": {
374
+ "alias": "buttonRadius";
375
+ "required": false;
376
+ "isSignal": true;
377
+ };
378
+ "clearIcon": {
379
+ "alias": "clearIcon";
380
+ "required": false;
381
+ "isSignal": true;
382
+ };
383
+ "titleWrap": {
384
+ "alias": "titleWrap";
385
+ "required": false;
386
+ "isSignal": true;
387
+ };
388
+ "titleTpl": {
389
+ "alias": "titleTpl";
390
+ "required": false;
391
+ "isSignal": true;
392
+ };
393
+ "controlsTpl": {
394
+ "alias": "controlsTpl";
395
+ "required": false;
396
+ "isSignal": true;
397
+ };
398
+ }, {
399
+ "removed": "removed";
400
+ "moved": "moved";
401
+ "edited": "edited";
402
+ "resetClicked": "resetClicked";
403
+ "cleared": "cleared";
404
+ }, never, ["*"], true, never>;
233
405
  }
234
-
235
406
  /** Сколько ждёт поиск на сервере после последней нажатой клавиши. */
236
- declare const RT_DYNAMIC_SELECTOR_SEARCH_DEBOUNCE: number;
407
+ export declare const RT_DYNAMIC_SELECTOR_SEARCH_DEBOUNCE: number;
237
408
  /**
238
409
  * Всплывающий выбор динамического селектора: поиск, флажки или переключатели, «Выбрать всё»,
239
410
  * догрузка при прокрутке, «Отмена» и «Применить». Отметки живут в самом окне и уходят наружу
240
411
  * только по «Применить»: окно создаётся заново при каждом открытии, и закрытие их сбрасывает.
241
412
  */
242
- declare class RtDynamicSelectorPopupComponent<TEntity extends object> implements OnInit {
243
- #private;
244
- protected readonly searchLabel: Signal<string>;
245
- protected readonly searchField: Signal<ElementRef<HTMLElement> | undefined>;
246
- protected readonly selectAllLabel: Signal<string>;
247
- protected readonly multiLabel: Signal<string>;
248
- protected readonly multiHintLabel: Signal<string>;
249
- protected readonly noResultsLabel: Signal<string>;
250
- /** Подпись пустого результата: своя у приложения, иначе словарь кита. */
251
- protected readonly emptyText: Signal<string>;
252
- protected readonly cancelLabel: Signal<string>;
253
- protected readonly applyKitLabel: Signal<string>;
254
- /** Подпись кнопки применения: своя у приложения, иначе словарь кита, — в заданном регистре. */
255
- protected readonly applyText: Signal<string>;
256
- /** Отмеченные ключи — ещё не применённые. */
257
- protected readonly ticked: WritableSignal<unknown[]>;
258
- /** Отметки на минуту последней смены запроса: только они стоят над разделителем, отмеченное потом — на месте. */
259
- protected readonly raised: WritableSignal<unknown[]>;
260
- protected readonly query: WritableSignal<string>;
261
- /** Выбор нескольких включён: без него простое нажатие оставляет одну отметку. */
262
- protected readonly isMultiOn: WritableSignal<boolean>;
263
- /** Найденные строки: местный поиск отбирает сам, серверный отдаёт запрос наружу. */
264
- protected readonly found: Signal<TEntity[]>;
265
- protected readonly rows: Signal<IRtDynamicSelector.PopupRows<TEntity>>;
266
- protected readonly visibleKeys: Signal<unknown[]>;
267
- /** Строки для разметки: отмеченные раньше над разделителем, найденные — под ним. */
268
- protected readonly rowItems: Signal<IRtDynamicSelector.PopupRow<TEntity>[]>;
269
- /** Подпись выбора одной записи рисует окно, а не кнопка: без переноса и при подсветке поиска. */
270
- protected readonly ownLabel: Signal<boolean>;
271
- protected readonly hasRows: Signal<boolean>;
272
- protected readonly selectAllState: Signal<IRtDynamicSelector.SelectAllState>;
273
- protected readonly isSingle: Signal<boolean>;
274
- protected readonly isSelectAllShown: Signal<boolean>;
275
- protected readonly isMultiToggleVisible: Signal<boolean>;
276
- protected readonly lastPinnedKey: Signal<unknown>;
277
- protected readonly isApplyDisabled: Signal<boolean>;
278
- protected readonly isNavShown: Signal<boolean>;
279
- /** Предлагаемые записи: ещё не выбранные, отсортированные селектором. */
280
- readonly entities: InputSignal<ReadonlyArray<TEntity>>;
281
- readonly keyExp: InputSignal<keyof TEntity & string>;
282
- readonly displayExp: InputSignal<keyof TEntity & string>;
283
- /** Подпись записи для строки, пункта окна и поиска; не задана — поле `displayExp`. */
284
- readonly displayWith: InputSignal<((entity: TEntity) => string) | null>;
285
- readonly mode: InputSignal<IRtDynamicSelector.Mode>;
286
- readonly multiToggleShown: InputSignalWithTransform<boolean, unknown>;
287
- readonly selectAllShown: InputSignalWithTransform<boolean, unknown>;
288
- readonly localSearch: InputSignalWithTransform<boolean, unknown>;
289
- readonly lazyLoad: InputSignalWithTransform<boolean, unknown>;
290
- readonly loading: InputSignalWithTransform<boolean, unknown>;
291
- readonly fetching: InputSignalWithTransform<boolean, unknown>;
292
- readonly pinnedKeys: InputSignal<ReadonlyArray<unknown>>;
293
- readonly navigateTitle: InputSignal<string>;
294
- readonly navigateLink: InputSignal<string>;
295
- /** Запрос, с которым выбор открывается; событием поиска он не уходит — вызывающий его знает. */
296
- readonly searchTerm: InputSignal<string>;
297
- /** Вид поля поиска — тот же вход, что у поля кита. */
298
- readonly searchAppearance: InputSignal<IRtInput.Appearance>;
299
- /** Шаг скругления поля поиска; null — скругление самого поля. */
300
- readonly searchRadius: InputSignal<TRtRadius | null>;
301
- /** Подпись пустого результата поиска; пустая строка оставляет подпись кита. */
302
- readonly emptyResultsText: InputSignal<string>;
303
- /** Подпись кнопки применения; пустая строка оставляет подпись кита. */
304
- readonly applyLabel: InputSignal<string>;
305
- /** Регистр подписи кнопки применения; `none` оставляет её как есть. */
306
- readonly applyLabelCase: InputSignal<IRtDynamicSelector.LabelCase>;
307
- /** Поле поиска получает фокус при открытии окна; по умолчанию фокус остаётся там, где был. */
308
- readonly autofocusSearch: InputSignalWithTransform<boolean, unknown>;
309
- /** Подпись пункта переносится; `false` ведёт её одной строкой с многоточием и подсказкой при обрезке. */
310
- readonly titleWrap: InputSignalWithTransform<boolean, unknown>;
311
- /** Символы подписи пункта, совпавшие со словами поиска, выделены. */
312
- readonly highlightSearch: InputSignalWithTransform<boolean, unknown>;
313
- /** Применённые ключи в порядке отметок. */
314
- readonly applied: OutputEmitterRef<unknown[]>;
315
- readonly cancelled: OutputEmitterRef<void>;
316
- /** Запрос для поиска на сервере: через паузу после последней клавиши, стёртый — пустой строкой. */
317
- readonly searchChange: OutputEmitterRef<string>;
318
- readonly loadMore: OutputEmitterRef<void>;
319
- /** Отмеченные записи: пустой список при открытии и текущие отметки после каждого поиска. */
320
- readonly temporaryChoiceChange: OutputEmitterRef<TEntity[]>;
321
- ngOnInit(): void;
322
- protected onQueryChange(value: string | null): void;
323
- /** Нажатие строки флажков: при выключенном выборе нескольких без Ctrl или Cmd остаётся одна отметка. */
324
- protected onRowClick(event: MouseEvent, item: TEntity): void;
325
- protected onRadioChange(item: TEntity): void;
326
- protected onSelectAll(checked: boolean): void;
327
- protected onMultiToggle(value: boolean): void;
328
- protected onApply(): void;
329
- protected onCancel(): void;
330
- static ɵfac: i0.ɵɵFactoryDeclaration<RtDynamicSelectorPopupComponent<any>, never>;
331
- static ɵcmp: i0.ɵɵComponentDeclaration<RtDynamicSelectorPopupComponent<any>, "rt-dynamic-selector-popup", never, { "entities": { "alias": "entities"; "required": false; "isSignal": true; }; "keyExp": { "alias": "keyExp"; "required": true; "isSignal": true; }; "displayExp": { "alias": "displayExp"; "required": true; "isSignal": true; }; "displayWith": { "alias": "displayWith"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "multiToggleShown": { "alias": "multiToggleShown"; "required": false; "isSignal": true; }; "selectAllShown": { "alias": "selectAllShown"; "required": false; "isSignal": true; }; "localSearch": { "alias": "localSearch"; "required": false; "isSignal": true; }; "lazyLoad": { "alias": "lazyLoad"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "fetching": { "alias": "fetching"; "required": false; "isSignal": true; }; "pinnedKeys": { "alias": "pinnedKeys"; "required": false; "isSignal": true; }; "navigateTitle": { "alias": "navigateTitle"; "required": false; "isSignal": true; }; "navigateLink": { "alias": "navigateLink"; "required": false; "isSignal": true; }; "searchTerm": { "alias": "searchTerm"; "required": false; "isSignal": true; }; "searchAppearance": { "alias": "searchAppearance"; "required": false; "isSignal": true; }; "searchRadius": { "alias": "searchRadius"; "required": false; "isSignal": true; }; "emptyResultsText": { "alias": "emptyResultsText"; "required": false; "isSignal": true; }; "applyLabel": { "alias": "applyLabel"; "required": false; "isSignal": true; }; "applyLabelCase": { "alias": "applyLabelCase"; "required": false; "isSignal": true; }; "autofocusSearch": { "alias": "autofocusSearch"; "required": false; "isSignal": true; }; "titleWrap": { "alias": "titleWrap"; "required": false; "isSignal": true; }; "highlightSearch": { "alias": "highlightSearch"; "required": false; "isSignal": true; }; }, { "applied": "applied"; "cancelled": "cancelled"; "searchChange": "searchChange"; "loadMore": "loadMore"; "temporaryChoiceChange": "temporaryChoiceChange"; }, never, never, true, never>;
413
+ export declare class RtDynamicSelectorPopupComponent<TEntity extends object> implements OnInit {
414
+ #private;
415
+ protected readonly searchLabel: Signal<string>;
416
+ protected readonly searchField: Signal<ElementRef<HTMLElement> | undefined>;
417
+ protected readonly selectAllLabel: Signal<string>;
418
+ protected readonly multiLabel: Signal<string>;
419
+ protected readonly multiHintLabel: Signal<string>;
420
+ protected readonly noResultsLabel: Signal<string>;
421
+ /** Подпись пустого результата: своя у приложения, иначе словарь кита. */
422
+ protected readonly emptyText: Signal<string>;
423
+ protected readonly cancelLabel: Signal<string>;
424
+ protected readonly applyKitLabel: Signal<string>;
425
+ /** Подпись кнопки применения: своя у приложения, иначе словарь кита, — в заданном регистре. */
426
+ protected readonly applyText: Signal<string>;
427
+ /** Отмеченные ключи — ещё не применённые. */
428
+ protected readonly ticked: WritableSignal<unknown[]>;
429
+ /** Отметки на минуту последней смены запроса: только они стоят над разделителем, отмеченное потом — на месте. */
430
+ protected readonly raised: WritableSignal<unknown[]>;
431
+ protected readonly query: WritableSignal<string>;
432
+ /** Выбор нескольких включён: без него простое нажатие оставляет одну отметку. */
433
+ protected readonly isMultiOn: WritableSignal<boolean>;
434
+ /** Найденные строки: местный поиск отбирает сам, серверный отдаёт запрос наружу. */
435
+ protected readonly found: Signal<TEntity[]>;
436
+ protected readonly rows: Signal<IRtDynamicSelector.PopupRows<TEntity>>;
437
+ protected readonly visibleKeys: Signal<unknown[]>;
438
+ /** Строки для разметки: отмеченные раньше над разделителем, найденные — под ним. */
439
+ protected readonly rowItems: Signal<IRtDynamicSelector.PopupRow<TEntity>[]>;
440
+ /** Подпись выбора одной записи рисует окно, а не кнопка: без переноса и при подсветке поиска. */
441
+ protected readonly ownLabel: Signal<boolean>;
442
+ protected readonly hasRows: Signal<boolean>;
443
+ protected readonly selectAllState: Signal<IRtDynamicSelector.SelectAllState>;
444
+ protected readonly isSingle: Signal<boolean>;
445
+ protected readonly isSelectAllShown: Signal<boolean>;
446
+ protected readonly isMultiToggleVisible: Signal<boolean>;
447
+ protected readonly lastPinnedKey: Signal<unknown>;
448
+ protected readonly isApplyDisabled: Signal<boolean>;
449
+ protected readonly isNavShown: Signal<boolean>;
450
+ /** Предлагаемые записи: ещё не выбранные, отсортированные селектором. */
451
+ readonly entities: InputSignal<ReadonlyArray<TEntity>>;
452
+ readonly keyExp: InputSignal<keyof TEntity & string>;
453
+ readonly displayExp: InputSignal<keyof TEntity & string>;
454
+ /** Подпись записи для строки, пункта окна и поиска; не задана — поле `displayExp`. */
455
+ readonly displayWith: InputSignal<((entity: TEntity) => string) | null>;
456
+ readonly mode: InputSignal<IRtDynamicSelector.Mode>;
457
+ readonly multiToggleShown: InputSignalWithTransform<boolean, unknown>;
458
+ readonly selectAllShown: InputSignalWithTransform<boolean, unknown>;
459
+ readonly localSearch: InputSignalWithTransform<boolean, unknown>;
460
+ readonly lazyLoad: InputSignalWithTransform<boolean, unknown>;
461
+ readonly loading: InputSignalWithTransform<boolean, unknown>;
462
+ readonly fetching: InputSignalWithTransform<boolean, unknown>;
463
+ readonly pinnedKeys: InputSignal<ReadonlyArray<unknown>>;
464
+ readonly navigateTitle: InputSignal<string>;
465
+ readonly navigateLink: InputSignal<string>;
466
+ /** Запрос, с которым выбор открывается; событием поиска он не уходит — вызывающий его знает. */
467
+ readonly searchTerm: InputSignal<string>;
468
+ /** Вид поля поиска — тот же вход, что у поля кита. */
469
+ readonly searchAppearance: InputSignal<IRtInput.Appearance>;
470
+ /** Шаг скругления поля поиска; null — скругление самого поля. */
471
+ readonly searchRadius: InputSignal<TRtRadius | null>;
472
+ /** Подпись пустого результата поиска; пустая строка оставляет подпись кита. */
473
+ readonly emptyResultsText: InputSignal<string>;
474
+ /** Подпись кнопки применения; пустая строка оставляет подпись кита. */
475
+ readonly applyLabel: InputSignal<string>;
476
+ /** Регистр подписи кнопки применения; `none` оставляет её как есть. */
477
+ readonly applyLabelCase: InputSignal<IRtDynamicSelector.LabelCase>;
478
+ /** Поле поиска получает фокус при открытии окна; по умолчанию фокус остаётся там, где был. */
479
+ readonly autofocusSearch: InputSignalWithTransform<boolean, unknown>;
480
+ /** Подпись пункта переносится; `false` ведёт её одной строкой с многоточием и подсказкой при обрезке. */
481
+ readonly titleWrap: InputSignalWithTransform<boolean, unknown>;
482
+ /** Символы подписи пункта, совпавшие со словами поиска, выделены. */
483
+ readonly highlightSearch: InputSignalWithTransform<boolean, unknown>;
484
+ /** Применённые ключи в порядке отметок. */
485
+ readonly applied: OutputEmitterRef<unknown[]>;
486
+ readonly cancelled: OutputEmitterRef<void>;
487
+ /** Запрос для поиска на сервере: через паузу после последней клавиши, стёртый — пустой строкой. */
488
+ readonly searchChange: OutputEmitterRef<string>;
489
+ readonly loadMore: OutputEmitterRef<void>;
490
+ /** Отмеченные записи: пустой список при открытии и текущие отметки после каждого поиска. */
491
+ readonly temporaryChoiceChange: OutputEmitterRef<TEntity[]>;
492
+ ngOnInit(): void;
493
+ protected onQueryChange(value: string | null): void;
494
+ /** Нажатие строки флажков: при выключенном выборе нескольких без Ctrl или Cmd остаётся одна отметка. */
495
+ protected onRowClick(event: MouseEvent, item: TEntity): void;
496
+ protected onRadioChange(item: TEntity): void;
497
+ protected onSelectAll(checked: boolean): void;
498
+ protected onMultiToggle(value: boolean): void;
499
+ protected onApply(): void;
500
+ protected onCancel(): void;
501
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDynamicSelectorPopupComponent<any>, never>;
502
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtDynamicSelectorPopupComponent<any>, "rt-dynamic-selector-popup", never, {
503
+ "entities": {
504
+ "alias": "entities";
505
+ "required": false;
506
+ "isSignal": true;
507
+ };
508
+ "keyExp": {
509
+ "alias": "keyExp";
510
+ "required": true;
511
+ "isSignal": true;
512
+ };
513
+ "displayExp": {
514
+ "alias": "displayExp";
515
+ "required": true;
516
+ "isSignal": true;
517
+ };
518
+ "displayWith": {
519
+ "alias": "displayWith";
520
+ "required": false;
521
+ "isSignal": true;
522
+ };
523
+ "mode": {
524
+ "alias": "mode";
525
+ "required": false;
526
+ "isSignal": true;
527
+ };
528
+ "multiToggleShown": {
529
+ "alias": "multiToggleShown";
530
+ "required": false;
531
+ "isSignal": true;
532
+ };
533
+ "selectAllShown": {
534
+ "alias": "selectAllShown";
535
+ "required": false;
536
+ "isSignal": true;
537
+ };
538
+ "localSearch": {
539
+ "alias": "localSearch";
540
+ "required": false;
541
+ "isSignal": true;
542
+ };
543
+ "lazyLoad": {
544
+ "alias": "lazyLoad";
545
+ "required": false;
546
+ "isSignal": true;
547
+ };
548
+ "loading": {
549
+ "alias": "loading";
550
+ "required": false;
551
+ "isSignal": true;
552
+ };
553
+ "fetching": {
554
+ "alias": "fetching";
555
+ "required": false;
556
+ "isSignal": true;
557
+ };
558
+ "pinnedKeys": {
559
+ "alias": "pinnedKeys";
560
+ "required": false;
561
+ "isSignal": true;
562
+ };
563
+ "navigateTitle": {
564
+ "alias": "navigateTitle";
565
+ "required": false;
566
+ "isSignal": true;
567
+ };
568
+ "navigateLink": {
569
+ "alias": "navigateLink";
570
+ "required": false;
571
+ "isSignal": true;
572
+ };
573
+ "searchTerm": {
574
+ "alias": "searchTerm";
575
+ "required": false;
576
+ "isSignal": true;
577
+ };
578
+ "searchAppearance": {
579
+ "alias": "searchAppearance";
580
+ "required": false;
581
+ "isSignal": true;
582
+ };
583
+ "searchRadius": {
584
+ "alias": "searchRadius";
585
+ "required": false;
586
+ "isSignal": true;
587
+ };
588
+ "emptyResultsText": {
589
+ "alias": "emptyResultsText";
590
+ "required": false;
591
+ "isSignal": true;
592
+ };
593
+ "applyLabel": {
594
+ "alias": "applyLabel";
595
+ "required": false;
596
+ "isSignal": true;
597
+ };
598
+ "applyLabelCase": {
599
+ "alias": "applyLabelCase";
600
+ "required": false;
601
+ "isSignal": true;
602
+ };
603
+ "autofocusSearch": {
604
+ "alias": "autofocusSearch";
605
+ "required": false;
606
+ "isSignal": true;
607
+ };
608
+ "titleWrap": {
609
+ "alias": "titleWrap";
610
+ "required": false;
611
+ "isSignal": true;
612
+ };
613
+ "highlightSearch": {
614
+ "alias": "highlightSearch";
615
+ "required": false;
616
+ "isSignal": true;
617
+ };
618
+ }, {
619
+ "applied": "applied";
620
+ "cancelled": "cancelled";
621
+ "searchChange": "searchChange";
622
+ "loadMore": "loadMore";
623
+ "temporaryChoiceChange": "temporaryChoiceChange";
624
+ }, never, never, true, never>;
332
625
  }
333
-
334
626
  /**
335
627
  * Динамический селектор: поле формы со списком выбранных записей. Значение — массив ключей в
336
628
  * порядке списка. Записи добавляются всплывающим выбором, убираются корзиной строки, список
@@ -341,125 +633,333 @@ declare class RtDynamicSelectorPopupComponent<TEntity extends object> implements
341
633
  * <rt-dynamic-selector keyExp="id" displayExp="name" [entities]="people()" [formControl]="team" />
342
634
  * ```
343
635
  */
344
- declare class RtDynamicSelectorComponent<TEntity extends object> extends RtFormControlBase<unknown[]> {
345
- #private;
346
- protected readonly addLabel: Signal<string>;
347
- protected readonly nothingToChooseLabel: Signal<string>;
348
- /** Всплывающий выбор открывается от нажатой кнопки добавления: у полосы и у приглашения — свой. */
349
- protected readonly popovers: Signal<readonly RtPopoverDirective[]>;
350
- protected readonly rowTitle: Signal<RtDynamicSelectorRowTitleDirective<TEntity> | undefined>;
351
- protected readonly rowControls: Signal<RtDynamicSelectorRowControlsDirective<TEntity> | undefined>;
352
- protected readonly titleTpl: Signal<TemplateRef<IRtDynamicSelector.RowContext<TEntity>> | null>;
353
- protected readonly controlsTpl: Signal<TemplateRef<IRtDynamicSelector.RowContext<TEntity>> | null>;
354
- /** Выбранные записи в порядке значения; ключ, которого нет среди записей, строки не рисует. */
355
- protected readonly chosen: Signal<TEntity[]>;
356
- protected readonly rows: Signal<IRtDynamicSelector.ListRow<TEntity>[]>;
357
- /** Что предлагает всплывающий выбор: ещё не выбранное, в порядке вызывающего или по алфавиту. */
358
- protected readonly offered: Signal<TEntity[]>;
359
- protected readonly hasOffer: Signal<boolean>;
360
- protected readonly isNothingToChoose: Signal<boolean>;
361
- protected readonly isAddShown: Signal<boolean>;
362
- protected readonly isKeysReset: Signal<boolean>;
363
- protected readonly isKeysClear: Signal<boolean>;
364
- /** Правки в шаблоне строки держат сброс и очистку включёнными, даже когда ключи не менялись. */
365
- protected readonly isResetDisabled: Signal<boolean>;
366
- protected readonly isClearDisabled: Signal<boolean>;
367
- protected readonly addTitle: Signal<string>;
368
- protected readonly hasValue: Signal<boolean>;
369
- /** Записи, из которых выбирают; у каждой есть поле ключа и поле подписи. */
370
- readonly entities: InputSignal<ReadonlyArray<TEntity>>;
371
- readonly keyExp: InputSignal<keyof TEntity & string>;
372
- readonly displayExp: InputSignal<keyof TEntity & string>;
373
- /** Подпись записи для строки, пункта окна и поиска; не задана — поле `displayExp`. */
374
- readonly displayWith: InputSignal<((entity: TEntity) => string) | null>;
375
- readonly mode: InputSignal<IRtDynamicSelector.Mode>;
376
- /** Название кнопки добавления; пустое — «Add» из словаря кита. */
377
- readonly buttonTitle: InputSignal<string>;
378
- readonly addShown: InputSignalWithTransform<boolean, unknown>;
379
- /** Корзина строк; без неё записи убирает только очистка или сам вызывающий. */
380
- readonly removeShown: InputSignalWithTransform<boolean, unknown>;
381
- /** Сброс и очистка под списком: `false` их убирает, кнопка добавления остаётся. */
382
- readonly listActionsShown: InputSignalWithTransform<boolean, unknown>;
383
- /**
384
- * Строки правлены в шаблоне вызывающего: сброс и очистка включены и тогда, когда ключи прежние.
385
- * Сброс сообщает `listReset`, очистка — `listCleared`, и вызывающий снимает свои правки.
386
- */
387
- readonly extraChanged: InputSignalWithTransform<boolean, unknown>;
388
- /** Запрос, с которым открывается всплывающий выбор; событием поиска он не уходит. */
389
- readonly searchTerm: InputSignal<string>;
390
- /** Ключи, которые нельзя убрать из списка. */
391
- readonly readonlyKeys: InputSignal<ReadonlyArray<unknown>>;
392
- /** Ключи строк всплывающего выбора, под последней из которых стоит разделитель. */
393
- readonly pinnedKeys: InputSignal<ReadonlyArray<unknown>>;
394
- readonly draggable: InputSignalWithTransform<boolean, unknown>;
395
- /** Шаг скругления кнопок-иконок списка; по умолчанию они круглые. */
396
- readonly buttonRadius: InputSignal<TRtRadius | null>;
397
- /** Приглашение вместо полосы кнопок: значок, описание и кнопка добавления. */
398
- readonly invitation: InputSignalWithTransform<boolean, unknown>;
399
- readonly invitationIcon: InputSignal<IRtIcon.Name | null>;
400
- /** Имя Material вместо `invitationIcon` — уходит во вход `glyph` заглушки приглашения. */
401
- readonly invitationGlyph: InputSignal<string | null>;
402
- readonly invitationDescription: InputSignal<string>;
403
- /** Значок кнопки приглашения; null — кнопка без значка. */
404
- readonly invitationButtonIcon: InputSignal<IRtIcon.Name | null>;
405
- /** Вид кнопки приглашения — тот же набор, что у кнопки кита. */
406
- readonly invitationButtonAppearance: InputSignal<IButton.Appearance>;
407
- /** Значок кнопки «Очистить список». */
408
- readonly clearIcon: InputSignal<IRtIcon.Name>;
409
- /** Название строки переносится; `false` ведёт его одной строкой с многоточием и подсказкой при обрезке. */
410
- readonly titleWrap: InputSignalWithTransform<boolean, unknown>;
411
- /** Вид поля поиска в окне выбора. */
412
- readonly searchAppearance: InputSignal<IRtInput.Appearance>;
413
- /** Шаг скругления поля поиска в окне выбора; null — скругление самого поля. */
414
- readonly searchRadius: InputSignal<TRtRadius | null>;
415
- /** Символы подписи пункта окна выбора, совпавшие со словами поиска, выделены. */
416
- readonly highlightSearch: InputSignalWithTransform<boolean, unknown>;
417
- /** Подпись пустого результата поиска; пустая строка оставляет подпись кита. */
418
- readonly emptyResultsText: InputSignal<string>;
419
- /** Подпись кнопки применения в окне выбора; пустая строка оставляет подпись кита. */
420
- readonly applyLabel: InputSignal<string>;
421
- /** Регистр подписи кнопки применения; `none` оставляет её как есть. */
422
- readonly applyLabelCase: InputSignal<IRtDynamicSelector.LabelCase>;
423
- /** Поле поиска получает фокус при открытии окна выбора. */
424
- readonly autofocusSearch: InputSignalWithTransform<boolean, unknown>;
425
- readonly multiToggleShown: InputSignalWithTransform<boolean, unknown>;
426
- readonly selectAllShown: InputSignalWithTransform<boolean, unknown>;
427
- readonly localSearch: InputSignalWithTransform<boolean, unknown>;
428
- readonly lazyLoad: InputSignalWithTransform<boolean, unknown>;
429
- readonly loading: InputSignalWithTransform<boolean, unknown>;
430
- readonly fetching: InputSignalWithTransform<boolean, unknown>;
431
- readonly navigateTitle: InputSignal<string>;
432
- readonly navigateLink: InputSignal<string>;
433
- readonly sortFn: InputSignal<((a: TEntity, b: TEntity) => number) | null>;
434
- /** Выбранные записи: те же, что уходят событием изменения выбора. */
435
- readonly chosenEntities: ModelSignal<TEntity[]>;
436
- readonly selectionChange: OutputEmitterRef<TEntity[]>;
437
- readonly listReset: OutputEmitterRef<void>;
438
- readonly listCleared: OutputEmitterRef<void>;
439
- /** Всплывающий выбор открылся или закрылся. */
440
- readonly popupOpenChange: OutputEmitterRef<boolean>;
441
- readonly searchChange: OutputEmitterRef<string>;
442
- readonly loadMore: OutputEmitterRef<void>;
443
- readonly temporaryChoiceChange: OutputEmitterRef<TEntity[]>;
444
- /** Открыт ли всплывающий выбор — от кнопки полосы или от кнопки приглашения. */
445
- readonly popupOpen: Signal<boolean>;
446
- readonly displayText: Signal<string>;
447
- constructor();
448
- /** Записанное формой становится и списком, и значением для сброса; пустой массив список опустошает. */
449
- writeValue(value: unknown[] | null): void;
450
- protected onAdd(popover: RtPopoverDirective): void;
451
- protected onApplied(keys: unknown[]): void;
452
- protected onCancelled(): void;
453
- protected onRemoved(key: unknown): void;
454
- protected onMoved(move: IRtDynamicSelector.Move): void;
455
- protected onReset(): void;
456
- protected onCleared(): void;
457
- protected onOpened(): void;
458
- protected onClosed(): void;
459
- protected getEmptyValue(): unknown[];
460
- protected focusAfterClear(): void;
461
- static ɵfac: i0.ɵɵFactoryDeclaration<RtDynamicSelectorComponent<any>, never>;
462
- static ɵcmp: i0.ɵɵComponentDeclaration<RtDynamicSelectorComponent<any>, "rt-dynamic-selector", never, { "entities": { "alias": "entities"; "required": false; "isSignal": true; }; "keyExp": { "alias": "keyExp"; "required": true; "isSignal": true; }; "displayExp": { "alias": "displayExp"; "required": true; "isSignal": true; }; "displayWith": { "alias": "displayWith"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "buttonTitle": { "alias": "buttonTitle"; "required": false; "isSignal": true; }; "addShown": { "alias": "addShown"; "required": false; "isSignal": true; }; "removeShown": { "alias": "removeShown"; "required": false; "isSignal": true; }; "listActionsShown": { "alias": "listActionsShown"; "required": false; "isSignal": true; }; "extraChanged": { "alias": "extraChanged"; "required": false; "isSignal": true; }; "searchTerm": { "alias": "searchTerm"; "required": false; "isSignal": true; }; "readonlyKeys": { "alias": "readonlyKeys"; "required": false; "isSignal": true; }; "pinnedKeys": { "alias": "pinnedKeys"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "buttonRadius": { "alias": "buttonRadius"; "required": false; "isSignal": true; }; "invitation": { "alias": "invitation"; "required": false; "isSignal": true; }; "invitationIcon": { "alias": "invitationIcon"; "required": false; "isSignal": true; }; "invitationGlyph": { "alias": "invitationGlyph"; "required": false; "isSignal": true; }; "invitationDescription": { "alias": "invitationDescription"; "required": false; "isSignal": true; }; "invitationButtonIcon": { "alias": "invitationButtonIcon"; "required": false; "isSignal": true; }; "invitationButtonAppearance": { "alias": "invitationButtonAppearance"; "required": false; "isSignal": true; }; "clearIcon": { "alias": "clearIcon"; "required": false; "isSignal": true; }; "titleWrap": { "alias": "titleWrap"; "required": false; "isSignal": true; }; "searchAppearance": { "alias": "searchAppearance"; "required": false; "isSignal": true; }; "searchRadius": { "alias": "searchRadius"; "required": false; "isSignal": true; }; "highlightSearch": { "alias": "highlightSearch"; "required": false; "isSignal": true; }; "emptyResultsText": { "alias": "emptyResultsText"; "required": false; "isSignal": true; }; "applyLabel": { "alias": "applyLabel"; "required": false; "isSignal": true; }; "applyLabelCase": { "alias": "applyLabelCase"; "required": false; "isSignal": true; }; "autofocusSearch": { "alias": "autofocusSearch"; "required": false; "isSignal": true; }; "multiToggleShown": { "alias": "multiToggleShown"; "required": false; "isSignal": true; }; "selectAllShown": { "alias": "selectAllShown"; "required": false; "isSignal": true; }; "localSearch": { "alias": "localSearch"; "required": false; "isSignal": true; }; "lazyLoad": { "alias": "lazyLoad"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "fetching": { "alias": "fetching"; "required": false; "isSignal": true; }; "navigateTitle": { "alias": "navigateTitle"; "required": false; "isSignal": true; }; "navigateLink": { "alias": "navigateLink"; "required": false; "isSignal": true; }; "sortFn": { "alias": "sortFn"; "required": false; "isSignal": true; }; "chosenEntities": { "alias": "chosenEntities"; "required": false; "isSignal": true; }; }, { "chosenEntities": "chosenEntitiesChange"; "selectionChange": "selectionChange"; "listReset": "listReset"; "listCleared": "listCleared"; "popupOpenChange": "popupOpenChange"; "searchChange": "searchChange"; "loadMore": "loadMore"; "temporaryChoiceChange": "temporaryChoiceChange"; }, ["rowTitle", "rowControls"], never, true, never>;
463
- }
464
-
465
- export { IRtDynamicSelector, RT_DYNAMIC_SELECTOR_SEARCH_DEBOUNCE, RtDynamicInputComponent, RtDynamicSelectorComponent, RtDynamicSelectorListComponent, RtDynamicSelectorPopupComponent, RtDynamicSelectorRowControlsDirective, RtDynamicSelectorRowTitleDirective };
636
+ export declare class RtDynamicSelectorComponent<TEntity extends object> extends RtFormControlBase<unknown[]> {
637
+ #private;
638
+ protected readonly addLabel: Signal<string>;
639
+ protected readonly nothingToChooseLabel: Signal<string>;
640
+ /** Всплывающий выбор открывается от нажатой кнопки добавления: у полосы и у приглашения — свой. */
641
+ protected readonly popovers: Signal<readonly RtPopoverDirective[]>;
642
+ protected readonly rowTitle: Signal<RtDynamicSelectorRowTitleDirective<TEntity> | undefined>;
643
+ protected readonly rowControls: Signal<RtDynamicSelectorRowControlsDirective<TEntity> | undefined>;
644
+ protected readonly titleTpl: Signal<TemplateRef<IRtDynamicSelector.RowContext<TEntity>> | null>;
645
+ protected readonly controlsTpl: Signal<TemplateRef<IRtDynamicSelector.RowContext<TEntity>> | null>;
646
+ /** Выбранные записи в порядке значения; ключ, которого нет среди записей, строки не рисует. */
647
+ protected readonly chosen: Signal<TEntity[]>;
648
+ protected readonly rows: Signal<IRtDynamicSelector.ListRow<TEntity>[]>;
649
+ /** Что предлагает всплывающий выбор: ещё не выбранное, в порядке вызывающего или по алфавиту. */
650
+ protected readonly offered: Signal<TEntity[]>;
651
+ protected readonly hasOffer: Signal<boolean>;
652
+ protected readonly isNothingToChoose: Signal<boolean>;
653
+ protected readonly isAddShown: Signal<boolean>;
654
+ protected readonly isKeysReset: Signal<boolean>;
655
+ protected readonly isKeysClear: Signal<boolean>;
656
+ /** Правки в шаблоне строки держат сброс и очистку включёнными, даже когда ключи не менялись. */
657
+ protected readonly isResetDisabled: Signal<boolean>;
658
+ protected readonly isClearDisabled: Signal<boolean>;
659
+ protected readonly addTitle: Signal<string>;
660
+ protected readonly hasValue: Signal<boolean>;
661
+ /** Записи, из которых выбирают; у каждой есть поле ключа и поле подписи. */
662
+ readonly entities: InputSignal<ReadonlyArray<TEntity>>;
663
+ readonly keyExp: InputSignal<keyof TEntity & string>;
664
+ readonly displayExp: InputSignal<keyof TEntity & string>;
665
+ /** Подпись записи для строки, пункта окна и поиска; не задана — поле `displayExp`. */
666
+ readonly displayWith: InputSignal<((entity: TEntity) => string) | null>;
667
+ readonly mode: InputSignal<IRtDynamicSelector.Mode>;
668
+ /** Название кнопки добавления; пустое — «Add» из словаря кита. */
669
+ readonly buttonTitle: InputSignal<string>;
670
+ readonly addShown: InputSignalWithTransform<boolean, unknown>;
671
+ /** Корзина строк; без неё записи убирает только очистка или сам вызывающий. */
672
+ readonly removeShown: InputSignalWithTransform<boolean, unknown>;
673
+ /** Сброс и очистка под списком: `false` их убирает, кнопка добавления остаётся. */
674
+ readonly listActionsShown: InputSignalWithTransform<boolean, unknown>;
675
+ /**
676
+ * Строки правлены в шаблоне вызывающего: сброс и очистка включены и тогда, когда ключи прежние.
677
+ * Сброс сообщает `listReset`, очистка — `listCleared`, и вызывающий снимает свои правки.
678
+ */
679
+ readonly extraChanged: InputSignalWithTransform<boolean, unknown>;
680
+ /** Запрос, с которым открывается всплывающий выбор; событием поиска он не уходит. */
681
+ readonly searchTerm: InputSignal<string>;
682
+ /** Ключи, которые нельзя убрать из списка. */
683
+ readonly readonlyKeys: InputSignal<ReadonlyArray<unknown>>;
684
+ /** Ключи строк всплывающего выбора, под последней из которых стоит разделитель. */
685
+ readonly pinnedKeys: InputSignal<ReadonlyArray<unknown>>;
686
+ readonly draggable: InputSignalWithTransform<boolean, unknown>;
687
+ /** Шаг скругления кнопок-иконок списка; по умолчанию они круглые. */
688
+ readonly buttonRadius: InputSignal<TRtRadius | null>;
689
+ /** Приглашение вместо полосы кнопок: значок, описание и кнопка добавления. */
690
+ readonly invitation: InputSignalWithTransform<boolean, unknown>;
691
+ readonly invitationIcon: InputSignal<IRtIcon.Name | null>;
692
+ /** Имя Material вместо `invitationIcon` — уходит во вход `glyph` заглушки приглашения. */
693
+ readonly invitationGlyph: InputSignal<string | null>;
694
+ readonly invitationDescription: InputSignal<string>;
695
+ /** Значок кнопки приглашения; null — кнопка без значка. */
696
+ readonly invitationButtonIcon: InputSignal<IRtIcon.Name | null>;
697
+ /** Вид кнопки приглашения — тот же набор, что у кнопки кита. */
698
+ readonly invitationButtonAppearance: InputSignal<IButton.Appearance>;
699
+ /** Значок кнопки «Очистить список». */
700
+ readonly clearIcon: InputSignal<IRtIcon.Name>;
701
+ /** Название строки переносится; `false` ведёт его одной строкой с многоточием и подсказкой при обрезке. */
702
+ readonly titleWrap: InputSignalWithTransform<boolean, unknown>;
703
+ /** Вид поля поиска в окне выбора. */
704
+ readonly searchAppearance: InputSignal<IRtInput.Appearance>;
705
+ /** Шаг скругления поля поиска в окне выбора; null — скругление самого поля. */
706
+ readonly searchRadius: InputSignal<TRtRadius | null>;
707
+ /** Символы подписи пункта окна выбора, совпавшие со словами поиска, выделены. */
708
+ readonly highlightSearch: InputSignalWithTransform<boolean, unknown>;
709
+ /** Подпись пустого результата поиска; пустая строка оставляет подпись кита. */
710
+ readonly emptyResultsText: InputSignal<string>;
711
+ /** Подпись кнопки применения в окне выбора; пустая строка оставляет подпись кита. */
712
+ readonly applyLabel: InputSignal<string>;
713
+ /** Регистр подписи кнопки применения; `none` оставляет её как есть. */
714
+ readonly applyLabelCase: InputSignal<IRtDynamicSelector.LabelCase>;
715
+ /** Поле поиска получает фокус при открытии окна выбора. */
716
+ readonly autofocusSearch: InputSignalWithTransform<boolean, unknown>;
717
+ readonly multiToggleShown: InputSignalWithTransform<boolean, unknown>;
718
+ readonly selectAllShown: InputSignalWithTransform<boolean, unknown>;
719
+ readonly localSearch: InputSignalWithTransform<boolean, unknown>;
720
+ readonly lazyLoad: InputSignalWithTransform<boolean, unknown>;
721
+ readonly loading: InputSignalWithTransform<boolean, unknown>;
722
+ readonly fetching: InputSignalWithTransform<boolean, unknown>;
723
+ readonly navigateTitle: InputSignal<string>;
724
+ readonly navigateLink: InputSignal<string>;
725
+ readonly sortFn: InputSignal<((a: TEntity, b: TEntity) => number) | null>;
726
+ /** Выбранные записи: те же, что уходят событием изменения выбора. */
727
+ readonly chosenEntities: ModelSignal<TEntity[]>;
728
+ readonly selectionChange: OutputEmitterRef<TEntity[]>;
729
+ readonly listReset: OutputEmitterRef<void>;
730
+ readonly listCleared: OutputEmitterRef<void>;
731
+ /** Всплывающий выбор открылся или закрылся. */
732
+ readonly popupOpenChange: OutputEmitterRef<boolean>;
733
+ readonly searchChange: OutputEmitterRef<string>;
734
+ readonly loadMore: OutputEmitterRef<void>;
735
+ readonly temporaryChoiceChange: OutputEmitterRef<TEntity[]>;
736
+ /** Открыт ли всплывающий выбор — от кнопки полосы или от кнопки приглашения. */
737
+ readonly popupOpen: Signal<boolean>;
738
+ readonly displayText: Signal<string>;
739
+ constructor();
740
+ /** Записанное формой становится и списком, и значением для сброса; пустой массив список опустошает. */
741
+ writeValue(value: unknown[] | null): void;
742
+ protected onAdd(popover: RtPopoverDirective): void;
743
+ protected onApplied(keys: unknown[]): void;
744
+ protected onCancelled(): void;
745
+ protected onRemoved(key: unknown): void;
746
+ protected onMoved(move: IRtDynamicSelector.Move): void;
747
+ protected onReset(): void;
748
+ protected onCleared(): void;
749
+ protected onOpened(): void;
750
+ protected onClosed(): void;
751
+ protected getEmptyValue(): unknown[];
752
+ protected focusAfterClear(): void;
753
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDynamicSelectorComponent<any>, never>;
754
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtDynamicSelectorComponent<any>, "rt-dynamic-selector", never, {
755
+ "entities": {
756
+ "alias": "entities";
757
+ "required": false;
758
+ "isSignal": true;
759
+ };
760
+ "keyExp": {
761
+ "alias": "keyExp";
762
+ "required": true;
763
+ "isSignal": true;
764
+ };
765
+ "displayExp": {
766
+ "alias": "displayExp";
767
+ "required": true;
768
+ "isSignal": true;
769
+ };
770
+ "displayWith": {
771
+ "alias": "displayWith";
772
+ "required": false;
773
+ "isSignal": true;
774
+ };
775
+ "mode": {
776
+ "alias": "mode";
777
+ "required": false;
778
+ "isSignal": true;
779
+ };
780
+ "buttonTitle": {
781
+ "alias": "buttonTitle";
782
+ "required": false;
783
+ "isSignal": true;
784
+ };
785
+ "addShown": {
786
+ "alias": "addShown";
787
+ "required": false;
788
+ "isSignal": true;
789
+ };
790
+ "removeShown": {
791
+ "alias": "removeShown";
792
+ "required": false;
793
+ "isSignal": true;
794
+ };
795
+ "listActionsShown": {
796
+ "alias": "listActionsShown";
797
+ "required": false;
798
+ "isSignal": true;
799
+ };
800
+ "extraChanged": {
801
+ "alias": "extraChanged";
802
+ "required": false;
803
+ "isSignal": true;
804
+ };
805
+ "searchTerm": {
806
+ "alias": "searchTerm";
807
+ "required": false;
808
+ "isSignal": true;
809
+ };
810
+ "readonlyKeys": {
811
+ "alias": "readonlyKeys";
812
+ "required": false;
813
+ "isSignal": true;
814
+ };
815
+ "pinnedKeys": {
816
+ "alias": "pinnedKeys";
817
+ "required": false;
818
+ "isSignal": true;
819
+ };
820
+ "draggable": {
821
+ "alias": "draggable";
822
+ "required": false;
823
+ "isSignal": true;
824
+ };
825
+ "buttonRadius": {
826
+ "alias": "buttonRadius";
827
+ "required": false;
828
+ "isSignal": true;
829
+ };
830
+ "invitation": {
831
+ "alias": "invitation";
832
+ "required": false;
833
+ "isSignal": true;
834
+ };
835
+ "invitationIcon": {
836
+ "alias": "invitationIcon";
837
+ "required": false;
838
+ "isSignal": true;
839
+ };
840
+ "invitationGlyph": {
841
+ "alias": "invitationGlyph";
842
+ "required": false;
843
+ "isSignal": true;
844
+ };
845
+ "invitationDescription": {
846
+ "alias": "invitationDescription";
847
+ "required": false;
848
+ "isSignal": true;
849
+ };
850
+ "invitationButtonIcon": {
851
+ "alias": "invitationButtonIcon";
852
+ "required": false;
853
+ "isSignal": true;
854
+ };
855
+ "invitationButtonAppearance": {
856
+ "alias": "invitationButtonAppearance";
857
+ "required": false;
858
+ "isSignal": true;
859
+ };
860
+ "clearIcon": {
861
+ "alias": "clearIcon";
862
+ "required": false;
863
+ "isSignal": true;
864
+ };
865
+ "titleWrap": {
866
+ "alias": "titleWrap";
867
+ "required": false;
868
+ "isSignal": true;
869
+ };
870
+ "searchAppearance": {
871
+ "alias": "searchAppearance";
872
+ "required": false;
873
+ "isSignal": true;
874
+ };
875
+ "searchRadius": {
876
+ "alias": "searchRadius";
877
+ "required": false;
878
+ "isSignal": true;
879
+ };
880
+ "highlightSearch": {
881
+ "alias": "highlightSearch";
882
+ "required": false;
883
+ "isSignal": true;
884
+ };
885
+ "emptyResultsText": {
886
+ "alias": "emptyResultsText";
887
+ "required": false;
888
+ "isSignal": true;
889
+ };
890
+ "applyLabel": {
891
+ "alias": "applyLabel";
892
+ "required": false;
893
+ "isSignal": true;
894
+ };
895
+ "applyLabelCase": {
896
+ "alias": "applyLabelCase";
897
+ "required": false;
898
+ "isSignal": true;
899
+ };
900
+ "autofocusSearch": {
901
+ "alias": "autofocusSearch";
902
+ "required": false;
903
+ "isSignal": true;
904
+ };
905
+ "multiToggleShown": {
906
+ "alias": "multiToggleShown";
907
+ "required": false;
908
+ "isSignal": true;
909
+ };
910
+ "selectAllShown": {
911
+ "alias": "selectAllShown";
912
+ "required": false;
913
+ "isSignal": true;
914
+ };
915
+ "localSearch": {
916
+ "alias": "localSearch";
917
+ "required": false;
918
+ "isSignal": true;
919
+ };
920
+ "lazyLoad": {
921
+ "alias": "lazyLoad";
922
+ "required": false;
923
+ "isSignal": true;
924
+ };
925
+ "loading": {
926
+ "alias": "loading";
927
+ "required": false;
928
+ "isSignal": true;
929
+ };
930
+ "fetching": {
931
+ "alias": "fetching";
932
+ "required": false;
933
+ "isSignal": true;
934
+ };
935
+ "navigateTitle": {
936
+ "alias": "navigateTitle";
937
+ "required": false;
938
+ "isSignal": true;
939
+ };
940
+ "navigateLink": {
941
+ "alias": "navigateLink";
942
+ "required": false;
943
+ "isSignal": true;
944
+ };
945
+ "sortFn": {
946
+ "alias": "sortFn";
947
+ "required": false;
948
+ "isSignal": true;
949
+ };
950
+ "chosenEntities": {
951
+ "alias": "chosenEntities";
952
+ "required": false;
953
+ "isSignal": true;
954
+ };
955
+ }, {
956
+ "chosenEntities": "chosenEntitiesChange";
957
+ "selectionChange": "selectionChange";
958
+ "listReset": "listReset";
959
+ "listCleared": "listCleared";
960
+ "popupOpenChange": "popupOpenChange";
961
+ "searchChange": "searchChange";
962
+ "loadMore": "loadMore";
963
+ "temporaryChoiceChange": "temporaryChoiceChange";
964
+ }, ["rowTitle", "rowControls"], never, true, never>;
965
+ }