@design-system-rte/angular 1.5.0 → 1.6.1-rc1
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.
- package/esm2022/lib/components/accordion/accordion.component.mjs +94 -0
- package/esm2022/lib/components/avatar/assets/status/status.component.mjs +15 -0
- package/esm2022/lib/components/avatar/avatar.component.mjs +52 -0
- package/esm2022/lib/components/banner/banner.component.mjs +1 -1
- package/esm2022/lib/components/button/button.component.mjs +9 -3
- package/esm2022/lib/components/card/card.component.mjs +5 -6
- package/esm2022/lib/components/checkbox/checkbox.component.mjs +4 -3
- package/esm2022/lib/components/checkbox-group/checkbox-group.component.mjs +1 -1
- package/esm2022/lib/components/drawer/drawer-trigger/drawer-trigger.directive.mjs +33 -0
- package/esm2022/lib/components/drawer/drawer.component.mjs +160 -0
- package/esm2022/lib/components/drawer/drawer.directive.mjs +302 -0
- package/esm2022/lib/components/drawer/drawer.module.mjs +17 -0
- package/esm2022/lib/components/dropdown/dropdown-item/dropdown-item.component.mjs +1 -1
- package/esm2022/lib/components/icon/icon-map.mjs +119 -112
- package/esm2022/lib/components/icon/icon.component.mjs +9 -10
- package/esm2022/lib/components/popover/popover.component.mjs +1 -1
- package/esm2022/lib/components/toast/toast.component.mjs +1 -1
- package/esm2022/lib/components/treeview/index.mjs +4 -0
- package/esm2022/lib/components/treeview/treeview-check.service.mjs +24 -0
- package/esm2022/lib/components/treeview/treeview-item/treeview-item-border/treeview-item-border.component.mjs +20 -0
- package/esm2022/lib/components/treeview/treeview-item/treeview-item.component.mjs +227 -0
- package/esm2022/lib/components/treeview/treeview-keyboard.service.mjs +80 -0
- package/esm2022/lib/components/treeview/treeview-selection.service.mjs +23 -0
- package/esm2022/lib/components/treeview/treeview.component.mjs +89 -0
- package/esm2022/public-api.mjs +8 -1
- package/fesm2022/design-system-rte-angular.mjs +1338 -261
- package/fesm2022/design-system-rte-angular.mjs.map +1 -1
- package/lib/assets/icons/add.svg +3 -0
- package/lib/assets/icons/add_circle_filled.svg +3 -0
- package/lib/assets/icons/add_circle_outlined.svg +3 -0
- package/lib/assets/icons/admin_panel_settings_filled.svg +3 -0
- package/lib/assets/icons/admin_panel_settings_outlined.svg +3 -0
- package/lib/assets/icons/alt_route.svg +3 -0
- package/lib/assets/icons/analytics_filled.svg +3 -0
- package/lib/assets/icons/analytics_outlined.svg +3 -0
- package/lib/assets/icons/apps.svg +3 -0
- package/lib/assets/icons/archive_filled.svg +3 -0
- package/lib/assets/icons/archive_outlined.svg +3 -0
- package/lib/assets/icons/arrow_alt_down.svg +3 -0
- package/lib/assets/icons/arrow_alt_down_left.svg +3 -0
- package/lib/assets/icons/arrow_alt_down_right.svg +3 -0
- package/lib/assets/icons/arrow_alt_left.svg +3 -0
- package/lib/assets/icons/arrow_alt_right.svg +3 -0
- package/lib/assets/icons/arrow_alt_up.svg +3 -0
- package/lib/assets/icons/arrow_alt_up_left.svg +3 -0
- package/lib/assets/icons/arrow_alt_up_right.svg +3 -0
- package/lib/assets/icons/arrow_angle_down_left.svg +3 -0
- package/lib/assets/icons/arrow_angle_down_right.svg +3 -0
- package/lib/assets/icons/arrow_angle_up_left.svg +3 -0
- package/lib/assets/icons/arrow_angle_up_right.svg +3 -0
- package/lib/assets/icons/arrow_chevron_down.svg +3 -0
- package/lib/assets/icons/arrow_chevron_left.svg +3 -0
- package/lib/assets/icons/arrow_chevron_right.svg +3 -0
- package/lib/assets/icons/arrow_chevron_up.svg +3 -0
- package/lib/assets/icons/arrow_circle_chevron_down_filled.svg +3 -0
- package/lib/assets/icons/arrow_circle_chevron_down_outlined.svg +3 -0
- package/lib/assets/icons/arrow_circle_chevron_left_filled.svg +3 -0
- package/lib/assets/icons/arrow_circle_chevron_left_outlined.svg +3 -0
- package/lib/assets/icons/arrow_circle_chevron_right_filled.svg +3 -0
- package/lib/assets/icons/arrow_circle_chevron_right_outlined.svg +3 -0
- package/lib/assets/icons/arrow_circle_chevron_up_filled.svg +3 -0
- package/lib/assets/icons/arrow_circle_chevron_up_outlined.svg +3 -0
- package/lib/assets/icons/arrow_circle_down_filled.svg +3 -0
- package/lib/assets/icons/arrow_circle_down_outlined.svg +3 -0
- package/lib/assets/icons/arrow_circle_left_filled.svg +3 -0
- package/lib/assets/icons/arrow_circle_left_outlined.svg +3 -0
- package/lib/assets/icons/arrow_circle_right_filled.svg +3 -0
- package/lib/assets/icons/arrow_circle_right_outlined.svg +3 -0
- package/lib/assets/icons/arrow_circle_up_filled.svg +3 -0
- package/lib/assets/icons/arrow_circle_up_outlined.svg +3 -0
- package/lib/assets/icons/arrow_compare.svg +3 -0
- package/lib/assets/icons/arrow_double_down.svg +3 -0
- package/lib/assets/icons/arrow_double_left.svg +3 -0
- package/lib/assets/icons/arrow_double_right.svg +3 -0
- package/lib/assets/icons/arrow_double_up.svg +3 -0
- package/lib/assets/icons/arrow_down.svg +3 -0
- package/lib/assets/icons/arrow_down_left.svg +3 -0
- package/lib/assets/icons/arrow_down_right.svg +3 -0
- package/lib/assets/icons/arrow_drop_down.svg +3 -0
- package/lib/assets/icons/arrow_drop_up.svg +3 -0
- package/lib/assets/icons/arrow_left.svg +3 -0
- package/lib/assets/icons/arrow_right.svg +3 -0
- package/lib/assets/icons/arrow_up.svg +3 -0
- package/lib/assets/icons/arrow_up_left.svg +3 -0
- package/lib/assets/icons/arrow_up_right.svg +3 -0
- package/lib/assets/icons/article_filled.svg +3 -0
- package/lib/assets/icons/article_outlined.svg +3 -0
- package/lib/assets/icons/assignment_complete_filled.svg +3 -0
- package/lib/assets/icons/assignment_complete_outlined.svg +3 -0
- package/lib/assets/icons/assignment_filled.svg +3 -0
- package/lib/assets/icons/assignment_outlined.svg +3 -0
- package/lib/assets/icons/asterisk.svg +3 -0
- package/lib/assets/icons/attach_file.svg +3 -0
- package/lib/assets/icons/battery_alert_filled.svg +3 -0
- package/lib/assets/icons/battery_alert_outlined.svg +3 -0
- package/lib/assets/icons/battery_alt_empty.svg +3 -0
- package/lib/assets/icons/battery_alt_full.svg +3 -0
- package/lib/assets/icons/battery_charging.svg +3 -0
- package/lib/assets/icons/battery_charging_full_filled.svg +3 -0
- package/lib/assets/icons/battery_charging_full_outlined.svg +3 -0
- package/lib/assets/icons/battery_empty.svg +3 -0
- package/lib/assets/icons/battery_full.svg +3 -0
- package/lib/assets/icons/bluetooth.svg +3 -0
- package/lib/assets/icons/bluetooth_off.svg +3 -0
- package/lib/assets/icons/bolt_alt_circle_filled.svg +3 -0
- package/lib/assets/icons/bolt_alt_circle_outlined.svg +3 -0
- package/lib/assets/icons/bolt_alt_filled.svg +3 -0
- package/lib/assets/icons/bolt_alt_outlined.svg +3 -0
- package/lib/assets/icons/bolt_circle_filled.svg +3 -0
- package/lib/assets/icons/bolt_circle_outlined.svg +3 -0
- package/lib/assets/icons/bolt_filled.svg +3 -0
- package/lib/assets/icons/bolt_outlined.svg +3 -0
- package/lib/assets/icons/bookmark_filled.svg +3 -0
- package/lib/assets/icons/bookmark_outlined.svg +3 -0
- package/lib/assets/icons/bookmarks_filled.svg +3 -0
- package/lib/assets/icons/bookmarks_outlined.svg +3 -0
- package/lib/assets/icons/build_filled.svg +3 -0
- package/lib/assets/icons/build_outlined.svg +3 -0
- package/lib/assets/icons/calendar_available_filled.svg +3 -0
- package/lib/assets/icons/calendar_available_outlined.svg +3 -0
- package/lib/assets/icons/calendar_busy_filled.svg +3 -0
- package/lib/assets/icons/calendar_busy_outlined.svg +3 -0
- package/lib/assets/icons/calendar_month_filled.svg +3 -0
- package/lib/assets/icons/calendar_month_outlined.svg +3 -0
- package/lib/assets/icons/calendar_today_filled.svg +3 -0
- package/lib/assets/icons/calendar_today_outlined.svg +3 -0
- package/lib/assets/icons/call_filled.svg +3 -0
- package/lib/assets/icons/call_outlined.svg +3 -0
- package/lib/assets/icons/cancel_filled.svg +3 -0
- package/lib/assets/icons/cancel_outlined.svg +3 -0
- package/lib/assets/icons/category_filled.svg +3 -0
- package/lib/assets/icons/category_outlined.svg +3 -0
- package/lib/assets/icons/chart_add_filled.svg +3 -0
- package/lib/assets/icons/chart_add_outlined.svg +3 -0
- package/lib/assets/icons/chart_area_filled.svg +3 -0
- package/lib/assets/icons/chart_area_outlined.svg +3 -0
- package/lib/assets/icons/chart_bar.svg +3 -0
- package/lib/assets/icons/chart_bar_stacked.svg +3 -0
- package/lib/assets/icons/chart_pie_filled.svg +3 -0
- package/lib/assets/icons/chart_pie_outlined.svg +3 -0
- package/lib/assets/icons/chart_table_filled.svg +3 -0
- package/lib/assets/icons/chart_table_outlined.svg +3 -0
- package/lib/assets/icons/chat_alt_filled.svg +3 -0
- package/lib/assets/icons/chat_alt_outlined.svg +3 -0
- package/lib/assets/icons/chat_alt_unread_filled.svg +3 -0
- package/lib/assets/icons/chat_alt_unread_outlined.svg +3 -0
- package/lib/assets/icons/chat_filled.svg +3 -0
- package/lib/assets/icons/chat_outlined.svg +3 -0
- package/lib/assets/icons/chat_unread_filled.svg +3 -0
- package/lib/assets/icons/chat_unread_outlined.svg +3 -0
- package/lib/assets/icons/check.svg +3 -0
- package/lib/assets/icons/check_circle_filled.svg +3 -0
- package/lib/assets/icons/check_circle_outlined.svg +3 -0
- package/lib/assets/icons/check_indeterminate.svg +3 -0
- package/lib/assets/icons/check_small.svg +3 -0
- package/lib/assets/icons/checkbox_empty.svg +3 -0
- package/lib/assets/icons/checkbox_filled.svg +3 -0
- package/lib/assets/icons/checkbox_indeterminate_filled.svg +3 -0
- package/lib/assets/icons/checkbox_indeterminate_outlined.svg +3 -0
- package/lib/assets/icons/checkbox_outlined.svg +3 -0
- package/lib/assets/icons/clock_filled.svg +3 -0
- package/lib/assets/icons/clock_outlined.svg +3 -0
- package/lib/assets/icons/close.svg +3 -0
- package/lib/assets/icons/cloud_download_filled.svg +3 -0
- package/lib/assets/icons/cloud_download_outlined.svg +3 -0
- package/lib/assets/icons/cloud_filled.svg +3 -0
- package/lib/assets/icons/cloud_off_filled.svg +3 -0
- package/lib/assets/icons/cloud_off_outlined.svg +3 -0
- package/lib/assets/icons/cloud_outlined.svg +3 -0
- package/lib/assets/icons/cloud_upload_filled.svg +3 -0
- package/lib/assets/icons/cloud_upload_outlined.svg +3 -0
- package/lib/assets/icons/comment_add_filled.svg +3 -0
- package/lib/assets/icons/comment_add_outlined.svg +3 -0
- package/lib/assets/icons/comment_filled.svg +3 -0
- package/lib/assets/icons/comment_outlined.svg +3 -0
- package/lib/assets/icons/company.svg +3 -0
- package/lib/assets/icons/compare.svg +3 -0
- package/lib/assets/icons/contact_filled.svg +3 -0
- package/lib/assets/icons/contact_outlined.svg +3 -0
- package/lib/assets/icons/copy_all.svg +3 -0
- package/lib/assets/icons/copy_filled.svg +3 -0
- package/lib/assets/icons/copy_outlined.svg +3 -0
- package/lib/assets/icons/crisis_alert.svg +3 -0
- package/lib/assets/icons/cut.svg +3 -0
- package/lib/assets/icons/dangerous_filled.svg +3 -0
- package/lib/assets/icons/dangerous_outlined.svg +3 -0
- package/lib/assets/icons/dashboard_filled.svg +3 -0
- package/lib/assets/icons/dashboard_outlined.svg +3 -0
- package/lib/assets/icons/database_filled.svg +3 -0
- package/lib/assets/icons/database_outlined.svg +3 -0
- package/lib/assets/icons/delete_filled.svg +3 -0
- package/lib/assets/icons/delete_outlined.svg +3 -0
- package/lib/assets/icons/desktop_filled.svg +3 -0
- package/lib/assets/icons/desktop_outlined.svg +3 -0
- package/lib/assets/icons/devices_filled.svg +3 -0
- package/lib/assets/icons/devices_outlined.svg +3 -0
- package/lib/assets/icons/download.svg +3 -0
- package/lib/assets/icons/download_done.svg +3 -0
- package/lib/assets/icons/draft_filled.svg +3 -0
- package/lib/assets/icons/draft_outlined.svg +3 -0
- package/lib/assets/icons/drag_handle.svg +3 -0
- package/lib/assets/icons/drag_indicator.svg +3 -0
- package/lib/assets/icons/eco_filled.svg +3 -0
- package/lib/assets/icons/eco_outlined.svg +3 -0
- package/lib/assets/icons/edit_filled.svg +3 -0
- package/lib/assets/icons/edit_outlined.svg +3 -0
- package/lib/assets/icons/electric_meter_filled.svg +3 -0
- package/lib/assets/icons/electric_meter_outlined.svg +3 -0
- package/lib/assets/icons/error_filled.svg +3 -0
- package/lib/assets/icons/error_outlined.svg +3 -0
- package/lib/assets/icons/exclamation.svg +3 -0
- package/lib/assets/icons/explore_filled.svg +3 -0
- package/lib/assets/icons/explore_off_filled.svg +3 -0
- package/lib/assets/icons/explore_off_outlined.svg +3 -0
- package/lib/assets/icons/explore_outlined.svg +3 -0
- package/lib/assets/icons/explore_travel.svg +3 -0
- package/lib/assets/icons/export_xls_filled.svg +3 -0
- package/lib/assets/icons/export_xls_outlined.svg +6 -0
- package/lib/assets/icons/external_link.svg +3 -0
- package/lib/assets/icons/fast_forward_filled.svg +3 -0
- package/lib/assets/icons/fast_forward_outlined.svg +3 -0
- package/lib/assets/icons/fast_rewind_filled.svg +3 -0
- package/lib/assets/icons/fast_rewind_outlined.svg +3 -0
- package/lib/assets/icons/feedback_filled.svg +3 -0
- package/lib/assets/icons/feedback_outlined.svg +3 -0
- package/lib/assets/icons/file_copy_filled.svg +3 -0
- package/lib/assets/icons/file_copy_outlined.svg +3 -0
- package/lib/assets/icons/file_download_filled.svg +3 -0
- package/lib/assets/icons/file_download_outlined.svg +3 -0
- package/lib/assets/icons/file_upload_filled.svg +3 -0
- package/lib/assets/icons/file_upload_outlined.svg +3 -0
- package/lib/assets/icons/filter.svg +3 -0
- package/lib/assets/icons/filter_alt_filled.svg +3 -0
- package/lib/assets/icons/filter_alt_off_filled.svg +3 -0
- package/lib/assets/icons/filter_alt_off_outlined.svg +3 -0
- package/lib/assets/icons/filter_alt_outlined.svg +3 -0
- package/lib/assets/icons/filter_off.svg +3 -0
- package/lib/assets/icons/fire_filled.svg +3 -0
- package/lib/assets/icons/fire_outlined.svg +3 -0
- package/lib/assets/icons/first_page.svg +3 -0
- package/lib/assets/icons/fit_screen_filled.svg +3 -0
- package/lib/assets/icons/fit_screen_outlined.svg +3 -0
- package/lib/assets/icons/flag_filled.svg +3 -0
- package/lib/assets/icons/flag_outlined.svg +3 -0
- package/lib/assets/icons/flash_filled.svg +3 -0
- package/lib/assets/icons/flash_off_filled.svg +3 -0
- package/lib/assets/icons/flash_off_outlined.svg +3 -0
- package/lib/assets/icons/flash_outlined.svg +3 -0
- package/lib/assets/icons/folder_add_filled.svg +3 -0
- package/lib/assets/icons/folder_add_outlined.svg +3 -0
- package/lib/assets/icons/folder_filled.svg +3 -0
- package/lib/assets/icons/folder_move_filled.svg +3 -0
- package/lib/assets/icons/folder_move_outlined.svg +3 -0
- package/lib/assets/icons/folder_open_filled.svg +3 -0
- package/lib/assets/icons/folder_open_outlined.svg +3 -0
- package/lib/assets/icons/folder_outlined.svg +3 -0
- package/lib/assets/icons/folder_shared_filled.svg +3 -0
- package/lib/assets/icons/folder_shared_outlined.svg +3 -0
- package/lib/assets/icons/forum_filled.svg +3 -0
- package/lib/assets/icons/forum_outlined.svg +3 -0
- package/lib/assets/icons/forward.svg +3 -0
- package/lib/assets/icons/fullscreen.svg +3 -0
- package/lib/assets/icons/fullscreen_exit.svg +3 -0
- package/lib/assets/icons/group_add_filled.svg +3 -0
- package/lib/assets/icons/group_add_outlined.svg +3 -0
- package/lib/assets/icons/group_filled.svg +3 -0
- package/lib/assets/icons/group_outlined.svg +3 -0
- package/lib/assets/icons/groups_filled.svg +3 -0
- package/lib/assets/icons/groups_outlined.svg +3 -0
- package/lib/assets/icons/handshake_filled.svg +3 -0
- package/lib/assets/icons/handshake_outlined.svg +3 -0
- package/lib/assets/icons/headphones_filled.svg +3 -0
- package/lib/assets/icons/headphones_outlined.svg +3 -0
- package/lib/assets/icons/heart_filled.svg +3 -0
- package/lib/assets/icons/heart_outlined.svg +3 -0
- package/lib/assets/icons/help_filled.svg +3 -0
- package/lib/assets/icons/help_outlined.svg +3 -0
- package/lib/assets/icons/history.svg +3 -0
- package/lib/assets/icons/home_filled.svg +3 -0
- package/lib/assets/icons/home_outlined.svg +3 -0
- package/lib/assets/icons/hourglass_empty.svg +3 -0
- package/lib/assets/icons/hourglass_filled.svg +3 -0
- package/lib/assets/icons/hourglass_outlined.svg +3 -0
- package/lib/assets/icons/image_broken_filled.svg +3 -0
- package/lib/assets/icons/image_broken_outlined.svg +3 -0
- package/lib/assets/icons/image_filled.svg +3 -0
- package/lib/assets/icons/image_gallery_filled.svg +3 -0
- package/lib/assets/icons/image_gallery_outlined.svg +3 -0
- package/lib/assets/icons/image_outlined.svg +3 -0
- package/lib/assets/icons/inbox_filled.svg +3 -0
- package/lib/assets/icons/inbox_outlined.svg +3 -0
- package/lib/assets/icons/info_filled.svg +3 -0
- package/lib/assets/icons/info_i.svg +3 -0
- package/lib/assets/icons/info_outlined.svg +3 -0
- package/lib/assets/icons/keep_filled.svg +3 -0
- package/lib/assets/icons/keep_off_filled.svg +3 -0
- package/lib/assets/icons/keep_off_outlined.svg +3 -0
- package/lib/assets/icons/keep_outlined.svg +3 -0
- package/lib/assets/icons/label_filled.svg +3 -0
- package/lib/assets/icons/label_outlined.svg +3 -0
- package/lib/assets/icons/language.svg +3 -0
- package/lib/assets/icons/laptop_filled.svg +3 -0
- package/lib/assets/icons/laptop_outlined.svg +3 -0
- package/lib/assets/icons/last_page.svg +3 -0
- package/lib/assets/icons/left_panel_close_filled.svg +3 -0
- package/lib/assets/icons/left_panel_close_outlined.svg +3 -0
- package/lib/assets/icons/left_panel_open_filled.svg +3 -0
- package/lib/assets/icons/left_panel_open_outlined.svg +3 -0
- package/lib/assets/icons/light_off_filled.svg +3 -0
- package/lib/assets/icons/light_off_outlined.svg +3 -0
- package/lib/assets/icons/lightbulb_alt_filled.svg +3 -0
- package/lib/assets/icons/lightbulb_alt_outlined.svg +3 -0
- package/lib/assets/icons/lightbulb_circle_filled.svg +3 -0
- package/lib/assets/icons/lightbulb_circle_outlined.svg +3 -0
- package/lib/assets/icons/lightbulb_filled.svg +3 -0
- package/lib/assets/icons/lightbulb_outlined.svg +3 -0
- package/lib/assets/icons/link.svg +3 -0
- package/lib/assets/icons/link_off.svg +3 -0
- package/lib/assets/icons/list.svg +3 -0
- package/lib/assets/icons/list_alt_filled.svg +3 -0
- package/lib/assets/icons/list_alt_outlined.svg +3 -0
- package/lib/assets/icons/location_disabled.svg +10 -0
- package/lib/assets/icons/location_me_filled.svg +3 -0
- package/lib/assets/icons/location_me_outlined.svg +3 -0
- package/lib/assets/icons/location_off_filled.svg +3 -0
- package/lib/assets/icons/location_off_outlined.svg +3 -0
- package/lib/assets/icons/location_on_filled.svg +3 -0
- package/lib/assets/icons/location_on_outlined.svg +3 -0
- package/lib/assets/icons/lock_filled.svg +3 -0
- package/lib/assets/icons/lock_open_filled.svg +3 -0
- package/lib/assets/icons/lock_open_outlined.svg +3 -0
- package/lib/assets/icons/lock_open_right_filled.svg +3 -0
- package/lib/assets/icons/lock_open_right_outlined.svg +3 -0
- package/lib/assets/icons/lock_outlined.svg +3 -0
- package/lib/assets/icons/login.svg +3 -0
- package/lib/assets/icons/logout.svg +3 -0
- package/lib/assets/icons/mail_filled.svg +3 -0
- package/lib/assets/icons/mail_outlined.svg +3 -0
- package/lib/assets/icons/mail_unread_filled.svg +3 -0
- package/lib/assets/icons/mail_unread_outlined.svg +3 -0
- package/lib/assets/icons/map_filled.svg +3 -0
- package/lib/assets/icons/map_outlined.svg +3 -0
- package/lib/assets/icons/menu.svg +3 -0
- package/lib/assets/icons/menu_open.svg +3 -0
- package/lib/assets/icons/mic_filled.svg +3 -0
- package/lib/assets/icons/mic_off_filled.svg +3 -0
- package/lib/assets/icons/mic_off_outlined.svg +3 -0
- package/lib/assets/icons/mic_outlined.svg +3 -0
- package/lib/assets/icons/mode_dark_filled.svg +3 -0
- package/lib/assets/icons/mode_dark_outlined.svg +3 -0
- package/lib/assets/icons/mode_light_filled.svg +10 -0
- package/lib/assets/icons/mode_light_outlined.svg +10 -0
- package/lib/assets/icons/monitoring.svg +3 -0
- package/lib/assets/icons/more_down.svg +3 -0
- package/lib/assets/icons/more_horiz.svg +3 -0
- package/lib/assets/icons/more_up.svg +3 -0
- package/lib/assets/icons/more_vert.svg +3 -0
- package/lib/assets/icons/notification_filled.svg +3 -0
- package/lib/assets/icons/notification_important_filled.svg +3 -0
- package/lib/assets/icons/notification_important_outlined.svg +3 -0
- package/lib/assets/icons/notification_off_filled.svg +3 -0
- package/lib/assets/icons/notification_off_outlined.svg +3 -0
- package/lib/assets/icons/notification_outlined.svg +3 -0
- package/lib/assets/icons/notification_unread_filled.svg +3 -0
- package/lib/assets/icons/notification_unread_outlined.svg +3 -0
- package/lib/assets/icons/ohm.svg +3 -0
- package/lib/assets/icons/open_in_full.svg +3 -0
- package/lib/assets/icons/palette_filled.svg +3 -0
- package/lib/assets/icons/palette_outlined.svg +3 -0
- package/lib/assets/icons/paste.svg +3 -0
- package/lib/assets/icons/pause_circle_filled.svg +3 -0
- package/lib/assets/icons/pause_circle_outlined.svg +3 -0
- package/lib/assets/icons/pause_filled.svg +3 -0
- package/lib/assets/icons/pause_outlined.svg +3 -0
- package/lib/assets/icons/photo_camera_filled.svg +3 -0
- package/lib/assets/icons/photo_camera_outlined.svg +3 -0
- package/lib/assets/icons/play_circle_filled.svg +3 -0
- package/lib/assets/icons/play_circle_outlined.svg +3 -0
- package/lib/assets/icons/play_filled.svg +3 -0
- package/lib/assets/icons/play_outlined.svg +3 -0
- package/lib/assets/icons/play_pause.svg +3 -0
- package/lib/assets/icons/power_filled.svg +3 -0
- package/lib/assets/icons/power_input.svg +3 -0
- package/lib/assets/icons/power_off_filled.svg +3 -0
- package/lib/assets/icons/power_off_outlined.svg +3 -0
- package/lib/assets/icons/power_outlined.svg +3 -0
- package/lib/assets/icons/power_plug.svg +3 -0
- package/lib/assets/icons/power_plug_connect_filled.svg +3 -0
- package/lib/assets/icons/power_plug_connect_outlined.svg +3 -0
- package/lib/assets/icons/power_settings.svg +3 -0
- package/lib/assets/icons/power_settings_circle_filled.svg +3 -0
- package/lib/assets/icons/power_settings_circle_outlined.svg +3 -0
- package/lib/assets/icons/power_solar_filled.svg +3 -0
- package/lib/assets/icons/power_solar_outlined.svg +3 -0
- package/lib/assets/icons/power_switch_filled.svg +3 -0
- package/lib/assets/icons/power_switch_outlined.svg +3 -0
- package/lib/assets/icons/power_wind_filled.svg +3 -0
- package/lib/assets/icons/power_wind_outlined.svg +3 -0
- package/lib/assets/icons/print_filled.svg +3 -0
- package/lib/assets/icons/print_outlined.svg +3 -0
- package/lib/assets/icons/priority_high.svg +3 -0
- package/lib/assets/icons/public.svg +3 -0
- package/lib/assets/icons/publish.svg +3 -0
- package/lib/assets/icons/question_mark.svg +3 -0
- package/lib/assets/icons/radar.svg +3 -0
- package/lib/assets/icons/radio_button_empty.svg +3 -0
- package/lib/assets/icons/redo.svg +3 -0
- package/lib/assets/icons/reload.svg +3 -0
- package/lib/assets/icons/remove.svg +3 -0
- package/lib/assets/icons/reply.svg +3 -0
- package/lib/assets/icons/reply_all.svg +3 -0
- package/lib/assets/icons/right_panel_close_filled.svg +3 -0
- package/lib/assets/icons/right_panel_close_outlined.svg +3 -0
- package/lib/assets/icons/right_panel_open_filled.svg +3 -0
- package/lib/assets/icons/right_panel_open_outlined.svg +3 -0
- package/lib/assets/icons/route.svg +3 -0
- package/lib/assets/icons/save_filled.svg +3 -0
- package/lib/assets/icons/save_outlined.svg +3 -0
- package/lib/assets/icons/search.svg +3 -0
- package/lib/assets/icons/send_filled.svg +3 -0
- package/lib/assets/icons/send_outlined.svg +3 -0
- package/lib/assets/icons/settings_filled.svg +3 -0
- package/lib/assets/icons/settings_outlined.svg +3 -0
- package/lib/assets/icons/share_filled.svg +3 -0
- package/lib/assets/icons/share_outlined.svg +3 -0
- package/lib/assets/icons/side_navigation.svg +3 -0
- package/lib/assets/icons/skip_next_filled.svg +3 -0
- package/lib/assets/icons/skip_next_outlined.svg +3 -0
- package/lib/assets/icons/skip_previous_filled.svg +3 -0
- package/lib/assets/icons/skip_previous_outlined.svg +3 -0
- package/lib/assets/icons/smartphone_filled.svg +3 -0
- package/lib/assets/icons/smartphone_outlined.svg +3 -0
- package/lib/assets/icons/sort.svg +3 -0
- package/lib/assets/icons/star_filled.svg +3 -0
- package/lib/assets/icons/star_outlined.svg +3 -0
- package/lib/assets/icons/sticky_note_filled.svg +3 -0
- package/lib/assets/icons/sticky_note_outlined.svg +3 -0
- package/lib/assets/icons/stop_circle_filled.svg +3 -0
- package/lib/assets/icons/stop_circle_outlined.svg +3 -0
- package/lib/assets/icons/stop_filled.svg +3 -0
- package/lib/assets/icons/stop_outlined.svg +3 -0
- package/lib/assets/icons/subtitles_filled.svg +3 -0
- package/lib/assets/icons/subtitles_outlined.svg +3 -0
- package/lib/assets/icons/support_agent.svg +3 -0
- package/lib/assets/icons/swap_horiz.svg +3 -0
- package/lib/assets/icons/swap_vert.svg +3 -0
- package/lib/assets/icons/text_snippet_filled.svg +3 -0
- package/lib/assets/icons/text_snippet_outlined.svg +3 -0
- package/lib/assets/icons/timeline.svg +3 -0
- package/lib/assets/icons/trash_restore_filled.svg +3 -0
- package/lib/assets/icons/trash_restore_outlined.svg +3 -0
- package/lib/assets/icons/trending_down.svg +3 -0
- package/lib/assets/icons/trending_flat.svg +3 -0
- package/lib/assets/icons/trending_up.svg +3 -0
- package/lib/assets/icons/tune.svg +3 -0
- package/lib/assets/icons/unarchive_filled.svg +3 -0
- package/lib/assets/icons/unarchive_outlined.svg +3 -0
- package/lib/assets/icons/undo.svg +3 -0
- package/lib/assets/icons/upload.svg +3 -0
- package/lib/assets/icons/user_add_filled.svg +3 -0
- package/lib/assets/icons/user_add_outlined.svg +3 -0
- package/lib/assets/icons/user_circle_filled.svg +3 -0
- package/lib/assets/icons/user_circle_outlined.svg +3 -0
- package/lib/assets/icons/user_filled.svg +3 -0
- package/lib/assets/icons/user_outlined.svg +3 -0
- package/lib/assets/icons/user_settings_filled.svg +3 -0
- package/lib/assets/icons/user_settings_outlined.svg +3 -0
- package/lib/assets/icons/verified_filled.svg +3 -0
- package/lib/assets/icons/verified_outlined.svg +3 -0
- package/lib/assets/icons/video_camera_filled.svg +3 -0
- package/lib/assets/icons/video_camera_off_filled.svg +3 -0
- package/lib/assets/icons/video_camera_off_outlined.svg +3 -0
- package/lib/assets/icons/video_camera_outlined.svg +3 -0
- package/lib/assets/icons/video_gallery_filled.svg +3 -0
- package/lib/assets/icons/video_gallery_outlined.svg +3 -0
- package/lib/assets/icons/view_agenda_filled.svg +3 -0
- package/lib/assets/icons/view_agenda_outlined.svg +3 -0
- package/lib/assets/icons/view_column_filled.svg +3 -0
- package/lib/assets/icons/view_column_outlined.svg +3 -0
- package/lib/assets/icons/view_grid_filled.svg +3 -0
- package/lib/assets/icons/view_grid_outlined.svg +3 -0
- package/lib/assets/icons/view_kanban_filled.svg +3 -0
- package/lib/assets/icons/view_kanban_outlined.svg +3 -0
- package/lib/assets/icons/view_module_filled.svg +3 -0
- package/lib/assets/icons/view_module_outlined.svg +3 -0
- package/lib/assets/icons/view_timeline_filled.svg +3 -0
- package/lib/assets/icons/view_timeline_outlined.svg +3 -0
- package/lib/assets/icons/visibility_hide_filled.svg +3 -0
- package/lib/assets/icons/visibility_hide_outlined.svg +3 -0
- package/lib/assets/icons/visibility_show_filled.svg +3 -0
- package/lib/assets/icons/visibility_show_outlined.svg +3 -0
- package/lib/assets/icons/volume_down_filled.svg +3 -0
- package/lib/assets/icons/volume_down_outlined.svg +3 -0
- package/lib/assets/icons/volume_mute_filled.svg +3 -0
- package/lib/assets/icons/volume_mute_outlined.svg +3 -0
- package/lib/assets/icons/volume_off_filled.svg +3 -0
- package/lib/assets/icons/volume_off_outlined.svg +3 -0
- package/lib/assets/icons/volume_up_filled.svg +3 -0
- package/lib/assets/icons/volume_up_outlined.svg +3 -0
- package/lib/assets/icons/warning_filled.svg +3 -0
- package/lib/assets/icons/warning_outlined.svg +3 -0
- package/lib/assets/icons/water.svg +3 -0
- package/lib/assets/icons/water_alt.svg +3 -0
- package/lib/assets/icons/waterdrop_filled.svg +3 -0
- package/lib/assets/icons/waterdrop_outlined.svg +3 -0
- package/lib/assets/icons/wifi.svg +3 -0
- package/lib/assets/icons/wifi_off.svg +3 -0
- package/lib/assets/icons/windmill.svg +3 -0
- package/lib/assets/icons/zoom_in.svg +3 -0
- package/lib/assets/icons/zoom_out.svg +3 -0
- package/lib/components/accordion/accordion.component.d.ts +29 -0
- package/lib/components/avatar/assets/status/status.component.d.ts +8 -0
- package/lib/components/avatar/avatar.component.d.ts +24 -0
- package/lib/components/badge/badge.directive.d.ts +1 -1
- package/lib/components/button/button.component.d.ts +6 -1
- package/lib/components/card/card.component.d.ts +2 -4
- package/lib/components/checkbox/checkbox.component.d.ts +2 -1
- package/lib/components/drawer/drawer-trigger/drawer-trigger.directive.d.ts +9 -0
- package/lib/components/drawer/drawer.component.d.ts +54 -0
- package/lib/components/drawer/drawer.directive.d.ts +60 -0
- package/lib/components/drawer/drawer.module.d.ts +8 -0
- package/lib/components/icon/icon-map.d.ts +7 -0
- package/lib/components/icon/icon.component.d.ts +1 -1
- package/lib/components/icon-button/icon-button.component.d.ts +2 -2
- package/lib/components/icon-button-toggle/icon-button-toggle.component.d.ts +1 -1
- package/lib/components/split-button/split-button.component.d.ts +2 -2
- package/lib/components/tag/tag.component.d.ts +2 -2
- package/lib/components/text-input/base-text-input/base-text-input.component.d.ts +2 -2
- package/lib/components/treeview/index.d.ts +3 -0
- package/lib/components/treeview/treeview-check.service.d.ts +10 -0
- package/lib/components/treeview/treeview-item/treeview-item-border/treeview-item-border.component.d.ts +10 -0
- package/lib/components/treeview/treeview-item/treeview-item.component.d.ts +71 -0
- package/lib/components/treeview/treeview-keyboard.service.d.ts +10 -0
- package/lib/components/treeview/treeview-selection.service.d.ts +9 -0
- package/lib/components/treeview/treeview.component.d.ts +43 -0
- package/package.json +2 -2
- package/public-api.d.ts +7 -0
|
@@ -8,7 +8,7 @@ export class IconComponent {
|
|
|
8
8
|
constructor() {
|
|
9
9
|
this.name = input.required();
|
|
10
10
|
this.size = input(20);
|
|
11
|
-
this.color = input(
|
|
11
|
+
this.color = input();
|
|
12
12
|
this.classes = input("");
|
|
13
13
|
this.appearance = input();
|
|
14
14
|
this.destroyRef = inject(DestroyRef);
|
|
@@ -17,23 +17,22 @@ export class IconComponent {
|
|
|
17
17
|
this.iconService = inject(IconService);
|
|
18
18
|
this.cdr = inject(ChangeDetectorRef);
|
|
19
19
|
effect(() => {
|
|
20
|
-
this.setSvgContent(this.name());
|
|
21
|
-
});
|
|
20
|
+
this.setSvgContent(this.name(), this.size(), this.appearance(), this.color());
|
|
21
|
+
}, { allowSignalWrites: true });
|
|
22
22
|
}
|
|
23
|
-
setSvgContent(svgName) {
|
|
24
|
-
const svgFile = this.iconService.getSvg(svgName,
|
|
23
|
+
setSvgContent(svgName, size, appearance, color) {
|
|
24
|
+
const svgFile = this.iconService.getSvg(svgName, appearance || "outlined");
|
|
25
25
|
svgFile.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((res) => {
|
|
26
|
-
const
|
|
27
|
-
const svgWithSize = res.replace(/<svg([^>]*)>/, `<svg$1 width="${size}" height="${size}">`);
|
|
26
|
+
const svgWithSize = res.replace(/<svg([^>]*)>/, `<svg$1 width="${size}" height="${size}" color="${color}">`);
|
|
28
27
|
this.svgContent = this.sanitizer.bypassSecurityTrustHtml(svgWithSize);
|
|
29
28
|
this.cdr.markForCheck();
|
|
30
29
|
});
|
|
31
30
|
}
|
|
32
31
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: IconComponent, isStandalone: true, selector: "rte-icon", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null } }, providers: [IconService], ngImport: i0, template: "<div\n class=\"rte-icon-container\"\n [innerHTML]=\"svgContent\"\n [style.height]=\"size() + 'px'\"\n [style.width]=\"size() + 'px'\"\n></div>\n", styles: [".rte-icon-container{display:flex;color:inherit}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
32
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: IconComponent, isStandalone: true, selector: "rte-icon", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, classes: { classPropertyName: "classes", publicName: "classes", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null } }, providers: [IconService], ngImport: i0, template: "<div\n class=\"rte-icon-container\"\n [innerHTML]=\"svgContent\"\n [style.height]=\"size() + 'px'\"\n [style.width]=\"size() + 'px'\"\n [style.color]=\"color()\"\n></div>\n", styles: [".rte-icon-container{display:flex;color:inherit}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34
33
|
}
|
|
35
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IconComponent, decorators: [{
|
|
36
35
|
type: Component,
|
|
37
|
-
args: [{ selector: "rte-icon", imports: [CommonModule], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [IconService], template: "<div\n class=\"rte-icon-container\"\n [innerHTML]=\"svgContent\"\n [style.height]=\"size() + 'px'\"\n [style.width]=\"size() + 'px'\"\n></div>\n", styles: [".rte-icon-container{display:flex;color:inherit}\n"] }]
|
|
36
|
+
args: [{ selector: "rte-icon", imports: [CommonModule], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [IconService], template: "<div\n class=\"rte-icon-container\"\n [innerHTML]=\"svgContent\"\n [style.height]=\"size() + 'px'\"\n [style.width]=\"size() + 'px'\"\n [style.color]=\"color()\"\n></div>\n", styles: [".rte-icon-container{display:flex;color:inherit}\n"] }]
|
|
38
37
|
}], ctorParameters: () => [] });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1ydGUtbGliL3NyYy9saWIvY29tcG9uZW50cy9pY29uL2ljb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvaWNvbi9pY29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQVksTUFBTSwyQkFBMkIsQ0FBQztBQUduRSxPQUFPLEVBQUUsV0FBVyxFQUF3QyxNQUFNLGdCQUFnQixDQUFDOztBQVduRixNQUFNLE9BQU8sYUFBYTtJQWV4QjtRQWRTLFNBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDaEMsU0FBSSxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUN6QixVQUFLLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDeEIsWUFBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNwQixlQUFVLEdBQUcsS0FBSyxFQUF5QixDQUFDO1FBQ3JELGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFaEMsZUFBVSxHQUFvQixJQUFJLENBQUM7UUFHM0IsY0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNqQyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsQyxRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFHdEMsTUFBTSxDQUNKLEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDaEYsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzVCLENBQUM7SUFDSixDQUFDO0lBRU8sYUFBYSxDQUNuQixPQUFlLEVBQ2YsSUFBWSxFQUNaLFVBQTZDLEVBQzdDLEtBQXlCO1FBRXpCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQWdELEVBQUUsVUFBVSxJQUFJLFVBQVUsQ0FBQyxDQUFDO1FBRXBILE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDbEUsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLElBQUksYUFBYSxJQUFJLFlBQVksS0FBSyxJQUFJLENBQUMsQ0FBQztZQUU3RyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBdENVLGFBQWE7bUdBQWIsYUFBYSx5cUJBRmIsQ0FBQyxXQUFXLENBQUMsMEJDdkIxQixtTEFPQSwwR0RXWSxZQUFZOzs0RkFPWCxhQUFhO2tCQVR6QixTQUFTOytCQUNFLFVBQVUsV0FDWCxDQUFDLFlBQVksQ0FBQyxjQUNYLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgaW5wdXQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3BcIjtcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5cbmltcG9ydCB7IEljb25TZXJ2aWNlLCBSZWd1bGFySWNvbklkS2V5LCBUb2dnbGFibGVJY29uSWRLZXkgfSBmcm9tIFwiLi9pY29uLnNlcnZpY2VcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInJ0ZS1pY29uXCIsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogXCIuL2ljb24uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmw6IFwiLi9pY29uLmNvbXBvbmVudC5zY3NzXCIsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtJY29uU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEljb25Db21wb25lbnQge1xuICByZWFkb25seSBuYW1lID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuICByZWFkb25seSBzaXplID0gaW5wdXQ8bnVtYmVyPigyMCk7XG4gIHJlYWRvbmx5IGNvbG9yID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBjbGFzc2VzID0gaW5wdXQoXCJcIik7XG4gIHJlYWRvbmx5IGFwcGVhcmFuY2UgPSBpbnB1dDxcIm91dGxpbmVkXCIgfCBcImZpbGxlZFwiPigpO1xuICBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIHN2Z0NvbnRlbnQ6IFNhZmVIdG1sIHwgbnVsbCA9IG51bGw7XG4gIHN2ZyE6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBwcml2YXRlIHNhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xuICBwcml2YXRlIGljb25TZXJ2aWNlID0gaW5qZWN0KEljb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRTdmdDb250ZW50KHRoaXMubmFtZSgpLCB0aGlzLnNpemUoKSwgdGhpcy5hcHBlYXJhbmNlKCksIHRoaXMuY29sb3IoKSk7XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHNldFN2Z0NvbnRlbnQoXG4gICAgc3ZnTmFtZTogc3RyaW5nLFxuICAgIHNpemU6IG51bWJlcixcbiAgICBhcHBlYXJhbmNlOiBcIm91dGxpbmVkXCIgfCBcImZpbGxlZFwiIHwgdW5kZWZpbmVkLFxuICAgIGNvbG9yOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICkge1xuICAgIGNvbnN0IHN2Z0ZpbGUgPSB0aGlzLmljb25TZXJ2aWNlLmdldFN2ZyhzdmdOYW1lIGFzIFJlZ3VsYXJJY29uSWRLZXkgfCBUb2dnbGFibGVJY29uSWRLZXksIGFwcGVhcmFuY2UgfHwgXCJvdXRsaW5lZFwiKTtcblxuICAgIHN2Z0ZpbGUucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIGNvbnN0IHN2Z1dpdGhTaXplID0gcmVzLnJlcGxhY2UoLzxzdmcoW14+XSopPi8sIGA8c3ZnJDEgd2lkdGg9XCIke3NpemV9XCIgaGVpZ2h0PVwiJHtzaXplfVwiIGNvbG9yPVwiJHtjb2xvcn1cIj5gKTtcblxuICAgICAgdGhpcy5zdmdDb250ZW50ID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoc3ZnV2l0aFNpemUpO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJydGUtaWNvbi1jb250YWluZXJcIlxuICBbaW5uZXJIVE1MXT1cInN2Z0NvbnRlbnRcIlxuICBbc3R5bGUuaGVpZ2h0XT1cInNpemUoKSArICdweCdcIlxuICBbc3R5bGUud2lkdGhdPVwic2l6ZSgpICsgJ3B4J1wiXG4gIFtzdHlsZS5jb2xvcl09XCJjb2xvcigpXCJcbj48L2Rpdj5cbiJdfQ==
|
|
@@ -36,7 +36,7 @@ export class PopoverComponent {
|
|
|
36
36
|
this.clickSecondaryButton.emit();
|
|
37
37
|
}
|
|
38
38
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
39
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: PopoverComponent, isStandalone: true, selector: "rte-popover", inputs: { primaryButtonLabel: { classPropertyName: "primaryButtonLabel", publicName: "primaryButtonLabel", isSignal: true, isRequired: true, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: true, transformFunction: null }, alignment: { classPropertyName: "alignment", publicName: "alignment", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, arrow: { classPropertyName: "arrow", publicName: "arrow", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, secondaryButtonLabel: { classPropertyName: "secondaryButtonLabel", publicName: "secondaryButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, coordinates: { classPropertyName: "coordinates", publicName: "coordinates", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clickPrimaryButton: "clickPrimaryButton", clickSecondaryButton: "clickSecondaryButton" }, ngImport: i0, template: "<div\n #root\n class=\"rte-popover\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.data-arrow]=\"arrow()\"\n [attr.data-position]=\"position()\"\n [attr.data-alignment]=\"alignment()\"\n [attr.data-open]=\"isOpen()\"\n [style]=\"{ top: coordinates().top + 'px', left: coordinates().left + 'px' }\"\n>\n <div class=\"popoverInner\">\n <div class=\"popoverContentContainer\">\n <div *ngIf=\"title\" class=\"popoverTitle\">{{ title() }}</div>\n <div class=\"popoverContent\">{{ content() }}</div>\n </div>\n <div class=\"popoverButtonContainer\">\n <button\n *ngIf=\"secondaryButtonLabel()\"\n rteButton\n rteButtonVariant=\"secondary\"\n (click)=\"handleClickSecondaryButton()\"\n >\n {{ secondaryButtonLabel() }}\n </button>\n <button rteButton rteButtonVariant=\"primary\" (click)=\"handleClickPrimaryButton()\">\n {{ primaryButtonLabel() }}\n </button>\n </div>\n </div>\n</div>\n", styles: [".rte-popoverTrigger{position:relative;width:max-content}.rte-popover{filter:drop-shadow(0px 2px 4px var(--elevation-shadow-key)) drop-shadow(0px 0px 2px var(--elevation-shadow-ambient));background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);position:absolute;pointer-events:auto;top:0;left:0;padding:0;display:flex;flex-direction:column;gap:0px;background-color:var(--background-default);transition:opacity .15s ease-out;opacity:0;z-index:1000;min-width:320px;max-width:600px;width:fit-content;height:fit-content}.rte-popover .popoverInner{display:flex;flex-direction:column;align-items:flex-start;padding:24px;gap:24px;border-radius:4px}.rte-popover .popoverInner .popoverContentContainer{display:flex;flex-direction:column;align-items:flex-start;padding:0;gap:16px}.rte-popover .popoverInner .popoverContentContainer .popoverTitle{overflow:hidden;text-overflow:ellipsis;color:var(--content-primary);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:24px;line-height:32px;letter-spacing:-.5px}.rte-popover .popoverInner .popoverContentContainer .popoverContent{color:var(--content-secondary);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;width:100%;word-break:break-word}.rte-popover .popoverInner .popoverButtonContainer{display:flex;justify-content:flex-end;align-items:flex-start;padding:0;gap:24px;width:100%}.rte-popover:after{content:\"\";position:absolute;border-width:12px;border-style:solid}.rte-popover[data-position=top]:after{top:100%;left:50%;margin-left:-12px;border-color:var(--background-default) transparent transparent transparent}.rte-popover[data-position=top][data-alignment=start]:after{left:20px}.rte-popover[data-position=top][data-alignment=end]:after{left:auto;right:20px}.rte-popover[data-position=bottom]:after{bottom:100%;left:50%;margin-left:-12px;border-color:transparent transparent var(--background-default) transparent}.rte-popover[data-position=bottom][data-alignment=start]:after{left:20px}.rte-popover[data-position=bottom][data-alignment=end]:after{left:auto;right:20px}.rte-popover[data-position=left]:after{top:50%;left:100%;margin-top:-12px;border-color:transparent transparent transparent var(--background-default)}.rte-popover[data-position=left][data-alignment=start]:after{top:20px}.rte-popover[data-position=left][data-alignment=end]:after{top:auto;bottom:20px}.rte-popover[data-position=right]:after{top:50%;right:100%;margin-top:-12px;border-color:transparent var(--background-default) transparent transparent}.rte-popover[data-position=right][data-alignment=start]:after{top:20px}.rte-popover[data-position=right][data-alignment=end]:after{top:auto;bottom:20px}.rte-popover[data-arrow=false]{box-shadow:0 2px 4px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);filter:none;background:var(--background-default)}.rte-popover[data-arrow=false]:after{display:none}.rte-popover[data-open=true]{opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "button[rteButton]", inputs: ["rteButtonVariant", "rteButtonSize", "rteBadgeCount", "rteBadgeContent"] }] }); }
|
|
39
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: PopoverComponent, isStandalone: true, selector: "rte-popover", inputs: { primaryButtonLabel: { classPropertyName: "primaryButtonLabel", publicName: "primaryButtonLabel", isSignal: true, isRequired: true, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: true, transformFunction: null }, alignment: { classPropertyName: "alignment", publicName: "alignment", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, arrow: { classPropertyName: "arrow", publicName: "arrow", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, secondaryButtonLabel: { classPropertyName: "secondaryButtonLabel", publicName: "secondaryButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, coordinates: { classPropertyName: "coordinates", publicName: "coordinates", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clickPrimaryButton: "clickPrimaryButton", clickSecondaryButton: "clickSecondaryButton" }, ngImport: i0, template: "<div\n #root\n class=\"rte-popover\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.data-arrow]=\"arrow()\"\n [attr.data-position]=\"position()\"\n [attr.data-alignment]=\"alignment()\"\n [attr.data-open]=\"isOpen()\"\n [style]=\"{ top: coordinates().top + 'px', left: coordinates().left + 'px' }\"\n>\n <div class=\"popoverInner\">\n <div class=\"popoverContentContainer\">\n <div *ngIf=\"title\" class=\"popoverTitle\">{{ title() }}</div>\n <div class=\"popoverContent\">{{ content() }}</div>\n </div>\n <div class=\"popoverButtonContainer\">\n <button\n *ngIf=\"secondaryButtonLabel()\"\n rteButton\n rteButtonVariant=\"secondary\"\n (click)=\"handleClickSecondaryButton()\"\n >\n {{ secondaryButtonLabel() }}\n </button>\n <button rteButton rteButtonVariant=\"primary\" (click)=\"handleClickPrimaryButton()\">\n {{ primaryButtonLabel() }}\n </button>\n </div>\n </div>\n</div>\n", styles: [".rte-popoverTrigger{position:relative;width:max-content}.rte-popover{filter:drop-shadow(0px 2px 4px var(--elevation-shadow-key)) drop-shadow(0px 0px 2px var(--elevation-shadow-ambient));background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);position:absolute;pointer-events:auto;top:0;left:0;padding:0;display:flex;flex-direction:column;gap:0px;background-color:var(--background-default);transition:opacity .15s ease-out;opacity:0;z-index:1000;min-width:320px;max-width:600px;width:fit-content;height:fit-content}.rte-popover .popoverInner{display:flex;flex-direction:column;align-items:flex-start;padding:24px;gap:24px;border-radius:4px}.rte-popover .popoverInner .popoverContentContainer{display:flex;flex-direction:column;align-items:flex-start;padding:0;gap:16px}.rte-popover .popoverInner .popoverContentContainer .popoverTitle{overflow:hidden;text-overflow:ellipsis;color:var(--content-primary);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:24px;line-height:32px;letter-spacing:-.5px}.rte-popover .popoverInner .popoverContentContainer .popoverContent{color:var(--content-secondary);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;width:100%;word-break:break-word}.rte-popover .popoverInner .popoverButtonContainer{display:flex;justify-content:flex-end;align-items:flex-start;padding:0;gap:24px;width:100%}.rte-popover:after{content:\"\";position:absolute;border-width:12px;border-style:solid}.rte-popover[data-position=top]:after{top:100%;left:50%;margin-left:-12px;border-color:var(--background-default) transparent transparent transparent}.rte-popover[data-position=top][data-alignment=start]:after{left:20px}.rte-popover[data-position=top][data-alignment=end]:after{left:auto;right:20px}.rte-popover[data-position=bottom]:after{bottom:100%;left:50%;margin-left:-12px;border-color:transparent transparent var(--background-default) transparent}.rte-popover[data-position=bottom][data-alignment=start]:after{left:20px}.rte-popover[data-position=bottom][data-alignment=end]:after{left:auto;right:20px}.rte-popover[data-position=left]:after{top:50%;left:100%;margin-top:-12px;border-color:transparent transparent transparent var(--background-default)}.rte-popover[data-position=left][data-alignment=start]:after{top:20px}.rte-popover[data-position=left][data-alignment=end]:after{top:auto;bottom:20px}.rte-popover[data-position=right]:after{top:50%;right:100%;margin-top:-12px;border-color:transparent var(--background-default) transparent transparent}.rte-popover[data-position=right][data-alignment=start]:after{top:20px}.rte-popover[data-position=right][data-alignment=end]:after{top:auto;bottom:20px}.rte-popover[data-arrow=false]{box-shadow:0 2px 4px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);filter:none;background:var(--background-default)}.rte-popover[data-arrow=false]:after{display:none}.rte-popover[data-open=true]{opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "button[rteButton]", inputs: ["rteButtonVariant", "rteButtonSize", "rteBadgeCount", "rteBadgeContent", "rteButtonIcon", "rteButtonIconPosition", "rteButtonIconAppearance"] }] }); }
|
|
40
40
|
}
|
|
41
41
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PopoverComponent, decorators: [{
|
|
42
42
|
type: Component,
|
|
@@ -87,7 +87,7 @@ export class ToastComponent {
|
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
90
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ToastComponent, isStandalone: true, selector: "rte-toast", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, duration: { classPropertyName: "duration", publicName: "duration", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, autoDismiss: { classPropertyName: "autoDismiss", publicName: "autoDismiss", isSignal: true, isRequired: false, transformFunction: null }, showActionButton: { classPropertyName: "showActionButton", publicName: "showActionButton", isSignal: true, isRequired: false, transformFunction: null }, iconName: { classPropertyName: "iconName", publicName: "iconName", isSignal: true, isRequired: false, transformFunction: null }, showLeftIcon: { classPropertyName: "showLeftIcon", publicName: "showLeftIcon", isSignal: true, isRequired: false, transformFunction: null }, actionButtonLabel: { classPropertyName: "actionButtonLabel", publicName: "actionButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, onActionButtonClick: { classPropertyName: "onActionButtonClick", publicName: "onActionButtonClick", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { close: "close" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"rte-toast {{ type() }} {{ position() }} {{ alignment() }}\"\n role=\"status\"\n [ngClass]=\"{ open: isOpen() }\"\n (mouseenter)=\"handleMouseEnter()\"\n (mouseleave)=\"handleMouseLeave()\"\n>\n <div class=\"rte-toast-content\">\n @if (displayLeftIcon()) {\n <rte-icon class=\"rte-toast-icon\" aria-hidden=\"true\" [name]=\"defaultIconName()\" [size]=\"iconSize\" />\n } @else {\n @if (displayCustomIcon()) {\n <rte-icon class=\"rte-toast-icon\" aria-hidden=\"true\" [name]=\"iconName()!\" [size]=\"iconSize\" />\n }\n }\n <span class=\"rte-toast-message\">{{ message() }}</span>\n </div>\n @if (displayActionButton()) {\n <button rteButton rteButtonVariant=\"text\" class=\"rte-toast-action-button\" (click)=\"onClickActionButton()\">\n {{ actionButtonLabel() }}\n </button>\n }\n @if (closable()) {\n <rte-icon-button\n name=\"close\"\n [attr.data-testid]=\"'toast-close-button'\"\n [variant]=\"type() === 'neutral' ? 'reverse' : 'neutral'\"\n (clickEvent)=\"clickCloseButton()\"\n />\n }\n</div>\n", styles: [".rte-toast{box-shadow:0 2px 4px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);display:flex;width:400px;min-width:240px;max-width:336px;padding:8px 4px 8px 16px;align-items:center;border-radius:4px;border-bottom:4px solid var(--border-info);color:var(--content-primary);background-color:var(--background-default);z-index:10;position:fixed;inset:auto;opacity:0;transition:opacity .3s ease,transform .2s ease}.rte-toast.top{top:12px}.rte-toast.bottom{bottom:12px}.rte-toast.bottom.center{left:50%;transform:translate(-50%,10px)}.rte-toast.bottom.center.open{opacity:1;transform:translate(-50%)}.rte-toast.left{left:12px;transform:translate(-10px)}.rte-toast.left.open{opacity:1;transform:translate(0)}.rte-toast.right{right:12px;transform:translate(10px)}.rte-toast.right.open{opacity:1;transform:translate(0)}.rte-toast .rte-toast-message{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;width:100%;-webkit-line-clamp:2;line-clamp:2}.rte-toast .rte-toast-icon{flex:1 0 auto}.rte-toast .rte-toast-content{display:flex;align-items:center;gap:12px;flex-grow:1;overflow:hidden;width:100%}.rte-toast.info{border-bottom-color:var(--border-info)}.rte-toast.info .rte-toast-icon{color:var(--content-info-default)}.rte-toast.error{border-bottom-color:var(--border-danger)}.rte-toast.error .rte-toast-icon{color:var(--content-danger-default)}.rte-toast.success{border-bottom-color:var(--border-success)}.rte-toast.success .rte-toast-icon{color:var(--content-success-default)}.rte-toast.warning{border-bottom-color:var(--border-warning)}.rte-toast.warning .rte-toast-icon{color:var(--content-warning-default)}.rte-toast.neutral{background-color:var(--background-inverse);color:var(--content-primary-inverse);border-bottom-color:var(--border-primary)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: IconButtonComponent, selector: "rte-icon-button", inputs: ["disabled", "name", "size", "variant", "type", "appearance", "compactSpacing", "ariaLabel", "ariaLabelledBy", "badgeCount", "badgeContent", "badgeType", "badgeIcon", "customStyle"], outputs: ["clickEvent"] }, { kind: "component", type: ButtonComponent, selector: "button[rteButton]", inputs: ["rteButtonVariant", "rteButtonSize", "rteBadgeCount", "rteBadgeContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
90
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ToastComponent, isStandalone: true, selector: "rte-toast", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, duration: { classPropertyName: "duration", publicName: "duration", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: true, isRequired: false, transformFunction: null }, autoDismiss: { classPropertyName: "autoDismiss", publicName: "autoDismiss", isSignal: true, isRequired: false, transformFunction: null }, showActionButton: { classPropertyName: "showActionButton", publicName: "showActionButton", isSignal: true, isRequired: false, transformFunction: null }, iconName: { classPropertyName: "iconName", publicName: "iconName", isSignal: true, isRequired: false, transformFunction: null }, showLeftIcon: { classPropertyName: "showLeftIcon", publicName: "showLeftIcon", isSignal: true, isRequired: false, transformFunction: null }, actionButtonLabel: { classPropertyName: "actionButtonLabel", publicName: "actionButtonLabel", isSignal: true, isRequired: false, transformFunction: null }, onActionButtonClick: { classPropertyName: "onActionButtonClick", publicName: "onActionButtonClick", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { close: "close" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"rte-toast {{ type() }} {{ position() }} {{ alignment() }}\"\n role=\"status\"\n [ngClass]=\"{ open: isOpen() }\"\n (mouseenter)=\"handleMouseEnter()\"\n (mouseleave)=\"handleMouseLeave()\"\n>\n <div class=\"rte-toast-content\">\n @if (displayLeftIcon()) {\n <rte-icon class=\"rte-toast-icon\" aria-hidden=\"true\" [name]=\"defaultIconName()\" [size]=\"iconSize\" />\n } @else {\n @if (displayCustomIcon()) {\n <rte-icon class=\"rte-toast-icon\" aria-hidden=\"true\" [name]=\"iconName()!\" [size]=\"iconSize\" />\n }\n }\n <span class=\"rte-toast-message\">{{ message() }}</span>\n </div>\n @if (displayActionButton()) {\n <button rteButton rteButtonVariant=\"text\" class=\"rte-toast-action-button\" (click)=\"onClickActionButton()\">\n {{ actionButtonLabel() }}\n </button>\n }\n @if (closable()) {\n <rte-icon-button\n name=\"close\"\n [attr.data-testid]=\"'toast-close-button'\"\n [variant]=\"type() === 'neutral' ? 'reverse' : 'neutral'\"\n (clickEvent)=\"clickCloseButton()\"\n />\n }\n</div>\n", styles: [".rte-toast{box-shadow:0 2px 4px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);display:flex;width:400px;min-width:240px;max-width:336px;padding:8px 4px 8px 16px;align-items:center;border-radius:4px;border-bottom:4px solid var(--border-info);color:var(--content-primary);background-color:var(--background-default);z-index:10;position:fixed;inset:auto;opacity:0;transition:opacity .3s ease,transform .2s ease}.rte-toast.top{top:12px}.rte-toast.bottom{bottom:12px}.rte-toast.bottom.center{left:50%;transform:translate(-50%,10px)}.rte-toast.bottom.center.open{opacity:1;transform:translate(-50%)}.rte-toast.left{left:12px;transform:translate(-10px)}.rte-toast.left.open{opacity:1;transform:translate(0)}.rte-toast.right{right:12px;transform:translate(10px)}.rte-toast.right.open{opacity:1;transform:translate(0)}.rte-toast .rte-toast-message{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;width:100%;-webkit-line-clamp:2;line-clamp:2}.rte-toast .rte-toast-icon{flex:1 0 auto}.rte-toast .rte-toast-content{display:flex;align-items:center;gap:12px;flex-grow:1;overflow:hidden;width:100%}.rte-toast.info{border-bottom-color:var(--border-info)}.rte-toast.info .rte-toast-icon{color:var(--content-info-default)}.rte-toast.error{border-bottom-color:var(--border-danger)}.rte-toast.error .rte-toast-icon{color:var(--content-danger-default)}.rte-toast.success{border-bottom-color:var(--border-success)}.rte-toast.success .rte-toast-icon{color:var(--content-success-default)}.rte-toast.warning{border-bottom-color:var(--border-warning)}.rte-toast.warning .rte-toast-icon{color:var(--content-warning-default)}.rte-toast.neutral{background-color:var(--background-inverse);color:var(--content-primary-inverse);border-bottom-color:var(--border-primary)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: IconButtonComponent, selector: "rte-icon-button", inputs: ["disabled", "name", "size", "variant", "type", "appearance", "compactSpacing", "ariaLabel", "ariaLabelledBy", "badgeCount", "badgeContent", "badgeType", "badgeIcon", "customStyle"], outputs: ["clickEvent"] }, { kind: "component", type: ButtonComponent, selector: "button[rteButton]", inputs: ["rteButtonVariant", "rteButtonSize", "rteBadgeCount", "rteBadgeContent", "rteButtonIcon", "rteButtonIconPosition", "rteButtonIconAppearance"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
91
91
|
}
|
|
92
92
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastComponent, decorators: [{
|
|
93
93
|
type: Component,
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from "./treeview-item/treeview-item.component";
|
|
2
|
+
export * from "./treeview-selection.service";
|
|
3
|
+
export * from "./treeview.component";
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1ydGUtbGliL3NyYy9saWIvY29tcG9uZW50cy90cmVldmlldy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3RyZWV2aWV3LWl0ZW0vdHJlZXZpZXctaXRlbS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RyZWV2aWV3LXNlbGVjdGlvbi5zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90cmVldmlldy5jb21wb25lbnRcIjtcbiJdfQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Injectable, signal } from "@angular/core";
|
|
2
|
+
import { computeCheckedIdsAfterToggle } from "@design-system-rte/core/components/treeview/treeview.utils";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class TreeviewCheckService {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.checkedIds = signal(new Set());
|
|
7
|
+
this.rootItems = signal([]);
|
|
8
|
+
}
|
|
9
|
+
setRootItems(items) {
|
|
10
|
+
this.rootItems.set(items);
|
|
11
|
+
}
|
|
12
|
+
toggleChecked(node, rootItemsOverride) {
|
|
13
|
+
const current = this.checkedIds();
|
|
14
|
+
const rootItems = rootItemsOverride ?? this.rootItems();
|
|
15
|
+
const next = computeCheckedIdsAfterToggle(current, node, rootItems);
|
|
16
|
+
this.checkedIds.set(next);
|
|
17
|
+
}
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeviewCheckService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
19
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeviewCheckService }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeviewCheckService, decorators: [{
|
|
22
|
+
type: Injectable
|
|
23
|
+
}] });
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXctY2hlY2suc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLXJ0ZS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3RyZWV2aWV3L3RyZWV2aWV3LWNoZWNrLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNERBQTRELENBQUM7O0FBRzFHLE1BQU0sT0FBTyxvQkFBb0I7SUFEakM7UUFFVyxlQUFVLEdBQUcsTUFBTSxDQUFjLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNwQyxjQUFTLEdBQUcsTUFBTSxDQUFzQixFQUFFLENBQUMsQ0FBQztLQVk5RDtJQVZDLFlBQVksQ0FBQyxLQUEwQjtRQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsYUFBYSxDQUFDLElBQXVCLEVBQUUsaUJBQXVDO1FBQzVFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQyxNQUFNLFNBQVMsR0FBRyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEQsTUFBTSxJQUFJLEdBQUcsNEJBQTRCLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDOytHQWJVLG9CQUFvQjttSEFBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB0eXBlIHsgVHJlZXZpZXdJdGVtUHJvcHMgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tcG9uZW50cy90cmVldmlldy90cmVldmlldy1pdGVtLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgY29tcHV0ZUNoZWNrZWRJZHNBZnRlclRvZ2dsZSB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL3RyZWV2aWV3L3RyZWV2aWV3LnV0aWxzXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUcmVldmlld0NoZWNrU2VydmljZSB7XG4gIHJlYWRvbmx5IGNoZWNrZWRJZHMgPSBzaWduYWw8U2V0PHN0cmluZz4+KG5ldyBTZXQoKSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcm9vdEl0ZW1zID0gc2lnbmFsPFRyZWV2aWV3SXRlbVByb3BzW10+KFtdKTtcblxuICBzZXRSb290SXRlbXMoaXRlbXM6IFRyZWV2aWV3SXRlbVByb3BzW10pOiB2b2lkIHtcbiAgICB0aGlzLnJvb3RJdGVtcy5zZXQoaXRlbXMpO1xuICB9XG5cbiAgdG9nZ2xlQ2hlY2tlZChub2RlOiBUcmVldmlld0l0ZW1Qcm9wcywgcm9vdEl0ZW1zT3ZlcnJpZGU/OiBUcmVldmlld0l0ZW1Qcm9wc1tdKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuY2hlY2tlZElkcygpO1xuICAgIGNvbnN0IHJvb3RJdGVtcyA9IHJvb3RJdGVtc092ZXJyaWRlID8/IHRoaXMucm9vdEl0ZW1zKCk7XG4gICAgY29uc3QgbmV4dCA9IGNvbXB1dGVDaGVja2VkSWRzQWZ0ZXJUb2dnbGUoY3VycmVudCwgbm9kZSwgcm9vdEl0ZW1zKTtcbiAgICB0aGlzLmNoZWNrZWRJZHMuc2V0KG5leHQpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, input } from "@angular/core";
|
|
2
|
+
import { TREEVIEW_BORDER_SVG_MAP, TREEVIEW_BORDER_SVG_MAP_COMPACT } from "@design-system-rte/core/components/treeview";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class TreeviewItemBorderComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.borderType = input.required();
|
|
7
|
+
this.isCompact = input(false);
|
|
8
|
+
this.svgConfig = computed(() => {
|
|
9
|
+
const map = this.isCompact() ? TREEVIEW_BORDER_SVG_MAP_COMPACT : TREEVIEW_BORDER_SVG_MAP;
|
|
10
|
+
return map[this.borderType()];
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeviewItemBorderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TreeviewItemBorderComponent, isStandalone: true, selector: "rte-treeview-item-border", inputs: { borderType: { classPropertyName: "borderType", publicName: "borderType", isSignal: true, isRequired: true, transformFunction: null }, isCompact: { classPropertyName: "isCompact", publicName: "isCompact", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<svg\n class=\"treeview-item-border\"\n fill=\"none\"\n aria-hidden=\"true\"\n [attr.width]=\"svgConfig().width\"\n [attr.height]=\"svgConfig().height\"\n [attr.viewBox]=\"svgConfig().viewBox\"\n>\n @for (element of svgConfig().elements; track $index) {\n @if (element.kind === \"path\") {\n <path class=\"treeview-item-border-path\" [attr.d]=\"element.d\" />\n } @else {\n <line\n class=\"treeview-item-border-path\"\n [attr.x1]=\"element.x1\"\n [attr.y1]=\"element.y1\"\n [attr.x2]=\"element.x2\"\n [attr.y2]=\"element.y2\"\n />\n }\n }\n</svg>\n", styles: [":host{display:block;flex-shrink:0;width:16px;min-width:16px;height:32px;align-self:stretch}:host-context(.treeview-item.compact){height:24px}.treeview-item-border{display:block;width:100%;height:100%}.treeview-item-border .treeview-item-border-path{stroke:var(--border-tertiary);stroke-width:1px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeviewItemBorderComponent, decorators: [{
|
|
17
|
+
type: Component,
|
|
18
|
+
args: [{ selector: "rte-treeview-item-border", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<svg\n class=\"treeview-item-border\"\n fill=\"none\"\n aria-hidden=\"true\"\n [attr.width]=\"svgConfig().width\"\n [attr.height]=\"svgConfig().height\"\n [attr.viewBox]=\"svgConfig().viewBox\"\n>\n @for (element of svgConfig().elements; track $index) {\n @if (element.kind === \"path\") {\n <path class=\"treeview-item-border-path\" [attr.d]=\"element.d\" />\n } @else {\n <line\n class=\"treeview-item-border-path\"\n [attr.x1]=\"element.x1\"\n [attr.y1]=\"element.y1\"\n [attr.x2]=\"element.x2\"\n [attr.y2]=\"element.y2\"\n />\n }\n }\n</svg>\n", styles: [":host{display:block;flex-shrink:0;width:16px;min-width:16px;height:32px;align-self:stretch}:host-context(.treeview-item.compact){height:24px}.treeview-item-border{display:block;width:100%;height:100%}.treeview-item-border .treeview-item-border-path{stroke:var(--border-tertiary);stroke-width:1px}\n"] }]
|
|
19
|
+
}] });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXctaXRlbS1ib3JkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdHJlZXZpZXcvdHJlZXZpZXctaXRlbS90cmVldmlldy1pdGVtLWJvcmRlci90cmVldmlldy1pdGVtLWJvcmRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1ydGUtbGliL3NyYy9saWIvY29tcG9uZW50cy90cmVldmlldy90cmVldmlldy1pdGVtL3RyZWV2aWV3LWl0ZW0tYm9yZGVyL3RyZWV2aWV3LWl0ZW0tYm9yZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7QUFVdkgsTUFBTSxPQUFPLDJCQUEyQjtJQVB4QztRQVFXLGVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFzQixDQUFDO1FBQ2xELGNBQVMsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFbEMsY0FBUyxHQUFHLFFBQVEsQ0FBWSxHQUFHLEVBQUU7WUFDNUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUM7WUFDekYsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7S0FDSjsrR0FSWSwyQkFBMkI7bUdBQTNCLDJCQUEyQiwwV0NaeEMseW1CQXNCQTs7NEZEVmEsMkJBQTJCO2tCQVB2QyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLG1CQUdDLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHR5cGUgeyBTdmdDb25maWcgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tbW9uL3N2Z1wiO1xuaW1wb3J0IHsgVFJFRVZJRVdfQk9SREVSX1NWR19NQVAsIFRSRUVWSUVXX0JPUkRFUl9TVkdfTUFQX0NPTVBBQ1QgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tcG9uZW50cy90cmVldmlld1wiO1xuaW1wb3J0IHR5cGUgeyBUcmVldmlld0JvcmRlclR5cGUgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tcG9uZW50cy90cmVldmlldy90cmVldmlldy1pdGVtLmludGVyZmFjZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwicnRlLXRyZWV2aWV3LWl0ZW0tYm9yZGVyXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiBcIi4vdHJlZXZpZXctaXRlbS1ib3JkZXIuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmw6IFwiLi90cmVldmlldy1pdGVtLWJvcmRlci5jb21wb25lbnQuc2Nzc1wiLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVHJlZXZpZXdJdGVtQm9yZGVyQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgYm9yZGVyVHlwZSA9IGlucHV0LnJlcXVpcmVkPFRyZWV2aWV3Qm9yZGVyVHlwZT4oKTtcbiAgcmVhZG9ubHkgaXNDb21wYWN0ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHJlYWRvbmx5IHN2Z0NvbmZpZyA9IGNvbXB1dGVkPFN2Z0NvbmZpZz4oKCkgPT4ge1xuICAgIGNvbnN0IG1hcCA9IHRoaXMuaXNDb21wYWN0KCkgPyBUUkVFVklFV19CT1JERVJfU1ZHX01BUF9DT01QQUNUIDogVFJFRVZJRVdfQk9SREVSX1NWR19NQVA7XG4gICAgcmV0dXJuIG1hcFt0aGlzLmJvcmRlclR5cGUoKV07XG4gIH0pO1xufVxuIiwiPHN2Z1xuICBjbGFzcz1cInRyZWV2aWV3LWl0ZW0tYm9yZGVyXCJcbiAgZmlsbD1cIm5vbmVcIlxuICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICBbYXR0ci53aWR0aF09XCJzdmdDb25maWcoKS53aWR0aFwiXG4gIFthdHRyLmhlaWdodF09XCJzdmdDb25maWcoKS5oZWlnaHRcIlxuICBbYXR0ci52aWV3Qm94XT1cInN2Z0NvbmZpZygpLnZpZXdCb3hcIlxuPlxuICBAZm9yIChlbGVtZW50IG9mIHN2Z0NvbmZpZygpLmVsZW1lbnRzOyB0cmFjayAkaW5kZXgpIHtcbiAgICBAaWYgKGVsZW1lbnQua2luZCA9PT0gXCJwYXRoXCIpIHtcbiAgICAgIDxwYXRoIGNsYXNzPVwidHJlZXZpZXctaXRlbS1ib3JkZXItcGF0aFwiIFthdHRyLmRdPVwiZWxlbWVudC5kXCIgLz5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxsaW5lXG4gICAgICAgIGNsYXNzPVwidHJlZXZpZXctaXRlbS1ib3JkZXItcGF0aFwiXG4gICAgICAgIFthdHRyLngxXT1cImVsZW1lbnQueDFcIlxuICAgICAgICBbYXR0ci55MV09XCJlbGVtZW50LnkxXCJcbiAgICAgICAgW2F0dHIueDJdPVwiZWxlbWVudC54MlwiXG4gICAgICAgIFthdHRyLnkyXT1cImVsZW1lbnQueTJcIlxuICAgICAgLz5cbiAgICB9XG4gIH1cbjwvc3ZnPlxuIl19
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
import { CommonModule } from "@angular/common";
|
|
2
|
+
import { ChangeDetectionStrategy, Component, computed, effect, HostBinding, inject, input, output, signal, } from "@angular/core";
|
|
3
|
+
import { allDescendantsChecked, buildTreeviewNodeId, canToggleOpen, computeCheckboxId, computeConnectorBorderTypes, getChildBorderTypes, getTreeviewItemKey, hasChildren as hasChildrenUtil, isItemSelected, isNodeIndeterminate, } from "@design-system-rte/core/components/treeview/treeview.utils";
|
|
4
|
+
import { ENTER_KEY, SPACE_KEY } from "@design-system-rte/core/constants/keyboard/keyboard.constants";
|
|
5
|
+
import { BadgeComponent } from "../../badge/badge.component";
|
|
6
|
+
import { CheckboxComponent } from "../../checkbox/checkbox.component";
|
|
7
|
+
import { DropdownMenuComponent } from "../../dropdown/dropdown-menu/dropdown-menu.component";
|
|
8
|
+
import { DropdownTriggerDirective } from "../../dropdown/dropdown-trigger/dropdown-trigger.directive";
|
|
9
|
+
import { DropdownDirective } from "../../dropdown/dropdown.directive";
|
|
10
|
+
import { IconComponent } from "../../icon/icon.component";
|
|
11
|
+
import { TreeviewCheckService } from "../treeview-check.service";
|
|
12
|
+
import { TreeviewSelectionService } from "../treeview-selection.service";
|
|
13
|
+
import { TreeviewItemBorderComponent } from "./treeview-item-border/treeview-item-border.component";
|
|
14
|
+
import * as i0 from "@angular/core";
|
|
15
|
+
export class TreeviewItemComponent {
|
|
16
|
+
get hostClasses() {
|
|
17
|
+
const classes = ["treeview-item"];
|
|
18
|
+
if (this.isCompact())
|
|
19
|
+
classes.push("compact");
|
|
20
|
+
if (this.isSelected())
|
|
21
|
+
classes.push("selected");
|
|
22
|
+
if (this.disabled())
|
|
23
|
+
classes.push("disabled");
|
|
24
|
+
if (this.hasChildren())
|
|
25
|
+
classes.push("has-children");
|
|
26
|
+
if (this.hasChildren() && this.isOpenSignal())
|
|
27
|
+
classes.push("is-expanded");
|
|
28
|
+
if (this.effectiveDepth() === 0)
|
|
29
|
+
classes.push("root-depth");
|
|
30
|
+
return classes.join(" ");
|
|
31
|
+
}
|
|
32
|
+
get dataItemId() {
|
|
33
|
+
return this.itemId();
|
|
34
|
+
}
|
|
35
|
+
get ariaLevel() {
|
|
36
|
+
return this.effectiveDepth() + 1;
|
|
37
|
+
}
|
|
38
|
+
get ariaExpanded() {
|
|
39
|
+
return this.hasChildren() ? this.isOpenSignal() : undefined;
|
|
40
|
+
}
|
|
41
|
+
get ariaSelected() {
|
|
42
|
+
return !!this.isSelected();
|
|
43
|
+
}
|
|
44
|
+
getChildBorderTypes(isLastChild) {
|
|
45
|
+
return getChildBorderTypes(this.resolvedBorderTypes(), isLastChild);
|
|
46
|
+
}
|
|
47
|
+
constructor() {
|
|
48
|
+
this.role = "treeitem";
|
|
49
|
+
this.treeId = input.required();
|
|
50
|
+
this.nodePath = input([]);
|
|
51
|
+
this.labelText = input.required();
|
|
52
|
+
this.icon = input();
|
|
53
|
+
this.disabled = input(false);
|
|
54
|
+
this.isCompact = input(false);
|
|
55
|
+
this.hasCheckbox = input(false);
|
|
56
|
+
this.isOpen = input(false);
|
|
57
|
+
this.hasIcon = input(false);
|
|
58
|
+
this.hasBadge = input(false);
|
|
59
|
+
this.items = input([]);
|
|
60
|
+
this.rootItems = input(undefined);
|
|
61
|
+
this.id = input();
|
|
62
|
+
this.depth = input(undefined);
|
|
63
|
+
this.isLastChild = input(undefined);
|
|
64
|
+
this.borderTypes = input([]);
|
|
65
|
+
this.actionIcon = input();
|
|
66
|
+
this.actionMenuItems = input();
|
|
67
|
+
this.isOpenSignal = signal(false);
|
|
68
|
+
this.itemClick = output();
|
|
69
|
+
this.openChange = output();
|
|
70
|
+
this.actionIconClick = output();
|
|
71
|
+
this.actionMenuClick = output();
|
|
72
|
+
this.parentItem = inject(TreeviewItemComponent, { optional: true, skipSelf: true });
|
|
73
|
+
this.selectionService = inject(TreeviewSelectionService, { optional: true });
|
|
74
|
+
this.checkService = inject(TreeviewCheckService, { optional: true });
|
|
75
|
+
this.hasChildren = computed(() => hasChildrenUtil(this.items()));
|
|
76
|
+
this.isChecked = computed(() => {
|
|
77
|
+
const ids = this.checkService?.checkedIds() ?? new Set();
|
|
78
|
+
const node = { id: this.itemId(), labelText: this.labelText(), items: this.items() };
|
|
79
|
+
const hasChildren = hasChildrenUtil(this.items());
|
|
80
|
+
return allDescendantsChecked(node, ids) || (ids.has(this.itemId()) && !hasChildren);
|
|
81
|
+
});
|
|
82
|
+
this.isIndeterminate = computed(() => {
|
|
83
|
+
const ids = this.checkService?.checkedIds() ?? new Set();
|
|
84
|
+
const node = { id: this.itemId(), labelText: this.labelText(), items: this.items() };
|
|
85
|
+
return isNodeIndeterminate(node, ids);
|
|
86
|
+
});
|
|
87
|
+
this.itemId = computed(() => this.id() ?? this.labelText());
|
|
88
|
+
this.isSelected = computed(() => this.selectionService && !!isItemSelected(this.itemId(), this.selectionService.selectedId()));
|
|
89
|
+
this.effectiveDepth = computed(() => {
|
|
90
|
+
const depthInput = this.depth();
|
|
91
|
+
if (depthInput !== undefined) {
|
|
92
|
+
return depthInput;
|
|
93
|
+
}
|
|
94
|
+
const parent = this.parentItem;
|
|
95
|
+
return parent ? parent.effectiveDepth() + 1 : 0;
|
|
96
|
+
});
|
|
97
|
+
this.nodeUid = computed(() => buildTreeviewNodeId({
|
|
98
|
+
treeId: this.treeId(),
|
|
99
|
+
path: this.nodePath(),
|
|
100
|
+
itemId: this.itemId(),
|
|
101
|
+
}));
|
|
102
|
+
this.checkboxId = computed(() => computeCheckboxId(this.nodeUid()));
|
|
103
|
+
this.resolvedBorderTypes = computed(() => {
|
|
104
|
+
const inputBorderTypes = this.borderTypes();
|
|
105
|
+
return inputBorderTypes.length > 0 ? inputBorderTypes : [];
|
|
106
|
+
});
|
|
107
|
+
this.connectorBorderTypes = computed(() => computeConnectorBorderTypes({
|
|
108
|
+
depth: this.effectiveDepth(),
|
|
109
|
+
isCompact: this.isCompact(),
|
|
110
|
+
resolvedBorderTypes: this.resolvedBorderTypes(),
|
|
111
|
+
hasChildren: this.hasChildren(),
|
|
112
|
+
}));
|
|
113
|
+
effect(() => {
|
|
114
|
+
this.isOpenSignal.set(this.isOpen());
|
|
115
|
+
}, { allowSignalWrites: true });
|
|
116
|
+
}
|
|
117
|
+
toggleOpen() {
|
|
118
|
+
if (!canToggleOpen(this.hasChildren(), this.disabled())) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
const newOpen = !this.isOpenSignal();
|
|
122
|
+
this.isOpenSignal.set(newOpen);
|
|
123
|
+
this.openChange.emit({ id: this.itemId(), open: newOpen });
|
|
124
|
+
}
|
|
125
|
+
handleContentClick() {
|
|
126
|
+
if (this.disabled()) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
const service = this.selectionService;
|
|
130
|
+
if (service) {
|
|
131
|
+
const currentItemId = this.itemId();
|
|
132
|
+
service.select(currentItemId);
|
|
133
|
+
}
|
|
134
|
+
this.itemClick.emit(this.itemId());
|
|
135
|
+
}
|
|
136
|
+
handleChevronKeyDown(event) {
|
|
137
|
+
if ([SPACE_KEY, ENTER_KEY].includes(event.key)) {
|
|
138
|
+
event.preventDefault();
|
|
139
|
+
this.toggleOpen();
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
handleContentKeyDown(event) {
|
|
143
|
+
if ([SPACE_KEY, ENTER_KEY].includes(event.key)) {
|
|
144
|
+
event.preventDefault();
|
|
145
|
+
this.handleContentClick();
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
handleCheckboxClick(event) {
|
|
149
|
+
event.preventDefault();
|
|
150
|
+
event.stopPropagation();
|
|
151
|
+
if (this.disabled()) {
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
this.checkService?.toggleChecked({ id: this.itemId(), labelText: this.labelText(), items: this.items() }, this.rootItems());
|
|
155
|
+
}
|
|
156
|
+
handleCheckboxKeydown(event) {
|
|
157
|
+
if ([SPACE_KEY, ENTER_KEY].includes(event.key)) {
|
|
158
|
+
event.preventDefault();
|
|
159
|
+
this.handleCheckboxClick(event);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
handleActionIconClick(event) {
|
|
163
|
+
event.stopPropagation();
|
|
164
|
+
if (this.disabled()) {
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
this.actionIconClick.emit({ itemId: this.itemId(), event });
|
|
168
|
+
}
|
|
169
|
+
handleActionIconKeyDown(event) {
|
|
170
|
+
if ([SPACE_KEY, ENTER_KEY].includes(event.key)) {
|
|
171
|
+
event.preventDefault();
|
|
172
|
+
event.stopPropagation();
|
|
173
|
+
this.handleActionIconClick(event);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
handleActionMenuClick(menuEvent) {
|
|
177
|
+
if (this.disabled()) {
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
const menuItemId = menuEvent.id;
|
|
181
|
+
const menuItemLabel = menuEvent.item?.label ?? menuItemId;
|
|
182
|
+
this.actionMenuClick.emit({
|
|
183
|
+
itemId: this.itemId(),
|
|
184
|
+
menuItemId,
|
|
185
|
+
menuItemLabel,
|
|
186
|
+
event: menuEvent.event,
|
|
187
|
+
item: menuEvent.item,
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
trackChild(child) {
|
|
191
|
+
return getTreeviewItemKey(child);
|
|
192
|
+
}
|
|
193
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeviewItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
194
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TreeviewItemComponent, isStandalone: true, selector: "li[rteTreeviewItem]", inputs: { treeId: { classPropertyName: "treeId", publicName: "treeId", isSignal: true, isRequired: true, transformFunction: null }, nodePath: { classPropertyName: "nodePath", publicName: "nodePath", isSignal: true, isRequired: false, transformFunction: null }, labelText: { classPropertyName: "labelText", publicName: "labelText", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, isCompact: { classPropertyName: "isCompact", publicName: "isCompact", isSignal: true, isRequired: false, transformFunction: null }, hasCheckbox: { classPropertyName: "hasCheckbox", publicName: "hasCheckbox", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, hasIcon: { classPropertyName: "hasIcon", publicName: "hasIcon", isSignal: true, isRequired: false, transformFunction: null }, hasBadge: { classPropertyName: "hasBadge", publicName: "hasBadge", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, rootItems: { classPropertyName: "rootItems", publicName: "rootItems", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, depth: { classPropertyName: "depth", publicName: "depth", isSignal: true, isRequired: false, transformFunction: null }, isLastChild: { classPropertyName: "isLastChild", publicName: "isLastChild", isSignal: true, isRequired: false, transformFunction: null }, borderTypes: { classPropertyName: "borderTypes", publicName: "borderTypes", isSignal: true, isRequired: false, transformFunction: null }, actionIcon: { classPropertyName: "actionIcon", publicName: "actionIcon", isSignal: true, isRequired: false, transformFunction: null }, actionMenuItems: { classPropertyName: "actionMenuItems", publicName: "actionMenuItems", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClick: "itemClick", openChange: "openChange", actionIconClick: "actionIconClick", actionMenuClick: "actionMenuClick" }, host: { properties: { "class": "this.hostClasses", "attr.role": "this.role", "attr.data-item-id": "this.dataItemId", "attr.aria-level": "this.ariaLevel", "attr.aria-expanded": "this.ariaExpanded", "attr.aria-selected": "this.ariaSelected" } }, ngImport: i0, template: "<div class=\"treeview-item-row\">\n @if (hasCheckbox()) {\n <div\n class=\"treeview-item-checkbox\"\n role=\"input\"\n data-treeview-focusable=\"checkbox\"\n tabindex=\"-1\"\n [attr.aria-checked]=\"isChecked() ? 'true' : isIndeterminate() ? 'mixed' : 'false'\"\n [attr.aria-label]=\"labelText()\"\n (click)=\"handleCheckboxClick($event)\"\n (keydown)=\"handleCheckboxKeydown($event)\"\n >\n <rte-checkbox\n [id]=\"checkboxId()\"\n [label]=\"labelText()\"\n [showLabel]=\"false\"\n [tabindex]=\"-1\"\n [disabled]=\"disabled()\"\n [checked]=\"isChecked()\"\n [indeterminate]=\"isIndeterminate()\"\n />\n </div>\n }\n <div class=\"treeview-item-borders-container\">\n @for (borderType of connectorBorderTypes(); track $index) {\n <rte-treeview-item-border [borderType]=\"borderType\" [isCompact]=\"isCompact()\" />\n }\n @if (hasChildren()) {\n <button\n type=\"button\"\n class=\"treeview-item-chevron\"\n data-treeview-focusable=\"chevron\"\n tabindex=\"-1\"\n [attr.aria-label]=\"isOpenSignal() ? 'Replier' : 'D\u00E9plier'\"\n [disabled]=\"disabled()\"\n (click)=\"toggleOpen(); $event.stopPropagation()\"\n (keydown)=\"handleChevronKeyDown($event)\"\n >\n <rte-icon [name]=\"isOpenSignal() ? 'arrow-chevron-down' : 'arrow-chevron-right'\" [size]=\"16\" />\n </button>\n }\n </div>\n <div class=\"treeview-item-content-wrapper\">\n <div class=\"treeview-item-main-content\" (keydown)=\"handleContentKeyDown($event)\" (click)=\"handleContentClick()\">\n @if (hasIcon() && icon() && !isCompact()) {\n <rte-icon class=\"treeview-item-icon\" [name]=\"icon()!\" [size]=\"16\" />\n }\n <div\n class=\"treeview-item-content\"\n data-treeview-focusable=\"content\"\n tabindex=\"-1\"\n [class.treeview-item-content-compact]=\"isCompact()\"\n >\n <span class=\"treeview-item-label\">{{ labelText() }}</span>\n </div>\n @if (hasBadge()) {\n <span class=\"treeview-item-badge\">\n <rte-badge badgeType=\"indicator\" badgeContent=\"empty\" badgeSize=\"s\" [simpleBadge]=\"true\" />\n </span>\n }\n @if (actionIcon()) {\n @if (actionMenuItems() && actionMenuItems()!.length > 0) {\n <div\n class=\"treeview-item-action\"\n rteDropdown\n (menuEvent)=\"handleActionMenuClick($event)\"\n (click)=\"$event.stopPropagation()\"\n >\n <button\n type=\"button\"\n class=\"treeview-item-action-button\"\n data-treeview-focusable=\"action\"\n tabindex=\"-1\"\n rteDropdownTrigger\n [attr.aria-label]=\"'Actions pour ' + labelText()\"\n [disabled]=\"disabled()\"\n >\n <rte-icon [name]=\"actionIcon()!\" [size]=\"16\" />\n </button>\n <rte-dropdown-menu [items]=\"actionMenuItems()!\" />\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"treeview-item-action-button\"\n data-treeview-focusable=\"action\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'Actions pour ' + labelText()\"\n [disabled]=\"disabled()\"\n (click)=\"handleActionIconClick($event)\"\n (keydown)=\"handleActionIconKeyDown($event)\"\n >\n <rte-icon [name]=\"actionIcon()!\" [size]=\"16\" />\n </button>\n }\n }\n </div>\n </div>\n</div>\n@if (hasChildren()) {\n <ul class=\"treeview-item-children\" role=\"group\" [class.treeview-item-children-open]=\"isOpenSignal()\">\n @for (child of items(); track trackChild(child); let childIndex = $index) {\n <li\n rteTreeviewItem\n [rootItems]=\"rootItems()\"\n [treeId]=\"treeId()\"\n [nodePath]=\"nodePath().concat(childIndex)\"\n [id]=\"child.id\"\n [labelText]=\"child.labelText\"\n [icon]=\"child.icon\"\n [disabled]=\"child.disabled ?? false\"\n [isCompact]=\"child.isCompact ?? isCompact()\"\n [hasCheckbox]=\"child.hasCheckbox ?? hasCheckbox()\"\n [isOpen]=\"child.isOpen ?? false\"\n [hasIcon]=\"child.hasIcon ?? hasIcon()\"\n [hasBadge]=\"child.hasBadge ?? false\"\n [items]=\"child.items ?? []\"\n [actionIcon]=\"child.actionIcon\"\n [actionMenuItems]=\"child.actionMenuItems\"\n [depth]=\"effectiveDepth() + 1\"\n [isLastChild]=\"childIndex === items().length - 1\"\n [borderTypes]=\"getChildBorderTypes(childIndex === items().length - 1)\"\n (itemClick)=\"itemClick.emit($event)\"\n (openChange)=\"openChange.emit($event)\"\n (actionIconClick)=\"actionIconClick.emit($event)\"\n (actionMenuClick)=\"actionMenuClick.emit($event)\"\n ></li>\n }\n </ul>\n}\n", styles: [":host{display:flex;flex-direction:column;margin:0;padding:0;list-style:none;min-height:32px}:host.root-depth:not(.has-children) .treeview-item-borders-container{padding-left:var(--treeview-root-indent, 0)}:host.compact{min-height:24px}:host.compact .treeview-item-row{min-height:24px}:host.compact .treeview-item-main-content{height:20px;padding:2px 4px}:host.compact .treeview-item-chevron{background:transparent}:host.compact .treeview-item-chevron:hover{background:transparent}:host.compact .treeview-item-chevron:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:0}:host.disabled .treeview-item-row{cursor:not-allowed;pointer-events:none}:host.disabled .treeview-item-main-content{background:var(--background-disabled)}:host.disabled .treeview-item-content,:host.disabled .treeview-item-icon{color:var(--content-disabled)}:host.selected>.treeview-item-row .treeview-item-main-content{background:var(--background-brand-default);color:var(--content-primary-inverse)}:host.selected>.treeview-item-row .treeview-item-content,:host.selected>.treeview-item-row .treeview-item-icon{color:var(--content-primary-inverse)}:host.selected>.treeview-item-row:hover .treeview-item-main-content{background:var(--background-brand-hover)}:host.is-expanded:not(.compact)>.treeview-item-row .treeview-item-chevron:after{content:\"\";position:absolute;bottom:0;left:50%;width:1px;height:8px;background:var(--border-tertiary);transform:translate(-50%) translateY(100%)}.treeview-item-row{display:flex;align-items:center;gap:4px;min-height:32px;border-radius:4px;cursor:pointer;box-sizing:border-box;flex:1;min-width:0}.treeview-item-row .treeview-item-main-content:hover{background:var(--background-hover)}.treeview-item-borders-container{display:flex;align-items:center;flex-shrink:0}.treeview-item-content-wrapper{display:flex;align-items:center;gap:4px;flex:1;min-width:0}.treeview-item-main-content{flex:1;display:flex;align-items:center;gap:4px;min-width:0;padding:4px;border-radius:4px;transition:background-color .12s;box-sizing:border-box}@media (prefers-reduced-motion: reduce){.treeview-item-main-content{transition:none}}.treeview-item-main-content:focus-within:not(:has(.treeview-item-action-button:focus)){box-shadow:0 0 0 1px var(--border-brand-focused);border-radius:4px}.treeview-item-checkbox{flex-shrink:0;display:flex;align-items:center;justify-content:center;min-width:16px;visibility:hidden;cursor:pointer;border-radius:2px}:host-context(.has-checked-items) .treeview-item-checkbox,.treeview-item-row:hover .treeview-item-checkbox,.treeview-item-row:focus-within .treeview-item-checkbox{visibility:visible}.treeview-item-checkbox:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:0}.treeview-item-checkbox ::ng-deep .rte-checkbox{margin:0}.treeview-item-checkbox ::ng-deep .rte-checkbox-container,.treeview-item-checkbox ::ng-deep .rte-checkbox-container *{pointer-events:none}.treeview-item-checkbox ::ng-deep .rte-checkbox-container{padding:0 4px;gap:0}.treeview-item-checkbox-spacer{flex-shrink:0;width:20px;min-width:20px}.treeview-item-chevron{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:16px;min-width:16px;height:16px;padding:0;background:var(--background-neutral-regular-default);border:none;border-radius:2px;cursor:pointer;color:inherit;position:relative}.treeview-item-chevron:hover{background:var(--background-neutral-navigation-hover)}.treeview-item-chevron:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:0}.treeview-item-chevron-spacer{flex-shrink:0;width:16px;min-width:16px}.treeview-item-action{flex-shrink:0;display:flex;align-items:center;justify-content:center}.treeview-item-action-button{flex-shrink:0;display:flex;align-items:center;justify-content:center;min-width:16px;height:16px;background:transparent;border:none;border-radius:2px;cursor:pointer;color:inherit;padding:0}.treeview-item-action-button:hover{background:transparent}.treeview-item-action-button:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:0}:host(.selected) .treeview-item-action-button:focus-visible{outline-color:var(--border-inverse)}.treeview-item-action-button:disabled{cursor:not-allowed;opacity:.5}.treeview-item-icon{flex-shrink:0}.treeview-item-content{flex:1;display:flex;align-items:center;gap:4px;min-width:0;font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-size:14px;letter-spacing:-.5px;font-weight:600;line-height:20px;color:var(--content-secondary)}.treeview-item-content:focus,.treeview-item-content:focus-visible{outline:none}.treeview-item-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit}.treeview-item-badge{flex-shrink:0;margin-left:auto}.treeview-item-children{display:flex;flex-direction:column;list-style:none;margin:0;padding:0;overflow:hidden;max-height:0;transition:max-height .14s ease-out}@media (prefers-reduced-motion: reduce){.treeview-item-children{transition:none}}.treeview-item-children.treeview-item-children-open{max-height:2000px;overflow:visible}\n"], dependencies: [{ kind: "component", type: TreeviewItemComponent, selector: "li[rteTreeviewItem]", inputs: ["treeId", "nodePath", "labelText", "icon", "disabled", "isCompact", "hasCheckbox", "isOpen", "hasIcon", "hasBadge", "items", "rootItems", "id", "depth", "isLastChild", "borderTypes", "actionIcon", "actionMenuItems"], outputs: ["itemClick", "openChange", "actionIconClick", "actionMenuClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: CheckboxComponent, selector: "rte-checkbox", inputs: ["id", "label", "value", "indeterminate", "description", "showLabel", "disabled", "error", "errorMessage", "readOnly", "checked", "tabindex"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge", "withPlusSign"] }, { kind: "component", type: TreeviewItemBorderComponent, selector: "rte-treeview-item-border", inputs: ["borderType", "isCompact"] }, { kind: "directive", type: DropdownDirective, selector: "[rteDropdown]", inputs: ["rteDropdownId", "rteDropdownPosition", "rteDropdownAlignment", "rteDropdownIsOpen", "rteDropdownOffset", "rteDropdownAutofocus", "rteDropdownAutoOpen", "rteDropdownWidth", "rteCloseOnItemClick"], outputs: ["menuEvent", "clickedOutside", "closedDropdown", "menuChangeEvent"] }, { kind: "directive", type: DropdownTriggerDirective, selector: "[rteDropdownTrigger]", inputs: ["rteDropdownTriggerActivateWithArrowDown"], outputs: ["dropdownKeyDown", "dropdownTriggered", "dropdownTriggerFocus", "dropdownTriggerClearContent", "dropdownTriggerOpenDropdown", "dropdownTriggerCloseDropdown"] }, { kind: "component", type: DropdownMenuComponent, selector: "rte-dropdown-menu", inputs: ["items", "menuId", "isOpen", "width", "headerTemplate", "footerTemplate"], outputs: ["itemEvent", "closingMenu"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
195
|
+
}
|
|
196
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TreeviewItemComponent, decorators: [{
|
|
197
|
+
type: Component,
|
|
198
|
+
args: [{ selector: "li[rteTreeviewItem]", imports: [
|
|
199
|
+
CommonModule,
|
|
200
|
+
CheckboxComponent,
|
|
201
|
+
IconComponent,
|
|
202
|
+
BadgeComponent,
|
|
203
|
+
TreeviewItemBorderComponent,
|
|
204
|
+
DropdownDirective,
|
|
205
|
+
DropdownTriggerDirective,
|
|
206
|
+
DropdownMenuComponent,
|
|
207
|
+
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"treeview-item-row\">\n @if (hasCheckbox()) {\n <div\n class=\"treeview-item-checkbox\"\n role=\"input\"\n data-treeview-focusable=\"checkbox\"\n tabindex=\"-1\"\n [attr.aria-checked]=\"isChecked() ? 'true' : isIndeterminate() ? 'mixed' : 'false'\"\n [attr.aria-label]=\"labelText()\"\n (click)=\"handleCheckboxClick($event)\"\n (keydown)=\"handleCheckboxKeydown($event)\"\n >\n <rte-checkbox\n [id]=\"checkboxId()\"\n [label]=\"labelText()\"\n [showLabel]=\"false\"\n [tabindex]=\"-1\"\n [disabled]=\"disabled()\"\n [checked]=\"isChecked()\"\n [indeterminate]=\"isIndeterminate()\"\n />\n </div>\n }\n <div class=\"treeview-item-borders-container\">\n @for (borderType of connectorBorderTypes(); track $index) {\n <rte-treeview-item-border [borderType]=\"borderType\" [isCompact]=\"isCompact()\" />\n }\n @if (hasChildren()) {\n <button\n type=\"button\"\n class=\"treeview-item-chevron\"\n data-treeview-focusable=\"chevron\"\n tabindex=\"-1\"\n [attr.aria-label]=\"isOpenSignal() ? 'Replier' : 'D\u00E9plier'\"\n [disabled]=\"disabled()\"\n (click)=\"toggleOpen(); $event.stopPropagation()\"\n (keydown)=\"handleChevronKeyDown($event)\"\n >\n <rte-icon [name]=\"isOpenSignal() ? 'arrow-chevron-down' : 'arrow-chevron-right'\" [size]=\"16\" />\n </button>\n }\n </div>\n <div class=\"treeview-item-content-wrapper\">\n <div class=\"treeview-item-main-content\" (keydown)=\"handleContentKeyDown($event)\" (click)=\"handleContentClick()\">\n @if (hasIcon() && icon() && !isCompact()) {\n <rte-icon class=\"treeview-item-icon\" [name]=\"icon()!\" [size]=\"16\" />\n }\n <div\n class=\"treeview-item-content\"\n data-treeview-focusable=\"content\"\n tabindex=\"-1\"\n [class.treeview-item-content-compact]=\"isCompact()\"\n >\n <span class=\"treeview-item-label\">{{ labelText() }}</span>\n </div>\n @if (hasBadge()) {\n <span class=\"treeview-item-badge\">\n <rte-badge badgeType=\"indicator\" badgeContent=\"empty\" badgeSize=\"s\" [simpleBadge]=\"true\" />\n </span>\n }\n @if (actionIcon()) {\n @if (actionMenuItems() && actionMenuItems()!.length > 0) {\n <div\n class=\"treeview-item-action\"\n rteDropdown\n (menuEvent)=\"handleActionMenuClick($event)\"\n (click)=\"$event.stopPropagation()\"\n >\n <button\n type=\"button\"\n class=\"treeview-item-action-button\"\n data-treeview-focusable=\"action\"\n tabindex=\"-1\"\n rteDropdownTrigger\n [attr.aria-label]=\"'Actions pour ' + labelText()\"\n [disabled]=\"disabled()\"\n >\n <rte-icon [name]=\"actionIcon()!\" [size]=\"16\" />\n </button>\n <rte-dropdown-menu [items]=\"actionMenuItems()!\" />\n </div>\n } @else {\n <button\n type=\"button\"\n class=\"treeview-item-action-button\"\n data-treeview-focusable=\"action\"\n tabindex=\"-1\"\n [attr.aria-label]=\"'Actions pour ' + labelText()\"\n [disabled]=\"disabled()\"\n (click)=\"handleActionIconClick($event)\"\n (keydown)=\"handleActionIconKeyDown($event)\"\n >\n <rte-icon [name]=\"actionIcon()!\" [size]=\"16\" />\n </button>\n }\n }\n </div>\n </div>\n</div>\n@if (hasChildren()) {\n <ul class=\"treeview-item-children\" role=\"group\" [class.treeview-item-children-open]=\"isOpenSignal()\">\n @for (child of items(); track trackChild(child); let childIndex = $index) {\n <li\n rteTreeviewItem\n [rootItems]=\"rootItems()\"\n [treeId]=\"treeId()\"\n [nodePath]=\"nodePath().concat(childIndex)\"\n [id]=\"child.id\"\n [labelText]=\"child.labelText\"\n [icon]=\"child.icon\"\n [disabled]=\"child.disabled ?? false\"\n [isCompact]=\"child.isCompact ?? isCompact()\"\n [hasCheckbox]=\"child.hasCheckbox ?? hasCheckbox()\"\n [isOpen]=\"child.isOpen ?? false\"\n [hasIcon]=\"child.hasIcon ?? hasIcon()\"\n [hasBadge]=\"child.hasBadge ?? false\"\n [items]=\"child.items ?? []\"\n [actionIcon]=\"child.actionIcon\"\n [actionMenuItems]=\"child.actionMenuItems\"\n [depth]=\"effectiveDepth() + 1\"\n [isLastChild]=\"childIndex === items().length - 1\"\n [borderTypes]=\"getChildBorderTypes(childIndex === items().length - 1)\"\n (itemClick)=\"itemClick.emit($event)\"\n (openChange)=\"openChange.emit($event)\"\n (actionIconClick)=\"actionIconClick.emit($event)\"\n (actionMenuClick)=\"actionMenuClick.emit($event)\"\n ></li>\n }\n </ul>\n}\n", styles: [":host{display:flex;flex-direction:column;margin:0;padding:0;list-style:none;min-height:32px}:host.root-depth:not(.has-children) .treeview-item-borders-container{padding-left:var(--treeview-root-indent, 0)}:host.compact{min-height:24px}:host.compact .treeview-item-row{min-height:24px}:host.compact .treeview-item-main-content{height:20px;padding:2px 4px}:host.compact .treeview-item-chevron{background:transparent}:host.compact .treeview-item-chevron:hover{background:transparent}:host.compact .treeview-item-chevron:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:0}:host.disabled .treeview-item-row{cursor:not-allowed;pointer-events:none}:host.disabled .treeview-item-main-content{background:var(--background-disabled)}:host.disabled .treeview-item-content,:host.disabled .treeview-item-icon{color:var(--content-disabled)}:host.selected>.treeview-item-row .treeview-item-main-content{background:var(--background-brand-default);color:var(--content-primary-inverse)}:host.selected>.treeview-item-row .treeview-item-content,:host.selected>.treeview-item-row .treeview-item-icon{color:var(--content-primary-inverse)}:host.selected>.treeview-item-row:hover .treeview-item-main-content{background:var(--background-brand-hover)}:host.is-expanded:not(.compact)>.treeview-item-row .treeview-item-chevron:after{content:\"\";position:absolute;bottom:0;left:50%;width:1px;height:8px;background:var(--border-tertiary);transform:translate(-50%) translateY(100%)}.treeview-item-row{display:flex;align-items:center;gap:4px;min-height:32px;border-radius:4px;cursor:pointer;box-sizing:border-box;flex:1;min-width:0}.treeview-item-row .treeview-item-main-content:hover{background:var(--background-hover)}.treeview-item-borders-container{display:flex;align-items:center;flex-shrink:0}.treeview-item-content-wrapper{display:flex;align-items:center;gap:4px;flex:1;min-width:0}.treeview-item-main-content{flex:1;display:flex;align-items:center;gap:4px;min-width:0;padding:4px;border-radius:4px;transition:background-color .12s;box-sizing:border-box}@media (prefers-reduced-motion: reduce){.treeview-item-main-content{transition:none}}.treeview-item-main-content:focus-within:not(:has(.treeview-item-action-button:focus)){box-shadow:0 0 0 1px var(--border-brand-focused);border-radius:4px}.treeview-item-checkbox{flex-shrink:0;display:flex;align-items:center;justify-content:center;min-width:16px;visibility:hidden;cursor:pointer;border-radius:2px}:host-context(.has-checked-items) .treeview-item-checkbox,.treeview-item-row:hover .treeview-item-checkbox,.treeview-item-row:focus-within .treeview-item-checkbox{visibility:visible}.treeview-item-checkbox:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:0}.treeview-item-checkbox ::ng-deep .rte-checkbox{margin:0}.treeview-item-checkbox ::ng-deep .rte-checkbox-container,.treeview-item-checkbox ::ng-deep .rte-checkbox-container *{pointer-events:none}.treeview-item-checkbox ::ng-deep .rte-checkbox-container{padding:0 4px;gap:0}.treeview-item-checkbox-spacer{flex-shrink:0;width:20px;min-width:20px}.treeview-item-chevron{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:16px;min-width:16px;height:16px;padding:0;background:var(--background-neutral-regular-default);border:none;border-radius:2px;cursor:pointer;color:inherit;position:relative}.treeview-item-chevron:hover{background:var(--background-neutral-navigation-hover)}.treeview-item-chevron:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:0}.treeview-item-chevron-spacer{flex-shrink:0;width:16px;min-width:16px}.treeview-item-action{flex-shrink:0;display:flex;align-items:center;justify-content:center}.treeview-item-action-button{flex-shrink:0;display:flex;align-items:center;justify-content:center;min-width:16px;height:16px;background:transparent;border:none;border-radius:2px;cursor:pointer;color:inherit;padding:0}.treeview-item-action-button:hover{background:transparent}.treeview-item-action-button:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:0}:host(.selected) .treeview-item-action-button:focus-visible{outline-color:var(--border-inverse)}.treeview-item-action-button:disabled{cursor:not-allowed;opacity:.5}.treeview-item-icon{flex-shrink:0}.treeview-item-content{flex:1;display:flex;align-items:center;gap:4px;min-width:0;font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-size:14px;letter-spacing:-.5px;font-weight:600;line-height:20px;color:var(--content-secondary)}.treeview-item-content:focus,.treeview-item-content:focus-visible{outline:none}.treeview-item-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit}.treeview-item-badge{flex-shrink:0;margin-left:auto}.treeview-item-children{display:flex;flex-direction:column;list-style:none;margin:0;padding:0;overflow:hidden;max-height:0;transition:max-height .14s ease-out}@media (prefers-reduced-motion: reduce){.treeview-item-children{transition:none}}.treeview-item-children.treeview-item-children-open{max-height:2000px;overflow:visible}\n"] }]
|
|
208
|
+
}], ctorParameters: () => [], propDecorators: { hostClasses: [{
|
|
209
|
+
type: HostBinding,
|
|
210
|
+
args: ["class"]
|
|
211
|
+
}], role: [{
|
|
212
|
+
type: HostBinding,
|
|
213
|
+
args: ["attr.role"]
|
|
214
|
+
}], dataItemId: [{
|
|
215
|
+
type: HostBinding,
|
|
216
|
+
args: ["attr.data-item-id"]
|
|
217
|
+
}], ariaLevel: [{
|
|
218
|
+
type: HostBinding,
|
|
219
|
+
args: ["attr.aria-level"]
|
|
220
|
+
}], ariaExpanded: [{
|
|
221
|
+
type: HostBinding,
|
|
222
|
+
args: ["attr.aria-expanded"]
|
|
223
|
+
}], ariaSelected: [{
|
|
224
|
+
type: HostBinding,
|
|
225
|
+
args: ["attr.aria-selected"]
|
|
226
|
+
}] } });
|
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZXZpZXctaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1ydGUtbGliL3NyYy9saWIvY29tcG9uZW50cy90cmVldmlldy90cmVldmlldy1pdGVtL3RyZWV2aWV3LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdHJlZXZpZXcvdHJlZXZpZXctaXRlbS90cmVldmlldy1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFPdkIsT0FBTyxFQUNMLHFCQUFxQixFQUVyQixtQkFBbUIsRUFDbkIsYUFBYSxFQUNiLGlCQUFpQixFQUNqQiwyQkFBMkIsRUFDM0IsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixXQUFXLElBQUksZUFBZSxFQUM5QixjQUFjLEVBQ2QsbUJBQW1CLEdBQ3BCLE1BQU0sNERBQTRELENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUVyRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDN0YsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxF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YywwSkFDZCwyQkFBMkIsMEdBQzNCLGlCQUFpQix1VkFDakIsd0JBQXdCLCtSQUN4QixxQkFBcUI7OzRGQU9aLHFCQUFxQjtrQkFqQmpDLFNBQVM7K0JBQ0UscUJBQXFCLFdBQ3RCO3dCQUNQLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsMkJBQTJCO3dCQUMzQixpQkFBaUI7d0JBQ2pCLHdCQUF3Qjt3QkFDeEIscUJBQXFCO3FCQUN0QixjQUNXLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTTt3REFHckIsV0FBVztzQkFBcEMsV0FBVzt1QkFBQyxPQUFPO2dCQVdlLElBQUk7c0JBQXRDLFdBQVc7dUJBQUMsV0FBVztnQkFFYyxVQUFVO3NCQUEvQyxXQUFXO3VCQUFDLG1CQUFtQjtnQkFJSSxTQUFTO3NCQUE1QyxXQUFXO3VCQUFDLGlCQUFpQjtnQkFJUyxZQUFZO3NCQUFsRCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFJTSxZQUFZO3NCQUFsRCxXQUFXO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIEhvc3RCaW5kaW5nLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgU2lnbmFsLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgVHJlZXZpZXdCb3JkZXJUeXBlLFxuICBUcmVldmlld0l0ZW1Qcm9wcyxcbiAgVHJlZXZpZXdPcGVuQ2hhbmdlRXZlbnQsXG4gIFRyZWV2aWV3Tm9kZVBhdGgsXG59IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL3RyZWV2aWV3L3RyZWV2aWV3LWl0ZW0uaW50ZXJmYWNlXCI7XG5pbXBvcnQge1xuICBhbGxEZXNjZW5kYW50c0NoZWNrZWQsXG4gIEJ1aWxkVHJlZXZpZXdOb2RlSWRQYXJhbXMsXG4gIGJ1aWxkVHJlZXZpZXdOb2RlSWQsXG4gIGNhblRvZ2dsZU9wZW4sXG4gIGNvbXB1dGVDaGVja2JveElkLFxuICBjb21wdXRlQ29ubmVjdG9yQm9yZGVyVHlwZXMsXG4gIGdldENoaWxkQm9yZGVyVHlwZXMsXG4gIGdldFRyZWV2aWV3SXRlbUtleSxcbiAgaGFzQ2hpbGRyZW4gYXMgaGFzQ2hpbGRyZW5VdGlsLFxuICBpc0l0ZW1TZWxlY3RlZCxcbiAgaXNOb2RlSW5kZXRlcm1pbmF0ZSxcbn0gZnJvbSBcIkBkZXNpZ24tc3lzdGVtLXJ0ZS9jb3JlL2NvbXBvbmVudHMvdHJlZXZpZXcvdHJlZXZpZXcudXRpbHNcIjtcbmltcG9ydCB7IEVOVEVSX0tFWSwgU1BBQ0VfS0VZIH0gZnJvbSBcIkBkZXNpZ24tc3lzdGVtLXJ0ZS9jb3JlL2NvbnN0YW50cy9rZXlib2FyZC9rZXlib2FyZC5jb25zdGFudHNcIjtcblxuaW1wb3J0IHsgQmFkZ2VDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vYmFkZ2UvYmFkZ2UuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDaGVja2JveENvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnRcIjtcbmltcG9ydCB7IERyb3Bkb3duTWVudUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9kcm9wZG93bi9kcm9wZG93bi1tZW51L2Ryb3Bkb3duLW1lbnUuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBEcm9wZG93blRyaWdnZXJEaXJlY3RpdmUgfSBmcm9tIFwiLi4vLi4vZHJvcGRvd24vZHJvcGRvd24tdHJpZ2dlci9kcm9wZG93bi10cmlnZ2VyLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgRHJvcGRvd25EaXJlY3RpdmUgfSBmcm9tIFwiLi4vLi4vZHJvcGRvd24vZHJvcGRvd24uZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBEcm9wZG93bkl0ZW1Db25maWcsIERyb3Bkb3duSXRlbUV2ZW50IH0gZnJvbSBcIi4uLy4uL2Ryb3Bkb3duL2Ryb3Bkb3duLnR5cGVzXCI7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2ljb24vaWNvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7IFRyZWV2aWV3Q2hlY2tTZXJ2aWNlIH0gZnJvbSBcIi4uL3RyZWV2aWV3LWNoZWNrLnNlcnZpY2VcIjtcbmltcG9ydCB7IFRyZWV2aWV3U2VsZWN0aW9uU2VydmljZSB9IGZyb20gXCIuLi90cmVldmlldy1zZWxlY3Rpb24uc2VydmljZVwiO1xuXG5pbXBvcnQgeyBUcmVldmlld0l0ZW1Cb3JkZXJDb21wb25lbnQgfSBmcm9tIFwiLi90cmVldmlldy1pdGVtLWJvcmRlci90cmVldmlldy1pdGVtLWJvcmRlci5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImxpW3J0ZVRyZWV2aWV3SXRlbV1cIixcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDaGVja2JveENvbXBvbmVudCxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIEJhZGdlQ29tcG9uZW50LFxuICAgIFRyZWV2aWV3SXRlbUJvcmRlckNvbXBvbmVudCxcbiAgICBEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICBEcm9wZG93blRyaWdnZXJEaXJlY3RpdmUsXG4gICAgRHJvcGRvd25NZW51Q29tcG9uZW50LFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogXCIuL3RyZWV2aWV3LWl0ZW0uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmw6IFwiLi90cmVldmlldy1pdGVtLmNvbXBvbmVudC5zY3NzXCIsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUcmVldmlld0l0ZW1Db21wb25lbnQge1xuICBASG9zdEJpbmRpbmcoXCJjbGFzc1wiKSBnZXQgaG9zdENsYXNzZXMoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjbGFzc2VzID0gW1widHJlZXZpZXctaXRlbVwiXTtcbiAgICBpZiAodGhpcy5pc0NvbXBhY3QoKSkgY2xhc3Nlcy5wdXNoKFwiY29tcGFjdFwiKTtcbiAgICBpZiAodGhpcy5pc1NlbGVjdGVkKCkpIGNsYXNzZXMucHVzaChcInNlbGVjdGVkXCIpO1xuICAgIGlmICh0aGlzLmRpc2FibGVkKCkpIGNsYXNzZXMucHVzaChcImRpc2FibGVkXCIpO1xuICAgIGlmICh0aGlzLmhhc0NoaWxkcmVuKCkpIGNsYXNzZXMucHVzaChcImhhcy1jaGlsZHJlblwiKTtcbiAgICBpZiAodGhpcy5oYXNDaGlsZHJlbigpICYmIHRoaXMuaXNPcGVuU2lnbmFsKCkpIGNsYXNzZXMucHVzaChcImlzLWV4cGFuZGVkXCIpO1xuICAgIGlmICh0aGlzLmVmZmVjdGl2ZURlcHRoKCkgPT09IDApIGNsYXNzZXMucHVzaChcInJvb3QtZGVwdGhcIik7XG4gICAgcmV0dXJuIGNsYXNzZXMuam9pbihcIiBcIik7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoXCJhdHRyLnJvbGVcIikgcmVhZG9ubHkgcm9sZSA9IFwidHJlZWl0ZW1cIjtcblxuICBASG9zdEJpbmRpbmcoXCJhdHRyLmRhdGEtaXRlbS1pZFwiKSBnZXQgZGF0YUl0ZW1JZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLml0ZW1JZCgpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKFwiYXR0ci5hcmlhLWxldmVsXCIpIGdldCBhcmlhTGV2ZWwoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5lZmZlY3RpdmVEZXB0aCgpICsgMTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZyhcImF0dHIuYXJpYS1leHBhbmRlZFwiKSBnZXQgYXJpYUV4cGFuZGVkKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmhhc0NoaWxkcmVuKCkgPyB0aGlzLmlzT3BlblNpZ25hbCgpIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKFwiYXR0ci5hcmlhLXNlbGVjdGVkXCIpIGdldCBhcmlhU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5pc1NlbGVjdGVkKCk7XG4gIH1cblxuICByZWFkb25seSB0cmVlSWQgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IG5vZGVQYXRoID0gaW5wdXQ8VHJlZXZpZXdOb2RlUGF0aD4oW10pO1xuICByZWFkb25seSBsYWJlbFRleHQgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGljb24gPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KCk7XG4gIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBpc0NvbXBhY3QgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGhhc0NoZWNrYm94ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBpc09wZW4gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGhhc0ljb24gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGhhc0JhZGdlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBpdGVtcyA9IGlucHV0PFRyZWV2aWV3SXRlbVByb3BzW10+KFtdKTtcbiAgcmVhZG9ubHkgcm9vdEl0ZW1zID0gaW5wdXQ8VHJlZXZpZXdJdGVtUHJvcHNbXSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgaWQgPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KCk7XG4gIHJlYWRvbmx5IGRlcHRoID0gaW5wdXQ8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBpc0xhc3RDaGlsZCA9IGlucHV0PGJvb2xlYW4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGJvcmRlclR5cGVzID0gaW5wdXQ8VHJlZXZpZXdCb3JkZXJUeXBlW10+KFtdKTtcbiAgcmVhZG9ubHkgYWN0aW9uSWNvbiA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4oKTtcbiAgcmVhZG9ubHkgYWN0aW9uTWVudUl0ZW1zID0gaW5wdXQ8RHJvcGRvd25JdGVtQ29uZmlnW10gfCB1bmRlZmluZWQ+KCk7XG5cbiAgcmVhZG9ubHkgaXNPcGVuU2lnbmFsID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICByZWFkb25seSBpdGVtQ2xpY2sgPSBvdXRwdXQ8c3RyaW5nIHwgdW5kZWZpbmVkPigpO1xuICByZWFkb25seSBvcGVuQ2hhbmdlID0gb3V0cHV0PFRyZWV2aWV3T3BlbkNoYW5nZUV2ZW50PigpO1xuICByZWFkb25seSBhY3Rpb25JY29uQ2xpY2sgPSBvdXRwdXQ8eyBpdGVtSWQ6IHN0cmluZzsgZXZlbnQ6IEV2ZW50IH0+KCk7XG4gIHJlYWRvbmx5IGFjdGlvbk1lbnVDbGljayA9IG91dHB1dDx7XG4gICAgaXRlbUlkOiBzdHJpbmc7XG4gICAgbWVudUl0ZW1JZDogc3RyaW5nO1xuICAgIG1lbnVJdGVtTGFiZWw6IHN0cmluZztcbiAgICBldmVudDogRXZlbnQ7XG4gICAgaXRlbT86IERyb3Bkb3duSXRlbUNvbmZpZztcbiAgfT4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHBhcmVudEl0ZW0gPSBpbmplY3QoVHJlZXZpZXdJdGVtQ29tcG9uZW50LCB7IG9wdGlvbmFsOiB0cnVlLCBza2lwU2VsZjogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBzZWxlY3Rpb25TZXJ2aWNlID0gaW5qZWN0KFRyZWV2aWV3U2VsZWN0aW9uU2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBjaGVja1NlcnZpY2UgPSBpbmplY3QoVHJlZXZpZXdDaGVja1NlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgcmVhZG9ubHkgaGFzQ2hpbGRyZW4gPSBjb21wdXRlZCgoKSA9PiBoYXNDaGlsZHJlblV0aWwodGhpcy5pdGVtcygpKSk7XG5cbiAgcmVhZG9ubHkgaXNDaGVja2VkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGlkcyA9IHRoaXMuY2hlY2tTZXJ2aWNlPy5jaGVja2VkSWRzKCkgPz8gbmV3IFNldCgpO1xuICAgIGNvbnN0IG5vZGUgPSB7IGlkOiB0aGlzLml0ZW1JZCgpLCBsYWJlbFRleHQ6IHRoaXMubGFiZWxUZXh0KCksIGl0ZW1zOiB0aGlzLml0ZW1zKCkgfTtcbiAgICBjb25zdCBoYXNDaGlsZHJlbiA9IGhhc0NoaWxkcmVuVXRpbCh0aGlzLml0ZW1zKCkpO1xuICAgIHJldHVybiBhbGxEZXNjZW5kYW50c0NoZWNrZWQobm9kZSwgaWRzKSB8fCAoaWRzLmhhcyh0aGlzLml0ZW1JZCgpKSAmJiAhaGFzQ2hpbGRyZW4pO1xuICB9KTtcblxuICByZWFkb25seSBpc0luZGV0ZXJtaW5hdGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgaWRzID0gdGhpcy5jaGVja1NlcnZpY2U/LmNoZWNrZWRJZHMoKSA/PyBuZXcgU2V0KCk7XG4gICAgY29uc3Qgbm9kZSA9IHsgaWQ6IHRoaXMuaXRlbUlkKCksIGxhYmVsVGV4dDogdGhpcy5sYWJlbFRleHQoKSwgaXRlbXM6IHRoaXMuaXRlbXMoKSB9O1xuICAgIHJldHVybiBpc05vZGVJbmRldGVybWluYXRlKG5vZGUsIGlkcyk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGl0ZW1JZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaWQoKSA/PyB0aGlzLmxhYmVsVGV4dCgpKTtcblxuICByZWFkb25seSBpc1NlbGVjdGVkID0gY29tcHV0ZWQoXG4gICAgKCkgPT4gdGhpcy5zZWxlY3Rpb25TZXJ2aWNlICYmICEhaXNJdGVtU2VsZWN0ZWQodGhpcy5pdGVtSWQoKSwgdGhpcy5zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGVkSWQoKSksXG4gICk7XG5cbiAgcmVhZG9ubHkgZWZmZWN0aXZlRGVwdGg6IFNpZ25hbDxudW1iZXI+ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGRlcHRoSW5wdXQgPSB0aGlzLmRlcHRoKCk7XG4gICAgaWYgKGRlcHRoSW5wdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIGRlcHRoSW5wdXQ7XG4gICAgfVxuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMucGFyZW50SXRlbTtcbiAgICByZXR1cm4gcGFyZW50ID8gcGFyZW50LmVmZmVjdGl2ZURlcHRoKCkgKyAxIDogMDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgbm9kZVVpZCA9IGNvbXB1dGVkKCgpID0+XG4gICAgYnVpbGRUcmVldmlld05vZGVJZCh7XG4gICAgICB0cmVlSWQ6IHRoaXMudHJlZUlkKCksXG4gICAgICBwYXRoOiB0aGlzLm5vZGVQYXRoKCksXG4gICAgICBpdGVtSWQ6IHRoaXMuaXRlbUlkKCksXG4gICAgfSBhcyBCdWlsZFRyZWV2aWV3Tm9kZUlkUGFyYW1zKSxcbiAgKTtcblxuICByZWFkb25seSBjaGVja2JveElkID0gY29tcHV0ZWQoKCkgPT4gY29tcHV0ZUNoZWNrYm94SWQodGhpcy5ub2RlVWlkKCkpKTtcblxuICByZWFkb25seSByZXNvbHZlZEJvcmRlclR5cGVzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGlucHV0Qm9yZGVyVHlwZXMgPSB0aGlzLmJvcmRlclR5cGVzKCk7XG4gICAgcmV0dXJuIGlucHV0Qm9yZGVyVHlwZXMubGVuZ3RoID4gMCA/IGlucHV0Qm9yZGVyVHlwZXMgOiBbXTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgY29ubmVjdG9yQm9yZGVyVHlwZXMgPSBjb21wdXRlZCgoKSA9PlxuICAgIGNvbXB1dGVDb25uZWN0b3JCb3JkZXJUeXBlcyh7XG4gICAgICBkZXB0aDogdGhpcy5lZmZlY3RpdmVEZXB0aCgpLFxuICAgICAgaXNDb21wYWN0OiB0aGlzLmlzQ29tcGFjdCgpLFxuICAgICAgcmVzb2x2ZWRCb3JkZXJUeXBlczogdGhpcy5yZXNvbHZlZEJvcmRlclR5cGVzKCksXG4gICAgICBoYXNDaGlsZHJlbjogdGhpcy5oYXNDaGlsZHJlbigpLFxuICAgIH0pLFxuICApO1xuXG4gIGdldENoaWxkQm9yZGVyVHlwZXMoaXNMYXN0Q2hpbGQ6IGJvb2xlYW4pOiBUcmVldmlld0JvcmRlclR5cGVbXSB7XG4gICAgcmV0dXJuIGdldENoaWxkQm9yZGVyVHlwZXModGhpcy5yZXNvbHZlZEJvcmRlclR5cGVzKCksIGlzTGFzdENoaWxkKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5pc09wZW5TaWduYWwuc2V0KHRoaXMuaXNPcGVuKCkpO1xuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcbiAgICApO1xuICB9XG5cbiAgdG9nZ2xlT3BlbigpOiB2b2lkIHtcbiAgICBpZiAoIWNhblRvZ2dsZU9wZW4odGhpcy5oYXNDaGlsZHJlbigpLCB0aGlzLmRpc2FibGVkKCkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5ld09wZW4gPSAhdGhpcy5pc09wZW5TaWduYWwoKTtcbiAgICB0aGlzLmlzT3BlblNpZ25hbC5zZXQobmV3T3Blbik7XG4gICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQoeyBpZDogdGhpcy5pdGVtSWQoKSwgb3BlbjogbmV3T3BlbiB9KTtcbiAgfVxuXG4gIGhhbmRsZUNvbnRlbnRDbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHNlcnZpY2UgPSB0aGlzLnNlbGVjdGlvblNlcnZpY2U7XG4gICAgaWYgKHNlcnZpY2UpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRJdGVtSWQgPSB0aGlzLml0ZW1JZCgpO1xuICAgICAgc2VydmljZS5zZWxlY3QoY3VycmVudEl0ZW1JZCk7XG4gICAgfVxuICAgIHRoaXMuaXRlbUNsaWNrLmVtaXQodGhpcy5pdGVtSWQoKSk7XG4gIH1cblxuICBoYW5kbGVDaGV2cm9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChbU1BBQ0VfS0VZLCBFTlRFUl9LRVldLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnRvZ2dsZU9wZW4oKTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVDb250ZW50S2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChbU1BBQ0VfS0VZLCBFTlRFUl9LRVldLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLmhhbmRsZUNvbnRlbnRDbGljaygpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUNoZWNrYm94Q2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2hlY2tTZXJ2aWNlPy50b2dnbGVDaGVja2VkKFxuICAgICAgeyBpZDogdGhpcy5pdGVtSWQoKSwgbGFiZWxUZXh0OiB0aGlzLmxhYmVsVGV4dCgpLCBpdGVtczogdGhpcy5pdGVtcygpIH0sXG4gICAgICB0aGlzLnJvb3RJdGVtcygpLFxuICAgICk7XG4gIH1cblxuICBoYW5kbGVDaGVja2JveEtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoW1NQQUNFX0tFWSwgRU5URVJfS0VZXS5pbmNsdWRlcyhldmVudC5rZXkpKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5oYW5kbGVDaGVja2JveENsaWNrKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVBY3Rpb25JY29uQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmFjdGlvbkljb25DbGljay5lbWl0KHsgaXRlbUlkOiB0aGlzLml0ZW1JZCgpLCBldmVudCB9KTtcbiAgfVxuXG4gIGhhbmRsZUFjdGlvbkljb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKFtTUEFDRV9LRVksIEVOVEVSX0tFWV0uaW5jbHVkZXMoZXZlbnQua2V5KSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5oYW5kbGVBY3Rpb25JY29uQ2xpY2soZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUFjdGlvbk1lbnVDbGljayhtZW51RXZlbnQ6IERyb3Bkb3duSXRlbUV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBtZW51SXRlbUlkID0gbWVudUV2ZW50LmlkO1xuICAgIGNvbnN0IG1lbnVJdGVtTGFiZWwgPSBtZW51RXZlbnQuaXRlbT8ubGFiZWwgPz8gbWVudUl0ZW1JZDtcbiAgICB0aGlzLmFjdGlvbk1lbnVDbGljay5lbWl0KHtcbiAgICAgIGl0ZW1JZDogdGhpcy5pdGVtSWQoKSxcbiAgICAgIG1lbnVJdGVtSWQsXG4gICAgICBtZW51SXRlbUxhYmVsLFxuICAgICAgZXZlbnQ6IG1lbnVFdmVudC5ldmVudCxcbiAgICAgIGl0ZW06IG1lbnVFdmVudC5pdGVtLFxuICAgIH0pO1xuICB9XG5cbiAgdHJhY2tDaGlsZChjaGlsZDogVHJlZXZpZXdJdGVtUHJvcHMpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRUcmVldmlld0l0ZW1LZXkoY2hpbGQpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidHJlZXZpZXctaXRlbS1yb3dcIj5cbiAgQGlmIChoYXNDaGVja2JveCgpKSB7XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ0cmVldmlldy1pdGVtLWNoZWNrYm94XCJcbiAgICAgIHJvbGU9XCJpbnB1dFwiXG4gICAgICBkYXRhLXRyZWV2aWV3LWZvY3VzYWJsZT1cImNoZWNrYm94XCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgW2F0dHIuYXJpYS1jaGVja2VkXT1cImlzQ2hlY2tlZCgpID8gJ3RydWUnIDogaXNJbmRldGVybWluYXRlKCkgPyAnbWl4ZWQnIDogJ2ZhbHNlJ1wiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsVGV4dCgpXCJcbiAgICAgIChjbGljayk9XCJoYW5kbGVDaGVja2JveENsaWNrKCRldmVudClcIlxuICAgICAgKGtleWRvd24pPVwiaGFuZGxlQ2hlY2tib3hLZXlkb3duKCRldmVudClcIlxuICAgID5cbiAgICAgIDxydGUtY2hlY2tib3hcbiAgICAgICAgW2lkXT1cImNoZWNrYm94SWQoKVwiXG4gICAgICAgIFtsYWJlbF09XCJsYWJlbFRleHQoKVwiXG4gICAgICAgIFtzaG93TGFiZWxdPVwiZmFsc2VcIlxuICAgICAgICBbdGFiaW5kZXhdPVwiLTFcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICAgIFtjaGVja2VkXT1cImlzQ2hlY2tlZCgpXCJcbiAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwiaXNJbmRldGVybWluYXRlKClcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgfVxuICA8ZGl2IGNsYXNzPVwidHJlZXZpZXctaXRlbS1ib3JkZXJzLWNvbnRhaW5lclwiPlxuICAgIEBmb3IgKGJvcmRlclR5cGUgb2YgY29ubmVjdG9yQm9yZGVyVHlwZXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8cnRlLXRyZWV2aWV3LWl0ZW0tYm9yZGVyIFtib3JkZXJUeXBlXT1cImJvcmRlclR5cGVcIiBbaXNDb21wYWN0XT1cImlzQ29tcGFjdCgpXCIgLz5cbiAgICB9XG4gICAgQGlmIChoYXNDaGlsZHJlbigpKSB7XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cInRyZWV2aWV3LWl0ZW0tY2hldnJvblwiXG4gICAgICAgIGRhdGEtdHJlZXZpZXctZm9jdXNhYmxlPVwiY2hldnJvblwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImlzT3BlblNpZ25hbCgpID8gJ1JlcGxpZXInIDogJ0TDqXBsaWVyJ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU9wZW4oKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgKGtleWRvd24pPVwiaGFuZGxlQ2hldnJvbktleURvd24oJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxydGUtaWNvbiBbbmFtZV09XCJpc09wZW5TaWduYWwoKSA/ICdhcnJvdy1jaGV2cm9uLWRvd24nIDogJ2Fycm93LWNoZXZyb24tcmlnaHQnXCIgW3NpemVdPVwiMTZcIiAvPlxuICAgICAgPC9idXR0b24+XG4gICAgfVxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInRyZWV2aWV3LWl0ZW0tY29udGVudC13cmFwcGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cInRyZWV2aWV3LWl0ZW0tbWFpbi1jb250ZW50XCIgKGtleWRvd24pPVwiaGFuZGxlQ29udGVudEtleURvd24oJGV2ZW50KVwiIChjbGljayk9XCJoYW5kbGVDb250ZW50Q2xpY2soKVwiPlxuICAgICAgQGlmIChoYXNJY29uKCkgJiYgaWNvbigpICYmICFpc0NvbXBhY3QoKSkge1xuICAgICAgICA8cnRlLWljb24gY2xhc3M9XCJ0cmVldmlldy1pdGVtLWljb25cIiBbbmFtZV09XCJpY29uKCkhXCIgW3NpemVdPVwiMTZcIiAvPlxuICAgICAgfVxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRyZWV2aWV3LWl0ZW0tY29udGVudFwiXG4gICAgICAgIGRhdGEtdHJlZXZpZXctZm9jdXNhYmxlPVwiY29udGVudFwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICBbY2xhc3MudHJlZXZpZXctaXRlbS1jb250ZW50LWNvbXBhY3RdPVwiaXNDb21wYWN0KClcIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInRyZWV2aWV3LWl0ZW0tbGFiZWxcIj57eyBsYWJlbFRleHQoKSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgQGlmIChoYXNCYWRnZSgpKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidHJlZXZpZXctaXRlbS1iYWRnZVwiPlxuICAgICAgICAgIDxydGUtYmFkZ2UgYmFkZ2VUeXBlPVwiaW5kaWNhdG9yXCIgYmFkZ2VDb250ZW50PVwiZW1wdHlcIiBiYWRnZVNpemU9XCJzXCIgW3NpbXBsZUJhZGdlXT1cInRydWVcIiAvPlxuICAgICAgICA8L3NwYW4+XG4gICAgICB9XG4gICAgICBAaWYgKGFjdGlvbkljb24oKSkge1xuICAgICAgICBAaWYgKGFjdGlvbk1lbnVJdGVtcygpICYmIGFjdGlvbk1lbnVJdGVtcygpIS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ0cmVldmlldy1pdGVtLWFjdGlvblwiXG4gICAgICAgICAgICBydGVEcm9wZG93blxuICAgICAgICAgICAgKG1lbnVFdmVudCk9XCJoYW5kbGVBY3Rpb25NZW51Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cInRyZWV2aWV3LWl0ZW0tYWN0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgICAgIGRhdGEtdHJlZXZpZXctZm9jdXNhYmxlPVwiYWN0aW9uXCJcbiAgICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICAgIHJ0ZURyb3Bkb3duVHJpZ2dlclxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBY3Rpb25zIHBvdXIgJyArIGxhYmVsVGV4dCgpXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8cnRlLWljb24gW25hbWVdPVwiYWN0aW9uSWNvbigpIVwiIFtzaXplXT1cIjE2XCIgLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPHJ0ZS1kcm9wZG93bi1tZW51IFtpdGVtc109XCJhY3Rpb25NZW51SXRlbXMoKSFcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwidHJlZXZpZXctaXRlbS1hY3Rpb24tYnV0dG9uXCJcbiAgICAgICAgICAgIGRhdGEtdHJlZXZpZXctZm9jdXNhYmxlPVwiYWN0aW9uXCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQWN0aW9ucyBwb3VyICcgKyBsYWJlbFRleHQoKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQWN0aW9uSWNvbkNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgKGtleWRvd24pPVwiaGFuZGxlQWN0aW9uSWNvbktleURvd24oJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHJ0ZS1pY29uIFtuYW1lXT1cImFjdGlvbkljb24oKSFcIiBbc2l6ZV09XCIxNlwiIC8+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbkBpZiAoaGFzQ2hpbGRyZW4oKSkge1xuICA8dWwgY2xhc3M9XCJ0cmVldmlldy1pdGVtLWNoaWxkcmVuXCIgcm9sZT1cImdyb3VwXCIgW2NsYXNzLnRyZWV2aWV3LWl0ZW0tY2hpbGRyZW4tb3Blbl09XCJpc09wZW5TaWduYWwoKVwiPlxuICAgIEBmb3IgKGNoaWxkIG9mIGl0ZW1zKCk7IHRyYWNrIHRyYWNrQ2hpbGQoY2hpbGQpOyBsZXQgY2hpbGRJbmRleCA9ICRpbmRleCkge1xuICAgICAgPGxpXG4gICAgICAgIHJ0ZVRyZWV2aWV3SXRlbVxuICAgICAgICBbcm9vdEl0ZW1zXT1cInJvb3RJdGVtcygpXCJcbiAgICAgICAgW3RyZWVJZF09XCJ0cmVlSWQoKVwiXG4gICAgICAgIFtub2RlUGF0aF09XCJub2RlUGF0aCgpLmNvbmNhdChjaGlsZEluZGV4KVwiXG4gICAgICAgIFtpZF09XCJjaGlsZC5pZFwiXG4gICAgICAgIFtsYWJlbFRleHRdPVwiY2hpbGQubGFiZWxUZXh0XCJcbiAgICAgICAgW2ljb25dPVwiY2hpbGQuaWNvblwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJjaGlsZC5kaXNhYmxlZCA/PyBmYWxzZVwiXG4gICAgICAgIFtpc0NvbXBhY3RdPVwiY2hpbGQuaXNDb21wYWN0ID8/IGlzQ29tcGFjdCgpXCJcbiAgICAgICAgW2hhc0NoZWNrYm94XT1cImNoaWxkLmhhc0NoZWNrYm94ID8/IGhhc0NoZWNrYm94KClcIlxuICAgICAgICBbaXNPcGVuXT1cImNoaWxkLmlzT3BlbiA/PyBmYWxzZVwiXG4gICAgICAgIFtoYXNJY29uXT1cImNoaWxkLmhhc0ljb24gPz8gaGFzSWNvbigpXCJcbiAgICAgICAgW2hhc0JhZGdlXT1cImNoaWxkLmhhc0JhZGdlID8/IGZhbHNlXCJcbiAgICAgICAgW2l0ZW1zXT1cImNoaWxkLml0ZW1zID8/IFtdXCJcbiAgICAgICAgW2FjdGlvbkljb25dPVwiY2hpbGQuYWN0aW9uSWNvblwiXG4gICAgICAgIFthY3Rpb25NZW51SXRlbXNdPVwiY2hpbGQuYWN0aW9uTWVudUl0ZW1zXCJcbiAgICAgICAgW2RlcHRoXT1cImVmZmVjdGl2ZURlcHRoKCkgKyAxXCJcbiAgICAgICAgW2lzTGFzdENoaWxkXT1cImNoaWxkSW5kZXggPT09IGl0ZW1zKCkubGVuZ3RoIC0gMVwiXG4gICAgICAgIFtib3JkZXJUeXBlc109XCJnZXRDaGlsZEJvcmRlclR5cGVzKGNoaWxkSW5kZXggPT09IGl0ZW1zKCkubGVuZ3RoIC0gMSlcIlxuICAgICAgICAoaXRlbUNsaWNrKT1cIml0ZW1DbGljay5lbWl0KCRldmVudClcIlxuICAgICAgICAob3BlbkNoYW5nZSk9XCJvcGVuQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgIChhY3Rpb25JY29uQ2xpY2spPVwiYWN0aW9uSWNvbkNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgIChhY3Rpb25NZW51Q2xpY2spPVwiYWN0aW9uTWVudUNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9saT5cbiAgICB9XG4gIDwvdWw+XG59XG4iXX0=
|