@design-system-rte/angular 1.5.0 → 1.6.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 (541) hide show
  1. package/esm2022/lib/components/accordion/accordion.component.mjs +94 -0
  2. package/esm2022/lib/components/avatar/assets/status/status.component.mjs +15 -0
  3. package/esm2022/lib/components/avatar/avatar.component.mjs +52 -0
  4. package/esm2022/lib/components/banner/banner.component.mjs +1 -1
  5. package/esm2022/lib/components/button/button.component.mjs +9 -3
  6. package/esm2022/lib/components/card/card.component.mjs +5 -6
  7. package/esm2022/lib/components/checkbox/checkbox.component.mjs +4 -3
  8. package/esm2022/lib/components/checkbox-group/checkbox-group.component.mjs +1 -1
  9. package/esm2022/lib/components/drawer/drawer-trigger/drawer-trigger.directive.mjs +33 -0
  10. package/esm2022/lib/components/drawer/drawer.component.mjs +160 -0
  11. package/esm2022/lib/components/drawer/drawer.directive.mjs +302 -0
  12. package/esm2022/lib/components/drawer/drawer.module.mjs +17 -0
  13. package/esm2022/lib/components/dropdown/dropdown-item/dropdown-item.component.mjs +1 -1
  14. package/esm2022/lib/components/icon/icon-map.mjs +119 -112
  15. package/esm2022/lib/components/icon/icon.component.mjs +9 -10
  16. package/esm2022/lib/components/popover/popover.component.mjs +1 -1
  17. package/esm2022/lib/components/toast/toast.component.mjs +1 -1
  18. package/esm2022/lib/components/treeview/index.mjs +4 -0
  19. package/esm2022/lib/components/treeview/treeview-check.service.mjs +24 -0
  20. package/esm2022/lib/components/treeview/treeview-item/treeview-item-border/treeview-item-border.component.mjs +20 -0
  21. package/esm2022/lib/components/treeview/treeview-item/treeview-item.component.mjs +227 -0
  22. package/esm2022/lib/components/treeview/treeview-keyboard.service.mjs +80 -0
  23. package/esm2022/lib/components/treeview/treeview-selection.service.mjs +23 -0
  24. package/esm2022/lib/components/treeview/treeview.component.mjs +89 -0
  25. package/esm2022/public-api.mjs +8 -1
  26. package/fesm2022/design-system-rte-angular.mjs +1338 -261
  27. package/fesm2022/design-system-rte-angular.mjs.map +1 -1
  28. package/lib/assets/icons/add.svg +3 -0
  29. package/lib/assets/icons/add_circle_filled.svg +3 -0
  30. package/lib/assets/icons/add_circle_outlined.svg +3 -0
  31. package/lib/assets/icons/admin_panel_settings_filled.svg +3 -0
  32. package/lib/assets/icons/admin_panel_settings_outlined.svg +3 -0
  33. package/lib/assets/icons/alt_route.svg +3 -0
  34. package/lib/assets/icons/analytics_filled.svg +3 -0
  35. package/lib/assets/icons/analytics_outlined.svg +3 -0
  36. package/lib/assets/icons/apps.svg +3 -0
  37. package/lib/assets/icons/archive_filled.svg +3 -0
  38. package/lib/assets/icons/archive_outlined.svg +3 -0
  39. package/lib/assets/icons/arrow_alt_down.svg +3 -0
  40. package/lib/assets/icons/arrow_alt_down_left.svg +3 -0
  41. package/lib/assets/icons/arrow_alt_down_right.svg +3 -0
  42. package/lib/assets/icons/arrow_alt_left.svg +3 -0
  43. package/lib/assets/icons/arrow_alt_right.svg +3 -0
  44. package/lib/assets/icons/arrow_alt_up.svg +3 -0
  45. package/lib/assets/icons/arrow_alt_up_left.svg +3 -0
  46. package/lib/assets/icons/arrow_alt_up_right.svg +3 -0
  47. package/lib/assets/icons/arrow_angle_down_left.svg +3 -0
  48. package/lib/assets/icons/arrow_angle_down_right.svg +3 -0
  49. package/lib/assets/icons/arrow_angle_up_left.svg +3 -0
  50. package/lib/assets/icons/arrow_angle_up_right.svg +3 -0
  51. package/lib/assets/icons/arrow_chevron_down.svg +3 -0
  52. package/lib/assets/icons/arrow_chevron_left.svg +3 -0
  53. package/lib/assets/icons/arrow_chevron_right.svg +3 -0
  54. package/lib/assets/icons/arrow_chevron_up.svg +3 -0
  55. package/lib/assets/icons/arrow_circle_chevron_down_filled.svg +3 -0
  56. package/lib/assets/icons/arrow_circle_chevron_down_outlined.svg +3 -0
  57. package/lib/assets/icons/arrow_circle_chevron_left_filled.svg +3 -0
  58. package/lib/assets/icons/arrow_circle_chevron_left_outlined.svg +3 -0
  59. package/lib/assets/icons/arrow_circle_chevron_right_filled.svg +3 -0
  60. package/lib/assets/icons/arrow_circle_chevron_right_outlined.svg +3 -0
  61. package/lib/assets/icons/arrow_circle_chevron_up_filled.svg +3 -0
  62. package/lib/assets/icons/arrow_circle_chevron_up_outlined.svg +3 -0
  63. package/lib/assets/icons/arrow_circle_down_filled.svg +3 -0
  64. package/lib/assets/icons/arrow_circle_down_outlined.svg +3 -0
  65. package/lib/assets/icons/arrow_circle_left_filled.svg +3 -0
  66. package/lib/assets/icons/arrow_circle_left_outlined.svg +3 -0
  67. package/lib/assets/icons/arrow_circle_right_filled.svg +3 -0
  68. package/lib/assets/icons/arrow_circle_right_outlined.svg +3 -0
  69. package/lib/assets/icons/arrow_circle_up_filled.svg +3 -0
  70. package/lib/assets/icons/arrow_circle_up_outlined.svg +3 -0
  71. package/lib/assets/icons/arrow_compare.svg +3 -0
  72. package/lib/assets/icons/arrow_double_down.svg +3 -0
  73. package/lib/assets/icons/arrow_double_left.svg +3 -0
  74. package/lib/assets/icons/arrow_double_right.svg +3 -0
  75. package/lib/assets/icons/arrow_double_up.svg +3 -0
  76. package/lib/assets/icons/arrow_down.svg +3 -0
  77. package/lib/assets/icons/arrow_down_left.svg +3 -0
  78. package/lib/assets/icons/arrow_down_right.svg +3 -0
  79. package/lib/assets/icons/arrow_drop_down.svg +3 -0
  80. package/lib/assets/icons/arrow_drop_up.svg +3 -0
  81. package/lib/assets/icons/arrow_left.svg +3 -0
  82. package/lib/assets/icons/arrow_right.svg +3 -0
  83. package/lib/assets/icons/arrow_up.svg +3 -0
  84. package/lib/assets/icons/arrow_up_left.svg +3 -0
  85. package/lib/assets/icons/arrow_up_right.svg +3 -0
  86. package/lib/assets/icons/article_filled.svg +3 -0
  87. package/lib/assets/icons/article_outlined.svg +3 -0
  88. package/lib/assets/icons/assignment_complete_filled.svg +3 -0
  89. package/lib/assets/icons/assignment_complete_outlined.svg +3 -0
  90. package/lib/assets/icons/assignment_filled.svg +3 -0
  91. package/lib/assets/icons/assignment_outlined.svg +3 -0
  92. package/lib/assets/icons/asterisk.svg +3 -0
  93. package/lib/assets/icons/attach_file.svg +3 -0
  94. package/lib/assets/icons/battery_alert_filled.svg +3 -0
  95. package/lib/assets/icons/battery_alert_outlined.svg +3 -0
  96. package/lib/assets/icons/battery_alt_empty.svg +3 -0
  97. package/lib/assets/icons/battery_alt_full.svg +3 -0
  98. package/lib/assets/icons/battery_charging.svg +3 -0
  99. package/lib/assets/icons/battery_charging_full_filled.svg +3 -0
  100. package/lib/assets/icons/battery_charging_full_outlined.svg +3 -0
  101. package/lib/assets/icons/battery_empty.svg +3 -0
  102. package/lib/assets/icons/battery_full.svg +3 -0
  103. package/lib/assets/icons/bluetooth.svg +3 -0
  104. package/lib/assets/icons/bluetooth_off.svg +3 -0
  105. package/lib/assets/icons/bolt_alt_circle_filled.svg +3 -0
  106. package/lib/assets/icons/bolt_alt_circle_outlined.svg +3 -0
  107. package/lib/assets/icons/bolt_alt_filled.svg +3 -0
  108. package/lib/assets/icons/bolt_alt_outlined.svg +3 -0
  109. package/lib/assets/icons/bolt_circle_filled.svg +3 -0
  110. package/lib/assets/icons/bolt_circle_outlined.svg +3 -0
  111. package/lib/assets/icons/bolt_filled.svg +3 -0
  112. package/lib/assets/icons/bolt_outlined.svg +3 -0
  113. package/lib/assets/icons/bookmark_filled.svg +3 -0
  114. package/lib/assets/icons/bookmark_outlined.svg +3 -0
  115. package/lib/assets/icons/bookmarks_filled.svg +3 -0
  116. package/lib/assets/icons/bookmarks_outlined.svg +3 -0
  117. package/lib/assets/icons/build_filled.svg +3 -0
  118. package/lib/assets/icons/build_outlined.svg +3 -0
  119. package/lib/assets/icons/calendar_available_filled.svg +3 -0
  120. package/lib/assets/icons/calendar_available_outlined.svg +3 -0
  121. package/lib/assets/icons/calendar_busy_filled.svg +3 -0
  122. package/lib/assets/icons/calendar_busy_outlined.svg +3 -0
  123. package/lib/assets/icons/calendar_month_filled.svg +3 -0
  124. package/lib/assets/icons/calendar_month_outlined.svg +3 -0
  125. package/lib/assets/icons/calendar_today_filled.svg +3 -0
  126. package/lib/assets/icons/calendar_today_outlined.svg +3 -0
  127. package/lib/assets/icons/call_filled.svg +3 -0
  128. package/lib/assets/icons/call_outlined.svg +3 -0
  129. package/lib/assets/icons/cancel_filled.svg +3 -0
  130. package/lib/assets/icons/cancel_outlined.svg +3 -0
  131. package/lib/assets/icons/category_filled.svg +3 -0
  132. package/lib/assets/icons/category_outlined.svg +3 -0
  133. package/lib/assets/icons/chart_add_filled.svg +3 -0
  134. package/lib/assets/icons/chart_add_outlined.svg +3 -0
  135. package/lib/assets/icons/chart_area_filled.svg +3 -0
  136. package/lib/assets/icons/chart_area_outlined.svg +3 -0
  137. package/lib/assets/icons/chart_bar.svg +3 -0
  138. package/lib/assets/icons/chart_bar_stacked.svg +3 -0
  139. package/lib/assets/icons/chart_pie_filled.svg +3 -0
  140. package/lib/assets/icons/chart_pie_outlined.svg +3 -0
  141. package/lib/assets/icons/chart_table_filled.svg +3 -0
  142. package/lib/assets/icons/chart_table_outlined.svg +3 -0
  143. package/lib/assets/icons/chat_alt_filled.svg +3 -0
  144. package/lib/assets/icons/chat_alt_outlined.svg +3 -0
  145. package/lib/assets/icons/chat_alt_unread_filled.svg +3 -0
  146. package/lib/assets/icons/chat_alt_unread_outlined.svg +3 -0
  147. package/lib/assets/icons/chat_filled.svg +3 -0
  148. package/lib/assets/icons/chat_outlined.svg +3 -0
  149. package/lib/assets/icons/chat_unread_filled.svg +3 -0
  150. package/lib/assets/icons/chat_unread_outlined.svg +3 -0
  151. package/lib/assets/icons/check.svg +3 -0
  152. package/lib/assets/icons/check_circle_filled.svg +3 -0
  153. package/lib/assets/icons/check_circle_outlined.svg +3 -0
  154. package/lib/assets/icons/check_indeterminate.svg +3 -0
  155. package/lib/assets/icons/check_small.svg +3 -0
  156. package/lib/assets/icons/checkbox_empty.svg +3 -0
  157. package/lib/assets/icons/checkbox_filled.svg +3 -0
  158. package/lib/assets/icons/checkbox_indeterminate_filled.svg +3 -0
  159. package/lib/assets/icons/checkbox_indeterminate_outlined.svg +3 -0
  160. package/lib/assets/icons/checkbox_outlined.svg +3 -0
  161. package/lib/assets/icons/clock_filled.svg +3 -0
  162. package/lib/assets/icons/clock_outlined.svg +3 -0
  163. package/lib/assets/icons/close.svg +3 -0
  164. package/lib/assets/icons/cloud_download_filled.svg +3 -0
  165. package/lib/assets/icons/cloud_download_outlined.svg +3 -0
  166. package/lib/assets/icons/cloud_filled.svg +3 -0
  167. package/lib/assets/icons/cloud_off_filled.svg +3 -0
  168. package/lib/assets/icons/cloud_off_outlined.svg +3 -0
  169. package/lib/assets/icons/cloud_outlined.svg +3 -0
  170. package/lib/assets/icons/cloud_upload_filled.svg +3 -0
  171. package/lib/assets/icons/cloud_upload_outlined.svg +3 -0
  172. package/lib/assets/icons/comment_add_filled.svg +3 -0
  173. package/lib/assets/icons/comment_add_outlined.svg +3 -0
  174. package/lib/assets/icons/comment_filled.svg +3 -0
  175. package/lib/assets/icons/comment_outlined.svg +3 -0
  176. package/lib/assets/icons/company.svg +3 -0
  177. package/lib/assets/icons/compare.svg +3 -0
  178. package/lib/assets/icons/contact_filled.svg +3 -0
  179. package/lib/assets/icons/contact_outlined.svg +3 -0
  180. package/lib/assets/icons/copy_all.svg +3 -0
  181. package/lib/assets/icons/copy_filled.svg +3 -0
  182. package/lib/assets/icons/copy_outlined.svg +3 -0
  183. package/lib/assets/icons/crisis_alert.svg +3 -0
  184. package/lib/assets/icons/cut.svg +3 -0
  185. package/lib/assets/icons/dangerous_filled.svg +3 -0
  186. package/lib/assets/icons/dangerous_outlined.svg +3 -0
  187. package/lib/assets/icons/dashboard_filled.svg +3 -0
  188. package/lib/assets/icons/dashboard_outlined.svg +3 -0
  189. package/lib/assets/icons/database_filled.svg +3 -0
  190. package/lib/assets/icons/database_outlined.svg +3 -0
  191. package/lib/assets/icons/delete_filled.svg +3 -0
  192. package/lib/assets/icons/delete_outlined.svg +3 -0
  193. package/lib/assets/icons/desktop_filled.svg +3 -0
  194. package/lib/assets/icons/desktop_outlined.svg +3 -0
  195. package/lib/assets/icons/devices_filled.svg +3 -0
  196. package/lib/assets/icons/devices_outlined.svg +3 -0
  197. package/lib/assets/icons/download.svg +3 -0
  198. package/lib/assets/icons/download_done.svg +3 -0
  199. package/lib/assets/icons/draft_filled.svg +3 -0
  200. package/lib/assets/icons/draft_outlined.svg +3 -0
  201. package/lib/assets/icons/drag_handle.svg +3 -0
  202. package/lib/assets/icons/drag_indicator.svg +3 -0
  203. package/lib/assets/icons/eco_filled.svg +3 -0
  204. package/lib/assets/icons/eco_outlined.svg +3 -0
  205. package/lib/assets/icons/edit_filled.svg +3 -0
  206. package/lib/assets/icons/edit_outlined.svg +3 -0
  207. package/lib/assets/icons/electric_meter_filled.svg +3 -0
  208. package/lib/assets/icons/electric_meter_outlined.svg +3 -0
  209. package/lib/assets/icons/error_filled.svg +3 -0
  210. package/lib/assets/icons/error_outlined.svg +3 -0
  211. package/lib/assets/icons/exclamation.svg +3 -0
  212. package/lib/assets/icons/explore_filled.svg +3 -0
  213. package/lib/assets/icons/explore_off_filled.svg +3 -0
  214. package/lib/assets/icons/explore_off_outlined.svg +3 -0
  215. package/lib/assets/icons/explore_outlined.svg +3 -0
  216. package/lib/assets/icons/explore_travel.svg +3 -0
  217. package/lib/assets/icons/export_xls_filled.svg +3 -0
  218. package/lib/assets/icons/export_xls_outlined.svg +6 -0
  219. package/lib/assets/icons/external_link.svg +3 -0
  220. package/lib/assets/icons/fast_forward_filled.svg +3 -0
  221. package/lib/assets/icons/fast_forward_outlined.svg +3 -0
  222. package/lib/assets/icons/fast_rewind_filled.svg +3 -0
  223. package/lib/assets/icons/fast_rewind_outlined.svg +3 -0
  224. package/lib/assets/icons/feedback_filled.svg +3 -0
  225. package/lib/assets/icons/feedback_outlined.svg +3 -0
  226. package/lib/assets/icons/file_copy_filled.svg +3 -0
  227. package/lib/assets/icons/file_copy_outlined.svg +3 -0
  228. package/lib/assets/icons/file_download_filled.svg +3 -0
  229. package/lib/assets/icons/file_download_outlined.svg +3 -0
  230. package/lib/assets/icons/file_upload_filled.svg +3 -0
  231. package/lib/assets/icons/file_upload_outlined.svg +3 -0
  232. package/lib/assets/icons/filter.svg +3 -0
  233. package/lib/assets/icons/filter_alt_filled.svg +3 -0
  234. package/lib/assets/icons/filter_alt_off_filled.svg +3 -0
  235. package/lib/assets/icons/filter_alt_off_outlined.svg +3 -0
  236. package/lib/assets/icons/filter_alt_outlined.svg +3 -0
  237. package/lib/assets/icons/filter_off.svg +3 -0
  238. package/lib/assets/icons/fire_filled.svg +3 -0
  239. package/lib/assets/icons/fire_outlined.svg +3 -0
  240. package/lib/assets/icons/first_page.svg +3 -0
  241. package/lib/assets/icons/fit_screen_filled.svg +3 -0
  242. package/lib/assets/icons/fit_screen_outlined.svg +3 -0
  243. package/lib/assets/icons/flag_filled.svg +3 -0
  244. package/lib/assets/icons/flag_outlined.svg +3 -0
  245. package/lib/assets/icons/flash_filled.svg +3 -0
  246. package/lib/assets/icons/flash_off_filled.svg +3 -0
  247. package/lib/assets/icons/flash_off_outlined.svg +3 -0
  248. package/lib/assets/icons/flash_outlined.svg +3 -0
  249. package/lib/assets/icons/folder_add_filled.svg +3 -0
  250. package/lib/assets/icons/folder_add_outlined.svg +3 -0
  251. package/lib/assets/icons/folder_filled.svg +3 -0
  252. package/lib/assets/icons/folder_move_filled.svg +3 -0
  253. package/lib/assets/icons/folder_move_outlined.svg +3 -0
  254. package/lib/assets/icons/folder_open_filled.svg +3 -0
  255. package/lib/assets/icons/folder_open_outlined.svg +3 -0
  256. package/lib/assets/icons/folder_outlined.svg +3 -0
  257. package/lib/assets/icons/folder_shared_filled.svg +3 -0
  258. package/lib/assets/icons/folder_shared_outlined.svg +3 -0
  259. package/lib/assets/icons/forum_filled.svg +3 -0
  260. package/lib/assets/icons/forum_outlined.svg +3 -0
  261. package/lib/assets/icons/forward.svg +3 -0
  262. package/lib/assets/icons/fullscreen.svg +3 -0
  263. package/lib/assets/icons/fullscreen_exit.svg +3 -0
  264. package/lib/assets/icons/group_add_filled.svg +3 -0
  265. package/lib/assets/icons/group_add_outlined.svg +3 -0
  266. package/lib/assets/icons/group_filled.svg +3 -0
  267. package/lib/assets/icons/group_outlined.svg +3 -0
  268. package/lib/assets/icons/groups_filled.svg +3 -0
  269. package/lib/assets/icons/groups_outlined.svg +3 -0
  270. package/lib/assets/icons/handshake_filled.svg +3 -0
  271. package/lib/assets/icons/handshake_outlined.svg +3 -0
  272. package/lib/assets/icons/headphones_filled.svg +3 -0
  273. package/lib/assets/icons/headphones_outlined.svg +3 -0
  274. package/lib/assets/icons/heart_filled.svg +3 -0
  275. package/lib/assets/icons/heart_outlined.svg +3 -0
  276. package/lib/assets/icons/help_filled.svg +3 -0
  277. package/lib/assets/icons/help_outlined.svg +3 -0
  278. package/lib/assets/icons/history.svg +3 -0
  279. package/lib/assets/icons/home_filled.svg +3 -0
  280. package/lib/assets/icons/home_outlined.svg +3 -0
  281. package/lib/assets/icons/hourglass_empty.svg +3 -0
  282. package/lib/assets/icons/hourglass_filled.svg +3 -0
  283. package/lib/assets/icons/hourglass_outlined.svg +3 -0
  284. package/lib/assets/icons/image_broken_filled.svg +3 -0
  285. package/lib/assets/icons/image_broken_outlined.svg +3 -0
  286. package/lib/assets/icons/image_filled.svg +3 -0
  287. package/lib/assets/icons/image_gallery_filled.svg +3 -0
  288. package/lib/assets/icons/image_gallery_outlined.svg +3 -0
  289. package/lib/assets/icons/image_outlined.svg +3 -0
  290. package/lib/assets/icons/inbox_filled.svg +3 -0
  291. package/lib/assets/icons/inbox_outlined.svg +3 -0
  292. package/lib/assets/icons/info_filled.svg +3 -0
  293. package/lib/assets/icons/info_i.svg +3 -0
  294. package/lib/assets/icons/info_outlined.svg +3 -0
  295. package/lib/assets/icons/keep_filled.svg +3 -0
  296. package/lib/assets/icons/keep_off_filled.svg +3 -0
  297. package/lib/assets/icons/keep_off_outlined.svg +3 -0
  298. package/lib/assets/icons/keep_outlined.svg +3 -0
  299. package/lib/assets/icons/label_filled.svg +3 -0
  300. package/lib/assets/icons/label_outlined.svg +3 -0
  301. package/lib/assets/icons/language.svg +3 -0
  302. package/lib/assets/icons/laptop_filled.svg +3 -0
  303. package/lib/assets/icons/laptop_outlined.svg +3 -0
  304. package/lib/assets/icons/last_page.svg +3 -0
  305. package/lib/assets/icons/left_panel_close_filled.svg +3 -0
  306. package/lib/assets/icons/left_panel_close_outlined.svg +3 -0
  307. package/lib/assets/icons/left_panel_open_filled.svg +3 -0
  308. package/lib/assets/icons/left_panel_open_outlined.svg +3 -0
  309. package/lib/assets/icons/light_off_filled.svg +3 -0
  310. package/lib/assets/icons/light_off_outlined.svg +3 -0
  311. package/lib/assets/icons/lightbulb_alt_filled.svg +3 -0
  312. package/lib/assets/icons/lightbulb_alt_outlined.svg +3 -0
  313. package/lib/assets/icons/lightbulb_circle_filled.svg +3 -0
  314. package/lib/assets/icons/lightbulb_circle_outlined.svg +3 -0
  315. package/lib/assets/icons/lightbulb_filled.svg +3 -0
  316. package/lib/assets/icons/lightbulb_outlined.svg +3 -0
  317. package/lib/assets/icons/link.svg +3 -0
  318. package/lib/assets/icons/link_off.svg +3 -0
  319. package/lib/assets/icons/list.svg +3 -0
  320. package/lib/assets/icons/list_alt_filled.svg +3 -0
  321. package/lib/assets/icons/list_alt_outlined.svg +3 -0
  322. package/lib/assets/icons/location_disabled.svg +10 -0
  323. package/lib/assets/icons/location_me_filled.svg +3 -0
  324. package/lib/assets/icons/location_me_outlined.svg +3 -0
  325. package/lib/assets/icons/location_off_filled.svg +3 -0
  326. package/lib/assets/icons/location_off_outlined.svg +3 -0
  327. package/lib/assets/icons/location_on_filled.svg +3 -0
  328. package/lib/assets/icons/location_on_outlined.svg +3 -0
  329. package/lib/assets/icons/lock_filled.svg +3 -0
  330. package/lib/assets/icons/lock_open_filled.svg +3 -0
  331. package/lib/assets/icons/lock_open_outlined.svg +3 -0
  332. package/lib/assets/icons/lock_open_right_filled.svg +3 -0
  333. package/lib/assets/icons/lock_open_right_outlined.svg +3 -0
  334. package/lib/assets/icons/lock_outlined.svg +3 -0
  335. package/lib/assets/icons/login.svg +3 -0
  336. package/lib/assets/icons/logout.svg +3 -0
  337. package/lib/assets/icons/mail_filled.svg +3 -0
  338. package/lib/assets/icons/mail_outlined.svg +3 -0
  339. package/lib/assets/icons/mail_unread_filled.svg +3 -0
  340. package/lib/assets/icons/mail_unread_outlined.svg +3 -0
  341. package/lib/assets/icons/map_filled.svg +3 -0
  342. package/lib/assets/icons/map_outlined.svg +3 -0
  343. package/lib/assets/icons/menu.svg +3 -0
  344. package/lib/assets/icons/menu_open.svg +3 -0
  345. package/lib/assets/icons/mic_filled.svg +3 -0
  346. package/lib/assets/icons/mic_off_filled.svg +3 -0
  347. package/lib/assets/icons/mic_off_outlined.svg +3 -0
  348. package/lib/assets/icons/mic_outlined.svg +3 -0
  349. package/lib/assets/icons/mode_dark_filled.svg +3 -0
  350. package/lib/assets/icons/mode_dark_outlined.svg +3 -0
  351. package/lib/assets/icons/mode_light_filled.svg +10 -0
  352. package/lib/assets/icons/mode_light_outlined.svg +10 -0
  353. package/lib/assets/icons/monitoring.svg +3 -0
  354. package/lib/assets/icons/more_down.svg +3 -0
  355. package/lib/assets/icons/more_horiz.svg +3 -0
  356. package/lib/assets/icons/more_up.svg +3 -0
  357. package/lib/assets/icons/more_vert.svg +3 -0
  358. package/lib/assets/icons/notification_filled.svg +3 -0
  359. package/lib/assets/icons/notification_important_filled.svg +3 -0
  360. package/lib/assets/icons/notification_important_outlined.svg +3 -0
  361. package/lib/assets/icons/notification_off_filled.svg +3 -0
  362. package/lib/assets/icons/notification_off_outlined.svg +3 -0
  363. package/lib/assets/icons/notification_outlined.svg +3 -0
  364. package/lib/assets/icons/notification_unread_filled.svg +3 -0
  365. package/lib/assets/icons/notification_unread_outlined.svg +3 -0
  366. package/lib/assets/icons/ohm.svg +3 -0
  367. package/lib/assets/icons/open_in_full.svg +3 -0
  368. package/lib/assets/icons/palette_filled.svg +3 -0
  369. package/lib/assets/icons/palette_outlined.svg +3 -0
  370. package/lib/assets/icons/paste.svg +3 -0
  371. package/lib/assets/icons/pause_circle_filled.svg +3 -0
  372. package/lib/assets/icons/pause_circle_outlined.svg +3 -0
  373. package/lib/assets/icons/pause_filled.svg +3 -0
  374. package/lib/assets/icons/pause_outlined.svg +3 -0
  375. package/lib/assets/icons/photo_camera_filled.svg +3 -0
  376. package/lib/assets/icons/photo_camera_outlined.svg +3 -0
  377. package/lib/assets/icons/play_circle_filled.svg +3 -0
  378. package/lib/assets/icons/play_circle_outlined.svg +3 -0
  379. package/lib/assets/icons/play_filled.svg +3 -0
  380. package/lib/assets/icons/play_outlined.svg +3 -0
  381. package/lib/assets/icons/play_pause.svg +3 -0
  382. package/lib/assets/icons/power_filled.svg +3 -0
  383. package/lib/assets/icons/power_input.svg +3 -0
  384. package/lib/assets/icons/power_off_filled.svg +3 -0
  385. package/lib/assets/icons/power_off_outlined.svg +3 -0
  386. package/lib/assets/icons/power_outlined.svg +3 -0
  387. package/lib/assets/icons/power_plug.svg +3 -0
  388. package/lib/assets/icons/power_plug_connect_filled.svg +3 -0
  389. package/lib/assets/icons/power_plug_connect_outlined.svg +3 -0
  390. package/lib/assets/icons/power_settings.svg +3 -0
  391. package/lib/assets/icons/power_settings_circle_filled.svg +3 -0
  392. package/lib/assets/icons/power_settings_circle_outlined.svg +3 -0
  393. package/lib/assets/icons/power_solar_filled.svg +3 -0
  394. package/lib/assets/icons/power_solar_outlined.svg +3 -0
  395. package/lib/assets/icons/power_switch_filled.svg +3 -0
  396. package/lib/assets/icons/power_switch_outlined.svg +3 -0
  397. package/lib/assets/icons/power_wind_filled.svg +3 -0
  398. package/lib/assets/icons/power_wind_outlined.svg +3 -0
  399. package/lib/assets/icons/print_filled.svg +3 -0
  400. package/lib/assets/icons/print_outlined.svg +3 -0
  401. package/lib/assets/icons/priority_high.svg +3 -0
  402. package/lib/assets/icons/public.svg +3 -0
  403. package/lib/assets/icons/publish.svg +3 -0
  404. package/lib/assets/icons/question_mark.svg +3 -0
  405. package/lib/assets/icons/radar.svg +3 -0
  406. package/lib/assets/icons/radio_button_empty.svg +3 -0
  407. package/lib/assets/icons/redo.svg +3 -0
  408. package/lib/assets/icons/reload.svg +3 -0
  409. package/lib/assets/icons/remove.svg +3 -0
  410. package/lib/assets/icons/reply.svg +3 -0
  411. package/lib/assets/icons/reply_all.svg +3 -0
  412. package/lib/assets/icons/right_panel_close_filled.svg +3 -0
  413. package/lib/assets/icons/right_panel_close_outlined.svg +3 -0
  414. package/lib/assets/icons/right_panel_open_filled.svg +3 -0
  415. package/lib/assets/icons/right_panel_open_outlined.svg +3 -0
  416. package/lib/assets/icons/route.svg +3 -0
  417. package/lib/assets/icons/save_filled.svg +3 -0
  418. package/lib/assets/icons/save_outlined.svg +3 -0
  419. package/lib/assets/icons/search.svg +3 -0
  420. package/lib/assets/icons/send_filled.svg +3 -0
  421. package/lib/assets/icons/send_outlined.svg +3 -0
  422. package/lib/assets/icons/settings_filled.svg +3 -0
  423. package/lib/assets/icons/settings_outlined.svg +3 -0
  424. package/lib/assets/icons/share_filled.svg +3 -0
  425. package/lib/assets/icons/share_outlined.svg +3 -0
  426. package/lib/assets/icons/side_navigation.svg +3 -0
  427. package/lib/assets/icons/skip_next_filled.svg +3 -0
  428. package/lib/assets/icons/skip_next_outlined.svg +3 -0
  429. package/lib/assets/icons/skip_previous_filled.svg +3 -0
  430. package/lib/assets/icons/skip_previous_outlined.svg +3 -0
  431. package/lib/assets/icons/smartphone_filled.svg +3 -0
  432. package/lib/assets/icons/smartphone_outlined.svg +3 -0
  433. package/lib/assets/icons/sort.svg +3 -0
  434. package/lib/assets/icons/star_filled.svg +3 -0
  435. package/lib/assets/icons/star_outlined.svg +3 -0
  436. package/lib/assets/icons/sticky_note_filled.svg +3 -0
  437. package/lib/assets/icons/sticky_note_outlined.svg +3 -0
  438. package/lib/assets/icons/stop_circle_filled.svg +3 -0
  439. package/lib/assets/icons/stop_circle_outlined.svg +3 -0
  440. package/lib/assets/icons/stop_filled.svg +3 -0
  441. package/lib/assets/icons/stop_outlined.svg +3 -0
  442. package/lib/assets/icons/subtitles_filled.svg +3 -0
  443. package/lib/assets/icons/subtitles_outlined.svg +3 -0
  444. package/lib/assets/icons/support_agent.svg +3 -0
  445. package/lib/assets/icons/swap_horiz.svg +3 -0
  446. package/lib/assets/icons/swap_vert.svg +3 -0
  447. package/lib/assets/icons/text_snippet_filled.svg +3 -0
  448. package/lib/assets/icons/text_snippet_outlined.svg +3 -0
  449. package/lib/assets/icons/timeline.svg +3 -0
  450. package/lib/assets/icons/trash_restore_filled.svg +3 -0
  451. package/lib/assets/icons/trash_restore_outlined.svg +3 -0
  452. package/lib/assets/icons/trending_down.svg +3 -0
  453. package/lib/assets/icons/trending_flat.svg +3 -0
  454. package/lib/assets/icons/trending_up.svg +3 -0
  455. package/lib/assets/icons/tune.svg +3 -0
  456. package/lib/assets/icons/unarchive_filled.svg +3 -0
  457. package/lib/assets/icons/unarchive_outlined.svg +3 -0
  458. package/lib/assets/icons/undo.svg +3 -0
  459. package/lib/assets/icons/upload.svg +3 -0
  460. package/lib/assets/icons/user_add_filled.svg +3 -0
  461. package/lib/assets/icons/user_add_outlined.svg +3 -0
  462. package/lib/assets/icons/user_circle_filled.svg +3 -0
  463. package/lib/assets/icons/user_circle_outlined.svg +3 -0
  464. package/lib/assets/icons/user_filled.svg +3 -0
  465. package/lib/assets/icons/user_outlined.svg +3 -0
  466. package/lib/assets/icons/user_settings_filled.svg +3 -0
  467. package/lib/assets/icons/user_settings_outlined.svg +3 -0
  468. package/lib/assets/icons/verified_filled.svg +3 -0
  469. package/lib/assets/icons/verified_outlined.svg +3 -0
  470. package/lib/assets/icons/video_camera_filled.svg +3 -0
  471. package/lib/assets/icons/video_camera_off_filled.svg +3 -0
  472. package/lib/assets/icons/video_camera_off_outlined.svg +3 -0
  473. package/lib/assets/icons/video_camera_outlined.svg +3 -0
  474. package/lib/assets/icons/video_gallery_filled.svg +3 -0
  475. package/lib/assets/icons/video_gallery_outlined.svg +3 -0
  476. package/lib/assets/icons/view_agenda_filled.svg +3 -0
  477. package/lib/assets/icons/view_agenda_outlined.svg +3 -0
  478. package/lib/assets/icons/view_column_filled.svg +3 -0
  479. package/lib/assets/icons/view_column_outlined.svg +3 -0
  480. package/lib/assets/icons/view_grid_filled.svg +3 -0
  481. package/lib/assets/icons/view_grid_outlined.svg +3 -0
  482. package/lib/assets/icons/view_kanban_filled.svg +3 -0
  483. package/lib/assets/icons/view_kanban_outlined.svg +3 -0
  484. package/lib/assets/icons/view_module_filled.svg +3 -0
  485. package/lib/assets/icons/view_module_outlined.svg +3 -0
  486. package/lib/assets/icons/view_timeline_filled.svg +3 -0
  487. package/lib/assets/icons/view_timeline_outlined.svg +3 -0
  488. package/lib/assets/icons/visibility_hide_filled.svg +3 -0
  489. package/lib/assets/icons/visibility_hide_outlined.svg +3 -0
  490. package/lib/assets/icons/visibility_show_filled.svg +3 -0
  491. package/lib/assets/icons/visibility_show_outlined.svg +3 -0
  492. package/lib/assets/icons/volume_down_filled.svg +3 -0
  493. package/lib/assets/icons/volume_down_outlined.svg +3 -0
  494. package/lib/assets/icons/volume_mute_filled.svg +3 -0
  495. package/lib/assets/icons/volume_mute_outlined.svg +3 -0
  496. package/lib/assets/icons/volume_off_filled.svg +3 -0
  497. package/lib/assets/icons/volume_off_outlined.svg +3 -0
  498. package/lib/assets/icons/volume_up_filled.svg +3 -0
  499. package/lib/assets/icons/volume_up_outlined.svg +3 -0
  500. package/lib/assets/icons/warning_filled.svg +3 -0
  501. package/lib/assets/icons/warning_outlined.svg +3 -0
  502. package/lib/assets/icons/water.svg +3 -0
  503. package/lib/assets/icons/water_alt.svg +3 -0
  504. package/lib/assets/icons/waterdrop_filled.svg +3 -0
  505. package/lib/assets/icons/waterdrop_outlined.svg +3 -0
  506. package/lib/assets/icons/wifi.svg +3 -0
  507. package/lib/assets/icons/wifi_off.svg +3 -0
  508. package/lib/assets/icons/windmill.svg +3 -0
  509. package/lib/assets/icons/zoom_in.svg +3 -0
  510. package/lib/assets/icons/zoom_out.svg +3 -0
  511. package/lib/components/accordion/accordion.component.d.ts +29 -0
  512. package/lib/components/avatar/assets/status/status.component.d.ts +8 -0
  513. package/lib/components/avatar/avatar.component.d.ts +24 -0
  514. package/lib/components/badge/badge.directive.d.ts +1 -1
  515. package/lib/components/button/button.component.d.ts +6 -1
  516. package/lib/components/card/card.component.d.ts +2 -4
  517. package/lib/components/checkbox/checkbox.component.d.ts +2 -1
  518. package/lib/components/chip/chip.component.d.ts +1 -1
  519. package/lib/components/drawer/drawer-trigger/drawer-trigger.directive.d.ts +9 -0
  520. package/lib/components/drawer/drawer.component.d.ts +54 -0
  521. package/lib/components/drawer/drawer.directive.d.ts +60 -0
  522. package/lib/components/drawer/drawer.module.d.ts +8 -0
  523. package/lib/components/icon/icon-map.d.ts +7 -0
  524. package/lib/components/icon/icon.component.d.ts +1 -1
  525. package/lib/components/icon-button/icon-button.component.d.ts +3 -3
  526. package/lib/components/icon-button-toggle/icon-button-toggle.component.d.ts +2 -2
  527. package/lib/components/popover/popover.component.d.ts +1 -1
  528. package/lib/components/segmented-control/segmented-control.component.d.ts +1 -1
  529. package/lib/components/split-button/split-button.component.d.ts +2 -2
  530. package/lib/components/tag/tag.component.d.ts +2 -2
  531. package/lib/components/text-input/base-text-input/base-text-input.component.d.ts +2 -2
  532. package/lib/components/tooltip/tooltip.component.d.ts +1 -1
  533. package/lib/components/treeview/index.d.ts +3 -0
  534. package/lib/components/treeview/treeview-check.service.d.ts +10 -0
  535. package/lib/components/treeview/treeview-item/treeview-item-border/treeview-item-border.component.d.ts +10 -0
  536. package/lib/components/treeview/treeview-item/treeview-item.component.d.ts +71 -0
  537. package/lib/components/treeview/treeview-keyboard.service.d.ts +10 -0
  538. package/lib/components/treeview/treeview-selection.service.d.ts +9 -0
  539. package/lib/components/treeview/treeview.component.d.ts +43 -0
  540. package/package.json +2 -2
  541. package/public-api.d.ts +7 -0
