@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,263 +1,784 @@
1
- import { NgTemplateOutlet, DecimalPipe } from '@angular/common';
2
- import * as i0 from '@angular/core';
3
- import { inject, signal, computed, input, booleanAttribute, output, effect, untracked, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
4
- import * as i1 from '@angular/forms';
5
- import { FormGroup, FormControl, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
6
- import { BlockDirective, ElemDirective } from '@rt-tools/core';
7
- import { NotificationBus, RT_KIT_LABELS } from '@rt-tools/ui-kit-v2/core';
8
- import { RtAsideSectionComponent } from '@rt-tools/ui-kit-v2/aside-section';
9
- import { RtButtonDirective } from '@rt-tools/ui-kit-v2/button';
10
- import { RtConfirmDirective } from '@rt-tools/ui-kit-v2/confirm-popover';
11
- import { RtDetailListComponent, RtDetailRowComponent } from '@rt-tools/ui-kit-v2/detail-list';
12
- import { RtEmptyStateComponent } from '@rt-tools/ui-kit-v2/empty-state';
13
- import { RtFieldComponent } from '@rt-tools/ui-kit-v2/field';
14
- import { RtIconButtonComponent } from '@rt-tools/ui-kit-v2/icon-button';
15
- import { RtMoneyListComponent, RtMoneyRowComponent } from '@rt-tools/ui-kit-v2/money-list';
16
- import { RtNoteComponent } from '@rt-tools/ui-kit-v2/note';
17
- import { RtSelectComponent } from '@rt-tools/ui-kit-v2/select';
18
- import { RtSpinnerComponent } from '@rt-tools/ui-kit-v2/spinner';
19
- import { RtTabDirective, RtTabsComponent } from '@rt-tools/ui-kit-v2/tabs';
20
- import { RtTextareaComponent } from '@rt-tools/ui-kit-v2/textarea';
21
- import { RtTimelineComponent } from '@rt-tools/ui-kit-v2/timeline';
22
- import { RtToggleSwitchComponent } from '@rt-tools/ui-kit-v2/toggle-switch';
23
-
24
- const BEM_BLOCK = 'rt-workspace-details';
25
- class RtWorkspaceDetailsComponent {
26
- #notificationBus;
27
- #lastEntityId;
28
- #lastAgentId;
29
- #lastTransitionSuccess;
30
- #lastTransitionError;
31
- #lastTransitionSubmitError;
32
- #lastAuditError;
33
- #lastPanelError;
34
- constructor() {
35
- this.#notificationBus = inject(NotificationBus);
36
- this.#lastEntityId = signal(undefined, /* @ts-ignore */
37
- ...(ngDevMode ? [{ debugName: "#lastEntityId" }] : /* istanbul ignore next */ []));
38
- this.#lastAgentId = signal(undefined, /* @ts-ignore */
39
- ...(ngDevMode ? [{ debugName: "#lastAgentId" }] : /* istanbul ignore next */ []));
40
- this.#lastTransitionSuccess = null;
41
- this.#lastTransitionError = null;
42
- this.#lastTransitionSubmitError = null;
43
- this.#lastAuditError = null;
44
- this.#lastPanelError = null;
45
- this.t = inject(RT_KIT_LABELS);
46
- this.editingAgent = signal(false, /* @ts-ignore */
47
- ...(ngDevMode ? [{ debugName: "editingAgent" }] : /* istanbul ignore next */ []));
48
- this.selectedAgentId = signal(null, /* @ts-ignore */
49
- ...(ngDevMode ? [{ debugName: "selectedAgentId" }] : /* istanbul ignore next */ []));
50
- this.transitionForm = new FormGroup({
51
- to_key: new FormControl(null, {
52
- validators: [Validators.required],
53
- }),
54
- note: new FormControl(null),
55
- });
56
- this.hasTabs = computed(() => this.transition() !== null || this.audit() !== null, /* @ts-ignore */
57
- ...(ngDevMode ? [{ debugName: "hasTabs" }] : /* istanbul ignore next */ []));
58
- this.noTransitions = computed(() => {
59
- const transition = this.transition();
60
- return transition !== null && !transition.loading && transition.error === null && transition.options.length === 0;
61
- }, /* @ts-ignore */
62
- ...(ngDevMode ? [{ debugName: "noTransitions" }] : /* istanbul ignore next */ []));
63
- this.canSaveReassign = computed(() => {
64
- const edit = this.agentEdit();
65
- const selected = this.selectedAgentId();
66
- return edit !== null && selected !== null && selected !== edit.currentAgentId;
67
- }, /* @ts-ignore */
68
- ...(ngDevMode ? [{ debugName: "canSaveReassign" }] : /* istanbul ignore next */ []));
69
- this.title = input(null, /* @ts-ignore */
70
- ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
71
- this.entityId = input(null, /* @ts-ignore */
72
- ...(ngDevMode ? [{ debugName: "entityId" }] : /* istanbul ignore next */ []));
73
- this.loading = input(false, { ...(ngDevMode ? { debugName: "loading" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
74
- this.busy = input(false, { ...(ngDevMode ? { debugName: "busy" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
75
- this.rows = input([], /* @ts-ignore */
76
- ...(ngDevMode ? [{ debugName: "rows" }] : /* istanbul ignore next */ []));
77
- this.agentEdit = input(null, /* @ts-ignore */
78
- ...(ngDevMode ? [{ debugName: "agentEdit" }] : /* istanbul ignore next */ []));
79
- this.money = input([], /* @ts-ignore */
80
- ...(ngDevMode ? [{ debugName: "money" }] : /* istanbul ignore next */ []));
81
- this.toggles = input([], /* @ts-ignore */
82
- ...(ngDevMode ? [{ debugName: "toggles" }] : /* istanbul ignore next */ []));
83
- this.toggleHint = input(null, /* @ts-ignore */
84
- ...(ngDevMode ? [{ debugName: "toggleHint" }] : /* istanbul ignore next */ []));
85
- this.transition = input(null, /* @ts-ignore */
86
- ...(ngDevMode ? [{ debugName: "transition" }] : /* istanbul ignore next */ []));
87
- this.audit = input(null, /* @ts-ignore */
88
- ...(ngDevMode ? [{ debugName: "audit" }] : /* istanbul ignore next */ []));
89
- this.actions = input([], /* @ts-ignore */
90
- ...(ngDevMode ? [{ debugName: "actions" }] : /* istanbul ignore next */ []));
91
- this.error = input(null, /* @ts-ignore */
92
- ...(ngDevMode ? [{ debugName: "error" }] : /* istanbul ignore next */ []));
93
- this.toggleChange = output();
94
- this.agentReassign = output();
95
- this.transitionSubmit = output();
96
- this.transitionSuccessClose = output();
97
- this.transitionErrorClose = output();
98
- this.auditLoadMore = output();
99
- this.actionClicked = output();
100
- effect(() => {
101
- const id = this.entityId();
102
- if (id === untracked(() => this.#lastEntityId())) {
103
- return;
104
- }
105
- this.#lastEntityId.set(id);
106
- this.editingAgent.set(false);
107
- this.selectedAgentId.set(untracked(() => this.agentEdit())?.currentAgentId ?? null);
108
- this.transitionForm.reset();
109
- });
110
- effect(() => {
111
- const currentAgentId = this.agentEdit()?.currentAgentId ?? null;
112
- if (currentAgentId === untracked(() => this.#lastAgentId())) {
113
- return;
114
- }
115
- this.#lastAgentId.set(currentAgentId);
116
- this.editingAgent.set(false);
117
- this.selectedAgentId.set(currentAgentId);
118
- });
119
- effect(() => {
120
- if (this.transition()?.success != null) {
121
- this.transitionForm.reset();
122
- }
123
- });
124
- effect(() => {
125
- const successText = this.transition()?.success ?? null;
126
- if (successText !== null && successText !== this.#lastTransitionSuccess) {
127
- this.transitionSuccessClose.emit();
128
- }
129
- this.#lastTransitionSuccess = successText;
130
- });
131
- effect(() => {
132
- const submitError = this.transition()?.submitError ?? null;
133
- if (submitError !== null && submitError !== this.#lastTransitionSubmitError) {
134
- this.#notificationBus.error(submitError);
135
- this.transitionErrorClose.emit();
136
- }
137
- this.#lastTransitionSubmitError = submitError;
138
- });
139
- effect(() => {
140
- const transitionError = this.transition()?.error ?? null;
141
- if (transitionError !== null && transitionError !== this.#lastTransitionError) {
142
- this.#notificationBus.error(transitionError);
143
- }
144
- this.#lastTransitionError = transitionError;
145
- });
146
- effect(() => {
147
- const auditError = this.audit()?.error ?? null;
148
- if (auditError !== null && auditError !== this.#lastAuditError) {
149
- this.#notificationBus.error(auditError);
150
- }
151
- this.#lastAuditError = auditError;
152
- });
153
- effect(() => {
154
- const panelError = this.error();
155
- if (panelError !== null && panelError !== this.#lastPanelError) {
156
- this.#notificationBus.error(panelError);
157
- }
158
- this.#lastPanelError = panelError;
159
- });
160
- }
161
- startEditAgent() {
162
- const edit = this.agentEdit();
163
- if (edit === null || !edit.canEdit || this.busy()) {
164
- return;
165
- }
166
- this.selectedAgentId.set(edit.currentAgentId);
167
- this.editingAgent.set(true);
168
- }
169
- cancelEditAgent() {
170
- const edit = this.agentEdit();
171
- if (edit !== null && edit.loading) {
172
- return;
173
- }
174
- this.selectedAgentId.set(edit?.currentAgentId ?? null);
175
- this.editingAgent.set(false);
176
- }
177
- onReassign() {
178
- const agentId = this.selectedAgentId();
179
- if (agentId === null || !this.canSaveReassign() || this.busy()) {
180
- return;
181
- }
182
- this.agentReassign.emit(agentId);
183
- }
184
- onSelectedAgentChange(agentId) {
185
- this.selectedAgentId.set(agentId);
186
- }
187
- onToggleChange(toggle, value) {
188
- if (toggle.value === value) {
189
- return;
190
- }
191
- this.toggleChange.emit({ id: toggle.id, value });
192
- }
193
- onTransitionSubmit() {
194
- const transition = this.transition();
195
- if (transition === null || transition.submitting) {
196
- return;
197
- }
198
- if (!this.transitionForm.valid) {
199
- this.transitionForm.markAllAsTouched();
200
- return;
201
- }
202
- const value = this.transitionForm.getRawValue();
203
- this.transitionSubmit.emit({
204
- stageKey: value.to_key ?? '',
205
- comment: value.note?.trim() ?? '',
206
- });
207
- }
208
- onAuditLoadMore() {
209
- this.auditLoadMore.emit();
210
- }
211
- onAction(action) {
212
- if ((action.disabled ?? false) || this.busy()) {
213
- return;
214
- }
215
- this.actionClicked.emit(action.id);
216
- }
217
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: RtWorkspaceDetailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
218
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: RtWorkspaceDetailsComponent, isStandalone: true, selector: "rt-workspace-details", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, entityId: { classPropertyName: "entityId", publicName: "entityId", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, busy: { classPropertyName: "busy", publicName: "busy", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, agentEdit: { classPropertyName: "agentEdit", publicName: "agentEdit", isSignal: true, isRequired: false, transformFunction: null }, money: { classPropertyName: "money", publicName: "money", isSignal: true, isRequired: false, transformFunction: null }, toggles: { classPropertyName: "toggles", publicName: "toggles", isSignal: true, isRequired: false, transformFunction: null }, toggleHint: { classPropertyName: "toggleHint", publicName: "toggleHint", isSignal: true, isRequired: false, transformFunction: null }, transition: { classPropertyName: "transition", publicName: "transition", isSignal: true, isRequired: false, transformFunction: null }, audit: { classPropertyName: "audit", publicName: "audit", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggleChange: "toggleChange", agentReassign: "agentReassign", transitionSubmit: "transitionSubmit", transitionSuccessClose: "transitionSuccessClose", transitionErrorClose: "transitionErrorClose", auditLoadMore: "auditLoadMore", actionClicked: "actionClicked" }, host: { classAttribute: "rt-workspace-details" }, ngImport: i0, template: "<ng-container rtBlock=\"rt-workspace-details\">\n @if (title(); as headTitle) {\n <header rtElem=\"head\">\n <span rtElem=\"head-title\" qa-dataid=\"workspace-details-title\">{{ headTitle }}</span>\n </header>\n }\n\n @if (hasTabs()) {\n <rt-tabs rtElem=\"tabs\" qa-dataid=\"workspace-details-tabs\">\n <ng-template rtTab=\"details\" [label]=\"t().uiDetails\">\n <ng-container [ngTemplateOutlet]=\"detailsTpl\" />\n </ng-template>\n\n <ng-template rtTab=\"transition\" [label]=\"t().uiStageTransition\" [hidden]=\"transition() === null\">\n @if (transition(); as stageTransition) {\n @if (stageTransition.currentStageLabel; as stageLabel) {\n <rt-detail-list>\n <rt-detail-row qa-dataid=\"workspace-details-current-stage\" [label]=\"t().uiCurrentStage\">\n {{ stageLabel }}\n </rt-detail-row>\n </rt-detail-list>\n }\n\n @if (noTransitions()) {\n <rt-note qa-dataid=\"workspace-details-no-transitions\">{{ stageTransition.noTransitionsText }}</rt-note>\n } @else {\n <form\n rtElem=\"transition-form\"\n qa-dataid=\"workspace-details-transition-form\"\n [formGroup]=\"transitionForm\"\n (ngSubmit)=\"onTransitionSubmit()\">\n <rt-field\n [label]=\"t().uiTargetStage\"\n [loading]=\"stageTransition.loading\"\n [errors]=\"{ required: t().uiTargetStageRequired }\">\n <rt-select\n formControlName=\"to_key\"\n qa-dataid=\"workspace-details-transition-stage\"\n [placeholder]=\"t().uiPickTransition\"\n [options]=\"stageTransition.options\" />\n </rt-field>\n\n <rt-field [label]=\"t().uiCommentOptional\" [hint]=\"t().uiStageNoteHint\" [loading]=\"stageTransition.loading\">\n <rt-textarea formControlName=\"note\" qa-dataid=\"workspace-details-transition-note\" rows=\"3\" />\n </rt-field>\n\n <button\n rtButton\n rtElem=\"transition-submit\"\n qa-dataid=\"workspace-details-transition-submit\"\n type=\"submit\"\n [label]=\"t().uiMoveStage\"\n [attr.aria-label]=\"t().uiMoveStageAria\"\n [loading]=\"stageTransition.submitting\"\n [disabled]=\"stageTransition.loading || busy()\"></button>\n </form>\n }\n }\n </ng-template>\n\n <ng-template rtTab=\"audit\" [label]=\"t().uiHistory\" [hidden]=\"audit() === null\">\n @if (audit(); as auditFeed) {\n <div rtElem=\"audit\" qa-dataid=\"workspace-details-audit\">\n @if (auditFeed.loading) {\n <rt-spinner rtElem=\"audit-loading\" qa-dataid=\"workspace-details-audit-loading\" />\n } @else if (auditFeed.steps.length === 0) {\n <rt-empty-state\n qa-dataid=\"workspace-details-audit-empty\"\n icon=\"history\"\n [description]=\"t().uiAuditEmptyHint\"\n [title]=\"auditFeed.emptyText\" />\n } @else {\n <rt-timeline qa-dataid=\"workspace-details-audit-timeline\" [steps]=\"auditFeed.steps\" />\n }\n\n @if (auditFeed.hasMore) {\n <button\n rtButton\n rtElem=\"audit-more\"\n qa-dataid=\"workspace-details-audit-more\"\n type=\"button\"\n appearance=\"text\"\n [label]=\"t().uiLoadMore\"\n [attr.aria-label]=\"t().uiLoadMore\"\n [loading]=\"auditFeed.loadingMore\"\n [disabled]=\"auditFeed.loadingMore\"\n (click)=\"onAuditLoadMore()\"></button>\n }\n </div>\n }\n </ng-template>\n </rt-tabs>\n } @else {\n <div rtElem=\"body\">\n <ng-container [ngTemplateOutlet]=\"detailsTpl\" />\n </div>\n }\n\n <ng-template #detailsTpl>\n @if (rows().length > 0) {\n <rt-detail-list>\n @for (row of rows(); track row.label) {\n <rt-detail-row qa-dataid=\"workspace-details-row\" [label]=\"row.label\" [loading]=\"loading()\">\n @if (row.agent && agentEdit(); as edit) {\n @if (!editingAgent()) {\n <div rtElem=\"agent-view\">\n <span rtElem=\"agent-name\" qa-dataid=\"workspace-details-agent-name\">{{ edit.currentLabel }}</span>\n <rt-icon-button\n qa-dataid=\"workspace-details-agent-edit\"\n icon=\"pencil\"\n size=\"sm\"\n [ariaLabel]=\"t().uiChangeAgent\"\n [tooltip]=\"edit.canEdit ? edit.editTooltip : edit.cannotEditTooltip\"\n [disabled]=\"!edit.canEdit || busy()\"\n (clicked)=\"startEditAgent()\" />\n </div>\n } @else {\n <div rtElem=\"agent-edit\">\n <rt-select\n qa-dataid=\"workspace-details-agent-select\"\n [placeholder]=\"t().uiPickAgent\"\n [ngModel]=\"selectedAgentId()\"\n [options]=\"edit.options\"\n [clearable]=\"false\"\n (ngModelChange)=\"onSelectedAgentChange($event)\" />\n <rt-icon-button\n qa-dataid=\"workspace-details-agent-save\"\n icon=\"check\"\n size=\"sm\"\n rtConfirmTone=\"primary\"\n [ariaLabel]=\"t().uiSaveNewAgent\"\n [rtConfirmTitle]=\"t().uiReplaceAgentTitle\"\n [rtConfirmLabel]=\"t().uiReplace\"\n [tooltip]=\"canSaveReassign() ? t().uiSaveNewAgent : t().uiPickAnotherAgent\"\n [loading]=\"edit.loading\"\n [disabled]=\"!canSaveReassign() || busy()\"\n [rtConfirm]=\"edit.confirmText\"\n [rtConfirmDisabled]=\"!canSaveReassign() || busy()\"\n (confirmed)=\"onReassign()\" />\n <rt-icon-button\n qa-dataid=\"workspace-details-agent-cancel\"\n icon=\"ico-close\"\n size=\"sm\"\n [ariaLabel]=\"t().uiRevert\"\n [tooltip]=\"t().uiRevert\"\n [disabled]=\"edit.loading\"\n (clicked)=\"cancelEditAgent()\" />\n </div>\n }\n } @else {\n {{ row.value }}\n }\n </rt-detail-row>\n }\n </rt-detail-list>\n }\n\n @if (money().length > 0) {\n <rt-money-list>\n @for (moneyRow of money(); track moneyRow.label) {\n <rt-money-row\n qa-dataid=\"workspace-details-money-row\"\n [label]=\"moneyRow.label\"\n [total]=\"moneyRow.total ?? false\"\n [loading]=\"loading()\">\n {{ moneyRow.amount | number: moneyRow.format ?? '1.0-0' }} \u20BD\n </rt-money-row>\n }\n </rt-money-list>\n }\n\n @if (toggles().length > 0 || toggleHint()) {\n <rt-aside-section>\n @for (toggle of toggles(); track toggle.id) {\n <div rtElem=\"toggle-row\" qa-dataid=\"workspace-details-toggle-row\" [attr.data-id]=\"toggle.id\">\n <span rtElem=\"toggle-label\" qa-dataid=\"workspace-details-toggle-label\">{{ toggle.label }}</span>\n <rt-toggle-switch\n qa-dataid=\"workspace-details-toggle\"\n [inputId]=\"toggle.id\"\n [ariaLabel]=\"toggle.label\"\n [ngModel]=\"toggle.value\"\n [disabled]=\"(toggle.disabled ?? false) || busy()\"\n (ngModelChange)=\"onToggleChange(toggle, $event)\" />\n </div>\n }\n @if (toggleHint(); as hint) {\n <p rtElem=\"toggle-hint\" qa-dataid=\"workspace-details-toggle-hint\">{{ hint }}</p>\n }\n </rt-aside-section>\n }\n </ng-template>\n\n <footer rtElem=\"footer\">\n @for (panelAction of actions(); track panelAction.id) {\n @if (panelAction.confirm; as confirm) {\n <button\n rtButton\n rtElem=\"footer-action\"\n qa-dataid=\"workspace-details-action\"\n type=\"button\"\n [attr.data-id]=\"panelAction.id\"\n [theme]=\"panelAction.theme ?? 'primary'\"\n [appearance]=\"panelAction.appearance ?? 'filled'\"\n [label]=\"panelAction.label\"\n [icon]=\"panelAction.icon\"\n [attr.aria-label]=\"panelAction.label\"\n [rtConfirmTitle]=\"confirm.title\"\n [rtConfirmLabel]=\"confirm.label\"\n [rtConfirmTone]=\"confirm.tone\"\n [loading]=\"panelAction.loading ?? false\"\n [disabled]=\"(panelAction.disabled ?? false) || busy()\"\n [rtConfirm]=\"confirm.text\"\n [rtConfirmDisabled]=\"(panelAction.disabled ?? false) || busy()\"\n (confirmed)=\"onAction(panelAction)\"></button>\n } @else {\n <button\n rtButton\n rtElem=\"footer-action\"\n qa-dataid=\"workspace-details-action\"\n type=\"button\"\n [attr.data-id]=\"panelAction.id\"\n [theme]=\"panelAction.theme ?? 'primary'\"\n [appearance]=\"panelAction.appearance ?? 'filled'\"\n [label]=\"panelAction.label\"\n [icon]=\"panelAction.icon\"\n [attr.aria-label]=\"panelAction.label\"\n [loading]=\"panelAction.loading ?? false\"\n [disabled]=\"(panelAction.disabled ?? false) || busy()\"\n (click)=\"onAction(panelAction)\"></button>\n }\n }\n </footer>\n</ng-container>\n", styles: ["@layer rt-kit.components{.rt-workspace-details{--rt-workspace-details-border-width: var(--rt-border-width-thin);display:flex;flex-direction:column;block-size:100%;min-block-size:0}.rt-workspace-details__head{display:flex;flex:0 0 auto;align-items:center;block-size:56px;border-block-end:var(--rt-workspace-details-border-width) solid var(--rt-color-border-strong);padding-inline:var(--rt-space-lg)}.rt-workspace-details__head-title{color:var(--rt-color-text-primary);font-size:var(--rt-text-md);font-weight:var(--rt-font-weight-semibold)}.rt-workspace-details__tabs{flex:1 1 auto;min-block-size:0}.rt-workspace-details__tabs .rt-tabs__header{align-items:flex-end;block-size:56px;border-block-end:var(--rt-workspace-details-border-width) solid var(--rt-color-border-strong);padding-inline:var(--rt-space-lg)}.rt-workspace-details__tabs .rt-tabs__tab-list{border-block-end:0}.rt-workspace-details__tabs .rt-tabs__content{padding-block-end:var(--rt-space-5);padding-inline:var(--rt-space-lg)}.rt-workspace-details__body{display:flex;flex:1 1 auto;flex-direction:column;padding:var(--rt-space-5) var(--rt-space-lg);gap:var(--rt-space-md);min-block-size:0;overflow-y:auto}.rt-workspace-details__agent-view,.rt-workspace-details__agent-edit{display:flex;align-items:center;gap:var(--rt-space-sm)}.rt-workspace-details__agent-name{overflow:hidden;min-inline-size:0;text-overflow:ellipsis;white-space:nowrap}.rt-workspace-details__toggle-row{display:flex;align-items:center;justify-content:space-between;gap:var(--rt-space-md)}.rt-workspace-details__toggle-label{color:var(--rt-color-text-muted);font-size:var(--rt-text-sm);font-weight:var(--rt-font-weight-medium)}.rt-workspace-details__toggle-hint{margin:0;color:var(--rt-color-text-muted);font-size:var(--rt-text-sm)}.rt-workspace-details__transition-form{display:flex;flex-direction:column;gap:var(--rt-space-md)}.rt-workspace-details__transition-submit{align-self:flex-start}.rt-workspace-details__audit{display:flex;flex-direction:column;gap:var(--rt-space-md)}.rt-workspace-details__audit-loading,.rt-workspace-details__audit-more{align-self:center}.rt-workspace-details__footer{display:flex;flex:0 0 auto;flex-direction:column;padding:var(--rt-space-md) var(--rt-space-lg);border-block-start:var(--rt-workspace-details-border-width) solid var(--rt-color-border-strong);gap:var(--rt-space-sm)}.rt-workspace-details__footer:empty{display:none}.rt-workspace-details__footer-action{justify-content:center;inline-size:100%}.rt-workspace-details__error{margin-inline:var(--rt-space-lg)}}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type:
219
- // standalone components / directives
220
- RtAsideSectionComponent, selector: "rt-aside-section", inputs: ["heading"] }, { kind: "directive", type: RtButtonDirective, selector: "button[rtButton], a[rtButton]", inputs: ["label", "icon", "iconPos", "theme", "appearance", "size", "loading", "loadingIcon", "loadingLabel", "pressed"] }, { kind: "directive", type: RtConfirmDirective, selector: "[rtConfirm]", inputs: ["rtConfirm", "rtConfirmTitle", "rtConfirmLabel", "rtConfirmCancelLabel", "rtConfirmTone", "rtConfirmDisabled"], outputs: ["confirmed"], exportAs: ["rtConfirm"] }, { kind: "component", type: RtDetailListComponent, selector: "rt-detail-list" }, { kind: "component", type: RtDetailRowComponent, selector: "rt-detail-row", inputs: ["label", "loading"] }, { kind: "component", type: RtEmptyStateComponent, selector: "rt-empty-state", inputs: ["icon", "glyph", "title", "description", "framed"] }, { kind: "component", type: RtFieldComponent, selector: "rt-field", inputs: ["label", "hint", "help", "readonly", "loading", "required", "hideRequiredMark", "reserveHintSpace", "errors"] }, { kind: "component", type: RtIconButtonComponent, selector: "rt-icon-button", inputs: ["icon", "glyph", "ariaLabel", "variant", "iconColor", "iconFill", "size", "iconSize", "type", "tooltip", "tabIndex", "loading", "disabled", "active", "indicator"], outputs: ["clicked"] }, { kind: "component", type: RtMoneyListComponent, selector: "rt-money-list" }, { kind: "component", type: RtMoneyRowComponent, selector: "rt-money-row", inputs: ["label", "total", "loading"] }, { kind: "component", type: RtNoteComponent, selector: "rt-note" }, { kind: "component", type: RtSelectComponent, selector: "rt-select", inputs: ["appearance", "options", "placeholder", "iconLeft", "filter", "filterPlaceholder", "panelWidth", "panelMaxHeight"], outputs: ["selectionChange"] }, { kind: "component", type: RtSpinnerComponent, selector: "rt-spinner", inputs: ["diameter", "color", "appearance", "overlay", "backdrop", "plate"] }, { kind: "directive", type: RtTabDirective, selector: "[rtTab]", inputs: ["rtTab", "label", "titleTemplate", "icon", "iconColor", "badge", "badgeTitle", "badgeAriaLabel", "disabled", "hidden", "invalid", "invalidMessage"] }, { kind: "component", type: RtTabsComponent, selector: "rt-tabs", inputs: ["activeId", "direction", "stretch", "contentScrollable"], outputs: ["activeIdChange"] }, { kind: "component", type: RtTextareaComponent, selector: "rt-textarea", inputs: ["placeholder", "readonly", "rows", "resize"] }, { kind: "component", type: RtTimelineComponent, selector: "rt-timeline", inputs: ["steps"] }, { kind: "component", type: RtToggleSwitchComponent, selector: "rt-toggle-switch", inputs: ["inputId", "ariaLabel", "label", "size", "iconOff", "iconOn", "disabled"] }, { kind: "directive", type: BlockDirective, selector: "[rtBlock]", inputs: ["rtMod"] }, { kind: "directive", type: ElemDirective, selector: "[rtElem]", inputs: ["rtMod"] }, { kind: "pipe", type:
221
- // Angular
222
- DecimalPipe, name: "number" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
223
- }
224
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: RtWorkspaceDetailsComponent, decorators: [{
225
- type: Component,
226
- args: [{ selector: 'rt-workspace-details', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [
227
- // Angular
228
- DecimalPipe,
229
- FormsModule,
230
- NgTemplateOutlet,
231
- ReactiveFormsModule,
232
- // standalone components / directives
233
- RtAsideSectionComponent,
234
- RtButtonDirective,
235
- RtConfirmDirective,
236
- RtDetailListComponent,
237
- RtDetailRowComponent,
238
- RtEmptyStateComponent,
239
- RtFieldComponent,
240
- RtIconButtonComponent,
241
- RtMoneyListComponent,
242
- RtMoneyRowComponent,
243
- RtNoteComponent,
244
- RtSelectComponent,
245
- RtSpinnerComponent,
246
- RtTabDirective,
247
- RtTabsComponent,
248
- RtTextareaComponent,
249
- RtTimelineComponent,
250
- RtToggleSwitchComponent,
251
- BlockDirective,
252
- ElemDirective,
253
- ], host: {
254
- class: BEM_BLOCK,
255
- }, template: "<ng-container rtBlock=\"rt-workspace-details\">\n @if (title(); as headTitle) {\n <header rtElem=\"head\">\n <span rtElem=\"head-title\" qa-dataid=\"workspace-details-title\">{{ headTitle }}</span>\n </header>\n }\n\n @if (hasTabs()) {\n <rt-tabs rtElem=\"tabs\" qa-dataid=\"workspace-details-tabs\">\n <ng-template rtTab=\"details\" [label]=\"t().uiDetails\">\n <ng-container [ngTemplateOutlet]=\"detailsTpl\" />\n </ng-template>\n\n <ng-template rtTab=\"transition\" [label]=\"t().uiStageTransition\" [hidden]=\"transition() === null\">\n @if (transition(); as stageTransition) {\n @if (stageTransition.currentStageLabel; as stageLabel) {\n <rt-detail-list>\n <rt-detail-row qa-dataid=\"workspace-details-current-stage\" [label]=\"t().uiCurrentStage\">\n {{ stageLabel }}\n </rt-detail-row>\n </rt-detail-list>\n }\n\n @if (noTransitions()) {\n <rt-note qa-dataid=\"workspace-details-no-transitions\">{{ stageTransition.noTransitionsText }}</rt-note>\n } @else {\n <form\n rtElem=\"transition-form\"\n qa-dataid=\"workspace-details-transition-form\"\n [formGroup]=\"transitionForm\"\n (ngSubmit)=\"onTransitionSubmit()\">\n <rt-field\n [label]=\"t().uiTargetStage\"\n [loading]=\"stageTransition.loading\"\n [errors]=\"{ required: t().uiTargetStageRequired }\">\n <rt-select\n formControlName=\"to_key\"\n qa-dataid=\"workspace-details-transition-stage\"\n [placeholder]=\"t().uiPickTransition\"\n [options]=\"stageTransition.options\" />\n </rt-field>\n\n <rt-field [label]=\"t().uiCommentOptional\" [hint]=\"t().uiStageNoteHint\" [loading]=\"stageTransition.loading\">\n <rt-textarea formControlName=\"note\" qa-dataid=\"workspace-details-transition-note\" rows=\"3\" />\n </rt-field>\n\n <button\n rtButton\n rtElem=\"transition-submit\"\n qa-dataid=\"workspace-details-transition-submit\"\n type=\"submit\"\n [label]=\"t().uiMoveStage\"\n [attr.aria-label]=\"t().uiMoveStageAria\"\n [loading]=\"stageTransition.submitting\"\n [disabled]=\"stageTransition.loading || busy()\"></button>\n </form>\n }\n }\n </ng-template>\n\n <ng-template rtTab=\"audit\" [label]=\"t().uiHistory\" [hidden]=\"audit() === null\">\n @if (audit(); as auditFeed) {\n <div rtElem=\"audit\" qa-dataid=\"workspace-details-audit\">\n @if (auditFeed.loading) {\n <rt-spinner rtElem=\"audit-loading\" qa-dataid=\"workspace-details-audit-loading\" />\n } @else if (auditFeed.steps.length === 0) {\n <rt-empty-state\n qa-dataid=\"workspace-details-audit-empty\"\n icon=\"history\"\n [description]=\"t().uiAuditEmptyHint\"\n [title]=\"auditFeed.emptyText\" />\n } @else {\n <rt-timeline qa-dataid=\"workspace-details-audit-timeline\" [steps]=\"auditFeed.steps\" />\n }\n\n @if (auditFeed.hasMore) {\n <button\n rtButton\n rtElem=\"audit-more\"\n qa-dataid=\"workspace-details-audit-more\"\n type=\"button\"\n appearance=\"text\"\n [label]=\"t().uiLoadMore\"\n [attr.aria-label]=\"t().uiLoadMore\"\n [loading]=\"auditFeed.loadingMore\"\n [disabled]=\"auditFeed.loadingMore\"\n (click)=\"onAuditLoadMore()\"></button>\n }\n </div>\n }\n </ng-template>\n </rt-tabs>\n } @else {\n <div rtElem=\"body\">\n <ng-container [ngTemplateOutlet]=\"detailsTpl\" />\n </div>\n }\n\n <ng-template #detailsTpl>\n @if (rows().length > 0) {\n <rt-detail-list>\n @for (row of rows(); track row.label) {\n <rt-detail-row qa-dataid=\"workspace-details-row\" [label]=\"row.label\" [loading]=\"loading()\">\n @if (row.agent && agentEdit(); as edit) {\n @if (!editingAgent()) {\n <div rtElem=\"agent-view\">\n <span rtElem=\"agent-name\" qa-dataid=\"workspace-details-agent-name\">{{ edit.currentLabel }}</span>\n <rt-icon-button\n qa-dataid=\"workspace-details-agent-edit\"\n icon=\"pencil\"\n size=\"sm\"\n [ariaLabel]=\"t().uiChangeAgent\"\n [tooltip]=\"edit.canEdit ? edit.editTooltip : edit.cannotEditTooltip\"\n [disabled]=\"!edit.canEdit || busy()\"\n (clicked)=\"startEditAgent()\" />\n </div>\n } @else {\n <div rtElem=\"agent-edit\">\n <rt-select\n qa-dataid=\"workspace-details-agent-select\"\n [placeholder]=\"t().uiPickAgent\"\n [ngModel]=\"selectedAgentId()\"\n [options]=\"edit.options\"\n [clearable]=\"false\"\n (ngModelChange)=\"onSelectedAgentChange($event)\" />\n <rt-icon-button\n qa-dataid=\"workspace-details-agent-save\"\n icon=\"check\"\n size=\"sm\"\n rtConfirmTone=\"primary\"\n [ariaLabel]=\"t().uiSaveNewAgent\"\n [rtConfirmTitle]=\"t().uiReplaceAgentTitle\"\n [rtConfirmLabel]=\"t().uiReplace\"\n [tooltip]=\"canSaveReassign() ? t().uiSaveNewAgent : t().uiPickAnotherAgent\"\n [loading]=\"edit.loading\"\n [disabled]=\"!canSaveReassign() || busy()\"\n [rtConfirm]=\"edit.confirmText\"\n [rtConfirmDisabled]=\"!canSaveReassign() || busy()\"\n (confirmed)=\"onReassign()\" />\n <rt-icon-button\n qa-dataid=\"workspace-details-agent-cancel\"\n icon=\"ico-close\"\n size=\"sm\"\n [ariaLabel]=\"t().uiRevert\"\n [tooltip]=\"t().uiRevert\"\n [disabled]=\"edit.loading\"\n (clicked)=\"cancelEditAgent()\" />\n </div>\n }\n } @else {\n {{ row.value }}\n }\n </rt-detail-row>\n }\n </rt-detail-list>\n }\n\n @if (money().length > 0) {\n <rt-money-list>\n @for (moneyRow of money(); track moneyRow.label) {\n <rt-money-row\n qa-dataid=\"workspace-details-money-row\"\n [label]=\"moneyRow.label\"\n [total]=\"moneyRow.total ?? false\"\n [loading]=\"loading()\">\n {{ moneyRow.amount | number: moneyRow.format ?? '1.0-0' }} \u20BD\n </rt-money-row>\n }\n </rt-money-list>\n }\n\n @if (toggles().length > 0 || toggleHint()) {\n <rt-aside-section>\n @for (toggle of toggles(); track toggle.id) {\n <div rtElem=\"toggle-row\" qa-dataid=\"workspace-details-toggle-row\" [attr.data-id]=\"toggle.id\">\n <span rtElem=\"toggle-label\" qa-dataid=\"workspace-details-toggle-label\">{{ toggle.label }}</span>\n <rt-toggle-switch\n qa-dataid=\"workspace-details-toggle\"\n [inputId]=\"toggle.id\"\n [ariaLabel]=\"toggle.label\"\n [ngModel]=\"toggle.value\"\n [disabled]=\"(toggle.disabled ?? false) || busy()\"\n (ngModelChange)=\"onToggleChange(toggle, $event)\" />\n </div>\n }\n @if (toggleHint(); as hint) {\n <p rtElem=\"toggle-hint\" qa-dataid=\"workspace-details-toggle-hint\">{{ hint }}</p>\n }\n </rt-aside-section>\n }\n </ng-template>\n\n <footer rtElem=\"footer\">\n @for (panelAction of actions(); track panelAction.id) {\n @if (panelAction.confirm; as confirm) {\n <button\n rtButton\n rtElem=\"footer-action\"\n qa-dataid=\"workspace-details-action\"\n type=\"button\"\n [attr.data-id]=\"panelAction.id\"\n [theme]=\"panelAction.theme ?? 'primary'\"\n [appearance]=\"panelAction.appearance ?? 'filled'\"\n [label]=\"panelAction.label\"\n [icon]=\"panelAction.icon\"\n [attr.aria-label]=\"panelAction.label\"\n [rtConfirmTitle]=\"confirm.title\"\n [rtConfirmLabel]=\"confirm.label\"\n [rtConfirmTone]=\"confirm.tone\"\n [loading]=\"panelAction.loading ?? false\"\n [disabled]=\"(panelAction.disabled ?? false) || busy()\"\n [rtConfirm]=\"confirm.text\"\n [rtConfirmDisabled]=\"(panelAction.disabled ?? false) || busy()\"\n (confirmed)=\"onAction(panelAction)\"></button>\n } @else {\n <button\n rtButton\n rtElem=\"footer-action\"\n qa-dataid=\"workspace-details-action\"\n type=\"button\"\n [attr.data-id]=\"panelAction.id\"\n [theme]=\"panelAction.theme ?? 'primary'\"\n [appearance]=\"panelAction.appearance ?? 'filled'\"\n [label]=\"panelAction.label\"\n [icon]=\"panelAction.icon\"\n [attr.aria-label]=\"panelAction.label\"\n [loading]=\"panelAction.loading ?? false\"\n [disabled]=\"(panelAction.disabled ?? false) || busy()\"\n (click)=\"onAction(panelAction)\"></button>\n }\n }\n </footer>\n</ng-container>\n", styles: ["@layer rt-kit.components{.rt-workspace-details{--rt-workspace-details-border-width: var(--rt-border-width-thin);display:flex;flex-direction:column;block-size:100%;min-block-size:0}.rt-workspace-details__head{display:flex;flex:0 0 auto;align-items:center;block-size:56px;border-block-end:var(--rt-workspace-details-border-width) solid var(--rt-color-border-strong);padding-inline:var(--rt-space-lg)}.rt-workspace-details__head-title{color:var(--rt-color-text-primary);font-size:var(--rt-text-md);font-weight:var(--rt-font-weight-semibold)}.rt-workspace-details__tabs{flex:1 1 auto;min-block-size:0}.rt-workspace-details__tabs .rt-tabs__header{align-items:flex-end;block-size:56px;border-block-end:var(--rt-workspace-details-border-width) solid var(--rt-color-border-strong);padding-inline:var(--rt-space-lg)}.rt-workspace-details__tabs .rt-tabs__tab-list{border-block-end:0}.rt-workspace-details__tabs .rt-tabs__content{padding-block-end:var(--rt-space-5);padding-inline:var(--rt-space-lg)}.rt-workspace-details__body{display:flex;flex:1 1 auto;flex-direction:column;padding:var(--rt-space-5) var(--rt-space-lg);gap:var(--rt-space-md);min-block-size:0;overflow-y:auto}.rt-workspace-details__agent-view,.rt-workspace-details__agent-edit{display:flex;align-items:center;gap:var(--rt-space-sm)}.rt-workspace-details__agent-name{overflow:hidden;min-inline-size:0;text-overflow:ellipsis;white-space:nowrap}.rt-workspace-details__toggle-row{display:flex;align-items:center;justify-content:space-between;gap:var(--rt-space-md)}.rt-workspace-details__toggle-label{color:var(--rt-color-text-muted);font-size:var(--rt-text-sm);font-weight:var(--rt-font-weight-medium)}.rt-workspace-details__toggle-hint{margin:0;color:var(--rt-color-text-muted);font-size:var(--rt-text-sm)}.rt-workspace-details__transition-form{display:flex;flex-direction:column;gap:var(--rt-space-md)}.rt-workspace-details__transition-submit{align-self:flex-start}.rt-workspace-details__audit{display:flex;flex-direction:column;gap:var(--rt-space-md)}.rt-workspace-details__audit-loading,.rt-workspace-details__audit-more{align-self:center}.rt-workspace-details__footer{display:flex;flex:0 0 auto;flex-direction:column;padding:var(--rt-space-md) var(--rt-space-lg);border-block-start:var(--rt-workspace-details-border-width) solid var(--rt-color-border-strong);gap:var(--rt-space-sm)}.rt-workspace-details__footer:empty{display:none}.rt-workspace-details__footer-action{justify-content:center;inline-size:100%}.rt-workspace-details__error{margin-inline:var(--rt-space-lg)}}\n"] }]
256
- }], ctorParameters: () => [], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], entityId: [{ type: i0.Input, args: [{ isSignal: true, alias: "entityId", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], busy: [{ type: i0.Input, args: [{ isSignal: true, alias: "busy", required: false }] }], rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: false }] }], agentEdit: [{ type: i0.Input, args: [{ isSignal: true, alias: "agentEdit", required: false }] }], money: [{ type: i0.Input, args: [{ isSignal: true, alias: "money", required: false }] }], toggles: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggles", required: false }] }], toggleHint: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleHint", required: false }] }], transition: [{ type: i0.Input, args: [{ isSignal: true, alias: "transition", required: false }] }], audit: [{ type: i0.Input, args: [{ isSignal: true, alias: "audit", required: false }] }], actions: [{ type: i0.Input, args: [{ isSignal: true, alias: "actions", required: false }] }], error: [{ type: i0.Input, args: [{ isSignal: true, alias: "error", required: false }] }], toggleChange: [{ type: i0.Output, args: ["toggleChange"] }], agentReassign: [{ type: i0.Output, args: ["agentReassign"] }], transitionSubmit: [{ type: i0.Output, args: ["transitionSubmit"] }], transitionSuccessClose: [{ type: i0.Output, args: ["transitionSuccessClose"] }], transitionErrorClose: [{ type: i0.Output, args: ["transitionErrorClose"] }], auditLoadMore: [{ type: i0.Output, args: ["auditLoadMore"] }], actionClicked: [{ type: i0.Output, args: ["actionClicked"] }] } });
257
-
258
- /**
259
- * Generated bundle index. Do not edit.
260
- */
261
-
1
+ import { DecimalPipe, NgTemplateOutlet } from "@angular/common";
2
+ import * as i0 from "@angular/core";
3
+ import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, computed, effect, inject, input, output, signal, untracked } from "@angular/core";
4
+ import * as i1 from "@angular/forms";
5
+ import { FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators } from "@angular/forms";
6
+ import { BlockDirective, ElemDirective } from "@rt-tools/core";
7
+ import { NotificationBus, RT_KIT_LABELS } from "@rt-tools/ui-kit-v2/core";
8
+ import { RtAsideSectionComponent } from "@rt-tools/ui-kit-v2/aside-section";
9
+ import { RtButtonDirective } from "@rt-tools/ui-kit-v2/button";
10
+ import { RtConfirmDirective } from "@rt-tools/ui-kit-v2/confirm-popover";
11
+ import { RtDetailListComponent, RtDetailRowComponent } from "@rt-tools/ui-kit-v2/detail-list";
12
+ import { RtEmptyStateComponent } from "@rt-tools/ui-kit-v2/empty-state";
13
+ import { RtFieldComponent } from "@rt-tools/ui-kit-v2/field";
14
+ import { RtIconButtonComponent } from "@rt-tools/ui-kit-v2/icon-button";
15
+ import { RtMoneyListComponent, RtMoneyRowComponent } from "@rt-tools/ui-kit-v2/money-list";
16
+ import { RtNoteComponent } from "@rt-tools/ui-kit-v2/note";
17
+ import { RtSelectComponent } from "@rt-tools/ui-kit-v2/select";
18
+ import { RtSpinnerComponent } from "@rt-tools/ui-kit-v2/spinner";
19
+ import { RtTabDirective, RtTabsComponent } from "@rt-tools/ui-kit-v2/tabs";
20
+ import { RtTextareaComponent } from "@rt-tools/ui-kit-v2/textarea";
21
+ import { RtTimelineComponent } from "@rt-tools/ui-kit-v2/timeline";
22
+ import { RtToggleSwitchComponent } from "@rt-tools/ui-kit-v2/toggle-switch";
23
+ const BEM_BLOCK = "rt-workspace-details";
24
+ var RtWorkspaceDetailsComponent = class RtWorkspaceDetailsComponent {
25
+ #notificationBus;
26
+ #lastEntityId;
27
+ #lastAgentId;
28
+ #lastTransitionSuccess;
29
+ #lastTransitionError;
30
+ #lastTransitionSubmitError;
31
+ #lastAuditError;
32
+ #lastPanelError;
33
+ constructor() {
34
+ this.#notificationBus = inject(NotificationBus);
35
+ this.#lastEntityId = signal(void 0, ...ngDevMode ? [{ debugName: "#lastEntityId" }] : /* istanbul ignore next */ []);
36
+ this.#lastAgentId = signal(void 0, ...ngDevMode ? [{ debugName: "#lastAgentId" }] : /* istanbul ignore next */ []);
37
+ this.#lastTransitionSuccess = null;
38
+ this.#lastTransitionError = null;
39
+ this.#lastTransitionSubmitError = null;
40
+ this.#lastAuditError = null;
41
+ this.#lastPanelError = null;
42
+ this.t = inject(RT_KIT_LABELS);
43
+ this.editingAgent = signal(false, ...ngDevMode ? [{ debugName: "editingAgent" }] : /* istanbul ignore next */ []);
44
+ this.selectedAgentId = signal(null, ...ngDevMode ? [{ debugName: "selectedAgentId" }] : /* istanbul ignore next */ []);
45
+ this.transitionForm = new FormGroup({
46
+ to_key: new FormControl(null, { validators: [Validators.required] }),
47
+ note: new FormControl(null)
48
+ });
49
+ this.hasTabs = computed(() => this.transition() !== null || this.audit() !== null, ...ngDevMode ? [{ debugName: "hasTabs" }] : /* istanbul ignore next */ []);
50
+ this.noTransitions = computed(() => {
51
+ const transition = this.transition();
52
+ return transition !== null && !transition.loading && transition.error === null && transition.options.length === 0;
53
+ }, ...ngDevMode ? [{ debugName: "noTransitions" }] : /* istanbul ignore next */ []);
54
+ this.canSaveReassign = computed(() => {
55
+ const edit = this.agentEdit();
56
+ const selected = this.selectedAgentId();
57
+ return edit !== null && selected !== null && selected !== edit.currentAgentId;
58
+ }, ...ngDevMode ? [{ debugName: "canSaveReassign" }] : /* istanbul ignore next */ []);
59
+ this.title = input(null, ...ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []);
60
+ this.entityId = input(null, ...ngDevMode ? [{ debugName: "entityId" }] : /* istanbul ignore next */ []);
61
+ this.loading = input(false, {
62
+ ...ngDevMode ? { debugName: "loading" } : /* istanbul ignore next */ {},
63
+ transform: booleanAttribute
64
+ });
65
+ this.busy = input(false, {
66
+ ...ngDevMode ? { debugName: "busy" } : /* istanbul ignore next */ {},
67
+ transform: booleanAttribute
68
+ });
69
+ this.rows = input([], ...ngDevMode ? [{ debugName: "rows" }] : /* istanbul ignore next */ []);
70
+ this.agentEdit = input(null, ...ngDevMode ? [{ debugName: "agentEdit" }] : /* istanbul ignore next */ []);
71
+ this.money = input([], ...ngDevMode ? [{ debugName: "money" }] : /* istanbul ignore next */ []);
72
+ this.toggles = input([], ...ngDevMode ? [{ debugName: "toggles" }] : /* istanbul ignore next */ []);
73
+ this.toggleHint = input(null, ...ngDevMode ? [{ debugName: "toggleHint" }] : /* istanbul ignore next */ []);
74
+ this.transition = input(null, ...ngDevMode ? [{ debugName: "transition" }] : /* istanbul ignore next */ []);
75
+ this.audit = input(null, ...ngDevMode ? [{ debugName: "audit" }] : /* istanbul ignore next */ []);
76
+ this.actions = input([], ...ngDevMode ? [{ debugName: "actions" }] : /* istanbul ignore next */ []);
77
+ this.error = input(null, ...ngDevMode ? [{ debugName: "error" }] : /* istanbul ignore next */ []);
78
+ this.toggleChange = output();
79
+ this.agentReassign = output();
80
+ this.transitionSubmit = output();
81
+ this.transitionSuccessClose = output();
82
+ this.transitionErrorClose = output();
83
+ this.auditLoadMore = output();
84
+ this.actionClicked = output();
85
+ effect(() => {
86
+ const id = this.entityId();
87
+ if (id === untracked(() => this.#lastEntityId())) return;
88
+ this.#lastEntityId.set(id);
89
+ this.editingAgent.set(false);
90
+ this.selectedAgentId.set(untracked(() => this.agentEdit())?.currentAgentId ?? null);
91
+ this.transitionForm.reset();
92
+ });
93
+ effect(() => {
94
+ const currentAgentId = this.agentEdit()?.currentAgentId ?? null;
95
+ if (currentAgentId === untracked(() => this.#lastAgentId())) return;
96
+ this.#lastAgentId.set(currentAgentId);
97
+ this.editingAgent.set(false);
98
+ this.selectedAgentId.set(currentAgentId);
99
+ });
100
+ effect(() => {
101
+ if (this.transition()?.success != null) this.transitionForm.reset();
102
+ });
103
+ effect(() => {
104
+ const successText = this.transition()?.success ?? null;
105
+ if (successText !== null && successText !== this.#lastTransitionSuccess) this.transitionSuccessClose.emit();
106
+ this.#lastTransitionSuccess = successText;
107
+ });
108
+ effect(() => {
109
+ const submitError = this.transition()?.submitError ?? null;
110
+ if (submitError !== null && submitError !== this.#lastTransitionSubmitError) {
111
+ this.#notificationBus.error(submitError);
112
+ this.transitionErrorClose.emit();
113
+ }
114
+ this.#lastTransitionSubmitError = submitError;
115
+ });
116
+ effect(() => {
117
+ const transitionError = this.transition()?.error ?? null;
118
+ if (transitionError !== null && transitionError !== this.#lastTransitionError) this.#notificationBus.error(transitionError);
119
+ this.#lastTransitionError = transitionError;
120
+ });
121
+ effect(() => {
122
+ const auditError = this.audit()?.error ?? null;
123
+ if (auditError !== null && auditError !== this.#lastAuditError) this.#notificationBus.error(auditError);
124
+ this.#lastAuditError = auditError;
125
+ });
126
+ effect(() => {
127
+ const panelError = this.error();
128
+ if (panelError !== null && panelError !== this.#lastPanelError) this.#notificationBus.error(panelError);
129
+ this.#lastPanelError = panelError;
130
+ });
131
+ }
132
+ startEditAgent() {
133
+ const edit = this.agentEdit();
134
+ if (edit === null || !edit.canEdit || this.busy()) return;
135
+ this.selectedAgentId.set(edit.currentAgentId);
136
+ this.editingAgent.set(true);
137
+ }
138
+ cancelEditAgent() {
139
+ const edit = this.agentEdit();
140
+ if (edit !== null && edit.loading) return;
141
+ this.selectedAgentId.set(edit?.currentAgentId ?? null);
142
+ this.editingAgent.set(false);
143
+ }
144
+ onReassign() {
145
+ const agentId = this.selectedAgentId();
146
+ if (agentId === null || !this.canSaveReassign() || this.busy()) return;
147
+ this.agentReassign.emit(agentId);
148
+ }
149
+ onSelectedAgentChange(agentId) {
150
+ this.selectedAgentId.set(agentId);
151
+ }
152
+ onToggleChange(toggle, value) {
153
+ if (toggle.value === value) return;
154
+ this.toggleChange.emit({
155
+ id: toggle.id,
156
+ value
157
+ });
158
+ }
159
+ onTransitionSubmit() {
160
+ const transition = this.transition();
161
+ if (transition === null || transition.submitting) return;
162
+ if (!this.transitionForm.valid) {
163
+ this.transitionForm.markAllAsTouched();
164
+ return;
165
+ }
166
+ const value = this.transitionForm.getRawValue();
167
+ this.transitionSubmit.emit({
168
+ stageKey: value.to_key ?? "",
169
+ comment: value.note?.trim() ?? ""
170
+ });
171
+ }
172
+ onAuditLoadMore() {
173
+ this.auditLoadMore.emit();
174
+ }
175
+ onAction(action) {
176
+ if ((action.disabled ?? false) || this.busy()) return;
177
+ this.actionClicked.emit(action.id);
178
+ }
179
+ static {
180
+ this.ɵfac = i0.ɵɵngDeclareFactory({
181
+ minVersion: "12.0.0",
182
+ version: "22.2.2",
183
+ ngImport: i0,
184
+ type: RtWorkspaceDetailsComponent,
185
+ deps: [],
186
+ target: i0.ɵɵFactoryTarget.Component
187
+ });
188
+ }
189
+ static {
190
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
191
+ minVersion: "17.0.0",
192
+ version: "22.2.2",
193
+ type: RtWorkspaceDetailsComponent,
194
+ isStandalone: true,
195
+ selector: "rt-workspace-details",
196
+ inputs: {
197
+ title: {
198
+ classPropertyName: "title",
199
+ publicName: "title",
200
+ isSignal: true,
201
+ isRequired: false,
202
+ transformFunction: null
203
+ },
204
+ entityId: {
205
+ classPropertyName: "entityId",
206
+ publicName: "entityId",
207
+ isSignal: true,
208
+ isRequired: false,
209
+ transformFunction: null
210
+ },
211
+ loading: {
212
+ classPropertyName: "loading",
213
+ publicName: "loading",
214
+ isSignal: true,
215
+ isRequired: false,
216
+ transformFunction: null
217
+ },
218
+ busy: {
219
+ classPropertyName: "busy",
220
+ publicName: "busy",
221
+ isSignal: true,
222
+ isRequired: false,
223
+ transformFunction: null
224
+ },
225
+ rows: {
226
+ classPropertyName: "rows",
227
+ publicName: "rows",
228
+ isSignal: true,
229
+ isRequired: false,
230
+ transformFunction: null
231
+ },
232
+ agentEdit: {
233
+ classPropertyName: "agentEdit",
234
+ publicName: "agentEdit",
235
+ isSignal: true,
236
+ isRequired: false,
237
+ transformFunction: null
238
+ },
239
+ money: {
240
+ classPropertyName: "money",
241
+ publicName: "money",
242
+ isSignal: true,
243
+ isRequired: false,
244
+ transformFunction: null
245
+ },
246
+ toggles: {
247
+ classPropertyName: "toggles",
248
+ publicName: "toggles",
249
+ isSignal: true,
250
+ isRequired: false,
251
+ transformFunction: null
252
+ },
253
+ toggleHint: {
254
+ classPropertyName: "toggleHint",
255
+ publicName: "toggleHint",
256
+ isSignal: true,
257
+ isRequired: false,
258
+ transformFunction: null
259
+ },
260
+ transition: {
261
+ classPropertyName: "transition",
262
+ publicName: "transition",
263
+ isSignal: true,
264
+ isRequired: false,
265
+ transformFunction: null
266
+ },
267
+ audit: {
268
+ classPropertyName: "audit",
269
+ publicName: "audit",
270
+ isSignal: true,
271
+ isRequired: false,
272
+ transformFunction: null
273
+ },
274
+ actions: {
275
+ classPropertyName: "actions",
276
+ publicName: "actions",
277
+ isSignal: true,
278
+ isRequired: false,
279
+ transformFunction: null
280
+ },
281
+ error: {
282
+ classPropertyName: "error",
283
+ publicName: "error",
284
+ isSignal: true,
285
+ isRequired: false,
286
+ transformFunction: null
287
+ }
288
+ },
289
+ outputs: {
290
+ toggleChange: "toggleChange",
291
+ agentReassign: "agentReassign",
292
+ transitionSubmit: "transitionSubmit",
293
+ transitionSuccessClose: "transitionSuccessClose",
294
+ transitionErrorClose: "transitionErrorClose",
295
+ auditLoadMore: "auditLoadMore",
296
+ actionClicked: "actionClicked"
297
+ },
298
+ host: { classAttribute: "rt-workspace-details" },
299
+ ngImport: i0,
300
+ template: "<ng-container rtBlock=\"rt-workspace-details\">\n @if (title(); as headTitle) {\n <header rtElem=\"head\">\n <span rtElem=\"head-title\" qa-dataid=\"workspace-details-title\">{{ headTitle }}</span>\n </header>\n }\n\n @if (hasTabs()) {\n <rt-tabs rtElem=\"tabs\" qa-dataid=\"workspace-details-tabs\">\n <ng-template rtTab=\"details\" [label]=\"t().uiDetails\">\n <ng-container [ngTemplateOutlet]=\"detailsTpl\" />\n </ng-template>\n\n <ng-template rtTab=\"transition\" [label]=\"t().uiStageTransition\" [hidden]=\"transition() === null\">\n @if (transition(); as stageTransition) {\n @if (stageTransition.currentStageLabel; as stageLabel) {\n <rt-detail-list>\n <rt-detail-row qa-dataid=\"workspace-details-current-stage\" [label]=\"t().uiCurrentStage\">\n {{ stageLabel }}\n </rt-detail-row>\n </rt-detail-list>\n }\n\n @if (noTransitions()) {\n <rt-note qa-dataid=\"workspace-details-no-transitions\">{{ stageTransition.noTransitionsText }}</rt-note>\n } @else {\n <form\n rtElem=\"transition-form\"\n qa-dataid=\"workspace-details-transition-form\"\n [formGroup]=\"transitionForm\"\n (ngSubmit)=\"onTransitionSubmit()\">\n <rt-field\n [label]=\"t().uiTargetStage\"\n [loading]=\"stageTransition.loading\"\n [errors]=\"{ required: t().uiTargetStageRequired }\">\n <rt-select\n formControlName=\"to_key\"\n qa-dataid=\"workspace-details-transition-stage\"\n [placeholder]=\"t().uiPickTransition\"\n [options]=\"stageTransition.options\" />\n </rt-field>\n\n <rt-field [label]=\"t().uiCommentOptional\" [hint]=\"t().uiStageNoteHint\" [loading]=\"stageTransition.loading\">\n <rt-textarea formControlName=\"note\" qa-dataid=\"workspace-details-transition-note\" rows=\"3\" />\n </rt-field>\n\n <button\n rtButton\n rtElem=\"transition-submit\"\n qa-dataid=\"workspace-details-transition-submit\"\n type=\"submit\"\n [label]=\"t().uiMoveStage\"\n [attr.aria-label]=\"t().uiMoveStageAria\"\n [loading]=\"stageTransition.submitting\"\n [disabled]=\"stageTransition.loading || busy()\"></button>\n </form>\n }\n }\n </ng-template>\n\n <ng-template rtTab=\"audit\" [label]=\"t().uiHistory\" [hidden]=\"audit() === null\">\n @if (audit(); as auditFeed) {\n <div rtElem=\"audit\" qa-dataid=\"workspace-details-audit\">\n @if (auditFeed.loading) {\n <rt-spinner rtElem=\"audit-loading\" qa-dataid=\"workspace-details-audit-loading\" />\n } @else if (auditFeed.steps.length === 0) {\n <rt-empty-state\n qa-dataid=\"workspace-details-audit-empty\"\n icon=\"history\"\n [description]=\"t().uiAuditEmptyHint\"\n [title]=\"auditFeed.emptyText\" />\n } @else {\n <rt-timeline qa-dataid=\"workspace-details-audit-timeline\" [steps]=\"auditFeed.steps\" />\n }\n\n @if (auditFeed.hasMore) {\n <button\n rtButton\n rtElem=\"audit-more\"\n qa-dataid=\"workspace-details-audit-more\"\n type=\"button\"\n appearance=\"text\"\n [label]=\"t().uiLoadMore\"\n [attr.aria-label]=\"t().uiLoadMore\"\n [loading]=\"auditFeed.loadingMore\"\n [disabled]=\"auditFeed.loadingMore\"\n (click)=\"onAuditLoadMore()\"></button>\n }\n </div>\n }\n </ng-template>\n </rt-tabs>\n } @else {\n <div rtElem=\"body\">\n <ng-container [ngTemplateOutlet]=\"detailsTpl\" />\n </div>\n }\n\n <ng-template #detailsTpl>\n @if (rows().length > 0) {\n <rt-detail-list>\n @for (row of rows(); track row.label) {\n <rt-detail-row qa-dataid=\"workspace-details-row\" [label]=\"row.label\" [loading]=\"loading()\">\n @if (row.agent && agentEdit(); as edit) {\n @if (!editingAgent()) {\n <div rtElem=\"agent-view\">\n <span rtElem=\"agent-name\" qa-dataid=\"workspace-details-agent-name\">{{ edit.currentLabel }}</span>\n <rt-icon-button\n qa-dataid=\"workspace-details-agent-edit\"\n icon=\"pencil\"\n size=\"sm\"\n [ariaLabel]=\"t().uiChangeAgent\"\n [tooltip]=\"edit.canEdit ? edit.editTooltip : edit.cannotEditTooltip\"\n [disabled]=\"!edit.canEdit || busy()\"\n (clicked)=\"startEditAgent()\" />\n </div>\n } @else {\n <div rtElem=\"agent-edit\">\n <rt-select\n qa-dataid=\"workspace-details-agent-select\"\n [placeholder]=\"t().uiPickAgent\"\n [ngModel]=\"selectedAgentId()\"\n [options]=\"edit.options\"\n [clearable]=\"false\"\n (ngModelChange)=\"onSelectedAgentChange($event)\" />\n <rt-icon-button\n qa-dataid=\"workspace-details-agent-save\"\n icon=\"check\"\n size=\"sm\"\n rtConfirmTone=\"primary\"\n [ariaLabel]=\"t().uiSaveNewAgent\"\n [rtConfirmTitle]=\"t().uiReplaceAgentTitle\"\n [rtConfirmLabel]=\"t().uiReplace\"\n [tooltip]=\"canSaveReassign() ? t().uiSaveNewAgent : t().uiPickAnotherAgent\"\n [loading]=\"edit.loading\"\n [disabled]=\"!canSaveReassign() || busy()\"\n [rtConfirm]=\"edit.confirmText\"\n [rtConfirmDisabled]=\"!canSaveReassign() || busy()\"\n (confirmed)=\"onReassign()\" />\n <rt-icon-button\n qa-dataid=\"workspace-details-agent-cancel\"\n icon=\"ico-close\"\n size=\"sm\"\n [ariaLabel]=\"t().uiRevert\"\n [tooltip]=\"t().uiRevert\"\n [disabled]=\"edit.loading\"\n (clicked)=\"cancelEditAgent()\" />\n </div>\n }\n } @else {\n {{ row.value }}\n }\n </rt-detail-row>\n }\n </rt-detail-list>\n }\n\n @if (money().length > 0) {\n <rt-money-list>\n @for (moneyRow of money(); track moneyRow.label) {\n <rt-money-row\n qa-dataid=\"workspace-details-money-row\"\n [label]=\"moneyRow.label\"\n [total]=\"moneyRow.total ?? false\"\n [loading]=\"loading()\">\n {{ moneyRow.amount | number: moneyRow.format ?? '1.0-0' }} ₽\n </rt-money-row>\n }\n </rt-money-list>\n }\n\n @if (toggles().length > 0 || toggleHint()) {\n <rt-aside-section>\n @for (toggle of toggles(); track toggle.id) {\n <div rtElem=\"toggle-row\" qa-dataid=\"workspace-details-toggle-row\" [attr.data-id]=\"toggle.id\">\n <span rtElem=\"toggle-label\" qa-dataid=\"workspace-details-toggle-label\">{{ toggle.label }}</span>\n <rt-toggle-switch\n qa-dataid=\"workspace-details-toggle\"\n [inputId]=\"toggle.id\"\n [ariaLabel]=\"toggle.label\"\n [ngModel]=\"toggle.value\"\n [disabled]=\"(toggle.disabled ?? false) || busy()\"\n (ngModelChange)=\"onToggleChange(toggle, $event)\" />\n </div>\n }\n @if (toggleHint(); as hint) {\n <p rtElem=\"toggle-hint\" qa-dataid=\"workspace-details-toggle-hint\">{{ hint }}</p>\n }\n </rt-aside-section>\n }\n </ng-template>\n\n <footer rtElem=\"footer\">\n @for (panelAction of actions(); track panelAction.id) {\n @if (panelAction.confirm; as confirm) {\n <button\n rtButton\n rtElem=\"footer-action\"\n qa-dataid=\"workspace-details-action\"\n type=\"button\"\n [attr.data-id]=\"panelAction.id\"\n [theme]=\"panelAction.theme ?? 'primary'\"\n [appearance]=\"panelAction.appearance ?? 'filled'\"\n [label]=\"panelAction.label\"\n [icon]=\"panelAction.icon\"\n [attr.aria-label]=\"panelAction.label\"\n [rtConfirmTitle]=\"confirm.title\"\n [rtConfirmLabel]=\"confirm.label\"\n [rtConfirmTone]=\"confirm.tone\"\n [loading]=\"panelAction.loading ?? false\"\n [disabled]=\"(panelAction.disabled ?? false) || busy()\"\n [rtConfirm]=\"confirm.text\"\n [rtConfirmDisabled]=\"(panelAction.disabled ?? false) || busy()\"\n (confirmed)=\"onAction(panelAction)\"></button>\n } @else {\n <button\n rtButton\n rtElem=\"footer-action\"\n qa-dataid=\"workspace-details-action\"\n type=\"button\"\n [attr.data-id]=\"panelAction.id\"\n [theme]=\"panelAction.theme ?? 'primary'\"\n [appearance]=\"panelAction.appearance ?? 'filled'\"\n [label]=\"panelAction.label\"\n [icon]=\"panelAction.icon\"\n [attr.aria-label]=\"panelAction.label\"\n [loading]=\"panelAction.loading ?? false\"\n [disabled]=\"(panelAction.disabled ?? false) || busy()\"\n (click)=\"onAction(panelAction)\"></button>\n }\n }\n </footer>\n</ng-container>\n",
301
+ styles: ["@layer rt-kit.components{.rt-workspace-details{--rt-workspace-details-border-width: var(--rt-border-width-thin);display:flex;flex-direction:column;block-size:100%;min-block-size:0}.rt-workspace-details__head{display:flex;flex:0 0 auto;align-items:center;block-size:56px;border-block-end:var(--rt-workspace-details-border-width) solid var(--rt-color-border-strong);padding-inline:var(--rt-space-lg)}.rt-workspace-details__head-title{color:var(--rt-color-text-primary);font-size:var(--rt-text-md);font-weight:var(--rt-font-weight-semibold)}.rt-workspace-details__tabs{flex:1 1 auto;min-block-size:0}.rt-workspace-details__tabs .rt-tabs__header{align-items:flex-end;block-size:56px;border-block-end:var(--rt-workspace-details-border-width) solid var(--rt-color-border-strong);padding-inline:var(--rt-space-lg)}.rt-workspace-details__tabs .rt-tabs__tab-list{border-block-end:0}.rt-workspace-details__tabs .rt-tabs__content{padding-block-end:var(--rt-space-5);padding-inline:var(--rt-space-lg)}.rt-workspace-details__body{display:flex;flex:1 1 auto;flex-direction:column;padding:var(--rt-space-5) var(--rt-space-lg);gap:var(--rt-space-md);min-block-size:0;overflow-y:auto}.rt-workspace-details__agent-view,.rt-workspace-details__agent-edit{display:flex;align-items:center;gap:var(--rt-space-sm)}.rt-workspace-details__agent-name{overflow:hidden;min-inline-size:0;text-overflow:ellipsis;white-space:nowrap}.rt-workspace-details__toggle-row{display:flex;align-items:center;justify-content:space-between;gap:var(--rt-space-md)}.rt-workspace-details__toggle-label{color:var(--rt-color-text-muted);font-size:var(--rt-text-sm);font-weight:var(--rt-font-weight-medium)}.rt-workspace-details__toggle-hint{margin:0;color:var(--rt-color-text-muted);font-size:var(--rt-text-sm)}.rt-workspace-details__transition-form{display:flex;flex-direction:column;gap:var(--rt-space-md)}.rt-workspace-details__transition-submit{align-self:flex-start}.rt-workspace-details__audit{display:flex;flex-direction:column;gap:var(--rt-space-md)}.rt-workspace-details__audit-loading,.rt-workspace-details__audit-more{align-self:center}.rt-workspace-details__footer{display:flex;flex:0 0 auto;flex-direction:column;padding:var(--rt-space-md) var(--rt-space-lg);border-block-start:var(--rt-workspace-details-border-width) solid var(--rt-color-border-strong);gap:var(--rt-space-sm)}.rt-workspace-details__footer:empty{display:none}.rt-workspace-details__footer-action{justify-content:center;inline-size:100%}.rt-workspace-details__error{margin-inline:var(--rt-space-lg)}}\n"],
302
+ dependencies: [
303
+ {
304
+ kind: "ngmodule",
305
+ type: FormsModule
306
+ },
307
+ {
308
+ kind: "directive",
309
+ type: i1.ɵNgNoValidate,
310
+ selector: "form:not([ngNoForm]):not([ngNativeValidate])"
311
+ },
312
+ {
313
+ kind: "directive",
314
+ type: i1.NgControlStatus,
315
+ selector: "[formControlName],[ngModel],[formControl]"
316
+ },
317
+ {
318
+ kind: "directive",
319
+ type: i1.NgControlStatusGroup,
320
+ selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]"
321
+ },
322
+ {
323
+ kind: "directive",
324
+ type: i1.NgModel,
325
+ selector: "[ngModel]:not([formControlName]):not([formControl])",
326
+ inputs: [
327
+ "name",
328
+ "disabled",
329
+ "ngModel",
330
+ "ngModelOptions"
331
+ ],
332
+ outputs: ["ngModelChange"],
333
+ exportAs: ["ngModel"]
334
+ },
335
+ {
336
+ kind: "directive",
337
+ type: NgTemplateOutlet,
338
+ selector: "[ngTemplateOutlet]",
339
+ inputs: [
340
+ "ngTemplateOutletContext",
341
+ "ngTemplateOutlet",
342
+ "ngTemplateOutletInjector"
343
+ ]
344
+ },
345
+ {
346
+ kind: "ngmodule",
347
+ type: ReactiveFormsModule
348
+ },
349
+ {
350
+ kind: "directive",
351
+ type: i1.FormGroupDirective,
352
+ selector: "[formGroup]",
353
+ inputs: ["formGroup"],
354
+ outputs: ["ngSubmit"],
355
+ exportAs: ["ngForm"]
356
+ },
357
+ {
358
+ kind: "directive",
359
+ type: i1.FormControlName,
360
+ selector: "[formControlName]",
361
+ inputs: [
362
+ "formControlName",
363
+ "disabled",
364
+ "ngModel"
365
+ ],
366
+ outputs: ["ngModelChange"]
367
+ },
368
+ {
369
+ kind: "component",
370
+ type: RtAsideSectionComponent,
371
+ selector: "rt-aside-section",
372
+ inputs: ["heading"]
373
+ },
374
+ {
375
+ kind: "directive",
376
+ type: RtButtonDirective,
377
+ selector: "button[rtButton], a[rtButton]",
378
+ inputs: [
379
+ "label",
380
+ "icon",
381
+ "iconPos",
382
+ "theme",
383
+ "appearance",
384
+ "size",
385
+ "loading",
386
+ "loadingIcon",
387
+ "loadingLabel",
388
+ "pressed"
389
+ ]
390
+ },
391
+ {
392
+ kind: "directive",
393
+ type: RtConfirmDirective,
394
+ selector: "[rtConfirm]",
395
+ inputs: [
396
+ "rtConfirm",
397
+ "rtConfirmTitle",
398
+ "rtConfirmLabel",
399
+ "rtConfirmCancelLabel",
400
+ "rtConfirmTone",
401
+ "rtConfirmDisabled"
402
+ ],
403
+ outputs: ["confirmed"],
404
+ exportAs: ["rtConfirm"]
405
+ },
406
+ {
407
+ kind: "component",
408
+ type: RtDetailListComponent,
409
+ selector: "rt-detail-list"
410
+ },
411
+ {
412
+ kind: "component",
413
+ type: RtDetailRowComponent,
414
+ selector: "rt-detail-row",
415
+ inputs: ["label", "loading"]
416
+ },
417
+ {
418
+ kind: "component",
419
+ type: RtEmptyStateComponent,
420
+ selector: "rt-empty-state",
421
+ inputs: [
422
+ "icon",
423
+ "glyph",
424
+ "title",
425
+ "description",
426
+ "framed"
427
+ ]
428
+ },
429
+ {
430
+ kind: "component",
431
+ type: RtFieldComponent,
432
+ selector: "rt-field",
433
+ inputs: [
434
+ "label",
435
+ "hint",
436
+ "help",
437
+ "readonly",
438
+ "loading",
439
+ "required",
440
+ "hideRequiredMark",
441
+ "reserveHintSpace",
442
+ "errors"
443
+ ]
444
+ },
445
+ {
446
+ kind: "component",
447
+ type: RtIconButtonComponent,
448
+ selector: "rt-icon-button",
449
+ inputs: [
450
+ "icon",
451
+ "glyph",
452
+ "ariaLabel",
453
+ "variant",
454
+ "iconColor",
455
+ "iconFill",
456
+ "size",
457
+ "iconSize",
458
+ "type",
459
+ "tooltip",
460
+ "tooltipHideOnClick",
461
+ "tabIndex",
462
+ "loading",
463
+ "disabled",
464
+ "active",
465
+ "expanded",
466
+ "indicator"
467
+ ],
468
+ outputs: ["clicked"]
469
+ },
470
+ {
471
+ kind: "component",
472
+ type: RtMoneyListComponent,
473
+ selector: "rt-money-list"
474
+ },
475
+ {
476
+ kind: "component",
477
+ type: RtMoneyRowComponent,
478
+ selector: "rt-money-row",
479
+ inputs: [
480
+ "label",
481
+ "total",
482
+ "loading"
483
+ ]
484
+ },
485
+ {
486
+ kind: "component",
487
+ type: RtNoteComponent,
488
+ selector: "rt-note"
489
+ },
490
+ {
491
+ kind: "component",
492
+ type: RtSelectComponent,
493
+ selector: "rt-select",
494
+ inputs: [
495
+ "appearance",
496
+ "options",
497
+ "placeholder",
498
+ "iconLeft",
499
+ "filter",
500
+ "filterPlaceholder",
501
+ "panelWidth",
502
+ "panelMaxHeight"
503
+ ],
504
+ outputs: ["selectionChange"]
505
+ },
506
+ {
507
+ kind: "component",
508
+ type: RtSpinnerComponent,
509
+ selector: "rt-spinner",
510
+ inputs: [
511
+ "diameter",
512
+ "color",
513
+ "appearance",
514
+ "overlay",
515
+ "backdrop",
516
+ "plate"
517
+ ]
518
+ },
519
+ {
520
+ kind: "directive",
521
+ type: RtTabDirective,
522
+ selector: "[rtTab]",
523
+ inputs: [
524
+ "rtTab",
525
+ "label",
526
+ "titleTemplate",
527
+ "icon",
528
+ "iconColor",
529
+ "badge",
530
+ "badgeTitle",
531
+ "badgeAriaLabel",
532
+ "disabled",
533
+ "hidden",
534
+ "invalid",
535
+ "invalidMessage"
536
+ ]
537
+ },
538
+ {
539
+ kind: "component",
540
+ type: RtTabsComponent,
541
+ selector: "rt-tabs",
542
+ inputs: [
543
+ "activeId",
544
+ "direction",
545
+ "stretch",
546
+ "contentScrollable"
547
+ ],
548
+ outputs: ["activeIdChange"]
549
+ },
550
+ {
551
+ kind: "component",
552
+ type: RtTextareaComponent,
553
+ selector: "rt-textarea",
554
+ inputs: [
555
+ "placeholder",
556
+ "readonly",
557
+ "rows",
558
+ "resize"
559
+ ]
560
+ },
561
+ {
562
+ kind: "component",
563
+ type: RtTimelineComponent,
564
+ selector: "rt-timeline",
565
+ inputs: ["steps"]
566
+ },
567
+ {
568
+ kind: "component",
569
+ type: RtToggleSwitchComponent,
570
+ selector: "rt-toggle-switch",
571
+ inputs: [
572
+ "inputId",
573
+ "ariaLabel",
574
+ "label",
575
+ "size",
576
+ "iconOff",
577
+ "iconOn",
578
+ "disabled"
579
+ ]
580
+ },
581
+ {
582
+ kind: "directive",
583
+ type: BlockDirective,
584
+ selector: "[rtBlock]",
585
+ inputs: ["rtMod"]
586
+ },
587
+ {
588
+ kind: "directive",
589
+ type: ElemDirective,
590
+ selector: "[rtElem]",
591
+ inputs: ["rtMod"]
592
+ },
593
+ {
594
+ kind: "pipe",
595
+ type: DecimalPipe,
596
+ name: "number"
597
+ }
598
+ ],
599
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
600
+ encapsulation: i0.ViewEncapsulation.None
601
+ });
602
+ }
603
+ };
604
+ i0.ɵɵngDeclareClassMetadata({
605
+ minVersion: "12.0.0",
606
+ version: "22.2.2",
607
+ ngImport: i0,
608
+ type: RtWorkspaceDetailsComponent,
609
+ decorators: [{
610
+ type: Component,
611
+ args: [{
612
+ selector: "rt-workspace-details",
613
+ changeDetection: ChangeDetectionStrategy.OnPush,
614
+ encapsulation: ViewEncapsulation.None,
615
+ imports: [
616
+ DecimalPipe,
617
+ FormsModule,
618
+ NgTemplateOutlet,
619
+ ReactiveFormsModule,
620
+ RtAsideSectionComponent,
621
+ RtButtonDirective,
622
+ RtConfirmDirective,
623
+ RtDetailListComponent,
624
+ RtDetailRowComponent,
625
+ RtEmptyStateComponent,
626
+ RtFieldComponent,
627
+ RtIconButtonComponent,
628
+ RtMoneyListComponent,
629
+ RtMoneyRowComponent,
630
+ RtNoteComponent,
631
+ RtSelectComponent,
632
+ RtSpinnerComponent,
633
+ RtTabDirective,
634
+ RtTabsComponent,
635
+ RtTextareaComponent,
636
+ RtTimelineComponent,
637
+ RtToggleSwitchComponent,
638
+ BlockDirective,
639
+ ElemDirective
640
+ ],
641
+ host: { class: BEM_BLOCK },
642
+ template: "<ng-container rtBlock=\"rt-workspace-details\">\n @if (title(); as headTitle) {\n <header rtElem=\"head\">\n <span rtElem=\"head-title\" qa-dataid=\"workspace-details-title\">{{ headTitle }}</span>\n </header>\n }\n\n @if (hasTabs()) {\n <rt-tabs rtElem=\"tabs\" qa-dataid=\"workspace-details-tabs\">\n <ng-template rtTab=\"details\" [label]=\"t().uiDetails\">\n <ng-container [ngTemplateOutlet]=\"detailsTpl\" />\n </ng-template>\n\n <ng-template rtTab=\"transition\" [label]=\"t().uiStageTransition\" [hidden]=\"transition() === null\">\n @if (transition(); as stageTransition) {\n @if (stageTransition.currentStageLabel; as stageLabel) {\n <rt-detail-list>\n <rt-detail-row qa-dataid=\"workspace-details-current-stage\" [label]=\"t().uiCurrentStage\">\n {{ stageLabel }}\n </rt-detail-row>\n </rt-detail-list>\n }\n\n @if (noTransitions()) {\n <rt-note qa-dataid=\"workspace-details-no-transitions\">{{ stageTransition.noTransitionsText }}</rt-note>\n } @else {\n <form\n rtElem=\"transition-form\"\n qa-dataid=\"workspace-details-transition-form\"\n [formGroup]=\"transitionForm\"\n (ngSubmit)=\"onTransitionSubmit()\">\n <rt-field\n [label]=\"t().uiTargetStage\"\n [loading]=\"stageTransition.loading\"\n [errors]=\"{ required: t().uiTargetStageRequired }\">\n <rt-select\n formControlName=\"to_key\"\n qa-dataid=\"workspace-details-transition-stage\"\n [placeholder]=\"t().uiPickTransition\"\n [options]=\"stageTransition.options\" />\n </rt-field>\n\n <rt-field [label]=\"t().uiCommentOptional\" [hint]=\"t().uiStageNoteHint\" [loading]=\"stageTransition.loading\">\n <rt-textarea formControlName=\"note\" qa-dataid=\"workspace-details-transition-note\" rows=\"3\" />\n </rt-field>\n\n <button\n rtButton\n rtElem=\"transition-submit\"\n qa-dataid=\"workspace-details-transition-submit\"\n type=\"submit\"\n [label]=\"t().uiMoveStage\"\n [attr.aria-label]=\"t().uiMoveStageAria\"\n [loading]=\"stageTransition.submitting\"\n [disabled]=\"stageTransition.loading || busy()\"></button>\n </form>\n }\n }\n </ng-template>\n\n <ng-template rtTab=\"audit\" [label]=\"t().uiHistory\" [hidden]=\"audit() === null\">\n @if (audit(); as auditFeed) {\n <div rtElem=\"audit\" qa-dataid=\"workspace-details-audit\">\n @if (auditFeed.loading) {\n <rt-spinner rtElem=\"audit-loading\" qa-dataid=\"workspace-details-audit-loading\" />\n } @else if (auditFeed.steps.length === 0) {\n <rt-empty-state\n qa-dataid=\"workspace-details-audit-empty\"\n icon=\"history\"\n [description]=\"t().uiAuditEmptyHint\"\n [title]=\"auditFeed.emptyText\" />\n } @else {\n <rt-timeline qa-dataid=\"workspace-details-audit-timeline\" [steps]=\"auditFeed.steps\" />\n }\n\n @if (auditFeed.hasMore) {\n <button\n rtButton\n rtElem=\"audit-more\"\n qa-dataid=\"workspace-details-audit-more\"\n type=\"button\"\n appearance=\"text\"\n [label]=\"t().uiLoadMore\"\n [attr.aria-label]=\"t().uiLoadMore\"\n [loading]=\"auditFeed.loadingMore\"\n [disabled]=\"auditFeed.loadingMore\"\n (click)=\"onAuditLoadMore()\"></button>\n }\n </div>\n }\n </ng-template>\n </rt-tabs>\n } @else {\n <div rtElem=\"body\">\n <ng-container [ngTemplateOutlet]=\"detailsTpl\" />\n </div>\n }\n\n <ng-template #detailsTpl>\n @if (rows().length > 0) {\n <rt-detail-list>\n @for (row of rows(); track row.label) {\n <rt-detail-row qa-dataid=\"workspace-details-row\" [label]=\"row.label\" [loading]=\"loading()\">\n @if (row.agent && agentEdit(); as edit) {\n @if (!editingAgent()) {\n <div rtElem=\"agent-view\">\n <span rtElem=\"agent-name\" qa-dataid=\"workspace-details-agent-name\">{{ edit.currentLabel }}</span>\n <rt-icon-button\n qa-dataid=\"workspace-details-agent-edit\"\n icon=\"pencil\"\n size=\"sm\"\n [ariaLabel]=\"t().uiChangeAgent\"\n [tooltip]=\"edit.canEdit ? edit.editTooltip : edit.cannotEditTooltip\"\n [disabled]=\"!edit.canEdit || busy()\"\n (clicked)=\"startEditAgent()\" />\n </div>\n } @else {\n <div rtElem=\"agent-edit\">\n <rt-select\n qa-dataid=\"workspace-details-agent-select\"\n [placeholder]=\"t().uiPickAgent\"\n [ngModel]=\"selectedAgentId()\"\n [options]=\"edit.options\"\n [clearable]=\"false\"\n (ngModelChange)=\"onSelectedAgentChange($event)\" />\n <rt-icon-button\n qa-dataid=\"workspace-details-agent-save\"\n icon=\"check\"\n size=\"sm\"\n rtConfirmTone=\"primary\"\n [ariaLabel]=\"t().uiSaveNewAgent\"\n [rtConfirmTitle]=\"t().uiReplaceAgentTitle\"\n [rtConfirmLabel]=\"t().uiReplace\"\n [tooltip]=\"canSaveReassign() ? t().uiSaveNewAgent : t().uiPickAnotherAgent\"\n [loading]=\"edit.loading\"\n [disabled]=\"!canSaveReassign() || busy()\"\n [rtConfirm]=\"edit.confirmText\"\n [rtConfirmDisabled]=\"!canSaveReassign() || busy()\"\n (confirmed)=\"onReassign()\" />\n <rt-icon-button\n qa-dataid=\"workspace-details-agent-cancel\"\n icon=\"ico-close\"\n size=\"sm\"\n [ariaLabel]=\"t().uiRevert\"\n [tooltip]=\"t().uiRevert\"\n [disabled]=\"edit.loading\"\n (clicked)=\"cancelEditAgent()\" />\n </div>\n }\n } @else {\n {{ row.value }}\n }\n </rt-detail-row>\n }\n </rt-detail-list>\n }\n\n @if (money().length > 0) {\n <rt-money-list>\n @for (moneyRow of money(); track moneyRow.label) {\n <rt-money-row\n qa-dataid=\"workspace-details-money-row\"\n [label]=\"moneyRow.label\"\n [total]=\"moneyRow.total ?? false\"\n [loading]=\"loading()\">\n {{ moneyRow.amount | number: moneyRow.format ?? '1.0-0' }} ₽\n </rt-money-row>\n }\n </rt-money-list>\n }\n\n @if (toggles().length > 0 || toggleHint()) {\n <rt-aside-section>\n @for (toggle of toggles(); track toggle.id) {\n <div rtElem=\"toggle-row\" qa-dataid=\"workspace-details-toggle-row\" [attr.data-id]=\"toggle.id\">\n <span rtElem=\"toggle-label\" qa-dataid=\"workspace-details-toggle-label\">{{ toggle.label }}</span>\n <rt-toggle-switch\n qa-dataid=\"workspace-details-toggle\"\n [inputId]=\"toggle.id\"\n [ariaLabel]=\"toggle.label\"\n [ngModel]=\"toggle.value\"\n [disabled]=\"(toggle.disabled ?? false) || busy()\"\n (ngModelChange)=\"onToggleChange(toggle, $event)\" />\n </div>\n }\n @if (toggleHint(); as hint) {\n <p rtElem=\"toggle-hint\" qa-dataid=\"workspace-details-toggle-hint\">{{ hint }}</p>\n }\n </rt-aside-section>\n }\n </ng-template>\n\n <footer rtElem=\"footer\">\n @for (panelAction of actions(); track panelAction.id) {\n @if (panelAction.confirm; as confirm) {\n <button\n rtButton\n rtElem=\"footer-action\"\n qa-dataid=\"workspace-details-action\"\n type=\"button\"\n [attr.data-id]=\"panelAction.id\"\n [theme]=\"panelAction.theme ?? 'primary'\"\n [appearance]=\"panelAction.appearance ?? 'filled'\"\n [label]=\"panelAction.label\"\n [icon]=\"panelAction.icon\"\n [attr.aria-label]=\"panelAction.label\"\n [rtConfirmTitle]=\"confirm.title\"\n [rtConfirmLabel]=\"confirm.label\"\n [rtConfirmTone]=\"confirm.tone\"\n [loading]=\"panelAction.loading ?? false\"\n [disabled]=\"(panelAction.disabled ?? false) || busy()\"\n [rtConfirm]=\"confirm.text\"\n [rtConfirmDisabled]=\"(panelAction.disabled ?? false) || busy()\"\n (confirmed)=\"onAction(panelAction)\"></button>\n } @else {\n <button\n rtButton\n rtElem=\"footer-action\"\n qa-dataid=\"workspace-details-action\"\n type=\"button\"\n [attr.data-id]=\"panelAction.id\"\n [theme]=\"panelAction.theme ?? 'primary'\"\n [appearance]=\"panelAction.appearance ?? 'filled'\"\n [label]=\"panelAction.label\"\n [icon]=\"panelAction.icon\"\n [attr.aria-label]=\"panelAction.label\"\n [loading]=\"panelAction.loading ?? false\"\n [disabled]=\"(panelAction.disabled ?? false) || busy()\"\n (click)=\"onAction(panelAction)\"></button>\n }\n }\n </footer>\n</ng-container>\n",
643
+ styles: ["@layer rt-kit.components{.rt-workspace-details{--rt-workspace-details-border-width: var(--rt-border-width-thin);display:flex;flex-direction:column;block-size:100%;min-block-size:0}.rt-workspace-details__head{display:flex;flex:0 0 auto;align-items:center;block-size:56px;border-block-end:var(--rt-workspace-details-border-width) solid var(--rt-color-border-strong);padding-inline:var(--rt-space-lg)}.rt-workspace-details__head-title{color:var(--rt-color-text-primary);font-size:var(--rt-text-md);font-weight:var(--rt-font-weight-semibold)}.rt-workspace-details__tabs{flex:1 1 auto;min-block-size:0}.rt-workspace-details__tabs .rt-tabs__header{align-items:flex-end;block-size:56px;border-block-end:var(--rt-workspace-details-border-width) solid var(--rt-color-border-strong);padding-inline:var(--rt-space-lg)}.rt-workspace-details__tabs .rt-tabs__tab-list{border-block-end:0}.rt-workspace-details__tabs .rt-tabs__content{padding-block-end:var(--rt-space-5);padding-inline:var(--rt-space-lg)}.rt-workspace-details__body{display:flex;flex:1 1 auto;flex-direction:column;padding:var(--rt-space-5) var(--rt-space-lg);gap:var(--rt-space-md);min-block-size:0;overflow-y:auto}.rt-workspace-details__agent-view,.rt-workspace-details__agent-edit{display:flex;align-items:center;gap:var(--rt-space-sm)}.rt-workspace-details__agent-name{overflow:hidden;min-inline-size:0;text-overflow:ellipsis;white-space:nowrap}.rt-workspace-details__toggle-row{display:flex;align-items:center;justify-content:space-between;gap:var(--rt-space-md)}.rt-workspace-details__toggle-label{color:var(--rt-color-text-muted);font-size:var(--rt-text-sm);font-weight:var(--rt-font-weight-medium)}.rt-workspace-details__toggle-hint{margin:0;color:var(--rt-color-text-muted);font-size:var(--rt-text-sm)}.rt-workspace-details__transition-form{display:flex;flex-direction:column;gap:var(--rt-space-md)}.rt-workspace-details__transition-submit{align-self:flex-start}.rt-workspace-details__audit{display:flex;flex-direction:column;gap:var(--rt-space-md)}.rt-workspace-details__audit-loading,.rt-workspace-details__audit-more{align-self:center}.rt-workspace-details__footer{display:flex;flex:0 0 auto;flex-direction:column;padding:var(--rt-space-md) var(--rt-space-lg);border-block-start:var(--rt-workspace-details-border-width) solid var(--rt-color-border-strong);gap:var(--rt-space-sm)}.rt-workspace-details__footer:empty{display:none}.rt-workspace-details__footer-action{justify-content:center;inline-size:100%}.rt-workspace-details__error{margin-inline:var(--rt-space-lg)}}\n"]
644
+ }]
645
+ }],
646
+ ctorParameters: () => [],
647
+ propDecorators: {
648
+ title: [{
649
+ type: i0.Input,
650
+ args: [{
651
+ isSignal: true,
652
+ alias: "title",
653
+ required: false
654
+ }]
655
+ }],
656
+ entityId: [{
657
+ type: i0.Input,
658
+ args: [{
659
+ isSignal: true,
660
+ alias: "entityId",
661
+ required: false
662
+ }]
663
+ }],
664
+ loading: [{
665
+ type: i0.Input,
666
+ args: [{
667
+ isSignal: true,
668
+ alias: "loading",
669
+ required: false
670
+ }]
671
+ }],
672
+ busy: [{
673
+ type: i0.Input,
674
+ args: [{
675
+ isSignal: true,
676
+ alias: "busy",
677
+ required: false
678
+ }]
679
+ }],
680
+ rows: [{
681
+ type: i0.Input,
682
+ args: [{
683
+ isSignal: true,
684
+ alias: "rows",
685
+ required: false
686
+ }]
687
+ }],
688
+ agentEdit: [{
689
+ type: i0.Input,
690
+ args: [{
691
+ isSignal: true,
692
+ alias: "agentEdit",
693
+ required: false
694
+ }]
695
+ }],
696
+ money: [{
697
+ type: i0.Input,
698
+ args: [{
699
+ isSignal: true,
700
+ alias: "money",
701
+ required: false
702
+ }]
703
+ }],
704
+ toggles: [{
705
+ type: i0.Input,
706
+ args: [{
707
+ isSignal: true,
708
+ alias: "toggles",
709
+ required: false
710
+ }]
711
+ }],
712
+ toggleHint: [{
713
+ type: i0.Input,
714
+ args: [{
715
+ isSignal: true,
716
+ alias: "toggleHint",
717
+ required: false
718
+ }]
719
+ }],
720
+ transition: [{
721
+ type: i0.Input,
722
+ args: [{
723
+ isSignal: true,
724
+ alias: "transition",
725
+ required: false
726
+ }]
727
+ }],
728
+ audit: [{
729
+ type: i0.Input,
730
+ args: [{
731
+ isSignal: true,
732
+ alias: "audit",
733
+ required: false
734
+ }]
735
+ }],
736
+ actions: [{
737
+ type: i0.Input,
738
+ args: [{
739
+ isSignal: true,
740
+ alias: "actions",
741
+ required: false
742
+ }]
743
+ }],
744
+ error: [{
745
+ type: i0.Input,
746
+ args: [{
747
+ isSignal: true,
748
+ alias: "error",
749
+ required: false
750
+ }]
751
+ }],
752
+ toggleChange: [{
753
+ type: i0.Output,
754
+ args: ["toggleChange"]
755
+ }],
756
+ agentReassign: [{
757
+ type: i0.Output,
758
+ args: ["agentReassign"]
759
+ }],
760
+ transitionSubmit: [{
761
+ type: i0.Output,
762
+ args: ["transitionSubmit"]
763
+ }],
764
+ transitionSuccessClose: [{
765
+ type: i0.Output,
766
+ args: ["transitionSuccessClose"]
767
+ }],
768
+ transitionErrorClose: [{
769
+ type: i0.Output,
770
+ args: ["transitionErrorClose"]
771
+ }],
772
+ auditLoadMore: [{
773
+ type: i0.Output,
774
+ args: ["auditLoadMore"]
775
+ }],
776
+ actionClicked: [{
777
+ type: i0.Output,
778
+ args: ["actionClicked"]
779
+ }]
780
+ }
781
+ });
262
782
  export { RtWorkspaceDetailsComponent };
263
- //# sourceMappingURL=rt-tools-ui-kit-v2-workspace-details.mjs.map
783
+
784
+ //# sourceMappingURL=rt-tools-ui-kit-v2-workspace-details.mjs.map