@@ -0,0 +1,302 @@
1
+ import { afterNextRender, contentChild, Directive, effect, ElementRef, HostBinding, HostListener, inject, Injector, input, signal, untracked, ViewContainerRef, } from "@angular/core";
2
+ import { DRAWER_TRANSITION_DURATION, getDrawerConfigurationIssues, waitForNextFrame } from "@design-system-rte/core";
3
+ import { ESCAPE_KEY } from "@design-system-rte/core/constants/keyboard/keyboard.constants";
4
+ import { OverlayService } from "../../services/overlay.service";
5
+ import { DrawerComponent } from "./drawer.component";
6
+ import * as i0 from "@angular/core";
7
+ export class DrawerDirective {
8
+ get isResponsiveLayoutHost() {
9
+ return this.rteDrawerPosition() === "responsive";
10
+ }
11
+ get responsiveHostDisplay() {
12
+ return this.rteDrawerPosition() === "responsive" ? "flex" : undefined;
13
+ }
14
+ get responsiveHostFlexDirection() {
15
+ return this.rteDrawerPosition() === "responsive" ? "column" : undefined;
16
+ }
17
+ get responsiveHostMinHeight() {
18
+ return this.rteDrawerPosition() === "responsive" ? "0" : undefined;
19
+ }
20
+ get responsiveHostBoxSizing() {
21
+ return this.rteDrawerPosition() === "responsive" ? "border-box" : undefined;
22
+ }
23
+ static { this.responsiveShellMountMaxAttempts = 12; }
24
+ constructor() {
25
+ this.drawerCompRef = null;
26
+ this.drawerPanelElement = null;
27
+ this.usedOverlay = false;
28
+ this.isOpenProvided = false;
29
+ this.elementRef = inject(ElementRef);
30
+ this.viewContainerRef = inject(ViewContainerRef);
31
+ this.overlayService = inject(OverlayService);
32
+ this.injector = inject(Injector);
33
+ this.drawerContent = contentChild.required("drawerContent");
34
+ this.drawerHeader = contentChild("drawerHeader");
35
+ this.drawerFooter = contentChild("drawerFooter");
36
+ this.drawerContextContent = contentChild("drawerContextContent");
37
+ this.rteDrawerId = input.required();
38
+ this.rteDrawerIsOpen = input(false);
39
+ this.rteDrawerTitle = input();
40
+ this.rteDrawerIcon = input();
41
+ this.rteDrawerIconAppearance = input("outlined");
42
+ this.rteDrawerPosition = input("modal");
43
+ this.rteDrawerWidth = input();
44
+ this.rteDrawerCloseOnOverlayClick = input(false);
45
+ this.rteDrawerPrimaryButtonLabel = input();
46
+ this.rteDrawerSecondaryButtonLabel = input();
47
+ this.rteDrawerIsCollapsible = input(false);
48
+ this.rteDrawerFixedHeader = input(false);
49
+ this.rteDrawerCloseOnEscape = input(false);
50
+ this.rteDrawerIsClosable = input(true);
51
+ this.effectiveOpen = signal(false);
52
+ this.onMouseDown = (mouseEvent) => this.handleClickAway(mouseEvent);
53
+ this.onKeyDown = (keyboardEvent) => this.handleKeydown(keyboardEvent);
54
+ this.scheduleResponsiveShellMount(DrawerDirective.responsiveShellMountMaxAttempts);
55
+ effect(() => {
56
+ this.rteDrawerIsOpen();
57
+ untracked(() => {
58
+ if (this.isOpenProvided) {
59
+ return;
60
+ }
61
+ this.effectiveOpen.set(this.rteDrawerIsOpen());
62
+ this.isOpenProvided = true;
63
+ });
64
+ });
65
+ effect(() => {
66
+ const open = this.effectiveOpen();
67
+ untracked(() => {
68
+ if (open) {
69
+ this.runOpenTransition();
70
+ }
71
+ else {
72
+ this.runCloseTransition();
73
+ }
74
+ });
75
+ }, { allowSignalWrites: true });
76
+ }
77
+ open() {
78
+ if (!this.validateForOpen()) {
79
+ return;
80
+ }
81
+ this.effectiveOpen.set(true);
82
+ }
83
+ close() {
84
+ this.effectiveOpen.set(false);
85
+ }
86
+ scheduleResponsiveShellMount(attemptsRemaining) {
87
+ afterNextRender(() => {
88
+ if (this.rteDrawerPosition() !== "responsive" || this.drawerCompRef) {
89
+ return;
90
+ }
91
+ if (this.validateForOpen()) {
92
+ this.mountDrawer();
93
+ const mountedRef = this.drawerCompRef;
94
+ if (mountedRef === null) {
95
+ return;
96
+ }
97
+ this.syncInputsToDrawer();
98
+ mountedRef.setInput("isOpen", false);
99
+ return;
100
+ }
101
+ if (attemptsRemaining > 1) {
102
+ this.scheduleResponsiveShellMount(attemptsRemaining - 1);
103
+ }
104
+ else {
105
+ console.warn("Drawer: responsive shell could not mount after multiple attempts (content queries may still be empty).");
106
+ }
107
+ }, { injector: this.injector });
108
+ }
109
+ ngAfterContentInit() {
110
+ document.addEventListener("mousedown", this.onMouseDown);
111
+ document.addEventListener("keydown", this.onKeyDown);
112
+ }
113
+ onHostClick(clickEvent) {
114
+ const target = clickEvent.target;
115
+ if (!(target instanceof Node)) {
116
+ return;
117
+ }
118
+ const triggerElement = target instanceof Element ? target.closest("[data-rte-drawer-trigger]") : null;
119
+ if (!triggerElement || !this.elementRef.nativeElement.contains(triggerElement)) {
120
+ return;
121
+ }
122
+ this.open();
123
+ }
124
+ ngOnDestroy() {
125
+ document.removeEventListener("mousedown", this.onMouseDown);
126
+ document.removeEventListener("keydown", this.onKeyDown);
127
+ this.teardownDrawer();
128
+ }
129
+ runOpenTransition() {
130
+ if (!this.validateForOpen()) {
131
+ this.close();
132
+ return;
133
+ }
134
+ if (!this.drawerCompRef) {
135
+ this.mountDrawer();
136
+ }
137
+ if (!this.drawerCompRef) {
138
+ return;
139
+ }
140
+ this.syncInputsToDrawer();
141
+ this.refreshDrawerPanelElement();
142
+ waitForNextFrame(() => {
143
+ this.drawerCompRef?.setInput("isOpen", true);
144
+ this.refreshDrawerPanelElement();
145
+ });
146
+ if (this.rteDrawerPosition() === "modal" && this.rteDrawerIsCollapsible()) {
147
+ document.body.style.overflow = "hidden";
148
+ }
149
+ }
150
+ runCloseTransition() {
151
+ if (!this.drawerCompRef) {
152
+ return;
153
+ }
154
+ this.drawerCompRef.setInput("isOpen", false);
155
+ const keepMounted = this.rteDrawerIsCollapsible() || this.rteDrawerPosition() === "responsive";
156
+ if (!keepMounted) {
157
+ setTimeout(() => this.teardownDrawer(), DRAWER_TRANSITION_DURATION);
158
+ }
159
+ else if (this.rteDrawerPosition() === "modal" && this.rteDrawerIsCollapsible()) {
160
+ document.body.style.overflow = "";
161
+ }
162
+ }
163
+ handleClosed() {
164
+ this.close();
165
+ }
166
+ handleToggle() {
167
+ this.effectiveOpen.update((current) => !current);
168
+ }
169
+ mountDrawer() {
170
+ const position = this.rteDrawerPosition();
171
+ const collapsible = this.rteDrawerIsCollapsible();
172
+ const useOverlay = position === "modal" && !collapsible;
173
+ if (useOverlay) {
174
+ this.drawerCompRef = this.overlayService.create(DrawerComponent, this.viewContainerRef, true);
175
+ this.usedOverlay = true;
176
+ }
177
+ else {
178
+ this.drawerCompRef = this.viewContainerRef.createComponent(DrawerComponent);
179
+ this.usedOverlay = false;
180
+ this.elementRef.nativeElement.appendChild(this.drawerCompRef.location.nativeElement);
181
+ }
182
+ this.drawerCompRef.instance.closed.subscribe(() => {
183
+ this.handleClosed();
184
+ });
185
+ this.drawerCompRef.instance.clickToggle.subscribe(() => {
186
+ this.handleToggle();
187
+ });
188
+ }
189
+ teardownDrawer() {
190
+ if (this.drawerCompRef) {
191
+ this.drawerCompRef.destroy();
192
+ this.drawerCompRef = null;
193
+ }
194
+ if (this.usedOverlay) {
195
+ this.overlayService.destroy();
196
+ this.usedOverlay = false;
197
+ }
198
+ document.body.style.overflow = "";
199
+ this.drawerPanelElement = null;
200
+ }
201
+ syncInputsToDrawer() {
202
+ const componentRef = this.drawerCompRef;
203
+ if (!componentRef) {
204
+ return;
205
+ }
206
+ componentRef.setInput("id", this.rteDrawerId());
207
+ componentRef.setInput("title", this.rteDrawerTitle());
208
+ componentRef.setInput("icon", this.rteDrawerIcon());
209
+ componentRef.setInput("iconAppearance", this.rteDrawerIconAppearance());
210
+ componentRef.setInput("position", this.rteDrawerPosition());
211
+ componentRef.setInput("width", this.rteDrawerWidth());
212
+ componentRef.setInput("closeOnOverlayClick", this.rteDrawerCloseOnOverlayClick());
213
+ componentRef.setInput("primaryButtonLabel", this.rteDrawerPrimaryButtonLabel());
214
+ componentRef.setInput("secondaryButtonLabel", this.rteDrawerSecondaryButtonLabel());
215
+ componentRef.setInput("isCollapsible", this.rteDrawerIsCollapsible());
216
+ componentRef.setInput("fixedHeader", this.rteDrawerFixedHeader());
217
+ componentRef.setInput("closeOnEscape", this.rteDrawerCloseOnEscape());
218
+ componentRef.setInput("isClosable", this.rteDrawerIsClosable());
219
+ componentRef.setInput("modalHostMode", this.rteDrawerPosition() === "modal" && this.rteDrawerIsCollapsible());
220
+ componentRef.setInput("drawerContent", this.drawerContent());
221
+ componentRef.setInput("drawerHeader", this.drawerHeader() ?? null);
222
+ componentRef.setInput("drawerFooter", this.drawerFooter() ?? null);
223
+ componentRef.setInput("drawerContextContent", this.drawerContextContent() ?? null);
224
+ }
225
+ refreshDrawerPanelElement() {
226
+ const root = this.drawerCompRef?.location.nativeElement;
227
+ this.drawerPanelElement = root?.querySelector("[data-drawer-panel]") ?? null;
228
+ }
229
+ validateForOpen() {
230
+ const issues = getDrawerConfigurationIssues({
231
+ hasCustomHeader: !!this.drawerHeader(),
232
+ hasTitle: !!this.rteDrawerTitle(),
233
+ hasCustomFooter: !!this.drawerFooter(),
234
+ hasPrimaryButtonLabel: !!this.rteDrawerPrimaryButtonLabel(),
235
+ position: this.rteDrawerPosition(),
236
+ hasMainContent: !!this.drawerContextContent(),
237
+ });
238
+ if (issues) {
239
+ console.warn(issues);
240
+ return false;
241
+ }
242
+ return true;
243
+ }
244
+ handleKeydown(keyboardEvent) {
245
+ if (!this.effectiveOpen()) {
246
+ return;
247
+ }
248
+ if (keyboardEvent.key === ESCAPE_KEY && this.rteDrawerCloseOnEscape()) {
249
+ keyboardEvent.preventDefault();
250
+ this.close();
251
+ }
252
+ }
253
+ handleClickAway(mouseEvent) {
254
+ if (!this.effectiveOpen()) {
255
+ return;
256
+ }
257
+ if (this.rteDrawerPosition() !== "modal") {
258
+ return;
259
+ }
260
+ if (!this.rteDrawerCloseOnOverlayClick()) {
261
+ return;
262
+ }
263
+ const hostElement = this.elementRef.nativeElement;
264
+ const target = mouseEvent.target;
265
+ if (hostElement.contains(target)) {
266
+ return;
267
+ }
268
+ if (this.drawerPanelElement?.contains(target)) {
269
+ return;
270
+ }
271
+ this.close();
272
+ }
273
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
274
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.14", type: DrawerDirective, isStandalone: true, selector: "[rteDrawer]", inputs: { rteDrawerId: { classPropertyName: "rteDrawerId", publicName: "rteDrawerId", isSignal: true, isRequired: true, transformFunction: null }, rteDrawerIsOpen: { classPropertyName: "rteDrawerIsOpen", publicName: "rteDrawerIsOpen", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerTitle: { classPropertyName: "rteDrawerTitle", publicName: "rteDrawerTitle", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerIcon: { classPropertyName: "rteDrawerIcon", publicName: "rteDrawerIcon", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerIconAppearance: { classPropertyName: "rteDrawerIconAppearance", publicName: "rteDrawerIconAppearance", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerPosition: { classPropertyName: "rteDrawerPosition", publicName: "rteDrawerPosition", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerWidth: { classPropertyName: "rteDrawerWidth", publicName: "rteDrawerWidth", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerCloseOnOverlayClick: { classPropertyName: "rteDrawerCloseOnOverlayClick", publicName: "rteDrawerCloseOnOverlayClick", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerPrimaryButtonLabel: { classPropertyName: "rteDrawerPrimaryButtonLabel", publicName: "rteDrawerPrimaryButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerSecondaryButtonLabel: { classPropertyName: "rteDrawerSecondaryButtonLabel", publicName: "rteDrawerSecondaryButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerIsCollapsible: { classPropertyName: "rteDrawerIsCollapsible", publicName: "rteDrawerIsCollapsible", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerFixedHeader: { classPropertyName: "rteDrawerFixedHeader", publicName: "rteDrawerFixedHeader", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerCloseOnEscape: { classPropertyName: "rteDrawerCloseOnEscape", publicName: "rteDrawerCloseOnEscape", isSignal: true, isRequired: false, transformFunction: null }, rteDrawerIsClosable: { classPropertyName: "rteDrawerIsClosable", publicName: "rteDrawerIsClosable", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "onHostClick($event)" }, properties: { "class.rte-drawer-host--responsive-layout": "this.isResponsiveLayoutHost", "style.display": "this.responsiveHostDisplay", "style.flex-direction": "this.responsiveHostFlexDirection", "style.min-height": "this.responsiveHostMinHeight", "style.box-sizing": "this.responsiveHostBoxSizing" } }, queries: [{ propertyName: "drawerContent", first: true, predicate: ["drawerContent"], descendants: true, isSignal: true }, { propertyName: "drawerHeader", first: true, predicate: ["drawerHeader"], descendants: true, isSignal: true }, { propertyName: "drawerFooter", first: true, predicate: ["drawerFooter"], descendants: true, isSignal: true }, { propertyName: "drawerContextContent", first: true, predicate: ["drawerContextContent"], descendants: true, isSignal: true }], exportAs: ["rteDrawer"], ngImport: i0 }); }
275
+ }
276
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerDirective, decorators: [{
277
+ type: Directive,
278
+ args: [{
279
+ selector: "[rteDrawer]",
280
+ exportAs: "rteDrawer",
281
+ standalone: true,
282
+ }]
283
+ }], ctorParameters: () => [], propDecorators: { isResponsiveLayoutHost: [{
284
+ type: HostBinding,
285
+ args: ["class.rte-drawer-host--responsive-layout"]
286
+ }], responsiveHostDisplay: [{
287
+ type: HostBinding,
288
+ args: ["style.display"]
289
+ }], responsiveHostFlexDirection: [{
290
+ type: HostBinding,
291
+ args: ["style.flex-direction"]
292
+ }], responsiveHostMinHeight: [{
293
+ type: HostBinding,
294
+ args: ["style.min-height"]
295
+ }], responsiveHostBoxSizing: [{
296
+ type: HostBinding,
297
+ args: ["style.box-sizing"]
298
+ }], onHostClick: [{
299
+ type: HostListener,
300
+ args: ["click", ["$event"]]
301
+ }] } });
302
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLXJ0ZS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2RyYXdlci9kcmF3ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxlQUFlLEVBRWYsWUFBWSxFQUNaLFNBQVMsRUFDVCxNQUFNLEVBQ04sVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFDVCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDBCQUEwQixFQUFFLDRCQUE0QixFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFckgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBRTNGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBT3JELE1BQU0sT0FBTyxlQUFlO0lBb0MxQixJQUNjLHNCQUFzQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLFlBQVksQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFDYyxxQkFBcUI7UUFDakMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxJQUNjLDJCQUEyQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDMUUsQ0FBQztJQUVELElBQ2MsdUJBQXVCO1FBQ25DLE9BQU8s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QVUsRUFBRSxJQUFJO2lCQUNqQjt3REFzQ2Usc0JBQXNCO3NCQURuQyxXQUFXO3VCQUFDLDBDQUEwQztnQkFNekMscUJBQXFCO3NCQURsQyxXQUFXO3VCQUFDLGVBQWU7Z0JBTWQsMkJBQTJCO3NCQUR4QyxXQUFXO3VCQUFDLHNCQUFzQjtnQkFNckIsdUJBQXVCO3NCQURwQyxXQUFXO3VCQUFDLGtCQUFrQjtnQkFNakIsdUJBQXVCO3NCQURwQyxXQUFXO3VCQUFDLGtCQUFrQjtnQkFpRi9CLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBhZnRlck5leHRSZW5kZXIsXG4gIENvbXBvbmVudFJlZixcbiAgY29udGVudENoaWxkLFxuICBEaXJlY3RpdmUsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbmplY3RvcixcbiAgaW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgc2lnbmFsLFxuICBUZW1wbGF0ZVJlZixcbiAgdW50cmFja2VkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRFJBV0VSX1RSQU5TSVRJT05fRFVSQVRJT04sIGdldERyYXdlckNvbmZpZ3VyYXRpb25Jc3N1ZXMsIHdhaXRGb3JOZXh0RnJhbWUgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmVcIjtcbmltcG9ydCB0eXBlIHsgRHJhd2VyUG9zaXRpb24gfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tcG9uZW50cy9kcmF3ZXIvZHJhd2VyLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgRVNDQVBFX0tFWSB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb25zdGFudHMva2V5Ym9hcmQva2V5Ym9hcmQuY29uc3RhbnRzXCI7XG5cbmltcG9ydCB7IE92ZXJsYXlTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL292ZXJsYXkuc2VydmljZVwiO1xuXG5pbXBvcnQgeyBEcmF3ZXJDb21wb25lbnQgfSBmcm9tIFwiLi9kcmF3ZXIuY29tcG9uZW50XCI7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJbcnRlRHJhd2VyXVwiLFxuICBleHBvcnRBczogXCJydGVEcmF3ZXJcIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRHJhd2VyRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBkcmF3ZXJDb21wUmVmOiBDb21wb25lbnRSZWY8RHJhd2VyQ29tcG9uZW50PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGRyYXdlclBhbmVsRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSB1c2VkT3ZlcmxheSA9IGZhbHNlO1xuICBwcml2YXRlIGlzT3BlblByb3ZpZGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheVNlcnZpY2UgPSBpbmplY3QoT3ZlcmxheVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICByZWFkb25seSBkcmF3ZXJDb250ZW50ID0gY29udGVudENoaWxkLnJlcXVpcmVkPFRlbXBsYXRlUmVmPHVua25vd24+PihcImRyYXdlckNvbnRlbnRcIik7XG4gIHJlYWRvbmx5IGRyYXdlckhlYWRlciA9IGNvbnRlbnRDaGlsZDxUZW1wbGF0ZVJlZjx1bmtub3duPj4oXCJkcmF3ZXJIZWFkZXJcIik7XG4gIHJlYWRvbmx5IGRyYXdlckZvb3RlciA9IGNvbnRlbnRDaGlsZDxUZW1wbGF0ZVJlZjx1bmtub3duPj4oXCJkcmF3ZXJGb290ZXJcIik7XG4gIHJlYWRvbmx5IGRyYXdlckNvbnRleHRDb250ZW50ID0gY29udGVudENoaWxkPFRlbXBsYXRlUmVmPHVua25vd24+PihcImRyYXdlckNvbnRleHRDb250ZW50XCIpO1xuXG4gIHJlYWRvbmx5IHJ0ZURyYXdlcklkID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuICByZWFkb25seSBydGVEcmF3ZXJJc09wZW4gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHJ0ZURyYXdlclRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBydGVEcmF3ZXJJY29uID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBydGVEcmF3ZXJJY29uQXBwZWFyYW5jZSA9IGlucHV0PFwib3V0bGluZWRcIiB8IFwiZmlsbGVkXCI+KFwib3V0bGluZWRcIik7XG4gIHJlYWRvbmx5IHJ0ZURyYXdlclBvc2l0aW9uID0gaW5wdXQ8RHJhd2VyUG9zaXRpb24+KFwibW9kYWxcIik7XG4gIHJlYWRvbmx5IHJ0ZURyYXdlcldpZHRoID0gaW5wdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPigpO1xuICByZWFkb25seSBydGVEcmF3ZXJDbG9zZU9uT3ZlcmxheUNsaWNrID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBydGVEcmF3ZXJQcmltYXJ5QnV0dG9uTGFiZWwgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IHJ0ZURyYXdlclNlY29uZGFyeUJ1dHRvbkxhYmVsID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBydGVEcmF3ZXJJc0NvbGxhcHNpYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBydGVEcmF3ZXJGaXhlZEhlYWRlciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgcnRlRHJhd2VyQ2xvc2VPbkVzY2FwZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgcnRlRHJhd2VySXNDbG9zYWJsZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZWZmZWN0aXZlT3BlbiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBvbk1vdXNlRG93biA9IChtb3VzZUV2ZW50OiBNb3VzZUV2ZW50KSA9PiB0aGlzLmhhbmRsZUNsaWNrQXdheShtb3VzZUV2ZW50KTtcbiAgcHJpdmF0ZSByZWFkb25seSBvbktleURvd24gPSAoa2V5Ym9hcmRFdmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdGhpcy5oYW5kbGVLZXlkb3duKGtleWJvYXJkRXZlbnQpO1xuXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLnJ0ZS1kcmF3ZXItaG9zdC0tcmVzcG9uc2l2ZS1sYXlvdXRcIilcbiAgcHJvdGVjdGVkIGdldCBpc1Jlc3BvbnNpdmVMYXlvdXRIb3N0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJ0ZURyYXdlclBvc2l0aW9uKCkgPT09IFwicmVzcG9uc2l2ZVwiO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKFwic3R5bGUuZGlzcGxheVwiKVxuICBwcm90ZWN0ZWQgZ2V0IHJlc3BvbnNpdmVIb3N0RGlzcGxheSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJ0ZURyYXdlclBvc2l0aW9uKCkgPT09IFwicmVzcG9uc2l2ZVwiID8gXCJmbGV4XCIgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoXCJzdHlsZS5mbGV4LWRpcmVjdGlvblwiKVxuICBwcm90ZWN0ZWQgZ2V0IHJlc3BvbnNpdmVIb3N0RmxleERpcmVjdGlvbigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJ0ZURyYXdlclBvc2l0aW9uKCkgPT09IFwicmVzcG9uc2l2ZVwiID8gXCJjb2x1bW5cIiA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZyhcInN0eWxlLm1pbi1oZWlnaHRcIilcbiAgcHJvdGVjdGVkIGdldCByZXNwb25zaXZlSG9zdE1pbkhlaWdodCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJ0ZURyYXdlclBvc2l0aW9uKCkgPT09IFwicmVzcG9uc2l2ZVwiID8gXCIwXCIgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoXCJzdHlsZS5ib3gtc2l6aW5nXCIpXG4gIHByb3RlY3RlZCBnZXQgcmVzcG9uc2l2ZUhvc3RCb3hTaXppbmcoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5ydGVEcmF3ZXJQb3NpdGlvbigpID09PSBcInJlc3BvbnNpdmVcIiA/IFwiYm9yZGVyLWJveFwiIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgcmVzcG9uc2l2ZVNoZWxsTW91bnRNYXhBdHRlbXB0cyA9IDEyO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc2NoZWR1bGVSZXNwb25zaXZlU2hlbGxNb3VudChEcmF3ZXJEaXJlY3RpdmUucmVzcG9uc2l2ZVNoZWxsTW91bnRNYXhBdHRlbXB0cyk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5ydGVEcmF3ZXJJc09wZW4oKTtcbiAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzT3BlblByb3ZpZGVkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZWZmZWN0aXZlT3Blbi5zZXQodGhpcy5ydGVEcmF3ZXJJc09wZW4oKSk7XG4gICAgICAgIHRoaXMuaXNPcGVuUHJvdmlkZWQgPSB0cnVlO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG9wZW4gPSB0aGlzLmVmZmVjdGl2ZU9wZW4oKTtcbiAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICBpZiAob3Blbikge1xuICAgICAgICAgICAgdGhpcy5ydW5PcGVuVHJhbnNpdGlvbigpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJ1bkNsb3NlVHJhbnNpdGlvbigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuICAgICk7XG4gIH1cblxuICBvcGVuKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy52YWxpZGF0ZUZvck9wZW4oKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmVmZmVjdGl2ZU9wZW4uc2V0KHRydWUpO1xuICB9XG5cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5lZmZlY3RpdmVPcGVuLnNldChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIHNjaGVkdWxlUmVzcG9uc2l2ZVNoZWxsTW91bnQoYXR0ZW1wdHNSZW1haW5pbmc6IG51bWJlcik6IHZvaWQge1xuICAgIGFmdGVyTmV4dFJlbmRlcihcbiAgICAgICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMucnRlRHJhd2VyUG9zaXRpb24oKSAhPT0gXCJyZXNwb25zaXZlXCIgfHwgdGhpcy5kcmF3ZXJDb21wUmVmKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnZhbGlkYXRlRm9yT3BlbigpKSB7XG4gICAgICAgICAgdGhpcy5tb3VudERyYXdlcigpO1xuICAgICAgICAgIGNvbnN0IG1vdW50ZWRSZWYgPSB0aGlzLmRyYXdlckNvbXBSZWYgYXMgQ29tcG9uZW50UmVmPERyYXdlckNvbXBvbmVudD4gfCBudWxsO1xuICAgICAgICAgIGlmIChtb3VudGVkUmVmID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc3luY0lucHV0c1RvRHJhd2VyKCk7XG4gICAgICAgICAgbW91bnRlZFJlZi5zZXRJbnB1dChcImlzT3BlblwiLCBmYWxzZSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhdHRlbXB0c1JlbWFpbmluZyA+IDEpIHtcbiAgICAgICAgICB0aGlzLnNjaGVkdWxlUmVzcG9uc2l2ZVNoZWxsTW91bnQoYXR0ZW1wdHNSZW1haW5pbmcgLSAxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICBcIkRyYXdlcjogcmVzcG9uc2l2ZSBzaGVsbCBjb3VsZCBub3QgbW91bnQgYWZ0ZXIgbXVsdGlwbGUgYXR0ZW1wdHMgKGNvbnRlbnQgcXVlcmllcyBtYXkgc3RpbGwgYmUgZW1wdHkpLlwiLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGluamVjdG9yOiB0aGlzLmluamVjdG9yIH0sXG4gICAgKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIHRoaXMub25Nb3VzZURvd24pO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIHRoaXMub25LZXlEb3duKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoXCJjbGlja1wiLCBbXCIkZXZlbnRcIl0pXG4gIG9uSG9zdENsaWNrKGNsaWNrRXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBjbGlja0V2ZW50LnRhcmdldDtcbiAgICBpZiAoISh0YXJnZXQgaW5zdGFuY2VvZiBOb2RlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0cmlnZ2VyRWxlbWVudCA9IHRhcmdldCBpbnN0YW5jZW9mIEVsZW1lbnQgPyB0YXJnZXQuY2xvc2VzdChcIltkYXRhLXJ0ZS1kcmF3ZXItdHJpZ2dlcl1cIikgOiBudWxsO1xuICAgIGlmICghdHJpZ2dlckVsZW1lbnQgfHwgIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRyaWdnZXJFbGVtZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9wZW4oKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgdGhpcy5vbk1vdXNlRG93bik7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgdGhpcy5vbktleURvd24pO1xuICAgIHRoaXMudGVhcmRvd25EcmF3ZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgcnVuT3BlblRyYW5zaXRpb24oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnZhbGlkYXRlRm9yT3BlbigpKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmRyYXdlckNvbXBSZWYpIHtcbiAgICAgIHRoaXMubW91bnREcmF3ZXIoKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZHJhd2VyQ29tcFJlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3luY0lucHV0c1RvRHJhd2VyKCk7XG4gICAgdGhpcy5yZWZyZXNoRHJhd2VyUGFuZWxFbGVtZW50KCk7XG5cbiAgICB3YWl0Rm9yTmV4dEZyYW1lKCgpID0+IHtcbiAgICAgIHRoaXMuZHJhd2VyQ29tcFJlZj8uc2V0SW5wdXQoXCJpc09wZW5cIiwgdHJ1ZSk7XG4gICAgICB0aGlzLnJlZnJlc2hEcmF3ZXJQYW5lbEVsZW1lbnQoKTtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLnJ0ZURyYXdlclBvc2l0aW9uKCkgPT09IFwibW9kYWxcIiAmJiB0aGlzLnJ0ZURyYXdlcklzQ29sbGFwc2libGUoKSkge1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9IFwiaGlkZGVuXCI7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBydW5DbG9zZVRyYW5zaXRpb24oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRyYXdlckNvbXBSZWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRyYXdlckNvbXBSZWYuc2V0SW5wdXQoXCJpc09wZW5cIiwgZmFsc2UpO1xuXG4gICAgY29uc3Qga2VlcE1vdW50ZWQgPSB0aGlzLnJ0ZURyYXdlcklzQ29sbGFwc2libGUoKSB8fCB0aGlzLnJ0ZURyYXdlclBvc2l0aW9uKCkgPT09IFwicmVzcG9uc2l2ZVwiO1xuICAgIGlmICgha2VlcE1vdW50ZWQpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy50ZWFyZG93bkRyYXdlcigpLCBEUkFXRVJfVFJBTlNJVElPTl9EVVJBVElPTik7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJ0ZURyYXdlclBvc2l0aW9uKCkgPT09IFwibW9kYWxcIiAmJiB0aGlzLnJ0ZURyYXdlcklzQ29sbGFwc2libGUoKSkge1xuICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9IFwiXCI7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVDbG9zZWQoKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVUb2dnbGUoKTogdm9pZCB7XG4gICAgdGhpcy5lZmZlY3RpdmVPcGVuLnVwZGF0ZSgoY3VycmVudCkgPT4gIWN1cnJlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBtb3VudERyYXdlcigpOiB2b2lkIHtcbiAgICBjb25zdCBwb3NpdGlvbiA9IHRoaXMucnRlRHJhd2VyUG9zaXRpb24oKTtcbiAgICBjb25zdCBjb2xsYXBzaWJsZSA9IHRoaXMucnRlRHJhd2VySXNDb2xsYXBzaWJsZSgpO1xuICAgIGNvbnN0IHVzZU92ZXJsYXkgPSBwb3NpdGlvbiA9PT0gXCJtb2RhbFwiICYmICFjb2xsYXBzaWJsZTtcblxuICAgIGlmICh1c2VPdmVybGF5KSB7XG4gICAgICB0aGlzLmRyYXdlckNvbXBSZWYgPSB0aGlzLm92ZXJsYXlTZXJ2aWNlLmNyZWF0ZShEcmF3ZXJDb21wb25lbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZiwgdHJ1ZSk7XG4gICAgICB0aGlzLnVzZWRPdmVybGF5ID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kcmF3ZXJDb21wUmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChEcmF3ZXJDb21wb25lbnQpO1xuICAgICAgdGhpcy51c2VkT3ZlcmxheSA9IGZhbHNlO1xuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5kcmF3ZXJDb21wUmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIHRoaXMuZHJhd2VyQ29tcFJlZi5pbnN0YW5jZS5jbG9zZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuaGFuZGxlQ2xvc2VkKCk7XG4gICAgfSk7XG4gICAgdGhpcy5kcmF3ZXJDb21wUmVmLmluc3RhbmNlLmNsaWNrVG9nZ2xlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZVRvZ2dsZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB0ZWFyZG93bkRyYXdlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kcmF3ZXJDb21wUmVmKSB7XG4gICAgICB0aGlzLmRyYXdlckNvbXBSZWYuZGVzdHJveSgpO1xuICAgICAgdGhpcy5kcmF3ZXJDb21wUmVmID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMudXNlZE92ZXJsYXkpIHtcbiAgICAgIHRoaXMub3ZlcmxheVNlcnZpY2UuZGVzdHJveSgpO1xuICAgICAgdGhpcy51c2VkT3ZlcmxheSA9IGZhbHNlO1xuICAgIH1cbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gXCJcIjtcbiAgICB0aGlzLmRyYXdlclBhbmVsRWxlbWVudCA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIHN5bmNJbnB1dHNUb0RyYXdlcigpOiB2b2lkIHtcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmRyYXdlckNvbXBSZWY7XG4gICAgaWYgKCFjb21wb25lbnRSZWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb21wb25lbnRSZWYuc2V0SW5wdXQoXCJpZFwiLCB0aGlzLnJ0ZURyYXdlcklkKCkpO1xuICAgIGNvbXBvbmVudFJlZi5zZXRJbnB1dChcInRpdGxlXCIsIHRoaXMucnRlRHJhd2VyVGl0bGUoKSk7XG4gICAgY29tcG9uZW50UmVmLnNldElucHV0KFwiaWNvblwiLCB0aGlzLnJ0ZURyYXdlckljb24oKSk7XG4gICAgY29tcG9uZW50UmVmLnNldElucHV0KFwiaWNvbkFwcGVhcmFuY2VcIiwgdGhpcy5ydGVEcmF3ZXJJY29uQXBwZWFyYW5jZSgpKTtcbiAgICBjb21wb25lbnRSZWYuc2V0SW5wdXQoXCJwb3NpdGlvblwiLCB0aGlzLnJ0ZURyYXdlclBvc2l0aW9uKCkpO1xuICAgIGNvbXBvbmVudFJlZi5zZXRJbnB1dChcIndpZHRoXCIsIHRoaXMucnRlRHJhd2VyV2lkdGgoKSk7XG4gICAgY29tcG9uZW50UmVmLnNldElucHV0KFwiY2xvc2VPbk92ZXJsYXlDbGlja1wiLCB0aGlzLnJ0ZURyYXdlckNsb3NlT25PdmVybGF5Q2xpY2soKSk7XG4gICAgY29tcG9uZW50UmVmLnNldElucHV0KFwicHJpbWFyeUJ1dHRvbkxhYmVsXCIsIHRoaXMucnRlRHJhd2VyUHJpbWFyeUJ1dHRvbkxhYmVsKCkpO1xuICAgIGNvbXBvbmVudFJlZi5zZXRJbnB1dChcInNlY29uZGFyeUJ1dHRvbkxhYmVsXCIsIHRoaXMucnRlRHJhd2VyU2Vjb25kYXJ5QnV0dG9uTGFiZWwoKSk7XG4gICAgY29tcG9uZW50UmVmLnNldElucHV0KFwiaXNDb2xsYXBzaWJsZVwiLCB0aGlzLnJ0ZURyYXdlcklzQ29sbGFwc2libGUoKSk7XG4gICAgY29tcG9uZW50UmVmLnNldElucHV0KFwiZml4ZWRIZWFkZXJcIiwgdGhpcy5ydGVEcmF3ZXJGaXhlZEhlYWRlcigpKTtcbiAgICBjb21wb25lbnRSZWYuc2V0SW5wdXQoXCJjbG9zZU9uRXNjYXBlXCIsIHRoaXMucnRlRHJhd2VyQ2xvc2VPbkVzY2FwZSgpKTtcbiAgICBjb21wb25lbnRSZWYuc2V0SW5wdXQoXCJpc0Nsb3NhYmxlXCIsIHRoaXMucnRlRHJhd2VySXNDbG9zYWJsZSgpKTtcbiAgICBjb21wb25lbnRSZWYuc2V0SW5wdXQoXCJtb2RhbEhvc3RNb2RlXCIsIHRoaXMucnRlRHJhd2VyUG9zaXRpb24oKSA9PT0gXCJtb2RhbFwiICYmIHRoaXMucnRlRHJhd2VySXNDb2xsYXBzaWJsZSgpKTtcbiAgICBjb21wb25lbnRSZWYuc2V0SW5wdXQoXCJkcmF3ZXJDb250ZW50XCIsIHRoaXMuZHJhd2VyQ29udGVudCgpKTtcbiAgICBjb21wb25lbnRSZWYuc2V0SW5wdXQoXCJkcmF3ZXJIZWFkZXJcIiwgdGhpcy5kcmF3ZXJIZWFkZXIoKSA/PyBudWxsKTtcbiAgICBjb21wb25lbnRSZWYuc2V0SW5wdXQoXCJkcmF3ZXJGb290ZXJcIiwgdGhpcy5kcmF3ZXJGb290ZXIoKSA/PyBudWxsKTtcbiAgICBjb21wb25lbnRSZWYuc2V0SW5wdXQoXCJkcmF3ZXJDb250ZXh0Q29udGVudFwiLCB0aGlzLmRyYXdlckNvbnRleHRDb250ZW50KCkgPz8gbnVsbCk7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hEcmF3ZXJQYW5lbEVsZW1lbnQoKTogdm9pZCB7XG4gICAgY29uc3Qgcm9vdCA9IHRoaXMuZHJhd2VyQ29tcFJlZj8ubG9jYXRpb24ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgICB0aGlzLmRyYXdlclBhbmVsRWxlbWVudCA9IChyb290Py5xdWVyeVNlbGVjdG9yKFwiW2RhdGEtZHJhd2VyLXBhbmVsXVwiKSBhcyBIVE1MRWxlbWVudCB8IG51bGwpID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlRm9yT3BlbigpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc3N1ZXMgPSBnZXREcmF3ZXJDb25maWd1cmF0aW9uSXNzdWVzKHtcbiAgICAgIGhhc0N1c3RvbUhlYWRlcjogISF0aGlzLmRyYXdlckhlYWRlcigpLFxuICAgICAgaGFzVGl0bGU6ICEhdGhpcy5ydGVEcmF3ZXJUaXRsZSgpLFxuICAgICAgaGFzQ3VzdG9tRm9vdGVyOiAhIXRoaXMuZHJhd2VyRm9vdGVyKCksXG4gICAgICBoYXNQcmltYXJ5QnV0dG9uTGFiZWw6ICEhdGhpcy5ydGVEcmF3ZXJQcmltYXJ5QnV0dG9uTGFiZWwoKSxcbiAgICAgIHBvc2l0aW9uOiB0aGlzLnJ0ZURyYXdlclBvc2l0aW9uKCksXG4gICAgICBoYXNNYWluQ29udGVudDogISF0aGlzLmRyYXdlckNvbnRleHRDb250ZW50KCksXG4gICAgfSk7XG4gICAgaWYgKGlzc3Vlcykge1xuICAgICAgY29uc29sZS53YXJuKGlzc3Vlcyk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVLZXlkb3duKGtleWJvYXJkRXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZWZmZWN0aXZlT3BlbigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChrZXlib2FyZEV2ZW50LmtleSA9PT0gRVNDQVBFX0tFWSAmJiB0aGlzLnJ0ZURyYXdlckNsb3NlT25Fc2NhcGUoKSkge1xuICAgICAga2V5Ym9hcmRFdmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ2xpY2tBd2F5KG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZWZmZWN0aXZlT3BlbigpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnJ0ZURyYXdlclBvc2l0aW9uKCkgIT09IFwibW9kYWxcIikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucnRlRHJhd2VyQ2xvc2VPbk92ZXJsYXlDbGljaygpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaG9zdEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCB0YXJnZXQgPSBtb3VzZUV2ZW50LnRhcmdldCBhcyBOb2RlO1xuICAgIGlmIChob3N0RWxlbWVudC5jb250YWlucyh0YXJnZXQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmRyYXdlclBhbmVsRWxlbWVudD8uY29udGFpbnModGFyZ2V0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,17 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { DrawerTriggerDirective } from "./drawer-trigger/drawer-trigger.directive";
3
+ import { DrawerDirective } from "./drawer.directive";
4
+ import * as i0 from "@angular/core";
5
+ export class DrawerModule {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: DrawerModule, imports: [DrawerDirective, DrawerTriggerDirective], exports: [DrawerDirective, DrawerTriggerDirective] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerModule }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DrawerModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ imports: [DrawerDirective, DrawerTriggerDirective],
14
+ exports: [DrawerDirective, DrawerTriggerDirective],
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLXJ0ZS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2RyYXdlci9kcmF3ZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQU1yRCxNQUFNLE9BQU8sWUFBWTsrR0FBWixZQUFZO2dIQUFaLFlBQVksWUFIYixlQUFlLEVBQUUsc0JBQXNCLGFBQ3ZDLGVBQWUsRUFBRSxzQkFBc0I7Z0hBRXRDLFlBQVk7OzRGQUFaLFlBQVk7a0JBSnhCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsZUFBZSxFQUFFLHNCQUFzQixDQUFDO29CQUNsRCxPQUFPLEVBQUUsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUM7aUJBQ25EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBEcmF3ZXJUcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSBcIi4vZHJhd2VyLXRyaWdnZXIvZHJhd2VyLXRyaWdnZXIuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBEcmF3ZXJEaXJlY3RpdmUgfSBmcm9tIFwiLi9kcmF3ZXIuZGlyZWN0aXZlXCI7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtEcmF3ZXJEaXJlY3RpdmUsIERyYXdlclRyaWdnZXJEaXJlY3RpdmVdLFxuICBleHBvcnRzOiBbRHJhd2VyRGlyZWN0aXZlLCBEcmF3ZXJUcmlnZ2VyRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgRHJhd2VyTW9kdWxlIHt9XG4iXX0=
@@ -193,7 +193,7 @@ export class DropdownItemComponent {
193
193
  this.destroySubMenu();
194
194
  }
195
195
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
196
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: DropdownItemComponent, isStandalone: true, selector: "rte-dropdown-item", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, menuId: { classPropertyName: "menuId", publicName: "menuId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemEvent: "itemEvent", submenuRequest: "submenuRequest" }, ngImport: i0, template: "<ng-container>\n <li\n #itemRef\n class=\"rte-dropdown-item\"\n role=\"menuitem\"\n tabindex=\"0\"\n [attr.data-disabled]=\"item()?.disabled\"\n [attr.data-active]=\"hasChildren() ? subMenuOpen() : item()?.selected\"\n [attr.aria-haspopup]=\"hasChildren() ? 'menu' : null\"\n [attr.aria-expanded]=\"hasChildren() ? subMenuOpen() : null\"\n (click)=\"handleClick($event)\"\n (keydown)=\"handleKeyDown($event)\"\n (mouseenter)=\"handleMouseEnter()\"\n (mouseleave)=\"handleMouseLeave()\"\n (focus)=\"handleFocus()\"\n >\n <rte-checkbox\n *ngIf=\"item()?.hasCheckbox\"\n [label]=\"item()?.label ?? ''\"\n [id]=\"menuId() + ':' + item()?.id\"\n [checked]=\"item()?.selected ?? false\"\n [disabled]=\"item()?.disabled ?? false\"\n [showLabel]=\"false\"\n [indeterminate]=\"item()?.isIndeterminate ?? false\"\n ></rte-checkbox>\n <span *ngIf=\"item()?.hasIndent && !item()?.leftIcon\" style=\"width: 20px\"></span>\n <rte-icon *ngIf=\"item()?.leftIcon\" [name]=\"item()?.leftIcon ?? ''\" />\n <ng-container [ngSwitch]=\"!!item()?.link\">\n <a *ngSwitchCase=\"true\" style=\"flex: 2; text-decoration: none; color: inherit\" [href]=\"item()?.link\"\n >{{ item()?.label }}\n </a>\n <span *ngSwitchDefault style=\"flex: 2\">{{ item()?.label }}</span>\n </ng-container>\n <rte-icon *ngIf=\"hasChildren()\" name=\"arrow-chevron-right\" />\n <div *ngIf=\"item()?.trailingText\">{{ item()?.trailingText }}</div>\n <rte-badge\n *ngIf=\"shouldDisplayBadge()\"\n [badgeType]=\"item()?.badgeType!\"\n [badgeContent]=\"item()?.badgeContent!\"\n [count]=\"item()?.badgeCount\"\n [simpleBadge]=\"true\"\n [icon]=\"item()?.badgeIcon ?? ''\"\n [badgeSize]=\"item()?.badgeSize!\"\n ></rte-badge>\n </li>\n <div *ngIf=\"item()?.hasSeparator\" class=\"dropdown-divider\">\n <rte-divider />\n </div>\n</ng-container>\n", styles: [".rte-dropdown-item{font-family:Arial;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px;color:var(--content-secondary);display:flex;height:40px;padding:8px 12px;align-items:center;gap:12px;align-self:stretch;cursor:pointer;box-sizing:border-box}.rte-dropdown-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rte-dropdown-item:hover{background-color:var(--background-hover)}.rte-dropdown-item[data-disabled=true]{cursor:not-allowed;color:var(--content-disabled);background:var(--background-disabled)}.rte-dropdown-item[data-active=true]{background-color:var(--background-brand-inverse-pressed)}.rte-dropdown-item:focus-visible{outline:none;background-color:var(--background-hover)}.dropdown-divider{width:100%;padding:8px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: DividerComponent, selector: "rte-divider", inputs: ["orientation", "thickness", "appearance", "endPoint"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge", "withPlusSign"] }, { kind: "component", type: CheckboxComponent, selector: "rte-checkbox", inputs: ["id", "label", "value", "indeterminate", "description", "showLabel", "disabled", "error", "errorMessage", "readOnly", "checked"] }] }); }
196
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: DropdownItemComponent, isStandalone: true, selector: "rte-dropdown-item", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, menuId: { classPropertyName: "menuId", publicName: "menuId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemEvent: "itemEvent", submenuRequest: "submenuRequest" }, ngImport: i0, template: "<ng-container>\n <li\n #itemRef\n class=\"rte-dropdown-item\"\n role=\"menuitem\"\n tabindex=\"0\"\n [attr.data-disabled]=\"item()?.disabled\"\n [attr.data-active]=\"hasChildren() ? subMenuOpen() : item()?.selected\"\n [attr.aria-haspopup]=\"hasChildren() ? 'menu' : null\"\n [attr.aria-expanded]=\"hasChildren() ? subMenuOpen() : null\"\n (click)=\"handleClick($event)\"\n (keydown)=\"handleKeyDown($event)\"\n (mouseenter)=\"handleMouseEnter()\"\n (mouseleave)=\"handleMouseLeave()\"\n (focus)=\"handleFocus()\"\n >\n <rte-checkbox\n *ngIf=\"item()?.hasCheckbox\"\n [label]=\"item()?.label ?? ''\"\n [id]=\"menuId() + ':' + item()?.id\"\n [checked]=\"item()?.selected ?? false\"\n [disabled]=\"item()?.disabled ?? false\"\n [showLabel]=\"false\"\n [indeterminate]=\"item()?.isIndeterminate ?? false\"\n ></rte-checkbox>\n <span *ngIf=\"item()?.hasIndent && !item()?.leftIcon\" style=\"width: 20px\"></span>\n <rte-icon *ngIf=\"item()?.leftIcon\" [name]=\"item()?.leftIcon ?? ''\" />\n <ng-container [ngSwitch]=\"!!item()?.link\">\n <a *ngSwitchCase=\"true\" style=\"flex: 2; text-decoration: none; color: inherit\" [href]=\"item()?.link\"\n >{{ item()?.label }}\n </a>\n <span *ngSwitchDefault style=\"flex: 2\">{{ item()?.label }}</span>\n </ng-container>\n <rte-icon *ngIf=\"hasChildren()\" name=\"arrow-chevron-right\" />\n <div *ngIf=\"item()?.trailingText\">{{ item()?.trailingText }}</div>\n <rte-badge\n *ngIf=\"shouldDisplayBadge()\"\n [badgeType]=\"item()?.badgeType!\"\n [badgeContent]=\"item()?.badgeContent!\"\n [count]=\"item()?.badgeCount\"\n [simpleBadge]=\"true\"\n [icon]=\"item()?.badgeIcon ?? ''\"\n [badgeSize]=\"item()?.badgeSize!\"\n ></rte-badge>\n </li>\n <div *ngIf=\"item()?.hasSeparator\" class=\"dropdown-divider\">\n <rte-divider />\n </div>\n</ng-container>\n", styles: [".rte-dropdown-item{font-family:Arial;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px;color:var(--content-secondary);display:flex;height:40px;padding:8px 12px;align-items:center;gap:12px;align-self:stretch;cursor:pointer;box-sizing:border-box}.rte-dropdown-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rte-dropdown-item:hover{background-color:var(--background-hover)}.rte-dropdown-item[data-disabled=true]{cursor:not-allowed;color:var(--content-disabled);background:var(--background-disabled)}.rte-dropdown-item[data-active=true]{background-color:var(--background-brand-inverse-pressed)}.rte-dropdown-item:focus-visible{outline:none;background-color:var(--background-hover)}.dropdown-divider{width:100%;padding:8px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: DividerComponent, selector: "rte-divider", inputs: ["orientation", "thickness", "appearance", "endPoint"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge", "withPlusSign"] }, { kind: "component", type: CheckboxComponent, selector: "rte-checkbox", inputs: ["id", "label", "value", "indeterminate", "description", "showLabel", "disabled", "error", "errorMessage", "readOnly", "checked", "tabindex"] }] }); }
197
197
  }
198
198
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownItemComponent, decorators: [{
199
199
  type: Component,