@design-system-rte/angular 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/breadcrumbs/breadcrumbs.component.mjs +2 -2
- package/esm2022/lib/components/dropdown/dropdown-menu/dropdown-menu-footer.directive.mjs +17 -0
- package/esm2022/lib/components/dropdown/dropdown-menu/dropdown-menu-header.directive.mjs +17 -0
- package/esm2022/lib/components/dropdown/dropdown-menu/dropdown-menu.component.mjs +24 -5
- package/esm2022/lib/components/dropdown/dropdown.directive.mjs +33 -12
- package/esm2022/lib/components/dropdown/dropdown.module.mjs +32 -5
- package/esm2022/lib/components/select/select.component.mjs +2 -2
- package/esm2022/lib/components/split-button/split-button.component.mjs +2 -2
- package/esm2022/lib/components/tab/tab-item/tab-item.component.mjs +112 -0
- package/esm2022/lib/components/tab/tab.component.mjs +242 -0
- package/esm2022/lib/components/toast/toast.component.mjs +44 -5
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/design-system-rte-angular.mjs +491 -25
- package/fesm2022/design-system-rte-angular.mjs.map +1 -1
- package/lib/components/assistive-text/assistive-text.component.d.ts +1 -1
- package/lib/components/badge/badge.directive.d.ts +1 -1
- package/lib/components/dropdown/dropdown-menu/dropdown-menu-footer.directive.d.ts +7 -0
- package/lib/components/dropdown/dropdown-menu/dropdown-menu-header.directive.d.ts +7 -0
- package/lib/components/dropdown/dropdown-menu/dropdown-menu.component.d.ts +14 -1
- package/lib/components/dropdown/dropdown.directive.d.ts +7 -1
- package/lib/components/dropdown/dropdown.module.d.ts +3 -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/popover/popover.component.d.ts +1 -1
- package/lib/components/split-button/split-button.component.d.ts +2 -2
- package/lib/components/tab/tab-item/tab-item.component.d.ts +35 -0
- package/lib/components/tab/tab.component.d.ts +70 -0
- package/lib/components/tag/tag.component.d.ts +2 -2
- package/lib/components/text-input/base-text-input/base-text-input.component.d.ts +3 -3
- package/lib/components/toast/toast.component.d.ts +9 -1
- package/lib/components/tooltip/tooltip.component.d.ts +1 -1
- package/package.json +2 -2
- package/public-api.d.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design-system-rte-angular.mjs","sources":["../../../projects/ds-rte-lib/src/lib/components/button/button.component.ts","../../../projects/ds-rte-lib/src/lib/components/button/button.component.html","../../../projects/ds-rte-lib/src/lib/components/grid/grid.directive.ts","../../../projects/ds-rte-lib/src/lib/components/grid/col/col.directive.ts","../../../projects/ds-rte-lib/src/lib/components/icon/icon-map.ts","../../../projects/ds-rte-lib/src/lib/components/icon/icon.service.ts","../../../projects/ds-rte-lib/src/lib/components/icon/icon.component.ts","../../../projects/ds-rte-lib/src/lib/components/icon/icon.component.html","../../../projects/ds-rte-lib/src/lib/components/link/link.component.ts","../../../projects/ds-rte-lib/src/lib/components/link/link.component.html","../../../projects/ds-rte-lib/src/lib/components/radio-button/radio-button.component.ts","../../../projects/ds-rte-lib/src/lib/components/radio-button/radio-button.component.html","../../../projects/ds-rte-lib/src/lib/components/radio-button-group/radio-button-group.component.ts","../../../projects/ds-rte-lib/src/lib/components/radio-button-group/radio-button-group.component.html","../../../projects/ds-rte-lib/src/lib/components/checkbox/checkbox.component.ts","../../../projects/ds-rte-lib/src/lib/components/checkbox/checkbox.component.html","../../../projects/ds-rte-lib/src/lib/components/checkbox-group/checkbox-group.component.ts","../../../projects/ds-rte-lib/src/lib/components/checkbox-group/checkbox-group.component.html","../../../projects/ds-rte-lib/src/lib/services/overlay.service.ts","../../../projects/ds-rte-lib/src/lib/components/tooltip/tooltip.component.ts","../../../projects/ds-rte-lib/src/lib/components/tooltip/tooltip.component.html","../../../projects/ds-rte-lib/src/lib/components/tooltip/tooltip.directive.ts","../../../projects/ds-rte-lib/src/lib/components/badge/badge.component.ts","../../../projects/ds-rte-lib/src/lib/components/badge/badge.component.html","../../../projects/ds-rte-lib/src/lib/components/badge/badge.directive.ts","../../../projects/ds-rte-lib/src/lib/components/divider/divider.component.ts","../../../projects/ds-rte-lib/src/lib/components/divider/divider.component.html","../../../projects/ds-rte-lib/src/lib/components/dropdown/dropdown-item/dropdown-item.component.ts","../../../projects/ds-rte-lib/src/lib/components/dropdown/dropdown-item/dropdown-item.component.html","../../../projects/ds-rte-lib/src/lib/services/dropdown.service.ts","../../../projects/ds-rte-lib/src/lib/components/dropdown/dropdown-menu/dropdown-menu.component.ts","../../../projects/ds-rte-lib/src/lib/components/dropdown/dropdown-menu/dropdown-menu.component.html","../../../projects/ds-rte-lib/src/lib/components/dropdown/dropdown-trigger/dropdown-trigger.directive.ts","../../../projects/ds-rte-lib/src/lib/components/dropdown/dropdown.utils.ts","../../../projects/ds-rte-lib/src/lib/components/dropdown/dropdown.directive.ts","../../../projects/ds-rte-lib/src/lib/components/dropdown/dropdown.module.ts","../../../projects/ds-rte-lib/src/lib/components/dropdown/index.ts","../../../projects/ds-rte-lib/src/lib/components/split-button/split-button.component.ts","../../../projects/ds-rte-lib/src/lib/components/split-button/split-button.component.html","../../../projects/ds-rte-lib/src/lib/components/icon-button/icon-button.component.ts","../../../projects/ds-rte-lib/src/lib/components/icon-button/icon-button.component.html","../../../projects/ds-rte-lib/src/lib/components/icon-button-toggle/icon-button-toggle.component.ts","../../../projects/ds-rte-lib/src/lib/components/icon-button-toggle/icon-button-toggle.component.html","../../../projects/ds-rte-lib/src/lib/components/text-input/base-text-input/base-text-input.component.ts","../../../projects/ds-rte-lib/src/lib/components/text-input/base-text-input/base-text-input.component.html","../../../projects/ds-rte-lib/src/lib/components/text-input/text-input.component.ts","../../../projects/ds-rte-lib/src/lib/components/text-input/text-input.component.html","../../../projects/ds-rte-lib/src/lib/components/chip/chip.component.ts","../../../projects/ds-rte-lib/src/lib/components/chip/chip.component.html","../../../projects/ds-rte-lib/src/lib/components/textarea/textarea.component.ts","../../../projects/ds-rte-lib/src/lib/components/textarea/textarea.component.html","../../../projects/ds-rte-lib/src/lib/components/switch/switch.component.ts","../../../projects/ds-rte-lib/src/lib/components/switch/switch.component.html","../../../projects/ds-rte-lib/src/lib/components/segmented-control/segmented-control.component.ts","../../../projects/ds-rte-lib/src/lib/components/segmented-control/segmented-control.component.html","../../../projects/ds-rte-lib/src/lib/components/breadcrumbs/breadcrumb-item/breadcrumb-item.component.ts","../../../projects/ds-rte-lib/src/lib/components/breadcrumbs/breadcrumb-item/breadcrumb-item.component.html","../../../projects/ds-rte-lib/src/lib/components/breadcrumbs/breadcrumbs.component.ts","../../../projects/ds-rte-lib/src/lib/components/breadcrumbs/breadcrumbs.component.html","../../../projects/ds-rte-lib/src/lib/components/banner/banner.component.ts","../../../projects/ds-rte-lib/src/lib/components/banner/banner.component.html","../../../projects/ds-rte-lib/src/lib/components/card/card.component.ts","../../../projects/ds-rte-lib/src/lib/components/card/card.component.html","../../../projects/ds-rte-lib/src/lib/services/focus-trap.service.ts","../../../projects/ds-rte-lib/src/lib/components/popover/popover.component.ts","../../../projects/ds-rte-lib/src/lib/components/popover/popover.component.html","../../../projects/ds-rte-lib/src/lib/components/popover/popover.directive.ts","../../../projects/ds-rte-lib/src/lib/components/modal/modal-trigger/modal-trigger.directive.ts","../../../projects/ds-rte-lib/src/lib/components/modal/modal.component.ts","../../../projects/ds-rte-lib/src/lib/components/modal/modal.component.html","../../../projects/ds-rte-lib/src/lib/components/modal/modal.directive.ts","../../../projects/ds-rte-lib/src/lib/components/modal/modal.module.ts","../../../projects/ds-rte-lib/src/lib/components/searchbar/searchbar.component.ts","../../../projects/ds-rte-lib/src/lib/components/searchbar/searchbar.component.html","../../../projects/ds-rte-lib/src/lib/components/side-nav/base-side-nav/base-side-nav.component.ts","../../../projects/ds-rte-lib/src/lib/components/side-nav/base-side-nav/base-side-nav.component.html","../../../projects/ds-rte-lib/src/lib/components/side-nav/nav-item/nav-item.component.ts","../../../projects/ds-rte-lib/src/lib/components/side-nav/nav-item/nav-item.component.html","../../../projects/ds-rte-lib/src/lib/components/side-nav/nav-menu/nav-menu.component.ts","../../../projects/ds-rte-lib/src/lib/components/side-nav/nav-menu/nav-menu.component.html","../../../projects/ds-rte-lib/src/lib/components/side-nav/side-nav.component.ts","../../../projects/ds-rte-lib/src/lib/components/side-nav/side-nav.component.html","../../../projects/ds-rte-lib/src/lib/components/toast/toast.component.ts","../../../projects/ds-rte-lib/src/lib/components/toast/toast.component.html","../../../projects/ds-rte-lib/src/lib/components/toast/toast.service.ts","../../../projects/ds-rte-lib/src/lib/components/tag/tag.component.ts","../../../projects/ds-rte-lib/src/lib/components/tag/tag.component.html","../../../projects/ds-rte-lib/src/lib/components/assistive-text/assistive-text.component.ts","../../../projects/ds-rte-lib/src/lib/components/assistive-text/assistive-text.component.html","../../../projects/ds-rte-lib/src/lib/components/select/select.component.ts","../../../projects/ds-rte-lib/src/lib/components/select/select.component.html","../../../projects/ds-rte-lib/src/design-system-rte-angular.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, HostBinding, input } from \"@angular/core\";\nimport { BadgeContent } from \"@design-system-rte/core/components/badge/badge.interface\";\nimport { ButtonSize, ButtonVariant } from \"@design-system-rte/core/components/button/common/common-button\";\n\n@Component({\n selector: \"button[rteButton]\",\n standalone: true,\n templateUrl: \"./button.component.html\",\n styleUrl: \"./button.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ButtonComponent {\n readonly rteButtonVariant = input<ButtonVariant>(\"primary\");\n readonly rteButtonSize = input<ButtonSize>(\"m\");\n readonly rteBadgeCount = input<number>();\n readonly rteBadgeContent = input<BadgeContent>();\n\n @HostBinding(\"class\") get classes() {\n return `rte-button ${this.rteButtonVariant()} size-${this.rteButtonSize()}`;\n }\n\n readonly shouldDisplayBadge = computed(() => {\n const count = this.rteBadgeCount();\n const content = this.rteBadgeContent();\n\n return (count && count > 0 && content === \"number\") || content === \"icon\";\n });\n}\n","<span class=\"rte-button-label\">\n <ng-content />\n <!-- Le badge est géré par BadgeDirective attachée via hostDirectives -->\n</span>\n","import { Directive, HostBinding, input } from \"@angular/core\";\nimport { GridType } from \"@design-system-rte/core/components/grid/grid.interface\";\n\n@Directive({\n selector: \"[rteGrid]\",\n standalone: true,\n})\nexport class GridDirective {\n readonly gridType = input<GridType>(\"fluid\");\n\n @HostBinding(\"class\")\n get hostClasses(): string {\n return \"grid\";\n }\n\n @HostBinding(\"attr.data-gridtype\")\n get hostDataClasses(): string {\n const variation = this.gridType();\n return `${variation}`;\n }\n constructor() {}\n}\n","import { Directive, HostBinding, input } from \"@angular/core\";\n\n@Directive({\n selector: \"[rteCol]\",\n standalone: true,\n})\nexport class ColDirective {\n readonly xxs = input<number>();\n readonly xs = input<number>();\n readonly s = input<number>();\n readonly m = input<number>();\n readonly l = input<number>();\n readonly xl = input<number>();\n\n @HostBinding(\"class\")\n get colClasses(): string {\n return [\n \"col\",\n this.generateColumnClass(\"col-xxs\", this.xxs()),\n this.generateColumnClass(\"col-xs\", this.xs()),\n this.generateColumnClass(\"col-s\", this.s()),\n this.generateColumnClass(\"col-m\", this.m()),\n this.generateColumnClass(\"col-l\", this.l()),\n this.generateColumnClass(\"col-xl\", this.xl()),\n ]\n .filter(Boolean)\n .join(\" \");\n }\n\n constructor() {}\n\n private generateColumnClass(prefix: string, size?: number): string {\n return size ? `${prefix}-${size}` : \"\";\n }\n}\n","// This file is auto-generated. Do not edit manually.\n\nimport { isValidIconName as isValidIconNameShared } from \"@design-system-rte/core/components/icon/icon-utils\";\n\nexport const RegularIcons = {\n add: \"add\",\n \"alt-route\": \"alt_route\",\n apps: \"apps\",\n \"arrow-alt-down\": \"arrow_alt_down\",\n \"arrow-alt-down-left\": \"arrow_alt_down_left\",\n \"arrow-alt-down-right\": \"arrow_alt_down_right\",\n \"arrow-alt-left\": \"arrow_alt_left\",\n \"arrow-alt-right\": \"arrow_alt_right\",\n \"arrow-alt-up\": \"arrow_alt_up\",\n \"arrow-alt-up-left\": \"arrow_alt_up_left\",\n \"arrow-alt-up-right\": \"arrow_alt_up_right\",\n \"arrow-angle-down-left\": \"arrow_angle_down_left\",\n \"arrow-angle-down-right\": \"arrow_angle_down_right\",\n \"arrow-angle-up-left\": \"arrow_angle_up_left\",\n \"arrow-angle-up-right\": \"arrow_angle_up_right\",\n \"arrow-chevron-down\": \"arrow_chevron_down\",\n \"arrow-chevron-left\": \"arrow_chevron_left\",\n \"arrow-chevron-right\": \"arrow_chevron_right\",\n \"arrow-chevron-up\": \"arrow_chevron_up\",\n \"arrow-double-down\": \"arrow_double_down\",\n \"arrow-double-left\": \"arrow_double_left\",\n \"arrow-double-right\": \"arrow_double_right\",\n \"arrow-double-up\": \"arrow_double_up\",\n \"arrow-down\": \"arrow_down\",\n \"arrow-down-left\": \"arrow_down_left\",\n \"arrow-down-right\": \"arrow_down_right\",\n \"arrow-drop-down\": \"arrow_drop_down\",\n \"arrow-drop-up\": \"arrow_drop_up\",\n \"arrow-left\": \"arrow_left\",\n \"arrow-right\": \"arrow_right\",\n \"arrow-up\": \"arrow_up\",\n \"arrow-up-left\": \"arrow_up_left\",\n \"arrow-up-right\": \"arrow_up_right\",\n asterisk: \"asterisk\",\n \"attach-file\": \"attach_file\",\n \"battery-alt-empty\": \"battery_alt_empty\",\n \"battery-alt-full\": \"battery_alt_full\",\n \"battery-charging\": \"battery_charging\",\n \"battery-empty\": \"battery_empty\",\n \"battery-full\": \"battery_full\",\n bluetooth: \"bluetooth\",\n \"bluetooth-off\": \"bluetooth_off\",\n \"chart-bar\": \"chart_bar\",\n \"chart-bar-stacked\": \"chart_bar_stacked\",\n check: \"check\",\n \"check-indeterminate\": \"check_indeterminate\",\n \"check-small\": \"check_small\",\n \"checkbox-empty\": \"checkbox_empty\",\n close: \"close\",\n compare: \"compare\",\n \"copy-all\": \"copy_all\",\n \"crisis-alert\": \"crisis_alert\",\n cut: \"cut\",\n download: \"download\",\n \"download-done\": \"download_done\",\n \"drag-handle\": \"drag_handle\",\n \"drag-indicator\": \"drag_indicator\",\n exclamation: \"exclamation\",\n \"explore-travel\": \"explore_travel\",\n \"external-link\": \"external_link\",\n filter: \"filter\",\n \"filter-off\": \"filter_off\",\n \"first-page\": \"first_page\",\n forward: \"forward\",\n fullscreen: \"fullscreen\",\n \"fullscreen-exit\": \"fullscreen_exit\",\n history: \"history\",\n \"hourglass-empty\": \"hourglass_empty\",\n \"info-i\": \"info_i\",\n language: \"language\",\n \"last-page\": \"last_page\",\n link: \"link\",\n \"link-off\": \"link_off\",\n list: \"list\",\n \"location-disabled\": \"location_disabled\",\n login: \"login\",\n logout: \"logout\",\n menu: \"menu\",\n \"menu-open\": \"menu_open\",\n monitoring: \"monitoring\",\n \"more-down\": \"more_down\",\n \"more-horiz\": \"more_horiz\",\n \"more-up\": \"more_up\",\n \"more-vert\": \"more_vert\",\n ohm: \"ohm\",\n \"open-in-full\": \"open_in_full\",\n paste: \"paste\",\n \"play-pause\": \"play_pause\",\n \"power-input\": \"power_input\",\n \"power-plug\": \"power_plug\",\n \"power-settings\": \"power_settings\",\n \"priority-high\": \"priority_high\",\n public: \"public\",\n publish: \"publish\",\n \"question-mark\": \"question_mark\",\n radar: \"radar\",\n \"radio-button-empty\": \"radio_button_empty\",\n redo: \"redo\",\n reload: \"reload\",\n remove: \"remove\",\n reply: \"reply\",\n \"reply-all\": \"reply_all\",\n route: \"route\",\n search: \"search\",\n \"side-navigation\": \"side_navigation\",\n sort: \"sort\",\n \"support-agent\": \"support_agent\",\n timeline: \"timeline\",\n \"trending-down\": \"trending_down\",\n \"trending-flat\": \"trending_flat\",\n \"trending-up\": \"trending_up\",\n tune: \"tune\",\n undo: \"undo\",\n upload: \"upload\",\n water: \"water\",\n \"water-alt\": \"water_alt\",\n wifi: \"wifi\",\n \"wifi-off\": \"wifi_off\",\n windmill: \"windmill\",\n \"zoom-in\": \"zoom_in\",\n \"zoom-out\": \"zoom_out\",\n};\n\nexport const TogglableIcons = {\n \"add-circle\": [\"add_circle_outlined\", \"add_circle_filled\"],\n \"admin-panel-settings\": [\"admin_panel_settings_outlined\", \"admin_panel_settings_filled\"],\n analytics: [\"analytics_outlined\", \"analytics_filled\"],\n archive: [\"archive_outlined\", \"archive_filled\"],\n \"arrow-circle-chevron-down\": [\"arrow_circle_chevron_down_outlined\", \"arrow_circle_chevron_down_filled\"],\n \"arrow-circle-chevron-left\": [\"arrow_circle_chevron_left_outlined\", \"arrow_circle_chevron_left_filled\"],\n \"arrow-circle-chevron-right\": [\"arrow_circle_chevron_right_outlined\", \"arrow_circle_chevron_right_filled\"],\n \"arrow-circle-chevron-up\": [\"arrow_circle_chevron_up_outlined\", \"arrow_circle_chevron_up_filled\"],\n \"arrow-circle-down\": [\"arrow_circle_down_outlined\", \"arrow_circle_down_filled\"],\n \"arrow-circle-left\": [\"arrow_circle_left_outlined\", \"arrow_circle_left_filled\"],\n \"arrow-circle-right\": [\"arrow_circle_right_outlined\", \"arrow_circle_right_filled\"],\n \"arrow-circle-up\": [\"arrow_circle_up_outlined\", \"arrow_circle_up_filled\"],\n article: [\"article_outlined\", \"article_filled\"],\n \"assignment-complete\": [\"assignment_complete_outlined\", \"assignment_complete_filled\"],\n assignment: [\"assignment_outlined\", \"assignment_filled\"],\n \"battery-alert\": [\"battery_alert_outlined\", \"battery_alert_filled\"],\n \"battery-charging-full\": [\"battery_charging_full_outlined\", \"battery_charging_full_filled\"],\n \"bolt-alt-circle\": [\"bolt_alt_circle_outlined\", \"bolt_alt_circle_filled\"],\n \"bolt-alt\": [\"bolt_alt_outlined\", \"bolt_alt_filled\"],\n \"bolt-circle\": [\"bolt_circle_outlined\", \"bolt_circle_filled\"],\n bolt: [\"bolt_outlined\", \"bolt_filled\"],\n bookmark: [\"bookmark_outlined\", \"bookmark_filled\"],\n bookmarks: [\"bookmarks_outlined\", \"bookmarks_filled\"],\n build: [\"build_outlined\", \"build_filled\"],\n \"calendar-available\": [\"calendar_available_outlined\", \"calendar_available_filled\"],\n \"calendar-busy\": [\"calendar_busy_outlined\", \"calendar_busy_filled\"],\n \"calendar-month\": [\"calendar_month_outlined\", \"calendar_month_filled\"],\n \"calendar-today\": [\"calendar_today_outlined\", \"calendar_today_filled\"],\n call: [\"call_outlined\", \"call_filled\"],\n cancel: [\"cancel_outlined\", \"cancel_filled\"],\n category: [\"category_outlined\", \"category_filled\"],\n \"chart-add\": [\"chart_add_outlined\", \"chart_add_filled\"],\n \"chart-area\": [\"chart_area_outlined\", \"chart_area_filled\"],\n \"chart-pie\": [\"chart_pie_outlined\", \"chart_pie_filled\"],\n \"chart-table\": [\"chart_table_outlined\", \"chart_table_filled\"],\n \"chat-alt\": [\"chat_alt_outlined\", \"chat_alt_filled\"],\n \"chat-alt-unread\": [\"chat_alt_unread_outlined\", \"chat_alt_unread_filled\"],\n chat: [\"chat_outlined\", \"chat_filled\"],\n \"chat-unread\": [\"chat_unread_outlined\", \"chat_unread_filled\"],\n \"check-circle\": [\"check_circle_outlined\", \"check_circle_filled\"],\n checkbox: [\"checkbox_outlined\", \"checkbox_filled\"],\n \"checkbox-indeterminate\": [\"checkbox_indeterminate_outlined\", \"checkbox_indeterminate_filled\"],\n clock: [\"clock_outlined\", \"clock_filled\"],\n \"cloud-download\": [\"cloud_download_outlined\", \"cloud_download_filled\"],\n cloud: [\"cloud_outlined\", \"cloud_filled\"],\n \"cloud-off\": [\"cloud_off_outlined\", \"cloud_off_filled\"],\n \"cloud-upload\": [\"cloud_upload_outlined\", \"cloud_upload_filled\"],\n \"comment-add\": [\"comment_add_outlined\", \"comment_add_filled\"],\n comment: [\"comment_outlined\", \"comment_filled\"],\n copy: [\"copy_outlined\", \"copy_filled\"],\n dangerous: [\"dangerous_outlined\", \"dangerous_filled\"],\n dashboard: [\"dashboard_outlined\", \"dashboard_filled\"],\n database: [\"database_outlined\", \"database_filled\"],\n delete: [\"delete_outlined\", \"delete_filled\"],\n desktop: [\"desktop_outlined\", \"desktop_filled\"],\n devices: [\"devices_outlined\", \"devices_filled\"],\n draft: [\"draft_outlined\", \"draft_filled\"],\n eco: [\"eco_outlined\", \"eco_filled\"],\n edit: [\"edit_outlined\", \"edit_filled\"],\n \"electric-meter\": [\"electric_meter_outlined\", \"electric_meter_filled\"],\n error: [\"error_outlined\", \"error_filled\"],\n explore: [\"explore_outlined\", \"explore_filled\"],\n \"explore-off\": [\"explore_off_outlined\", \"explore_off_filled\"],\n \"fast-forward\": [\"fast_forward_outlined\", \"fast_forward_filled\"],\n \"fast-rewind\": [\"fast_rewind_outlined\", \"fast_rewind_filled\"],\n feedback: [\"feedback_outlined\", \"feedback_filled\"],\n \"file-copy\": [\"file_copy_outlined\", \"file_copy_filled\"],\n \"file-download\": [\"file_download_outlined\", \"file_download_filled\"],\n \"file-upload\": [\"file_upload_outlined\", \"file_upload_filled\"],\n \"filter-alt\": [\"filter_alt_outlined\", \"filter_alt_filled\"],\n \"filter-alt-off\": [\"filter_alt_off_outlined\", \"filter_alt_off_filled\"],\n fire: [\"fire_outlined\", \"fire_filled\"],\n \"fit-screen\": [\"fit_screen_outlined\", \"fit_screen_filled\"],\n flag: [\"flag_outlined\", \"flag_filled\"],\n flash: [\"flash_outlined\", \"flash_filled\"],\n \"flash-off\": [\"flash_off_outlined\", \"flash_off_filled\"],\n \"folder-add\": [\"folder_add_outlined\", \"folder_add_filled\"],\n folder: [\"folder_outlined\", \"folder_filled\"],\n \"folder-move\": [\"folder_move_outlined\", \"folder_move_filled\"],\n \"folder-open\": [\"folder_open_outlined\", \"folder_open_filled\"],\n \"folder-shared\": [\"folder_shared_outlined\", \"folder_shared_filled\"],\n forum: [\"forum_outlined\", \"forum_filled\"],\n \"group-add\": [\"group_add_outlined\", \"group_add_filled\"],\n group: [\"group_outlined\", \"group_filled\"],\n groups: [\"groups_outlined\", \"groups_filled\"],\n headphones: [\"headphones_outlined\", \"headphones_filled\"],\n heart: [\"heart_outlined\", \"heart_filled\"],\n help: [\"help_outlined\", \"help_filled\"],\n home: [\"home_outlined\", \"home_filled\"],\n hourglass: [\"hourglass_outlined\", \"hourglass_filled\"],\n \"image-broken\": [\"image_broken_outlined\", \"image_broken_filled\"],\n image: [\"image_outlined\", \"image_filled\"],\n \"image-gallery\": [\"image_gallery_outlined\", \"image_gallery_filled\"],\n inbox: [\"inbox_outlined\", \"inbox_filled\"],\n info: [\"info_outlined\", \"info_filled\"],\n keep: [\"keep_outlined\", \"keep_filled\"],\n \"keep-off\": [\"keep_off_outlined\", \"keep_off_filled\"],\n label: [\"label_outlined\", \"label_filled\"],\n laptop: [\"laptop_outlined\", \"laptop_filled\"],\n \"left-panel-close\": [\"left_panel_close_outlined\", \"left_panel_close_filled\"],\n \"left-panel-open\": [\"left_panel_open_outlined\", \"left_panel_open_filled\"],\n \"light-off\": [\"light_off_outlined\", \"light_off_filled\"],\n \"lightbulb-alt\": [\"lightbulb_alt_outlined\", \"lightbulb_alt_filled\"],\n \"lightbulb-circle\": [\"lightbulb_circle_outlined\", \"lightbulb_circle_filled\"],\n lightbulb: [\"lightbulb_outlined\", \"lightbulb_filled\"],\n \"list-alt\": [\"list_alt_outlined\", \"list_alt_filled\"],\n \"location-me\": [\"location_me_outlined\", \"location_me_filled\"],\n \"location-off\": [\"location_off_outlined\", \"location_off_filled\"],\n \"location-on\": [\"location_on_outlined\", \"location_on_filled\"],\n lock: [\"lock_outlined\", \"lock_filled\"],\n \"lock-open\": [\"lock_open_outlined\", \"lock_open_filled\"],\n \"lock-open-right\": [\"lock_open_right_outlined\", \"lock_open_right_filled\"],\n mail: [\"mail_outlined\", \"mail_filled\"],\n \"mail-unread\": [\"mail_unread_outlined\", \"mail_unread_filled\"],\n map: [\"map_outlined\", \"map_filled\"],\n mic: [\"mic_outlined\", \"mic_filled\"],\n \"mic-off\": [\"mic_off_outlined\", \"mic_off_filled\"],\n \"mode-dark\": [\"mode_dark_outlined\", \"mode_dark_filled\"],\n \"mode-light\": [\"mode_light_outlined\", \"mode_light_filled\"],\n notification: [\"notification_outlined\", \"notification_filled\"],\n \"notification-important\": [\"notification_important_outlined\", \"notification_important_filled\"],\n \"notification-off\": [\"notification_off_outlined\", \"notification_off_filled\"],\n \"notification-unread\": [\"notification_unread_outlined\", \"notification_unread_filled\"],\n palette: [\"palette_outlined\", \"palette_filled\"],\n \"pause-circle\": [\"pause_circle_outlined\", \"pause_circle_filled\"],\n pause: [\"pause_outlined\", \"pause_filled\"],\n \"photo-camera\": [\"photo_camera_outlined\", \"photo_camera_filled\"],\n \"play-circle\": [\"play_circle_outlined\", \"play_circle_filled\"],\n play: [\"play_outlined\", \"play_filled\"],\n power: [\"power_outlined\", \"power_filled\"],\n \"power-off\": [\"power_off_outlined\", \"power_off_filled\"],\n \"power-plug-connect\": [\"power_plug_connect_outlined\", \"power_plug_connect_filled\"],\n \"power-settings-circle\": [\"power_settings_circle_outlined\", \"power_settings_circle_filled\"],\n \"power-solar\": [\"power_solar_outlined\", \"power_solar_filled\"],\n \"power-switch\": [\"power_switch_outlined\", \"power_switch_filled\"],\n \"power-wind\": [\"power_wind_outlined\", \"power_wind_filled\"],\n print: [\"print_outlined\", \"print_filled\"],\n \"right-panel-close\": [\"right_panel_close_outlined\", \"right_panel_close_filled\"],\n \"right-panel-open\": [\"right_panel_open_outlined\", \"right_panel_open_filled\"],\n save: [\"save_outlined\", \"save_filled\"],\n send: [\"send_outlined\", \"send_filled\"],\n settings: [\"settings_outlined\", \"settings_filled\"],\n share: [\"share_outlined\", \"share_filled\"],\n \"skip-next\": [\"skip_next_outlined\", \"skip_next_filled\"],\n \"skip-previous\": [\"skip_previous_outlined\", \"skip_previous_filled\"],\n smartphone: [\"smartphone_outlined\", \"smartphone_filled\"],\n star: [\"star_outlined\", \"star_filled\"],\n \"sticky-note\": [\"sticky_note_outlined\", \"sticky_note_filled\"],\n \"stop-circle\": [\"stop_circle_outlined\", \"stop_circle_filled\"],\n stop: [\"stop_outlined\", \"stop_filled\"],\n subtitles: [\"subtitles_outlined\", \"subtitles_filled\"],\n \"text-snippet\": [\"text_snippet_outlined\", \"text_snippet_filled\"],\n \"trash-restore\": [\"trash_restore_outlined\", \"trash_restore_filled\"],\n unarchive: [\"unarchive_outlined\", \"unarchive_filled\"],\n \"user-add\": [\"user_add_outlined\", \"user_add_filled\"],\n \"user-circle\": [\"user_circle_outlined\", \"user_circle_filled\"],\n user: [\"user_outlined\", \"user_filled\"],\n \"user-settings\": [\"user_settings_outlined\", \"user_settings_filled\"],\n verified: [\"verified_outlined\", \"verified_filled\"],\n \"video-camera\": [\"video_camera_outlined\", \"video_camera_filled\"],\n \"video-camera-off\": [\"video_camera_off_outlined\", \"video_camera_off_filled\"],\n \"video-gallery\": [\"video_gallery_outlined\", \"video_gallery_filled\"],\n \"view-agenda\": [\"view_agenda_outlined\", \"view_agenda_filled\"],\n \"view-column\": [\"view_column_outlined\", \"view_column_filled\"],\n \"view-grid\": [\"view_grid_outlined\", \"view_grid_filled\"],\n \"view-kanban\": [\"view_kanban_outlined\", \"view_kanban_filled\"],\n \"view-module\": [\"view_module_outlined\", \"view_module_filled\"],\n \"view-timeline\": [\"view_timeline_outlined\", \"view_timeline_filled\"],\n \"visibility-hide\": [\"visibility_hide_outlined\", \"visibility_hide_filled\"],\n \"visibility-show\": [\"visibility_show_outlined\", \"visibility_show_filled\"],\n \"volume-down\": [\"volume_down_outlined\", \"volume_down_filled\"],\n \"volume-mute\": [\"volume_mute_outlined\", \"volume_mute_filled\"],\n \"volume-off\": [\"volume_off_outlined\", \"volume_off_filled\"],\n \"volume-up\": [\"volume_up_outlined\", \"volume_up_filled\"],\n warning: [\"warning_outlined\", \"warning_filled\"],\n waterdrop: [\"waterdrop_outlined\", \"waterdrop_filled\"],\n};\n\nexport function isValidIconName(iconName: string): boolean {\n return isValidIconNameShared(iconName, RegularIcons, TogglableIcons);\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { inject, Injectable } from \"@angular/core\";\n\nimport { RegularIcons, TogglableIcons } from \"./icon-map\";\n\nexport type RegularIconIdKey = keyof typeof RegularIcons;\nexport type TogglableIconIdKey = keyof typeof TogglableIcons;\n\n@Injectable()\nexport class IconService {\n private http = inject(HttpClient);\n\n getSvg(name: RegularIconIdKey | TogglableIconIdKey, appearance: \"outlined\" | \"filled\") {\n if (!this.http) {\n throw new Error(\"HttpClient is not available\");\n }\n const togglableIcon = TogglableIcons[name as TogglableIconIdKey];\n\n if (togglableIcon) {\n const [outlinedIconName, filledIconName] = togglableIcon;\n\n const iconName = appearance === \"filled\" ? filledIconName : outlinedIconName;\n return this.http.get(`assets/icons/${iconName}.svg`, { responseType: \"text\" });\n } else {\n const iconName = RegularIcons[name as RegularIconIdKey];\n if (!iconName) {\n throw new Error(`Icon ${name} not found`);\n }\n return this.http.get(`assets/icons/${iconName}.svg`, { responseType: \"text\" });\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n effect,\n inject,\n input,\n} from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\nimport { Observable } from \"rxjs\";\n\nimport { IconService, RegularIconIdKey, TogglableIconIdKey } from \"./icon.service\";\n\n@Component({\n selector: \"rte-icon\",\n imports: [CommonModule],\n standalone: true,\n templateUrl: \"./icon.component.html\",\n styleUrl: \"./icon.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [IconService],\n})\nexport class IconComponent {\n readonly name = input.required<string>();\n readonly size = input(20);\n readonly color = input(\"currentColor\");\n readonly classes = input(\"\");\n readonly appearance = input<\"outlined\" | \"filled\">();\n destroyRef = inject(DestroyRef);\n\n svgContent: SafeHtml | null = null;\n svg!: Observable<string>;\n\n private sanitizer = inject(DomSanitizer);\n private iconService = inject(IconService);\n private cdr = inject(ChangeDetectorRef);\n\n constructor() {\n effect(() => {\n this.setSvgContent(this.name());\n });\n }\n\n private setSvgContent(svgName: string) {\n const svgFile = this.iconService.getSvg(\n svgName as RegularIconIdKey | TogglableIconIdKey,\n this.appearance() || \"outlined\",\n );\n\n svgFile.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((res) => {\n const size = this.size();\n const svgWithSize = res.replace(/<svg([^>]*)>/, `<svg$1 width=\"${size}\" height=\"${size}\">`);\n\n this.svgContent = this.sanitizer.bypassSecurityTrustHtml(svgWithSize);\n this.cdr.markForCheck();\n });\n }\n}\n","<div\n class=\"rte-icon-container\"\n [innerHTML]=\"svgContent\"\n [style.height]=\"size() + 'px'\"\n [style.width]=\"size() + 'px'\"\n></div>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, input } from \"@angular/core\";\n\nimport { IconComponent } from \"../icon/icon.component\";\n\n@Component({\n selector: \"rte-link\",\n imports: [CommonModule, IconComponent],\n standalone: true,\n templateUrl: \"./link.component.html\",\n styleUrl: \"./link.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LinkComponent {\n readonly label = input(\"\");\n readonly href = input<string>(\"#\");\n readonly subtle = input<boolean>(false);\n readonly externalLink = input<boolean>(false);\n readonly reverse = input<boolean>(false);\n readonly maxWidth = input<number>();\n}\n","<a\n href=\"{{ href() }}\"\n class=\"rte-link\"\n role=\"link\"\n [ngClass]=\"{ subtle: subtle(), reverse: reverse() }\"\n [target]=\"externalLink() ? '_blank' : undefined\"\n [rel]=\"externalLink() ? 'noopener noreferrer' : null\"\n [style.max-width]=\"maxWidth() + 'px'\"\n>\n <span class=\"rte-link-label\" [style.max-width]=\"maxWidth() + 'px'\">\n {{ label() }}\n </span>\n <rte-icon\n *ngIf=\"externalLink()\"\n name=\"external-link\"\n style=\"align-self: start; margin-left: 2px\"\n [size]=\"12\"\n ></rte-icon>\n</a>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input } from \"@angular/core\";\nimport { labelSize } from \"@design-system-rte/core/components/radio-button/radio-button.constants\";\n\n@Component({\n selector: \"rte-radio-button\",\n imports: [CommonModule],\n standalone: true,\n templateUrl: \"./radio-button.component.html\",\n styleUrl: \"./radio-button.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioButtonComponent {\n readonly label = input(\"\");\n readonly groupName = input(\"\");\n readonly showLabel = input(true);\n readonly disabled = input(false);\n readonly error = input(false);\n readonly readOnly = input(false);\n labelSize = labelSize;\n\n readonly isDisplayed = computed(() => !(this.disabled() && this.error()));\n}\n","<div *ngIf=\"isDisplayed()\" class=\"rte-radio-button-container\">\n <input\n type=\"radio\"\n class=\"rte-radio-button\"\n [id]=\"label()\"\n [value]=\"label()\"\n [size]=\"labelSize\"\n [name]=\"groupName()\"\n [ngClass]=\"{ error: error(), 'read-only': readOnly() }\"\n [disabled]=\"disabled()\"\n />\n <label\n *ngIf=\"showLabel()\"\n class=\"rte-radio-button-label\"\n [for]=\"label()\"\n [ngClass]=\"{\n error: error(),\n 'read-only': readOnly(),\n disabled: disabled(),\n }\"\n >\n {{ label() }}\n </label>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input } from \"@angular/core\";\n\nimport { RadioButtonComponent } from \"../radio-button/radio-button.component\";\n\n@Component({\n selector: \"rte-radio-button-group\",\n imports: [CommonModule, RadioButtonComponent],\n standalone: true,\n templateUrl: \"./radio-button-group.component.html\",\n styleUrl: \"./radio-button-group.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioButtonGroupComponent {\n readonly groupName = input(\"\");\n readonly items = input<string[]>([]);\n readonly direction = input(\"horizontal\");\n readonly showItemsLabel = input(true);\n readonly groupTitle = input(\"\");\n readonly showGroupTitle = input(false);\n readonly groupHelpText = input(\"\");\n readonly showHelpText = input(false);\n readonly errorMessage = input(\"\");\n readonly error = input(false);\n readonly disabled = input(false);\n readonly readOnly = input(false);\n\n readonly isDisplayed = computed(() => !(this.disabled() && this.error()));\n}\n","<div *ngIf=\"isDisplayed()\" class=\"radio-button-group-container\">\n <div\n class=\"radio-button-group-header\"\n [ngClass]=\"{\n disabled: disabled(),\n error: error(),\n 'read-only': readOnly(),\n }\"\n >\n <h3 *ngIf=\"showGroupTitle()\" class=\"group-title\">\n {{ groupTitle() }}\n </h3>\n <p *ngIf=\"showHelpText()\" class=\"group-help-text\">\n {{ groupHelpText() }}\n </p>\n <p *ngIf=\"error()\" class=\"group-error-message\">\n {{ errorMessage() }}\n </p>\n </div>\n <div\n class=\"radio-button-group\"\n [ngClass]=\"{ horizontal: direction() === 'horizontal', vertical: direction() === 'vertical' }\"\n >\n <ng-container *ngFor=\"let item of items()\">\n <rte-radio-button\n [label]=\"item\"\n [groupName]=\"groupName()\"\n [showLabel]=\"showItemsLabel()\"\n [disabled]=\"disabled()\"\n [error]=\"error()\"\n [readOnly]=\"readOnly()\"\n />\n </ng-container>\n </div>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, input } from \"@angular/core\";\n\nimport { IconComponent } from \"../icon/icon.component\";\n\n@Component({\n selector: \"rte-checkbox\",\n imports: [CommonModule, IconComponent],\n standalone: true,\n templateUrl: \"./checkbox.component.html\",\n styleUrl: \"./checkbox.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxComponent {\n readonly id = input.required<string>();\n readonly label = input.required<string>();\n readonly value = input(\"\");\n readonly indeterminate = input(false);\n readonly description = input(\"\");\n readonly showLabel = input(true);\n readonly disabled = input(false);\n readonly error = input(false);\n readonly errorMessage = input(\"\");\n readonly readOnly = input(false);\n readonly checked = input(false);\n\n onKeydown(event: KeyboardEvent) {\n if (event.code === \"Space\") {\n if (this.readOnly()) {\n event.preventDefault();\n }\n }\n }\n}\n","<div class=\"rte-checkbox-container\">\n <input\n type=\"checkbox\"\n class=\"rte-checkbox\"\n [id]=\"id()\"\n [value]=\"value()\"\n [ngClass]=\"{ error: error(), 'read-only': readOnly() }\"\n [disabled]=\"disabled()\"\n [indeterminate]=\"indeterminate()\"\n [checked]=\"checked()\"\n (keydown)=\"onKeydown($event)\"\n />\n <rte-icon class=\"rte-checkbox-icons rte-checkbox-icon-selected\" name=\"check-small\" [size]=\"16\" />\n <rte-icon class=\"rte-checkbox-icons rte-checkbox-icon-indeterminated\" name=\"check-indeterminate\" [size]=\"16\" />\n <div class=\"rte-checkbox-text-container\">\n <label\n *ngIf=\"showLabel()\"\n class=\"rte-checkbox-label\"\n [for]=\"id()\"\n [ngClass]=\"{\n error: error(),\n 'read-only': readOnly(),\n disabled: disabled(),\n }\"\n >\n {{ label() }}\n </label>\n <p class=\"rte-checkbox-description\">{{ description() }}</p>\n <p *ngIf=\"error() && errorMessage()\" class=\"rte-checkbox-error\">{{ errorMessage() }}</p>\n </div>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input } from \"@angular/core\";\n\nimport { CheckboxComponent } from \"../checkbox/checkbox.component\";\n\n@Component({\n selector: \"rte-checkbox-group\",\n imports: [CommonModule, CheckboxComponent],\n standalone: true,\n templateUrl: \"./checkbox-group.component.html\",\n styleUrl: \"./checkbox-group.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxGroupComponent {\n readonly items = input.required<string[]>();\n readonly direction = input(\"horizontal\");\n readonly showItemsLabel = input(true);\n readonly groupTitle = input(\"\");\n readonly showGroupTitle = input(false);\n readonly groupHelpText = input(\"\");\n readonly showHelpText = input(false);\n readonly errorMessage = input(\"\");\n readonly error = input(false);\n readonly disabled = input(false);\n readonly readOnly = input(false);\n\n readonly isDisplayed = computed(() => !(this.disabled() && this.error()));\n}\n","<div *ngIf=\"isDisplayed()\" class=\"checkbox-group-container\">\n <div\n class=\"checkbox-group-header\"\n [ngClass]=\"{\n disabled: disabled(),\n error: error(),\n 'read-only': readOnly(),\n }\"\n >\n <h3 *ngIf=\"showGroupTitle()\" class=\"group-title\">\n {{ groupTitle() }}\n </h3>\n <p *ngIf=\"showHelpText()\" class=\"group-help-text\">\n {{ groupHelpText() }}\n </p>\n <p *ngIf=\"error()\" class=\"group-error-message\">\n {{ errorMessage() }}\n </p>\n </div>\n <div\n class=\"checkbox-group\"\n [ngClass]=\"{ horizontal: direction() === 'horizontal', vertical: direction() === 'vertical' }\"\n >\n <ng-container *ngFor=\"let item of items(); let i = index\">\n <rte-checkbox\n [id]=\"item + '-' + i\"\n [label]=\"item\"\n [showLabel]=\"showItemsLabel()\"\n [disabled]=\"disabled()\"\n [error]=\"error()\"\n [readOnly]=\"readOnly()\"\n />\n </ng-container>\n </div>\n</div>\n","import { Injectable, ComponentRef, Type, ViewContainerRef } from \"@angular/core\";\n\n@Injectable({ providedIn: \"root\" })\nexport class OverlayService {\n private overlayRoot?: HTMLElement;\n private activeOverlays = new Set<ComponentRef<unknown>>();\n private isNavigationFrozen = false;\n\n constructor() {}\n\n private getOverlayRoot(freezeNavigation: boolean): HTMLElement {\n if (!this.overlayRoot) {\n this.overlayRoot = document.getElementById(\"overlay-root\") as HTMLElement;\n\n if (!this.overlayRoot) {\n this.overlayRoot = document.createElement(\"div\");\n this.overlayRoot.id = \"overlay-root\";\n this.overlayRoot.tabIndex = -1;\n if (freezeNavigation) {\n this.isNavigationFrozen = true;\n this.overlayRoot.style.position = \"fixed\";\n this.overlayRoot.style.width = \"100%\";\n this.overlayRoot.style.height = \"100%\";\n this.overlayRoot.style.top = \"0\";\n this.overlayRoot.style.left = \"0\";\n this.overlayRoot.style.zIndex = \"999\";\n document.body.style.overflow = \"hidden\";\n }\n document.body.appendChild(this.overlayRoot);\n }\n }\n return this.overlayRoot;\n }\n\n createWithoutAppend<T>(component: Type<T>, viewContainer: ViewContainerRef): ComponentRef<T> {\n return viewContainer.createComponent(component);\n }\n\n create<T>(component: Type<T>, viewContainer: ViewContainerRef, freezeNavigation: boolean = false): ComponentRef<T> {\n const root = this.getOverlayRoot(freezeNavigation);\n\n const componentRef = viewContainer.createComponent(component);\n\n root.appendChild(componentRef.location.nativeElement);\n this.activeOverlays.add(componentRef);\n\n const originalDestroy = componentRef.destroy.bind(componentRef);\n componentRef.destroy = () => {\n this.activeOverlays.delete(componentRef);\n originalDestroy();\n };\n\n return componentRef;\n }\n\n addToOverlay<T>(componentRef: ComponentRef<T>): void {\n const root = this.getOverlayRoot(this.isNavigationFrozen);\n root.appendChild(componentRef.location.nativeElement);\n this.activeOverlays.add(componentRef);\n }\n\n destroy() {\n if (this.activeOverlays.size === 0) {\n if (this.isNavigationFrozen) {\n document.body.style.overflow = \"unset\";\n }\n this.overlayRoot?.remove();\n this.overlayRoot = undefined;\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, input } from \"@angular/core\";\nimport { Alignment, Position } from \"@design-system-rte/core/common/common-types\";\n\n@Component({\n selector: \"rte-tooltip\",\n imports: [CommonModule],\n standalone: true,\n templateUrl: \"./tooltip.component.html\",\n styleUrl: \"./tooltip.component.scss\",\n})\nexport class TooltipComponent {\n readonly label = input.required<string>();\n readonly position = input<Exclude<Position, \"auto\">>(\"top\");\n readonly alignment = input<Alignment>(\"center\");\n readonly arrow = input<boolean>(true);\n}\n","<div class=\"tooltip {{ position() }} {{ alignment() }}\" [ngClass]=\"{ arrow: arrow() }\">\n <span role=\"tooltip\" class=\"tooltip-label\"> {{ label() }} </span>\n</div>\n","import {\n AfterViewInit,\n ComponentRef,\n Directive,\n ElementRef,\n HostListener,\n inject,\n input,\n OnDestroy,\n Renderer2,\n ViewContainerRef,\n} from \"@angular/core\";\nimport { Position } from \"@design-system-rte/core/common/common-types\";\nimport { TOOLTIP_FADE_OUT_DURATION, TOOLTIP_GAP } from \"@design-system-rte/core/components/tooltip/tooltip.constants\";\nimport { getTooltipGap } from \"@design-system-rte/core/components/tooltip/tooltip.utils\";\nimport { getAutoPlacement, getCoordinates } from \"@design-system-rte/core/components/utils/auto-placement\";\nimport { FOCUSABLE_ELEMENTS_QUERY } from \"@design-system-rte/core/constants/dom/dom.constants\";\n\nimport { OverlayService } from \"../../services/overlay.service\";\n\nimport { TooltipComponent } from \"./tooltip.component\";\n\n@Directive({\n selector: \"[rteTooltip]\",\n standalone: true,\n})\nexport class TooltipDirective implements AfterViewInit, OnDestroy {\n readonly rteTooltip = input.required<string>();\n readonly rteTooltipPosition = input<Position>(\"auto\");\n readonly rteTooltipAlignment = input(\"center\");\n readonly rteTooltipArrow = input(true);\n readonly rteTooltipShouldFocusTrigger = input(true);\n readonly rteTooltipGap = input<number>(TOOLTIP_GAP);\n\n private tooltipRef: ComponentRef<TooltipComponent> | null = null;\n private hostElement: HTMLElement;\n private overlayService: OverlayService;\n\n private elementRef = inject(ElementRef);\n private viewContainerRef = inject(ViewContainerRef);\n private renderer = inject(Renderer2);\n\n @HostListener(\"mouseenter\")\n onMouseEnter(): void {\n this.showTooltip();\n }\n\n @HostListener(\"mouseleave\")\n onMouseLeave(): void {\n this.hideTooltip();\n }\n\n @HostListener(\"focus\")\n onFocus(): void {\n this.showTooltip();\n }\n\n @HostListener(\"blur\")\n onBlur(): void {\n this.hideTooltip();\n }\n\n constructor() {\n this.overlayService = inject(OverlayService);\n this.hostElement = this.elementRef.nativeElement;\n }\n\n ngAfterViewInit() {\n if (!this.rteTooltipShouldFocusTrigger()) {\n this.renderer.setAttribute(this.hostElement, \"tabindex\", \"-1\");\n const focusableTrigger = this.hostElement.querySelectorAll(FOCUSABLE_ELEMENTS_QUERY)[0];\n focusableTrigger.addEventListener(\"focus\", () => this.onFocus());\n focusableTrigger.addEventListener(\"blur\", () => this.onBlur());\n } else {\n this.renderer.setAttribute(this.hostElement, \"tabindex\", \"0\");\n }\n window.addEventListener(\"scroll\", this.positionTooltip.bind(this));\n }\n\n ngOnDestroy() {\n if (!this.rteTooltipShouldFocusTrigger()) {\n const focusableTrigger = this.hostElement.querySelectorAll(FOCUSABLE_ELEMENTS_QUERY)[0];\n focusableTrigger.removeEventListener(\"focus\", () => this.onFocus());\n focusableTrigger.removeEventListener(\"blur\", () => this.onBlur());\n }\n window.removeEventListener(\"scroll\", this.positionTooltip.bind(this));\n }\n\n showTooltip(): void {\n if (this.tooltipRef) {\n this.tooltipRef.destroy();\n }\n\n this.tooltipRef = this.overlayService.create(TooltipComponent, this.viewContainerRef);\n this.assignDirectiveToComponent();\n this.positionTooltip();\n }\n\n private assignDirectiveToComponent(): void {\n if (this.tooltipRef) {\n const tooltipElement = this.tooltipRef.location.nativeElement;\n const gap = getTooltipGap(this.rteTooltipArrow(), this.rteTooltipGap());\n const position =\n this.rteTooltipPosition() === \"auto\"\n ? getAutoPlacement(this.hostElement, tooltipElement, \"top\", gap, true)\n : this.rteTooltipPosition();\n\n this.tooltipRef.setInput(\"label\", this.rteTooltip());\n this.tooltipRef.setInput(\"position\", position);\n this.tooltipRef.setInput(\"alignment\", this.rteTooltipAlignment());\n this.tooltipRef.setInput(\"arrow\", this.rteTooltipArrow());\n }\n }\n\n private positionTooltip(): void {\n if (this.tooltipRef) {\n const tooltipElement = this.tooltipRef.location.nativeElement;\n const gap = getTooltipGap(this.rteTooltipArrow(), this.rteTooltipGap());\n const positions = getCoordinates(this.tooltipRef.instance.position(), this.hostElement, tooltipElement, gap);\n\n this.renderer.setStyle(this.hostElement, \"position\", \"relative\");\n this.renderer.setStyle(tooltipElement, \"top\", `${positions.top}px`);\n this.renderer.setStyle(tooltipElement, \"left\", `${positions.left}px`);\n }\n }\n\n private hideTooltip(): void {\n if (this.tooltipRef) {\n const tooltipElement = this.tooltipRef.location.nativeElement;\n\n this.renderer.setStyle(tooltipElement, \"opacity\", \"0\");\n\n setTimeout(() => {\n if (this.tooltipRef) {\n this.tooltipRef.destroy();\n this.tooltipRef = null;\n this.overlayService.destroy();\n }\n }, TOOLTIP_FADE_OUT_DURATION);\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, input, computed, ChangeDetectionStrategy } from \"@angular/core\";\nimport { BadgeContent, BadgeSize, BadgeType } from \"@design-system-rte/core/components/badge/badge.interface\";\nimport {\n getBadgeIconSize,\n getDisplayCount,\n getShowBadge,\n getShowIcon,\n getShowText,\n} from \"@design-system-rte/core/components/badge/badge.utils\";\n\nimport { isValidIconName } from \"../icon/icon-map\";\nimport { IconComponent } from \"../icon/icon.component\";\n\n@Component({\n selector: \"rte-badge\",\n imports: [CommonModule, IconComponent],\n standalone: true,\n templateUrl: \"./badge.component.html\",\n styleUrl: \"./badge.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BadgeComponent {\n readonly badgeType = input<BadgeType>(\"brand\");\n readonly badgeSize = input<BadgeSize>(\"m\");\n readonly badgeContent = input<BadgeContent>(\"number\");\n readonly count = input<number | undefined>();\n readonly icon = input<string>(\"notification\");\n readonly simpleBadge = input<boolean>(false);\n\n readonly isValidIconName = computed(() => {\n const icon = this.icon();\n return isValidIconName(icon!);\n });\n\n readonly showIcon = computed(() =>\n getShowIcon({\n size: this.badgeSize(),\n content: this.badgeContent(),\n iconSize: this.iconSize(),\n }),\n );\n\n readonly showText = computed(() =>\n getShowText({\n size: this.badgeSize(),\n content: this.badgeContent(),\n count: this.count(),\n }),\n );\n\n readonly displayCount = computed(() => getDisplayCount(this.count()));\n readonly countOverflow = computed(() => this.showText() && this.displayCount().length > 2);\n readonly iconSize = computed(() => getBadgeIconSize(this.badgeSize()));\n\n readonly showBadge = computed(() =>\n getShowBadge({\n size: this.badgeSize(),\n content: this.badgeContent(),\n count: this.count(),\n iconSize: this.iconSize(),\n }),\n );\n}\n","<div\n class=\"badge size-{{ badgeSize() }} type-{{ badgeType() }}\"\n data-testid=\"badge\"\n [attr.data-simple-badge]=\"simpleBadge()\"\n [ngClass]=\"{ hidden: !showBadge(), 'count-overflow': countOverflow() }\"\n>\n <rte-icon *ngIf=\"showIcon()\" class=\"badge-icon\" [name]=\"icon()!\" [size]=\"iconSize()!\" />\n <span *ngIf=\"showText()\" class=\"badge-text\">\n {{ displayCount() }}\n </span>\n</div>\n","import {\n Directive,\n input,\n OnChanges,\n OnDestroy,\n ViewContainerRef,\n ComponentRef,\n inject,\n ElementRef,\n Renderer2,\n OnInit,\n} from \"@angular/core\";\nimport { BadgeType, BadgeSize, BadgeContent } from \"@design-system-rte/core/components/badge/badge.interface\";\n\nimport { RegularIconIdKey, TogglableIconIdKey } from \"../icon/icon.service\";\n\nimport { BadgeComponent } from \"./badge.component\";\n\n@Directive({\n selector: \"[rteBadge]\",\n standalone: true,\n})\nexport class BadgeDirective implements OnInit, OnChanges, OnDestroy {\n readonly rteBadgeType = input<BadgeType>(\"brand\");\n readonly rteBadgeSize = input<BadgeSize>(\"m\");\n readonly rteBadgeContent = input<BadgeContent>(\"number\");\n readonly rteBadgeCount = input<number | undefined>();\n readonly rteBadgeIcon = input<RegularIconIdKey | TogglableIconIdKey>(\"settings\");\n\n private badgeComponentRef: ComponentRef<BadgeComponent> | null = null;\n private hostElement: HTMLElement;\n\n private readonly viewContainer = inject(ViewContainerRef);\n private readonly elementRef = inject(ElementRef);\n private readonly renderer = inject(Renderer2);\n\n constructor() {\n this.hostElement = this.elementRef.nativeElement;\n }\n\n ngOnInit(): void {\n this.badgeComponentRef = this.viewContainer.createComponent(BadgeComponent);\n this.assignDirectiveToComponent();\n this.appendComponentToHost();\n this.renderer.setStyle(this.hostElement, \"position\", \"relative\");\n }\n\n ngOnChanges(): void {\n this.assignDirectiveToComponent();\n }\n\n ngOnDestroy(): void {\n if (this.badgeComponentRef) {\n this.badgeComponentRef.destroy();\n }\n }\n\n private assignDirectiveToComponent(): void {\n if (this.badgeComponentRef) {\n this.badgeComponentRef.setInput(\"badgeType\", this.rteBadgeType());\n this.badgeComponentRef.setInput(\"badgeSize\", this.rteBadgeSize());\n this.badgeComponentRef.setInput(\"badgeContent\", this.rteBadgeContent());\n this.badgeComponentRef.setInput(\"count\", this.rteBadgeCount());\n this.badgeComponentRef.setInput(\"icon\", this.rteBadgeIcon());\n }\n }\n\n private appendComponentToHost(): void {\n if (this.badgeComponentRef) {\n this.renderer.appendChild(this.elementRef.nativeElement, this.badgeComponentRef.location.nativeElement);\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input } from \"@angular/core\";\nimport { DividerProps } from \"@design-system-rte/core/components/divider/divider.interface\";\n\n@Component({\n selector: \"rte-divider\",\n imports: [CommonModule],\n standalone: true,\n templateUrl: \"./divider.component.html\",\n styleUrl: \"./divider.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DividerComponent {\n readonly orientation = input<DividerProps[\"orientation\"]>(\"horizontal\");\n readonly thickness = input<DividerProps[\"thickness\"]>(\"light\");\n readonly appearance = input<DividerProps[\"appearance\"]>(\"default\");\n readonly endPoint = input<DividerProps[\"endPoint\"]>(\"round\");\n\n readonly isHorizontal = computed(() => this.orientation() === \"horizontal\");\n}\n","@if (isHorizontal()) {\n <hr class=\"horizontal {{ thickness() }} {{ appearance() }} {{ endPoint() }}\" />\n} @else {\n <div class=\"vertical {{ thickness() }} {{ appearance() }} {{ endPoint() }}\" role=\"separator\"></div>\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, computed, EventEmitter, input, output } from \"@angular/core\";\nimport { shouldDisplayBadge } from \"@design-system-rte/core/components/badge/badge.utils\";\nimport { DropdownItemProps } from \"@design-system-rte/core/components/dropdown/dropdown.interface\";\nimport { ENTER_KEY, SPACE_KEY } from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { BadgeComponent } from \"../../badge/badge.component\";\nimport { DividerComponent } from \"../../divider/divider.component\";\nimport { IconComponent } from \"../../icon/icon.component\";\n\nexport interface DropdownItemConfig extends Omit<DropdownItemProps, \"onClick\"> {\n id?: string;\n selected?: boolean;\n label: string;\n leftIcon?: string;\n trailingText?: string;\n disabled?: boolean;\n hasSeparator?: boolean;\n hasIndent?: boolean;\n link?: string;\n click?: EventEmitter<Event>;\n}\n\n@Component({\n selector: \"rte-dropdown-item\",\n imports: [CommonModule, IconComponent, DividerComponent, BadgeComponent],\n standalone: true,\n templateUrl: \"./dropdown-item.component.html\",\n styleUrl: \"./dropdown-item.component.scss\",\n})\nexport class DropdownItemComponent {\n readonly item = input<DropdownItemConfig>();\n readonly menuId = input<string>();\n readonly itemEvent = output<{ event: Event; id: string }>();\n\n readonly shouldDisplayBadge = computed(() => {\n const item = this.item();\n return shouldDisplayBadge({\n showBadge: !!item?.showBadge,\n badgeContent: item?.badgeContent,\n badgeCount: item?.badgeCount,\n badgeIcon: item?.badgeIcon,\n });\n });\n\n handleClick(event: Event): void {\n if (this.item()?.disabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n this.itemEvent.emit({\n event,\n id: this.item()?.id || this.item()?.label || \"\",\n });\n }\n\n handleKeyDown(event: KeyboardEvent): void {\n event.preventDefault();\n\n if ([SPACE_KEY, ENTER_KEY].includes(event.key)) {\n if (this.item()?.link) {\n const link = (event.target as HTMLElement).closest(\"li\")?.querySelector(\"a\");\n link?.click();\n } else {\n this.itemEvent.emit({\n event,\n id: this.item()?.id || this.item()?.label || \"\",\n });\n }\n }\n }\n}\n","<ng-container>\n <li\n #itemRef\n class=\"rte-dropdown-item\"\n role=\"menuitem\"\n tabindex=\"0\"\n [attr.data-disabled]=\"item()?.disabled\"\n [attr.data-active]=\"item()?.selected\"\n (click)=\"handleClick($event)\"\n (keydown)=\"handleKeyDown($event)\"\n >\n <span *ngIf=\"item()?.hasIndent && !item()?.leftIcon\" style=\"width: 20px\"></span>\n <rte-icon *ngIf=\"item()?.leftIcon\" [name]=\"item()?.leftIcon ?? ''\" />\n <ng-container [ngSwitch]=\"!!item()?.link\">\n <a *ngSwitchCase=\"true\" style=\"flex: 2; text-decoration: none; color: inherit\" [href]=\"item()?.link\"\n >{{ item()?.label }}\n </a>\n <span *ngSwitchDefault style=\"flex: 2\">{{ item()?.label }}</span>\n </ng-container>\n <div *ngIf=\"item()?.trailingText\">{{ item()?.trailingText }}</div>\n <rte-badge\n *ngIf=\"shouldDisplayBadge()\"\n [badgeType]=\"item()?.badgeType!\"\n [badgeContent]=\"item()?.badgeContent!\"\n [count]=\"item()?.badgeCount\"\n [simpleBadge]=\"true\"\n [icon]=\"item()?.badgeIcon ?? ''\"\n [badgeSize]=\"item()?.badgeSize!\"\n ></rte-badge>\n </li>\n <div *ngIf=\"item()?.hasSeparator\" class=\"dropdown-divider\">\n <rte-divider />\n </div>\n</ng-container>\n","import { ElementRef, Injectable } from \"@angular/core\";\nimport {\n ARROW_DOWN_KEY,\n ARROW_LEFT_KEY,\n ARROW_RIGHT_KEY,\n ARROW_UP_KEY,\n ESCAPE_KEY,\n} from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\n\nexport interface KeyboardHandlingOptions {\n menuElement: ElementRef | null;\n menuId: string;\n itemIndex?: number;\n}\n\nexport interface DropdownState {\n activeMenuId: string;\n}\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class DropdownService {\n private readonly initialState: DropdownState = {\n activeMenuId: \"\",\n };\n\n state$ = new BehaviorSubject<DropdownState | null>(this.initialState);\n\n readonly activeMenuId$ = this.state$.pipe(map((state) => state?.activeMenuId));\n\n openMenu(menuId: string): void {\n this.state$.next({\n activeMenuId: menuId,\n });\n }\n\n closeAllMenus(): void {\n this.state$.next(null);\n }\n\n isMenuActive(menuId: string): Observable<boolean> {\n return this.activeMenuId$.pipe(map((activeId) => activeId === menuId));\n }\n\n reset(): void {\n this.state$.next(this.initialState);\n }\n\n handleKeyboardInput(key: string, options: KeyboardHandlingOptions): void {\n if ([ARROW_DOWN_KEY, ARROW_UP_KEY, ARROW_LEFT_KEY, ARROW_RIGHT_KEY].includes(key)) {\n this.handleKeyboardNavigation(key, options);\n }\n\n if (key === ESCAPE_KEY) {\n this.closeAllMenus();\n }\n }\n\n handleKeyboardNavigation(key: string, options: KeyboardHandlingOptions): void {\n const { menuElement } = options;\n const nativeElement = menuElement?.nativeElement as HTMLElement;\n\n switch (key) {\n case ARROW_DOWN_KEY:\n this.focusNextElement(nativeElement);\n break;\n\n case ARROW_UP_KEY:\n this.focusPreviousElement(nativeElement);\n break;\n }\n }\n\n private focusNextElement(element: HTMLElement | null): void {\n if (!element) return;\n\n const focusableElements = this.getFocusableElements(element);\n const currentIndex = focusableElements.indexOf(document.activeElement as HTMLElement);\n const nextIndex = currentIndex + 1 < focusableElements.length ? currentIndex + 1 : 0;\n\n focusableElements[nextIndex]?.focus();\n }\n\n private focusPreviousElement(element: HTMLElement | null): void {\n if (!element) return;\n\n const focusableElements = this.getFocusableElements(element);\n const currentIndex = focusableElements.indexOf(document.activeElement as HTMLElement);\n const previousIndex = currentIndex ? currentIndex - 1 : focusableElements.length - 1;\n\n focusableElements[previousIndex]?.focus();\n }\n\n private getFocusableElements(element: HTMLElement): HTMLElement[] {\n const menuId = element.dataset[\"menuId\"];\n return Array.from(element.querySelectorAll(\"li\")).filter((el) => {\n const closestMenu = el.closest(\"[data-menu-id]\") as HTMLElement;\n return closestMenu?.dataset[\"menuId\"] === menuId;\n }) as HTMLElement[];\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, computed, ElementRef, HostListener, inject, input, output } from \"@angular/core\";\nimport {\n ARROW_DOWN_KEY,\n ARROW_LEFT_KEY,\n ARROW_RIGHT_KEY,\n ARROW_UP_KEY,\n ESCAPE_KEY,\n TAB_KEY,\n} from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { DropdownService } from \"../../../services/dropdown.service\";\nimport { DropdownItemComponent, DropdownItemConfig } from \"../dropdown-item/dropdown-item.component\";\n\n@Component({\n selector: \"rte-dropdown-menu\",\n imports: [CommonModule, DropdownItemComponent],\n standalone: true,\n templateUrl: \"./dropdown-menu.component.html\",\n styleUrl: \"./dropdown-menu.component.scss\",\n host: { \"[attr.data-menu-id]\": \"menuId()\" },\n})\nexport class DropdownMenuComponent {\n private readonly elementRef = inject(ElementRef);\n private readonly dropdownService = inject(DropdownService);\n\n readonly items = input<DropdownItemConfig[]>([]);\n readonly menuId = input<string>();\n\n readonly itemEvent = output<{ event: Event; id: string }>();\n\n readonly widthStyle = computed(() => (this.width() !== undefined ? `${this.width()}px` : undefined));\n readonly isOpen = input<boolean>(false);\n readonly width = input<string | null>(null);\n readonly closingMenu = output<void>();\n\n readonly menuStyle = computed(() => {\n return this.width() ? { width: this.width() + \"px\" } : {};\n });\n\n getChildMenuId(itemIndex: number): string {\n return `${this.menuId()}:${itemIndex + 1}`;\n }\n\n handleItemEvent(itemEvent: { event: Event; id: string }): void {\n this.itemEvent.emit(itemEvent);\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n onKeyDown(event: KeyboardEvent): void {\n if (!event.target || !this.menuId()) {\n return;\n }\n\n if ([ARROW_UP_KEY, ARROW_DOWN_KEY, ARROW_LEFT_KEY, ARROW_RIGHT_KEY, TAB_KEY].includes(event.key)) {\n event.preventDefault();\n }\n\n if (event.key === ESCAPE_KEY) {\n this.closingMenu.emit();\n }\n\n const menuId = this.menuId() as string;\n this.dropdownService.handleKeyboardInput(event.key, {\n menuElement: this.elementRef,\n menuId,\n });\n }\n}\n","<div class=\"rte-dropdown-menu {{ isOpen() ? 'open' : 'closed' }}\" [ngStyle]=\"menuStyle()\">\n <ul class=\"rte-dropdown-items\" role=\"menu\" [attr.aria-activedescendant]=\"menuId()\">\n @for (item of items(); track item.label; let i = $index) {\n <rte-dropdown-item [item]=\"item\" (itemEvent)=\"handleItemEvent($event)\" />\n }\n </ul>\n</div>\n","import { Directive, ElementRef, HostListener, inject, input, output } from \"@angular/core\";\n\n@Directive({\n selector: \"[rteDropdownTrigger]\",\n standalone: true,\n})\nexport class DropdownTriggerDirective {\n readonly elementRef = inject(ElementRef);\n\n readonly rteDropdownTriggerActivateWithArrowDown = input<boolean>(false);\n\n readonly dropdownKeyDown = output<KeyboardEvent>();\n\n readonly dropdownTriggered = output<Event>();\n\n readonly dropdownTriggerFocus = output<Event>();\n\n readonly dropdownTriggerClearContent = output<Event>();\n\n readonly dropdownTriggerOpenDropdown = output<Event>();\n\n readonly dropdownTriggerCloseDropdown = output<Event>();\n\n @HostListener(\"click\", [\"$event\"])\n onDropdownTriggered(event: Event): void {\n this.dropdownTriggered.emit(event);\n }\n\n @HostListener(\"focus\", [\"$event\"])\n onDropdownTriggerFocus(event: Event): void {\n this.dropdownTriggerFocus.emit(event);\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n onKeyDown(event: KeyboardEvent): void {\n this.dropdownKeyDown.emit(event);\n }\n\n @HostListener(\"clearContent\", [\"$event\"])\n onDropdownTriggerClearContent(event: Event) {\n this.dropdownTriggerClearContent.emit(event);\n }\n\n @HostListener(\"openDropdown\", [\"$event\"])\n onDropdownTriggerOpenDropdown(event: Event) {\n this.dropdownTriggerOpenDropdown.emit(event);\n }\n @HostListener(\"closeDropdown\", [\"$event\"])\n onDropdownTriggerCloseDropdown(event: Event) {\n this.dropdownTriggerCloseDropdown.emit(event);\n }\n}\n","import { DropdownManager } from \"@design-system-rte/core/components/dropdown/DropdownManager\";\n\nexport const focusNextElement = (dropdown: HTMLElement) => {\n const menuItems = getDropdownMenuItems(dropdown);\n const activeElementIndex = menuItems.indexOf(document.activeElement as HTMLElement);\n\n if (activeElementIndex < menuItems.length - 1) {\n const nextElement = menuItems[activeElementIndex + 1];\n nextElement.focus();\n } else {\n menuItems[0]?.focus();\n }\n};\n\nexport const focusPreviousElement = (dropdown: HTMLElement) => {\n const menuItems = getDropdownMenuItems(dropdown);\n const activeElementIndex = menuItems.indexOf(document.activeElement as HTMLElement);\n\n if (activeElementIndex > 0) {\n const previousElement = menuItems[activeElementIndex - 1];\n previousElement.focus();\n } else {\n menuItems.at(-1)?.focus();\n }\n};\n\nexport const focusDropdownFirstElement = (dropdownId: string) => {\n const childDropdown = document.querySelector(`[data-menu-id='${dropdownId}']`);\n if (childDropdown) {\n const allChildDropdownElement = childDropdown?.querySelectorAll<HTMLElement>('li[role=\"menuitem\"]');\n allChildDropdownElement[0]?.focus();\n }\n};\n\nexport const focusParentDropdownFirstElement = (dropdownId: string) => {\n const parentDropdownId = DropdownManager.getParentDropdownId(dropdownId);\n const parentDropdown = document.querySelector(`[data-menu-id='${parentDropdownId}']`);\n parentDropdown?.querySelector<HTMLElement>(\"[data-active=true]\")?.focus();\n};\n\nconst getDropdownMenuItems = (dropdown: HTMLElement) => {\n const allDropdownElement = dropdown?.querySelectorAll<HTMLElement>('li[role=\"menuitem\"]');\n return allDropdownElement ? Array.from(allDropdownElement) : [];\n};\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n ComponentRef,\n contentChild,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n OnDestroy,\n output,\n Renderer2,\n signal,\n ViewContainerRef,\n} from \"@angular/core\";\nimport { waitForNextFrame } from \"@design-system-rte/core/common/animation\";\nimport { Alignment } from \"@design-system-rte/core/common/common-types\";\nimport { Position } from \"@design-system-rte/core/components/common/common-types\";\nimport { DROPDOWN_ANIMATION_DURATION } from \"@design-system-rte/core/components/dropdown/dropdown.constants\";\nimport {\n getAutoAlignment,\n getAutoPlacementDropdown,\n getCoordinates,\n} from \"@design-system-rte/core/components/utils/auto-placement\";\nimport { ARROW_DOWN_KEY, ENTER_KEY, SPACE_KEY } from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { DropdownService } from \"../../services/dropdown.service\";\nimport { OverlayService } from \"../../services/overlay.service\";\n\nimport { DropdownMenuComponent } from \"./dropdown-menu/dropdown-menu.component\";\nimport { DropdownTriggerDirective } from \"./dropdown-trigger/dropdown-trigger.directive\";\nimport { focusDropdownFirstElement } from \"./dropdown.utils\";\n\n@Directive({\n selector: \"[rteDropdown]\",\n host: {\n \"[class.dropdown]\": \"true\",\n \"[attr.data-dropdown-id]\": \"dropdownId\",\n },\n standalone: true,\n})\nexport class DropdownDirective implements AfterContentInit, OnDestroy {\n private static idCounter = 0;\n\n readonly trigger = contentChild(DropdownTriggerDirective);\n readonly menu = contentChild(DropdownMenuComponent);\n\n readonly rteDropdownId = input<string | undefined>(undefined);\n readonly rteDropdownPosition = input<Position>(\"bottom\");\n readonly rteDropdownAlignment = input<Alignment>(\"start\");\n readonly rteDropdownIsOpen = input<boolean>(false);\n readonly rteDropdownOffset = input<number>(0);\n readonly rteDropdownAutofocus = input<boolean>(true);\n readonly rteDropdownAutoOpen = input<boolean>(true);\n readonly rteDropdownWidth = input<number | null>(null);\n\n readonly menuEvent = output<{ event: Event; id: string }>();\n readonly dropdownId = `dropdown_${++DropdownDirective.idCounter}`;\n\n readonly overlayService = inject(OverlayService);\n readonly dropdownService = inject(DropdownService);\n readonly viewContainerRef = inject(ViewContainerRef);\n readonly elementRef = inject(ElementRef);\n readonly renderer = inject(Renderer2);\n readonly hostElement: HTMLElement;\n readonly destroyRef = inject(DestroyRef);\n readonly cdr = inject(ChangeDetectorRef);\n\n readonly clickedOutside = output<void>();\n readonly closedDropdown = output<void>();\n\n readonly isActive = signal(false);\n\n constructor() {\n this.hostElement = this.elementRef.nativeElement;\n\n effect(() => {\n const isOpen = this.rteDropdownIsOpen();\n if (isOpen) {\n if (!this.dropdownMenuRef) {\n this.showDropdownMenu();\n if (this.rteDropdownAutofocus()) {\n waitForNextFrame(() => focusDropdownFirstElement(this.dropdownId));\n }\n }\n } else if (this.dropdownMenuRef) {\n this.dropdownService.closeAllMenus();\n }\n });\n\n effect(() => {\n const menu = this.menu();\n if (this.dropdownMenuRef && menu) {\n this.assignItems();\n }\n });\n\n effect(() => this.assignWidth());\n }\n\n dropdownMenuRef: ComponentRef<DropdownMenuComponent> | null = null;\n\n onTrigger(): void {\n if (this.rteDropdownAutoOpen()) {\n this.showDropdownMenu();\n }\n if (this.rteDropdownAutofocus()) {\n waitForNextFrame(() => focusDropdownFirstElement(this.dropdownId));\n }\n }\n\n onTriggerKeyEvent(event: KeyboardEvent): void {\n if (\n event.key === SPACE_KEY ||\n event.key === ENTER_KEY ||\n (event.key === ARROW_DOWN_KEY && this.trigger()?.rteDropdownTriggerActivateWithArrowDown())\n ) {\n this.showDropdownMenu();\n if (this.rteDropdownAutofocus()) {\n waitForNextFrame(() => focusDropdownFirstElement(this.dropdownId));\n }\n }\n }\n\n onMenuEvent(event: { event: Event; id: string }): void {\n this.menuEvent.emit(event);\n this.isActive.set(false);\n this.dropdownService.closeAllMenus();\n }\n\n ngAfterContentInit(): void {\n if (this.trigger()) {\n this.trigger()?.dropdownTriggered.subscribe(() => {\n this.onTrigger();\n });\n\n this.trigger()?.dropdownKeyDown.subscribe((event: KeyboardEvent) => {\n this.onTriggerKeyEvent(event);\n });\n\n this.trigger()?.dropdownTriggerClearContent.subscribe(() => {\n this.closeDropdown();\n });\n this.trigger()?.dropdownTriggerOpenDropdown.subscribe(() => {\n this.showDropdownMenu();\n });\n this.trigger()?.dropdownTriggerCloseDropdown.subscribe(() => {\n this.closeDropdown();\n });\n }\n }\n\n showDropdownMenu(): void {\n if (this.dropdownMenuRef) {\n this.dropdownMenuRef.destroy();\n }\n\n this.dropdownMenuRef = this.overlayService.create(DropdownMenuComponent, this.viewContainerRef);\n\n const menuId = this.rteDropdownId() || this.dropdownId;\n\n this.dropdownMenuRef.setInput(\"menuId\", menuId);\n\n this.dropdownService.openMenu(menuId);\n\n this.assignItems();\n this.assignWidth();\n this.positionDropdownMenu(this.rteDropdownPosition());\n this.addClickOutsideListener();\n\n this.dropdownMenuRef.instance.itemEvent.subscribe((event: { event: Event; id: string }) => {\n this.onMenuEvent(event);\n });\n\n const dropdownStateSubscription = this.dropdownService.state$.subscribe((state) => {\n if (state === null) {\n if (this.dropdownMenuRef) {\n this.dropdownMenuRef.destroy();\n this.dropdownMenuRef = null;\n\n this.removeClickOutsideListener();\n dropdownStateSubscription.unsubscribe();\n }\n }\n });\n\n this.destroyRef.onDestroy(() => dropdownStateSubscription.unsubscribe());\n }\n\n private assignItems(): void {\n if (this.dropdownMenuRef) {\n const items = this.menu()?.items() ?? [];\n this.dropdownMenuRef.setInput(\"items\", items);\n }\n }\n\n private assignWidth(): void {\n if (this.dropdownMenuRef && this.rteDropdownWidth() !== undefined) {\n this.dropdownMenuRef.setInput(\"width\", this.rteDropdownWidth());\n\n waitForNextFrame(() => this.dropdownMenuRef?.setInput(\"isOpen\", true));\n }\n }\n\n private positionDropdownMenu(position: Position = \"bottom\"): void {\n if (this.dropdownMenuRef && this.trigger()) {\n const dropdownMenuElement = this.dropdownMenuRef.location.nativeElement;\n const triggerElement = this.trigger()?.elementRef.nativeElement;\n\n if (triggerElement) {\n this.renderer.setStyle(dropdownMenuElement, \"display\", \"block\");\n this.cdr.detectChanges();\n const computedPosition: Exclude<Position, \"auto\"> =\n position === \"auto\" ? getAutoPlacementDropdown(triggerElement, dropdownMenuElement, \"bottom\") : position;\n const autoAlignment =\n this.rteDropdownAlignment() ?? getAutoAlignment(triggerElement, dropdownMenuElement, computedPosition);\n const computedCoordinates = getCoordinates(\n computedPosition,\n triggerElement,\n dropdownMenuElement.children[0],\n this.rteDropdownOffset(),\n autoAlignment,\n );\n\n this.renderer.setStyle(dropdownMenuElement, \"top\", `${computedCoordinates.top}px`);\n this.renderer.setStyle(dropdownMenuElement, \"left\", `${computedCoordinates.left}px`);\n\n this.renderer.setStyle(dropdownMenuElement, \"opacity\", \"1\");\n }\n }\n }\n\n ngOnDestroy(): void {\n this.removeClickOutsideListener();\n if (this.dropdownMenuRef) {\n this.dropdownMenuRef.destroy();\n }\n }\n\n private readonly handleClickOutside = (event: MouseEvent): void => {\n const target = event.target as Element;\n\n const isMenuItemClick = target.closest(\".rte-dropdown-item\") !== null;\n if (isMenuItemClick) {\n return;\n }\n\n const clickedInTrigger = this.hostElement.contains(target);\n\n if (!clickedInTrigger) {\n this.closeDropdown();\n this.clickedOutside.emit();\n }\n };\n\n private addClickOutsideListener(): void {\n document.addEventListener(\"mousedown\", this.handleClickOutside);\n }\n\n private removeClickOutsideListener(): void {\n document.removeEventListener(\"mousedown\", this.handleClickOutside);\n }\n\n private closeDropdown(): void {\n this.dropdownMenuRef?.setInput(\"isOpen\", false);\n this.isActive.set(false);\n\n setTimeout(() => {\n this.dropdownService.closeAllMenus();\n }, DROPDOWN_ANIMATION_DURATION);\n }\n}\n","import { NgModule } from \"@angular/core\";\n\nimport { DropdownItemComponent } from \"./dropdown-item/dropdown-item.component\";\nimport { DropdownMenuComponent } from \"./dropdown-menu/dropdown-menu.component\";\nimport { DropdownTriggerDirective } from \"./dropdown-trigger/dropdown-trigger.directive\";\nimport { DropdownDirective } from \"./dropdown.directive\";\n\n@NgModule({\n imports: [DropdownDirective, DropdownTriggerDirective, DropdownMenuComponent, DropdownItemComponent],\n exports: [DropdownDirective, DropdownTriggerDirective, DropdownMenuComponent, DropdownItemComponent],\n})\nexport class DropdownModule {}\n","// Main dropdown module - import this to get everything\nexport { DropdownModule } from \"./dropdown.module\";\n\n// Individual exports for advanced use cases\nexport { DropdownDirective } from \"./dropdown.directive\";\nexport { DropdownTriggerDirective } from \"./dropdown-trigger/dropdown-trigger.directive\";\nexport { DropdownMenuComponent } from \"./dropdown-menu/dropdown-menu.component\";\nexport { DropdownItemComponent } from \"./dropdown-item/dropdown-item.component\";\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input, signal, OnInit, OnDestroy } from \"@angular/core\";\nimport { BadgeContent, BadgeSize, BadgeType } from \"@design-system-rte/core/components/badge/badge.interface\";\nimport { shouldDisplayBadge } from \"@design-system-rte/core/components/badge/badge.utils\";\nimport { Alignment, Position } from \"@design-system-rte/core/components/common/common-types\";\nimport {\n splitButtonLeftIconSize,\n splitButtonRightIconSize,\n} from \"@design-system-rte/core/components/split-button/split-button.constants\";\nimport {\n SplitButtonAppearance,\n SplitButtonItemProps,\n SplitButtonPosition,\n SplitButtonSize,\n} from \"@design-system-rte/core/components/split-button/split-button.interface\";\nimport { ARROW_DOWN_KEY, SPACE_KEY } from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { BadgeDirective } from \"../badge/badge.directive\";\nimport { DropdownModule } from \"../dropdown\";\nimport { IconComponent } from \"../icon/icon.component\";\nimport { RegularIconIdKey, TogglableIconIdKey } from \"../icon/icon.service\";\n\n@Component({\n selector: \"rte-split-button\",\n imports: [CommonModule, IconComponent, DropdownModule, BadgeDirective],\n standalone: true,\n templateUrl: \"./split-button.component.html\",\n styleUrl: \"./split-button.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SplitButtonComponent implements OnInit, OnDestroy {\n readonly appearance = input<SplitButtonAppearance>(\"primary\");\n readonly size = input<SplitButtonSize>(\"m\");\n readonly label = input.required<string>();\n readonly compactSpacing = input(false);\n readonly position = input<SplitButtonPosition>(\"bottom-start\");\n readonly icon = input<RegularIconIdKey | TogglableIconIdKey | null>(null);\n readonly disabled = input(false);\n readonly ariaLabelRight = input<string>();\n readonly options = input<SplitButtonItemProps[]>([]);\n readonly badgeType = input<BadgeType>();\n readonly showBadge = input<boolean>(false);\n readonly badgeContent = input<BadgeContent>();\n readonly badgeCount = input<number | undefined>(undefined);\n readonly badgeIcon = input<RegularIconIdKey | TogglableIconIdKey>(\"notification\");\n readonly badgeSize = input<BadgeSize>(\"m\");\n\n readonly splitButtonLeftIconSize = computed(() => splitButtonLeftIconSize[this.size()]);\n readonly splitButtonRightIconSize = computed(() => splitButtonRightIconSize[this.size()]);\n\n readonly isOpen = signal(false);\n\n readonly internalPosition = computed(() => {\n return this.position().split(\"-\")[0] as Position;\n });\n readonly internalAlignment = computed(() => {\n return this.position().split(\"-\")[1] as Alignment;\n });\n\n readonly hasBadge = computed(() =>\n shouldDisplayBadge({\n showBadge: !!this.showBadge(),\n badgeContent: this.badgeContent(),\n badgeCount: this.badgeCount(),\n badgeIcon: this.badgeIcon(),\n }),\n );\n\n handleClickOutside(event: MouseEvent): void {\n const target = event.target as Element;\n const allDropdowns = document.querySelectorAll(\"[data-dropdown-id]\");\n const clickedInside = Array.from(allDropdowns).some((dropdown) => dropdown.contains(target));\n\n if (!clickedInside) {\n this.isOpen.set(false);\n }\n }\n\n ngOnInit(): void {\n window.addEventListener(\"click\", this.handleClickOutside.bind(this));\n }\n\n ngOnDestroy(): void {\n window.removeEventListener(\"click\", this.handleClickOutside.bind(this));\n }\n\n handleKeyDownOnRightButton(event: KeyboardEvent): void {\n this.handleKeyDown(event, ARROW_DOWN_KEY, () => this.isOpen.set(true));\n this.handleKeyDown(event, SPACE_KEY, () => this.isOpen.set(true));\n this.handleKeyDown(event, \"Escape\", () => this.isOpen.set(false));\n }\n\n handleKeyDownOnMenu(event: KeyboardEvent): void {\n this.handleKeyDown(event, \"Escape\", () => this.isOpen.set(false));\n }\n\n private handleKeyDown(event: KeyboardEvent, key: string, callback: () => void): void {\n if (event.key === key) {\n event.preventDefault();\n callback();\n }\n }\n}\n","<div\n class=\"split-button-container size-{{ size() }} {{ appearance() }}\"\n [ngClass]=\"{ 'compact-spacing': compactSpacing() }\"\n>\n <button\n class=\"split-button-left size-{{ size() }}\"\n data-testid=\"Main action button\"\n type=\"button\"\n [disabled]=\"disabled()\"\n >\n <rte-icon *ngIf=\"icon()\" [name]=\"icon()!\" [size]=\"splitButtonLeftIconSize()\" />\n <p class=\"split-button-label size-{{ size() }}\">\n {{ label() }}\n </p>\n </button>\n\n <div class=\"split-button-divider\" [ngClass]=\"{ disabled: disabled() }\"></div>\n\n <div\n rteDropdown\n style=\"height: 100%\"\n [rteDropdownPosition]=\"internalPosition()\"\n [rteDropdownAlignment]=\"internalAlignment()\"\n [attr.data-testid]=\"'Menu container'\"\n >\n @if (hasBadge()) {\n <button\n class=\"split-button-right size-{{ size() }}\"\n rteBadge\n rteDropdownTrigger\n data-testid=\"Menu button\"\n type=\"button\"\n aria-haspopup=\"menu\"\n [rteBadgeType]=\"badgeType()!\"\n [rteBadgeContent]=\"badgeContent()!\"\n [rteBadgeCount]=\"badgeCount()\"\n [rteDropdownTriggerActivateWithArrowDown]=\"true\"\n [attr.data-expanded]=\"isOpen()\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-label]=\"ariaLabelRight()\"\n [disabled]=\"disabled()\"\n (click)=\"isOpen.set(true)\"\n (keydown)=\"handleKeyDownOnRightButton($event)\"\n >\n <div class=\"split-button-right-icon-container\">\n <rte-icon name=\"arrow-chevron-down\" [size]=\"splitButtonRightIconSize()\" />\n </div>\n </button>\n } @else {\n <button\n class=\"split-button-right size-{{ size() }}\"\n rteDropdownTrigger\n data-testid=\"Menu button\"\n type=\"button\"\n aria-haspopup=\"menu\"\n [rteDropdownTriggerActivateWithArrowDown]=\"true\"\n [attr.data-expanded]=\"isOpen()\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-label]=\"ariaLabelRight()\"\n [disabled]=\"disabled()\"\n (click)=\"isOpen.set(true)\"\n (keydown)=\"handleKeyDownOnRightButton($event)\"\n >\n <div class=\"split-button-right-icon-container\">\n <rte-icon name=\"arrow-chevron-down\" [size]=\"splitButtonRightIconSize()\" />\n </div>\n </button>\n }\n <rte-dropdown-menu [items]=\"options()\" />\n </div>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input, output } from \"@angular/core\";\nimport { BadgeContent, BadgeType } from \"@design-system-rte/core/components/badge/badge.interface\";\nimport { ButtonType } from \"@design-system-rte/core/components/button/button.interface\";\nimport { ButtonSize, ButtonVariant } from \"@design-system-rte/core/components/button/common/common-button\";\nimport { ButtonIconSize } from \"@design-system-rte/core/components/button/common/common-button.constants\";\n\nimport { BadgeDirective } from \"../badge/badge.directive\";\nimport { isValidIconName } from \"../icon/icon-map\";\nimport { IconComponent } from \"../icon/icon.component\";\nimport { RegularIconIdKey, TogglableIconIdKey } from \"../icon/icon.service\";\n\n@Component({\n selector: \"rte-icon-button\",\n imports: [CommonModule, IconComponent, BadgeDirective],\n standalone: true,\n templateUrl: \"./icon-button.component.html\",\n styleUrl: \"./icon-button.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconButtonComponent {\n readonly disabled = input<boolean>(false);\n readonly name = input.required<RegularIconIdKey | TogglableIconIdKey>();\n readonly size = input<ButtonSize>(\"m\");\n readonly variant = input<ButtonVariant>(\"primary\");\n readonly type = input<ButtonType>(\"button\");\n readonly appearance = input<\"outlined\" | \"filled\">(\"outlined\");\n readonly compactSpacing = input<boolean>(false);\n readonly ariaLabel = input<string | undefined>(undefined);\n readonly ariaLabelledBy = input<string | undefined>(undefined);\n readonly badgeCount = input<number>();\n readonly badgeContent = input<BadgeContent>();\n readonly badgeType = input<BadgeType>();\n readonly badgeIcon = input<RegularIconIdKey | TogglableIconIdKey>(\"settings\");\n readonly customStyle = input<Record<string, string>>();\n\n readonly buttonIconSize = computed(() => ButtonIconSize[this.size()]);\n\n readonly isValidIconName = computed(() => isValidIconName(this.name()));\n\n readonly clickEvent = output<MouseEvent | KeyboardEvent>();\n\n readonly shouldDisplayBadge = computed(() => {\n const count = this.badgeCount();\n const content = this.badgeContent();\n\n return (count && count > 0 && content === \"number\") || content === \"icon\";\n });\n\n onClick(event: MouseEvent | KeyboardEvent): void {\n this.clickEvent.emit(event);\n }\n}\n","@if (shouldDisplayBadge()) {\n <button\n *ngIf=\"isValidIconName\"\n class=\"rte-icon-button {{ variant() }} size-{{ size() }}\"\n rteBadge\n [class.compact-spacing]=\"compactSpacing()\"\n [ngStyle]=\"customStyle()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [type]=\"type()\"\n [rteBadgeType]=\"badgeType()!\"\n [rteBadgeSize]=\"size()\"\n [rteBadgeContent]=\"size() === 's' ? 'empty' : badgeContent()!\"\n [rteBadgeCount]=\"badgeCount()!\"\n [rteBadgeIcon]=\"badgeIcon()!\"\n (click)=\"onClick($event)\"\n >\n <rte-icon [name]=\"name()\" [appearance]=\"appearance()\" [size]=\"buttonIconSize()\" />\n </button>\n} @else {\n <button\n *ngIf=\"isValidIconName\"\n class=\"rte-icon-button {{ variant() }} size-{{ size() }}\"\n [class.compact-spacing]=\"compactSpacing()\"\n [ngStyle]=\"customStyle()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [type]=\"type()\"\n (click)=\"onClick($event)\"\n >\n <rte-icon [name]=\"name()\" [appearance]=\"appearance()\" [size]=\"buttonIconSize()\" />\n </button>\n}\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input, output, signal } from \"@angular/core\";\nimport { ButtonType } from \"@design-system-rte/core/components/button/button.interface\";\nimport { ButtonSize, ButtonVariant } from \"@design-system-rte/core/components/button/common/common-button\";\nimport { ButtonIconSize } from \"@design-system-rte/core/components/button/common/common-button.constants\";\n\nimport { RegularIconIdKey, TogglableIconIdKey } from \"../icon/icon.service\";\nimport { IconButtonComponent } from \"../icon-button/icon-button.component\";\n\n@Component({\n selector: \"rte-icon-button-toggle\",\n imports: [CommonModule, IconButtonComponent],\n standalone: true,\n templateUrl: \"./icon-button-toggle.component.html\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconButtonToggleComponent {\n readonly disabled = input<boolean>(false);\n readonly name = input.required<RegularIconIdKey | TogglableIconIdKey>();\n readonly size = input<ButtonSize>(\"m\");\n readonly variant = input<ButtonVariant>(\"primary\");\n readonly type = input<ButtonType>(\"button\");\n readonly compactSpacing = input<boolean>(false);\n readonly ariaLabel = input<string | undefined>();\n readonly ariaLabelledBy = input<string | undefined>();\n\n readonly selected = input<boolean | undefined>();\n\n readonly internalSelected = signal(false);\n\n readonly defaultSelected = input<boolean>(false);\n\n readonly isControlled = computed(() => this.selected() !== undefined);\n\n readonly click = output<MouseEvent | KeyboardEvent>();\n\n readonly isSelected = computed(() => {\n return this.isControlled() ? this.selected() : this.internalSelected();\n });\n\n private toggleInternalSelectedState(): void {\n this.internalSelected.set(!this.internalSelected());\n }\n\n onClick(event: MouseEvent | KeyboardEvent): void {\n event.stopPropagation();\n this.click.emit(event);\n if (!this.isControlled()) {\n this.toggleInternalSelectedState();\n }\n }\n\n readonly buttonIconSize = computed(() => ButtonIconSize[this.size()]);\n}\n","<rte-icon-button\n [size]=\"size()\"\n [name]=\"name()\"\n [compactSpacing]=\"compactSpacing()\"\n [disabled]=\"disabled()\"\n [ariaLabel]=\"ariaLabel()\"\n [ariaLabelledBy]=\"ariaLabelledBy()\"\n [type]=\"type()\"\n [variant]=\"variant()\"\n [appearance]=\"isSelected() ? 'filled' : 'outlined'\"\n (clickEvent)=\"onClick($event)\"\n/>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, input, output, signal, computed, effect } from \"@angular/core\";\n\nimport { IconComponent } from \"../../icon/icon.component\";\nimport { RegularIconIdKey, TogglableIconIdKey } from \"../../icon/icon.service\";\nimport { IconButtonComponent } from \"../../icon-button/icon-button.component\";\nimport { LinkComponent } from \"../../link/link.component\";\n\n@Component({\n selector: \"rte-base-text-input\",\n imports: [CommonModule, IconComponent, IconButtonComponent, LinkComponent],\n standalone: true,\n templateUrl: \"./base-text-input.component.html\",\n styleUrl: \"./base-text-input.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BaseTextInputComponent {\n readonly id = input<string>();\n readonly label = input<string>(\"\");\n readonly labelPosition = input<\"top\" | \"side\">(\"top\");\n readonly placeholder = input<string>(\"\");\n readonly required = input<boolean>(false);\n readonly showCounter = input<boolean>(false);\n readonly value = input<string>(\"\");\n readonly internalValue = signal<string>(this.value());\n readonly leftIcon = input<RegularIconIdKey | TogglableIconIdKey | null>(null);\n readonly showRightIcon = input<boolean>(true);\n readonly rightIconAction = input<\"clean\" | \"visibilityOn\" | \"visibilityOff\">(\"clean\");\n readonly showLabelRequirement = input<boolean>(false);\n readonly assistiveAppearance = input<\"description\" | \"error\" | \"success\" | \"link\">(\"description\");\n readonly showAssistiveIcon = input<boolean>(false);\n readonly assistiveTextLabel = input<string>(\"\");\n readonly error = input<boolean>(false);\n readonly maxLength = input<number>(150);\n readonly disabled = input<boolean>(false);\n readonly readOnly = input<boolean>(false);\n readonly width = input<string>(\"300px\");\n readonly ariaLabel = input<string>(\"\");\n readonly ariaRequired = input<boolean>(false);\n readonly ariaLabelledby = input<string>(\"\");\n readonly compactSpacing = input<boolean>(false);\n readonly customStyle = input<Record<string, string>>();\n readonly autocomplete = input<string>(\"\");\n readonly highlighted = input<boolean>(false);\n\n readonly valueChange = output<string>();\n readonly rightIconClick = output<void>();\n\n readonly characterCount = signal<number>(this.internalValue().length);\n readonly isHiddenInput = signal<boolean>(this.showRightIcon() && this.rightIconAction() === \"visibilityOn\");\n readonly displayedLeftIcon = computed(() => (this.error() ? \"error\" : this.leftIcon()));\n\n readonly displayCounter = computed(() => this.showCounter() && typeof this.maxLength() === \"number\");\n\n readonly rightIconName = computed(() => {\n if ([\"visibilityOn\", \"visibilityOff\"].includes(this.rightIconAction())) {\n return this.isHiddenInput() ? \"visibility-show\" : \"visibility-hide\";\n }\n return \"cancel\";\n });\n\n readonly rightIconAriaLabel = computed(() => {\n if ([\"visibilityOn\", \"visibilityOff\"].includes(this.rightIconAction())) {\n return this.isHiddenInput() ? \"show text\" : \"hide text\";\n } else if (this.rightIconAction() === \"clean\") {\n return \"clear\";\n }\n return \"\";\n });\n\n readonly shouldShowRightIcon = computed(() => {\n if (this.readOnly() || this.disabled()) {\n return false;\n }\n if (this.rightIconAction() === \"clean\") {\n return !!this.internalValue()?.length && this.showRightIcon();\n }\n return this.showRightIcon() && !!this.rightIconAction();\n });\n\n private lastParentValue = this.value();\n\n constructor() {\n effect(\n () => {\n const parentValue = this.value();\n if (parentValue !== this.lastParentValue) {\n this.lastParentValue = parentValue;\n this.internalValue.set(parentValue);\n }\n },\n { allowSignalWrites: true },\n );\n }\n\n handleChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n const newValue = input.value;\n this.internalValue.set(newValue);\n if (this.maxLength()) {\n this.characterCount.set(newValue.length);\n }\n this.valueChange.emit(newValue);\n }\n\n onRightIconClickHandler(): void {\n this.rightIconClick.emit();\n this.triggerRightIconAction();\n }\n\n private toggleInputVisibility(): void {\n this.isHiddenInput.set(!this.isHiddenInput());\n }\n\n private triggerRightIconAction(): void {\n if (this.rightIconAction() === \"clean\") {\n this.internalValue.set(\"\");\n this.valueChange.emit(\"\");\n this.characterCount.set(0);\n }\n if ([\"visibilityOn\", \"visibilityOff\"].includes(this.rightIconAction())) {\n this.toggleInputVisibility();\n }\n }\n}\n","<div\n class=\"container {{ labelPosition() }}\"\n [ngClass]=\"{ error: error(), 'compact-spacing': compactSpacing() }\"\n [style.width]=\"width()\"\n>\n <ng-container *ngIf=\"label()\">\n <div class=\"text\">\n <div class=\"label-container\">\n <label class=\"input-label\" [id]=\"'input-label-' + id\" [for]=\"id()\">\n {{ label() }}\n </label>\n <ng-container *ngIf=\"required()\">\n <ng-container *ngIf=\"showLabelRequirement(); else requiredIcon\">\n <span class=\"required-text\">(obligatoire)</span>\n </ng-container>\n <ng-template #requiredIcon>\n <span class=\"required-icon-container\">\n <rte-icon name=\"asterisk\" [size]=\"8\" />\n </span>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!required() && showLabelRequirement()\">\n <span class=\"required-text\">(optionnel)</span>\n </ng-container>\n </div>\n <ng-container *ngIf=\"displayCounter() && labelPosition() === 'top'\">\n <p class=\"input-counter\" data-testid=\"input-counter\">{{ characterCount() }}/{{ maxLength() }}</p>\n </ng-container>\n </div>\n </ng-container>\n\n <div class=\"input-container\">\n <div class=\"input {{ labelPosition() }}\" [ngClass]=\"{ disabled: disabled(), 'read-only': readOnly() }\">\n <div\n class=\"input-bar\"\n [ngClass]=\"{ 'with-left-icon': displayedLeftIcon(), 'with-right-icon': rightIconAction() }\"\n >\n <ng-container *ngIf=\"displayedLeftIcon()\">\n <rte-icon appearance=\"outlined\" class=\"left-icon\" aria-hidden=\"true\" [name]=\"displayedLeftIcon()!\" />\n </ng-container>\n\n <input\n #inputRef\n class=\"input-field\"\n [id]=\"id()\"\n [ngClass]=\"{ error: error(), highlighted: highlighted() }\"\n [ngStyle]=\"customStyle()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-required]=\"ariaRequired()\"\n [type]=\"isHiddenInput() ? 'password' : 'text'\"\n [maxLength]=\"maxLength()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readOnly()\"\n [value]=\"internalValue()\"\n [placeholder]=\"placeholder()\"\n [attr.autocomplete]=\"autocomplete()\"\n (input)=\"handleChange($event)\"\n />\n\n <ng-container *ngIf=\"shouldShowRightIcon()\">\n <rte-icon-button\n appearance=\"outlined\"\n variant=\"neutral\"\n size=\"s\"\n class=\"right-icon\"\n data-testid=\"right-icon\"\n [compactSpacing]=\"true\"\n [name]=\"rightIconName()\"\n [ariaLabel]=\"rightIconAriaLabel()\"\n (clickEvent)=\"onRightIconClickHandler()\"\n />\n </ng-container>\n </div>\n <div class=\"right-slot\">\n <ng-content select=\"[baseTextInputRightSlot]\"></ng-content>\n </div>\n </div>\n\n <ng-container *ngIf=\"assistiveTextLabel()\">\n <div class=\"assistive-text\">\n <ng-container *ngIf=\"showAssistiveIcon() && assistiveAppearance() === 'error'\">\n <rte-icon name=\"error\" appearance=\"outlined\" class=\"assistive-icon-error\" [size]=\"12\" />\n </ng-container>\n <ng-container *ngIf=\"showAssistiveIcon() && assistiveAppearance() === 'success'\">\n <rte-icon name=\"check\" appearance=\"outlined\" class=\"assistive-icon-success\" [size]=\"12\" />\n </ng-container>\n <ng-container *ngIf=\"assistiveAppearance() === 'link'; else assistiveLabel\">\n <rte-link [label]=\"assistiveTextLabel()\" />\n </ng-container>\n <ng-template #assistiveLabel>\n <p class=\"assistive-label\" [ngClass]=\"assistiveAppearance()\">\n {{ assistiveTextLabel() }}\n </p>\n </ng-template>\n </div>\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"displayCounter() && labelPosition() === 'side'\">\n <p class=\"input-counter\" data-testid=\"input-counter\">{{ characterCount() }}/{{ maxLength() }}</p>\n </ng-container>\n</div>\n","import { ChangeDetectionStrategy, Component } from \"@angular/core\";\n\nimport { BaseTextInputComponent } from \"./base-text-input/base-text-input.component\";\n\n@Component({\n selector: \"rte-text-input\",\n imports: [BaseTextInputComponent],\n standalone: true,\n templateUrl: \"./text-input.component.html\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TextInputComponent extends BaseTextInputComponent {}\n","<rte-base-text-input\n [id]=\"id()\"\n [label]=\"label()\"\n [labelPosition]=\"labelPosition()\"\n [required]=\"required()\"\n [showCounter]=\"showCounter()\"\n [value]=\"value()\"\n [leftIcon]=\"leftIcon()\"\n [showRightIcon]=\"showRightIcon()\"\n [rightIconAction]=\"rightIconAction()\"\n [showLabelRequirement]=\"showLabelRequirement()\"\n [assistiveAppearance]=\"assistiveAppearance()\"\n [showAssistiveIcon]=\"showAssistiveIcon()\"\n [assistiveTextLabel]=\"assistiveTextLabel()\"\n [error]=\"error()\"\n [maxLength]=\"maxLength()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readOnly()\"\n [width]=\"width()\"\n [ariaLabel]=\"ariaLabel()\"\n [ariaRequired]=\"ariaRequired()\"\n [ariaLabelledby]=\"ariaLabelledby()\"\n [customStyle]=\"customStyle()\"\n [autocomplete]=\"autocomplete()\"\n (valueChange)=\"valueChange.emit($event)\"\n (rightIconClick)=\"rightIconClick.emit()\"\n/>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input, output } from \"@angular/core\";\nimport { CHIP_TYPE_TO_ARIA_ROLE_MAP } from \"@design-system-rte/core/components/chip/chip.constants\";\nimport {\n BACKSPACE_KEY,\n DELETE_KEY,\n ENTER_KEY,\n SPACE_KEY,\n} from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { IconComponent } from \"../icon/icon.component\";\n\n@Component({\n selector: \"rte-chip\",\n imports: [CommonModule, IconComponent],\n standalone: true,\n templateUrl: \"./chip.component.html\",\n styleUrl: \"./chip.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChipComponent {\n readonly id = input<string | undefined>();\n readonly label = input<string>(\"\");\n readonly selected = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n readonly type = input<\"single\" | \"multi\" | \"input\">(\"single\");\n readonly compactSpacing = input<boolean>(false);\n readonly click = output<Event>();\n readonly close = output<Event>();\n\n readonly isCheckable = computed(() => this.type() === \"single\" || this.type() === \"multi\");\n readonly role = computed(() => CHIP_TYPE_TO_ARIA_ROLE_MAP[this.type()] || null);\n\n onClick(event: Event) {\n event.stopPropagation();\n if (!this.disabled()) {\n this.click.emit(event);\n }\n }\n\n onKeyUp(event: KeyboardEvent) {\n event.preventDefault();\n if (!this.disabled()) {\n if (event.key === SPACE_KEY || event.key === ENTER_KEY) {\n const target = event.target as HTMLElement;\n const isCloseButton = target.classList.contains(\"chip-close-button\");\n if (isCloseButton) {\n target.click();\n } else {\n this.onClick(event);\n }\n } else if ((event.key === BACKSPACE_KEY || event.key === DELETE_KEY) && this.type() === \"input\") {\n const closeButton = (event.target as HTMLElement).querySelector(\n \".chip-close-button\",\n ) as HTMLButtonElement | null;\n if (closeButton) {\n closeButton.click();\n }\n }\n }\n }\n onBlur(event: FocusEvent) {\n event.stopPropagation();\n }\n onCloseClick(event: Event) {\n event.stopPropagation();\n if (!this.disabled()) {\n this.close.emit(event);\n }\n }\n}\n","<span\n class=\"chip\"\n tabindex=\"0\"\n [attr.role]=\"role()\"\n [attr.data-selected]=\"isCheckable() ? selected() : null\"\n [attr.data-disabled]=\"disabled()\"\n [attr.data-compact-spacing]=\"compactSpacing()\"\n [attr.data-type]=\"type()\"\n [attr.aria-checked]=\"isCheckable() ? selected() : null\"\n [attr.aria-disabled]=\"disabled()\"\n (click)=\"onClick($event)\"\n (keyup)=\"onKeyUp($event)\"\n (blur)=\"onBlur($event)\"\n>\n <ng-container *ngIf=\"type() === 'multi'\">\n <span class=\"chip-icon-container\">\n <span class=\"chip-icon\" [class.chip-icon--visible]=\"selected()\" [attr.aria-hidden]=\"!selected()\">\n <rte-icon name=\"check-circle\" appearance=\"filled\" [size]=\"16\"></rte-icon>\n </span>\n <span class=\"chip-icon\" [class.chip-icon--visible]=\"!selected()\" [attr.aria-hidden]=\"selected()\">\n <rte-icon name=\"radio-button-empty\" [size]=\"16\"></rte-icon>\n </span>\n </span>\n </ng-container>\n <span class=\"chip-label\" [attr.data-type]=\"type()\">{{ label() }}</span>\n <button\n *ngIf=\"type() === 'input'\"\n type=\"button\"\n class=\"chip-close-button\"\n [attr.aria-label]=\"'Supprimer ' + label()\"\n [disabled]=\"disabled()\"\n [value]=\"label()\"\n (click)=\"onCloseClick($event)\"\n >\n <rte-icon class=\"chip-close-button--icon\" name=\"close\" [size]=\"16\"></rte-icon>\n </button>\n</span>\n","import { CommonModule } from \"@angular/common\";\nimport { Component, input, computed, output, ElementRef, viewChild } from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { REQUIREMENT_INDICATOR_VALUE } from \"@design-system-rte/core/components/required-indicator/required-indicator.constant\";\nimport { TEXTAREA_ICON_SIZE } from \"@design-system-rte/core/components/textarea/textarea.constants\";\nimport type {\n TextareaAssistiveTextAppearance,\n TextareaLabelPosition,\n} from \"@design-system-rte/core/components/textarea/textarea.interface\";\n\nimport { IconComponent } from \"../icon/icon.component\";\nimport { LinkComponent } from \"../link/link.component\";\n\n@Component({\n selector: \"rte-textarea\",\n imports: [CommonModule, IconComponent, LinkComponent],\n standalone: true,\n templateUrl: \"./textarea.component.html\",\n styleUrl: \"./textarea.component.scss\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: TextareaComponent,\n multi: true,\n },\n ],\n})\nexport class TextareaComponent {\n readonly id = input<string | undefined>(undefined);\n readonly name = input<string | undefined>(undefined);\n readonly ariaLabelledby = input<string | undefined>(undefined);\n readonly label = input<string | undefined>(undefined);\n readonly labelId = input<string | undefined>(undefined);\n readonly labelPosition = input<TextareaLabelPosition>(\"top\");\n readonly assistiveTextLabel = input<string | undefined>(undefined);\n readonly assistiveTextAppearance = input<TextareaAssistiveTextAppearance>(\"description\");\n readonly assistiveTextLink = input<string | undefined>(undefined);\n readonly required = input<boolean>(false);\n readonly showLabelRequirement = input<boolean>(false);\n readonly resizeable = input<boolean | string>(true);\n readonly maxLength = input<number | undefined>(undefined);\n readonly disabled = input<boolean>(false);\n readonly readOnly = input<boolean>(false);\n readonly value = input<string | undefined>(undefined);\n readonly rows = input<number>(3);\n readonly defaultValue = input<string | undefined>(undefined);\n readonly showCounter = input<boolean>(false);\n\n readonly assistiveTextIconSize = TEXTAREA_ICON_SIZE;\n\n readonly requirementIndicatorValue = computed(() =>\n this.required()\n ? this.showLabelRequirement()\n ? REQUIREMENT_INDICATOR_VALUE.required\n : REQUIREMENT_INDICATOR_VALUE.requiredIcon\n : REQUIREMENT_INDICATOR_VALUE.optional,\n );\n\n readonly change = output<Event>();\n readonly blur = output<FocusEvent>();\n\n readonly textareaRef = viewChild<ElementRef<HTMLTextAreaElement>>(\"textarea\");\n\n readonly isAssistiveTextLinkVisible = computed(\n () => this.assistiveTextAppearance() === \"link\" && this.assistiveTextLink() !== undefined,\n );\n\n characterCount = 0;\n\n readonly isCounterVisible = computed(() => {\n return this.showCounter() && this.maxLength();\n });\n\n onInput(event: Event) {\n const target = event.target as HTMLTextAreaElement;\n this.characterCount = target.value.length;\n this.change.emit(event);\n }\n\n onBlur(event: FocusEvent) {\n this.textareaRef()?.nativeElement?.scrollTo({ top: 0 });\n this.blur.emit(event);\n }\n}\n","<div class=\"container\" [attr.data-label-position]=\"labelPosition()\">\n <label\n *ngIf=\"label() && labelPosition() === 'side'\"\n [attr.data-label-position]=\"labelPosition()\"\n [attr.id]=\"labelId()\"\n [attr.for]=\"id()\"\n >{{ label()\n }}<span\n *ngIf=\"required() || showLabelRequirement()\"\n class=\"requirement-indicator\"\n aria-hidden=\"true\"\n [ngClass]=\"{ required: required(), 'show-label-requirement': showLabelRequirement() }\"\n >{{ requirementIndicatorValue() }}</span\n ></label\n >\n <div class=\"top-position-container\" [attr.data-label-position]=\"labelPosition()\">\n <div class=\"header-container\" [attr.data-label-position]=\"labelPosition()\">\n <label *ngIf=\"label() && labelPosition() === 'top'\" [attr.id]=\"labelId()\" [attr.for]=\"id()\"\n >{{ label()\n }}<span\n *ngIf=\"required() || showLabelRequirement()\"\n class=\"requirement-indicator\"\n aria-hidden=\"true\"\n [ngClass]=\"{ required: required(), 'show-label-requirement': showLabelRequirement() }\"\n >{{ requirementIndicatorValue() }}</span\n ></label\n >\n <span *ngIf=\"isCounterVisible()\" class=\"character-counter\">{{ characterCount }}/{{ maxLength() }}</span>\n </div>\n <div class=\"textarea-container\" [attr.data-label-position]=\"labelPosition()\">\n <textarea\n #textarea\n class=\"textarea {{ assistiveTextAppearance() }}\"\n [class.resizeable]=\"resizeable()\"\n [attr.id]=\"id()\"\n [attr.name]=\"name()\"\n [attr.aria-labelledby]=\"labelId() || ariaLabelledby()\"\n [attr.required]=\"required() || null\"\n [attr.maxLength]=\"maxLength() !== undefined ? maxLength() : null\"\n [attr.disabled]=\"disabled() || null\"\n [attr.readonly]=\"readOnly() || null\"\n [value]=\"value() !== undefined ? value() : null\"\n [defaultValue]=\"defaultValue() !== undefined ? defaultValue() : null\"\n [attr.rows]=\"rows()\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n <rte-link\n *ngIf=\"isAssistiveTextLinkVisible()\"\n class=\"assistive-text-link\"\n [externalLink]=\"true\"\n [href]=\"assistiveTextLink() || ''\"\n [label]=\"assistiveTextLabel() || ''\"\n >\n </rte-link>\n <div\n *ngIf=\"assistiveTextAppearance() !== 'link'\"\n class=\"assistive-text {{ assistiveTextAppearance() }}\"\n [ngClass]=\"{ disabled: disabled() }\"\n >\n <rte-icon *ngIf=\"assistiveTextAppearance() === 'error'\" name=\"error\" [size]=\"assistiveTextIconSize\"></rte-icon>\n <rte-icon\n *ngIf=\"assistiveTextAppearance() === 'success'\"\n name=\"check-circle\"\n [size]=\"assistiveTextIconSize\"\n ></rte-icon>\n <span>{{ assistiveTextLabel() }}</span>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, input, signal, OnInit, output } from \"@angular/core\";\nimport { switchHeight, switchWidth } from \"@design-system-rte/core/components/switch/switch.constants\";\nimport { SwitchProps } from \"@design-system-rte/core/components/switch/switch.interface\";\n\nimport { IconComponent } from \"../icon/icon.component\";\n\n@Component({\n selector: \"rte-switch\",\n imports: [CommonModule, IconComponent],\n standalone: true,\n templateUrl: \"./switch.component.html\",\n styleUrl: \"./switch.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SwitchComponent implements OnInit {\n readonly label = input(\"\");\n readonly appearance = input<SwitchProps[\"appearance\"]>(\"brand\");\n readonly showLabel = input(true);\n readonly showIcon = input(true);\n readonly disabled = input(false);\n readonly readOnly = input(false);\n readonly checked = input(false);\n\n readonly stateChange = output<Event>();\n\n switchHeight = switchHeight;\n switchWidth = switchWidth;\n\n readonly isChecked = signal(false);\n\n ngOnInit() {\n this.isChecked.set(this.checked());\n }\n\n handleChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n this.isChecked.set(target.checked);\n this.stateChange.emit(event);\n }\n\n handleClick(event: MouseEvent): void {\n if (this.readOnly() || this.disabled()) {\n event.stopPropagation();\n } else {\n const inputElement = (event.currentTarget as HTMLInputElement).querySelector<HTMLInputElement>(\n 'input[type=\"checkbox\"]',\n );\n if (inputElement) {\n inputElement.checked = !this.isChecked();\n const changeEvent = new Event(\"change\", { bubbles: true });\n Object.defineProperty(changeEvent, \"target\", {\n value: inputElement,\n writable: false,\n });\n this.handleChange(changeEvent);\n }\n }\n }\n}\n","<div\n class=\"switch-container appearance-{{ appearance() }}\"\n [ngClass]=\"{\n disabled: disabled(),\n 'read-only': readOnly(),\n checked: isChecked(),\n }\"\n (click)=\"handleClick($event)\"\n>\n <input\n type=\"checkbox\"\n role=\"switch\"\n class=\"switch\"\n [attr.aria-checked]=\"isChecked()\"\n [attr.aria-label]=\"label()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-readonly]=\"readOnly()\"\n [ariaLabel]=\"label()\"\n [name]=\"label()\"\n [ngClass]=\"{\n disabled: disabled(),\n 'read-only': readOnly(),\n checked: isChecked(),\n }\"\n [style.min-height.px]=\"switchHeight\"\n [style.min-width.px]=\"switchWidth\"\n [disabled]=\"disabled()\"\n [checked]=\"isChecked()\"\n />\n <div class=\"switch-icon-check\" [ngClass]=\"{ checked: isChecked() }\" (click)=\"handleClick($event)\">\n @if (showIcon()) {\n <rte-icon\n class=\"icon\"\n [name]=\"isChecked() ? 'check' : 'close'\"\n [size]=\"16\"\n (click)=\"handleClick($event)\"\n ></rte-icon>\n }\n </div>\n @if (showLabel() && label()) {\n <label class=\"switch-label\" [for]=\"label()\">\n {{ label() }}\n </label>\n }\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n input,\n output,\n viewChildren,\n AfterViewInit,\n OnDestroy,\n computed,\n signal,\n OnChanges,\n SimpleChanges,\n} from \"@angular/core\";\nimport { shouldDisplayBadge as CoreShouldDisplayBadge } from \"@design-system-rte/core/components/badge/badge.utils\";\nimport {\n getSegmentPosition,\n focusNextNotSegmentElement,\n focusPreviousNotSegmentElement,\n focusNextSegmentElement,\n focusPreviousSegmentElement,\n isValidSegmentedControlOptions,\n} from \"@design-system-rte/core/components/segmented-control/segmented-control-utils\";\nimport {\n SegmentOptions,\n SegmentProps,\n} from \"@design-system-rte/core/components/segmented-control/segmented-control.interface\";\nimport { FOCUSABLE_ELEMENTS_QUERY } from \"@design-system-rte/core/constants/dom/dom.constants\";\nimport {\n ARROW_LEFT_KEY,\n ARROW_RIGHT_KEY,\n ENTER_KEY,\n SPACE_KEY,\n TAB_KEY,\n} from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { BadgeComponent } from \"../badge/badge.component\";\nimport { IconComponent } from \"../icon/icon.component\";\n\nconst segmentClass = \"rte-segment\";\nconst segmentSelector = `.${segmentClass}`;\n\n@Component({\n selector: \"rte-segmented-control\",\n imports: [CommonModule, IconComponent, BadgeComponent],\n standalone: true,\n templateUrl: \"./segmented-control.component.html\",\n styleUrl: \"./segmented-control.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SegmentedControlComponent implements OnChanges, AfterViewInit, OnDestroy {\n readonly options = input<SegmentOptions[]>([]);\n readonly change = output<string>();\n readonly selectedSegment = input<string>();\n readonly ariaLabel = input<string>();\n readonly ariaLabelledBy = input<string>();\n\n readonly segmentRefs = viewChildren<ElementRef<HTMLDivElement>>(\"segment\");\n\n readonly sliderLeft = signal(0);\n readonly sliderWidth = signal(0);\n readonly sliderTop = signal(0);\n\n readonly segmentSelectedIndicatorStyle = computed(() => ({\n left: `${this.sliderLeft()}px`,\n top: `${this.sliderTop()}px`,\n width: `${this.sliderWidth()}px`,\n }));\n\n readonly isValidOptions = computed(() => isValidSegmentedControlOptions(this.options()));\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes[\"selectedSegment\"]) {\n this.updateSelectedSegmentIndicator();\n }\n }\n\n ngAfterViewInit() {\n this.updateSelectedSegmentIndicator();\n window.addEventListener(\"resize\", this.updateSelectedSegmentIndicator.bind(this));\n window.addEventListener(\"keydown\", this.onGlobalKeyDown.bind(this));\n\n this.segmentRefs().forEach((segmentElement) => {\n segmentElement.nativeElement.addEventListener(\"focus\", this.focusCurrentSegmentElement.bind(this));\n });\n }\n\n ngOnDestroy() {\n window.removeEventListener(\"resize\", this.updateSelectedSegmentIndicator.bind(this));\n window.removeEventListener(\"keydown\", this.onGlobalKeyDown.bind(this));\n\n this.segmentRefs().forEach((segmentElement) => {\n segmentElement.nativeElement.addEventListener(\"focus\", this.focusCurrentSegmentElement.bind(this));\n });\n }\n\n shouldDisplayBadge(option: SegmentOptions): boolean {\n return CoreShouldDisplayBadge({\n showBadge: !!option.showBadge,\n badgeContent: option.badgeContent,\n badgeCount: option.badgeCount,\n badgeIcon: option.badgeIcon,\n });\n }\n\n selectSegment(id: string) {\n this.change.emit(id);\n }\n\n isSegmentSelected(id: string): boolean {\n return this.selectedSegment() === id;\n }\n\n handleKeyUp(event: KeyboardEvent) {\n event.preventDefault();\n if (event.key === ARROW_RIGHT_KEY || event.key === ARROW_LEFT_KEY) {\n const allSegmentElements =\n Array.from(\n document.activeElement?.parentElement?.parentElement?.querySelectorAll(\n segmentSelector,\n ) as NodeListOf<HTMLElement>,\n ) || [];\n\n const currentActiveSegmentElementIndex = Array.from(allSegmentElements).findIndex(\n (element) => element === document.activeElement,\n );\n\n if (event.key === ARROW_RIGHT_KEY) {\n focusNextSegmentElement(currentActiveSegmentElementIndex, allSegmentElements);\n } else if (event.key === ARROW_LEFT_KEY) {\n focusPreviousSegmentElement(currentActiveSegmentElementIndex, allSegmentElements);\n }\n } else if (event.key === SPACE_KEY || event.key === ENTER_KEY) {\n const target = event.target as HTMLElement;\n const dataId = target.getAttribute(\"data-id\");\n this.selectSegment(dataId || \"\");\n }\n }\n\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === TAB_KEY || event.key === SPACE_KEY || event.key === ENTER_KEY) {\n event.preventDefault();\n }\n if (event.key === TAB_KEY) {\n const allFocusableElements = Array.from(document.querySelectorAll(FOCUSABLE_ELEMENTS_QUERY)) as HTMLElement[];\n const currentActiveElement = document.activeElement;\n const currentIndex = allFocusableElements.indexOf(currentActiveElement as HTMLElement);\n\n if (event.shiftKey) {\n focusPreviousNotSegmentElement(currentIndex, allFocusableElements, segmentClass);\n } else {\n focusNextNotSegmentElement(currentIndex, allFocusableElements, segmentClass);\n }\n }\n }\n\n getSegmentPosition(index: number): SegmentProps[\"position\"] {\n return getSegmentPosition(index, this.options().length);\n }\n\n private updateSelectedSegmentIndicator() {\n const idx = this.options().findIndex((opt) => opt.id === this.selectedSegment());\n const segment = this.segmentRefs()[idx]?.nativeElement;\n\n if (segment) {\n this.sliderWidth.set(segment.offsetWidth);\n this.sliderTop.set(segment.offsetTop);\n this.sliderLeft.set(segment.offsetLeft);\n }\n }\n\n private lastKeydown: string | null = null;\n\n private onGlobalKeyDown = (event: KeyboardEvent) => {\n this.lastKeydown = event.key;\n };\n\n private focusCurrentSegmentElement() {\n if (this.lastKeydown === \"Tab\") {\n const selectedSegmentElement = this.segmentRefs().find((segment) =>\n segment.nativeElement.classList.contains(\"selected\"),\n )?.nativeElement;\n if (selectedSegmentElement) {\n selectedSegmentElement.focus();\n } else {\n this.segmentRefs()[0]?.nativeElement?.focus();\n }\n }\n }\n}\n","<div *ngIf=\"isValidOptions()\" class=\"rte-segmented-control\" role=\"radiogroup\" [attr.aria-label]=\"ariaLabel()\">\n <span class=\"rte-segment-selected-indicator\" [ngStyle]=\"segmentSelectedIndicatorStyle()\"></span>\n <ng-container *ngFor=\"let option of options(); let idx = index\">\n <div class=\"rte-segment-container\" [attr.data-position]=\"getSegmentPosition(idx)\">\n <div\n #segment\n role=\"radio\"\n class=\"rte-segment\"\n tabindex=\"0\"\n [attr.data-id]=\"option.id\"\n [attr.data-segment-type]=\"option.icon ? 'icon' : 'label'\"\n [class.selected]=\"isSegmentSelected(option.id)\"\n [attr.aria-checked]=\"isSegmentSelected(option.id)\"\n [attr.aria-label]=\"option.label\"\n (click)=\"selectSegment(option.id)\"\n (keydown)=\"handleKeyDown($event)\"\n (keyup)=\"handleKeyUp($event)\"\n >\n <rte-icon *ngIf=\"isSegmentSelected(option.id)\" name=\"check-small\" class=\"rte-selected-icon\" [size]=\"24\" />\n <div class=\"rte-segment-content\">\n <ng-container *ngIf=\"option.icon; else label\">\n <rte-icon\n [name]=\"option.icon\"\n [size]=\"24\"\n [appearance]=\"isSegmentSelected(option.id) ? 'filled' : 'outlined'\"\n ></rte-icon>\n </ng-container>\n <ng-template #label>\n <span class=\"rte-segment-label\">{{ option.label }}</span>\n </ng-template>\n </div>\n <rte-badge\n *ngIf=\"shouldDisplayBadge(option)\"\n [count]=\"option.badgeCount\"\n [badgeContent]=\"option.badgeContent!\"\n [icon]=\"option.badgeIcon!\"\n [badgeType]=\"option.badgeType!\"\n [simpleBadge]=\"true\"\n [badgeSize]=\"option.badgeSize!\"\n ></rte-badge>\n </div>\n </div>\n </ng-container>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n signal,\n AfterViewInit,\n} from \"@angular/core\";\nimport { shouldDisplayBadge as coreShouldDisplayBadge } from \"@design-system-rte/core/components/badge/badge.utils\";\nimport { BreadcrumbItemProps } from \"@design-system-rte/core/components/breadcrumbs/breadcrumbs.interface\";\n\nimport { BadgeComponent } from \"../../badge/badge.component\";\nimport { LinkComponent } from \"../../link/link.component\";\nimport { TooltipDirective } from \"../../tooltip/tooltip.directive\";\n\n@Component({\n selector: \"rte-breadcrumb-item\",\n imports: [CommonModule, LinkComponent, TooltipDirective, BadgeComponent],\n standalone: true,\n templateUrl: \"./breadcrumb-item.component.html\",\n styleUrl: \"./breadcrumb-item.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BreadcrumbItemComponent implements AfterViewInit {\n readonly item = input<BreadcrumbItemProps>();\n readonly isLast = input<boolean>(false);\n readonly breadcrumbItemMaxWidth = input<number>();\n readonly initialScrollWidth = signal<number>(Number.MAX_VALUE);\n\n private elementRef = inject(ElementRef);\n\n readonly isEllipsisActive = computed((): boolean => {\n const maxValue = this.breadcrumbItemMaxWidth();\n if (maxValue) {\n return this.initialScrollWidth() >= maxValue;\n }\n return false;\n });\n\n readonly shouldDisplayBadge = computed((): boolean => {\n const item = this.item();\n if (!item) return false;\n const { showBadge, badgeContent, badgeCount, badgeIcon } = item;\n return coreShouldDisplayBadge({\n showBadge: !!showBadge,\n badgeContent,\n badgeCount,\n badgeIcon,\n });\n });\n\n readonly tooltipTriggerStyle = computed(() => {\n return `overflow: hidden; text-overflow: ellipsis; white-space: nowrap; ${this.breadcrumbItemMaxWidth() ? \"max-width:\" + this.breadcrumbItemMaxWidth() + \"px\" : \"\"}`;\n });\n\n readonly linkStyle = computed(() => {\n return `${this.breadcrumbItemMaxWidth() ? \"max-width:\" + this.breadcrumbItemMaxWidth() + \"px\" : \"\"}`;\n });\n\n ngAfterViewInit() {\n const el = this.elementRef.nativeElement.querySelector(\".rte-breadcrumb-item\");\n this.initialScrollWidth.set(el.scrollWidth);\n }\n}\n","<div class=\"rte-breadcrumb-item\">\n @if (isLast()) {\n @if (isEllipsisActive()) {\n <div [rteTooltip]=\"item()!.label\" [rteTooltipPosition]=\"'bottom'\" [style]=\"tooltipTriggerStyle()\">\n <a role=\"link\" aria-current=\"page\" tabindex=\"-1\" [attr.aria-label]=\"item()!.label\" [style]=\"linkStyle()\">\n {{ item()!.label }}\n </a>\n </div>\n <rte-badge\n *ngIf=\"shouldDisplayBadge()\"\n [count]=\"item()!.badgeCount\"\n [badgeContent]=\"item()!.badgeContent!\"\n [icon]=\"item()!.badgeIcon!\"\n [badgeType]=\"item()!.badgeType!\"\n [simpleBadge]=\"true\"\n [badgeSize]=\"item()!.badgeSize!\"\n />\n } @else {\n <a role=\"link\" aria-current=\"page\" tabindex=\"0\" [attr.aria-label]=\"item()!.label\" [style]=\"linkStyle()\">\n {{ item()!.label }}\n </a>\n <rte-badge\n *ngIf=\"shouldDisplayBadge()\"\n [count]=\"item()!.badgeCount\"\n [badgeContent]=\"item()!.badgeContent!\"\n [icon]=\"item()!.badgeIcon!\"\n [badgeType]=\"item()!.badgeType!\"\n [simpleBadge]=\"true\"\n [badgeSize]=\"item()!.badgeSize!\"\n />\n }\n } @else {\n @if (isEllipsisActive()) {\n <div\n [rteTooltip]=\"item()!.label\"\n [rteTooltipPosition]=\"'bottom'\"\n [style]=\"tooltipTriggerStyle()\"\n [style.overflow]=\"'unset'\"\n [rteTooltipShouldFocusTrigger]=\"false\"\n >\n <rte-link [href]=\"item()!.link\" [label]=\"item()!.label\" [subtle]=\"true\" [maxWidth]=\"breadcrumbItemMaxWidth()\" />\n </div>\n <rte-badge\n *ngIf=\"shouldDisplayBadge()\"\n [count]=\"item()!.badgeCount\"\n [badgeContent]=\"item()!.badgeContent!\"\n [icon]=\"item()!.badgeIcon!\"\n [badgeType]=\"item()!.badgeType!\"\n [simpleBadge]=\"true\"\n [badgeSize]=\"item()!.badgeSize!\"\n />\n } @else {\n <rte-link [href]=\"item()!.link\" [label]=\"item()!.label\" [subtle]=\"true\" [maxWidth]=\"breadcrumbItemMaxWidth()\" />\n <rte-badge\n *ngIf=\"shouldDisplayBadge()\"\n [count]=\"item()!.badgeCount\"\n [badgeContent]=\"item()!.badgeContent!\"\n [icon]=\"item()!.badgeIcon!\"\n [badgeType]=\"item()!.badgeType!\"\n [simpleBadge]=\"true\"\n [badgeSize]=\"item()!.badgeSize!\"\n />\n }\n }\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input } from \"@angular/core\";\nimport { BadgeProps } from \"@design-system-rte/core/components/badge/badge.interface\";\nimport { shouldDisplayBadge as coreShouldDisplayBadge } from \"@design-system-rte/core/components/badge/badge.utils\";\nimport { BREADCRUMBS_DEFAULT_ARIA_LABEL } from \"@design-system-rte/core/components/breadcrumbs/breadcrumbs.constants\";\nimport {\n BreadcrumbItemProps,\n BreadcrumbsTruncatedItems,\n} from \"@design-system-rte/core/components/breadcrumbs/breadcrumbs.interface\";\nimport {\n getBreadcrumbsTruncatedItems,\n shouldTruncateBreadcrumbs,\n} from \"@design-system-rte/core/components/breadcrumbs/breadcrumbs.utils\";\n\nimport { BadgeComponent } from \"../badge/badge.component\";\nimport { DropdownModule } from \"../dropdown\";\nimport { IconButtonComponent } from \"../icon-button/icon-button.component\";\n\nimport { BreadcrumbItemComponent } from \"./breadcrumb-item/breadcrumb-item.component\";\n\n@Component({\n selector: \"rte-breadcrumbs\",\n imports: [CommonModule, DropdownModule, IconButtonComponent, BreadcrumbItemComponent, BadgeComponent],\n standalone: true,\n templateUrl: \"./breadcrumbs.component.html\",\n styleUrl: \"./breadcrumbs.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BreadcrumbsComponent {\n readonly items = input<BreadcrumbItemProps[]>([]);\n readonly ariaLabel = input<string>(BREADCRUMBS_DEFAULT_ARIA_LABEL);\n readonly breadcrumbItemMaxWidth = input<number>(150);\n readonly badgeContent = input<BadgeProps[\"content\"]>();\n readonly badgeCount = input<number>();\n readonly badgeIcon = input<string>();\n readonly badgeType = input<BadgeProps[\"badgeType\"]>();\n readonly showBadge = input<boolean>(false);\n readonly badgeSize = input<BadgeProps[\"size\"]>(\"s\");\n\n readonly truncatedItems = computed<BreadcrumbsTruncatedItems | null>(() => {\n if (shouldTruncateBreadcrumbs(this.items())) {\n return getBreadcrumbsTruncatedItems(this.items());\n }\n return null;\n });\n\n readonly shouldDisplayBadge = computed((): boolean => {\n return coreShouldDisplayBadge({\n showBadge: !!this.showBadge(),\n badgeContent: this.badgeContent(),\n badgeCount: this.badgeCount(),\n badgeIcon: this.badgeIcon(),\n });\n });\n}\n","<nav\n class=\"breadcrumbs-container\"\n role=\"navigation\"\n [attr.aria-label]=\"ariaLabel()\"\n [ngClass]=\"{ truncated: truncatedItems()?.truncated?.length }\"\n>\n @if (truncatedItems()?.truncated?.length) {\n <rte-breadcrumb-item [item]=\"truncatedItems()!.root\" [breadcrumbItemMaxWidth]=\"breadcrumbItemMaxWidth()\" />\n <span aria-hidden=\"true\" class=\"separator\">/</span>\n <span class=\"breadcrumb-item\" rteDropdown [rteDropdownOffset]=\"8\">\n <rte-icon-button\n rteDropdownTrigger\n name=\"more-horiz\"\n role=\"menu\"\n variant=\"neutral\"\n aria-label=\"More items\"\n data-testid=\"show-more\"\n tabindex=\"-1\"\n [compactSpacing]=\"true\"\n />\n <rte-badge\n *ngIf=\"shouldDisplayBadge()\"\n [count]=\"badgeCount()\"\n [simpleBadge]=\"true\"\n [badgeContent]=\"badgeContent()!\"\n [icon]=\"badgeIcon()!\"\n [badgeType]=\"badgeType()!\"\n [badgeSize]=\"badgeSize()!\"\n />\n <rte-dropdown-menu [items]=\"truncatedItems()?.truncated ?? []\" />\n </span>\n <span aria-hidden=\"true\" class=\"separator\">/</span>\n @for (item of truncatedItems()!.remaining; track item.link; let i = $index) {\n <rte-breadcrumb-item\n [item]=\"item\"\n [breadcrumbItemMaxWidth]=\"breadcrumbItemMaxWidth()\"\n [isLast]=\"i === truncatedItems()!.remaining.length - 1\"\n />\n @if (i < truncatedItems()!.remaining.length - 1) {\n <span aria-hidden=\"true\" class=\"separator\">/</span>\n }\n }\n } @else {\n @for (item of items(); track item.link; let i = $index) {\n <rte-breadcrumb-item\n [item]=\"item\"\n [breadcrumbItemMaxWidth]=\"breadcrumbItemMaxWidth()\"\n [isLast]=\"i === items().length - 1\"\n />\n @if (i < items().length - 1) {\n <span aria-hidden=\"true\" class=\"separator\">/</span>\n }\n }\n }\n</nav>\n","import { CommonModule } from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n Component,\n input,\n output,\n signal,\n SimpleChanges,\n OnInit,\n OnChanges,\n computed,\n} from \"@angular/core\";\nimport { BannerPosition, BannerType } from \"@design-system-rte/core/components/banner/banner.interface\";\n\nimport { ButtonComponent } from \"../button/button.component\";\nimport { IconComponent } from \"../icon/icon.component\";\nimport { IconButtonComponent } from \"../icon-button/icon-button.component\";\n\n@Component({\n selector: \"rte-banner\",\n imports: [CommonModule, IconComponent, IconButtonComponent, ButtonComponent],\n standalone: true,\n templateUrl: \"./banner.component.html\",\n styleUrl: \"./banner.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BannerComponent implements OnInit, OnChanges {\n readonly type = input<BannerType>(\"info\");\n readonly message = input.required<string>();\n readonly position = input<BannerPosition>(\"push\");\n readonly title = input<string>();\n readonly closable = input<boolean>(false);\n readonly isOpen = input<boolean>(true);\n readonly actionLabel = input<string>();\n\n readonly click = output<void>();\n\n readonly visible = signal(false);\n readonly rendering = signal(false);\n\n readonly close = output<void>();\n\n readonly iconTypeMap: Record<string, string> = {\n info: \"info\",\n error: \"dangerous\",\n success: \"check-circle\",\n warning: \"warning\",\n };\n\n readonly iconName = computed(() => {\n return this.iconTypeMap[this.type()];\n });\n\n ngOnInit() {\n this.visible.set(this.isOpen());\n this.rendering.set(this.isOpen());\n if (this.closable() === false && this.position() === \"overlay\") {\n console.warn(\"Banner: 'closable' and 'close' props must be set when 'position' has 'overlay' value.\");\n return;\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes[\"isOpen\"]) {\n if (this.isOpen()) this.openBanner();\n else {\n this.closeBanner();\n }\n }\n }\n\n clickAction() {\n this.click.emit();\n }\n\n closeBanner() {\n this.visible.set(false);\n setTimeout(() => {\n this.rendering.set(false);\n this.close.emit();\n }, 200);\n }\n\n private openBanner() {\n if (this.rendering()) return;\n this.rendering.set(true);\n requestAnimationFrame(() => {\n requestAnimationFrame(() => this.visible.set(true));\n });\n }\n}\n","<section\n *ngIf=\"rendering()\"\n class=\"rte-banner-container {{ type() }} {{ position() }}\"\n class=\"rte-banner\"\n [ngClass]=\"{ open: visible(), close: !visible() }\"\n [attr.role]=\"type() === 'error' ? 'alert' : 'status'\"\n>\n <div class=\"rte-banner-icon\">\n <rte-icon [name]=\"iconName()\" [size]=\"32\" />\n </div>\n <div class=\"rte-banner-content\">\n <span *ngIf=\"title()\" class=\"rte-banner-title\">{{ title() }}</span>\n <div *ngIf=\"message()\" class=\"rte-banner-message\">\n <span>{{ message() }}</span>\n </div>\n </div>\n <button\n *ngIf=\"actionLabel()\"\n rteButton\n rteButtonVariant=\"text\"\n rteButtonSize=\"s\"\n [attr.aria-label]=\"actionLabel()!\"\n (click)=\"clickAction()\"\n >\n {{ actionLabel() }}\n </button>\n <div *ngIf=\"closable()\" class=\"rte-banner-close-icon\">\n <rte-icon-button name=\"close\" variant=\"neutral\" ariaLabel=\"close banner\" (clickEvent)=\"closeBanner()\" />\n </div>\n</section>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input, output } from \"@angular/core\";\nimport { cardSize } from \"@design-system-rte/core/components/card/card.constats\";\nimport { CardType } from \"@design-system-rte/core/components/card/card.interface\";\nimport { Size } from \"@design-system-rte/core/components/common/common-types\";\nimport { ENTER_KEY, SPACE_KEY } from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\n@Component({\n selector: \"rte-card\",\n imports: [CommonModule],\n standalone: true,\n templateUrl: \"./card.component.html\",\n styleUrl: \"./card.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CardComponent {\n readonly size = input<Size>(\"m\");\n readonly cardType = input<CardType>(\"default\");\n readonly clickable = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n\n readonly ariaLabel = input<string | undefined>(undefined);\n readonly ariaLabelledby = input<string | undefined>(undefined);\n readonly ariaRole = input<string | undefined>(undefined);\n\n readonly cardClicked = output<void>();\n\n readonly cardWidth = computed(() => `${cardSize[this.size()]}px`);\n\n readonly tabIndex = computed(() => (this.clickable() ? 0 : -1));\n\n onClick(): void {\n if (!this.disabled() && this.clickable()) {\n this.cardClicked.emit();\n }\n }\n\n onKeyDown(event: KeyboardEvent): void {\n if (!this.disabled() && this.clickable()) {\n if ([ENTER_KEY, SPACE_KEY].includes(event.key)) {\n event.preventDefault();\n this.cardClicked.emit();\n }\n }\n }\n}\n","<div\n class=\"card card-{{ cardType() }}\"\n [style.width]=\"cardWidth()\"\n [attr.disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-role]=\"ariaRole()\"\n [ngClass]=\"{ clickable: clickable() }\"\n [tabIndex]=\"tabIndex()\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n>\n <ng-content />\n</div>\n","import { inject, Injectable, Renderer2, RendererFactory2 } from \"@angular/core\";\nimport { FOCUSABLE_ELEMENTS_QUERY } from \"@design-system-rte/core/constants/dom/dom.constants\";\n\n@Injectable({ providedIn: \"root\" })\nexport class FocusTrapService {\n private keyUnlisten?: () => void;\n private renderer: Renderer2;\n private activeTrapElement: HTMLElement | null = null;\n private previouslyFocusedElement: HTMLElement | null = null;\n private focusable: HTMLElement[] = [];\n\n private rendererFactory = inject(RendererFactory2);\n\n constructor() {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n activate(element: HTMLElement) {\n this.previouslyFocusedElement = document.activeElement as HTMLElement;\n\n this.activeTrapElement = element;\n\n this.focusable = this.getFocusableElements(element);\n\n this.focusFirstElement();\n\n this.keyUnlisten = this.renderer.listen(element, \"keydown\", (event: KeyboardEvent) => {\n if (event.key === \"Tab\") {\n this.handleTab(event, this.focusable);\n }\n });\n }\n\n deactivate() {\n if (this.keyUnlisten) this.keyUnlisten();\n this.keyUnlisten = undefined;\n\n if (this.previouslyFocusedElement) {\n this.previouslyFocusedElement.focus();\n }\n\n this.activeTrapElement = null;\n }\n\n private focusFirstElement() {\n if (!this.activeTrapElement) return;\n\n const focusable = this.activeTrapElement.querySelectorAll(FOCUSABLE_ELEMENTS_QUERY);\n if (focusable.length > 0) (focusable[0] as HTMLElement).focus();\n }\n\n private handleTab(event: KeyboardEvent, focusable: HTMLElement[]) {\n if (!this.activeTrapElement || focusable.length === 0) return;\n\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n\n const current = document.activeElement as HTMLElement;\n\n if (event.shiftKey && current === first) {\n last.focus();\n event.preventDefault();\n } else if (!event.shiftKey && current === last) {\n first.focus();\n event.preventDefault();\n }\n }\n\n private getFocusableElements(container: HTMLElement): HTMLElement[] {\n return Array.from(container.querySelectorAll<HTMLElement>(FOCUSABLE_ELEMENTS_QUERY));\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, ElementRef, inject, input, output, AfterViewInit, OnDestroy } from \"@angular/core\";\nimport { PopoverAlignment, PopoverPosition } from \"@design-system-rte/core/components/popover/popover.interface\";\n\nimport { FocusTrapService } from \"../../services/focus-trap.service\";\nimport { ButtonComponent } from \"../button/button.component\";\n\n@Component({\n selector: \"rte-popover\",\n imports: [CommonModule, ButtonComponent],\n standalone: true,\n templateUrl: \"./popover.component.html\",\n styleUrl: \"./popover.component.scss\",\n})\nexport class PopoverComponent implements AfterViewInit, OnDestroy {\n readonly primaryButtonLabel = input.required<string>();\n readonly position = input.required<Exclude<PopoverPosition, \"auto\">>();\n readonly alignment = input<PopoverAlignment>();\n readonly content = input<string>();\n readonly arrow = input<boolean>();\n readonly title = input<string>();\n readonly secondaryButtonLabel = input<string>();\n readonly isOpen = input<boolean>(false);\n readonly coordinates = input<{ top: number; left: number }>({ top: 0, left: 0 });\n\n readonly clickPrimaryButton = output<void>();\n readonly clickSecondaryButton = output<void>();\n\n private elementRef = inject(ElementRef);\n\n private focusTrap = inject(FocusTrapService);\n\n constructor() {}\n\n ngAfterViewInit() {\n const native = this.elementRef?.nativeElement;\n if (native) {\n this.focusTrap.activate(native);\n }\n }\n\n ngOnDestroy() {\n this.focusTrap.deactivate();\n }\n\n handleClickPrimaryButton() {\n this.clickPrimaryButton.emit();\n }\n handleClickSecondaryButton() {\n this.clickSecondaryButton.emit();\n }\n}\n","<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","import {\n AfterViewInit,\n ComponentRef,\n Directive,\n ElementRef,\n HostListener,\n inject,\n input,\n OnDestroy,\n output,\n Renderer2,\n ViewContainerRef,\n} from \"@angular/core\";\nimport { POPOVER_GAP, POPOVER_GAP_ARROW } from \"@design-system-rte/core/components/popover/popover.constants\";\nimport {\n getAutoAlignment,\n getAutoPlacement,\n getCoordinates,\n} from \"@design-system-rte/core/components/utils/auto-placement\";\nimport { ESCAPE_KEY } from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { OverlayService } from \"../../services/overlay.service\";\n\nimport { PopoverComponent } from \"./popover.component\";\n\n@Directive({\n selector: \"[rtePopover]\",\n standalone: true,\n})\nexport class PopoverDirective implements AfterViewInit, OnDestroy {\n readonly rtePopoverContent = input.required<string>();\n readonly rtePopoverTitle = input<string>();\n readonly rtePopoverPosition = input(\"auto\");\n readonly rtePopoverAlignment = input(\"center\");\n readonly rtePopoverArrow = input(true);\n readonly rtePopoverPrimaryButtonLabel = input<string>();\n readonly rtePopoverSecondaryButtonLabel = input<string>();\n readonly clickPrimaryButton = output<void>();\n readonly clickSecondaryButton = output<void>();\n readonly rtePopoverCloseOnClickOutside = input<boolean>(true);\n readonly rtePopoverCloseOnEscape = input<boolean>(true);\n\n private popoverRef: ComponentRef<PopoverComponent> | null = null;\n private hostElement: HTMLElement;\n private overlayService: OverlayService;\n\n private elementRef = inject(ElementRef);\n private viewContainerRef = inject(ViewContainerRef);\n private renderer = inject(Renderer2);\n\n private subPrimary?: { unsubscribe(): void };\n private subSecondary?: { unsubscribe(): void };\n\n private onScroll = () => this.positionPopover();\n private onMouseDown = (e: MouseEvent) => this.handleClickAway(e);\n private onKeyDown = (e: KeyboardEvent) => this.handleKeydown(e);\n\n @HostListener(\"click\")\n onClick(): void {\n if (!this.popoverRef) {\n this.showPopover();\n }\n }\n\n constructor() {\n this.overlayService = inject(OverlayService);\n this.hostElement = this.elementRef.nativeElement;\n this.hostElement.setAttribute(\"tabindex\", \"0\");\n }\n\n ngAfterViewInit() {\n window.addEventListener(\"scroll\", this.onScroll);\n document.addEventListener(\"mousedown\", this.onMouseDown);\n document.addEventListener(\"keydown\", this.onKeyDown);\n }\n\n ngOnDestroy() {\n window.removeEventListener(\"scroll\", this.onScroll);\n document.removeEventListener(\"mousedown\", this.onMouseDown);\n document.removeEventListener(\"keydown\", this.onKeyDown);\n this.destroyPopover();\n }\n\n showPopover(): void {\n if (this.popoverRef) {\n this.popoverRef.destroy();\n }\n this.popoverRef = this.overlayService.create(PopoverComponent, this.viewContainerRef);\n\n this.subPrimary?.unsubscribe();\n this.subSecondary?.unsubscribe();\n this.subPrimary = this.popoverRef.instance.clickPrimaryButton.subscribe(() => this.handleClickPrimaryButton());\n this.subSecondary = this.popoverRef.instance.clickSecondaryButton.subscribe(() =>\n this.handleClickSecondaryButton(),\n );\n\n this.assignDirectiveToComponent();\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n this.positionPopover();\n });\n });\n }\n\n private handleClickAway(event: MouseEvent) {\n const elements = [this.hostElement, this.popoverRef?.location.nativeElement] as HTMLElement[];\n if (elements.some((element) => !element)) return;\n const shouldIgnore = elements.some((element) => element.contains(event.target as Node));\n if (!shouldIgnore && this.rtePopoverCloseOnClickOutside()) {\n this.hidePopover();\n }\n }\n\n private handleKeydown(event: KeyboardEvent) {\n if (event.key === ESCAPE_KEY && this.rtePopoverCloseOnEscape()) {\n event.preventDefault();\n this.hidePopover();\n }\n }\n\n private assignDirectiveToComponent(): void {\n if (this.popoverRef) {\n const popoverElement = this.popoverRef.location.nativeElement.children[0];\n\n const position =\n this.rtePopoverPosition() === \"auto\"\n ? getAutoPlacement(\n this.hostElement,\n popoverElement,\n \"top\",\n this.rtePopoverArrow() ? POPOVER_GAP_ARROW : POPOVER_GAP,\n )\n : this.rtePopoverPosition();\n\n this.popoverRef.setInput(\"title\", this.rtePopoverTitle());\n this.popoverRef.setInput(\"content\", this.rtePopoverContent());\n this.popoverRef.setInput(\"position\", position);\n this.popoverRef.setInput(\"alignment\", this.rtePopoverAlignment());\n this.popoverRef.setInput(\"arrow\", this.rtePopoverArrow());\n this.popoverRef.setInput(\"primaryButtonLabel\", this.rtePopoverPrimaryButtonLabel());\n this.popoverRef.setInput(\"secondaryButtonLabel\", this.rtePopoverSecondaryButtonLabel());\n }\n }\n\n private handleClickPrimaryButton() {\n if (!this.popoverRef) return;\n this.clickPrimaryButton.emit();\n this.hidePopover();\n }\n\n private handleClickSecondaryButton() {\n this.clickSecondaryButton?.emit();\n this.hidePopover();\n }\n\n private positionPopover(): void {\n if (this.popoverRef) {\n const popoverElement = this.popoverRef.location.nativeElement.children[0];\n\n const autoAlignment = getAutoAlignment(this.hostElement, popoverElement, this.popoverRef.instance.position());\n this.popoverRef.setInput(\"alignment\", autoAlignment);\n\n const positions = getCoordinates(\n this.popoverRef.instance.position(),\n this.hostElement,\n popoverElement,\n this.rtePopoverArrow() ? POPOVER_GAP_ARROW : POPOVER_GAP,\n autoAlignment,\n );\n\n this.renderer.setStyle(this.hostElement, \"position\", \"relative\");\n\n this.renderer.setStyle(popoverElement, \"position\", \"absolute\");\n\n this.renderer.setStyle(popoverElement, \"top\", `${positions.top}px`);\n this.renderer.setStyle(popoverElement, \"left\", `${positions.left}px`);\n this.popoverRef.setInput(\"isOpen\", true);\n }\n }\n\n private hidePopover(): void {\n if (this.popoverRef) {\n this.popoverRef.setInput(\"isOpen\", false);\n\n setTimeout(() => this.destroyPopover(), 200);\n }\n }\n\n private destroyPopover(): void {\n if (this.popoverRef) {\n this.subPrimary?.unsubscribe();\n this.subSecondary?.unsubscribe();\n this.subPrimary = undefined;\n this.subSecondary = undefined;\n this.popoverRef.destroy();\n this.popoverRef = null;\n this.overlayService.destroy();\n }\n }\n}\n","import { Directive, ElementRef, HostListener, inject, output } from \"@angular/core\";\n\n@Directive({\n selector: \"[rteModalTrigger]\",\n standalone: true,\n})\nexport class ModalTriggerDirective {\n readonly elementRef = inject(ElementRef);\n\n readonly modalTriggerKeyDown = output<KeyboardEvent>();\n\n readonly modalTriggerClicked = output<Event>();\n\n @HostListener(\"click\", [\"$event\"])\n onModalTriggerClicked(event: Event): void {\n this.modalTriggerClicked.emit(event);\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n onKeyDown(event: KeyboardEvent): void {\n this.modalTriggerKeyDown.emit(event);\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport {\n Component,\n ElementRef,\n input,\n TemplateRef,\n OnDestroy,\n viewChild,\n AfterViewInit,\n output,\n inject,\n signal,\n} from \"@angular/core\";\nimport { Size } from \"@design-system-rte/core/components/common/common-types\";\nimport { IconSize } from \"@design-system-rte/core/components/icon/icon.constants\";\n\nimport { FocusTrapService } from \"../../services/focus-trap.service\";\nimport { ButtonComponent } from \"../button/button.component\";\nimport { DividerComponent } from \"../divider/divider.component\";\nimport { IconComponent } from \"../icon/icon.component\";\nimport { IconButtonComponent } from \"../icon-button/icon-button.component\";\n\n@Component({\n selector: \"rte-modal\",\n imports: [CommonModule, IconButtonComponent, IconComponent, DividerComponent],\n standalone: true,\n templateUrl: \"./modal.component.html\",\n styleUrl: \"./modal.component.scss\",\n})\nexport class ModalComponent implements AfterViewInit, OnDestroy {\n readonly id = input<string | undefined>();\n readonly icon = input<string | undefined>();\n readonly iconAppearance = input<\"outlined\" | \"filled\">(\"outlined\");\n readonly title = input<string>();\n readonly description = input<string>();\n readonly secondaryButtonLabel = input<string>();\n readonly isOpen = input<boolean>(false);\n readonly size = input<Size>(\"m\");\n readonly ariaDescribedby = input<string | undefined>(undefined);\n\n readonly primaryButton = input<TemplateRef<ButtonComponent> | null>(null);\n readonly secondaryButton = input<TemplateRef<ButtonComponent> | null>(null);\n readonly customContent = input<TemplateRef<unknown> | null>(null);\n\n private readonly elementRef = viewChild<ElementRef<HTMLDivElement>>(\"modal\");\n\n private focusTrap = inject(FocusTrapService);\n\n constructor() {}\n\n readonly closeModal = output<void>();\n\n readonly iconSize = signal(IconSize[\"xl\"]);\n\n ngAfterViewInit() {\n const native = this.elementRef()?.nativeElement;\n if (native) {\n this.focusTrap.activate(native);\n }\n }\n\n ngOnDestroy() {\n this.focusTrap.deactivate();\n }\n\n onClose() {\n this.closeModal.emit();\n }\n}\n","<div class=\"rte-modal-wrapper\">\n <div class=\"rte-modal-backdrop\" [attr.data-open]=\"isOpen()\"></div>\n <dialog\n #modal\n class=\"rte-modal-container\"\n [attr.aria-modal]=\"true\"\n [attr.aria-labelledby]=\"id() + '-modal-title'\"\n [attr.aria-describedby]=\"description() ? id() + '-modal-desc' : ariaDescribedby()\"\n [attr.data-size]=\"size()\"\n [attr.data-open]=\"isOpen()\"\n >\n <div class=\"rte-modal-header\">\n <div class=\"rte-modal-header-text\">\n <rte-icon *ngIf=\"icon()\" [name]=\"icon() ?? ''\" [size]=\"iconSize()\" [appearance]=\"iconAppearance()\" />\n <h2 class=\"rte-modal-title\" [id]=\"id() + '-modal-title'\">\n {{ title() }}\n </h2>\n <rte-icon-button\n data-testid=\"modal-close-button\"\n name=\"close\"\n size=\"l\"\n class=\"close-icon\"\n variant=\"neutral\"\n [ariaLabel]=\"'Close modal ' + id()\"\n (clickEvent)=\"onClose()\"\n />\n </div>\n <rte-divider />\n </div>\n <div *ngIf=\"description()\" class=\"rte-modal-content\">\n <p class=\"rte-modal-content-description\" [id]=\"id() + '-modal-desc'\">\n {{ description() }}\n </p>\n <ng-container [ngTemplateOutlet]=\"customContent()\"></ng-container>\n </div>\n <div class=\"rte-modal-footer\">\n <ng-container [ngTemplateOutlet]=\"secondaryButton()\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"primaryButton()\"></ng-container>\n </div>\n </dialog>\n</div>\n","import {\n AfterContentInit,\n ComponentRef,\n contentChild,\n Directive,\n ElementRef,\n inject,\n input,\n OnDestroy,\n ViewContainerRef,\n} from \"@angular/core\";\nimport { Size } from \"@design-system-rte/core/components/common/common-types\";\nimport { ESCAPE_KEY } from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { OverlayService } from \"../../services/overlay.service\";\nimport { ButtonComponent } from \"../button/button.component\";\n\nimport { ModalTriggerDirective } from \"./modal-trigger/modal-trigger.directive\";\nimport { ModalComponent } from \"./modal.component\";\n\n@Directive({\n selector: \"[rteModal]\",\n standalone: true,\n})\nexport class ModalDirective implements AfterContentInit, OnDestroy {\n private modalCompRef: ComponentRef<ModalComponent> | null = null;\n private hostElement: HTMLElement;\n private overlayService: OverlayService;\n\n private elementRef = inject(ElementRef);\n private viewContainerRef = inject(ViewContainerRef);\n\n readonly trigger = contentChild(ModalTriggerDirective);\n\n readonly rteModalId = input<string | undefined>();\n readonly rteModalIcon = input<string | undefined>();\n readonly rteModalIconAppearance = input<\"outlined\" | \"filled\">(\"outlined\");\n readonly rteModalTitle = input<string>();\n readonly rteModalDescription = input<string>();\n readonly rteModalIsOpen = input<boolean>(false);\n readonly rteModalSize = input<Size>(\"m\");\n readonly rteModalAriaDescribedby = input<string | undefined>();\n readonly rteModalCloseOnClickOutside = input<boolean>(true);\n\n readonly primaryButton = contentChild.required<ButtonComponent>(\"primaryButton\");\n readonly secondaryButton = contentChild<ButtonComponent>(\"secondaryButton\");\n readonly customContent = contentChild<unknown>(\"customContent\");\n\n private modalElement: HTMLElement | null = null;\n\n private onMouseDown = (e: MouseEvent) => this.handleClickAway(e);\n private onKeyDown = (e: KeyboardEvent) => this.handleKeydown(e);\n\n constructor() {\n this.overlayService = inject(OverlayService);\n this.hostElement = this.elementRef.nativeElement;\n }\n\n onTrigger(): void {\n this.showModal();\n }\n\n ngAfterContentInit() {\n document.addEventListener(\"mousedown\", this.onMouseDown);\n document.addEventListener(\"keydown\", this.onKeyDown);\n if (this.trigger()) {\n this.trigger()?.modalTriggerClicked.subscribe(() => {\n this.onTrigger();\n });\n }\n }\n\n ngOnDestroy() {\n this.destroyModal();\n }\n\n showModal(): void {\n if (this.modalCompRef) {\n this.modalCompRef.destroy();\n }\n\n if (!this.primaryButton()) {\n console.warn(\"Primary button required, add it as child to the modal directive.\");\n return;\n }\n\n this.modalCompRef = this.overlayService.create(ModalComponent, this.viewContainerRef, true);\n\n this.modalCompRef?.instance.closeModal.subscribe(() => {\n this.closeModal();\n });\n\n this.modalElement = this.modalCompRef?.location.nativeElement.children[0].children[1];\n\n this.assignInputsValues();\n }\n\n private handleKeydown(event: KeyboardEvent) {\n if (event.key === ESCAPE_KEY && this.rteModalCloseOnClickOutside()) {\n event.preventDefault();\n this.closeModal();\n }\n }\n\n private assignInputsValues(): void {\n if (this.modalCompRef) {\n this.modalCompRef.setInput(\"id\", this.rteModalId());\n this.modalCompRef.setInput(\"icon\", this.rteModalIcon());\n this.modalCompRef.setInput(\"iconAppearance\", this.rteModalIconAppearance());\n this.modalCompRef.setInput(\"title\", this.rteModalTitle());\n this.modalCompRef.setInput(\"description\", this.rteModalDescription());\n this.modalCompRef.setInput(\"size\", this.rteModalSize());\n this.modalCompRef.setInput(\"ariaDescribedby\", this.rteModalAriaDescribedby());\n this.modalCompRef.setInput(\"primaryButton\", this.primaryButton());\n this.modalCompRef.setInput(\"secondaryButton\", this.secondaryButton());\n this.modalCompRef.setInput(\"customContent\", this.customContent());\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n this.modalCompRef?.setInput(\"isOpen\", true);\n });\n });\n }\n }\n\n private handleClickAway(event: MouseEvent) {\n const elements = [this.hostElement, this.modalElement] as HTMLElement[];\n if (elements.some((element) => !element)) return;\n const shouldIgnore = elements.some((element) => element.contains(event.target as Node));\n if (!shouldIgnore && this.rteModalCloseOnClickOutside()) {\n this.closeModal();\n }\n }\n\n private closeModal(): void {\n if (this.modalCompRef) {\n this.modalCompRef.setInput(\"isOpen\", false);\n\n setTimeout(() => this.destroyModal(), 200);\n }\n }\n\n private destroyModal(): void {\n if (this.modalCompRef) {\n this.modalCompRef.destroy();\n this.modalCompRef = null;\n this.overlayService.destroy();\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\n\nimport { ModalTriggerDirective } from \"./modal-trigger/modal-trigger.directive\";\nimport { ModalDirective } from \"./modal.directive\";\n\n@NgModule({\n imports: [ModalDirective, ModalTriggerDirective],\n exports: [ModalDirective, ModalTriggerDirective],\n})\nexport class ModalModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input, output, signal } from \"@angular/core\";\nimport {\n APPEARANCE_CONFIG,\n SEARCHBAR_BORDER_RADIUS,\n SEARCHBAR_BUTTON_HEIGHT_COMPACT,\n SEARCHBAR_BUTTON_WIDTH,\n SEARCHBAR_PADDING_LEFT,\n} from \"@design-system-rte/core/components/searchbar/searchbar.constants\";\nimport { SearchBarAppearance } from \"@design-system-rte/core/components/searchbar/searchbar.interface\";\nimport { ENTER_KEY } from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { IconButtonComponent } from \"../icon-button/icon-button.component\";\nimport { BaseTextInputComponent } from \"../text-input/base-text-input/base-text-input.component\";\n\n@Component({\n selector: \"rte-searchbar\",\n imports: [CommonModule, BaseTextInputComponent, IconButtonComponent],\n standalone: true,\n templateUrl: \"./searchbar.component.html\",\n styleUrl: \"./searchbar.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SearchbarComponent {\n readonly id = input<string>();\n readonly label = input<string>(\"Rechercher\");\n readonly disabled = input<boolean>(false);\n readonly showResetButton = input<boolean>(true);\n readonly appearance = input<SearchBarAppearance>(\"primary\");\n readonly compactSpacing = input<boolean>(false);\n readonly value = input<string>(\"\");\n readonly assistiveText = input<string>(\"\");\n\n readonly valueChange = output<string>();\n readonly searchEvent = output<string | undefined>();\n readonly clear = output<void>();\n\n readonly hasFocusWithin = signal<boolean>(false);\n\n readonly appearanceConfig = computed(() => APPEARANCE_CONFIG[this.appearance()]);\n\n readonly placeholder = computed(() => (this.disabled() ? \"Recherche indisponible\" : this.label()));\n\n readonly textInputStyles = computed(() => {\n const styles: Record<string, string> = {};\n const hasLeftIcon = this.appearanceConfig().showLeftIcon;\n\n if (this.appearance() === \"primary\") {\n styles[\"border-right\"] = \"none\";\n styles[\"border-radius\"] = `${SEARCHBAR_BORDER_RADIUS} 0 0 ${SEARCHBAR_BORDER_RADIUS}`;\n if (!hasLeftIcon) {\n styles[\"padding-left\"] = SEARCHBAR_PADDING_LEFT;\n }\n } else if (this.appearance() === \"secondary\") {\n styles[\"border-radius\"] = SEARCHBAR_BORDER_RADIUS;\n }\n\n return styles;\n });\n\n readonly searchButtonStyles = computed(() => {\n const styles: Record<string, string> = {\n width: SEARCHBAR_BUTTON_WIDTH,\n \"border-radius\": `0 ${SEARCHBAR_BORDER_RADIUS} ${SEARCHBAR_BORDER_RADIUS} 0`,\n display: \"flex\",\n \"justify-content\": \"center\",\n };\n if (this.compactSpacing()) {\n styles[\"height\"] = SEARCHBAR_BUTTON_HEIGHT_COMPACT;\n }\n return styles;\n });\n\n handleChange(value: string): void {\n this.valueChange.emit(value);\n }\n\n handleSearch(): void {\n this.searchEvent.emit(this.value());\n }\n\n handleEnter(event: KeyboardEvent): void {\n if (event.key === ENTER_KEY) {\n this.handleSearch();\n }\n }\n\n handleClear(): void {\n this.valueChange.emit(\"\");\n this.clear.emit();\n }\n\n handleFocusIn(): void {\n this.hasFocusWithin.set(true);\n }\n\n handleFocusOut(event: FocusEvent): void {\n const next = event.relatedTarget as Node | null;\n const currentTarget = event.currentTarget as Node;\n if (next && currentTarget.contains(next)) {\n return;\n }\n this.hasFocusWithin.set(false);\n }\n}\n","<div class=\"searchbar-container\" role=\"search\" [ngClass]=\"appearance()\">\n <div\n class=\"text-input-wrapper\"\n [attr.data-disabled]=\"disabled()\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut($event)\"\n >\n <rte-base-text-input\n rightIconAction=\"clean\"\n autocomplete=\"off\"\n [id]=\"id() ?? ''\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [value]=\"value()\"\n [showRightIcon]=\"showResetButton()\"\n [assistiveTextLabel]=\"assistiveText()\"\n [compactSpacing]=\"compactSpacing()\"\n [leftIcon]=\"appearanceConfig().showLeftIcon ? 'search' : null\"\n [customStyle]=\"textInputStyles()\"\n [highlighted]=\"hasFocusWithin()\"\n (valueChange)=\"handleChange($event)\"\n (rightIconClick)=\"handleClear()\"\n >\n @if (appearanceConfig().showSearchButton) {\n <rte-icon-button\n baseTextInputRightSlot\n name=\"search\"\n size=\"m\"\n variant=\"primary\"\n appearance=\"filled\"\n class=\"search-button\"\n [ariaLabel]=\"label()\"\n [disabled]=\"disabled()\"\n [compactSpacing]=\"compactSpacing()\"\n [customStyle]=\"searchButtonStyles()\"\n (clickEvent)=\"handleSearch()\"\n />\n }\n </rte-base-text-input>\n </div>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n OnDestroy,\n viewChild,\n} from \"@angular/core\";\nimport { sideNavCollapsedSize, sideNavPanelSize } from \"@design-system-rte/core/components/side-nav/side-nav.constants\";\nimport { SideNavAppearance } from \"@design-system-rte/core/components/side-nav/side-nav.interface\";\n\ntype SideNavSize = \"s\" | \"m\" | \"l\";\n\n@Component({\n selector: \"rte-base-side-nav\",\n imports: [CommonModule],\n standalone: true,\n templateUrl: \"./base-side-nav.component.html\",\n styleUrl: \"./base-side-nav.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BaseSideNavComponent implements AfterViewInit, OnDestroy {\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly contentRef = viewChild<ElementRef<HTMLDivElement>>(\"contentRef\");\n\n private readonly collapsedSize = sideNavCollapsedSize;\n private readonly panelSize = sideNavPanelSize;\n\n readonly size = input<SideNavSize>(\"m\");\n readonly appearance = input<SideNavAppearance>(\"brand\");\n readonly collapsed = input<boolean>(false);\n readonly showHeader = input<boolean>(true);\n readonly showFooter = input<boolean>(true);\n\n readonly minWidth = computed<string>(() => {\n return this.collapsed() ? `${this.collapsedSize}px` : `${this.panelSize[this.size()]}px`;\n });\n\n private resizeObserver?: ResizeObserver;\n private resizeHandler?: () => void;\n\n ngAfterViewInit(): void {\n this.setupResizeObserver();\n }\n\n ngOnDestroy(): void {\n this.cleanupResizeObserver();\n }\n\n private setupResizeObserver(): void {\n const containerEl = this.elementRef.nativeElement;\n const contentEl = this.contentRef()?.nativeElement;\n if (!containerEl || !contentEl) {\n return;\n }\n\n const setHeightVar = (): void => {\n const height = contentEl.offsetHeight;\n containerEl.style.setProperty(\"--content-height\", `${height}px`);\n };\n\n this.resizeHandler = setHeightVar;\n setHeightVar();\n\n this.resizeObserver = new ResizeObserver(() => {\n setHeightVar();\n });\n this.resizeObserver.observe(contentEl);\n\n window.addEventListener(\"resize\", setHeightVar);\n }\n\n private cleanupResizeObserver(): void {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = undefined;\n }\n if (this.resizeHandler) {\n window.removeEventListener(\"resize\", this.resizeHandler);\n this.resizeHandler = undefined;\n }\n }\n}\n","<div class=\"side-nav-container\">\n <nav class=\"side-nav\" [ngClass]=\"{ collapsed: collapsed(), appearance: appearance() }\" [style.min-width]=\"minWidth()\">\n @if (showHeader()) {\n <div class=\"side-nav-header\">\n <ng-content select=\"[side-nav-header]\"></ng-content>\n </div>\n }\n\n <div class=\"side-nav-body\">\n <ng-content select=\"[side-nav-body]\"></ng-content>\n </div>\n\n @if (showFooter()) {\n <div class=\"side-nav-footer\">\n <ng-content select=\"[side-nav-footer]\"></ng-content>\n </div>\n }\n </nav>\n <div #contentRef class=\"side-nav-content\">\n <ng-content select=\"[side-nav-content]\"></ng-content>\n </div>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input, output, signal } from \"@angular/core\";\nimport { BadgeProps } from \"@design-system-rte/core/components/badge/badge.interface\";\nimport { getNavItemLabelIconSize } from \"@design-system-rte/core/components/side-nav/nav-item/nav-item.utils\";\nimport { SideNavAppearance } from \"@design-system-rte/core/components/side-nav/side-nav.interface\";\nimport { ENTER_KEY, SPACE_KEY } from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { BadgeComponent } from \"../../badge/badge.component\";\nimport { IconComponent } from \"../../icon/icon.component\";\nimport { TooltipDirective } from \"../../tooltip/tooltip.directive\";\n\nfunction getNavTabIndex(parentMenuOpen?: boolean): number {\n return parentMenuOpen === false ? -1 : 0;\n}\n\n@Component({\n selector: \"rte-nav-item\",\n imports: [CommonModule, IconComponent, BadgeComponent, TooltipDirective],\n standalone: true,\n templateUrl: \"./nav-item.component.html\",\n styleUrl: \"./nav-item.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NavItemComponent {\n readonly id = input<string | undefined>();\n readonly icon = input<string | undefined>();\n readonly showIcon = input<boolean>(true);\n readonly label = input.required<string>();\n readonly collapsed = input<boolean>(false);\n readonly link = input<string | undefined>();\n readonly appearance = input<SideNavAppearance>(\"brand\");\n readonly active = input<boolean>(false);\n readonly badge = input<BadgeProps | undefined>();\n readonly isNested = input<boolean>(false);\n readonly parentMenuOpen = input<boolean | undefined>();\n readonly role = input<string | undefined>();\n readonly showDivider = input<boolean>(false);\n\n readonly focused = signal<boolean>(false);\n readonly tabIndex = computed<number>(() => getNavTabIndex(this.parentMenuOpen()));\n\n readonly itemClick = output<string>();\n\n readonly iconSize = computed<number>(() => {\n return getNavItemLabelIconSize(this.isNested(), this.collapsed());\n });\n\n handleClick(event: Event): void {\n event.stopPropagation();\n this.itemClick.emit(this.id() || this.label());\n }\n\n handleKeyDown(event: KeyboardEvent): void {\n if ([SPACE_KEY, ENTER_KEY].includes(event.key)) {\n event.preventDefault();\n this.itemClick.emit(this.id() || this.label());\n }\n }\n\n handleFocus(): void {\n this.focused.set(true);\n }\n\n handleBlur(): void {\n this.focused.set(false);\n }\n}\n","@if (collapsed() && label()) {\n <div\n class=\"nav-item-container {{ appearance() }}\"\n rteTooltip\n rteTooltipPosition=\"right\"\n rteTooltipAlignment=\"center\"\n [id]=\"id()\"\n [ngClass]=\"{ collapsed: collapsed(), nested: isNested(), active: active(), focused: focused() }\"\n [attr.role]=\"role()\"\n [rteTooltip]=\"label()\"\n [rteTooltipArrow]=\"false\"\n [rteTooltipGap]=\"12\"\n [rteTooltipShouldFocusTrigger]=\"false\"\n >\n <ng-container [ngTemplateOutlet]=\"contentTemplate\" />\n </div>\n} @else {\n <div\n class=\"nav-item-container {{ appearance() }}\"\n [id]=\"id()\"\n [ngClass]=\"{ collapsed: collapsed(), nested: isNested(), active: active(), focused: focused() }\"\n [attr.role]=\"role()\"\n >\n <ng-container [ngTemplateOutlet]=\"contentTemplate\" />\n </div>\n}\n\n<ng-template #contentTemplate>\n @if (link()) {\n <a\n class=\"nav-item\"\n [href]=\"link()!\"\n [attr.tabindex]=\"tabIndex()\"\n [attr.aria-label]=\"label()\"\n (focus)=\"handleFocus()\"\n (blur)=\"handleBlur()\"\n >\n <div class=\"nav-item-left\">\n @if (showIcon() && icon()) {\n <rte-icon class=\"icon\" [name]=\"icon()!\" [size]=\"iconSize()\" />\n }\n @if (!collapsed()) {\n <span>{{ label() }}</span>\n }\n </div>\n <div class=\"nav-item-right\">\n @if (badge()) {\n <rte-badge\n [badgeType]=\"badge()!.badgeType || 'brand'\"\n [badgeSize]=\"badge()!.size || 'm'\"\n [badgeContent]=\"badge()!.content || 'number'\"\n [count]=\"badge()!.count\"\n [icon]=\"badge()!.icon || 'notification'\"\n [simpleBadge]=\"true\"\n />\n }\n </div>\n </a>\n } @else {\n <span\n class=\"nav-item\"\n [attr.tabindex]=\"tabIndex()\"\n [attr.aria-label]=\"label()\"\n (click)=\"handleClick($event)\"\n (keydown)=\"handleKeyDown($event)\"\n (focus)=\"handleFocus()\"\n (blur)=\"handleBlur()\"\n >\n <div class=\"nav-item-left\">\n @if (showIcon() && icon()) {\n <rte-icon class=\"icon\" [name]=\"icon()!\" [size]=\"iconSize()\" />\n }\n @if (!collapsed()) {\n <span>{{ label() }}</span>\n }\n </div>\n <div class=\"nav-item-right\">\n @if (badge()) {\n <rte-badge\n [badgeType]=\"badge()!.badgeType || 'brand'\"\n [badgeSize]=\"badge()!.size || 'm'\"\n [badgeContent]=\"badge()!.content || 'number'\"\n [count]=\"badge()!.count\"\n [icon]=\"badge()!.icon || 'notification'\"\n [simpleBadge]=\"true\"\n />\n }\n </div>\n </span>\n }\n</ng-template>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, effect, input, output } from \"@angular/core\";\nimport { BadgeProps } from \"@design-system-rte/core/components/badge/badge.interface\";\nimport { NavItemProps } from \"@design-system-rte/core/components/side-nav/nav-item/nav-item.interface\";\nimport { getNavItemLabelIconSize } from \"@design-system-rte/core/components/side-nav/nav-item/nav-item.utils\";\nimport { NavMenuProps } from \"@design-system-rte/core/components/side-nav/nav-menu/nav-menu.interface\";\nimport { dividerAppearanceBySideNavAppearance } from \"@design-system-rte/core/components/side-nav/side-nav.constants\";\nimport { SideNavAppearance } from \"@design-system-rte/core/components/side-nav/side-nav.interface\";\nimport { ENTER_KEY, ESCAPE_KEY, SPACE_KEY } from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { BadgeComponent } from \"../../badge/badge.component\";\nimport { DividerComponent } from \"../../divider/divider.component\";\nimport { IconComponent } from \"../../icon/icon.component\";\nimport { TooltipDirective } from \"../../tooltip/tooltip.directive\";\nimport { NavItemComponent } from \"../nav-item/nav-item.component\";\n\nfunction getNavTabIndex(parentMenuOpen?: boolean): number {\n return parentMenuOpen === false ? -1 : 0;\n}\n\nexport interface NavMenuOpenChangeEvent {\n id: string;\n open: boolean;\n}\n\n@Component({\n selector: \"rte-nav-menu\",\n imports: [CommonModule, IconComponent, BadgeComponent, DividerComponent, NavItemComponent, TooltipDirective],\n standalone: true,\n templateUrl: \"./nav-menu.component.html\",\n styleUrl: \"./nav-menu.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NavMenuComponent {\n readonly id = input<string | undefined>();\n readonly icon = input<string | undefined>();\n readonly showIcon = input<boolean>(true);\n readonly label = input.required<string>();\n readonly collapsed = input<boolean>(false);\n readonly link = input<string | undefined>();\n readonly items = input.required<NavItemProps[]>();\n readonly open = input<boolean | undefined>(false);\n readonly showMenuIcon = input<boolean>(true);\n readonly isNested = input<boolean>(false);\n readonly parentMenuOpen = input<boolean | undefined>();\n readonly appearance = input<SideNavAppearance>(\"brand\");\n readonly badge = input<BadgeProps | undefined>();\n readonly showDivider = input<boolean>(false);\n\n readonly itemClick = output<string>();\n readonly openChange = output<NavMenuOpenChangeEvent>();\n\n constructor() {\n effect(\n () => {\n if (this.parentMenuOpen() === false && this.open()) {\n this.closeMenu();\n }\n },\n { allowSignalWrites: true },\n );\n }\n\n readonly hasNestedItems = computed<boolean>(() => !!this.items().length);\n readonly shouldShowMenu = computed<boolean>(() => !this.collapsed() && this.hasNestedItems());\n readonly tabIndex = computed<number>(() => getNavTabIndex(this.parentMenuOpen()));\n\n readonly dividerAppearance = computed(() => dividerAppearanceBySideNavAppearance[this.appearance()]);\n\n readonly iconSize = computed<number>(() => {\n return getNavItemLabelIconSize(this.isNested(), this.collapsed());\n });\n\n toggleMenu(): void {\n this.openChange.emit({ id: this.id() || this.label(), open: !this.open() });\n }\n\n handleEscape(): void {\n if (this.open()) {\n this.closeMenu();\n }\n }\n\n handleKeyDown(event: KeyboardEvent): void {\n if ([SPACE_KEY, ENTER_KEY].includes(event.key)) {\n event.preventDefault();\n this.toggleMenu();\n }\n if (event.key === ESCAPE_KEY) {\n event.preventDefault();\n this.handleEscape();\n }\n }\n\n hasNestedItemsForItem(item: NavItemProps): item is NavMenuProps {\n return !!item.items?.length;\n }\n\n handleMenuOpenChange(event: NavMenuOpenChangeEvent): void {\n const targetMenu = this.items().find((item) => item.id === event.id);\n if (targetMenu) {\n (targetMenu as NavMenuProps).open = event.open;\n }\n }\n\n handleMenuClick(itemId: string): void {\n const item = this.items().find((i) => i.id === itemId || i.label === itemId);\n if (item?.onClick) {\n item.onClick();\n }\n }\n\n private closeMenu(): void {\n this.openChange.emit({ id: this.id() || this.label(), open: false });\n }\n}\n","@if (collapsed() && label()) {\n <li\n class=\"nav-menu-container {{ appearance() }}\"\n rteTooltip\n rteTooltipPosition=\"right\"\n rteTooltipAlignment=\"center\"\n [rteTooltipGap]=\"12\"\n [ngClass]=\"{ collapsed: collapsed(), open: open(), nested: isNested() }\"\n [rteTooltip]=\"label()\"\n [rteTooltipArrow]=\"false\"\n [rteTooltipShouldFocusTrigger]=\"false\"\n >\n <ng-container [ngTemplateOutlet]=\"menuContentTemplate\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"nestedMenuTemplate\"></ng-container>\n </li>\n} @else {\n <li\n class=\"nav-menu-container {{ appearance() }}\"\n [ngClass]=\"{ collapsed: collapsed(), open: open(), nested: isNested() }\"\n >\n <ng-container [ngTemplateOutlet]=\"menuContentTemplate\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"nestedMenuTemplate\"></ng-container>\n </li>\n}\n\n<ng-template #menuContentTemplate>\n @if (link()) {\n <a\n class=\"nav-menu\"\n [href]=\"link()!\"\n [attr.tabindex]=\"tabIndex()\"\n [attr.aria-label]=\"label()\"\n (click)=\"toggleMenu()\"\n >\n <div class=\"menu-content-left\">\n @if (showIcon() && icon()) {\n <rte-icon class=\"icon\" [name]=\"icon()!\" [size]=\"iconSize()\" />\n }\n @if (!collapsed()) {\n <span>{{ label() }}</span>\n }\n </div>\n <div class=\"menu-content-right\">\n @if (badge()) {\n <rte-badge\n [badgeType]=\"badge()!.badgeType || 'brand'\"\n [badgeSize]=\"badge()!.size || 'm'\"\n [badgeContent]=\"badge()!.content || 'number'\"\n [count]=\"badge()!.count\"\n [icon]=\"badge()!.icon || 'notification'\"\n [simpleBadge]=\"true\"\n />\n }\n @if (shouldShowMenu() && showMenuIcon()) {\n <rte-icon name=\"arrow-chevron-right\" class=\"menu-icon\" [ngClass]=\"{ 'menu-icon-open': open() }\" />\n }\n </div>\n </a>\n } @else {\n <span\n class=\"nav-menu\"\n [attr.tabindex]=\"tabIndex()\"\n [attr.aria-label]=\"label()\"\n (click)=\"toggleMenu()\"\n (keydown)=\"handleKeyDown($event)\"\n >\n <div class=\"menu-content-left\">\n @if (showIcon() && icon()) {\n <rte-icon class=\"icon\" [name]=\"icon()!\" [size]=\"iconSize()\" />\n }\n @if (!collapsed()) {\n <span>{{ label() }}</span>\n }\n </div>\n <div class=\"menu-content-right\">\n @if (badge()) {\n <rte-badge\n [badgeType]=\"badge()!.badgeType || 'brand'\"\n [badgeSize]=\"badge()!.size || 'm'\"\n [badgeContent]=\"badge()!.content || 'number'\"\n [count]=\"badge()!.count\"\n [icon]=\"badge()!.icon || 'notification'\"\n [simpleBadge]=\"true\"\n />\n }\n @if (shouldShowMenu() && showMenuIcon()) {\n <rte-icon name=\"arrow-chevron-right\" class=\"menu-icon\" [ngClass]=\"{ 'menu-icon-open': open() }\" />\n }\n </div>\n </span>\n }\n</ng-template>\n\n<ng-template #nestedMenuTemplate>\n @if (shouldShowMenu()) {\n <ul class=\"nested-menu\" [ngClass]=\"{ 'nested-menu-open': open() }\">\n @if (open()) {\n @for (item of items(); track item.id || item.label) {\n @if (hasNestedItemsForItem(item)) {\n <rte-nav-menu\n [id]=\"item.id\"\n [label]=\"item.label\"\n [icon]=\"item.icon\"\n [showIcon]=\"item.showIcon ?? true\"\n [collapsed]=\"collapsed()\"\n [link]=\"item.link\"\n [items]=\"item.items || []\"\n [showMenuIcon]=\"showMenuIcon()\"\n [isNested]=\"true\"\n [open]=\"item.open\"\n [parentMenuOpen]=\"open()\"\n [appearance]=\"appearance()\"\n [showDivider]=\"item.showDivider!\"\n [badge]=\"item.badge\"\n (itemClick)=\"handleMenuClick($event)\"\n (openChange)=\"handleMenuOpenChange($event)\"\n />\n } @else {\n <li>\n <rte-nav-item\n [id]=\"item.id\"\n [label]=\"item.label\"\n [icon]=\"item.icon\"\n [showIcon]=\"item.showIcon ?? true\"\n [collapsed]=\"collapsed()\"\n [link]=\"item.link\"\n [isNested]=\"true\"\n [parentMenuOpen]=\"open()\"\n [appearance]=\"appearance()\"\n [showDivider]=\"item.showDivider!\"\n [badge]=\"item.badge\"\n (itemClick)=\"itemClick.emit($event)\"\n />\n </li>\n @if (item.showDivider) {\n <rte-divider [appearance]=\"dividerAppearance()\" />\n }\n }\n }\n }\n </ul>\n }\n</ng-template>\n\n@if (showDivider()) {\n <rte-divider [appearance]=\"dividerAppearance()\" />\n}\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, effect, input, output, signal } from \"@angular/core\";\nimport { DividerAppearance } from \"@design-system-rte/core/components/divider/divider.interface\";\nimport { NavItemProps } from \"@design-system-rte/core/components/side-nav/nav-item/nav-item.interface\";\nimport { NavMenuProps } from \"@design-system-rte/core/components/side-nav/nav-menu/nav-menu.interface\";\nimport { dividerAppearanceBySideNavAppearance } from \"@design-system-rte/core/components/side-nav/side-nav.constants\";\nimport { SideNavAppearance, SideNavHeaderConfig } from \"@design-system-rte/core/components/side-nav/side-nav.interface\";\nimport { SideNavSize } from \"@design-system-rte/core/components/side-nav/side-nav.interface\";\nimport { ENTER_KEY, SPACE_KEY } from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { DividerComponent } from \"../divider/divider.component\";\n\nimport { BaseSideNavComponent } from \"./base-side-nav/base-side-nav.component\";\nimport { NavItemComponent } from \"./nav-item/nav-item.component\";\nimport { NavMenuComponent, NavMenuOpenChangeEvent } from \"./nav-menu/nav-menu.component\";\n\nconst TRANSITION_DURATION = 300;\n\n@Component({\n selector: \"rte-side-nav\",\n imports: [CommonModule, BaseSideNavComponent, DividerComponent, NavItemComponent, NavMenuComponent],\n standalone: true,\n templateUrl: \"./side-nav.component.html\",\n styleUrl: \"./side-nav.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SideNavComponent {\n readonly size = input<SideNavSize>(\"m\" as SideNavSize);\n readonly collapsible = input<boolean>(false);\n readonly headerConfig = input<SideNavHeaderConfig | undefined>();\n readonly items = input<NavItemProps[]>([]);\n readonly footerItems = input<NavItemProps[] | undefined>();\n readonly collapsed = input<boolean>(false);\n readonly appearance = input<SideNavAppearance>(\"brand\");\n\n readonly isCollapsed = signal<boolean>(false);\n readonly shouldShowTitle = signal<boolean>(true);\n\n readonly itemClicked = output<string>();\n\n private titleTimeoutId: ReturnType<typeof setTimeout> | null = null;\n\n constructor() {\n effect(\n () => {\n this.isCollapsed.set(this.collapsed());\n },\n { allowSignalWrites: true },\n );\n\n effect(\n () => {\n if (this.titleTimeoutId) {\n clearTimeout(this.titleTimeoutId);\n this.titleTimeoutId = null;\n }\n\n if (this.isCollapsed()) {\n this.shouldShowTitle.set(false);\n } else {\n this.titleTimeoutId = setTimeout(() => {\n this.shouldShowTitle.set(true);\n this.titleTimeoutId = null;\n }, TRANSITION_DURATION);\n }\n },\n { allowSignalWrites: true },\n );\n }\n\n readonly collapseIcon = computed<string>(() => {\n return this.isCollapsed() ? \"arrow-double-right\" : \"arrow-double-left\";\n });\n\n readonly dividerAppearance = computed<DividerAppearance>(() => {\n return dividerAppearanceBySideNavAppearance[this.appearance()];\n });\n\n handleHeaderKeyDown(event: KeyboardEvent): void {\n if ([SPACE_KEY, ENTER_KEY].includes(event.key)) {\n event.preventDefault();\n const config = this.headerConfig();\n if (config?.onClick) {\n config.onClick();\n }\n }\n }\n\n handleHeaderClick(): void {\n const config = this.headerConfig();\n if (config?.onClick) {\n config.onClick();\n }\n }\n\n hasNestedItems(item: NavItemProps): item is NavMenuProps {\n return !!item.items?.length;\n }\n\n handleItemClick(itemId: string): void {\n this.itemClicked.emit(itemId);\n }\n\n handleFooterItemClick(itemId: string): void {\n this.itemClicked.emit(itemId);\n }\n\n handleMenuOpenChange(event: NavMenuOpenChangeEvent): void {\n const targetMenu = this.items().find((item) => item.id === event.id);\n if (targetMenu) {\n (targetMenu as NavMenuProps).open = event.open;\n }\n }\n\n handleFooterMenuOpenChange(event: NavMenuOpenChangeEvent): void {\n const targetMenu = this.footerItems()?.find((item) => item.id === event.id);\n if (targetMenu) {\n (targetMenu as NavMenuProps).open = event.open;\n }\n }\n\n handleCollapseClick(): void {\n this.isCollapsed.set(!this.isCollapsed());\n }\n}\n","<rte-base-side-nav [size]=\"size()\" [collapsed]=\"isCollapsed()\" [appearance]=\"appearance()\">\n <div side-nav-header>\n <div class=\"side-nav-header-container\">\n <div class=\"side-nav-header {{ appearance() }}\" [ngClass]=\"{ collapsed: isCollapsed() }\">\n @if (headerConfig()?.link) {\n <a\n class=\"side-nav-header-title-container\"\n [href]=\"headerConfig()!.link!\"\n [attr.aria-label]=\"headerConfig()?.ariaLabel\"\n (click)=\"handleHeaderClick()\"\n >\n <div class=\"side-nav-header-title\">\n <div class=\"side-nav-header-identifier\">{{ headerConfig()?.identifier }}</div>\n @if (!isCollapsed()) {\n <h1 [ngClass]=\"{ hidden: !shouldShowTitle() }\">{{ headerConfig()?.title }}</h1>\n }\n </div>\n </a>\n } @else if (headerConfig()?.onClick) {\n <div\n class=\"side-nav-header-title-container\"\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"headerConfig()?.ariaLabel\"\n (click)=\"handleHeaderClick()\"\n (keydown)=\"handleHeaderKeyDown($event)\"\n >\n <div class=\"side-nav-header-title\">\n <div class=\"side-nav-header-identifier\">{{ headerConfig()?.identifier }}</div>\n @if (!isCollapsed()) {\n <h1 [ngClass]=\"{ hidden: !shouldShowTitle() }\">{{ headerConfig()?.title }}</h1>\n }\n </div>\n </div>\n } @else {\n <div class=\"side-nav-header-title-container\">\n <div class=\"side-nav-header-title\">\n <div class=\"side-nav-header-identifier\">{{ headerConfig()?.identifier }}</div>\n @if (!isCollapsed()) {\n <h1 [ngClass]=\"{ hidden: !shouldShowTitle() }\">{{ headerConfig()?.title }}</h1>\n }\n </div>\n </div>\n }\n <div class=\"side-nav-header-version\" [ngClass]=\"{ hidden: !shouldShowTitle() }\">\n <span>{{ headerConfig()?.version }}</span>\n </div>\n </div>\n <rte-divider [appearance]=\"dividerAppearance()\" />\n </div>\n </div>\n <div side-nav-body>\n <div class=\"side-nav-body\">\n <ul>\n @for (item of items(); track item.label) {\n @if (hasNestedItems(item)) {\n <rte-nav-menu\n [id]=\"item.id\"\n [label]=\"item.label\"\n [icon]=\"item.icon\"\n [showIcon]=\"item.showIcon ?? true\"\n [collapsed]=\"isCollapsed()\"\n [link]=\"item.link\"\n [open]=\"item.open\"\n [items]=\"item.items || []\"\n [appearance]=\"appearance()\"\n [badge]=\"item.badge\"\n [showDivider]=\"item.showDivider!\"\n (openChange)=\"handleMenuOpenChange($event)\"\n />\n } @else {\n <li>\n <rte-nav-item\n [id]=\"item.id\"\n [label]=\"item.label\"\n [icon]=\"item.icon\"\n [showIcon]=\"item.showIcon ?? true\"\n [collapsed]=\"isCollapsed()\"\n [link]=\"item.link\"\n [appearance]=\"appearance()\"\n [active]=\"item.active ?? false\"\n [badge]=\"item.badge\"\n (itemClick)=\"handleItemClick(item.id || item.label)\"\n ></rte-nav-item>\n </li>\n @if (item.showDivider) {\n <rte-divider [appearance]=\"dividerAppearance()\" />\n }\n }\n }\n </ul>\n </div>\n </div>\n @if (footerItems()?.length || collapsible()) {\n <div side-nav-footer>\n <div class=\"side-nav-footer-container\">\n @if (footerItems()?.length) {\n <div class=\"side-nav-footer-items\">\n <ul>\n @for (item of footerItems()!; track item.id || item.label) {\n @if (hasNestedItems(item)) {\n <rte-nav-menu\n [id]=\"item.id\"\n [label]=\"item.label\"\n [icon]=\"item.icon\"\n [showIcon]=\"item.showIcon ?? true\"\n [collapsed]=\"isCollapsed()\"\n [link]=\"item.link\"\n [open]=\"item.open\"\n [items]=\"item.items || []\"\n [appearance]=\"appearance()\"\n [badge]=\"item.badge\"\n [showDivider]=\"item.showDivider!\"\n (openChange)=\"handleFooterMenuOpenChange($event)\"\n />\n } @else {\n <li>\n <rte-nav-item\n [id]=\"item.id\"\n [label]=\"item.label\"\n [icon]=\"item.icon\"\n [showIcon]=\"item.showIcon ?? true\"\n [collapsed]=\"isCollapsed()\"\n [link]=\"item.link\"\n [appearance]=\"appearance()\"\n [active]=\"item.active ?? false\"\n [badge]=\"item.badge\"\n (itemClick)=\"handleFooterItemClick(item.id || item.label)\"\n ></rte-nav-item>\n </li>\n @if (item.showDivider) {\n <rte-divider [appearance]=\"dividerAppearance()\" />\n }\n }\n }\n </ul>\n </div>\n }\n <rte-divider [appearance]=\"dividerAppearance()\" />\n @if (collapsible()) {\n <div class=\"side-nav-footer\">\n <div class=\"collapsible-section\">\n <ul>\n <li>\n <rte-nav-item\n [label]=\"isCollapsed() ? 'Ouvrir le menu' : 'Réduire le menu'\"\n [icon]=\"collapseIcon()\"\n [collapsed]=\"isCollapsed()\"\n [appearance]=\"appearance()\"\n (itemClick)=\"handleCollapseClick()\"\n />\n </li>\n </ul>\n </div>\n </div>\n }\n </div>\n </div>\n }\n <div side-nav-content>\n <ng-content select=\"[content]\"></ng-content>\n </div>\n</rte-base-side-nav>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, input, computed, signal, output } from \"@angular/core\";\nimport { IconSize, IconTypeMap } from \"@design-system-rte/core/components/icon/icon.constants\";\nimport { ToastProps, ToastType } from \"@design-system-rte/core/components/toast/toast.interface\";\n\nimport { ButtonComponent } from \"../button/button.component\";\nimport { IconComponent } from \"../icon/icon.component\";\nimport { IconButtonComponent } from \"../icon-button/icon-button.component\";\n\n@Component({\n selector: \"rte-toast\",\n imports: [CommonModule, IconComponent, IconButtonComponent, ButtonComponent],\n standalone: true,\n templateUrl: \"./toast.component.html\",\n styleUrl: \"./toast.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToastComponent {\n readonly id = input<string>(\"\");\n readonly message = input<string>(\"\");\n readonly type = input<ToastType>(\"info\");\n readonly duration = input<ToastProps[\"duration\"]>(\"medium\");\n readonly isOpen = input<boolean>(false);\n readonly placement = input<ToastProps[\"placement\"]>(\"bottom-right\");\n readonly closable = input<ToastProps[\"closable\"]>(true);\n readonly autoDismiss = input<ToastProps[\"autoDismiss\"]>(true);\n readonly showActionButton = input<ToastProps[\"showActionButton\"]>(true);\n readonly iconName = input<ToastProps[\"iconName\"]>(\"\");\n readonly showLeftIcon = input<ToastProps[\"showLeftIcon\"]>(true);\n\n readonly actionButtonLabel = input<ToastProps[\"actionButtonLabel\"]>(\"\");\n readonly onActionButtonClick = input<ToastProps[\"onActionButtonClick\"]>(() => {});\n\n readonly close = output<void>();\n\n readonly displayCustomIcon = computed(() => {\n console.log(\"iconName\", this.iconName());\n return this.showLeftIcon() && !!this.iconName();\n });\n\n readonly displayLeftIcon = computed(() => {\n return this.showLeftIcon() && IconTypeMap[this.type()];\n });\n\n readonly displayActionButton = computed(() => {\n return this.showActionButton() && this.actionButtonLabel() && !!this.onActionButtonClick();\n });\n\n onClickActionButton(): void {\n const action = this.onActionButtonClick();\n if (action) {\n action();\n }\n }\n\n clickCloseButton(): void {\n this.close.emit();\n }\n\n readonly position = computed(() => this.placement()?.split(\"-\")[0]);\n readonly alignment = computed(() => this.placement()?.split(\"-\")[1]);\n\n readonly visible = signal(false);\n\n readonly defaultIconName = computed(() => IconTypeMap[this.type()]);\n readonly iconSize = IconSize[\"xl\"];\n}\n","<div\n class=\"rte-toast {{ type() }} {{ position() }} {{ alignment() }}\"\n role=\"status\"\n ref=\"{ref}\"\n [ngClass]=\"{ open: isOpen() }\"\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","import { Injectable, ComponentRef, ViewContainerRef, inject, signal, effect } from \"@angular/core\";\nimport { ToastDuration, ToastPlacement, ToastType } from \"@design-system-rte/core/components/toast/toast.interface\";\nimport { getToastPriority } from \"@design-system-rte/core/components/toast/toast.utils\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport { OverlayService } from \"../../services/overlay.service\";\n\nimport { ToastComponent } from \"./toast.component\";\n\nexport interface ToastConfig {\n message: string;\n type: ToastType;\n closable?: boolean;\n autoDismiss?: boolean;\n duration?: ToastDuration;\n placement?: ToastPlacement;\n showActionButton?: boolean;\n actionButtonLabel?: string;\n onActionButtonClick?: () => void;\n iconName?: string;\n showLeftIcon?: boolean;\n}\n\n@Injectable({ providedIn: \"root\" })\nexport class ToastService {\n private viewContainerRef = inject(ViewContainerRef);\n private overlayService: OverlayService;\n private currentOpenedToastRef: ComponentRef<ToastComponent> | null = null;\n\n readonly toastQueue = signal<ComponentRef<ToastComponent>[]>([]);\n\n constructor() {\n this.overlayService = inject(OverlayService);\n\n effect(() => {\n const toastToOpen = this.toastQueue()[0];\n if (!toastToOpen) {\n this.currentOpenedToastRef = null;\n return;\n }\n if (this.currentOpenedToastRef?.instance.id() === toastToOpen.instance.id()) {\n return;\n } else {\n if (this.currentOpenedToastRef) {\n this.currentOpenedToastRef.setInput(\"isOpen\", false);\n }\n }\n this.overlayService.addToOverlay(toastToOpen);\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n toastToOpen.setInput(\"isOpen\", true);\n this.currentOpenedToastRef = toastToOpen;\n });\n });\n });\n }\n\n getAllToasts(): ComponentRef<ToastComponent>[] {\n return this.toastQueue();\n }\n\n getCurrentOpenedToast(): ComponentRef<ToastComponent> | null {\n return this.currentOpenedToastRef;\n }\n\n isInQueue(toastId: string): boolean {\n return this.toastQueue().some((toast) => toast.instance.id() === toastId);\n }\n\n addToQueue(config: ToastConfig): string {\n const toast = this.build(config);\n toast.instance.close.subscribe(() => {\n this.removeFromQueue(toast.instance.id());\n });\n\n this.toastQueue.update((list) =>\n [...list, toast].sort((a, b) => {\n const priorityA = getToastPriority({\n hasActionButton: a.instance.showActionButton()!,\n type: a.instance.type(),\n });\n const priorityB = getToastPriority({\n hasActionButton: b.instance.showActionButton()!,\n type: b.instance.type(),\n });\n return priorityA - priorityB;\n }),\n );\n return toast.instance.id();\n }\n\n removeFromQueue(toastId: string): void {\n if (this.toastQueue().length === 0) return;\n if (this.toastQueue().length === 1 && this.toastQueue()[0].instance.id() === toastId) {\n const onlyToast = this.toastQueue()[0];\n this.toastQueue.set([]);\n onlyToast.setInput(\"isOpen\", false);\n this.waitExitAnimation(onlyToast, () => {\n onlyToast.destroy();\n });\n return;\n }\n const toastToHide = this.toastQueue().find((toast) => toast.instance.id() === toastId);\n if (!toastToHide) return;\n this.toastQueue.update((list) => list.filter((c) => c.instance.id() !== toastId));\n toastToHide.setInput(\"isOpen\", false);\n this.waitExitAnimation(toastToHide, () => {\n toastToHide.destroy();\n });\n }\n\n private build(config: ToastConfig): ComponentRef<ToastComponent> {\n const toast = this.overlayService.createWithoutAppend(ToastComponent, this.viewContainerRef);\n this.assignInputsValues(toast, config);\n return toast;\n }\n\n private assignInputsValues(toast: ComponentRef<ToastComponent>, config: ToastConfig): void {\n const {\n message,\n type = \"info\",\n closable = true,\n autoDismiss = false,\n duration = \"medium\",\n placement = \"bottom-right\",\n showActionButton = true,\n showLeftIcon = true,\n iconName,\n actionButtonLabel,\n onActionButtonClick,\n } = config;\n toast.setInput(\"message\", message);\n toast.setInput(\"id\", uuidv4());\n toast.setInput(\"type\", type);\n toast.setInput(\"closable\", closable);\n toast.setInput(\"autoDismiss\", autoDismiss);\n toast.setInput(\"duration\", duration);\n toast.setInput(\"placement\", placement);\n toast.setInput(\"iconName\", iconName);\n toast.setInput(\"showLeftIcon\", showLeftIcon);\n toast.setInput(\"showActionButton\", showActionButton);\n toast.setInput(\"actionButtonLabel\", actionButtonLabel);\n toast.setInput(\"onActionButtonClick\", onActionButtonClick);\n }\n\n private waitExitAnimation(ref: ComponentRef<ToastComponent>, done: () => void): void {\n setTimeout(done, 300);\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, input, computed } from \"@angular/core\";\nimport { TagProps } from \"@design-system-rte/core/components/tag/tag.interface\";\n\nimport { isValidIconName } from \"../icon/icon-map\";\nimport { IconComponent } from \"../icon/icon.component\";\nimport { RegularIconIdKey, TogglableIconIdKey } from \"../icon/icon.service\";\n\n@Component({\n selector: \"rte-tag\",\n imports: [CommonModule, IconComponent],\n standalone: true,\n templateUrl: \"./tag.component.html\",\n styleUrl: \"./tag.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TagComponent {\n readonly tagType = input<TagProps[\"tagType\"]>(\"status\");\n readonly status = input<TagProps[\"status\"]>(\"success\");\n readonly color = input<TagProps[\"color\"]>(\"brand\");\n readonly compactSpacing = input<boolean>(false);\n readonly label = input<string>(\"\");\n readonly showLeftIcon = input<boolean>(false);\n readonly iconName = input<RegularIconIdKey | TogglableIconIdKey>();\n\n readonly computedIconName = computed(() => {\n if (this.tagType() === \"status\") {\n const statusIconMap: Record<string, RegularIconIdKey | TogglableIconIdKey> = {\n success: \"check-circle\",\n information: \"info\",\n warning: \"warning\",\n alert: \"dangerous\",\n };\n const statusValue = this.status();\n if (statusValue && statusIconMap[statusValue]) {\n return statusIconMap[statusValue];\n }\n }\n return this.iconName() ?? \"check\";\n });\n\n readonly isValidIconName = computed(() => {\n const iconName = this.computedIconName();\n return !!iconName && isValidIconName(iconName);\n });\n}\n","<div\n class=\"rte-tag\"\n [attr.data-tag-type]=\"tagType()\"\n [attr.data-status]=\"status()\"\n [attr.data-color]=\"color()\"\n [attr.data-compact-spacing]=\"compactSpacing()\"\n>\n <ng-container *ngIf=\"isValidIconName() && (tagType() === 'status' || showLeftIcon())\">\n <rte-icon [name]=\"computedIconName()\" [size]=\"16\"></rte-icon>\n </ng-container>\n <ng-container *ngIf=\"label\">\n <label class=\"tag-label\" [attr.data-compact-spacing]=\"compactSpacing()\">{{ label() }}</label>\n </ng-container>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { Component, input, computed, ChangeDetectionStrategy } from \"@angular/core\";\nimport { ASSISTIVE_TEXT_ICON_SIZE } from \"@design-system-rte/core/components/assistive-text/assistive-text.constants\";\nimport { AssistiveTextProps } from \"@design-system-rte/core/components/assistive-text/assistive-text.interface\";\nimport { getIconNameFromAppearance } from \"@design-system-rte/core/components/assistive-text/assistive-text.utils\";\n\nimport { IconComponent } from \"../icon/icon.component\";\nimport { LinkComponent } from \"../link/link.component\";\n\n@Component({\n selector: \"rte-assistive-text\",\n imports: [CommonModule, IconComponent, LinkComponent],\n standalone: true,\n templateUrl: \"./assistive-text.component.html\",\n styleUrl: \"./assistive-text.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AssistiveTextComponent {\n readonly label = input<string>();\n readonly appearance = input<AssistiveTextProps[\"appearance\"]>(\"description\");\n readonly showIcon = input<boolean>(false);\n readonly href = input<string>();\n readonly width = input<number>();\n\n readonly isLink = computed(() => {\n return this.appearance() === \"link\" && this.href() !== undefined;\n });\n\n readonly widthStyle = computed(() => {\n return `${this.width()}px`;\n });\n\n readonly assistiveTextIconSize = ASSISTIVE_TEXT_ICON_SIZE;\n\n readonly iconName = computed(() => {\n return getIconNameFromAppearance(this.appearance()!);\n });\n}\n","<div class=\"rte-assistive-text {{ appearance() }}\" [ngStyle]=\"{ width: widthStyle() }\">\n <rte-icon\n *ngIf=\"showIcon() && iconName()\"\n class=\"assistive-icon-{{ appearance() }}\"\n [name]=\"iconName()!\"\n [size]=\"assistiveTextIconSize\"\n ></rte-icon>\n @if (isLink()) {\n <rte-link class=\"assistive-text-link\" [externalLink]=\"true\" [href]=\"href() || ''\" [label]=\"label() || ''\">\n </rte-link>\n } @else {\n <span>{{ label() }}</span>\n }\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport {\n Component,\n input,\n computed,\n output,\n signal,\n viewChild,\n ElementRef,\n ChangeDetectionStrategy,\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { REQUIREMENT_INDICATOR_VALUE } from \"@design-system-rte/core/components/required-indicator/required-indicator.constant\";\nimport {\n SELECT_DROPDOWN_OFFSET,\n THRESHOLD_BOTTOM_POSITION,\n MIN_SELECT_WIDTH,\n} from \"@design-system-rte/core/components/select/select.constants\";\nimport { SelectProps } from \"@design-system-rte/core/components/select/select.interface\";\nimport { ENTER_KEY, SPACE_KEY } from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { AssistiveTextComponent } from \"../assistive-text/assistive-text.component\";\nimport { DropdownModule } from \"../dropdown\";\nimport { IconComponent } from \"../icon/icon.component\";\nimport { IconButtonComponent } from \"../icon-button/icon-button.component\";\n\n@Component({\n selector: \"rte-select\",\n imports: [CommonModule, IconComponent, DropdownModule, IconButtonComponent, AssistiveTextComponent],\n standalone: true,\n templateUrl: \"./select.component.html\",\n styleUrl: \"./select.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SelectComponent,\n multi: true,\n },\n ],\n})\nexport class SelectComponent {\n readonly id = input<string>();\n readonly name = input<string>();\n readonly ariaLabelledby = input<string>();\n readonly label = input<string>();\n readonly labelId = input<string>();\n readonly labelPosition = input<SelectProps[\"labelPosition\"]>(\"top\");\n readonly assistiveTextLabel = input<string>();\n readonly assistiveTextAppearance = input<SelectProps[\"assistiveAppearance\"]>(\"description\");\n readonly assistiveTextLink = input<string>();\n readonly required = input<boolean>(false);\n readonly showLabelRequirement = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n readonly readOnly = input<boolean>(false);\n readonly value = input<string>();\n readonly options = input<SelectProps[\"options\"]>([]);\n readonly isError = input<boolean>(false);\n readonly showAssistiveIcon = input<boolean>(false);\n readonly showResetButton = input<boolean>(false);\n readonly width = input<number>(MIN_SELECT_WIDTH);\n\n readonly selectRef = viewChild<ElementRef<HTMLElement>>(\"selectRef\");\n readonly buttonsContainerRef = viewChild<ElementRef<HTMLElement>>(\"buttonsContainerRef\");\n\n readonly selectDropdownOffset = SELECT_DROPDOWN_OFFSET;\n\n readonly computedWidth = computed(() => {\n return `${this.width()}px`;\n });\n\n readonly clearButton = computed(() => {\n return this.buttonsContainerRef()?.nativeElement.querySelector(\n \".rte-icon-button.clear-button\",\n ) as HTMLElement | null;\n });\n\n readonly dropdownPosition = computed<\"bottom\" | \"top\">(() => {\n const selectElement = this.selectRef()?.nativeElement;\n if (selectElement) {\n const rect = selectElement.getBoundingClientRect();\n const spaceBelow = window.innerHeight - rect.bottom;\n return spaceBelow >= THRESHOLD_BOTTOM_POSITION ? \"bottom\" : \"top\";\n }\n return \"bottom\";\n });\n\n readonly internalValue = signal(this.value());\n\n readonly requirementIndicatorValue = computed(() =>\n this.required()\n ? this.showLabelRequirement()\n ? REQUIREMENT_INDICATOR_VALUE.required\n : REQUIREMENT_INDICATOR_VALUE.requiredIcon\n : REQUIREMENT_INDICATOR_VALUE.optional,\n );\n\n readonly valueChange = output<Event>();\n\n readonly currentOptionLabel = computed(() => {\n return this.options().find((option) => option.value === this.internalValue())?.label;\n });\n\n readonly isAssistiveTextLinkVisible = computed(() => {\n return this.assistiveTextAppearance() === \"link\" && this.assistiveTextLink() !== undefined;\n });\n\n readonly formattedOptions = computed(() => {\n return this.options().map(({ value, label }) => ({\n id: value,\n label: label,\n selected: value === this.internalValue(),\n }));\n });\n\n readonly shouldDisplayClearButton = computed(\n () => this.showResetButton() && !!this.internalValue() && !this.disabled(),\n );\n\n readonly shouldDisplayErrorIcon = computed(() => this.isError() && !this.disabled() && !this.readOnly());\n\n readonly isActive = signal(false);\n\n readonly selectWidth = computed(() => {\n const nativeElement = this.selectRef()?.nativeElement;\n if (nativeElement) {\n return nativeElement.getBoundingClientRect().width;\n }\n return null;\n });\n\n handleOnClickTrigger() {\n if (this.readOnly() || this.disabled()) {\n return;\n }\n this.toggleDropdown();\n }\n\n handleOnKeyDownTrigger(event: KeyboardEvent) {\n if (this.readOnly() || this.disabled()) {\n return;\n }\n if (this.shouldDisplayClearButton()) {\n const clearButton = this.buttonsContainerRef()?.nativeElement.children[0].children[0];\n const isClearButtonFocused = document.activeElement === clearButton;\n if (isClearButtonFocused && (event.key === SPACE_KEY || event.key === ENTER_KEY)) {\n this.clearSelection(event);\n return;\n }\n }\n\n if (event.key === SPACE_KEY || event.key === ENTER_KEY) {\n this.toggleDropdown();\n }\n }\n\n handleOnClickClearButton(event: Event): void {\n if (this.readOnly() || this.disabled()) {\n return;\n }\n event.preventDefault();\n this.clearSelection(event);\n }\n\n handleOnClickItem(id: string) {\n if (this.readOnly() || this.disabled()) {\n return;\n }\n this.internalValue.set(id);\n const event = new CustomEvent<{ target: { value: string } }>(\"change\", {\n bubbles: true,\n detail: { target: { value: id } },\n });\n this.valueChange.emit(event);\n this.isActive.set(!this.isActive());\n this.selectRef()?.nativeElement.focus();\n }\n\n handleOnClosingDropdown() {\n this.isActive.set(false);\n }\n\n handleOnClickOutside() {\n this.isActive.set(false);\n }\n\n private toggleDropdown() {\n this.isActive.set(!this.isActive());\n if (this.isActive()) {\n this.selectRef()?.nativeElement.dispatchEvent(new Event(\"openDropdown\"));\n } else {\n this.selectRef()?.nativeElement.dispatchEvent(new Event(\"closeDropdown\"));\n }\n }\n\n private clearSelection(event: Event) {\n this.internalValue.set(undefined);\n this.isActive.set(false);\n this.valueChange.emit(event);\n this.selectRef()?.nativeElement.dispatchEvent(new Event(\"clearContent\"));\n }\n}\n","<div class=\"rte-select-container\" [attr.data-label-position]=\"labelPosition()\">\n <label\n *ngIf=\"label() && labelPosition() === 'side'\"\n class=\"rte-select-label\"\n [attr.data-label-position]=\"labelPosition()\"\n [attr.id]=\"labelId()\"\n [attr.for]=\"id()\"\n >{{ label()\n }}<span\n *ngIf=\"required() || showLabelRequirement()\"\n class=\"requirement-indicator\"\n aria-hidden=\"true\"\n [ngClass]=\"{\n required: required(),\n 'show-label-requirement': showLabelRequirement(),\n }\"\n >{{ requirementIndicatorValue() }}</span\n ></label\n >\n\n <div class=\"rte-select-header\" [attr.data-label-position]=\"labelPosition()\">\n <label *ngIf=\"label() && labelPosition() === 'top'\" class=\"rte-select-label\" [attr.id]=\"labelId()\" [attr.for]=\"id()\"\n >{{ label()\n }}<span\n *ngIf=\"required() || showLabelRequirement()\"\n class=\"requirement-indicator\"\n aria-hidden=\"true\"\n [ngClass]=\"{\n required: required(),\n 'show-label-requirement': showLabelRequirement(),\n }\"\n >{{ requirementIndicatorValue() }}</span\n ></label\n >\n </div>\n <div\n rteDropdown\n [rteDropdownId]=\"'dropdown_select_' + id()\"\n [rteDropdownPosition]=\"dropdownPosition()\"\n [rteDropdownOffset]=\"selectDropdownOffset\"\n [rteDropdownWidth]=\"selectWidth()\"\n (menuEvent)=\"handleOnClickItem($event.id)\"\n (clickedOutside)=\"handleOnClickOutside()\"\n (closedDropdown)=\"handleOnClosingDropdown()\"\n >\n <div\n #selectRef\n rteDropdownTrigger\n class=\"rte-select-wrapper\"\n [attr.tabIndex]=\"disabled() || readOnly() ? -1 : 0\"\n [attr.role]=\"'combobox'\"\n [attr.data-error]=\"isError()\"\n [attr.data-disabled]=\"disabled()\"\n [attr.data-read-only]=\"readOnly()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-readonly]=\"readOnly()\"\n [attr.aria-labelledby]=\"labelId()\"\n [attr.aria-expanded]=\"isActive()\"\n [attr.data-active]=\"isActive()\"\n [ngStyle]=\"{ width: computedWidth() }\"\n (dropdownTriggered)=\"handleOnClickTrigger()\"\n (dropdownKeyDown)=\"handleOnKeyDownTrigger($event)\"\n >\n <div class=\"rte-select-content\">\n <rte-icon *ngIf=\"shouldDisplayErrorIcon()\" name=\"error\" class=\"error-icon\" />\n <div class=\"rte-select-value\">\n <span>{{ currentOptionLabel() }}</span>\n </div>\n <div #buttonsContainerRef class=\"rte-select-right-icons\">\n <rte-icon-button\n *ngIf=\"shouldDisplayClearButton()\"\n name=\"cancel\"\n variant=\"neutral\"\n class=\"rte-select-icon-button clear-icon\"\n [disabled]=\"disabled()\"\n (clickEvent)=\"handleOnClickClearButton($event)\"\n />\n <rte-icon\n class=\"trigger-icon trigger-icon-{{ isActive() ? 'up' : 'down' }}\"\n variant=\"neutral\"\n [name]=\"isActive() ? 'arrow-chevron-up' : 'arrow-chevron-down'\"\n />\n </div>\n </div>\n </div>\n <rte-dropdown-menu [items]=\"formattedOptions()\" />\n <rte-assistive-text\n *ngIf=\"assistiveTextLabel()\"\n [label]=\"assistiveTextLabel()\"\n [appearance]=\"isError() ? 'error' : assistiveTextAppearance()!\"\n [showIcon]=\"showAssistiveIcon()\"\n [href]=\"assistiveTextLink()\"\n [width]=\"width()\"\n />\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["isValidIconNameShared","i2.DropdownDirective","i3.DropdownTriggerDirective","i4.DropdownMenuComponent","CoreShouldDisplayBadge","coreShouldDisplayBadge","getNavTabIndex","uuidv4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"design-system-rte-angular.mjs","sources":["../../../projects/ds-rte-lib/src/lib/components/button/button.component.ts","../../../projects/ds-rte-lib/src/lib/components/button/button.component.html","../../../projects/ds-rte-lib/src/lib/components/grid/grid.directive.ts","../../../projects/ds-rte-lib/src/lib/components/grid/col/col.directive.ts","../../../projects/ds-rte-lib/src/lib/components/icon/icon-map.ts","../../../projects/ds-rte-lib/src/lib/components/icon/icon.service.ts","../../../projects/ds-rte-lib/src/lib/components/icon/icon.component.ts","../../../projects/ds-rte-lib/src/lib/components/icon/icon.component.html","../../../projects/ds-rte-lib/src/lib/components/link/link.component.ts","../../../projects/ds-rte-lib/src/lib/components/link/link.component.html","../../../projects/ds-rte-lib/src/lib/components/radio-button/radio-button.component.ts","../../../projects/ds-rte-lib/src/lib/components/radio-button/radio-button.component.html","../../../projects/ds-rte-lib/src/lib/components/radio-button-group/radio-button-group.component.ts","../../../projects/ds-rte-lib/src/lib/components/radio-button-group/radio-button-group.component.html","../../../projects/ds-rte-lib/src/lib/components/checkbox/checkbox.component.ts","../../../projects/ds-rte-lib/src/lib/components/checkbox/checkbox.component.html","../../../projects/ds-rte-lib/src/lib/components/checkbox-group/checkbox-group.component.ts","../../../projects/ds-rte-lib/src/lib/components/checkbox-group/checkbox-group.component.html","../../../projects/ds-rte-lib/src/lib/services/overlay.service.ts","../../../projects/ds-rte-lib/src/lib/components/tooltip/tooltip.component.ts","../../../projects/ds-rte-lib/src/lib/components/tooltip/tooltip.component.html","../../../projects/ds-rte-lib/src/lib/components/tooltip/tooltip.directive.ts","../../../projects/ds-rte-lib/src/lib/components/badge/badge.component.ts","../../../projects/ds-rte-lib/src/lib/components/badge/badge.component.html","../../../projects/ds-rte-lib/src/lib/components/badge/badge.directive.ts","../../../projects/ds-rte-lib/src/lib/components/divider/divider.component.ts","../../../projects/ds-rte-lib/src/lib/components/divider/divider.component.html","../../../projects/ds-rte-lib/src/lib/components/dropdown/dropdown-item/dropdown-item.component.ts","../../../projects/ds-rte-lib/src/lib/components/dropdown/dropdown-item/dropdown-item.component.html","../../../projects/ds-rte-lib/src/lib/components/dropdown/dropdown-menu/dropdown-menu-footer.directive.ts","../../../projects/ds-rte-lib/src/lib/components/dropdown/dropdown-menu/dropdown-menu-header.directive.ts","../../../projects/ds-rte-lib/src/lib/services/dropdown.service.ts","../../../projects/ds-rte-lib/src/lib/components/dropdown/dropdown-menu/dropdown-menu.component.ts","../../../projects/ds-rte-lib/src/lib/components/dropdown/dropdown-menu/dropdown-menu.component.html","../../../projects/ds-rte-lib/src/lib/components/dropdown/dropdown-trigger/dropdown-trigger.directive.ts","../../../projects/ds-rte-lib/src/lib/components/dropdown/dropdown.utils.ts","../../../projects/ds-rte-lib/src/lib/components/dropdown/dropdown.directive.ts","../../../projects/ds-rte-lib/src/lib/components/dropdown/dropdown.module.ts","../../../projects/ds-rte-lib/src/lib/components/dropdown/index.ts","../../../projects/ds-rte-lib/src/lib/components/split-button/split-button.component.ts","../../../projects/ds-rte-lib/src/lib/components/split-button/split-button.component.html","../../../projects/ds-rte-lib/src/lib/components/icon-button/icon-button.component.ts","../../../projects/ds-rte-lib/src/lib/components/icon-button/icon-button.component.html","../../../projects/ds-rte-lib/src/lib/components/icon-button-toggle/icon-button-toggle.component.ts","../../../projects/ds-rte-lib/src/lib/components/icon-button-toggle/icon-button-toggle.component.html","../../../projects/ds-rte-lib/src/lib/components/text-input/base-text-input/base-text-input.component.ts","../../../projects/ds-rte-lib/src/lib/components/text-input/base-text-input/base-text-input.component.html","../../../projects/ds-rte-lib/src/lib/components/text-input/text-input.component.ts","../../../projects/ds-rte-lib/src/lib/components/text-input/text-input.component.html","../../../projects/ds-rte-lib/src/lib/components/chip/chip.component.ts","../../../projects/ds-rte-lib/src/lib/components/chip/chip.component.html","../../../projects/ds-rte-lib/src/lib/components/textarea/textarea.component.ts","../../../projects/ds-rte-lib/src/lib/components/textarea/textarea.component.html","../../../projects/ds-rte-lib/src/lib/components/switch/switch.component.ts","../../../projects/ds-rte-lib/src/lib/components/switch/switch.component.html","../../../projects/ds-rte-lib/src/lib/components/segmented-control/segmented-control.component.ts","../../../projects/ds-rte-lib/src/lib/components/segmented-control/segmented-control.component.html","../../../projects/ds-rte-lib/src/lib/components/breadcrumbs/breadcrumb-item/breadcrumb-item.component.ts","../../../projects/ds-rte-lib/src/lib/components/breadcrumbs/breadcrumb-item/breadcrumb-item.component.html","../../../projects/ds-rte-lib/src/lib/components/breadcrumbs/breadcrumbs.component.ts","../../../projects/ds-rte-lib/src/lib/components/breadcrumbs/breadcrumbs.component.html","../../../projects/ds-rte-lib/src/lib/components/banner/banner.component.ts","../../../projects/ds-rte-lib/src/lib/components/banner/banner.component.html","../../../projects/ds-rte-lib/src/lib/components/card/card.component.ts","../../../projects/ds-rte-lib/src/lib/components/card/card.component.html","../../../projects/ds-rte-lib/src/lib/services/focus-trap.service.ts","../../../projects/ds-rte-lib/src/lib/components/popover/popover.component.ts","../../../projects/ds-rte-lib/src/lib/components/popover/popover.component.html","../../../projects/ds-rte-lib/src/lib/components/popover/popover.directive.ts","../../../projects/ds-rte-lib/src/lib/components/modal/modal-trigger/modal-trigger.directive.ts","../../../projects/ds-rte-lib/src/lib/components/modal/modal.component.ts","../../../projects/ds-rte-lib/src/lib/components/modal/modal.component.html","../../../projects/ds-rte-lib/src/lib/components/modal/modal.directive.ts","../../../projects/ds-rte-lib/src/lib/components/modal/modal.module.ts","../../../projects/ds-rte-lib/src/lib/components/searchbar/searchbar.component.ts","../../../projects/ds-rte-lib/src/lib/components/searchbar/searchbar.component.html","../../../projects/ds-rte-lib/src/lib/components/side-nav/base-side-nav/base-side-nav.component.ts","../../../projects/ds-rte-lib/src/lib/components/side-nav/base-side-nav/base-side-nav.component.html","../../../projects/ds-rte-lib/src/lib/components/side-nav/nav-item/nav-item.component.ts","../../../projects/ds-rte-lib/src/lib/components/side-nav/nav-item/nav-item.component.html","../../../projects/ds-rte-lib/src/lib/components/side-nav/nav-menu/nav-menu.component.ts","../../../projects/ds-rte-lib/src/lib/components/side-nav/nav-menu/nav-menu.component.html","../../../projects/ds-rte-lib/src/lib/components/side-nav/side-nav.component.ts","../../../projects/ds-rte-lib/src/lib/components/side-nav/side-nav.component.html","../../../projects/ds-rte-lib/src/lib/components/toast/toast.component.ts","../../../projects/ds-rte-lib/src/lib/components/toast/toast.component.html","../../../projects/ds-rte-lib/src/lib/components/toast/toast.service.ts","../../../projects/ds-rte-lib/src/lib/components/tag/tag.component.ts","../../../projects/ds-rte-lib/src/lib/components/tag/tag.component.html","../../../projects/ds-rte-lib/src/lib/components/assistive-text/assistive-text.component.ts","../../../projects/ds-rte-lib/src/lib/components/assistive-text/assistive-text.component.html","../../../projects/ds-rte-lib/src/lib/components/select/select.component.ts","../../../projects/ds-rte-lib/src/lib/components/select/select.component.html","../../../projects/ds-rte-lib/src/lib/components/tab/tab-item/tab-item.component.ts","../../../projects/ds-rte-lib/src/lib/components/tab/tab-item/tab-item.component.html","../../../projects/ds-rte-lib/src/lib/components/tab/tab.component.ts","../../../projects/ds-rte-lib/src/lib/components/tab/tab.component.html","../../../projects/ds-rte-lib/src/design-system-rte-angular.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, HostBinding, input } from \"@angular/core\";\nimport { BadgeContent } from \"@design-system-rte/core/components/badge/badge.interface\";\nimport { ButtonSize, ButtonVariant } from \"@design-system-rte/core/components/button/common/common-button\";\n\n@Component({\n selector: \"button[rteButton]\",\n standalone: true,\n templateUrl: \"./button.component.html\",\n styleUrl: \"./button.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ButtonComponent {\n readonly rteButtonVariant = input<ButtonVariant>(\"primary\");\n readonly rteButtonSize = input<ButtonSize>(\"m\");\n readonly rteBadgeCount = input<number>();\n readonly rteBadgeContent = input<BadgeContent>();\n\n @HostBinding(\"class\") get classes() {\n return `rte-button ${this.rteButtonVariant()} size-${this.rteButtonSize()}`;\n }\n\n readonly shouldDisplayBadge = computed(() => {\n const count = this.rteBadgeCount();\n const content = this.rteBadgeContent();\n\n return (count && count > 0 && content === \"number\") || content === \"icon\";\n });\n}\n","<span class=\"rte-button-label\">\n <ng-content />\n <!-- Le badge est géré par BadgeDirective attachée via hostDirectives -->\n</span>\n","import { Directive, HostBinding, input } from \"@angular/core\";\nimport { GridType } from \"@design-system-rte/core/components/grid/grid.interface\";\n\n@Directive({\n selector: \"[rteGrid]\",\n standalone: true,\n})\nexport class GridDirective {\n readonly gridType = input<GridType>(\"fluid\");\n\n @HostBinding(\"class\")\n get hostClasses(): string {\n return \"grid\";\n }\n\n @HostBinding(\"attr.data-gridtype\")\n get hostDataClasses(): string {\n const variation = this.gridType();\n return `${variation}`;\n }\n constructor() {}\n}\n","import { Directive, HostBinding, input } from \"@angular/core\";\n\n@Directive({\n selector: \"[rteCol]\",\n standalone: true,\n})\nexport class ColDirective {\n readonly xxs = input<number>();\n readonly xs = input<number>();\n readonly s = input<number>();\n readonly m = input<number>();\n readonly l = input<number>();\n readonly xl = input<number>();\n\n @HostBinding(\"class\")\n get colClasses(): string {\n return [\n \"col\",\n this.generateColumnClass(\"col-xxs\", this.xxs()),\n this.generateColumnClass(\"col-xs\", this.xs()),\n this.generateColumnClass(\"col-s\", this.s()),\n this.generateColumnClass(\"col-m\", this.m()),\n this.generateColumnClass(\"col-l\", this.l()),\n this.generateColumnClass(\"col-xl\", this.xl()),\n ]\n .filter(Boolean)\n .join(\" \");\n }\n\n constructor() {}\n\n private generateColumnClass(prefix: string, size?: number): string {\n return size ? `${prefix}-${size}` : \"\";\n }\n}\n","// This file is auto-generated. Do not edit manually.\n\nimport { isValidIconName as isValidIconNameShared } from \"@design-system-rte/core/components/icon/icon-utils\";\n\nexport const RegularIcons = {\n add: \"add\",\n \"alt-route\": \"alt_route\",\n apps: \"apps\",\n \"arrow-alt-down\": \"arrow_alt_down\",\n \"arrow-alt-down-left\": \"arrow_alt_down_left\",\n \"arrow-alt-down-right\": \"arrow_alt_down_right\",\n \"arrow-alt-left\": \"arrow_alt_left\",\n \"arrow-alt-right\": \"arrow_alt_right\",\n \"arrow-alt-up\": \"arrow_alt_up\",\n \"arrow-alt-up-left\": \"arrow_alt_up_left\",\n \"arrow-alt-up-right\": \"arrow_alt_up_right\",\n \"arrow-angle-down-left\": \"arrow_angle_down_left\",\n \"arrow-angle-down-right\": \"arrow_angle_down_right\",\n \"arrow-angle-up-left\": \"arrow_angle_up_left\",\n \"arrow-angle-up-right\": \"arrow_angle_up_right\",\n \"arrow-chevron-down\": \"arrow_chevron_down\",\n \"arrow-chevron-left\": \"arrow_chevron_left\",\n \"arrow-chevron-right\": \"arrow_chevron_right\",\n \"arrow-chevron-up\": \"arrow_chevron_up\",\n \"arrow-double-down\": \"arrow_double_down\",\n \"arrow-double-left\": \"arrow_double_left\",\n \"arrow-double-right\": \"arrow_double_right\",\n \"arrow-double-up\": \"arrow_double_up\",\n \"arrow-down\": \"arrow_down\",\n \"arrow-down-left\": \"arrow_down_left\",\n \"arrow-down-right\": \"arrow_down_right\",\n \"arrow-drop-down\": \"arrow_drop_down\",\n \"arrow-drop-up\": \"arrow_drop_up\",\n \"arrow-left\": \"arrow_left\",\n \"arrow-right\": \"arrow_right\",\n \"arrow-up\": \"arrow_up\",\n \"arrow-up-left\": \"arrow_up_left\",\n \"arrow-up-right\": \"arrow_up_right\",\n asterisk: \"asterisk\",\n \"attach-file\": \"attach_file\",\n \"battery-alt-empty\": \"battery_alt_empty\",\n \"battery-alt-full\": \"battery_alt_full\",\n \"battery-charging\": \"battery_charging\",\n \"battery-empty\": \"battery_empty\",\n \"battery-full\": \"battery_full\",\n bluetooth: \"bluetooth\",\n \"bluetooth-off\": \"bluetooth_off\",\n \"chart-bar\": \"chart_bar\",\n \"chart-bar-stacked\": \"chart_bar_stacked\",\n check: \"check\",\n \"check-indeterminate\": \"check_indeterminate\",\n \"check-small\": \"check_small\",\n \"checkbox-empty\": \"checkbox_empty\",\n close: \"close\",\n compare: \"compare\",\n \"copy-all\": \"copy_all\",\n \"crisis-alert\": \"crisis_alert\",\n cut: \"cut\",\n download: \"download\",\n \"download-done\": \"download_done\",\n \"drag-handle\": \"drag_handle\",\n \"drag-indicator\": \"drag_indicator\",\n exclamation: \"exclamation\",\n \"explore-travel\": \"explore_travel\",\n \"external-link\": \"external_link\",\n filter: \"filter\",\n \"filter-off\": \"filter_off\",\n \"first-page\": \"first_page\",\n forward: \"forward\",\n fullscreen: \"fullscreen\",\n \"fullscreen-exit\": \"fullscreen_exit\",\n history: \"history\",\n \"hourglass-empty\": \"hourglass_empty\",\n \"info-i\": \"info_i\",\n language: \"language\",\n \"last-page\": \"last_page\",\n link: \"link\",\n \"link-off\": \"link_off\",\n list: \"list\",\n \"location-disabled\": \"location_disabled\",\n login: \"login\",\n logout: \"logout\",\n menu: \"menu\",\n \"menu-open\": \"menu_open\",\n monitoring: \"monitoring\",\n \"more-down\": \"more_down\",\n \"more-horiz\": \"more_horiz\",\n \"more-up\": \"more_up\",\n \"more-vert\": \"more_vert\",\n ohm: \"ohm\",\n \"open-in-full\": \"open_in_full\",\n paste: \"paste\",\n \"play-pause\": \"play_pause\",\n \"power-input\": \"power_input\",\n \"power-plug\": \"power_plug\",\n \"power-settings\": \"power_settings\",\n \"priority-high\": \"priority_high\",\n public: \"public\",\n publish: \"publish\",\n \"question-mark\": \"question_mark\",\n radar: \"radar\",\n \"radio-button-empty\": \"radio_button_empty\",\n redo: \"redo\",\n reload: \"reload\",\n remove: \"remove\",\n reply: \"reply\",\n \"reply-all\": \"reply_all\",\n route: \"route\",\n search: \"search\",\n \"side-navigation\": \"side_navigation\",\n sort: \"sort\",\n \"support-agent\": \"support_agent\",\n timeline: \"timeline\",\n \"trending-down\": \"trending_down\",\n \"trending-flat\": \"trending_flat\",\n \"trending-up\": \"trending_up\",\n tune: \"tune\",\n undo: \"undo\",\n upload: \"upload\",\n water: \"water\",\n \"water-alt\": \"water_alt\",\n wifi: \"wifi\",\n \"wifi-off\": \"wifi_off\",\n windmill: \"windmill\",\n \"zoom-in\": \"zoom_in\",\n \"zoom-out\": \"zoom_out\",\n};\n\nexport const TogglableIcons = {\n \"add-circle\": [\"add_circle_outlined\", \"add_circle_filled\"],\n \"admin-panel-settings\": [\"admin_panel_settings_outlined\", \"admin_panel_settings_filled\"],\n analytics: [\"analytics_outlined\", \"analytics_filled\"],\n archive: [\"archive_outlined\", \"archive_filled\"],\n \"arrow-circle-chevron-down\": [\"arrow_circle_chevron_down_outlined\", \"arrow_circle_chevron_down_filled\"],\n \"arrow-circle-chevron-left\": [\"arrow_circle_chevron_left_outlined\", \"arrow_circle_chevron_left_filled\"],\n \"arrow-circle-chevron-right\": [\"arrow_circle_chevron_right_outlined\", \"arrow_circle_chevron_right_filled\"],\n \"arrow-circle-chevron-up\": [\"arrow_circle_chevron_up_outlined\", \"arrow_circle_chevron_up_filled\"],\n \"arrow-circle-down\": [\"arrow_circle_down_outlined\", \"arrow_circle_down_filled\"],\n \"arrow-circle-left\": [\"arrow_circle_left_outlined\", \"arrow_circle_left_filled\"],\n \"arrow-circle-right\": [\"arrow_circle_right_outlined\", \"arrow_circle_right_filled\"],\n \"arrow-circle-up\": [\"arrow_circle_up_outlined\", \"arrow_circle_up_filled\"],\n article: [\"article_outlined\", \"article_filled\"],\n \"assignment-complete\": [\"assignment_complete_outlined\", \"assignment_complete_filled\"],\n assignment: [\"assignment_outlined\", \"assignment_filled\"],\n \"battery-alert\": [\"battery_alert_outlined\", \"battery_alert_filled\"],\n \"battery-charging-full\": [\"battery_charging_full_outlined\", \"battery_charging_full_filled\"],\n \"bolt-alt-circle\": [\"bolt_alt_circle_outlined\", \"bolt_alt_circle_filled\"],\n \"bolt-alt\": [\"bolt_alt_outlined\", \"bolt_alt_filled\"],\n \"bolt-circle\": [\"bolt_circle_outlined\", \"bolt_circle_filled\"],\n bolt: [\"bolt_outlined\", \"bolt_filled\"],\n bookmark: [\"bookmark_outlined\", \"bookmark_filled\"],\n bookmarks: [\"bookmarks_outlined\", \"bookmarks_filled\"],\n build: [\"build_outlined\", \"build_filled\"],\n \"calendar-available\": [\"calendar_available_outlined\", \"calendar_available_filled\"],\n \"calendar-busy\": [\"calendar_busy_outlined\", \"calendar_busy_filled\"],\n \"calendar-month\": [\"calendar_month_outlined\", \"calendar_month_filled\"],\n \"calendar-today\": [\"calendar_today_outlined\", \"calendar_today_filled\"],\n call: [\"call_outlined\", \"call_filled\"],\n cancel: [\"cancel_outlined\", \"cancel_filled\"],\n category: [\"category_outlined\", \"category_filled\"],\n \"chart-add\": [\"chart_add_outlined\", \"chart_add_filled\"],\n \"chart-area\": [\"chart_area_outlined\", \"chart_area_filled\"],\n \"chart-pie\": [\"chart_pie_outlined\", \"chart_pie_filled\"],\n \"chart-table\": [\"chart_table_outlined\", \"chart_table_filled\"],\n \"chat-alt\": [\"chat_alt_outlined\", \"chat_alt_filled\"],\n \"chat-alt-unread\": [\"chat_alt_unread_outlined\", \"chat_alt_unread_filled\"],\n chat: [\"chat_outlined\", \"chat_filled\"],\n \"chat-unread\": [\"chat_unread_outlined\", \"chat_unread_filled\"],\n \"check-circle\": [\"check_circle_outlined\", \"check_circle_filled\"],\n checkbox: [\"checkbox_outlined\", \"checkbox_filled\"],\n \"checkbox-indeterminate\": [\"checkbox_indeterminate_outlined\", \"checkbox_indeterminate_filled\"],\n clock: [\"clock_outlined\", \"clock_filled\"],\n \"cloud-download\": [\"cloud_download_outlined\", \"cloud_download_filled\"],\n cloud: [\"cloud_outlined\", \"cloud_filled\"],\n \"cloud-off\": [\"cloud_off_outlined\", \"cloud_off_filled\"],\n \"cloud-upload\": [\"cloud_upload_outlined\", \"cloud_upload_filled\"],\n \"comment-add\": [\"comment_add_outlined\", \"comment_add_filled\"],\n comment: [\"comment_outlined\", \"comment_filled\"],\n copy: [\"copy_outlined\", \"copy_filled\"],\n dangerous: [\"dangerous_outlined\", \"dangerous_filled\"],\n dashboard: [\"dashboard_outlined\", \"dashboard_filled\"],\n database: [\"database_outlined\", \"database_filled\"],\n delete: [\"delete_outlined\", \"delete_filled\"],\n desktop: [\"desktop_outlined\", \"desktop_filled\"],\n devices: [\"devices_outlined\", \"devices_filled\"],\n draft: [\"draft_outlined\", \"draft_filled\"],\n eco: [\"eco_outlined\", \"eco_filled\"],\n edit: [\"edit_outlined\", \"edit_filled\"],\n \"electric-meter\": [\"electric_meter_outlined\", \"electric_meter_filled\"],\n error: [\"error_outlined\", \"error_filled\"],\n explore: [\"explore_outlined\", \"explore_filled\"],\n \"explore-off\": [\"explore_off_outlined\", \"explore_off_filled\"],\n \"fast-forward\": [\"fast_forward_outlined\", \"fast_forward_filled\"],\n \"fast-rewind\": [\"fast_rewind_outlined\", \"fast_rewind_filled\"],\n feedback: [\"feedback_outlined\", \"feedback_filled\"],\n \"file-copy\": [\"file_copy_outlined\", \"file_copy_filled\"],\n \"file-download\": [\"file_download_outlined\", \"file_download_filled\"],\n \"file-upload\": [\"file_upload_outlined\", \"file_upload_filled\"],\n \"filter-alt\": [\"filter_alt_outlined\", \"filter_alt_filled\"],\n \"filter-alt-off\": [\"filter_alt_off_outlined\", \"filter_alt_off_filled\"],\n fire: [\"fire_outlined\", \"fire_filled\"],\n \"fit-screen\": [\"fit_screen_outlined\", \"fit_screen_filled\"],\n flag: [\"flag_outlined\", \"flag_filled\"],\n flash: [\"flash_outlined\", \"flash_filled\"],\n \"flash-off\": [\"flash_off_outlined\", \"flash_off_filled\"],\n \"folder-add\": [\"folder_add_outlined\", \"folder_add_filled\"],\n folder: [\"folder_outlined\", \"folder_filled\"],\n \"folder-move\": [\"folder_move_outlined\", \"folder_move_filled\"],\n \"folder-open\": [\"folder_open_outlined\", \"folder_open_filled\"],\n \"folder-shared\": [\"folder_shared_outlined\", \"folder_shared_filled\"],\n forum: [\"forum_outlined\", \"forum_filled\"],\n \"group-add\": [\"group_add_outlined\", \"group_add_filled\"],\n group: [\"group_outlined\", \"group_filled\"],\n groups: [\"groups_outlined\", \"groups_filled\"],\n headphones: [\"headphones_outlined\", \"headphones_filled\"],\n heart: [\"heart_outlined\", \"heart_filled\"],\n help: [\"help_outlined\", \"help_filled\"],\n home: [\"home_outlined\", \"home_filled\"],\n hourglass: [\"hourglass_outlined\", \"hourglass_filled\"],\n \"image-broken\": [\"image_broken_outlined\", \"image_broken_filled\"],\n image: [\"image_outlined\", \"image_filled\"],\n \"image-gallery\": [\"image_gallery_outlined\", \"image_gallery_filled\"],\n inbox: [\"inbox_outlined\", \"inbox_filled\"],\n info: [\"info_outlined\", \"info_filled\"],\n keep: [\"keep_outlined\", \"keep_filled\"],\n \"keep-off\": [\"keep_off_outlined\", \"keep_off_filled\"],\n label: [\"label_outlined\", \"label_filled\"],\n laptop: [\"laptop_outlined\", \"laptop_filled\"],\n \"left-panel-close\": [\"left_panel_close_outlined\", \"left_panel_close_filled\"],\n \"left-panel-open\": [\"left_panel_open_outlined\", \"left_panel_open_filled\"],\n \"light-off\": [\"light_off_outlined\", \"light_off_filled\"],\n \"lightbulb-alt\": [\"lightbulb_alt_outlined\", \"lightbulb_alt_filled\"],\n \"lightbulb-circle\": [\"lightbulb_circle_outlined\", \"lightbulb_circle_filled\"],\n lightbulb: [\"lightbulb_outlined\", \"lightbulb_filled\"],\n \"list-alt\": [\"list_alt_outlined\", \"list_alt_filled\"],\n \"location-me\": [\"location_me_outlined\", \"location_me_filled\"],\n \"location-off\": [\"location_off_outlined\", \"location_off_filled\"],\n \"location-on\": [\"location_on_outlined\", \"location_on_filled\"],\n lock: [\"lock_outlined\", \"lock_filled\"],\n \"lock-open\": [\"lock_open_outlined\", \"lock_open_filled\"],\n \"lock-open-right\": [\"lock_open_right_outlined\", \"lock_open_right_filled\"],\n mail: [\"mail_outlined\", \"mail_filled\"],\n \"mail-unread\": [\"mail_unread_outlined\", \"mail_unread_filled\"],\n map: [\"map_outlined\", \"map_filled\"],\n mic: [\"mic_outlined\", \"mic_filled\"],\n \"mic-off\": [\"mic_off_outlined\", \"mic_off_filled\"],\n \"mode-dark\": [\"mode_dark_outlined\", \"mode_dark_filled\"],\n \"mode-light\": [\"mode_light_outlined\", \"mode_light_filled\"],\n notification: [\"notification_outlined\", \"notification_filled\"],\n \"notification-important\": [\"notification_important_outlined\", \"notification_important_filled\"],\n \"notification-off\": [\"notification_off_outlined\", \"notification_off_filled\"],\n \"notification-unread\": [\"notification_unread_outlined\", \"notification_unread_filled\"],\n palette: [\"palette_outlined\", \"palette_filled\"],\n \"pause-circle\": [\"pause_circle_outlined\", \"pause_circle_filled\"],\n pause: [\"pause_outlined\", \"pause_filled\"],\n \"photo-camera\": [\"photo_camera_outlined\", \"photo_camera_filled\"],\n \"play-circle\": [\"play_circle_outlined\", \"play_circle_filled\"],\n play: [\"play_outlined\", \"play_filled\"],\n power: [\"power_outlined\", \"power_filled\"],\n \"power-off\": [\"power_off_outlined\", \"power_off_filled\"],\n \"power-plug-connect\": [\"power_plug_connect_outlined\", \"power_plug_connect_filled\"],\n \"power-settings-circle\": [\"power_settings_circle_outlined\", \"power_settings_circle_filled\"],\n \"power-solar\": [\"power_solar_outlined\", \"power_solar_filled\"],\n \"power-switch\": [\"power_switch_outlined\", \"power_switch_filled\"],\n \"power-wind\": [\"power_wind_outlined\", \"power_wind_filled\"],\n print: [\"print_outlined\", \"print_filled\"],\n \"right-panel-close\": [\"right_panel_close_outlined\", \"right_panel_close_filled\"],\n \"right-panel-open\": [\"right_panel_open_outlined\", \"right_panel_open_filled\"],\n save: [\"save_outlined\", \"save_filled\"],\n send: [\"send_outlined\", \"send_filled\"],\n settings: [\"settings_outlined\", \"settings_filled\"],\n share: [\"share_outlined\", \"share_filled\"],\n \"skip-next\": [\"skip_next_outlined\", \"skip_next_filled\"],\n \"skip-previous\": [\"skip_previous_outlined\", \"skip_previous_filled\"],\n smartphone: [\"smartphone_outlined\", \"smartphone_filled\"],\n star: [\"star_outlined\", \"star_filled\"],\n \"sticky-note\": [\"sticky_note_outlined\", \"sticky_note_filled\"],\n \"stop-circle\": [\"stop_circle_outlined\", \"stop_circle_filled\"],\n stop: [\"stop_outlined\", \"stop_filled\"],\n subtitles: [\"subtitles_outlined\", \"subtitles_filled\"],\n \"text-snippet\": [\"text_snippet_outlined\", \"text_snippet_filled\"],\n \"trash-restore\": [\"trash_restore_outlined\", \"trash_restore_filled\"],\n unarchive: [\"unarchive_outlined\", \"unarchive_filled\"],\n \"user-add\": [\"user_add_outlined\", \"user_add_filled\"],\n \"user-circle\": [\"user_circle_outlined\", \"user_circle_filled\"],\n user: [\"user_outlined\", \"user_filled\"],\n \"user-settings\": [\"user_settings_outlined\", \"user_settings_filled\"],\n verified: [\"verified_outlined\", \"verified_filled\"],\n \"video-camera\": [\"video_camera_outlined\", \"video_camera_filled\"],\n \"video-camera-off\": [\"video_camera_off_outlined\", \"video_camera_off_filled\"],\n \"video-gallery\": [\"video_gallery_outlined\", \"video_gallery_filled\"],\n \"view-agenda\": [\"view_agenda_outlined\", \"view_agenda_filled\"],\n \"view-column\": [\"view_column_outlined\", \"view_column_filled\"],\n \"view-grid\": [\"view_grid_outlined\", \"view_grid_filled\"],\n \"view-kanban\": [\"view_kanban_outlined\", \"view_kanban_filled\"],\n \"view-module\": [\"view_module_outlined\", \"view_module_filled\"],\n \"view-timeline\": [\"view_timeline_outlined\", \"view_timeline_filled\"],\n \"visibility-hide\": [\"visibility_hide_outlined\", \"visibility_hide_filled\"],\n \"visibility-show\": [\"visibility_show_outlined\", \"visibility_show_filled\"],\n \"volume-down\": [\"volume_down_outlined\", \"volume_down_filled\"],\n \"volume-mute\": [\"volume_mute_outlined\", \"volume_mute_filled\"],\n \"volume-off\": [\"volume_off_outlined\", \"volume_off_filled\"],\n \"volume-up\": [\"volume_up_outlined\", \"volume_up_filled\"],\n warning: [\"warning_outlined\", \"warning_filled\"],\n waterdrop: [\"waterdrop_outlined\", \"waterdrop_filled\"],\n};\n\nexport function isValidIconName(iconName: string): boolean {\n return isValidIconNameShared(iconName, RegularIcons, TogglableIcons);\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { inject, Injectable } from \"@angular/core\";\n\nimport { RegularIcons, TogglableIcons } from \"./icon-map\";\n\nexport type RegularIconIdKey = keyof typeof RegularIcons;\nexport type TogglableIconIdKey = keyof typeof TogglableIcons;\n\n@Injectable()\nexport class IconService {\n private http = inject(HttpClient);\n\n getSvg(name: RegularIconIdKey | TogglableIconIdKey, appearance: \"outlined\" | \"filled\") {\n if (!this.http) {\n throw new Error(\"HttpClient is not available\");\n }\n const togglableIcon = TogglableIcons[name as TogglableIconIdKey];\n\n if (togglableIcon) {\n const [outlinedIconName, filledIconName] = togglableIcon;\n\n const iconName = appearance === \"filled\" ? filledIconName : outlinedIconName;\n return this.http.get(`assets/icons/${iconName}.svg`, { responseType: \"text\" });\n } else {\n const iconName = RegularIcons[name as RegularIconIdKey];\n if (!iconName) {\n throw new Error(`Icon ${name} not found`);\n }\n return this.http.get(`assets/icons/${iconName}.svg`, { responseType: \"text\" });\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n effect,\n inject,\n input,\n} from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\nimport { Observable } from \"rxjs\";\n\nimport { IconService, RegularIconIdKey, TogglableIconIdKey } from \"./icon.service\";\n\n@Component({\n selector: \"rte-icon\",\n imports: [CommonModule],\n standalone: true,\n templateUrl: \"./icon.component.html\",\n styleUrl: \"./icon.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [IconService],\n})\nexport class IconComponent {\n readonly name = input.required<string>();\n readonly size = input(20);\n readonly color = input(\"currentColor\");\n readonly classes = input(\"\");\n readonly appearance = input<\"outlined\" | \"filled\">();\n destroyRef = inject(DestroyRef);\n\n svgContent: SafeHtml | null = null;\n svg!: Observable<string>;\n\n private sanitizer = inject(DomSanitizer);\n private iconService = inject(IconService);\n private cdr = inject(ChangeDetectorRef);\n\n constructor() {\n effect(() => {\n this.setSvgContent(this.name());\n });\n }\n\n private setSvgContent(svgName: string) {\n const svgFile = this.iconService.getSvg(\n svgName as RegularIconIdKey | TogglableIconIdKey,\n this.appearance() || \"outlined\",\n );\n\n svgFile.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((res) => {\n const size = this.size();\n const svgWithSize = res.replace(/<svg([^>]*)>/, `<svg$1 width=\"${size}\" height=\"${size}\">`);\n\n this.svgContent = this.sanitizer.bypassSecurityTrustHtml(svgWithSize);\n this.cdr.markForCheck();\n });\n }\n}\n","<div\n class=\"rte-icon-container\"\n [innerHTML]=\"svgContent\"\n [style.height]=\"size() + 'px'\"\n [style.width]=\"size() + 'px'\"\n></div>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, input } from \"@angular/core\";\n\nimport { IconComponent } from \"../icon/icon.component\";\n\n@Component({\n selector: \"rte-link\",\n imports: [CommonModule, IconComponent],\n standalone: true,\n templateUrl: \"./link.component.html\",\n styleUrl: \"./link.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LinkComponent {\n readonly label = input(\"\");\n readonly href = input<string>(\"#\");\n readonly subtle = input<boolean>(false);\n readonly externalLink = input<boolean>(false);\n readonly reverse = input<boolean>(false);\n readonly maxWidth = input<number>();\n}\n","<a\n href=\"{{ href() }}\"\n class=\"rte-link\"\n role=\"link\"\n [ngClass]=\"{ subtle: subtle(), reverse: reverse() }\"\n [target]=\"externalLink() ? '_blank' : undefined\"\n [rel]=\"externalLink() ? 'noopener noreferrer' : null\"\n [style.max-width]=\"maxWidth() + 'px'\"\n>\n <span class=\"rte-link-label\" [style.max-width]=\"maxWidth() + 'px'\">\n {{ label() }}\n </span>\n <rte-icon\n *ngIf=\"externalLink()\"\n name=\"external-link\"\n style=\"align-self: start; margin-left: 2px\"\n [size]=\"12\"\n ></rte-icon>\n</a>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input } from \"@angular/core\";\nimport { labelSize } from \"@design-system-rte/core/components/radio-button/radio-button.constants\";\n\n@Component({\n selector: \"rte-radio-button\",\n imports: [CommonModule],\n standalone: true,\n templateUrl: \"./radio-button.component.html\",\n styleUrl: \"./radio-button.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioButtonComponent {\n readonly label = input(\"\");\n readonly groupName = input(\"\");\n readonly showLabel = input(true);\n readonly disabled = input(false);\n readonly error = input(false);\n readonly readOnly = input(false);\n labelSize = labelSize;\n\n readonly isDisplayed = computed(() => !(this.disabled() && this.error()));\n}\n","<div *ngIf=\"isDisplayed()\" class=\"rte-radio-button-container\">\n <input\n type=\"radio\"\n class=\"rte-radio-button\"\n [id]=\"label()\"\n [value]=\"label()\"\n [size]=\"labelSize\"\n [name]=\"groupName()\"\n [ngClass]=\"{ error: error(), 'read-only': readOnly() }\"\n [disabled]=\"disabled()\"\n />\n <label\n *ngIf=\"showLabel()\"\n class=\"rte-radio-button-label\"\n [for]=\"label()\"\n [ngClass]=\"{\n error: error(),\n 'read-only': readOnly(),\n disabled: disabled(),\n }\"\n >\n {{ label() }}\n </label>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input } from \"@angular/core\";\n\nimport { RadioButtonComponent } from \"../radio-button/radio-button.component\";\n\n@Component({\n selector: \"rte-radio-button-group\",\n imports: [CommonModule, RadioButtonComponent],\n standalone: true,\n templateUrl: \"./radio-button-group.component.html\",\n styleUrl: \"./radio-button-group.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioButtonGroupComponent {\n readonly groupName = input(\"\");\n readonly items = input<string[]>([]);\n readonly direction = input(\"horizontal\");\n readonly showItemsLabel = input(true);\n readonly groupTitle = input(\"\");\n readonly showGroupTitle = input(false);\n readonly groupHelpText = input(\"\");\n readonly showHelpText = input(false);\n readonly errorMessage = input(\"\");\n readonly error = input(false);\n readonly disabled = input(false);\n readonly readOnly = input(false);\n\n readonly isDisplayed = computed(() => !(this.disabled() && this.error()));\n}\n","<div *ngIf=\"isDisplayed()\" class=\"radio-button-group-container\">\n <div\n class=\"radio-button-group-header\"\n [ngClass]=\"{\n disabled: disabled(),\n error: error(),\n 'read-only': readOnly(),\n }\"\n >\n <h3 *ngIf=\"showGroupTitle()\" class=\"group-title\">\n {{ groupTitle() }}\n </h3>\n <p *ngIf=\"showHelpText()\" class=\"group-help-text\">\n {{ groupHelpText() }}\n </p>\n <p *ngIf=\"error()\" class=\"group-error-message\">\n {{ errorMessage() }}\n </p>\n </div>\n <div\n class=\"radio-button-group\"\n [ngClass]=\"{ horizontal: direction() === 'horizontal', vertical: direction() === 'vertical' }\"\n >\n <ng-container *ngFor=\"let item of items()\">\n <rte-radio-button\n [label]=\"item\"\n [groupName]=\"groupName()\"\n [showLabel]=\"showItemsLabel()\"\n [disabled]=\"disabled()\"\n [error]=\"error()\"\n [readOnly]=\"readOnly()\"\n />\n </ng-container>\n </div>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, input } from \"@angular/core\";\n\nimport { IconComponent } from \"../icon/icon.component\";\n\n@Component({\n selector: \"rte-checkbox\",\n imports: [CommonModule, IconComponent],\n standalone: true,\n templateUrl: \"./checkbox.component.html\",\n styleUrl: \"./checkbox.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxComponent {\n readonly id = input.required<string>();\n readonly label = input.required<string>();\n readonly value = input(\"\");\n readonly indeterminate = input(false);\n readonly description = input(\"\");\n readonly showLabel = input(true);\n readonly disabled = input(false);\n readonly error = input(false);\n readonly errorMessage = input(\"\");\n readonly readOnly = input(false);\n readonly checked = input(false);\n\n onKeydown(event: KeyboardEvent) {\n if (event.code === \"Space\") {\n if (this.readOnly()) {\n event.preventDefault();\n }\n }\n }\n}\n","<div class=\"rte-checkbox-container\">\n <input\n type=\"checkbox\"\n class=\"rte-checkbox\"\n [id]=\"id()\"\n [value]=\"value()\"\n [ngClass]=\"{ error: error(), 'read-only': readOnly() }\"\n [disabled]=\"disabled()\"\n [indeterminate]=\"indeterminate()\"\n [checked]=\"checked()\"\n (keydown)=\"onKeydown($event)\"\n />\n <rte-icon class=\"rte-checkbox-icons rte-checkbox-icon-selected\" name=\"check-small\" [size]=\"16\" />\n <rte-icon class=\"rte-checkbox-icons rte-checkbox-icon-indeterminated\" name=\"check-indeterminate\" [size]=\"16\" />\n <div class=\"rte-checkbox-text-container\">\n <label\n *ngIf=\"showLabel()\"\n class=\"rte-checkbox-label\"\n [for]=\"id()\"\n [ngClass]=\"{\n error: error(),\n 'read-only': readOnly(),\n disabled: disabled(),\n }\"\n >\n {{ label() }}\n </label>\n <p class=\"rte-checkbox-description\">{{ description() }}</p>\n <p *ngIf=\"error() && errorMessage()\" class=\"rte-checkbox-error\">{{ errorMessage() }}</p>\n </div>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input } from \"@angular/core\";\n\nimport { CheckboxComponent } from \"../checkbox/checkbox.component\";\n\n@Component({\n selector: \"rte-checkbox-group\",\n imports: [CommonModule, CheckboxComponent],\n standalone: true,\n templateUrl: \"./checkbox-group.component.html\",\n styleUrl: \"./checkbox-group.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxGroupComponent {\n readonly items = input.required<string[]>();\n readonly direction = input(\"horizontal\");\n readonly showItemsLabel = input(true);\n readonly groupTitle = input(\"\");\n readonly showGroupTitle = input(false);\n readonly groupHelpText = input(\"\");\n readonly showHelpText = input(false);\n readonly errorMessage = input(\"\");\n readonly error = input(false);\n readonly disabled = input(false);\n readonly readOnly = input(false);\n\n readonly isDisplayed = computed(() => !(this.disabled() && this.error()));\n}\n","<div *ngIf=\"isDisplayed()\" class=\"checkbox-group-container\">\n <div\n class=\"checkbox-group-header\"\n [ngClass]=\"{\n disabled: disabled(),\n error: error(),\n 'read-only': readOnly(),\n }\"\n >\n <h3 *ngIf=\"showGroupTitle()\" class=\"group-title\">\n {{ groupTitle() }}\n </h3>\n <p *ngIf=\"showHelpText()\" class=\"group-help-text\">\n {{ groupHelpText() }}\n </p>\n <p *ngIf=\"error()\" class=\"group-error-message\">\n {{ errorMessage() }}\n </p>\n </div>\n <div\n class=\"checkbox-group\"\n [ngClass]=\"{ horizontal: direction() === 'horizontal', vertical: direction() === 'vertical' }\"\n >\n <ng-container *ngFor=\"let item of items(); let i = index\">\n <rte-checkbox\n [id]=\"item + '-' + i\"\n [label]=\"item\"\n [showLabel]=\"showItemsLabel()\"\n [disabled]=\"disabled()\"\n [error]=\"error()\"\n [readOnly]=\"readOnly()\"\n />\n </ng-container>\n </div>\n</div>\n","import { Injectable, ComponentRef, Type, ViewContainerRef } from \"@angular/core\";\n\n@Injectable({ providedIn: \"root\" })\nexport class OverlayService {\n private overlayRoot?: HTMLElement;\n private activeOverlays = new Set<ComponentRef<unknown>>();\n private isNavigationFrozen = false;\n\n constructor() {}\n\n private getOverlayRoot(freezeNavigation: boolean): HTMLElement {\n if (!this.overlayRoot) {\n this.overlayRoot = document.getElementById(\"overlay-root\") as HTMLElement;\n\n if (!this.overlayRoot) {\n this.overlayRoot = document.createElement(\"div\");\n this.overlayRoot.id = \"overlay-root\";\n this.overlayRoot.tabIndex = -1;\n if (freezeNavigation) {\n this.isNavigationFrozen = true;\n this.overlayRoot.style.position = \"fixed\";\n this.overlayRoot.style.width = \"100%\";\n this.overlayRoot.style.height = \"100%\";\n this.overlayRoot.style.top = \"0\";\n this.overlayRoot.style.left = \"0\";\n this.overlayRoot.style.zIndex = \"999\";\n document.body.style.overflow = \"hidden\";\n }\n document.body.appendChild(this.overlayRoot);\n }\n }\n return this.overlayRoot;\n }\n\n createWithoutAppend<T>(component: Type<T>, viewContainer: ViewContainerRef): ComponentRef<T> {\n return viewContainer.createComponent(component);\n }\n\n create<T>(component: Type<T>, viewContainer: ViewContainerRef, freezeNavigation: boolean = false): ComponentRef<T> {\n const root = this.getOverlayRoot(freezeNavigation);\n\n const componentRef = viewContainer.createComponent(component);\n\n root.appendChild(componentRef.location.nativeElement);\n this.activeOverlays.add(componentRef);\n\n const originalDestroy = componentRef.destroy.bind(componentRef);\n componentRef.destroy = () => {\n this.activeOverlays.delete(componentRef);\n originalDestroy();\n };\n\n return componentRef;\n }\n\n addToOverlay<T>(componentRef: ComponentRef<T>): void {\n const root = this.getOverlayRoot(this.isNavigationFrozen);\n root.appendChild(componentRef.location.nativeElement);\n this.activeOverlays.add(componentRef);\n }\n\n destroy() {\n if (this.activeOverlays.size === 0) {\n if (this.isNavigationFrozen) {\n document.body.style.overflow = \"unset\";\n }\n this.overlayRoot?.remove();\n this.overlayRoot = undefined;\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, input } from \"@angular/core\";\nimport { Alignment, Position } from \"@design-system-rte/core/common/common-types\";\n\n@Component({\n selector: \"rte-tooltip\",\n imports: [CommonModule],\n standalone: true,\n templateUrl: \"./tooltip.component.html\",\n styleUrl: \"./tooltip.component.scss\",\n})\nexport class TooltipComponent {\n readonly label = input.required<string>();\n readonly position = input<Exclude<Position, \"auto\">>(\"top\");\n readonly alignment = input<Alignment>(\"center\");\n readonly arrow = input<boolean>(true);\n}\n","<div class=\"tooltip {{ position() }} {{ alignment() }}\" [ngClass]=\"{ arrow: arrow() }\">\n <span role=\"tooltip\" class=\"tooltip-label\"> {{ label() }} </span>\n</div>\n","import {\n AfterViewInit,\n ComponentRef,\n Directive,\n ElementRef,\n HostListener,\n inject,\n input,\n OnDestroy,\n Renderer2,\n ViewContainerRef,\n} from \"@angular/core\";\nimport { Position } from \"@design-system-rte/core/common/common-types\";\nimport { TOOLTIP_FADE_OUT_DURATION, TOOLTIP_GAP } from \"@design-system-rte/core/components/tooltip/tooltip.constants\";\nimport { getTooltipGap } from \"@design-system-rte/core/components/tooltip/tooltip.utils\";\nimport { getAutoPlacement, getCoordinates } from \"@design-system-rte/core/components/utils/auto-placement\";\nimport { FOCUSABLE_ELEMENTS_QUERY } from \"@design-system-rte/core/constants/dom/dom.constants\";\n\nimport { OverlayService } from \"../../services/overlay.service\";\n\nimport { TooltipComponent } from \"./tooltip.component\";\n\n@Directive({\n selector: \"[rteTooltip]\",\n standalone: true,\n})\nexport class TooltipDirective implements AfterViewInit, OnDestroy {\n readonly rteTooltip = input.required<string>();\n readonly rteTooltipPosition = input<Position>(\"auto\");\n readonly rteTooltipAlignment = input(\"center\");\n readonly rteTooltipArrow = input(true);\n readonly rteTooltipShouldFocusTrigger = input(true);\n readonly rteTooltipGap = input<number>(TOOLTIP_GAP);\n\n private tooltipRef: ComponentRef<TooltipComponent> | null = null;\n private hostElement: HTMLElement;\n private overlayService: OverlayService;\n\n private elementRef = inject(ElementRef);\n private viewContainerRef = inject(ViewContainerRef);\n private renderer = inject(Renderer2);\n\n @HostListener(\"mouseenter\")\n onMouseEnter(): void {\n this.showTooltip();\n }\n\n @HostListener(\"mouseleave\")\n onMouseLeave(): void {\n this.hideTooltip();\n }\n\n @HostListener(\"focus\")\n onFocus(): void {\n this.showTooltip();\n }\n\n @HostListener(\"blur\")\n onBlur(): void {\n this.hideTooltip();\n }\n\n constructor() {\n this.overlayService = inject(OverlayService);\n this.hostElement = this.elementRef.nativeElement;\n }\n\n ngAfterViewInit() {\n if (!this.rteTooltipShouldFocusTrigger()) {\n this.renderer.setAttribute(this.hostElement, \"tabindex\", \"-1\");\n const focusableTrigger = this.hostElement.querySelectorAll(FOCUSABLE_ELEMENTS_QUERY)[0];\n focusableTrigger.addEventListener(\"focus\", () => this.onFocus());\n focusableTrigger.addEventListener(\"blur\", () => this.onBlur());\n } else {\n this.renderer.setAttribute(this.hostElement, \"tabindex\", \"0\");\n }\n window.addEventListener(\"scroll\", this.positionTooltip.bind(this));\n }\n\n ngOnDestroy() {\n if (!this.rteTooltipShouldFocusTrigger()) {\n const focusableTrigger = this.hostElement.querySelectorAll(FOCUSABLE_ELEMENTS_QUERY)[0];\n focusableTrigger.removeEventListener(\"focus\", () => this.onFocus());\n focusableTrigger.removeEventListener(\"blur\", () => this.onBlur());\n }\n window.removeEventListener(\"scroll\", this.positionTooltip.bind(this));\n }\n\n showTooltip(): void {\n if (this.tooltipRef) {\n this.tooltipRef.destroy();\n }\n\n this.tooltipRef = this.overlayService.create(TooltipComponent, this.viewContainerRef);\n this.assignDirectiveToComponent();\n this.positionTooltip();\n }\n\n private assignDirectiveToComponent(): void {\n if (this.tooltipRef) {\n const tooltipElement = this.tooltipRef.location.nativeElement;\n const gap = getTooltipGap(this.rteTooltipArrow(), this.rteTooltipGap());\n const position =\n this.rteTooltipPosition() === \"auto\"\n ? getAutoPlacement(this.hostElement, tooltipElement, \"top\", gap, true)\n : this.rteTooltipPosition();\n\n this.tooltipRef.setInput(\"label\", this.rteTooltip());\n this.tooltipRef.setInput(\"position\", position);\n this.tooltipRef.setInput(\"alignment\", this.rteTooltipAlignment());\n this.tooltipRef.setInput(\"arrow\", this.rteTooltipArrow());\n }\n }\n\n private positionTooltip(): void {\n if (this.tooltipRef) {\n const tooltipElement = this.tooltipRef.location.nativeElement;\n const gap = getTooltipGap(this.rteTooltipArrow(), this.rteTooltipGap());\n const positions = getCoordinates(this.tooltipRef.instance.position(), this.hostElement, tooltipElement, gap);\n\n this.renderer.setStyle(this.hostElement, \"position\", \"relative\");\n this.renderer.setStyle(tooltipElement, \"top\", `${positions.top}px`);\n this.renderer.setStyle(tooltipElement, \"left\", `${positions.left}px`);\n }\n }\n\n private hideTooltip(): void {\n if (this.tooltipRef) {\n const tooltipElement = this.tooltipRef.location.nativeElement;\n\n this.renderer.setStyle(tooltipElement, \"opacity\", \"0\");\n\n setTimeout(() => {\n if (this.tooltipRef) {\n this.tooltipRef.destroy();\n this.tooltipRef = null;\n this.overlayService.destroy();\n }\n }, TOOLTIP_FADE_OUT_DURATION);\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, input, computed, ChangeDetectionStrategy } from \"@angular/core\";\nimport { BadgeContent, BadgeSize, BadgeType } from \"@design-system-rte/core/components/badge/badge.interface\";\nimport {\n getBadgeIconSize,\n getDisplayCount,\n getShowBadge,\n getShowIcon,\n getShowText,\n} from \"@design-system-rte/core/components/badge/badge.utils\";\n\nimport { isValidIconName } from \"../icon/icon-map\";\nimport { IconComponent } from \"../icon/icon.component\";\n\n@Component({\n selector: \"rte-badge\",\n imports: [CommonModule, IconComponent],\n standalone: true,\n templateUrl: \"./badge.component.html\",\n styleUrl: \"./badge.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BadgeComponent {\n readonly badgeType = input<BadgeType>(\"brand\");\n readonly badgeSize = input<BadgeSize>(\"m\");\n readonly badgeContent = input<BadgeContent>(\"number\");\n readonly count = input<number | undefined>();\n readonly icon = input<string>(\"notification\");\n readonly simpleBadge = input<boolean>(false);\n\n readonly isValidIconName = computed(() => {\n const icon = this.icon();\n return isValidIconName(icon!);\n });\n\n readonly showIcon = computed(() =>\n getShowIcon({\n size: this.badgeSize(),\n content: this.badgeContent(),\n iconSize: this.iconSize(),\n }),\n );\n\n readonly showText = computed(() =>\n getShowText({\n size: this.badgeSize(),\n content: this.badgeContent(),\n count: this.count(),\n }),\n );\n\n readonly displayCount = computed(() => getDisplayCount(this.count()));\n readonly countOverflow = computed(() => this.showText() && this.displayCount().length > 2);\n readonly iconSize = computed(() => getBadgeIconSize(this.badgeSize()));\n\n readonly showBadge = computed(() =>\n getShowBadge({\n size: this.badgeSize(),\n content: this.badgeContent(),\n count: this.count(),\n iconSize: this.iconSize(),\n }),\n );\n}\n","<div\n class=\"badge size-{{ badgeSize() }} type-{{ badgeType() }}\"\n data-testid=\"badge\"\n [attr.data-simple-badge]=\"simpleBadge()\"\n [ngClass]=\"{ hidden: !showBadge(), 'count-overflow': countOverflow() }\"\n>\n <rte-icon *ngIf=\"showIcon()\" class=\"badge-icon\" [name]=\"icon()!\" [size]=\"iconSize()!\" />\n <span *ngIf=\"showText()\" class=\"badge-text\">\n {{ displayCount() }}\n </span>\n</div>\n","import {\n Directive,\n input,\n OnChanges,\n OnDestroy,\n ViewContainerRef,\n ComponentRef,\n inject,\n ElementRef,\n Renderer2,\n OnInit,\n} from \"@angular/core\";\nimport { BadgeType, BadgeSize, BadgeContent } from \"@design-system-rte/core/components/badge/badge.interface\";\n\nimport { RegularIconIdKey, TogglableIconIdKey } from \"../icon/icon.service\";\n\nimport { BadgeComponent } from \"./badge.component\";\n\n@Directive({\n selector: \"[rteBadge]\",\n standalone: true,\n})\nexport class BadgeDirective implements OnInit, OnChanges, OnDestroy {\n readonly rteBadgeType = input<BadgeType>(\"brand\");\n readonly rteBadgeSize = input<BadgeSize>(\"m\");\n readonly rteBadgeContent = input<BadgeContent>(\"number\");\n readonly rteBadgeCount = input<number | undefined>();\n readonly rteBadgeIcon = input<RegularIconIdKey | TogglableIconIdKey>(\"settings\");\n\n private badgeComponentRef: ComponentRef<BadgeComponent> | null = null;\n private hostElement: HTMLElement;\n\n private readonly viewContainer = inject(ViewContainerRef);\n private readonly elementRef = inject(ElementRef);\n private readonly renderer = inject(Renderer2);\n\n constructor() {\n this.hostElement = this.elementRef.nativeElement;\n }\n\n ngOnInit(): void {\n this.badgeComponentRef = this.viewContainer.createComponent(BadgeComponent);\n this.assignDirectiveToComponent();\n this.appendComponentToHost();\n this.renderer.setStyle(this.hostElement, \"position\", \"relative\");\n }\n\n ngOnChanges(): void {\n this.assignDirectiveToComponent();\n }\n\n ngOnDestroy(): void {\n if (this.badgeComponentRef) {\n this.badgeComponentRef.destroy();\n }\n }\n\n private assignDirectiveToComponent(): void {\n if (this.badgeComponentRef) {\n this.badgeComponentRef.setInput(\"badgeType\", this.rteBadgeType());\n this.badgeComponentRef.setInput(\"badgeSize\", this.rteBadgeSize());\n this.badgeComponentRef.setInput(\"badgeContent\", this.rteBadgeContent());\n this.badgeComponentRef.setInput(\"count\", this.rteBadgeCount());\n this.badgeComponentRef.setInput(\"icon\", this.rteBadgeIcon());\n }\n }\n\n private appendComponentToHost(): void {\n if (this.badgeComponentRef) {\n this.renderer.appendChild(this.elementRef.nativeElement, this.badgeComponentRef.location.nativeElement);\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input } from \"@angular/core\";\nimport { DividerProps } from \"@design-system-rte/core/components/divider/divider.interface\";\n\n@Component({\n selector: \"rte-divider\",\n imports: [CommonModule],\n standalone: true,\n templateUrl: \"./divider.component.html\",\n styleUrl: \"./divider.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DividerComponent {\n readonly orientation = input<DividerProps[\"orientation\"]>(\"horizontal\");\n readonly thickness = input<DividerProps[\"thickness\"]>(\"light\");\n readonly appearance = input<DividerProps[\"appearance\"]>(\"default\");\n readonly endPoint = input<DividerProps[\"endPoint\"]>(\"round\");\n\n readonly isHorizontal = computed(() => this.orientation() === \"horizontal\");\n}\n","@if (isHorizontal()) {\n <hr class=\"horizontal {{ thickness() }} {{ appearance() }} {{ endPoint() }}\" />\n} @else {\n <div class=\"vertical {{ thickness() }} {{ appearance() }} {{ endPoint() }}\" role=\"separator\"></div>\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, computed, EventEmitter, input, output } from \"@angular/core\";\nimport { shouldDisplayBadge } from \"@design-system-rte/core/components/badge/badge.utils\";\nimport { DropdownItemProps } from \"@design-system-rte/core/components/dropdown/dropdown.interface\";\nimport { ENTER_KEY, SPACE_KEY } from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { BadgeComponent } from \"../../badge/badge.component\";\nimport { DividerComponent } from \"../../divider/divider.component\";\nimport { IconComponent } from \"../../icon/icon.component\";\n\nexport interface DropdownItemConfig extends Omit<DropdownItemProps, \"onClick\"> {\n id?: string;\n selected?: boolean;\n label: string;\n leftIcon?: string;\n trailingText?: string;\n disabled?: boolean;\n hasSeparator?: boolean;\n hasIndent?: boolean;\n link?: string;\n click?: EventEmitter<Event>;\n}\n\n@Component({\n selector: \"rte-dropdown-item\",\n imports: [CommonModule, IconComponent, DividerComponent, BadgeComponent],\n standalone: true,\n templateUrl: \"./dropdown-item.component.html\",\n styleUrl: \"./dropdown-item.component.scss\",\n})\nexport class DropdownItemComponent {\n readonly item = input<DropdownItemConfig>();\n readonly menuId = input<string>();\n readonly itemEvent = output<{ event: Event; id: string }>();\n\n readonly shouldDisplayBadge = computed(() => {\n const item = this.item();\n return shouldDisplayBadge({\n showBadge: !!item?.showBadge,\n badgeContent: item?.badgeContent,\n badgeCount: item?.badgeCount,\n badgeIcon: item?.badgeIcon,\n });\n });\n\n handleClick(event: Event): void {\n if (this.item()?.disabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n this.itemEvent.emit({\n event,\n id: this.item()?.id || this.item()?.label || \"\",\n });\n }\n\n handleKeyDown(event: KeyboardEvent): void {\n event.preventDefault();\n\n if ([SPACE_KEY, ENTER_KEY].includes(event.key)) {\n if (this.item()?.link) {\n const link = (event.target as HTMLElement).closest(\"li\")?.querySelector(\"a\");\n link?.click();\n } else {\n this.itemEvent.emit({\n event,\n id: this.item()?.id || this.item()?.label || \"\",\n });\n }\n }\n }\n}\n","<ng-container>\n <li\n #itemRef\n class=\"rte-dropdown-item\"\n role=\"menuitem\"\n tabindex=\"0\"\n [attr.data-disabled]=\"item()?.disabled\"\n [attr.data-active]=\"item()?.selected\"\n (click)=\"handleClick($event)\"\n (keydown)=\"handleKeyDown($event)\"\n >\n <span *ngIf=\"item()?.hasIndent && !item()?.leftIcon\" style=\"width: 20px\"></span>\n <rte-icon *ngIf=\"item()?.leftIcon\" [name]=\"item()?.leftIcon ?? ''\" />\n <ng-container [ngSwitch]=\"!!item()?.link\">\n <a *ngSwitchCase=\"true\" style=\"flex: 2; text-decoration: none; color: inherit\" [href]=\"item()?.link\"\n >{{ item()?.label }}\n </a>\n <span *ngSwitchDefault style=\"flex: 2\">{{ item()?.label }}</span>\n </ng-container>\n <div *ngIf=\"item()?.trailingText\">{{ item()?.trailingText }}</div>\n <rte-badge\n *ngIf=\"shouldDisplayBadge()\"\n [badgeType]=\"item()?.badgeType!\"\n [badgeContent]=\"item()?.badgeContent!\"\n [count]=\"item()?.badgeCount\"\n [simpleBadge]=\"true\"\n [icon]=\"item()?.badgeIcon ?? ''\"\n [badgeSize]=\"item()?.badgeSize!\"\n ></rte-badge>\n </li>\n <div *ngIf=\"item()?.hasSeparator\" class=\"dropdown-divider\">\n <rte-divider />\n </div>\n</ng-container>\n","import { Directive, TemplateRef, inject } from \"@angular/core\";\n\n@Directive({\n selector: \"[rteDropdownMenuFooter]\",\n standalone: true,\n})\nexport class DropdownMenuFooterDirective {\n readonly templateRef = inject(TemplateRef<HTMLElement>, { optional: true });\n}\n","import { Directive, TemplateRef, inject } from \"@angular/core\";\n\n@Directive({\n selector: \"[rteDropdownMenuHeader]\",\n standalone: true,\n})\nexport class DropdownMenuHeaderDirective {\n readonly templateRef = inject(TemplateRef<HTMLElement>, { optional: true });\n}\n","import { ElementRef, Injectable } from \"@angular/core\";\nimport {\n ARROW_DOWN_KEY,\n ARROW_LEFT_KEY,\n ARROW_RIGHT_KEY,\n ARROW_UP_KEY,\n ESCAPE_KEY,\n} from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\n\nexport interface KeyboardHandlingOptions {\n menuElement: ElementRef | null;\n menuId: string;\n itemIndex?: number;\n}\n\nexport interface DropdownState {\n activeMenuId: string;\n}\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class DropdownService {\n private readonly initialState: DropdownState = {\n activeMenuId: \"\",\n };\n\n state$ = new BehaviorSubject<DropdownState | null>(this.initialState);\n\n readonly activeMenuId$ = this.state$.pipe(map((state) => state?.activeMenuId));\n\n openMenu(menuId: string): void {\n this.state$.next({\n activeMenuId: menuId,\n });\n }\n\n closeAllMenus(): void {\n this.state$.next(null);\n }\n\n isMenuActive(menuId: string): Observable<boolean> {\n return this.activeMenuId$.pipe(map((activeId) => activeId === menuId));\n }\n\n reset(): void {\n this.state$.next(this.initialState);\n }\n\n handleKeyboardInput(key: string, options: KeyboardHandlingOptions): void {\n if ([ARROW_DOWN_KEY, ARROW_UP_KEY, ARROW_LEFT_KEY, ARROW_RIGHT_KEY].includes(key)) {\n this.handleKeyboardNavigation(key, options);\n }\n\n if (key === ESCAPE_KEY) {\n this.closeAllMenus();\n }\n }\n\n handleKeyboardNavigation(key: string, options: KeyboardHandlingOptions): void {\n const { menuElement } = options;\n const nativeElement = menuElement?.nativeElement as HTMLElement;\n\n switch (key) {\n case ARROW_DOWN_KEY:\n this.focusNextElement(nativeElement);\n break;\n\n case ARROW_UP_KEY:\n this.focusPreviousElement(nativeElement);\n break;\n }\n }\n\n private focusNextElement(element: HTMLElement | null): void {\n if (!element) return;\n\n const focusableElements = this.getFocusableElements(element);\n const currentIndex = focusableElements.indexOf(document.activeElement as HTMLElement);\n const nextIndex = currentIndex + 1 < focusableElements.length ? currentIndex + 1 : 0;\n\n focusableElements[nextIndex]?.focus();\n }\n\n private focusPreviousElement(element: HTMLElement | null): void {\n if (!element) return;\n\n const focusableElements = this.getFocusableElements(element);\n const currentIndex = focusableElements.indexOf(document.activeElement as HTMLElement);\n const previousIndex = currentIndex ? currentIndex - 1 : focusableElements.length - 1;\n\n focusableElements[previousIndex]?.focus();\n }\n\n private getFocusableElements(element: HTMLElement): HTMLElement[] {\n const menuId = element.dataset[\"menuId\"];\n return Array.from(element.querySelectorAll(\"li\")).filter((el) => {\n const closestMenu = el.closest(\"[data-menu-id]\") as HTMLElement;\n return closestMenu?.dataset[\"menuId\"] === menuId;\n }) as HTMLElement[];\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport {\n Component,\n computed,\n contentChild,\n ElementRef,\n HostListener,\n inject,\n input,\n output,\n TemplateRef,\n viewChild,\n} from \"@angular/core\";\nimport {\n ARROW_DOWN_KEY,\n ARROW_LEFT_KEY,\n ARROW_RIGHT_KEY,\n ARROW_UP_KEY,\n ESCAPE_KEY,\n TAB_KEY,\n} from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { DropdownService } from \"../../../services/dropdown.service\";\nimport { DividerComponent } from \"../../divider/divider.component\";\nimport { DropdownItemComponent, DropdownItemConfig } from \"../dropdown-item/dropdown-item.component\";\n\nimport { DropdownMenuFooterDirective } from \"./dropdown-menu-footer.directive\";\nimport { DropdownMenuHeaderDirective } from \"./dropdown-menu-header.directive\";\n\n@Component({\n selector: \"rte-dropdown-menu\",\n imports: [CommonModule, DropdownItemComponent, DividerComponent],\n standalone: true,\n templateUrl: \"./dropdown-menu.component.html\",\n styleUrl: \"./dropdown-menu.component.scss\",\n host: { \"[attr.data-menu-id]\": \"menuId()\" },\n})\nexport class DropdownMenuComponent {\n private readonly elementRef = inject(ElementRef);\n private readonly dropdownService = inject(DropdownService);\n\n readonly items = input<DropdownItemConfig[]>([]);\n readonly menuId = input<string>();\n\n readonly itemEvent = output<{ event: Event; id: string }>();\n\n readonly widthStyle = computed(() => (this.width() !== undefined ? `${this.width()}px` : undefined));\n readonly isOpen = input<boolean>(false);\n readonly width = input<string | null>(null);\n readonly closingMenu = output<void>();\n\n readonly menuStyle = computed(() => {\n return this.width() ? { width: this.width() + \"px\", \"max-width\": this.width() + \"px\" } : {};\n });\n\n readonly headerDirective = contentChild(DropdownMenuHeaderDirective);\n readonly footerDirective = contentChild(DropdownMenuFooterDirective);\n\n readonly headerTemplate = input<TemplateRef<HTMLElement> | undefined>(undefined);\n readonly footerTemplate = input<TemplateRef<HTMLElement> | undefined>(undefined);\n\n readonly headerContentRef = viewChild<ElementRef<HTMLElement>>(\"headerContent\");\n readonly footerContentRef = viewChild<ElementRef<HTMLElement>>(\"footerContent\");\n\n readonly hasHeaderContent = computed(() => {\n const hasTemplate = !!this.headerTemplate();\n const hasProjectedContent = !!this.headerContentRef()?.nativeElement?.children.length;\n return hasTemplate || hasProjectedContent;\n });\n\n readonly hasFooterContent = computed(() => {\n const hasTemplate = !!this.footerTemplate();\n const hasProjectedContent = !!this.footerContentRef()?.nativeElement?.children.length;\n return hasTemplate || hasProjectedContent;\n });\n\n getChildMenuId(itemIndex: number): string {\n return `${this.menuId()}:${itemIndex + 1}`;\n }\n\n handleItemEvent(itemEvent: { event: Event; id: string }): void {\n this.itemEvent.emit(itemEvent);\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n onKeyDown(event: KeyboardEvent): void {\n if (!event.target || !this.menuId()) {\n return;\n }\n\n if ([ARROW_UP_KEY, ARROW_DOWN_KEY, ARROW_LEFT_KEY, ARROW_RIGHT_KEY, TAB_KEY].includes(event.key)) {\n event.preventDefault();\n }\n\n if (event.key === ESCAPE_KEY) {\n this.closingMenu.emit();\n }\n\n const menuId = this.menuId() as string;\n this.dropdownService.handleKeyboardInput(event.key, {\n menuElement: this.elementRef,\n menuId,\n });\n }\n}\n","<div class=\"rte-dropdown-menu {{ isOpen() ? 'open' : 'closed' }}\" [ngStyle]=\"menuStyle()\">\n @if (hasHeaderContent()) {\n <div class=\"rte-dropdown-menu-header\">\n @if (headerTemplate() || headerDirective()?.templateRef) {\n <ng-container [ngTemplateOutlet]=\"(headerTemplate() || headerDirective()?.templateRef) ?? null\"></ng-container>\n } @else {\n <div #headerContent>\n <ng-content select=\"[dropdown-menu-header]\"></ng-content>\n </div>\n }\n <rte-divider />\n </div>\n }\n <div class=\"rte-dropdown-menu-content\">\n <ul class=\"rte-dropdown-items\" role=\"menu\" [attr.aria-activedescendant]=\"menuId()\">\n @for (item of items(); track item.label; let i = $index) {\n <rte-dropdown-item [item]=\"item\" (itemEvent)=\"handleItemEvent($event)\" />\n }\n </ul>\n </div>\n @if (hasFooterContent()) {\n <div class=\"rte-dropdown-menu-footer\">\n <rte-divider />\n @if (footerTemplate() || footerDirective()?.templateRef) {\n <ng-container [ngTemplateOutlet]=\"(footerTemplate() || footerDirective()?.templateRef) ?? null\"></ng-container>\n } @else {\n <div #footerContent>\n <ng-content select=\"[dropdown-menu-footer]\"></ng-content>\n </div>\n }\n </div>\n }\n</div>\n","import { Directive, ElementRef, HostListener, inject, input, output } from \"@angular/core\";\n\n@Directive({\n selector: \"[rteDropdownTrigger]\",\n standalone: true,\n})\nexport class DropdownTriggerDirective {\n readonly elementRef = inject(ElementRef);\n\n readonly rteDropdownTriggerActivateWithArrowDown = input<boolean>(false);\n\n readonly dropdownKeyDown = output<KeyboardEvent>();\n\n readonly dropdownTriggered = output<Event>();\n\n readonly dropdownTriggerFocus = output<Event>();\n\n readonly dropdownTriggerClearContent = output<Event>();\n\n readonly dropdownTriggerOpenDropdown = output<Event>();\n\n readonly dropdownTriggerCloseDropdown = output<Event>();\n\n @HostListener(\"click\", [\"$event\"])\n onDropdownTriggered(event: Event): void {\n this.dropdownTriggered.emit(event);\n }\n\n @HostListener(\"focus\", [\"$event\"])\n onDropdownTriggerFocus(event: Event): void {\n this.dropdownTriggerFocus.emit(event);\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n onKeyDown(event: KeyboardEvent): void {\n this.dropdownKeyDown.emit(event);\n }\n\n @HostListener(\"clearContent\", [\"$event\"])\n onDropdownTriggerClearContent(event: Event) {\n this.dropdownTriggerClearContent.emit(event);\n }\n\n @HostListener(\"openDropdown\", [\"$event\"])\n onDropdownTriggerOpenDropdown(event: Event) {\n this.dropdownTriggerOpenDropdown.emit(event);\n }\n @HostListener(\"closeDropdown\", [\"$event\"])\n onDropdownTriggerCloseDropdown(event: Event) {\n this.dropdownTriggerCloseDropdown.emit(event);\n }\n}\n","import { DropdownManager } from \"@design-system-rte/core/components/dropdown/DropdownManager\";\n\nexport const focusNextElement = (dropdown: HTMLElement) => {\n const menuItems = getDropdownMenuItems(dropdown);\n const activeElementIndex = menuItems.indexOf(document.activeElement as HTMLElement);\n\n if (activeElementIndex < menuItems.length - 1) {\n const nextElement = menuItems[activeElementIndex + 1];\n nextElement.focus();\n } else {\n menuItems[0]?.focus();\n }\n};\n\nexport const focusPreviousElement = (dropdown: HTMLElement) => {\n const menuItems = getDropdownMenuItems(dropdown);\n const activeElementIndex = menuItems.indexOf(document.activeElement as HTMLElement);\n\n if (activeElementIndex > 0) {\n const previousElement = menuItems[activeElementIndex - 1];\n previousElement.focus();\n } else {\n menuItems.at(-1)?.focus();\n }\n};\n\nexport const focusDropdownFirstElement = (dropdownId: string) => {\n const childDropdown = document.querySelector(`[data-menu-id='${dropdownId}']`);\n if (childDropdown) {\n const allChildDropdownElement = childDropdown?.querySelectorAll<HTMLElement>('li[role=\"menuitem\"]');\n allChildDropdownElement[0]?.focus();\n }\n};\n\nexport const focusParentDropdownFirstElement = (dropdownId: string) => {\n const parentDropdownId = DropdownManager.getParentDropdownId(dropdownId);\n const parentDropdown = document.querySelector(`[data-menu-id='${parentDropdownId}']`);\n parentDropdown?.querySelector<HTMLElement>(\"[data-active=true]\")?.focus();\n};\n\nconst getDropdownMenuItems = (dropdown: HTMLElement) => {\n const allDropdownElement = dropdown?.querySelectorAll<HTMLElement>('li[role=\"menuitem\"]');\n return allDropdownElement ? Array.from(allDropdownElement) : [];\n};\n","import {\n AfterContentInit,\n ChangeDetectorRef,\n ComponentRef,\n computed,\n contentChild,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n OnDestroy,\n output,\n Renderer2,\n signal,\n ViewContainerRef,\n} from \"@angular/core\";\nimport { waitForNextFrame } from \"@design-system-rte/core/common/animation\";\nimport { Alignment } from \"@design-system-rte/core/common/common-types\";\nimport { Position } from \"@design-system-rte/core/components/common/common-types\";\nimport { DROPDOWN_ANIMATION_DURATION } from \"@design-system-rte/core/components/dropdown/dropdown.constants\";\nimport {\n getAutoAlignment,\n getAutoPlacementDropdown,\n getCoordinates,\n} from \"@design-system-rte/core/components/utils/auto-placement\";\nimport { ARROW_DOWN_KEY, ENTER_KEY, SPACE_KEY } from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { DropdownService } from \"../../services/dropdown.service\";\nimport { OverlayService } from \"../../services/overlay.service\";\n\nimport { DropdownMenuComponent } from \"./dropdown-menu/dropdown-menu.component\";\nimport { DropdownTriggerDirective } from \"./dropdown-trigger/dropdown-trigger.directive\";\nimport { focusDropdownFirstElement } from \"./dropdown.utils\";\n\n@Directive({\n selector: \"[rteDropdown]\",\n host: {\n \"[class.dropdown]\": \"true\",\n \"[attr.data-dropdown-id]\": \"dropdownId\",\n },\n standalone: true,\n})\nexport class DropdownDirective implements AfterContentInit, OnDestroy {\n private static idCounter = 0;\n\n readonly trigger = contentChild(DropdownTriggerDirective);\n readonly menu = contentChild(DropdownMenuComponent);\n\n readonly rteDropdownId = input<string | undefined>(undefined);\n readonly rteDropdownPosition = input<Position>(\"bottom\");\n readonly rteDropdownAlignment = input<Alignment>(\"start\");\n readonly rteDropdownIsOpen = input<boolean>(false);\n readonly rteDropdownOffset = input<number>(0);\n readonly rteDropdownAutofocus = input<boolean>(true);\n readonly rteDropdownAutoOpen = input<boolean>(true);\n readonly rteDropdownWidth = input<number | null>(null);\n\n readonly menuEvent = output<{ event: Event; id: string }>();\n readonly dropdownId = `dropdown_${++DropdownDirective.idCounter}`;\n\n readonly overlayService = inject(OverlayService);\n readonly dropdownService = inject(DropdownService);\n readonly viewContainerRef = inject(ViewContainerRef);\n readonly elementRef = inject(ElementRef);\n readonly renderer = inject(Renderer2);\n readonly hostElement: HTMLElement;\n readonly destroyRef = inject(DestroyRef);\n readonly cdr = inject(ChangeDetectorRef);\n\n readonly clickedOutside = output<void>();\n readonly closedDropdown = output<void>();\n\n readonly isActive = signal(false);\n\n readonly menuInputs = computed(() => {\n const menu = this.menu();\n if (!menu) {\n return null;\n }\n return {\n items: menu.items(),\n headerTemplate: menu.headerDirective()?.templateRef,\n footerTemplate: menu.footerDirective()?.templateRef,\n width: menu.width(),\n };\n });\n\n constructor() {\n this.hostElement = this.elementRef.nativeElement;\n\n effect(() => {\n const isOpen = this.rteDropdownIsOpen();\n if (isOpen) {\n if (!this.dropdownMenuRef) {\n this.showDropdownMenu();\n if (this.rteDropdownAutofocus()) {\n waitForNextFrame(() => focusDropdownFirstElement(this.dropdownId));\n }\n }\n } else if (this.dropdownMenuRef) {\n this.dropdownService.closeAllMenus();\n }\n });\n\n effect(() => {\n const inputs = this.menuInputs();\n if (this.dropdownMenuRef && inputs) {\n this.assignInputs();\n }\n });\n }\n\n dropdownMenuRef: ComponentRef<DropdownMenuComponent> | null = null;\n\n onTrigger(): void {\n if (this.rteDropdownAutoOpen()) {\n this.showDropdownMenu();\n }\n if (this.rteDropdownAutofocus()) {\n waitForNextFrame(() => focusDropdownFirstElement(this.dropdownId));\n }\n }\n\n onTriggerKeyEvent(event: KeyboardEvent): void {\n if (\n event.key === SPACE_KEY ||\n event.key === ENTER_KEY ||\n (event.key === ARROW_DOWN_KEY && this.trigger()?.rteDropdownTriggerActivateWithArrowDown())\n ) {\n this.showDropdownMenu();\n if (this.rteDropdownAutofocus()) {\n waitForNextFrame(() => focusDropdownFirstElement(this.dropdownId));\n }\n }\n }\n\n onMenuEvent(event: { event: Event; id: string }): void {\n this.menuEvent.emit(event);\n this.isActive.set(false);\n this.dropdownService.closeAllMenus();\n }\n\n ngAfterContentInit(): void {\n if (this.trigger()) {\n this.trigger()?.dropdownTriggered.subscribe(() => {\n this.onTrigger();\n });\n\n this.trigger()?.dropdownKeyDown.subscribe((event: KeyboardEvent) => {\n this.onTriggerKeyEvent(event);\n });\n\n this.trigger()?.dropdownTriggerClearContent.subscribe(() => {\n this.closeDropdown();\n });\n this.trigger()?.dropdownTriggerOpenDropdown.subscribe(() => {\n this.showDropdownMenu();\n });\n this.trigger()?.dropdownTriggerCloseDropdown.subscribe(() => {\n this.closeDropdown();\n });\n }\n }\n\n showDropdownMenu(): void {\n if (this.dropdownMenuRef) {\n this.dropdownMenuRef.destroy();\n }\n\n this.dropdownMenuRef = this.overlayService.create(DropdownMenuComponent, this.viewContainerRef);\n\n const menuId = this.rteDropdownId() || this.dropdownId;\n\n this.dropdownMenuRef.setInput(\"menuId\", menuId);\n\n this.dropdownService.openMenu(menuId);\n\n this.assignInputs();\n this.positionDropdownMenu(this.rteDropdownPosition());\n this.addClickOutsideListener();\n\n this.dropdownMenuRef.instance.itemEvent.subscribe((event: { event: Event; id: string }) => {\n this.onMenuEvent(event);\n });\n\n const dropdownStateSubscription = this.dropdownService.state$.subscribe((state) => {\n if (state === null) {\n if (this.dropdownMenuRef) {\n this.dropdownMenuRef.destroy();\n this.dropdownMenuRef = null;\n\n this.removeClickOutsideListener();\n dropdownStateSubscription.unsubscribe();\n }\n }\n });\n\n this.destroyRef.onDestroy(() => dropdownStateSubscription.unsubscribe());\n }\n\n private assignInputs(): void {\n if (this.dropdownMenuRef) {\n const items = this.menu()?.items() ?? [];\n this.dropdownMenuRef.setInput(\"items\", items);\n this.dropdownMenuRef.setInput(\"headerTemplate\", this.menu()?.headerDirective()?.templateRef);\n this.dropdownMenuRef.setInput(\"footerTemplate\", this.menu()?.footerDirective()?.templateRef);\n }\n\n this.assignWidth();\n }\n\n private assignWidth(): void {\n if (!this.dropdownMenuRef) {\n return;\n }\n\n const width = this.menuInputs()?.width ?? this.rteDropdownWidth();\n if (width !== undefined && width !== null) {\n this.dropdownMenuRef.setInput(\"width\", width);\n waitForNextFrame(() => this.dropdownMenuRef?.setInput(\"isOpen\", true));\n } else {\n this.dropdownMenuRef.setInput(\"isOpen\", true);\n }\n }\n\n private positionDropdownMenu(position: Position = \"bottom\"): void {\n if (this.dropdownMenuRef && this.trigger()) {\n const dropdownMenuElement = this.dropdownMenuRef.location.nativeElement;\n const triggerElement = this.trigger()?.elementRef.nativeElement;\n\n if (triggerElement) {\n this.renderer.setStyle(dropdownMenuElement, \"display\", \"block\");\n this.cdr.detectChanges();\n const computedPosition: Exclude<Position, \"auto\"> =\n position === \"auto\" ? getAutoPlacementDropdown(triggerElement, dropdownMenuElement, \"bottom\") : position;\n const autoAlignment =\n this.rteDropdownAlignment() ?? getAutoAlignment(triggerElement, dropdownMenuElement, computedPosition);\n const computedCoordinates = getCoordinates(\n computedPosition,\n triggerElement,\n dropdownMenuElement.children[0],\n this.rteDropdownOffset(),\n autoAlignment,\n );\n\n this.renderer.setStyle(dropdownMenuElement, \"top\", `${computedCoordinates.top}px`);\n this.renderer.setStyle(dropdownMenuElement, \"left\", `${computedCoordinates.left}px`);\n\n this.renderer.setStyle(dropdownMenuElement, \"opacity\", \"1\");\n }\n }\n }\n\n ngOnDestroy(): void {\n this.removeClickOutsideListener();\n if (this.dropdownMenuRef) {\n this.dropdownMenuRef.destroy();\n }\n }\n\n private readonly handleClickOutside = (event: MouseEvent): void => {\n const target = event.target as Element;\n\n const isMenuItemClick = target.closest(\".rte-dropdown-item\") !== null;\n if (isMenuItemClick) {\n return;\n }\n\n const clickedInTrigger = this.hostElement.contains(target);\n const clickedInMenu = this.dropdownMenuRef?.location.nativeElement.contains(target);\n\n if (!clickedInTrigger && !clickedInMenu) {\n this.closeDropdown();\n this.clickedOutside.emit();\n }\n };\n\n private addClickOutsideListener(): void {\n document.addEventListener(\"mousedown\", this.handleClickOutside);\n }\n\n private removeClickOutsideListener(): void {\n document.removeEventListener(\"mousedown\", this.handleClickOutside);\n }\n\n private closeDropdown(): void {\n this.dropdownMenuRef?.setInput(\"isOpen\", false);\n this.isActive.set(false);\n\n setTimeout(() => {\n this.dropdownService.closeAllMenus();\n }, DROPDOWN_ANIMATION_DURATION);\n }\n}\n","import { NgModule } from \"@angular/core\";\n\nimport { DropdownItemComponent } from \"./dropdown-item/dropdown-item.component\";\nimport { DropdownMenuFooterDirective } from \"./dropdown-menu/dropdown-menu-footer.directive\";\nimport { DropdownMenuHeaderDirective } from \"./dropdown-menu/dropdown-menu-header.directive\";\nimport { DropdownMenuComponent } from \"./dropdown-menu/dropdown-menu.component\";\nimport { DropdownTriggerDirective } from \"./dropdown-trigger/dropdown-trigger.directive\";\nimport { DropdownDirective } from \"./dropdown.directive\";\n\n@NgModule({\n imports: [\n DropdownDirective,\n DropdownTriggerDirective,\n DropdownMenuComponent,\n DropdownItemComponent,\n DropdownMenuHeaderDirective,\n DropdownMenuFooterDirective,\n ],\n exports: [\n DropdownDirective,\n DropdownTriggerDirective,\n DropdownMenuComponent,\n DropdownItemComponent,\n DropdownMenuHeaderDirective,\n DropdownMenuFooterDirective,\n ],\n})\nexport class DropdownModule {}\n","// Main dropdown module - import this to get everything\nexport { DropdownModule } from \"./dropdown.module\";\n\n// Individual exports for advanced use cases\nexport { DropdownDirective } from \"./dropdown.directive\";\nexport { DropdownTriggerDirective } from \"./dropdown-trigger/dropdown-trigger.directive\";\nexport { DropdownMenuComponent } from \"./dropdown-menu/dropdown-menu.component\";\nexport { DropdownItemComponent } from \"./dropdown-item/dropdown-item.component\";\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input, signal, OnInit, OnDestroy } from \"@angular/core\";\nimport { BadgeContent, BadgeSize, BadgeType } from \"@design-system-rte/core/components/badge/badge.interface\";\nimport { shouldDisplayBadge } from \"@design-system-rte/core/components/badge/badge.utils\";\nimport { Alignment, Position } from \"@design-system-rte/core/components/common/common-types\";\nimport {\n splitButtonLeftIconSize,\n splitButtonRightIconSize,\n} from \"@design-system-rte/core/components/split-button/split-button.constants\";\nimport {\n SplitButtonAppearance,\n SplitButtonItemProps,\n SplitButtonPosition,\n SplitButtonSize,\n} from \"@design-system-rte/core/components/split-button/split-button.interface\";\nimport { ARROW_DOWN_KEY, SPACE_KEY } from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { BadgeDirective } from \"../badge/badge.directive\";\nimport { DropdownModule } from \"../dropdown\";\nimport { IconComponent } from \"../icon/icon.component\";\nimport { RegularIconIdKey, TogglableIconIdKey } from \"../icon/icon.service\";\n\n@Component({\n selector: \"rte-split-button\",\n imports: [CommonModule, IconComponent, DropdownModule, BadgeDirective],\n standalone: true,\n templateUrl: \"./split-button.component.html\",\n styleUrl: \"./split-button.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SplitButtonComponent implements OnInit, OnDestroy {\n readonly appearance = input<SplitButtonAppearance>(\"primary\");\n readonly size = input<SplitButtonSize>(\"m\");\n readonly label = input.required<string>();\n readonly compactSpacing = input(false);\n readonly position = input<SplitButtonPosition>(\"bottom-start\");\n readonly icon = input<RegularIconIdKey | TogglableIconIdKey | null>(null);\n readonly disabled = input(false);\n readonly ariaLabelRight = input<string>();\n readonly options = input<SplitButtonItemProps[]>([]);\n readonly badgeType = input<BadgeType>();\n readonly showBadge = input<boolean>(false);\n readonly badgeContent = input<BadgeContent>();\n readonly badgeCount = input<number | undefined>(undefined);\n readonly badgeIcon = input<RegularIconIdKey | TogglableIconIdKey>(\"notification\");\n readonly badgeSize = input<BadgeSize>(\"m\");\n\n readonly splitButtonLeftIconSize = computed(() => splitButtonLeftIconSize[this.size()]);\n readonly splitButtonRightIconSize = computed(() => splitButtonRightIconSize[this.size()]);\n\n readonly isOpen = signal(false);\n\n readonly internalPosition = computed(() => {\n return this.position().split(\"-\")[0] as Position;\n });\n readonly internalAlignment = computed(() => {\n return this.position().split(\"-\")[1] as Alignment;\n });\n\n readonly hasBadge = computed(() =>\n shouldDisplayBadge({\n showBadge: !!this.showBadge(),\n badgeContent: this.badgeContent(),\n badgeCount: this.badgeCount(),\n badgeIcon: this.badgeIcon(),\n }),\n );\n\n handleClickOutside(event: MouseEvent): void {\n const target = event.target as Element;\n const allDropdowns = document.querySelectorAll(\"[data-dropdown-id]\");\n const clickedInside = Array.from(allDropdowns).some((dropdown) => dropdown.contains(target));\n\n if (!clickedInside) {\n this.isOpen.set(false);\n }\n }\n\n ngOnInit(): void {\n window.addEventListener(\"click\", this.handleClickOutside.bind(this));\n }\n\n ngOnDestroy(): void {\n window.removeEventListener(\"click\", this.handleClickOutside.bind(this));\n }\n\n handleKeyDownOnRightButton(event: KeyboardEvent): void {\n this.handleKeyDown(event, ARROW_DOWN_KEY, () => this.isOpen.set(true));\n this.handleKeyDown(event, SPACE_KEY, () => this.isOpen.set(true));\n this.handleKeyDown(event, \"Escape\", () => this.isOpen.set(false));\n }\n\n handleKeyDownOnMenu(event: KeyboardEvent): void {\n this.handleKeyDown(event, \"Escape\", () => this.isOpen.set(false));\n }\n\n private handleKeyDown(event: KeyboardEvent, key: string, callback: () => void): void {\n if (event.key === key) {\n event.preventDefault();\n callback();\n }\n }\n}\n","<div\n class=\"split-button-container size-{{ size() }} {{ appearance() }}\"\n [ngClass]=\"{ 'compact-spacing': compactSpacing() }\"\n>\n <button\n class=\"split-button-left size-{{ size() }}\"\n data-testid=\"Main action button\"\n type=\"button\"\n [disabled]=\"disabled()\"\n >\n <rte-icon *ngIf=\"icon()\" [name]=\"icon()!\" [size]=\"splitButtonLeftIconSize()\" />\n <p class=\"split-button-label size-{{ size() }}\">\n {{ label() }}\n </p>\n </button>\n\n <div class=\"split-button-divider\" [ngClass]=\"{ disabled: disabled() }\"></div>\n\n <div\n rteDropdown\n style=\"height: 100%\"\n [rteDropdownPosition]=\"internalPosition()\"\n [rteDropdownAlignment]=\"internalAlignment()\"\n [attr.data-testid]=\"'Menu container'\"\n >\n @if (hasBadge()) {\n <button\n class=\"split-button-right size-{{ size() }}\"\n rteBadge\n rteDropdownTrigger\n data-testid=\"Menu button\"\n type=\"button\"\n aria-haspopup=\"menu\"\n [rteBadgeType]=\"badgeType()!\"\n [rteBadgeContent]=\"badgeContent()!\"\n [rteBadgeCount]=\"badgeCount()\"\n [rteDropdownTriggerActivateWithArrowDown]=\"true\"\n [attr.data-expanded]=\"isOpen()\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-label]=\"ariaLabelRight()\"\n [disabled]=\"disabled()\"\n (click)=\"isOpen.set(true)\"\n (keydown)=\"handleKeyDownOnRightButton($event)\"\n >\n <div class=\"split-button-right-icon-container\">\n <rte-icon name=\"arrow-chevron-down\" [size]=\"splitButtonRightIconSize()\" />\n </div>\n </button>\n } @else {\n <button\n class=\"split-button-right size-{{ size() }}\"\n rteDropdownTrigger\n data-testid=\"Menu button\"\n type=\"button\"\n aria-haspopup=\"menu\"\n [rteDropdownTriggerActivateWithArrowDown]=\"true\"\n [attr.data-expanded]=\"isOpen()\"\n [attr.aria-expanded]=\"isOpen()\"\n [attr.aria-label]=\"ariaLabelRight()\"\n [disabled]=\"disabled()\"\n (click)=\"isOpen.set(true)\"\n (keydown)=\"handleKeyDownOnRightButton($event)\"\n >\n <div class=\"split-button-right-icon-container\">\n <rte-icon name=\"arrow-chevron-down\" [size]=\"splitButtonRightIconSize()\" />\n </div>\n </button>\n }\n <rte-dropdown-menu [items]=\"options()\" />\n </div>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input, output } from \"@angular/core\";\nimport { BadgeContent, BadgeType } from \"@design-system-rte/core/components/badge/badge.interface\";\nimport { ButtonType } from \"@design-system-rte/core/components/button/button.interface\";\nimport { ButtonSize, ButtonVariant } from \"@design-system-rte/core/components/button/common/common-button\";\nimport { ButtonIconSize } from \"@design-system-rte/core/components/button/common/common-button.constants\";\n\nimport { BadgeDirective } from \"../badge/badge.directive\";\nimport { isValidIconName } from \"../icon/icon-map\";\nimport { IconComponent } from \"../icon/icon.component\";\nimport { RegularIconIdKey, TogglableIconIdKey } from \"../icon/icon.service\";\n\n@Component({\n selector: \"rte-icon-button\",\n imports: [CommonModule, IconComponent, BadgeDirective],\n standalone: true,\n templateUrl: \"./icon-button.component.html\",\n styleUrl: \"./icon-button.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconButtonComponent {\n readonly disabled = input<boolean>(false);\n readonly name = input.required<RegularIconIdKey | TogglableIconIdKey>();\n readonly size = input<ButtonSize>(\"m\");\n readonly variant = input<ButtonVariant>(\"primary\");\n readonly type = input<ButtonType>(\"button\");\n readonly appearance = input<\"outlined\" | \"filled\">(\"outlined\");\n readonly compactSpacing = input<boolean>(false);\n readonly ariaLabel = input<string | undefined>(undefined);\n readonly ariaLabelledBy = input<string | undefined>(undefined);\n readonly badgeCount = input<number>();\n readonly badgeContent = input<BadgeContent>();\n readonly badgeType = input<BadgeType>();\n readonly badgeIcon = input<RegularIconIdKey | TogglableIconIdKey>(\"settings\");\n readonly customStyle = input<Record<string, string>>();\n\n readonly buttonIconSize = computed(() => ButtonIconSize[this.size()]);\n\n readonly isValidIconName = computed(() => isValidIconName(this.name()));\n\n readonly clickEvent = output<MouseEvent | KeyboardEvent>();\n\n readonly shouldDisplayBadge = computed(() => {\n const count = this.badgeCount();\n const content = this.badgeContent();\n\n return (count && count > 0 && content === \"number\") || content === \"icon\";\n });\n\n onClick(event: MouseEvent | KeyboardEvent): void {\n this.clickEvent.emit(event);\n }\n}\n","@if (shouldDisplayBadge()) {\n <button\n *ngIf=\"isValidIconName\"\n class=\"rte-icon-button {{ variant() }} size-{{ size() }}\"\n rteBadge\n [class.compact-spacing]=\"compactSpacing()\"\n [ngStyle]=\"customStyle()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [type]=\"type()\"\n [rteBadgeType]=\"badgeType()!\"\n [rteBadgeSize]=\"size()\"\n [rteBadgeContent]=\"size() === 's' ? 'empty' : badgeContent()!\"\n [rteBadgeCount]=\"badgeCount()!\"\n [rteBadgeIcon]=\"badgeIcon()!\"\n (click)=\"onClick($event)\"\n >\n <rte-icon [name]=\"name()\" [appearance]=\"appearance()\" [size]=\"buttonIconSize()\" />\n </button>\n} @else {\n <button\n *ngIf=\"isValidIconName\"\n class=\"rte-icon-button {{ variant() }} size-{{ size() }}\"\n [class.compact-spacing]=\"compactSpacing()\"\n [ngStyle]=\"customStyle()\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [type]=\"type()\"\n (click)=\"onClick($event)\"\n >\n <rte-icon [name]=\"name()\" [appearance]=\"appearance()\" [size]=\"buttonIconSize()\" />\n </button>\n}\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input, output, signal } from \"@angular/core\";\nimport { ButtonType } from \"@design-system-rte/core/components/button/button.interface\";\nimport { ButtonSize, ButtonVariant } from \"@design-system-rte/core/components/button/common/common-button\";\nimport { ButtonIconSize } from \"@design-system-rte/core/components/button/common/common-button.constants\";\n\nimport { RegularIconIdKey, TogglableIconIdKey } from \"../icon/icon.service\";\nimport { IconButtonComponent } from \"../icon-button/icon-button.component\";\n\n@Component({\n selector: \"rte-icon-button-toggle\",\n imports: [CommonModule, IconButtonComponent],\n standalone: true,\n templateUrl: \"./icon-button-toggle.component.html\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconButtonToggleComponent {\n readonly disabled = input<boolean>(false);\n readonly name = input.required<RegularIconIdKey | TogglableIconIdKey>();\n readonly size = input<ButtonSize>(\"m\");\n readonly variant = input<ButtonVariant>(\"primary\");\n readonly type = input<ButtonType>(\"button\");\n readonly compactSpacing = input<boolean>(false);\n readonly ariaLabel = input<string | undefined>();\n readonly ariaLabelledBy = input<string | undefined>();\n\n readonly selected = input<boolean | undefined>();\n\n readonly internalSelected = signal(false);\n\n readonly defaultSelected = input<boolean>(false);\n\n readonly isControlled = computed(() => this.selected() !== undefined);\n\n readonly click = output<MouseEvent | KeyboardEvent>();\n\n readonly isSelected = computed(() => {\n return this.isControlled() ? this.selected() : this.internalSelected();\n });\n\n private toggleInternalSelectedState(): void {\n this.internalSelected.set(!this.internalSelected());\n }\n\n onClick(event: MouseEvent | KeyboardEvent): void {\n event.stopPropagation();\n this.click.emit(event);\n if (!this.isControlled()) {\n this.toggleInternalSelectedState();\n }\n }\n\n readonly buttonIconSize = computed(() => ButtonIconSize[this.size()]);\n}\n","<rte-icon-button\n [size]=\"size()\"\n [name]=\"name()\"\n [compactSpacing]=\"compactSpacing()\"\n [disabled]=\"disabled()\"\n [ariaLabel]=\"ariaLabel()\"\n [ariaLabelledBy]=\"ariaLabelledBy()\"\n [type]=\"type()\"\n [variant]=\"variant()\"\n [appearance]=\"isSelected() ? 'filled' : 'outlined'\"\n (clickEvent)=\"onClick($event)\"\n/>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, input, output, signal, computed, effect } from \"@angular/core\";\n\nimport { IconComponent } from \"../../icon/icon.component\";\nimport { RegularIconIdKey, TogglableIconIdKey } from \"../../icon/icon.service\";\nimport { IconButtonComponent } from \"../../icon-button/icon-button.component\";\nimport { LinkComponent } from \"../../link/link.component\";\n\n@Component({\n selector: \"rte-base-text-input\",\n imports: [CommonModule, IconComponent, IconButtonComponent, LinkComponent],\n standalone: true,\n templateUrl: \"./base-text-input.component.html\",\n styleUrl: \"./base-text-input.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BaseTextInputComponent {\n readonly id = input<string>();\n readonly label = input<string>(\"\");\n readonly labelPosition = input<\"top\" | \"side\">(\"top\");\n readonly placeholder = input<string>(\"\");\n readonly required = input<boolean>(false);\n readonly showCounter = input<boolean>(false);\n readonly value = input<string>(\"\");\n readonly internalValue = signal<string>(this.value());\n readonly leftIcon = input<RegularIconIdKey | TogglableIconIdKey | null>(null);\n readonly showRightIcon = input<boolean>(true);\n readonly rightIconAction = input<\"clean\" | \"visibilityOn\" | \"visibilityOff\">(\"clean\");\n readonly showLabelRequirement = input<boolean>(false);\n readonly assistiveAppearance = input<\"description\" | \"error\" | \"success\" | \"link\">(\"description\");\n readonly showAssistiveIcon = input<boolean>(false);\n readonly assistiveTextLabel = input<string>(\"\");\n readonly error = input<boolean>(false);\n readonly maxLength = input<number>(150);\n readonly disabled = input<boolean>(false);\n readonly readOnly = input<boolean>(false);\n readonly width = input<string>(\"300px\");\n readonly ariaLabel = input<string>(\"\");\n readonly ariaRequired = input<boolean>(false);\n readonly ariaLabelledby = input<string>(\"\");\n readonly compactSpacing = input<boolean>(false);\n readonly customStyle = input<Record<string, string>>();\n readonly autocomplete = input<string>(\"\");\n readonly highlighted = input<boolean>(false);\n\n readonly valueChange = output<string>();\n readonly rightIconClick = output<void>();\n\n readonly characterCount = signal<number>(this.internalValue().length);\n readonly isHiddenInput = signal<boolean>(this.showRightIcon() && this.rightIconAction() === \"visibilityOn\");\n readonly displayedLeftIcon = computed(() => (this.error() ? \"error\" : this.leftIcon()));\n\n readonly displayCounter = computed(() => this.showCounter() && typeof this.maxLength() === \"number\");\n\n readonly rightIconName = computed(() => {\n if ([\"visibilityOn\", \"visibilityOff\"].includes(this.rightIconAction())) {\n return this.isHiddenInput() ? \"visibility-show\" : \"visibility-hide\";\n }\n return \"cancel\";\n });\n\n readonly rightIconAriaLabel = computed(() => {\n if ([\"visibilityOn\", \"visibilityOff\"].includes(this.rightIconAction())) {\n return this.isHiddenInput() ? \"show text\" : \"hide text\";\n } else if (this.rightIconAction() === \"clean\") {\n return \"clear\";\n }\n return \"\";\n });\n\n readonly shouldShowRightIcon = computed(() => {\n if (this.readOnly() || this.disabled()) {\n return false;\n }\n if (this.rightIconAction() === \"clean\") {\n return !!this.internalValue()?.length && this.showRightIcon();\n }\n return this.showRightIcon() && !!this.rightIconAction();\n });\n\n private lastParentValue = this.value();\n\n constructor() {\n effect(\n () => {\n const parentValue = this.value();\n if (parentValue !== this.lastParentValue) {\n this.lastParentValue = parentValue;\n this.internalValue.set(parentValue);\n }\n },\n { allowSignalWrites: true },\n );\n }\n\n handleChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n const newValue = input.value;\n this.internalValue.set(newValue);\n if (this.maxLength()) {\n this.characterCount.set(newValue.length);\n }\n this.valueChange.emit(newValue);\n }\n\n onRightIconClickHandler(): void {\n this.rightIconClick.emit();\n this.triggerRightIconAction();\n }\n\n private toggleInputVisibility(): void {\n this.isHiddenInput.set(!this.isHiddenInput());\n }\n\n private triggerRightIconAction(): void {\n if (this.rightIconAction() === \"clean\") {\n this.internalValue.set(\"\");\n this.valueChange.emit(\"\");\n this.characterCount.set(0);\n }\n if ([\"visibilityOn\", \"visibilityOff\"].includes(this.rightIconAction())) {\n this.toggleInputVisibility();\n }\n }\n}\n","<div\n class=\"container {{ labelPosition() }}\"\n [ngClass]=\"{ error: error(), 'compact-spacing': compactSpacing() }\"\n [style.width]=\"width()\"\n>\n <ng-container *ngIf=\"label()\">\n <div class=\"text\">\n <div class=\"label-container\">\n <label class=\"input-label\" [id]=\"'input-label-' + id\" [for]=\"id()\">\n {{ label() }}\n </label>\n <ng-container *ngIf=\"required()\">\n <ng-container *ngIf=\"showLabelRequirement(); else requiredIcon\">\n <span class=\"required-text\">(obligatoire)</span>\n </ng-container>\n <ng-template #requiredIcon>\n <span class=\"required-icon-container\">\n <rte-icon name=\"asterisk\" [size]=\"8\" />\n </span>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!required() && showLabelRequirement()\">\n <span class=\"required-text\">(optionnel)</span>\n </ng-container>\n </div>\n <ng-container *ngIf=\"displayCounter() && labelPosition() === 'top'\">\n <p class=\"input-counter\" data-testid=\"input-counter\">{{ characterCount() }}/{{ maxLength() }}</p>\n </ng-container>\n </div>\n </ng-container>\n\n <div class=\"input-container\">\n <div class=\"input {{ labelPosition() }}\" [ngClass]=\"{ disabled: disabled(), 'read-only': readOnly() }\">\n <div\n class=\"input-bar\"\n [ngClass]=\"{ 'with-left-icon': displayedLeftIcon(), 'with-right-icon': rightIconAction() }\"\n >\n <ng-container *ngIf=\"displayedLeftIcon()\">\n <rte-icon appearance=\"outlined\" class=\"left-icon\" aria-hidden=\"true\" [name]=\"displayedLeftIcon()!\" />\n </ng-container>\n\n <input\n #inputRef\n class=\"input-field\"\n [id]=\"id()\"\n [ngClass]=\"{ error: error(), highlighted: highlighted() }\"\n [ngStyle]=\"customStyle()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-required]=\"ariaRequired()\"\n [type]=\"isHiddenInput() ? 'password' : 'text'\"\n [maxLength]=\"maxLength()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readOnly()\"\n [value]=\"internalValue()\"\n [placeholder]=\"placeholder()\"\n [attr.autocomplete]=\"autocomplete()\"\n (input)=\"handleChange($event)\"\n />\n\n <ng-container *ngIf=\"shouldShowRightIcon()\">\n <rte-icon-button\n appearance=\"outlined\"\n variant=\"neutral\"\n size=\"s\"\n class=\"right-icon\"\n data-testid=\"right-icon\"\n [compactSpacing]=\"true\"\n [name]=\"rightIconName()\"\n [ariaLabel]=\"rightIconAriaLabel()\"\n (clickEvent)=\"onRightIconClickHandler()\"\n />\n </ng-container>\n </div>\n <div class=\"right-slot\">\n <ng-content select=\"[baseTextInputRightSlot]\"></ng-content>\n </div>\n </div>\n\n <ng-container *ngIf=\"assistiveTextLabel()\">\n <div class=\"assistive-text\">\n <ng-container *ngIf=\"showAssistiveIcon() && assistiveAppearance() === 'error'\">\n <rte-icon name=\"error\" appearance=\"outlined\" class=\"assistive-icon-error\" [size]=\"12\" />\n </ng-container>\n <ng-container *ngIf=\"showAssistiveIcon() && assistiveAppearance() === 'success'\">\n <rte-icon name=\"check\" appearance=\"outlined\" class=\"assistive-icon-success\" [size]=\"12\" />\n </ng-container>\n <ng-container *ngIf=\"assistiveAppearance() === 'link'; else assistiveLabel\">\n <rte-link [label]=\"assistiveTextLabel()\" />\n </ng-container>\n <ng-template #assistiveLabel>\n <p class=\"assistive-label\" [ngClass]=\"assistiveAppearance()\">\n {{ assistiveTextLabel() }}\n </p>\n </ng-template>\n </div>\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"displayCounter() && labelPosition() === 'side'\">\n <p class=\"input-counter\" data-testid=\"input-counter\">{{ characterCount() }}/{{ maxLength() }}</p>\n </ng-container>\n</div>\n","import { ChangeDetectionStrategy, Component } from \"@angular/core\";\n\nimport { BaseTextInputComponent } from \"./base-text-input/base-text-input.component\";\n\n@Component({\n selector: \"rte-text-input\",\n imports: [BaseTextInputComponent],\n standalone: true,\n templateUrl: \"./text-input.component.html\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TextInputComponent extends BaseTextInputComponent {}\n","<rte-base-text-input\n [id]=\"id()\"\n [label]=\"label()\"\n [labelPosition]=\"labelPosition()\"\n [required]=\"required()\"\n [showCounter]=\"showCounter()\"\n [value]=\"value()\"\n [leftIcon]=\"leftIcon()\"\n [showRightIcon]=\"showRightIcon()\"\n [rightIconAction]=\"rightIconAction()\"\n [showLabelRequirement]=\"showLabelRequirement()\"\n [assistiveAppearance]=\"assistiveAppearance()\"\n [showAssistiveIcon]=\"showAssistiveIcon()\"\n [assistiveTextLabel]=\"assistiveTextLabel()\"\n [error]=\"error()\"\n [maxLength]=\"maxLength()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readOnly()\"\n [width]=\"width()\"\n [ariaLabel]=\"ariaLabel()\"\n [ariaRequired]=\"ariaRequired()\"\n [ariaLabelledby]=\"ariaLabelledby()\"\n [customStyle]=\"customStyle()\"\n [autocomplete]=\"autocomplete()\"\n (valueChange)=\"valueChange.emit($event)\"\n (rightIconClick)=\"rightIconClick.emit()\"\n/>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input, output } from \"@angular/core\";\nimport { CHIP_TYPE_TO_ARIA_ROLE_MAP } from \"@design-system-rte/core/components/chip/chip.constants\";\nimport {\n BACKSPACE_KEY,\n DELETE_KEY,\n ENTER_KEY,\n SPACE_KEY,\n} from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { IconComponent } from \"../icon/icon.component\";\n\n@Component({\n selector: \"rte-chip\",\n imports: [CommonModule, IconComponent],\n standalone: true,\n templateUrl: \"./chip.component.html\",\n styleUrl: \"./chip.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChipComponent {\n readonly id = input<string | undefined>();\n readonly label = input<string>(\"\");\n readonly selected = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n readonly type = input<\"single\" | \"multi\" | \"input\">(\"single\");\n readonly compactSpacing = input<boolean>(false);\n readonly click = output<Event>();\n readonly close = output<Event>();\n\n readonly isCheckable = computed(() => this.type() === \"single\" || this.type() === \"multi\");\n readonly role = computed(() => CHIP_TYPE_TO_ARIA_ROLE_MAP[this.type()] || null);\n\n onClick(event: Event) {\n event.stopPropagation();\n if (!this.disabled()) {\n this.click.emit(event);\n }\n }\n\n onKeyUp(event: KeyboardEvent) {\n event.preventDefault();\n if (!this.disabled()) {\n if (event.key === SPACE_KEY || event.key === ENTER_KEY) {\n const target = event.target as HTMLElement;\n const isCloseButton = target.classList.contains(\"chip-close-button\");\n if (isCloseButton) {\n target.click();\n } else {\n this.onClick(event);\n }\n } else if ((event.key === BACKSPACE_KEY || event.key === DELETE_KEY) && this.type() === \"input\") {\n const closeButton = (event.target as HTMLElement).querySelector(\n \".chip-close-button\",\n ) as HTMLButtonElement | null;\n if (closeButton) {\n closeButton.click();\n }\n }\n }\n }\n onBlur(event: FocusEvent) {\n event.stopPropagation();\n }\n onCloseClick(event: Event) {\n event.stopPropagation();\n if (!this.disabled()) {\n this.close.emit(event);\n }\n }\n}\n","<span\n class=\"chip\"\n tabindex=\"0\"\n [attr.role]=\"role()\"\n [attr.data-selected]=\"isCheckable() ? selected() : null\"\n [attr.data-disabled]=\"disabled()\"\n [attr.data-compact-spacing]=\"compactSpacing()\"\n [attr.data-type]=\"type()\"\n [attr.aria-checked]=\"isCheckable() ? selected() : null\"\n [attr.aria-disabled]=\"disabled()\"\n (click)=\"onClick($event)\"\n (keyup)=\"onKeyUp($event)\"\n (blur)=\"onBlur($event)\"\n>\n <ng-container *ngIf=\"type() === 'multi'\">\n <span class=\"chip-icon-container\">\n <span class=\"chip-icon\" [class.chip-icon--visible]=\"selected()\" [attr.aria-hidden]=\"!selected()\">\n <rte-icon name=\"check-circle\" appearance=\"filled\" [size]=\"16\"></rte-icon>\n </span>\n <span class=\"chip-icon\" [class.chip-icon--visible]=\"!selected()\" [attr.aria-hidden]=\"selected()\">\n <rte-icon name=\"radio-button-empty\" [size]=\"16\"></rte-icon>\n </span>\n </span>\n </ng-container>\n <span class=\"chip-label\" [attr.data-type]=\"type()\">{{ label() }}</span>\n <button\n *ngIf=\"type() === 'input'\"\n type=\"button\"\n class=\"chip-close-button\"\n [attr.aria-label]=\"'Supprimer ' + label()\"\n [disabled]=\"disabled()\"\n [value]=\"label()\"\n (click)=\"onCloseClick($event)\"\n >\n <rte-icon class=\"chip-close-button--icon\" name=\"close\" [size]=\"16\"></rte-icon>\n </button>\n</span>\n","import { CommonModule } from \"@angular/common\";\nimport { Component, input, computed, output, ElementRef, viewChild } from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { REQUIREMENT_INDICATOR_VALUE } from \"@design-system-rte/core/components/required-indicator/required-indicator.constant\";\nimport { TEXTAREA_ICON_SIZE } from \"@design-system-rte/core/components/textarea/textarea.constants\";\nimport type {\n TextareaAssistiveTextAppearance,\n TextareaLabelPosition,\n} from \"@design-system-rte/core/components/textarea/textarea.interface\";\n\nimport { IconComponent } from \"../icon/icon.component\";\nimport { LinkComponent } from \"../link/link.component\";\n\n@Component({\n selector: \"rte-textarea\",\n imports: [CommonModule, IconComponent, LinkComponent],\n standalone: true,\n templateUrl: \"./textarea.component.html\",\n styleUrl: \"./textarea.component.scss\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: TextareaComponent,\n multi: true,\n },\n ],\n})\nexport class TextareaComponent {\n readonly id = input<string | undefined>(undefined);\n readonly name = input<string | undefined>(undefined);\n readonly ariaLabelledby = input<string | undefined>(undefined);\n readonly label = input<string | undefined>(undefined);\n readonly labelId = input<string | undefined>(undefined);\n readonly labelPosition = input<TextareaLabelPosition>(\"top\");\n readonly assistiveTextLabel = input<string | undefined>(undefined);\n readonly assistiveTextAppearance = input<TextareaAssistiveTextAppearance>(\"description\");\n readonly assistiveTextLink = input<string | undefined>(undefined);\n readonly required = input<boolean>(false);\n readonly showLabelRequirement = input<boolean>(false);\n readonly resizeable = input<boolean | string>(true);\n readonly maxLength = input<number | undefined>(undefined);\n readonly disabled = input<boolean>(false);\n readonly readOnly = input<boolean>(false);\n readonly value = input<string | undefined>(undefined);\n readonly rows = input<number>(3);\n readonly defaultValue = input<string | undefined>(undefined);\n readonly showCounter = input<boolean>(false);\n\n readonly assistiveTextIconSize = TEXTAREA_ICON_SIZE;\n\n readonly requirementIndicatorValue = computed(() =>\n this.required()\n ? this.showLabelRequirement()\n ? REQUIREMENT_INDICATOR_VALUE.required\n : REQUIREMENT_INDICATOR_VALUE.requiredIcon\n : REQUIREMENT_INDICATOR_VALUE.optional,\n );\n\n readonly change = output<Event>();\n readonly blur = output<FocusEvent>();\n\n readonly textareaRef = viewChild<ElementRef<HTMLTextAreaElement>>(\"textarea\");\n\n readonly isAssistiveTextLinkVisible = computed(\n () => this.assistiveTextAppearance() === \"link\" && this.assistiveTextLink() !== undefined,\n );\n\n characterCount = 0;\n\n readonly isCounterVisible = computed(() => {\n return this.showCounter() && this.maxLength();\n });\n\n onInput(event: Event) {\n const target = event.target as HTMLTextAreaElement;\n this.characterCount = target.value.length;\n this.change.emit(event);\n }\n\n onBlur(event: FocusEvent) {\n this.textareaRef()?.nativeElement?.scrollTo({ top: 0 });\n this.blur.emit(event);\n }\n}\n","<div class=\"container\" [attr.data-label-position]=\"labelPosition()\">\n <label\n *ngIf=\"label() && labelPosition() === 'side'\"\n [attr.data-label-position]=\"labelPosition()\"\n [attr.id]=\"labelId()\"\n [attr.for]=\"id()\"\n >{{ label()\n }}<span\n *ngIf=\"required() || showLabelRequirement()\"\n class=\"requirement-indicator\"\n aria-hidden=\"true\"\n [ngClass]=\"{ required: required(), 'show-label-requirement': showLabelRequirement() }\"\n >{{ requirementIndicatorValue() }}</span\n ></label\n >\n <div class=\"top-position-container\" [attr.data-label-position]=\"labelPosition()\">\n <div class=\"header-container\" [attr.data-label-position]=\"labelPosition()\">\n <label *ngIf=\"label() && labelPosition() === 'top'\" [attr.id]=\"labelId()\" [attr.for]=\"id()\"\n >{{ label()\n }}<span\n *ngIf=\"required() || showLabelRequirement()\"\n class=\"requirement-indicator\"\n aria-hidden=\"true\"\n [ngClass]=\"{ required: required(), 'show-label-requirement': showLabelRequirement() }\"\n >{{ requirementIndicatorValue() }}</span\n ></label\n >\n <span *ngIf=\"isCounterVisible()\" class=\"character-counter\">{{ characterCount }}/{{ maxLength() }}</span>\n </div>\n <div class=\"textarea-container\" [attr.data-label-position]=\"labelPosition()\">\n <textarea\n #textarea\n class=\"textarea {{ assistiveTextAppearance() }}\"\n [class.resizeable]=\"resizeable()\"\n [attr.id]=\"id()\"\n [attr.name]=\"name()\"\n [attr.aria-labelledby]=\"labelId() || ariaLabelledby()\"\n [attr.required]=\"required() || null\"\n [attr.maxLength]=\"maxLength() !== undefined ? maxLength() : null\"\n [attr.disabled]=\"disabled() || null\"\n [attr.readonly]=\"readOnly() || null\"\n [value]=\"value() !== undefined ? value() : null\"\n [defaultValue]=\"defaultValue() !== undefined ? defaultValue() : null\"\n [attr.rows]=\"rows()\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n ></textarea>\n <rte-link\n *ngIf=\"isAssistiveTextLinkVisible()\"\n class=\"assistive-text-link\"\n [externalLink]=\"true\"\n [href]=\"assistiveTextLink() || ''\"\n [label]=\"assistiveTextLabel() || ''\"\n >\n </rte-link>\n <div\n *ngIf=\"assistiveTextAppearance() !== 'link'\"\n class=\"assistive-text {{ assistiveTextAppearance() }}\"\n [ngClass]=\"{ disabled: disabled() }\"\n >\n <rte-icon *ngIf=\"assistiveTextAppearance() === 'error'\" name=\"error\" [size]=\"assistiveTextIconSize\"></rte-icon>\n <rte-icon\n *ngIf=\"assistiveTextAppearance() === 'success'\"\n name=\"check-circle\"\n [size]=\"assistiveTextIconSize\"\n ></rte-icon>\n <span>{{ assistiveTextLabel() }}</span>\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, input, signal, OnInit, output } from \"@angular/core\";\nimport { switchHeight, switchWidth } from \"@design-system-rte/core/components/switch/switch.constants\";\nimport { SwitchProps } from \"@design-system-rte/core/components/switch/switch.interface\";\n\nimport { IconComponent } from \"../icon/icon.component\";\n\n@Component({\n selector: \"rte-switch\",\n imports: [CommonModule, IconComponent],\n standalone: true,\n templateUrl: \"./switch.component.html\",\n styleUrl: \"./switch.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SwitchComponent implements OnInit {\n readonly label = input(\"\");\n readonly appearance = input<SwitchProps[\"appearance\"]>(\"brand\");\n readonly showLabel = input(true);\n readonly showIcon = input(true);\n readonly disabled = input(false);\n readonly readOnly = input(false);\n readonly checked = input(false);\n\n readonly stateChange = output<Event>();\n\n switchHeight = switchHeight;\n switchWidth = switchWidth;\n\n readonly isChecked = signal(false);\n\n ngOnInit() {\n this.isChecked.set(this.checked());\n }\n\n handleChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n this.isChecked.set(target.checked);\n this.stateChange.emit(event);\n }\n\n handleClick(event: MouseEvent): void {\n if (this.readOnly() || this.disabled()) {\n event.stopPropagation();\n } else {\n const inputElement = (event.currentTarget as HTMLInputElement).querySelector<HTMLInputElement>(\n 'input[type=\"checkbox\"]',\n );\n if (inputElement) {\n inputElement.checked = !this.isChecked();\n const changeEvent = new Event(\"change\", { bubbles: true });\n Object.defineProperty(changeEvent, \"target\", {\n value: inputElement,\n writable: false,\n });\n this.handleChange(changeEvent);\n }\n }\n }\n}\n","<div\n class=\"switch-container appearance-{{ appearance() }}\"\n [ngClass]=\"{\n disabled: disabled(),\n 'read-only': readOnly(),\n checked: isChecked(),\n }\"\n (click)=\"handleClick($event)\"\n>\n <input\n type=\"checkbox\"\n role=\"switch\"\n class=\"switch\"\n [attr.aria-checked]=\"isChecked()\"\n [attr.aria-label]=\"label()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-readonly]=\"readOnly()\"\n [ariaLabel]=\"label()\"\n [name]=\"label()\"\n [ngClass]=\"{\n disabled: disabled(),\n 'read-only': readOnly(),\n checked: isChecked(),\n }\"\n [style.min-height.px]=\"switchHeight\"\n [style.min-width.px]=\"switchWidth\"\n [disabled]=\"disabled()\"\n [checked]=\"isChecked()\"\n />\n <div class=\"switch-icon-check\" [ngClass]=\"{ checked: isChecked() }\" (click)=\"handleClick($event)\">\n @if (showIcon()) {\n <rte-icon\n class=\"icon\"\n [name]=\"isChecked() ? 'check' : 'close'\"\n [size]=\"16\"\n (click)=\"handleClick($event)\"\n ></rte-icon>\n }\n </div>\n @if (showLabel() && label()) {\n <label class=\"switch-label\" [for]=\"label()\">\n {{ label() }}\n </label>\n }\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n input,\n output,\n viewChildren,\n AfterViewInit,\n OnDestroy,\n computed,\n signal,\n OnChanges,\n SimpleChanges,\n} from \"@angular/core\";\nimport { shouldDisplayBadge as CoreShouldDisplayBadge } from \"@design-system-rte/core/components/badge/badge.utils\";\nimport {\n getSegmentPosition,\n focusNextNotSegmentElement,\n focusPreviousNotSegmentElement,\n focusNextSegmentElement,\n focusPreviousSegmentElement,\n isValidSegmentedControlOptions,\n} from \"@design-system-rte/core/components/segmented-control/segmented-control-utils\";\nimport {\n SegmentOptions,\n SegmentProps,\n} from \"@design-system-rte/core/components/segmented-control/segmented-control.interface\";\nimport { FOCUSABLE_ELEMENTS_QUERY } from \"@design-system-rte/core/constants/dom/dom.constants\";\nimport {\n ARROW_LEFT_KEY,\n ARROW_RIGHT_KEY,\n ENTER_KEY,\n SPACE_KEY,\n TAB_KEY,\n} from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { BadgeComponent } from \"../badge/badge.component\";\nimport { IconComponent } from \"../icon/icon.component\";\n\nconst segmentClass = \"rte-segment\";\nconst segmentSelector = `.${segmentClass}`;\n\n@Component({\n selector: \"rte-segmented-control\",\n imports: [CommonModule, IconComponent, BadgeComponent],\n standalone: true,\n templateUrl: \"./segmented-control.component.html\",\n styleUrl: \"./segmented-control.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SegmentedControlComponent implements OnChanges, AfterViewInit, OnDestroy {\n readonly options = input<SegmentOptions[]>([]);\n readonly change = output<string>();\n readonly selectedSegment = input<string>();\n readonly ariaLabel = input<string>();\n readonly ariaLabelledBy = input<string>();\n\n readonly segmentRefs = viewChildren<ElementRef<HTMLDivElement>>(\"segment\");\n\n readonly sliderLeft = signal(0);\n readonly sliderWidth = signal(0);\n readonly sliderTop = signal(0);\n\n readonly segmentSelectedIndicatorStyle = computed(() => ({\n left: `${this.sliderLeft()}px`,\n top: `${this.sliderTop()}px`,\n width: `${this.sliderWidth()}px`,\n }));\n\n readonly isValidOptions = computed(() => isValidSegmentedControlOptions(this.options()));\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes[\"selectedSegment\"]) {\n this.updateSelectedSegmentIndicator();\n }\n }\n\n ngAfterViewInit() {\n this.updateSelectedSegmentIndicator();\n window.addEventListener(\"resize\", this.updateSelectedSegmentIndicator.bind(this));\n window.addEventListener(\"keydown\", this.onGlobalKeyDown.bind(this));\n\n this.segmentRefs().forEach((segmentElement) => {\n segmentElement.nativeElement.addEventListener(\"focus\", this.focusCurrentSegmentElement.bind(this));\n });\n }\n\n ngOnDestroy() {\n window.removeEventListener(\"resize\", this.updateSelectedSegmentIndicator.bind(this));\n window.removeEventListener(\"keydown\", this.onGlobalKeyDown.bind(this));\n\n this.segmentRefs().forEach((segmentElement) => {\n segmentElement.nativeElement.addEventListener(\"focus\", this.focusCurrentSegmentElement.bind(this));\n });\n }\n\n shouldDisplayBadge(option: SegmentOptions): boolean {\n return CoreShouldDisplayBadge({\n showBadge: !!option.showBadge,\n badgeContent: option.badgeContent,\n badgeCount: option.badgeCount,\n badgeIcon: option.badgeIcon,\n });\n }\n\n selectSegment(id: string) {\n this.change.emit(id);\n }\n\n isSegmentSelected(id: string): boolean {\n return this.selectedSegment() === id;\n }\n\n handleKeyUp(event: KeyboardEvent) {\n event.preventDefault();\n if (event.key === ARROW_RIGHT_KEY || event.key === ARROW_LEFT_KEY) {\n const allSegmentElements =\n Array.from(\n document.activeElement?.parentElement?.parentElement?.querySelectorAll(\n segmentSelector,\n ) as NodeListOf<HTMLElement>,\n ) || [];\n\n const currentActiveSegmentElementIndex = Array.from(allSegmentElements).findIndex(\n (element) => element === document.activeElement,\n );\n\n if (event.key === ARROW_RIGHT_KEY) {\n focusNextSegmentElement(currentActiveSegmentElementIndex, allSegmentElements);\n } else if (event.key === ARROW_LEFT_KEY) {\n focusPreviousSegmentElement(currentActiveSegmentElementIndex, allSegmentElements);\n }\n } else if (event.key === SPACE_KEY || event.key === ENTER_KEY) {\n const target = event.target as HTMLElement;\n const dataId = target.getAttribute(\"data-id\");\n this.selectSegment(dataId || \"\");\n }\n }\n\n handleKeyDown(event: KeyboardEvent) {\n if (event.key === TAB_KEY || event.key === SPACE_KEY || event.key === ENTER_KEY) {\n event.preventDefault();\n }\n if (event.key === TAB_KEY) {\n const allFocusableElements = Array.from(document.querySelectorAll(FOCUSABLE_ELEMENTS_QUERY)) as HTMLElement[];\n const currentActiveElement = document.activeElement;\n const currentIndex = allFocusableElements.indexOf(currentActiveElement as HTMLElement);\n\n if (event.shiftKey) {\n focusPreviousNotSegmentElement(currentIndex, allFocusableElements, segmentClass);\n } else {\n focusNextNotSegmentElement(currentIndex, allFocusableElements, segmentClass);\n }\n }\n }\n\n getSegmentPosition(index: number): SegmentProps[\"position\"] {\n return getSegmentPosition(index, this.options().length);\n }\n\n private updateSelectedSegmentIndicator() {\n const idx = this.options().findIndex((opt) => opt.id === this.selectedSegment());\n const segment = this.segmentRefs()[idx]?.nativeElement;\n\n if (segment) {\n this.sliderWidth.set(segment.offsetWidth);\n this.sliderTop.set(segment.offsetTop);\n this.sliderLeft.set(segment.offsetLeft);\n }\n }\n\n private lastKeydown: string | null = null;\n\n private onGlobalKeyDown = (event: KeyboardEvent) => {\n this.lastKeydown = event.key;\n };\n\n private focusCurrentSegmentElement() {\n if (this.lastKeydown === \"Tab\") {\n const selectedSegmentElement = this.segmentRefs().find((segment) =>\n segment.nativeElement.classList.contains(\"selected\"),\n )?.nativeElement;\n if (selectedSegmentElement) {\n selectedSegmentElement.focus();\n } else {\n this.segmentRefs()[0]?.nativeElement?.focus();\n }\n }\n }\n}\n","<div *ngIf=\"isValidOptions()\" class=\"rte-segmented-control\" role=\"radiogroup\" [attr.aria-label]=\"ariaLabel()\">\n <span class=\"rte-segment-selected-indicator\" [ngStyle]=\"segmentSelectedIndicatorStyle()\"></span>\n <ng-container *ngFor=\"let option of options(); let idx = index\">\n <div class=\"rte-segment-container\" [attr.data-position]=\"getSegmentPosition(idx)\">\n <div\n #segment\n role=\"radio\"\n class=\"rte-segment\"\n tabindex=\"0\"\n [attr.data-id]=\"option.id\"\n [attr.data-segment-type]=\"option.icon ? 'icon' : 'label'\"\n [class.selected]=\"isSegmentSelected(option.id)\"\n [attr.aria-checked]=\"isSegmentSelected(option.id)\"\n [attr.aria-label]=\"option.label\"\n (click)=\"selectSegment(option.id)\"\n (keydown)=\"handleKeyDown($event)\"\n (keyup)=\"handleKeyUp($event)\"\n >\n <rte-icon *ngIf=\"isSegmentSelected(option.id)\" name=\"check-small\" class=\"rte-selected-icon\" [size]=\"24\" />\n <div class=\"rte-segment-content\">\n <ng-container *ngIf=\"option.icon; else label\">\n <rte-icon\n [name]=\"option.icon\"\n [size]=\"24\"\n [appearance]=\"isSegmentSelected(option.id) ? 'filled' : 'outlined'\"\n ></rte-icon>\n </ng-container>\n <ng-template #label>\n <span class=\"rte-segment-label\">{{ option.label }}</span>\n </ng-template>\n </div>\n <rte-badge\n *ngIf=\"shouldDisplayBadge(option)\"\n [count]=\"option.badgeCount\"\n [badgeContent]=\"option.badgeContent!\"\n [icon]=\"option.badgeIcon!\"\n [badgeType]=\"option.badgeType!\"\n [simpleBadge]=\"true\"\n [badgeSize]=\"option.badgeSize!\"\n ></rte-badge>\n </div>\n </div>\n </ng-container>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n signal,\n AfterViewInit,\n} from \"@angular/core\";\nimport { shouldDisplayBadge as coreShouldDisplayBadge } from \"@design-system-rte/core/components/badge/badge.utils\";\nimport { BreadcrumbItemProps } from \"@design-system-rte/core/components/breadcrumbs/breadcrumbs.interface\";\n\nimport { BadgeComponent } from \"../../badge/badge.component\";\nimport { LinkComponent } from \"../../link/link.component\";\nimport { TooltipDirective } from \"../../tooltip/tooltip.directive\";\n\n@Component({\n selector: \"rte-breadcrumb-item\",\n imports: [CommonModule, LinkComponent, TooltipDirective, BadgeComponent],\n standalone: true,\n templateUrl: \"./breadcrumb-item.component.html\",\n styleUrl: \"./breadcrumb-item.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BreadcrumbItemComponent implements AfterViewInit {\n readonly item = input<BreadcrumbItemProps>();\n readonly isLast = input<boolean>(false);\n readonly breadcrumbItemMaxWidth = input<number>();\n readonly initialScrollWidth = signal<number>(Number.MAX_VALUE);\n\n private elementRef = inject(ElementRef);\n\n readonly isEllipsisActive = computed((): boolean => {\n const maxValue = this.breadcrumbItemMaxWidth();\n if (maxValue) {\n return this.initialScrollWidth() >= maxValue;\n }\n return false;\n });\n\n readonly shouldDisplayBadge = computed((): boolean => {\n const item = this.item();\n if (!item) return false;\n const { showBadge, badgeContent, badgeCount, badgeIcon } = item;\n return coreShouldDisplayBadge({\n showBadge: !!showBadge,\n badgeContent,\n badgeCount,\n badgeIcon,\n });\n });\n\n readonly tooltipTriggerStyle = computed(() => {\n return `overflow: hidden; text-overflow: ellipsis; white-space: nowrap; ${this.breadcrumbItemMaxWidth() ? \"max-width:\" + this.breadcrumbItemMaxWidth() + \"px\" : \"\"}`;\n });\n\n readonly linkStyle = computed(() => {\n return `${this.breadcrumbItemMaxWidth() ? \"max-width:\" + this.breadcrumbItemMaxWidth() + \"px\" : \"\"}`;\n });\n\n ngAfterViewInit() {\n const el = this.elementRef.nativeElement.querySelector(\".rte-breadcrumb-item\");\n this.initialScrollWidth.set(el.scrollWidth);\n }\n}\n","<div class=\"rte-breadcrumb-item\">\n @if (isLast()) {\n @if (isEllipsisActive()) {\n <div [rteTooltip]=\"item()!.label\" [rteTooltipPosition]=\"'bottom'\" [style]=\"tooltipTriggerStyle()\">\n <a role=\"link\" aria-current=\"page\" tabindex=\"-1\" [attr.aria-label]=\"item()!.label\" [style]=\"linkStyle()\">\n {{ item()!.label }}\n </a>\n </div>\n <rte-badge\n *ngIf=\"shouldDisplayBadge()\"\n [count]=\"item()!.badgeCount\"\n [badgeContent]=\"item()!.badgeContent!\"\n [icon]=\"item()!.badgeIcon!\"\n [badgeType]=\"item()!.badgeType!\"\n [simpleBadge]=\"true\"\n [badgeSize]=\"item()!.badgeSize!\"\n />\n } @else {\n <a role=\"link\" aria-current=\"page\" tabindex=\"0\" [attr.aria-label]=\"item()!.label\" [style]=\"linkStyle()\">\n {{ item()!.label }}\n </a>\n <rte-badge\n *ngIf=\"shouldDisplayBadge()\"\n [count]=\"item()!.badgeCount\"\n [badgeContent]=\"item()!.badgeContent!\"\n [icon]=\"item()!.badgeIcon!\"\n [badgeType]=\"item()!.badgeType!\"\n [simpleBadge]=\"true\"\n [badgeSize]=\"item()!.badgeSize!\"\n />\n }\n } @else {\n @if (isEllipsisActive()) {\n <div\n [rteTooltip]=\"item()!.label\"\n [rteTooltipPosition]=\"'bottom'\"\n [style]=\"tooltipTriggerStyle()\"\n [style.overflow]=\"'unset'\"\n [rteTooltipShouldFocusTrigger]=\"false\"\n >\n <rte-link [href]=\"item()!.link\" [label]=\"item()!.label\" [subtle]=\"true\" [maxWidth]=\"breadcrumbItemMaxWidth()\" />\n </div>\n <rte-badge\n *ngIf=\"shouldDisplayBadge()\"\n [count]=\"item()!.badgeCount\"\n [badgeContent]=\"item()!.badgeContent!\"\n [icon]=\"item()!.badgeIcon!\"\n [badgeType]=\"item()!.badgeType!\"\n [simpleBadge]=\"true\"\n [badgeSize]=\"item()!.badgeSize!\"\n />\n } @else {\n <rte-link [href]=\"item()!.link\" [label]=\"item()!.label\" [subtle]=\"true\" [maxWidth]=\"breadcrumbItemMaxWidth()\" />\n <rte-badge\n *ngIf=\"shouldDisplayBadge()\"\n [count]=\"item()!.badgeCount\"\n [badgeContent]=\"item()!.badgeContent!\"\n [icon]=\"item()!.badgeIcon!\"\n [badgeType]=\"item()!.badgeType!\"\n [simpleBadge]=\"true\"\n [badgeSize]=\"item()!.badgeSize!\"\n />\n }\n }\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input } from \"@angular/core\";\nimport { BadgeProps } from \"@design-system-rte/core/components/badge/badge.interface\";\nimport { shouldDisplayBadge as coreShouldDisplayBadge } from \"@design-system-rte/core/components/badge/badge.utils\";\nimport { BREADCRUMBS_DEFAULT_ARIA_LABEL } from \"@design-system-rte/core/components/breadcrumbs/breadcrumbs.constants\";\nimport {\n BreadcrumbItemProps,\n BreadcrumbsTruncatedItems,\n} from \"@design-system-rte/core/components/breadcrumbs/breadcrumbs.interface\";\nimport {\n getBreadcrumbsTruncatedItems,\n shouldTruncateBreadcrumbs,\n} from \"@design-system-rte/core/components/breadcrumbs/breadcrumbs.utils\";\n\nimport { BadgeComponent } from \"../badge/badge.component\";\nimport { DropdownModule } from \"../dropdown\";\nimport { IconButtonComponent } from \"../icon-button/icon-button.component\";\n\nimport { BreadcrumbItemComponent } from \"./breadcrumb-item/breadcrumb-item.component\";\n\n@Component({\n selector: \"rte-breadcrumbs\",\n imports: [CommonModule, DropdownModule, IconButtonComponent, BreadcrumbItemComponent, BadgeComponent],\n standalone: true,\n templateUrl: \"./breadcrumbs.component.html\",\n styleUrl: \"./breadcrumbs.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BreadcrumbsComponent {\n readonly items = input<BreadcrumbItemProps[]>([]);\n readonly ariaLabel = input<string>(BREADCRUMBS_DEFAULT_ARIA_LABEL);\n readonly breadcrumbItemMaxWidth = input<number>(150);\n readonly badgeContent = input<BadgeProps[\"content\"]>();\n readonly badgeCount = input<number>();\n readonly badgeIcon = input<string>();\n readonly badgeType = input<BadgeProps[\"badgeType\"]>();\n readonly showBadge = input<boolean>(false);\n readonly badgeSize = input<BadgeProps[\"size\"]>(\"s\");\n\n readonly truncatedItems = computed<BreadcrumbsTruncatedItems | null>(() => {\n if (shouldTruncateBreadcrumbs(this.items())) {\n return getBreadcrumbsTruncatedItems(this.items());\n }\n return null;\n });\n\n readonly shouldDisplayBadge = computed((): boolean => {\n return coreShouldDisplayBadge({\n showBadge: !!this.showBadge(),\n badgeContent: this.badgeContent(),\n badgeCount: this.badgeCount(),\n badgeIcon: this.badgeIcon(),\n });\n });\n}\n","<nav\n class=\"breadcrumbs-container\"\n role=\"navigation\"\n [attr.aria-label]=\"ariaLabel()\"\n [ngClass]=\"{ truncated: truncatedItems()?.truncated?.length }\"\n>\n @if (truncatedItems()?.truncated?.length) {\n <rte-breadcrumb-item [item]=\"truncatedItems()!.root\" [breadcrumbItemMaxWidth]=\"breadcrumbItemMaxWidth()\" />\n <span aria-hidden=\"true\" class=\"separator\">/</span>\n <span class=\"breadcrumb-item\" rteDropdown [rteDropdownOffset]=\"8\">\n <rte-icon-button\n rteDropdownTrigger\n name=\"more-horiz\"\n role=\"menu\"\n variant=\"neutral\"\n aria-label=\"More items\"\n data-testid=\"show-more\"\n tabindex=\"-1\"\n [compactSpacing]=\"true\"\n />\n <rte-badge\n *ngIf=\"shouldDisplayBadge()\"\n [count]=\"badgeCount()\"\n [simpleBadge]=\"true\"\n [badgeContent]=\"badgeContent()!\"\n [icon]=\"badgeIcon()!\"\n [badgeType]=\"badgeType()!\"\n [badgeSize]=\"badgeSize()!\"\n />\n <rte-dropdown-menu [items]=\"truncatedItems()?.truncated ?? []\" />\n </span>\n <span aria-hidden=\"true\" class=\"separator\">/</span>\n @for (item of truncatedItems()!.remaining; track item.link; let i = $index) {\n <rte-breadcrumb-item\n [item]=\"item\"\n [breadcrumbItemMaxWidth]=\"breadcrumbItemMaxWidth()\"\n [isLast]=\"i === truncatedItems()!.remaining.length - 1\"\n />\n @if (i < truncatedItems()!.remaining.length - 1) {\n <span aria-hidden=\"true\" class=\"separator\">/</span>\n }\n }\n } @else {\n @for (item of items(); track item.link; let i = $index) {\n <rte-breadcrumb-item\n [item]=\"item\"\n [breadcrumbItemMaxWidth]=\"breadcrumbItemMaxWidth()\"\n [isLast]=\"i === items().length - 1\"\n />\n @if (i < items().length - 1) {\n <span aria-hidden=\"true\" class=\"separator\">/</span>\n }\n }\n }\n</nav>\n","import { CommonModule } from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n Component,\n input,\n output,\n signal,\n SimpleChanges,\n OnInit,\n OnChanges,\n computed,\n} from \"@angular/core\";\nimport { BannerPosition, BannerType } from \"@design-system-rte/core/components/banner/banner.interface\";\n\nimport { ButtonComponent } from \"../button/button.component\";\nimport { IconComponent } from \"../icon/icon.component\";\nimport { IconButtonComponent } from \"../icon-button/icon-button.component\";\n\n@Component({\n selector: \"rte-banner\",\n imports: [CommonModule, IconComponent, IconButtonComponent, ButtonComponent],\n standalone: true,\n templateUrl: \"./banner.component.html\",\n styleUrl: \"./banner.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BannerComponent implements OnInit, OnChanges {\n readonly type = input<BannerType>(\"info\");\n readonly message = input.required<string>();\n readonly position = input<BannerPosition>(\"push\");\n readonly title = input<string>();\n readonly closable = input<boolean>(false);\n readonly isOpen = input<boolean>(true);\n readonly actionLabel = input<string>();\n\n readonly click = output<void>();\n\n readonly visible = signal(false);\n readonly rendering = signal(false);\n\n readonly close = output<void>();\n\n readonly iconTypeMap: Record<string, string> = {\n info: \"info\",\n error: \"dangerous\",\n success: \"check-circle\",\n warning: \"warning\",\n };\n\n readonly iconName = computed(() => {\n return this.iconTypeMap[this.type()];\n });\n\n ngOnInit() {\n this.visible.set(this.isOpen());\n this.rendering.set(this.isOpen());\n if (this.closable() === false && this.position() === \"overlay\") {\n console.warn(\"Banner: 'closable' and 'close' props must be set when 'position' has 'overlay' value.\");\n return;\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes[\"isOpen\"]) {\n if (this.isOpen()) this.openBanner();\n else {\n this.closeBanner();\n }\n }\n }\n\n clickAction() {\n this.click.emit();\n }\n\n closeBanner() {\n this.visible.set(false);\n setTimeout(() => {\n this.rendering.set(false);\n this.close.emit();\n }, 200);\n }\n\n private openBanner() {\n if (this.rendering()) return;\n this.rendering.set(true);\n requestAnimationFrame(() => {\n requestAnimationFrame(() => this.visible.set(true));\n });\n }\n}\n","<section\n *ngIf=\"rendering()\"\n class=\"rte-banner-container {{ type() }} {{ position() }}\"\n class=\"rte-banner\"\n [ngClass]=\"{ open: visible(), close: !visible() }\"\n [attr.role]=\"type() === 'error' ? 'alert' : 'status'\"\n>\n <div class=\"rte-banner-icon\">\n <rte-icon [name]=\"iconName()\" [size]=\"32\" />\n </div>\n <div class=\"rte-banner-content\">\n <span *ngIf=\"title()\" class=\"rte-banner-title\">{{ title() }}</span>\n <div *ngIf=\"message()\" class=\"rte-banner-message\">\n <span>{{ message() }}</span>\n </div>\n </div>\n <button\n *ngIf=\"actionLabel()\"\n rteButton\n rteButtonVariant=\"text\"\n rteButtonSize=\"s\"\n [attr.aria-label]=\"actionLabel()!\"\n (click)=\"clickAction()\"\n >\n {{ actionLabel() }}\n </button>\n <div *ngIf=\"closable()\" class=\"rte-banner-close-icon\">\n <rte-icon-button name=\"close\" variant=\"neutral\" ariaLabel=\"close banner\" (clickEvent)=\"closeBanner()\" />\n </div>\n</section>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input, output } from \"@angular/core\";\nimport { cardSize } from \"@design-system-rte/core/components/card/card.constats\";\nimport { CardType } from \"@design-system-rte/core/components/card/card.interface\";\nimport { Size } from \"@design-system-rte/core/components/common/common-types\";\nimport { ENTER_KEY, SPACE_KEY } from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\n@Component({\n selector: \"rte-card\",\n imports: [CommonModule],\n standalone: true,\n templateUrl: \"./card.component.html\",\n styleUrl: \"./card.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CardComponent {\n readonly size = input<Size>(\"m\");\n readonly cardType = input<CardType>(\"default\");\n readonly clickable = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n\n readonly ariaLabel = input<string | undefined>(undefined);\n readonly ariaLabelledby = input<string | undefined>(undefined);\n readonly ariaRole = input<string | undefined>(undefined);\n\n readonly cardClicked = output<void>();\n\n readonly cardWidth = computed(() => `${cardSize[this.size()]}px`);\n\n readonly tabIndex = computed(() => (this.clickable() ? 0 : -1));\n\n onClick(): void {\n if (!this.disabled() && this.clickable()) {\n this.cardClicked.emit();\n }\n }\n\n onKeyDown(event: KeyboardEvent): void {\n if (!this.disabled() && this.clickable()) {\n if ([ENTER_KEY, SPACE_KEY].includes(event.key)) {\n event.preventDefault();\n this.cardClicked.emit();\n }\n }\n }\n}\n","<div\n class=\"card card-{{ cardType() }}\"\n [style.width]=\"cardWidth()\"\n [attr.disabled]=\"disabled()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-role]=\"ariaRole()\"\n [ngClass]=\"{ clickable: clickable() }\"\n [tabIndex]=\"tabIndex()\"\n (click)=\"onClick()\"\n (keydown)=\"onKeyDown($event)\"\n>\n <ng-content />\n</div>\n","import { inject, Injectable, Renderer2, RendererFactory2 } from \"@angular/core\";\nimport { FOCUSABLE_ELEMENTS_QUERY } from \"@design-system-rte/core/constants/dom/dom.constants\";\n\n@Injectable({ providedIn: \"root\" })\nexport class FocusTrapService {\n private keyUnlisten?: () => void;\n private renderer: Renderer2;\n private activeTrapElement: HTMLElement | null = null;\n private previouslyFocusedElement: HTMLElement | null = null;\n private focusable: HTMLElement[] = [];\n\n private rendererFactory = inject(RendererFactory2);\n\n constructor() {\n this.renderer = this.rendererFactory.createRenderer(null, null);\n }\n\n activate(element: HTMLElement) {\n this.previouslyFocusedElement = document.activeElement as HTMLElement;\n\n this.activeTrapElement = element;\n\n this.focusable = this.getFocusableElements(element);\n\n this.focusFirstElement();\n\n this.keyUnlisten = this.renderer.listen(element, \"keydown\", (event: KeyboardEvent) => {\n if (event.key === \"Tab\") {\n this.handleTab(event, this.focusable);\n }\n });\n }\n\n deactivate() {\n if (this.keyUnlisten) this.keyUnlisten();\n this.keyUnlisten = undefined;\n\n if (this.previouslyFocusedElement) {\n this.previouslyFocusedElement.focus();\n }\n\n this.activeTrapElement = null;\n }\n\n private focusFirstElement() {\n if (!this.activeTrapElement) return;\n\n const focusable = this.activeTrapElement.querySelectorAll(FOCUSABLE_ELEMENTS_QUERY);\n if (focusable.length > 0) (focusable[0] as HTMLElement).focus();\n }\n\n private handleTab(event: KeyboardEvent, focusable: HTMLElement[]) {\n if (!this.activeTrapElement || focusable.length === 0) return;\n\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n\n const current = document.activeElement as HTMLElement;\n\n if (event.shiftKey && current === first) {\n last.focus();\n event.preventDefault();\n } else if (!event.shiftKey && current === last) {\n first.focus();\n event.preventDefault();\n }\n }\n\n private getFocusableElements(container: HTMLElement): HTMLElement[] {\n return Array.from(container.querySelectorAll<HTMLElement>(FOCUSABLE_ELEMENTS_QUERY));\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, ElementRef, inject, input, output, AfterViewInit, OnDestroy } from \"@angular/core\";\nimport { PopoverAlignment, PopoverPosition } from \"@design-system-rte/core/components/popover/popover.interface\";\n\nimport { FocusTrapService } from \"../../services/focus-trap.service\";\nimport { ButtonComponent } from \"../button/button.component\";\n\n@Component({\n selector: \"rte-popover\",\n imports: [CommonModule, ButtonComponent],\n standalone: true,\n templateUrl: \"./popover.component.html\",\n styleUrl: \"./popover.component.scss\",\n})\nexport class PopoverComponent implements AfterViewInit, OnDestroy {\n readonly primaryButtonLabel = input.required<string>();\n readonly position = input.required<Exclude<PopoverPosition, \"auto\">>();\n readonly alignment = input<PopoverAlignment>();\n readonly content = input<string>();\n readonly arrow = input<boolean>();\n readonly title = input<string>();\n readonly secondaryButtonLabel = input<string>();\n readonly isOpen = input<boolean>(false);\n readonly coordinates = input<{ top: number; left: number }>({ top: 0, left: 0 });\n\n readonly clickPrimaryButton = output<void>();\n readonly clickSecondaryButton = output<void>();\n\n private elementRef = inject(ElementRef);\n\n private focusTrap = inject(FocusTrapService);\n\n constructor() {}\n\n ngAfterViewInit() {\n const native = this.elementRef?.nativeElement;\n if (native) {\n this.focusTrap.activate(native);\n }\n }\n\n ngOnDestroy() {\n this.focusTrap.deactivate();\n }\n\n handleClickPrimaryButton() {\n this.clickPrimaryButton.emit();\n }\n handleClickSecondaryButton() {\n this.clickSecondaryButton.emit();\n }\n}\n","<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","import {\n AfterViewInit,\n ComponentRef,\n Directive,\n ElementRef,\n HostListener,\n inject,\n input,\n OnDestroy,\n output,\n Renderer2,\n ViewContainerRef,\n} from \"@angular/core\";\nimport { POPOVER_GAP, POPOVER_GAP_ARROW } from \"@design-system-rte/core/components/popover/popover.constants\";\nimport {\n getAutoAlignment,\n getAutoPlacement,\n getCoordinates,\n} from \"@design-system-rte/core/components/utils/auto-placement\";\nimport { ESCAPE_KEY } from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { OverlayService } from \"../../services/overlay.service\";\n\nimport { PopoverComponent } from \"./popover.component\";\n\n@Directive({\n selector: \"[rtePopover]\",\n standalone: true,\n})\nexport class PopoverDirective implements AfterViewInit, OnDestroy {\n readonly rtePopoverContent = input.required<string>();\n readonly rtePopoverTitle = input<string>();\n readonly rtePopoverPosition = input(\"auto\");\n readonly rtePopoverAlignment = input(\"center\");\n readonly rtePopoverArrow = input(true);\n readonly rtePopoverPrimaryButtonLabel = input<string>();\n readonly rtePopoverSecondaryButtonLabel = input<string>();\n readonly clickPrimaryButton = output<void>();\n readonly clickSecondaryButton = output<void>();\n readonly rtePopoverCloseOnClickOutside = input<boolean>(true);\n readonly rtePopoverCloseOnEscape = input<boolean>(true);\n\n private popoverRef: ComponentRef<PopoverComponent> | null = null;\n private hostElement: HTMLElement;\n private overlayService: OverlayService;\n\n private elementRef = inject(ElementRef);\n private viewContainerRef = inject(ViewContainerRef);\n private renderer = inject(Renderer2);\n\n private subPrimary?: { unsubscribe(): void };\n private subSecondary?: { unsubscribe(): void };\n\n private onScroll = () => this.positionPopover();\n private onMouseDown = (e: MouseEvent) => this.handleClickAway(e);\n private onKeyDown = (e: KeyboardEvent) => this.handleKeydown(e);\n\n @HostListener(\"click\")\n onClick(): void {\n if (!this.popoverRef) {\n this.showPopover();\n }\n }\n\n constructor() {\n this.overlayService = inject(OverlayService);\n this.hostElement = this.elementRef.nativeElement;\n this.hostElement.setAttribute(\"tabindex\", \"0\");\n }\n\n ngAfterViewInit() {\n window.addEventListener(\"scroll\", this.onScroll);\n document.addEventListener(\"mousedown\", this.onMouseDown);\n document.addEventListener(\"keydown\", this.onKeyDown);\n }\n\n ngOnDestroy() {\n window.removeEventListener(\"scroll\", this.onScroll);\n document.removeEventListener(\"mousedown\", this.onMouseDown);\n document.removeEventListener(\"keydown\", this.onKeyDown);\n this.destroyPopover();\n }\n\n showPopover(): void {\n if (this.popoverRef) {\n this.popoverRef.destroy();\n }\n this.popoverRef = this.overlayService.create(PopoverComponent, this.viewContainerRef);\n\n this.subPrimary?.unsubscribe();\n this.subSecondary?.unsubscribe();\n this.subPrimary = this.popoverRef.instance.clickPrimaryButton.subscribe(() => this.handleClickPrimaryButton());\n this.subSecondary = this.popoverRef.instance.clickSecondaryButton.subscribe(() =>\n this.handleClickSecondaryButton(),\n );\n\n this.assignDirectiveToComponent();\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n this.positionPopover();\n });\n });\n }\n\n private handleClickAway(event: MouseEvent) {\n const elements = [this.hostElement, this.popoverRef?.location.nativeElement] as HTMLElement[];\n if (elements.some((element) => !element)) return;\n const shouldIgnore = elements.some((element) => element.contains(event.target as Node));\n if (!shouldIgnore && this.rtePopoverCloseOnClickOutside()) {\n this.hidePopover();\n }\n }\n\n private handleKeydown(event: KeyboardEvent) {\n if (event.key === ESCAPE_KEY && this.rtePopoverCloseOnEscape()) {\n event.preventDefault();\n this.hidePopover();\n }\n }\n\n private assignDirectiveToComponent(): void {\n if (this.popoverRef) {\n const popoverElement = this.popoverRef.location.nativeElement.children[0];\n\n const position =\n this.rtePopoverPosition() === \"auto\"\n ? getAutoPlacement(\n this.hostElement,\n popoverElement,\n \"top\",\n this.rtePopoverArrow() ? POPOVER_GAP_ARROW : POPOVER_GAP,\n )\n : this.rtePopoverPosition();\n\n this.popoverRef.setInput(\"title\", this.rtePopoverTitle());\n this.popoverRef.setInput(\"content\", this.rtePopoverContent());\n this.popoverRef.setInput(\"position\", position);\n this.popoverRef.setInput(\"alignment\", this.rtePopoverAlignment());\n this.popoverRef.setInput(\"arrow\", this.rtePopoverArrow());\n this.popoverRef.setInput(\"primaryButtonLabel\", this.rtePopoverPrimaryButtonLabel());\n this.popoverRef.setInput(\"secondaryButtonLabel\", this.rtePopoverSecondaryButtonLabel());\n }\n }\n\n private handleClickPrimaryButton() {\n if (!this.popoverRef) return;\n this.clickPrimaryButton.emit();\n this.hidePopover();\n }\n\n private handleClickSecondaryButton() {\n this.clickSecondaryButton?.emit();\n this.hidePopover();\n }\n\n private positionPopover(): void {\n if (this.popoverRef) {\n const popoverElement = this.popoverRef.location.nativeElement.children[0];\n\n const autoAlignment = getAutoAlignment(this.hostElement, popoverElement, this.popoverRef.instance.position());\n this.popoverRef.setInput(\"alignment\", autoAlignment);\n\n const positions = getCoordinates(\n this.popoverRef.instance.position(),\n this.hostElement,\n popoverElement,\n this.rtePopoverArrow() ? POPOVER_GAP_ARROW : POPOVER_GAP,\n autoAlignment,\n );\n\n this.renderer.setStyle(this.hostElement, \"position\", \"relative\");\n\n this.renderer.setStyle(popoverElement, \"position\", \"absolute\");\n\n this.renderer.setStyle(popoverElement, \"top\", `${positions.top}px`);\n this.renderer.setStyle(popoverElement, \"left\", `${positions.left}px`);\n this.popoverRef.setInput(\"isOpen\", true);\n }\n }\n\n private hidePopover(): void {\n if (this.popoverRef) {\n this.popoverRef.setInput(\"isOpen\", false);\n\n setTimeout(() => this.destroyPopover(), 200);\n }\n }\n\n private destroyPopover(): void {\n if (this.popoverRef) {\n this.subPrimary?.unsubscribe();\n this.subSecondary?.unsubscribe();\n this.subPrimary = undefined;\n this.subSecondary = undefined;\n this.popoverRef.destroy();\n this.popoverRef = null;\n this.overlayService.destroy();\n }\n }\n}\n","import { Directive, ElementRef, HostListener, inject, output } from \"@angular/core\";\n\n@Directive({\n selector: \"[rteModalTrigger]\",\n standalone: true,\n})\nexport class ModalTriggerDirective {\n readonly elementRef = inject(ElementRef);\n\n readonly modalTriggerKeyDown = output<KeyboardEvent>();\n\n readonly modalTriggerClicked = output<Event>();\n\n @HostListener(\"click\", [\"$event\"])\n onModalTriggerClicked(event: Event): void {\n this.modalTriggerClicked.emit(event);\n }\n\n @HostListener(\"keydown\", [\"$event\"])\n onKeyDown(event: KeyboardEvent): void {\n this.modalTriggerKeyDown.emit(event);\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport {\n Component,\n ElementRef,\n input,\n TemplateRef,\n OnDestroy,\n viewChild,\n AfterViewInit,\n output,\n inject,\n signal,\n} from \"@angular/core\";\nimport { Size } from \"@design-system-rte/core/components/common/common-types\";\nimport { IconSize } from \"@design-system-rte/core/components/icon/icon.constants\";\n\nimport { FocusTrapService } from \"../../services/focus-trap.service\";\nimport { ButtonComponent } from \"../button/button.component\";\nimport { DividerComponent } from \"../divider/divider.component\";\nimport { IconComponent } from \"../icon/icon.component\";\nimport { IconButtonComponent } from \"../icon-button/icon-button.component\";\n\n@Component({\n selector: \"rte-modal\",\n imports: [CommonModule, IconButtonComponent, IconComponent, DividerComponent],\n standalone: true,\n templateUrl: \"./modal.component.html\",\n styleUrl: \"./modal.component.scss\",\n})\nexport class ModalComponent implements AfterViewInit, OnDestroy {\n readonly id = input<string | undefined>();\n readonly icon = input<string | undefined>();\n readonly iconAppearance = input<\"outlined\" | \"filled\">(\"outlined\");\n readonly title = input<string>();\n readonly description = input<string>();\n readonly secondaryButtonLabel = input<string>();\n readonly isOpen = input<boolean>(false);\n readonly size = input<Size>(\"m\");\n readonly ariaDescribedby = input<string | undefined>(undefined);\n\n readonly primaryButton = input<TemplateRef<ButtonComponent> | null>(null);\n readonly secondaryButton = input<TemplateRef<ButtonComponent> | null>(null);\n readonly customContent = input<TemplateRef<unknown> | null>(null);\n\n private readonly elementRef = viewChild<ElementRef<HTMLDivElement>>(\"modal\");\n\n private focusTrap = inject(FocusTrapService);\n\n constructor() {}\n\n readonly closeModal = output<void>();\n\n readonly iconSize = signal(IconSize[\"xl\"]);\n\n ngAfterViewInit() {\n const native = this.elementRef()?.nativeElement;\n if (native) {\n this.focusTrap.activate(native);\n }\n }\n\n ngOnDestroy() {\n this.focusTrap.deactivate();\n }\n\n onClose() {\n this.closeModal.emit();\n }\n}\n","<div class=\"rte-modal-wrapper\">\n <div class=\"rte-modal-backdrop\" [attr.data-open]=\"isOpen()\"></div>\n <dialog\n #modal\n class=\"rte-modal-container\"\n [attr.aria-modal]=\"true\"\n [attr.aria-labelledby]=\"id() + '-modal-title'\"\n [attr.aria-describedby]=\"description() ? id() + '-modal-desc' : ariaDescribedby()\"\n [attr.data-size]=\"size()\"\n [attr.data-open]=\"isOpen()\"\n >\n <div class=\"rte-modal-header\">\n <div class=\"rte-modal-header-text\">\n <rte-icon *ngIf=\"icon()\" [name]=\"icon() ?? ''\" [size]=\"iconSize()\" [appearance]=\"iconAppearance()\" />\n <h2 class=\"rte-modal-title\" [id]=\"id() + '-modal-title'\">\n {{ title() }}\n </h2>\n <rte-icon-button\n data-testid=\"modal-close-button\"\n name=\"close\"\n size=\"l\"\n class=\"close-icon\"\n variant=\"neutral\"\n [ariaLabel]=\"'Close modal ' + id()\"\n (clickEvent)=\"onClose()\"\n />\n </div>\n <rte-divider />\n </div>\n <div *ngIf=\"description()\" class=\"rte-modal-content\">\n <p class=\"rte-modal-content-description\" [id]=\"id() + '-modal-desc'\">\n {{ description() }}\n </p>\n <ng-container [ngTemplateOutlet]=\"customContent()\"></ng-container>\n </div>\n <div class=\"rte-modal-footer\">\n <ng-container [ngTemplateOutlet]=\"secondaryButton()\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"primaryButton()\"></ng-container>\n </div>\n </dialog>\n</div>\n","import {\n AfterContentInit,\n ComponentRef,\n contentChild,\n Directive,\n ElementRef,\n inject,\n input,\n OnDestroy,\n ViewContainerRef,\n} from \"@angular/core\";\nimport { Size } from \"@design-system-rte/core/components/common/common-types\";\nimport { ESCAPE_KEY } from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { OverlayService } from \"../../services/overlay.service\";\nimport { ButtonComponent } from \"../button/button.component\";\n\nimport { ModalTriggerDirective } from \"./modal-trigger/modal-trigger.directive\";\nimport { ModalComponent } from \"./modal.component\";\n\n@Directive({\n selector: \"[rteModal]\",\n standalone: true,\n})\nexport class ModalDirective implements AfterContentInit, OnDestroy {\n private modalCompRef: ComponentRef<ModalComponent> | null = null;\n private hostElement: HTMLElement;\n private overlayService: OverlayService;\n\n private elementRef = inject(ElementRef);\n private viewContainerRef = inject(ViewContainerRef);\n\n readonly trigger = contentChild(ModalTriggerDirective);\n\n readonly rteModalId = input<string | undefined>();\n readonly rteModalIcon = input<string | undefined>();\n readonly rteModalIconAppearance = input<\"outlined\" | \"filled\">(\"outlined\");\n readonly rteModalTitle = input<string>();\n readonly rteModalDescription = input<string>();\n readonly rteModalIsOpen = input<boolean>(false);\n readonly rteModalSize = input<Size>(\"m\");\n readonly rteModalAriaDescribedby = input<string | undefined>();\n readonly rteModalCloseOnClickOutside = input<boolean>(true);\n\n readonly primaryButton = contentChild.required<ButtonComponent>(\"primaryButton\");\n readonly secondaryButton = contentChild<ButtonComponent>(\"secondaryButton\");\n readonly customContent = contentChild<unknown>(\"customContent\");\n\n private modalElement: HTMLElement | null = null;\n\n private onMouseDown = (e: MouseEvent) => this.handleClickAway(e);\n private onKeyDown = (e: KeyboardEvent) => this.handleKeydown(e);\n\n constructor() {\n this.overlayService = inject(OverlayService);\n this.hostElement = this.elementRef.nativeElement;\n }\n\n onTrigger(): void {\n this.showModal();\n }\n\n ngAfterContentInit() {\n document.addEventListener(\"mousedown\", this.onMouseDown);\n document.addEventListener(\"keydown\", this.onKeyDown);\n if (this.trigger()) {\n this.trigger()?.modalTriggerClicked.subscribe(() => {\n this.onTrigger();\n });\n }\n }\n\n ngOnDestroy() {\n this.destroyModal();\n }\n\n showModal(): void {\n if (this.modalCompRef) {\n this.modalCompRef.destroy();\n }\n\n if (!this.primaryButton()) {\n console.warn(\"Primary button required, add it as child to the modal directive.\");\n return;\n }\n\n this.modalCompRef = this.overlayService.create(ModalComponent, this.viewContainerRef, true);\n\n this.modalCompRef?.instance.closeModal.subscribe(() => {\n this.closeModal();\n });\n\n this.modalElement = this.modalCompRef?.location.nativeElement.children[0].children[1];\n\n this.assignInputsValues();\n }\n\n private handleKeydown(event: KeyboardEvent) {\n if (event.key === ESCAPE_KEY && this.rteModalCloseOnClickOutside()) {\n event.preventDefault();\n this.closeModal();\n }\n }\n\n private assignInputsValues(): void {\n if (this.modalCompRef) {\n this.modalCompRef.setInput(\"id\", this.rteModalId());\n this.modalCompRef.setInput(\"icon\", this.rteModalIcon());\n this.modalCompRef.setInput(\"iconAppearance\", this.rteModalIconAppearance());\n this.modalCompRef.setInput(\"title\", this.rteModalTitle());\n this.modalCompRef.setInput(\"description\", this.rteModalDescription());\n this.modalCompRef.setInput(\"size\", this.rteModalSize());\n this.modalCompRef.setInput(\"ariaDescribedby\", this.rteModalAriaDescribedby());\n this.modalCompRef.setInput(\"primaryButton\", this.primaryButton());\n this.modalCompRef.setInput(\"secondaryButton\", this.secondaryButton());\n this.modalCompRef.setInput(\"customContent\", this.customContent());\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n this.modalCompRef?.setInput(\"isOpen\", true);\n });\n });\n }\n }\n\n private handleClickAway(event: MouseEvent) {\n const elements = [this.hostElement, this.modalElement] as HTMLElement[];\n if (elements.some((element) => !element)) return;\n const shouldIgnore = elements.some((element) => element.contains(event.target as Node));\n if (!shouldIgnore && this.rteModalCloseOnClickOutside()) {\n this.closeModal();\n }\n }\n\n private closeModal(): void {\n if (this.modalCompRef) {\n this.modalCompRef.setInput(\"isOpen\", false);\n\n setTimeout(() => this.destroyModal(), 200);\n }\n }\n\n private destroyModal(): void {\n if (this.modalCompRef) {\n this.modalCompRef.destroy();\n this.modalCompRef = null;\n this.overlayService.destroy();\n }\n }\n}\n","import { NgModule } from \"@angular/core\";\n\nimport { ModalTriggerDirective } from \"./modal-trigger/modal-trigger.directive\";\nimport { ModalDirective } from \"./modal.directive\";\n\n@NgModule({\n imports: [ModalDirective, ModalTriggerDirective],\n exports: [ModalDirective, ModalTriggerDirective],\n})\nexport class ModalModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input, output, signal } from \"@angular/core\";\nimport {\n APPEARANCE_CONFIG,\n SEARCHBAR_BORDER_RADIUS,\n SEARCHBAR_BUTTON_HEIGHT_COMPACT,\n SEARCHBAR_BUTTON_WIDTH,\n SEARCHBAR_PADDING_LEFT,\n} from \"@design-system-rte/core/components/searchbar/searchbar.constants\";\nimport { SearchBarAppearance } from \"@design-system-rte/core/components/searchbar/searchbar.interface\";\nimport { ENTER_KEY } from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { IconButtonComponent } from \"../icon-button/icon-button.component\";\nimport { BaseTextInputComponent } from \"../text-input/base-text-input/base-text-input.component\";\n\n@Component({\n selector: \"rte-searchbar\",\n imports: [CommonModule, BaseTextInputComponent, IconButtonComponent],\n standalone: true,\n templateUrl: \"./searchbar.component.html\",\n styleUrl: \"./searchbar.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SearchbarComponent {\n readonly id = input<string>();\n readonly label = input<string>(\"Rechercher\");\n readonly disabled = input<boolean>(false);\n readonly showResetButton = input<boolean>(true);\n readonly appearance = input<SearchBarAppearance>(\"primary\");\n readonly compactSpacing = input<boolean>(false);\n readonly value = input<string>(\"\");\n readonly assistiveText = input<string>(\"\");\n\n readonly valueChange = output<string>();\n readonly searchEvent = output<string | undefined>();\n readonly clear = output<void>();\n\n readonly hasFocusWithin = signal<boolean>(false);\n\n readonly appearanceConfig = computed(() => APPEARANCE_CONFIG[this.appearance()]);\n\n readonly placeholder = computed(() => (this.disabled() ? \"Recherche indisponible\" : this.label()));\n\n readonly textInputStyles = computed(() => {\n const styles: Record<string, string> = {};\n const hasLeftIcon = this.appearanceConfig().showLeftIcon;\n\n if (this.appearance() === \"primary\") {\n styles[\"border-right\"] = \"none\";\n styles[\"border-radius\"] = `${SEARCHBAR_BORDER_RADIUS} 0 0 ${SEARCHBAR_BORDER_RADIUS}`;\n if (!hasLeftIcon) {\n styles[\"padding-left\"] = SEARCHBAR_PADDING_LEFT;\n }\n } else if (this.appearance() === \"secondary\") {\n styles[\"border-radius\"] = SEARCHBAR_BORDER_RADIUS;\n }\n\n return styles;\n });\n\n readonly searchButtonStyles = computed(() => {\n const styles: Record<string, string> = {\n width: SEARCHBAR_BUTTON_WIDTH,\n \"border-radius\": `0 ${SEARCHBAR_BORDER_RADIUS} ${SEARCHBAR_BORDER_RADIUS} 0`,\n display: \"flex\",\n \"justify-content\": \"center\",\n };\n if (this.compactSpacing()) {\n styles[\"height\"] = SEARCHBAR_BUTTON_HEIGHT_COMPACT;\n }\n return styles;\n });\n\n handleChange(value: string): void {\n this.valueChange.emit(value);\n }\n\n handleSearch(): void {\n this.searchEvent.emit(this.value());\n }\n\n handleEnter(event: KeyboardEvent): void {\n if (event.key === ENTER_KEY) {\n this.handleSearch();\n }\n }\n\n handleClear(): void {\n this.valueChange.emit(\"\");\n this.clear.emit();\n }\n\n handleFocusIn(): void {\n this.hasFocusWithin.set(true);\n }\n\n handleFocusOut(event: FocusEvent): void {\n const next = event.relatedTarget as Node | null;\n const currentTarget = event.currentTarget as Node;\n if (next && currentTarget.contains(next)) {\n return;\n }\n this.hasFocusWithin.set(false);\n }\n}\n","<div class=\"searchbar-container\" role=\"search\" [ngClass]=\"appearance()\">\n <div\n class=\"text-input-wrapper\"\n [attr.data-disabled]=\"disabled()\"\n (focusin)=\"handleFocusIn()\"\n (focusout)=\"handleFocusOut($event)\"\n >\n <rte-base-text-input\n rightIconAction=\"clean\"\n autocomplete=\"off\"\n [id]=\"id() ?? ''\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled()\"\n [value]=\"value()\"\n [showRightIcon]=\"showResetButton()\"\n [assistiveTextLabel]=\"assistiveText()\"\n [compactSpacing]=\"compactSpacing()\"\n [leftIcon]=\"appearanceConfig().showLeftIcon ? 'search' : null\"\n [customStyle]=\"textInputStyles()\"\n [highlighted]=\"hasFocusWithin()\"\n (valueChange)=\"handleChange($event)\"\n (rightIconClick)=\"handleClear()\"\n >\n @if (appearanceConfig().showSearchButton) {\n <rte-icon-button\n baseTextInputRightSlot\n name=\"search\"\n size=\"m\"\n variant=\"primary\"\n appearance=\"filled\"\n class=\"search-button\"\n [ariaLabel]=\"label()\"\n [disabled]=\"disabled()\"\n [compactSpacing]=\"compactSpacing()\"\n [customStyle]=\"searchButtonStyles()\"\n (clickEvent)=\"handleSearch()\"\n />\n }\n </rte-base-text-input>\n </div>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n OnDestroy,\n viewChild,\n} from \"@angular/core\";\nimport { sideNavCollapsedSize, sideNavPanelSize } from \"@design-system-rte/core/components/side-nav/side-nav.constants\";\nimport { SideNavAppearance } from \"@design-system-rte/core/components/side-nav/side-nav.interface\";\n\ntype SideNavSize = \"s\" | \"m\" | \"l\";\n\n@Component({\n selector: \"rte-base-side-nav\",\n imports: [CommonModule],\n standalone: true,\n templateUrl: \"./base-side-nav.component.html\",\n styleUrl: \"./base-side-nav.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BaseSideNavComponent implements AfterViewInit, OnDestroy {\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n readonly contentRef = viewChild<ElementRef<HTMLDivElement>>(\"contentRef\");\n\n private readonly collapsedSize = sideNavCollapsedSize;\n private readonly panelSize = sideNavPanelSize;\n\n readonly size = input<SideNavSize>(\"m\");\n readonly appearance = input<SideNavAppearance>(\"brand\");\n readonly collapsed = input<boolean>(false);\n readonly showHeader = input<boolean>(true);\n readonly showFooter = input<boolean>(true);\n\n readonly minWidth = computed<string>(() => {\n return this.collapsed() ? `${this.collapsedSize}px` : `${this.panelSize[this.size()]}px`;\n });\n\n private resizeObserver?: ResizeObserver;\n private resizeHandler?: () => void;\n\n ngAfterViewInit(): void {\n this.setupResizeObserver();\n }\n\n ngOnDestroy(): void {\n this.cleanupResizeObserver();\n }\n\n private setupResizeObserver(): void {\n const containerEl = this.elementRef.nativeElement;\n const contentEl = this.contentRef()?.nativeElement;\n if (!containerEl || !contentEl) {\n return;\n }\n\n const setHeightVar = (): void => {\n const height = contentEl.offsetHeight;\n containerEl.style.setProperty(\"--content-height\", `${height}px`);\n };\n\n this.resizeHandler = setHeightVar;\n setHeightVar();\n\n this.resizeObserver = new ResizeObserver(() => {\n setHeightVar();\n });\n this.resizeObserver.observe(contentEl);\n\n window.addEventListener(\"resize\", setHeightVar);\n }\n\n private cleanupResizeObserver(): void {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = undefined;\n }\n if (this.resizeHandler) {\n window.removeEventListener(\"resize\", this.resizeHandler);\n this.resizeHandler = undefined;\n }\n }\n}\n","<div class=\"side-nav-container\">\n <nav class=\"side-nav\" [ngClass]=\"{ collapsed: collapsed(), appearance: appearance() }\" [style.min-width]=\"minWidth()\">\n @if (showHeader()) {\n <div class=\"side-nav-header\">\n <ng-content select=\"[side-nav-header]\"></ng-content>\n </div>\n }\n\n <div class=\"side-nav-body\">\n <ng-content select=\"[side-nav-body]\"></ng-content>\n </div>\n\n @if (showFooter()) {\n <div class=\"side-nav-footer\">\n <ng-content select=\"[side-nav-footer]\"></ng-content>\n </div>\n }\n </nav>\n <div #contentRef class=\"side-nav-content\">\n <ng-content select=\"[side-nav-content]\"></ng-content>\n </div>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, input, output, signal } from \"@angular/core\";\nimport { BadgeProps } from \"@design-system-rte/core/components/badge/badge.interface\";\nimport { getNavItemLabelIconSize } from \"@design-system-rte/core/components/side-nav/nav-item/nav-item.utils\";\nimport { SideNavAppearance } from \"@design-system-rte/core/components/side-nav/side-nav.interface\";\nimport { ENTER_KEY, SPACE_KEY } from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { BadgeComponent } from \"../../badge/badge.component\";\nimport { IconComponent } from \"../../icon/icon.component\";\nimport { TooltipDirective } from \"../../tooltip/tooltip.directive\";\n\nfunction getNavTabIndex(parentMenuOpen?: boolean): number {\n return parentMenuOpen === false ? -1 : 0;\n}\n\n@Component({\n selector: \"rte-nav-item\",\n imports: [CommonModule, IconComponent, BadgeComponent, TooltipDirective],\n standalone: true,\n templateUrl: \"./nav-item.component.html\",\n styleUrl: \"./nav-item.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NavItemComponent {\n readonly id = input<string | undefined>();\n readonly icon = input<string | undefined>();\n readonly showIcon = input<boolean>(true);\n readonly label = input.required<string>();\n readonly collapsed = input<boolean>(false);\n readonly link = input<string | undefined>();\n readonly appearance = input<SideNavAppearance>(\"brand\");\n readonly active = input<boolean>(false);\n readonly badge = input<BadgeProps | undefined>();\n readonly isNested = input<boolean>(false);\n readonly parentMenuOpen = input<boolean | undefined>();\n readonly role = input<string | undefined>();\n readonly showDivider = input<boolean>(false);\n\n readonly focused = signal<boolean>(false);\n readonly tabIndex = computed<number>(() => getNavTabIndex(this.parentMenuOpen()));\n\n readonly itemClick = output<string>();\n\n readonly iconSize = computed<number>(() => {\n return getNavItemLabelIconSize(this.isNested(), this.collapsed());\n });\n\n handleClick(event: Event): void {\n event.stopPropagation();\n this.itemClick.emit(this.id() || this.label());\n }\n\n handleKeyDown(event: KeyboardEvent): void {\n if ([SPACE_KEY, ENTER_KEY].includes(event.key)) {\n event.preventDefault();\n this.itemClick.emit(this.id() || this.label());\n }\n }\n\n handleFocus(): void {\n this.focused.set(true);\n }\n\n handleBlur(): void {\n this.focused.set(false);\n }\n}\n","@if (collapsed() && label()) {\n <div\n class=\"nav-item-container {{ appearance() }}\"\n rteTooltip\n rteTooltipPosition=\"right\"\n rteTooltipAlignment=\"center\"\n [id]=\"id()\"\n [ngClass]=\"{ collapsed: collapsed(), nested: isNested(), active: active(), focused: focused() }\"\n [attr.role]=\"role()\"\n [rteTooltip]=\"label()\"\n [rteTooltipArrow]=\"false\"\n [rteTooltipGap]=\"12\"\n [rteTooltipShouldFocusTrigger]=\"false\"\n >\n <ng-container [ngTemplateOutlet]=\"contentTemplate\" />\n </div>\n} @else {\n <div\n class=\"nav-item-container {{ appearance() }}\"\n [id]=\"id()\"\n [ngClass]=\"{ collapsed: collapsed(), nested: isNested(), active: active(), focused: focused() }\"\n [attr.role]=\"role()\"\n >\n <ng-container [ngTemplateOutlet]=\"contentTemplate\" />\n </div>\n}\n\n<ng-template #contentTemplate>\n @if (link()) {\n <a\n class=\"nav-item\"\n [href]=\"link()!\"\n [attr.tabindex]=\"tabIndex()\"\n [attr.aria-label]=\"label()\"\n (focus)=\"handleFocus()\"\n (blur)=\"handleBlur()\"\n >\n <div class=\"nav-item-left\">\n @if (showIcon() && icon()) {\n <rte-icon class=\"icon\" [name]=\"icon()!\" [size]=\"iconSize()\" />\n }\n @if (!collapsed()) {\n <span>{{ label() }}</span>\n }\n </div>\n <div class=\"nav-item-right\">\n @if (badge()) {\n <rte-badge\n [badgeType]=\"badge()!.badgeType || 'brand'\"\n [badgeSize]=\"badge()!.size || 'm'\"\n [badgeContent]=\"badge()!.content || 'number'\"\n [count]=\"badge()!.count\"\n [icon]=\"badge()!.icon || 'notification'\"\n [simpleBadge]=\"true\"\n />\n }\n </div>\n </a>\n } @else {\n <span\n class=\"nav-item\"\n [attr.tabindex]=\"tabIndex()\"\n [attr.aria-label]=\"label()\"\n (click)=\"handleClick($event)\"\n (keydown)=\"handleKeyDown($event)\"\n (focus)=\"handleFocus()\"\n (blur)=\"handleBlur()\"\n >\n <div class=\"nav-item-left\">\n @if (showIcon() && icon()) {\n <rte-icon class=\"icon\" [name]=\"icon()!\" [size]=\"iconSize()\" />\n }\n @if (!collapsed()) {\n <span>{{ label() }}</span>\n }\n </div>\n <div class=\"nav-item-right\">\n @if (badge()) {\n <rte-badge\n [badgeType]=\"badge()!.badgeType || 'brand'\"\n [badgeSize]=\"badge()!.size || 'm'\"\n [badgeContent]=\"badge()!.content || 'number'\"\n [count]=\"badge()!.count\"\n [icon]=\"badge()!.icon || 'notification'\"\n [simpleBadge]=\"true\"\n />\n }\n </div>\n </span>\n }\n</ng-template>\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, effect, input, output } from \"@angular/core\";\nimport { BadgeProps } from \"@design-system-rte/core/components/badge/badge.interface\";\nimport { NavItemProps } from \"@design-system-rte/core/components/side-nav/nav-item/nav-item.interface\";\nimport { getNavItemLabelIconSize } from \"@design-system-rte/core/components/side-nav/nav-item/nav-item.utils\";\nimport { NavMenuProps } from \"@design-system-rte/core/components/side-nav/nav-menu/nav-menu.interface\";\nimport { dividerAppearanceBySideNavAppearance } from \"@design-system-rte/core/components/side-nav/side-nav.constants\";\nimport { SideNavAppearance } from \"@design-system-rte/core/components/side-nav/side-nav.interface\";\nimport { ENTER_KEY, ESCAPE_KEY, SPACE_KEY } from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { BadgeComponent } from \"../../badge/badge.component\";\nimport { DividerComponent } from \"../../divider/divider.component\";\nimport { IconComponent } from \"../../icon/icon.component\";\nimport { TooltipDirective } from \"../../tooltip/tooltip.directive\";\nimport { NavItemComponent } from \"../nav-item/nav-item.component\";\n\nfunction getNavTabIndex(parentMenuOpen?: boolean): number {\n return parentMenuOpen === false ? -1 : 0;\n}\n\nexport interface NavMenuOpenChangeEvent {\n id: string;\n open: boolean;\n}\n\n@Component({\n selector: \"rte-nav-menu\",\n imports: [CommonModule, IconComponent, BadgeComponent, DividerComponent, NavItemComponent, TooltipDirective],\n standalone: true,\n templateUrl: \"./nav-menu.component.html\",\n styleUrl: \"./nav-menu.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NavMenuComponent {\n readonly id = input<string | undefined>();\n readonly icon = input<string | undefined>();\n readonly showIcon = input<boolean>(true);\n readonly label = input.required<string>();\n readonly collapsed = input<boolean>(false);\n readonly link = input<string | undefined>();\n readonly items = input.required<NavItemProps[]>();\n readonly open = input<boolean | undefined>(false);\n readonly showMenuIcon = input<boolean>(true);\n readonly isNested = input<boolean>(false);\n readonly parentMenuOpen = input<boolean | undefined>();\n readonly appearance = input<SideNavAppearance>(\"brand\");\n readonly badge = input<BadgeProps | undefined>();\n readonly showDivider = input<boolean>(false);\n\n readonly itemClick = output<string>();\n readonly openChange = output<NavMenuOpenChangeEvent>();\n\n constructor() {\n effect(\n () => {\n if (this.parentMenuOpen() === false && this.open()) {\n this.closeMenu();\n }\n },\n { allowSignalWrites: true },\n );\n }\n\n readonly hasNestedItems = computed<boolean>(() => !!this.items().length);\n readonly shouldShowMenu = computed<boolean>(() => !this.collapsed() && this.hasNestedItems());\n readonly tabIndex = computed<number>(() => getNavTabIndex(this.parentMenuOpen()));\n\n readonly dividerAppearance = computed(() => dividerAppearanceBySideNavAppearance[this.appearance()]);\n\n readonly iconSize = computed<number>(() => {\n return getNavItemLabelIconSize(this.isNested(), this.collapsed());\n });\n\n toggleMenu(): void {\n this.openChange.emit({ id: this.id() || this.label(), open: !this.open() });\n }\n\n handleEscape(): void {\n if (this.open()) {\n this.closeMenu();\n }\n }\n\n handleKeyDown(event: KeyboardEvent): void {\n if ([SPACE_KEY, ENTER_KEY].includes(event.key)) {\n event.preventDefault();\n this.toggleMenu();\n }\n if (event.key === ESCAPE_KEY) {\n event.preventDefault();\n this.handleEscape();\n }\n }\n\n hasNestedItemsForItem(item: NavItemProps): item is NavMenuProps {\n return !!item.items?.length;\n }\n\n handleMenuOpenChange(event: NavMenuOpenChangeEvent): void {\n const targetMenu = this.items().find((item) => item.id === event.id);\n if (targetMenu) {\n (targetMenu as NavMenuProps).open = event.open;\n }\n }\n\n handleMenuClick(itemId: string): void {\n const item = this.items().find((i) => i.id === itemId || i.label === itemId);\n if (item?.onClick) {\n item.onClick();\n }\n }\n\n private closeMenu(): void {\n this.openChange.emit({ id: this.id() || this.label(), open: false });\n }\n}\n","@if (collapsed() && label()) {\n <li\n class=\"nav-menu-container {{ appearance() }}\"\n rteTooltip\n rteTooltipPosition=\"right\"\n rteTooltipAlignment=\"center\"\n [rteTooltipGap]=\"12\"\n [ngClass]=\"{ collapsed: collapsed(), open: open(), nested: isNested() }\"\n [rteTooltip]=\"label()\"\n [rteTooltipArrow]=\"false\"\n [rteTooltipShouldFocusTrigger]=\"false\"\n >\n <ng-container [ngTemplateOutlet]=\"menuContentTemplate\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"nestedMenuTemplate\"></ng-container>\n </li>\n} @else {\n <li\n class=\"nav-menu-container {{ appearance() }}\"\n [ngClass]=\"{ collapsed: collapsed(), open: open(), nested: isNested() }\"\n >\n <ng-container [ngTemplateOutlet]=\"menuContentTemplate\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"nestedMenuTemplate\"></ng-container>\n </li>\n}\n\n<ng-template #menuContentTemplate>\n @if (link()) {\n <a\n class=\"nav-menu\"\n [href]=\"link()!\"\n [attr.tabindex]=\"tabIndex()\"\n [attr.aria-label]=\"label()\"\n (click)=\"toggleMenu()\"\n >\n <div class=\"menu-content-left\">\n @if (showIcon() && icon()) {\n <rte-icon class=\"icon\" [name]=\"icon()!\" [size]=\"iconSize()\" />\n }\n @if (!collapsed()) {\n <span>{{ label() }}</span>\n }\n </div>\n <div class=\"menu-content-right\">\n @if (badge()) {\n <rte-badge\n [badgeType]=\"badge()!.badgeType || 'brand'\"\n [badgeSize]=\"badge()!.size || 'm'\"\n [badgeContent]=\"badge()!.content || 'number'\"\n [count]=\"badge()!.count\"\n [icon]=\"badge()!.icon || 'notification'\"\n [simpleBadge]=\"true\"\n />\n }\n @if (shouldShowMenu() && showMenuIcon()) {\n <rte-icon name=\"arrow-chevron-right\" class=\"menu-icon\" [ngClass]=\"{ 'menu-icon-open': open() }\" />\n }\n </div>\n </a>\n } @else {\n <span\n class=\"nav-menu\"\n [attr.tabindex]=\"tabIndex()\"\n [attr.aria-label]=\"label()\"\n (click)=\"toggleMenu()\"\n (keydown)=\"handleKeyDown($event)\"\n >\n <div class=\"menu-content-left\">\n @if (showIcon() && icon()) {\n <rte-icon class=\"icon\" [name]=\"icon()!\" [size]=\"iconSize()\" />\n }\n @if (!collapsed()) {\n <span>{{ label() }}</span>\n }\n </div>\n <div class=\"menu-content-right\">\n @if (badge()) {\n <rte-badge\n [badgeType]=\"badge()!.badgeType || 'brand'\"\n [badgeSize]=\"badge()!.size || 'm'\"\n [badgeContent]=\"badge()!.content || 'number'\"\n [count]=\"badge()!.count\"\n [icon]=\"badge()!.icon || 'notification'\"\n [simpleBadge]=\"true\"\n />\n }\n @if (shouldShowMenu() && showMenuIcon()) {\n <rte-icon name=\"arrow-chevron-right\" class=\"menu-icon\" [ngClass]=\"{ 'menu-icon-open': open() }\" />\n }\n </div>\n </span>\n }\n</ng-template>\n\n<ng-template #nestedMenuTemplate>\n @if (shouldShowMenu()) {\n <ul class=\"nested-menu\" [ngClass]=\"{ 'nested-menu-open': open() }\">\n @if (open()) {\n @for (item of items(); track item.id || item.label) {\n @if (hasNestedItemsForItem(item)) {\n <rte-nav-menu\n [id]=\"item.id\"\n [label]=\"item.label\"\n [icon]=\"item.icon\"\n [showIcon]=\"item.showIcon ?? true\"\n [collapsed]=\"collapsed()\"\n [link]=\"item.link\"\n [items]=\"item.items || []\"\n [showMenuIcon]=\"showMenuIcon()\"\n [isNested]=\"true\"\n [open]=\"item.open\"\n [parentMenuOpen]=\"open()\"\n [appearance]=\"appearance()\"\n [showDivider]=\"item.showDivider!\"\n [badge]=\"item.badge\"\n (itemClick)=\"handleMenuClick($event)\"\n (openChange)=\"handleMenuOpenChange($event)\"\n />\n } @else {\n <li>\n <rte-nav-item\n [id]=\"item.id\"\n [label]=\"item.label\"\n [icon]=\"item.icon\"\n [showIcon]=\"item.showIcon ?? true\"\n [collapsed]=\"collapsed()\"\n [link]=\"item.link\"\n [isNested]=\"true\"\n [parentMenuOpen]=\"open()\"\n [appearance]=\"appearance()\"\n [showDivider]=\"item.showDivider!\"\n [badge]=\"item.badge\"\n (itemClick)=\"itemClick.emit($event)\"\n />\n </li>\n @if (item.showDivider) {\n <rte-divider [appearance]=\"dividerAppearance()\" />\n }\n }\n }\n }\n </ul>\n }\n</ng-template>\n\n@if (showDivider()) {\n <rte-divider [appearance]=\"dividerAppearance()\" />\n}\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, computed, effect, input, output, signal } from \"@angular/core\";\nimport { DividerAppearance } from \"@design-system-rte/core/components/divider/divider.interface\";\nimport { NavItemProps } from \"@design-system-rte/core/components/side-nav/nav-item/nav-item.interface\";\nimport { NavMenuProps } from \"@design-system-rte/core/components/side-nav/nav-menu/nav-menu.interface\";\nimport { dividerAppearanceBySideNavAppearance } from \"@design-system-rte/core/components/side-nav/side-nav.constants\";\nimport { SideNavAppearance, SideNavHeaderConfig } from \"@design-system-rte/core/components/side-nav/side-nav.interface\";\nimport { SideNavSize } from \"@design-system-rte/core/components/side-nav/side-nav.interface\";\nimport { ENTER_KEY, SPACE_KEY } from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { DividerComponent } from \"../divider/divider.component\";\n\nimport { BaseSideNavComponent } from \"./base-side-nav/base-side-nav.component\";\nimport { NavItemComponent } from \"./nav-item/nav-item.component\";\nimport { NavMenuComponent, NavMenuOpenChangeEvent } from \"./nav-menu/nav-menu.component\";\n\nconst TRANSITION_DURATION = 300;\n\n@Component({\n selector: \"rte-side-nav\",\n imports: [CommonModule, BaseSideNavComponent, DividerComponent, NavItemComponent, NavMenuComponent],\n standalone: true,\n templateUrl: \"./side-nav.component.html\",\n styleUrl: \"./side-nav.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SideNavComponent {\n readonly size = input<SideNavSize>(\"m\" as SideNavSize);\n readonly collapsible = input<boolean>(false);\n readonly headerConfig = input<SideNavHeaderConfig | undefined>();\n readonly items = input<NavItemProps[]>([]);\n readonly footerItems = input<NavItemProps[] | undefined>();\n readonly collapsed = input<boolean>(false);\n readonly appearance = input<SideNavAppearance>(\"brand\");\n\n readonly isCollapsed = signal<boolean>(false);\n readonly shouldShowTitle = signal<boolean>(true);\n\n readonly itemClicked = output<string>();\n\n private titleTimeoutId: ReturnType<typeof setTimeout> | null = null;\n\n constructor() {\n effect(\n () => {\n this.isCollapsed.set(this.collapsed());\n },\n { allowSignalWrites: true },\n );\n\n effect(\n () => {\n if (this.titleTimeoutId) {\n clearTimeout(this.titleTimeoutId);\n this.titleTimeoutId = null;\n }\n\n if (this.isCollapsed()) {\n this.shouldShowTitle.set(false);\n } else {\n this.titleTimeoutId = setTimeout(() => {\n this.shouldShowTitle.set(true);\n this.titleTimeoutId = null;\n }, TRANSITION_DURATION);\n }\n },\n { allowSignalWrites: true },\n );\n }\n\n readonly collapseIcon = computed<string>(() => {\n return this.isCollapsed() ? \"arrow-double-right\" : \"arrow-double-left\";\n });\n\n readonly dividerAppearance = computed<DividerAppearance>(() => {\n return dividerAppearanceBySideNavAppearance[this.appearance()];\n });\n\n handleHeaderKeyDown(event: KeyboardEvent): void {\n if ([SPACE_KEY, ENTER_KEY].includes(event.key)) {\n event.preventDefault();\n const config = this.headerConfig();\n if (config?.onClick) {\n config.onClick();\n }\n }\n }\n\n handleHeaderClick(): void {\n const config = this.headerConfig();\n if (config?.onClick) {\n config.onClick();\n }\n }\n\n hasNestedItems(item: NavItemProps): item is NavMenuProps {\n return !!item.items?.length;\n }\n\n handleItemClick(itemId: string): void {\n this.itemClicked.emit(itemId);\n }\n\n handleFooterItemClick(itemId: string): void {\n this.itemClicked.emit(itemId);\n }\n\n handleMenuOpenChange(event: NavMenuOpenChangeEvent): void {\n const targetMenu = this.items().find((item) => item.id === event.id);\n if (targetMenu) {\n (targetMenu as NavMenuProps).open = event.open;\n }\n }\n\n handleFooterMenuOpenChange(event: NavMenuOpenChangeEvent): void {\n const targetMenu = this.footerItems()?.find((item) => item.id === event.id);\n if (targetMenu) {\n (targetMenu as NavMenuProps).open = event.open;\n }\n }\n\n handleCollapseClick(): void {\n this.isCollapsed.set(!this.isCollapsed());\n }\n}\n","<rte-base-side-nav [size]=\"size()\" [collapsed]=\"isCollapsed()\" [appearance]=\"appearance()\">\n <div side-nav-header>\n <div class=\"side-nav-header-container\">\n <div class=\"side-nav-header {{ appearance() }}\" [ngClass]=\"{ collapsed: isCollapsed() }\">\n @if (headerConfig()?.link) {\n <a\n class=\"side-nav-header-title-container\"\n [href]=\"headerConfig()!.link!\"\n [attr.aria-label]=\"headerConfig()?.ariaLabel\"\n (click)=\"handleHeaderClick()\"\n >\n <div class=\"side-nav-header-title\">\n <div class=\"side-nav-header-identifier\">{{ headerConfig()?.identifier }}</div>\n @if (!isCollapsed()) {\n <h1 [ngClass]=\"{ hidden: !shouldShowTitle() }\">{{ headerConfig()?.title }}</h1>\n }\n </div>\n </a>\n } @else if (headerConfig()?.onClick) {\n <div\n class=\"side-nav-header-title-container\"\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"headerConfig()?.ariaLabel\"\n (click)=\"handleHeaderClick()\"\n (keydown)=\"handleHeaderKeyDown($event)\"\n >\n <div class=\"side-nav-header-title\">\n <div class=\"side-nav-header-identifier\">{{ headerConfig()?.identifier }}</div>\n @if (!isCollapsed()) {\n <h1 [ngClass]=\"{ hidden: !shouldShowTitle() }\">{{ headerConfig()?.title }}</h1>\n }\n </div>\n </div>\n } @else {\n <div class=\"side-nav-header-title-container\">\n <div class=\"side-nav-header-title\">\n <div class=\"side-nav-header-identifier\">{{ headerConfig()?.identifier }}</div>\n @if (!isCollapsed()) {\n <h1 [ngClass]=\"{ hidden: !shouldShowTitle() }\">{{ headerConfig()?.title }}</h1>\n }\n </div>\n </div>\n }\n <div class=\"side-nav-header-version\" [ngClass]=\"{ hidden: !shouldShowTitle() }\">\n <span>{{ headerConfig()?.version }}</span>\n </div>\n </div>\n <rte-divider [appearance]=\"dividerAppearance()\" />\n </div>\n </div>\n <div side-nav-body>\n <div class=\"side-nav-body\">\n <ul>\n @for (item of items(); track item.label) {\n @if (hasNestedItems(item)) {\n <rte-nav-menu\n [id]=\"item.id\"\n [label]=\"item.label\"\n [icon]=\"item.icon\"\n [showIcon]=\"item.showIcon ?? true\"\n [collapsed]=\"isCollapsed()\"\n [link]=\"item.link\"\n [open]=\"item.open\"\n [items]=\"item.items || []\"\n [appearance]=\"appearance()\"\n [badge]=\"item.badge\"\n [showDivider]=\"item.showDivider!\"\n (openChange)=\"handleMenuOpenChange($event)\"\n />\n } @else {\n <li>\n <rte-nav-item\n [id]=\"item.id\"\n [label]=\"item.label\"\n [icon]=\"item.icon\"\n [showIcon]=\"item.showIcon ?? true\"\n [collapsed]=\"isCollapsed()\"\n [link]=\"item.link\"\n [appearance]=\"appearance()\"\n [active]=\"item.active ?? false\"\n [badge]=\"item.badge\"\n (itemClick)=\"handleItemClick(item.id || item.label)\"\n ></rte-nav-item>\n </li>\n @if (item.showDivider) {\n <rte-divider [appearance]=\"dividerAppearance()\" />\n }\n }\n }\n </ul>\n </div>\n </div>\n @if (footerItems()?.length || collapsible()) {\n <div side-nav-footer>\n <div class=\"side-nav-footer-container\">\n @if (footerItems()?.length) {\n <div class=\"side-nav-footer-items\">\n <ul>\n @for (item of footerItems()!; track item.id || item.label) {\n @if (hasNestedItems(item)) {\n <rte-nav-menu\n [id]=\"item.id\"\n [label]=\"item.label\"\n [icon]=\"item.icon\"\n [showIcon]=\"item.showIcon ?? true\"\n [collapsed]=\"isCollapsed()\"\n [link]=\"item.link\"\n [open]=\"item.open\"\n [items]=\"item.items || []\"\n [appearance]=\"appearance()\"\n [badge]=\"item.badge\"\n [showDivider]=\"item.showDivider!\"\n (openChange)=\"handleFooterMenuOpenChange($event)\"\n />\n } @else {\n <li>\n <rte-nav-item\n [id]=\"item.id\"\n [label]=\"item.label\"\n [icon]=\"item.icon\"\n [showIcon]=\"item.showIcon ?? true\"\n [collapsed]=\"isCollapsed()\"\n [link]=\"item.link\"\n [appearance]=\"appearance()\"\n [active]=\"item.active ?? false\"\n [badge]=\"item.badge\"\n (itemClick)=\"handleFooterItemClick(item.id || item.label)\"\n ></rte-nav-item>\n </li>\n @if (item.showDivider) {\n <rte-divider [appearance]=\"dividerAppearance()\" />\n }\n }\n }\n </ul>\n </div>\n }\n <rte-divider [appearance]=\"dividerAppearance()\" />\n @if (collapsible()) {\n <div class=\"side-nav-footer\">\n <div class=\"collapsible-section\">\n <ul>\n <li>\n <rte-nav-item\n [label]=\"isCollapsed() ? 'Ouvrir le menu' : 'Réduire le menu'\"\n [icon]=\"collapseIcon()\"\n [collapsed]=\"isCollapsed()\"\n [appearance]=\"appearance()\"\n (itemClick)=\"handleCollapseClick()\"\n />\n </li>\n </ul>\n </div>\n </div>\n }\n </div>\n </div>\n }\n <div side-nav-content>\n <ng-content select=\"[content]\"></ng-content>\n </div>\n</rte-base-side-nav>\n","import { CommonModule } from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n Component,\n input,\n computed,\n signal,\n output,\n SimpleChanges,\n OnChanges,\n} from \"@angular/core\";\nimport { IconSize, IconTypeMap } from \"@design-system-rte/core/components/icon/icon.constants\";\nimport { ToastDurationMap } from \"@design-system-rte/core/components/toast/toast.constants\";\nimport { ToastProps, ToastType } from \"@design-system-rte/core/components/toast/toast.interface\";\n\nimport { ButtonComponent } from \"../button/button.component\";\nimport { IconComponent } from \"../icon/icon.component\";\nimport { IconButtonComponent } from \"../icon-button/icon-button.component\";\n\n@Component({\n selector: \"rte-toast\",\n imports: [CommonModule, IconComponent, IconButtonComponent, ButtonComponent],\n standalone: true,\n templateUrl: \"./toast.component.html\",\n styleUrl: \"./toast.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToastComponent implements OnChanges {\n readonly id = input<string>(\"\");\n readonly message = input<string>(\"\");\n readonly type = input<ToastType>(\"info\");\n readonly duration = input<ToastProps[\"duration\"]>(\"medium\");\n readonly isOpen = input<boolean>(false);\n readonly placement = input<ToastProps[\"placement\"]>(\"bottom-right\");\n readonly closable = input<ToastProps[\"closable\"]>(true);\n readonly autoDismiss = input<ToastProps[\"autoDismiss\"]>(true);\n readonly showActionButton = input<ToastProps[\"showActionButton\"]>(true);\n readonly iconName = input<ToastProps[\"iconName\"]>(\"\");\n readonly showLeftIcon = input<ToastProps[\"showLeftIcon\"]>(true);\n\n readonly actionButtonLabel = input<ToastProps[\"actionButtonLabel\"]>(\"\");\n readonly onActionButtonClick = input<ToastProps[\"onActionButtonClick\"]>(() => {});\n\n readonly close = output<void>();\n\n readonly displayCustomIcon = computed(() => {\n return this.showLeftIcon() && !!this.iconName();\n });\n\n readonly displayLeftIcon = computed(() => {\n return this.showLeftIcon() && IconTypeMap[this.type()];\n });\n\n readonly displayActionButton = computed(() => {\n return this.showActionButton() && this.actionButtonLabel() && !!this.onActionButtonClick();\n });\n\n readonly shouldAutoDismiss = computed(() => {\n return this.isOpen() && this.autoDismiss() && (!this.actionButtonLabel() || !this.showActionButton());\n });\n\n readonly timer = signal<ReturnType<typeof setTimeout> | null>(null);\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes[\"isOpen\"]) {\n if (this.shouldAutoDismiss()) {\n this.startTimer();\n }\n }\n }\n\n onClickActionButton(): void {\n const action = this.onActionButtonClick();\n if (action) {\n action();\n }\n }\n\n handleMouseEnter(): void {\n if (this.timer()) {\n this.stopTimer();\n }\n }\n\n handleMouseLeave(): void {\n if (this.shouldAutoDismiss()) {\n this.startTimer();\n }\n }\n\n clickCloseButton(): void {\n this.close.emit();\n }\n\n startTimer(): void {\n this.stopTimer();\n const duration = this.duration();\n if (duration) {\n const timerId = setTimeout(() => {\n this.close.emit();\n this.stopTimer();\n }, ToastDurationMap[duration]);\n this.timer.set(timerId);\n }\n }\n\n stopTimer(): void {\n const timer = this.timer();\n if (timer) {\n clearTimeout(timer);\n this.timer.set(null);\n }\n }\n\n readonly position = computed(() => this.placement()?.split(\"-\")[0]);\n readonly alignment = computed(() => this.placement()?.split(\"-\")[1]);\n\n readonly visible = signal(false);\n\n readonly defaultIconName = computed(() => IconTypeMap[this.type()]);\n readonly iconSize = IconSize[\"xl\"];\n}\n","<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","import { Injectable, ComponentRef, ViewContainerRef, inject, signal, effect } from \"@angular/core\";\nimport { ToastDuration, ToastPlacement, ToastType } from \"@design-system-rte/core/components/toast/toast.interface\";\nimport { getToastPriority } from \"@design-system-rte/core/components/toast/toast.utils\";\nimport { v4 as uuidv4 } from \"uuid\";\n\nimport { OverlayService } from \"../../services/overlay.service\";\n\nimport { ToastComponent } from \"./toast.component\";\n\nexport interface ToastConfig {\n message: string;\n type: ToastType;\n closable?: boolean;\n autoDismiss?: boolean;\n duration?: ToastDuration;\n placement?: ToastPlacement;\n showActionButton?: boolean;\n actionButtonLabel?: string;\n onActionButtonClick?: () => void;\n iconName?: string;\n showLeftIcon?: boolean;\n}\n\n@Injectable({ providedIn: \"root\" })\nexport class ToastService {\n private viewContainerRef = inject(ViewContainerRef);\n private overlayService: OverlayService;\n private currentOpenedToastRef: ComponentRef<ToastComponent> | null = null;\n\n readonly toastQueue = signal<ComponentRef<ToastComponent>[]>([]);\n\n constructor() {\n this.overlayService = inject(OverlayService);\n\n effect(() => {\n const toastToOpen = this.toastQueue()[0];\n if (!toastToOpen) {\n this.currentOpenedToastRef = null;\n return;\n }\n if (this.currentOpenedToastRef?.instance.id() === toastToOpen.instance.id()) {\n return;\n } else {\n if (this.currentOpenedToastRef) {\n this.currentOpenedToastRef.setInput(\"isOpen\", false);\n }\n }\n this.overlayService.addToOverlay(toastToOpen);\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n toastToOpen.setInput(\"isOpen\", true);\n this.currentOpenedToastRef = toastToOpen;\n });\n });\n });\n }\n\n getAllToasts(): ComponentRef<ToastComponent>[] {\n return this.toastQueue();\n }\n\n getCurrentOpenedToast(): ComponentRef<ToastComponent> | null {\n return this.currentOpenedToastRef;\n }\n\n isInQueue(toastId: string): boolean {\n return this.toastQueue().some((toast) => toast.instance.id() === toastId);\n }\n\n addToQueue(config: ToastConfig): string {\n const toast = this.build(config);\n toast.instance.close.subscribe(() => {\n this.removeFromQueue(toast.instance.id());\n });\n\n this.toastQueue.update((list) =>\n [...list, toast].sort((a, b) => {\n const priorityA = getToastPriority({\n hasActionButton: a.instance.showActionButton()!,\n type: a.instance.type(),\n });\n const priorityB = getToastPriority({\n hasActionButton: b.instance.showActionButton()!,\n type: b.instance.type(),\n });\n return priorityA - priorityB;\n }),\n );\n return toast.instance.id();\n }\n\n removeFromQueue(toastId: string): void {\n if (this.toastQueue().length === 0) return;\n if (this.toastQueue().length === 1 && this.toastQueue()[0].instance.id() === toastId) {\n const onlyToast = this.toastQueue()[0];\n this.toastQueue.set([]);\n onlyToast.setInput(\"isOpen\", false);\n this.waitExitAnimation(onlyToast, () => {\n onlyToast.destroy();\n });\n return;\n }\n const toastToHide = this.toastQueue().find((toast) => toast.instance.id() === toastId);\n if (!toastToHide) return;\n this.toastQueue.update((list) => list.filter((c) => c.instance.id() !== toastId));\n toastToHide.setInput(\"isOpen\", false);\n this.waitExitAnimation(toastToHide, () => {\n toastToHide.destroy();\n });\n }\n\n private build(config: ToastConfig): ComponentRef<ToastComponent> {\n const toast = this.overlayService.createWithoutAppend(ToastComponent, this.viewContainerRef);\n this.assignInputsValues(toast, config);\n return toast;\n }\n\n private assignInputsValues(toast: ComponentRef<ToastComponent>, config: ToastConfig): void {\n const {\n message,\n type = \"info\",\n closable = true,\n autoDismiss = false,\n duration = \"medium\",\n placement = \"bottom-right\",\n showActionButton = true,\n showLeftIcon = true,\n iconName,\n actionButtonLabel,\n onActionButtonClick,\n } = config;\n toast.setInput(\"message\", message);\n toast.setInput(\"id\", uuidv4());\n toast.setInput(\"type\", type);\n toast.setInput(\"closable\", closable);\n toast.setInput(\"autoDismiss\", autoDismiss);\n toast.setInput(\"duration\", duration);\n toast.setInput(\"placement\", placement);\n toast.setInput(\"iconName\", iconName);\n toast.setInput(\"showLeftIcon\", showLeftIcon);\n toast.setInput(\"showActionButton\", showActionButton);\n toast.setInput(\"actionButtonLabel\", actionButtonLabel);\n toast.setInput(\"onActionButtonClick\", onActionButtonClick);\n }\n\n private waitExitAnimation(ref: ComponentRef<ToastComponent>, done: () => void): void {\n setTimeout(done, 300);\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { ChangeDetectionStrategy, Component, input, computed } from \"@angular/core\";\nimport { TagProps } from \"@design-system-rte/core/components/tag/tag.interface\";\n\nimport { isValidIconName } from \"../icon/icon-map\";\nimport { IconComponent } from \"../icon/icon.component\";\nimport { RegularIconIdKey, TogglableIconIdKey } from \"../icon/icon.service\";\n\n@Component({\n selector: \"rte-tag\",\n imports: [CommonModule, IconComponent],\n standalone: true,\n templateUrl: \"./tag.component.html\",\n styleUrl: \"./tag.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TagComponent {\n readonly tagType = input<TagProps[\"tagType\"]>(\"status\");\n readonly status = input<TagProps[\"status\"]>(\"success\");\n readonly color = input<TagProps[\"color\"]>(\"brand\");\n readonly compactSpacing = input<boolean>(false);\n readonly label = input<string>(\"\");\n readonly showLeftIcon = input<boolean>(false);\n readonly iconName = input<RegularIconIdKey | TogglableIconIdKey>();\n\n readonly computedIconName = computed(() => {\n if (this.tagType() === \"status\") {\n const statusIconMap: Record<string, RegularIconIdKey | TogglableIconIdKey> = {\n success: \"check-circle\",\n information: \"info\",\n warning: \"warning\",\n alert: \"dangerous\",\n };\n const statusValue = this.status();\n if (statusValue && statusIconMap[statusValue]) {\n return statusIconMap[statusValue];\n }\n }\n return this.iconName() ?? \"check\";\n });\n\n readonly isValidIconName = computed(() => {\n const iconName = this.computedIconName();\n return !!iconName && isValidIconName(iconName);\n });\n}\n","<div\n class=\"rte-tag\"\n [attr.data-tag-type]=\"tagType()\"\n [attr.data-status]=\"status()\"\n [attr.data-color]=\"color()\"\n [attr.data-compact-spacing]=\"compactSpacing()\"\n>\n <ng-container *ngIf=\"isValidIconName() && (tagType() === 'status' || showLeftIcon())\">\n <rte-icon [name]=\"computedIconName()\" [size]=\"16\"></rte-icon>\n </ng-container>\n <ng-container *ngIf=\"label\">\n <label class=\"tag-label\" [attr.data-compact-spacing]=\"compactSpacing()\">{{ label() }}</label>\n </ng-container>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { Component, input, computed, ChangeDetectionStrategy } from \"@angular/core\";\nimport { ASSISTIVE_TEXT_ICON_SIZE } from \"@design-system-rte/core/components/assistive-text/assistive-text.constants\";\nimport { AssistiveTextProps } from \"@design-system-rte/core/components/assistive-text/assistive-text.interface\";\nimport { getIconNameFromAppearance } from \"@design-system-rte/core/components/assistive-text/assistive-text.utils\";\n\nimport { IconComponent } from \"../icon/icon.component\";\nimport { LinkComponent } from \"../link/link.component\";\n\n@Component({\n selector: \"rte-assistive-text\",\n imports: [CommonModule, IconComponent, LinkComponent],\n standalone: true,\n templateUrl: \"./assistive-text.component.html\",\n styleUrl: \"./assistive-text.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AssistiveTextComponent {\n readonly label = input<string>();\n readonly appearance = input<AssistiveTextProps[\"appearance\"]>(\"description\");\n readonly showIcon = input<boolean>(false);\n readonly href = input<string>();\n readonly width = input<number>();\n\n readonly isLink = computed(() => {\n return this.appearance() === \"link\" && this.href() !== undefined;\n });\n\n readonly widthStyle = computed(() => {\n return `${this.width()}px`;\n });\n\n readonly assistiveTextIconSize = ASSISTIVE_TEXT_ICON_SIZE;\n\n readonly iconName = computed(() => {\n return getIconNameFromAppearance(this.appearance()!);\n });\n}\n","<div class=\"rte-assistive-text {{ appearance() }}\" [ngStyle]=\"{ width: widthStyle() }\">\n <rte-icon\n *ngIf=\"showIcon() && iconName()\"\n class=\"assistive-icon-{{ appearance() }}\"\n [name]=\"iconName()!\"\n [size]=\"assistiveTextIconSize\"\n ></rte-icon>\n @if (isLink()) {\n <rte-link class=\"assistive-text-link\" [externalLink]=\"true\" [href]=\"href() || ''\" [label]=\"label() || ''\">\n </rte-link>\n } @else {\n <span>{{ label() }}</span>\n }\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport {\n Component,\n input,\n computed,\n output,\n signal,\n viewChild,\n ElementRef,\n ChangeDetectionStrategy,\n} from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { REQUIREMENT_INDICATOR_VALUE } from \"@design-system-rte/core/components/required-indicator/required-indicator.constant\";\nimport {\n SELECT_DROPDOWN_OFFSET,\n THRESHOLD_BOTTOM_POSITION,\n MIN_SELECT_WIDTH,\n} from \"@design-system-rte/core/components/select/select.constants\";\nimport { SelectProps } from \"@design-system-rte/core/components/select/select.interface\";\nimport { ENTER_KEY, SPACE_KEY } from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { AssistiveTextComponent } from \"../assistive-text/assistive-text.component\";\nimport { DropdownModule } from \"../dropdown\";\nimport { IconComponent } from \"../icon/icon.component\";\nimport { IconButtonComponent } from \"../icon-button/icon-button.component\";\n\n@Component({\n selector: \"rte-select\",\n imports: [CommonModule, IconComponent, DropdownModule, IconButtonComponent, AssistiveTextComponent],\n standalone: true,\n templateUrl: \"./select.component.html\",\n styleUrl: \"./select.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SelectComponent,\n multi: true,\n },\n ],\n})\nexport class SelectComponent {\n readonly id = input<string>();\n readonly name = input<string>();\n readonly ariaLabelledby = input<string>();\n readonly label = input<string>();\n readonly labelId = input<string>();\n readonly labelPosition = input<SelectProps[\"labelPosition\"]>(\"top\");\n readonly assistiveTextLabel = input<string>();\n readonly assistiveTextAppearance = input<SelectProps[\"assistiveAppearance\"]>(\"description\");\n readonly assistiveTextLink = input<string>();\n readonly required = input<boolean>(false);\n readonly showLabelRequirement = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n readonly readOnly = input<boolean>(false);\n readonly value = input<string>();\n readonly options = input<SelectProps[\"options\"]>([]);\n readonly isError = input<boolean>(false);\n readonly showAssistiveIcon = input<boolean>(false);\n readonly showResetButton = input<boolean>(false);\n readonly width = input<number>(MIN_SELECT_WIDTH);\n\n readonly selectRef = viewChild<ElementRef<HTMLElement>>(\"selectRef\");\n readonly buttonsContainerRef = viewChild<ElementRef<HTMLElement>>(\"buttonsContainerRef\");\n\n readonly selectDropdownOffset = SELECT_DROPDOWN_OFFSET;\n\n readonly computedWidth = computed(() => {\n return `${this.width()}px`;\n });\n\n readonly clearButton = computed(() => {\n return this.buttonsContainerRef()?.nativeElement.querySelector(\n \".rte-icon-button.clear-button\",\n ) as HTMLElement | null;\n });\n\n readonly dropdownPosition = computed<\"bottom\" | \"top\">(() => {\n const selectElement = this.selectRef()?.nativeElement;\n if (selectElement) {\n const rect = selectElement.getBoundingClientRect();\n const spaceBelow = window.innerHeight - rect.bottom;\n return spaceBelow >= THRESHOLD_BOTTOM_POSITION ? \"bottom\" : \"top\";\n }\n return \"bottom\";\n });\n\n readonly internalValue = signal(this.value());\n\n readonly requirementIndicatorValue = computed(() =>\n this.required()\n ? this.showLabelRequirement()\n ? REQUIREMENT_INDICATOR_VALUE.required\n : REQUIREMENT_INDICATOR_VALUE.requiredIcon\n : REQUIREMENT_INDICATOR_VALUE.optional,\n );\n\n readonly valueChange = output<Event>();\n\n readonly currentOptionLabel = computed(() => {\n return this.options().find((option) => option.value === this.internalValue())?.label;\n });\n\n readonly isAssistiveTextLinkVisible = computed(() => {\n return this.assistiveTextAppearance() === \"link\" && this.assistiveTextLink() !== undefined;\n });\n\n readonly formattedOptions = computed(() => {\n return this.options().map(({ value, label }) => ({\n id: value,\n label: label,\n selected: value === this.internalValue(),\n }));\n });\n\n readonly shouldDisplayClearButton = computed(\n () => this.showResetButton() && !!this.internalValue() && !this.disabled(),\n );\n\n readonly shouldDisplayErrorIcon = computed(() => this.isError() && !this.disabled() && !this.readOnly());\n\n readonly isActive = signal(false);\n\n readonly selectWidth = computed(() => {\n const nativeElement = this.selectRef()?.nativeElement;\n if (nativeElement) {\n return nativeElement.getBoundingClientRect().width;\n }\n return null;\n });\n\n handleOnClickTrigger() {\n if (this.readOnly() || this.disabled()) {\n return;\n }\n this.toggleDropdown();\n }\n\n handleOnKeyDownTrigger(event: KeyboardEvent) {\n if (this.readOnly() || this.disabled()) {\n return;\n }\n if (this.shouldDisplayClearButton()) {\n const clearButton = this.buttonsContainerRef()?.nativeElement.children[0].children[0];\n const isClearButtonFocused = document.activeElement === clearButton;\n if (isClearButtonFocused && (event.key === SPACE_KEY || event.key === ENTER_KEY)) {\n this.clearSelection(event);\n return;\n }\n }\n\n if (event.key === SPACE_KEY || event.key === ENTER_KEY) {\n this.toggleDropdown();\n }\n }\n\n handleOnClickClearButton(event: Event): void {\n if (this.readOnly() || this.disabled()) {\n return;\n }\n event.preventDefault();\n this.clearSelection(event);\n }\n\n handleOnClickItem(id: string) {\n if (this.readOnly() || this.disabled()) {\n return;\n }\n this.internalValue.set(id);\n const event = new CustomEvent<{ target: { value: string } }>(\"change\", {\n bubbles: true,\n detail: { target: { value: id } },\n });\n this.valueChange.emit(event);\n this.isActive.set(!this.isActive());\n this.selectRef()?.nativeElement.focus();\n }\n\n handleOnClosingDropdown() {\n this.isActive.set(false);\n }\n\n handleOnClickOutside() {\n this.isActive.set(false);\n }\n\n private toggleDropdown() {\n this.isActive.set(!this.isActive());\n if (this.isActive()) {\n this.selectRef()?.nativeElement.dispatchEvent(new Event(\"openDropdown\"));\n } else {\n this.selectRef()?.nativeElement.dispatchEvent(new Event(\"closeDropdown\"));\n }\n }\n\n private clearSelection(event: Event) {\n this.internalValue.set(undefined);\n this.isActive.set(false);\n this.valueChange.emit(event);\n this.selectRef()?.nativeElement.dispatchEvent(new Event(\"clearContent\"));\n }\n}\n","<div class=\"rte-select-container\" [attr.data-label-position]=\"labelPosition()\">\n <label\n *ngIf=\"label() && labelPosition() === 'side'\"\n class=\"rte-select-label\"\n [attr.data-label-position]=\"labelPosition()\"\n [attr.id]=\"labelId()\"\n [attr.for]=\"id()\"\n >{{ label()\n }}<span\n *ngIf=\"required() || showLabelRequirement()\"\n class=\"requirement-indicator\"\n aria-hidden=\"true\"\n [ngClass]=\"{\n required: required(),\n 'show-label-requirement': showLabelRequirement(),\n }\"\n >{{ requirementIndicatorValue() }}</span\n ></label\n >\n\n <div class=\"rte-select-header\" [attr.data-label-position]=\"labelPosition()\">\n <label *ngIf=\"label() && labelPosition() === 'top'\" class=\"rte-select-label\" [attr.id]=\"labelId()\" [attr.for]=\"id()\"\n >{{ label()\n }}<span\n *ngIf=\"required() || showLabelRequirement()\"\n class=\"requirement-indicator\"\n aria-hidden=\"true\"\n [ngClass]=\"{\n required: required(),\n 'show-label-requirement': showLabelRequirement(),\n }\"\n >{{ requirementIndicatorValue() }}</span\n ></label\n >\n </div>\n <div\n rteDropdown\n [rteDropdownId]=\"'dropdown_select_' + id()\"\n [rteDropdownPosition]=\"dropdownPosition()\"\n [rteDropdownOffset]=\"selectDropdownOffset\"\n [rteDropdownWidth]=\"selectWidth()\"\n (menuEvent)=\"handleOnClickItem($event.id)\"\n (clickedOutside)=\"handleOnClickOutside()\"\n (closedDropdown)=\"handleOnClosingDropdown()\"\n >\n <div\n #selectRef\n rteDropdownTrigger\n class=\"rte-select-wrapper\"\n [attr.tabIndex]=\"disabled() || readOnly() ? -1 : 0\"\n [attr.role]=\"'combobox'\"\n [attr.data-error]=\"isError()\"\n [attr.data-disabled]=\"disabled()\"\n [attr.data-read-only]=\"readOnly()\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-readonly]=\"readOnly()\"\n [attr.aria-labelledby]=\"labelId()\"\n [attr.aria-expanded]=\"isActive()\"\n [attr.data-active]=\"isActive()\"\n [ngStyle]=\"{ width: computedWidth() }\"\n (dropdownTriggered)=\"handleOnClickTrigger()\"\n (dropdownKeyDown)=\"handleOnKeyDownTrigger($event)\"\n >\n <div class=\"rte-select-content\">\n <rte-icon *ngIf=\"shouldDisplayErrorIcon()\" name=\"error\" class=\"error-icon\" />\n <div class=\"rte-select-value\">\n <span>{{ currentOptionLabel() }}</span>\n </div>\n <div #buttonsContainerRef class=\"rte-select-right-icons\">\n <rte-icon-button\n *ngIf=\"shouldDisplayClearButton()\"\n name=\"cancel\"\n variant=\"neutral\"\n class=\"rte-select-icon-button clear-icon\"\n [disabled]=\"disabled()\"\n (clickEvent)=\"handleOnClickClearButton($event)\"\n />\n <rte-icon\n class=\"trigger-icon trigger-icon-{{ isActive() ? 'up' : 'down' }}\"\n variant=\"neutral\"\n [name]=\"isActive() ? 'arrow-chevron-up' : 'arrow-chevron-down'\"\n />\n </div>\n </div>\n </div>\n <rte-dropdown-menu [items]=\"formattedOptions()\" />\n <rte-assistive-text\n *ngIf=\"assistiveTextLabel()\"\n [label]=\"assistiveTextLabel()\"\n [appearance]=\"isError() ? 'error' : assistiveTextAppearance()!\"\n [showIcon]=\"showAssistiveIcon()\"\n [href]=\"assistiveTextLink()\"\n [width]=\"width()\"\n />\n </div>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n Component,\n input,\n signal,\n ElementRef,\n AfterViewInit,\n viewChild,\n output,\n OnDestroy,\n computed,\n} from \"@angular/core\";\nimport { TabItemProps } from \"@design-system-rte/core/components/tab/tab.interface\";\n\nimport { BadgeComponent } from \"../../badge/badge.component\";\nimport { IconComponent } from \"../../icon/icon.component\";\n\n@Component({\n selector: \"rte-tab-item\",\n imports: [CommonModule, IconComponent, BadgeComponent],\n standalone: true,\n templateUrl: \"./tab-item.component.html\",\n styleUrl: \"./tab-item.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabItemComponent implements AfterViewInit, OnDestroy {\n readonly direction = input<\"horizontal\" | \"vertical\">(\"horizontal\");\n readonly option = input<TabItemProps>();\n readonly compactSpacing = input<boolean>();\n readonly isSelected = input<boolean>(false);\n readonly click = output<string>();\n readonly handleKeydown = input<() => void>();\n readonly inverted = input<boolean>(false);\n readonly isHidden = input<boolean>(false);\n\n readonly tabItemRef = viewChild<ElementRef<HTMLButtonElement>>(\"tabItem\");\n\n readonly hoverIndicatorStyle = signal<{\n width?: number;\n left?: number;\n top?: number;\n height?: number;\n opacity?: number;\n } | null>(null);\n\n readonly displayBadge = (option: TabItemProps): boolean => {\n return !!(option.badgeContent || option.badgeType || option.badgeIcon || option.badgeCount);\n };\n\n readonly hoverIndicatorWidth = computed(() => {\n return `${this.hoverIndicatorStyle()?.width}px`;\n });\n readonly hoverIndicatorHeight = computed(() => {\n return `${this.hoverIndicatorStyle()?.height}px`;\n });\n readonly hoverIndicatorLeft = computed(() => {\n return `${this.hoverIndicatorStyle()?.left}px`;\n });\n readonly hoverIndicatorTop = computed(() => {\n return `${this.hoverIndicatorStyle()?.top}px`;\n });\n readonly hoverIndicatorOpacity = computed(() => {\n return this.hoverIndicatorStyle()?.opacity ?? 0;\n });\n\n ngAfterViewInit() {\n this.computeHoverIndicatorStyle();\n if (this.tabItemRef && this.tabItemRef()?.nativeElement) {\n if (this.option()?.disabled) return;\n window.addEventListener(\"resize\", this.computeHoverIndicatorStyle);\n const parent = this.tabItemRef()?.nativeElement.parentElement?.parentElement;\n if (parent) {\n parent.addEventListener(\"scroll\", this.computeHoverIndicatorStyle);\n }\n }\n }\n\n ngOnDestroy() {\n const parent = this.tabItemRef()?.nativeElement.parentElement?.parentElement;\n window.removeEventListener(\"resize\", this.computeHoverIndicatorStyle);\n if (parent) {\n parent.removeEventListener(\"scroll\", this.computeHoverIndicatorStyle);\n }\n }\n\n onClickTabItem(event: MouseEvent, id: string): void {\n this.hoverIndicatorStyle.set({\n ...this.hoverIndicatorStyle(),\n opacity: 0,\n });\n if (!this.option()?.disabled) {\n this.click.emit(id);\n } else {\n event.stopPropagation();\n }\n }\n\n handleMouseHover() {\n if (!this.isSelected()) {\n this.hoverIndicatorStyle.set({\n ...this.hoverIndicatorStyle(),\n opacity: 1,\n });\n }\n }\n\n handleMouseOut() {\n this.hoverIndicatorStyle.set({\n ...this.hoverIndicatorStyle(),\n opacity: 0,\n });\n }\n\n private computeHoverIndicatorStyle = () => {\n if (this.direction() === \"horizontal\") {\n this.hoverIndicatorStyle.set({\n width: this.tabItemRef()?.nativeElement.offsetWidth,\n height: 2,\n left: this.tabItemRef()?.nativeElement.offsetLeft,\n top: this.tabItemRef()\n ? this.tabItemRef()!.nativeElement.offsetTop + this.tabItemRef()!.nativeElement.offsetHeight\n : 0,\n opacity: 0,\n });\n } else {\n this.hoverIndicatorStyle.set({\n width: 2,\n height: this.tabItemRef()?.nativeElement.offsetHeight,\n left: this.tabItemRef()?.nativeElement.offsetLeft && this.tabItemRef()!.nativeElement.offsetLeft - 4,\n top: this.tabItemRef()!.nativeElement.offsetTop,\n opacity: 0,\n });\n }\n };\n}\n","<button\n #tabItem\n class=\"rte-tabitem\"\n role=\"tab\"\n [id]=\"option()?.id\"\n [attr.aria-selected]=\"isSelected()\"\n [attr.aria-controls]=\"option()?.panelId\"\n [tabIndex]=\"isSelected() ? 0 : -1\"\n [attr.data-selected]=\"isSelected()\"\n [attr.data-inverted]=\"inverted()\"\n [attr.data-compact-spacing]=\"compactSpacing()\"\n [attr.data-disabled]=\"option()?.disabled\"\n [attr.data-hidden]=\"isHidden()\"\n (click)=\"onClickTabItem($event, option()?.id || '')\"\n (mouseover)=\"handleMouseHover()\"\n (mouseout)=\"handleMouseOut()\"\n (keydown)=\"handleKeydown()\"\n>\n <rte-icon *ngIf=\"option()?.icon\" [name]=\"option()?.icon || ''\" [appearance]=\"isSelected() ? 'filled' : 'outlined'\" />\n <span *ngIf=\"option()?.label\">{{ option()?.label }}</span>\n <rte-badge\n *ngIf=\"displayBadge(option()!)\"\n [simpleBadge]=\"true\"\n [badgeContent]=\"option()?.badgeContent || 'empty'\"\n [badgeType]=\"option()?.badgeType || 'neutral'\"\n [icon]=\"option()?.badgeIcon || ''\"\n [count]=\"option()?.badgeCount\"\n />\n</button>\n<span\n #hoverIndicator\n class=\"rte-tab-hover-indicator\"\n [attr.data-disabled]=\"option()?.disabled\"\n [id]=\"'tab-hover-indicator' + option()?.id\"\n [ngStyle]=\"{\n width: hoverIndicatorWidth(),\n height: hoverIndicatorHeight(),\n left: hoverIndicatorLeft(),\n top: hoverIndicatorTop(),\n opacity: hoverIndicatorOpacity(),\n }\"\n></span>\n","import { CommonModule } from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n Component,\n input,\n computed,\n signal,\n viewChildren,\n ElementRef,\n SimpleChanges,\n output,\n AfterViewInit,\n OnChanges,\n viewChild,\n OnDestroy,\n} from \"@angular/core\";\nimport { Direction } from \"@design-system-rte/core/components/common/common-types\";\nimport { TabAlignment, TabItemProps, TabProps } from \"@design-system-rte/core/components/tab/tab.interface\";\nimport { scrollToSelectedTab } from \"@design-system-rte/core/components/tab/tab.utils\";\nimport {\n ARROW_DOWN_KEY,\n ARROW_LEFT_KEY,\n ARROW_RIGHT_KEY,\n ARROW_UP_KEY,\n} from \"@design-system-rte/core/constants/keyboard/keyboard.constants\";\n\nimport { BadgeComponent } from \"../badge/badge.component\";\nimport { DropdownModule } from \"../dropdown\";\nimport { DropdownItemConfig } from \"../dropdown/dropdown-item/dropdown-item.component\";\nimport { IconComponent } from \"../icon/icon.component\";\nimport { IconButtonComponent } from \"../icon-button/icon-button.component\";\n\nimport { TabItemComponent } from \"./tab-item/tab-item.component\";\n\n@Component({\n selector: \"rte-tab\",\n imports: [CommonModule, TabItemComponent, IconButtonComponent, DropdownModule, IconComponent, BadgeComponent],\n standalone: true,\n templateUrl: \"./tab.component.html\",\n styleUrl: \"./tab.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TabComponent implements AfterViewInit, OnChanges, OnDestroy {\n readonly alignment = input<TabAlignment>(\"start\");\n readonly direction = input<Direction>(\"horizontal\");\n readonly options = input<TabProps[\"options\"]>([]);\n readonly selectedTabId = input<TabProps[\"selectedTabId\"]>();\n readonly compactSpacing = input<TabProps[\"compactSpacing\"]>(false);\n readonly overflowType = input<TabProps[\"overflowType\"]>(\"scrollable\");\n readonly inverted = input<boolean>(false);\n\n readonly sliderLeft = signal(0);\n readonly sliderWidth = signal(0);\n readonly sliderTop = signal(0);\n readonly sliderHeight = signal(0);\n\n readonly tabItemRefs = viewChildren<TabItemComponent>(\"tabItem\");\n readonly containerRef = viewChild<ElementRef<HTMLDivElement>>(\"tabList\");\n readonly hoverIndicatorRefs = viewChildren<ElementRef<HTMLDivElement>>(\"hoverIndicator\");\n\n readonly selectedTabRef = computed(() => {\n const idx = this.options().findIndex((opt) => opt.id === this.selectedTabId());\n const tabItem = this.tabItemRefs()[idx];\n return tabItem;\n });\n\n readonly hoverIndicatorStyle = signal<{\n width?: number;\n left?: number;\n top?: number;\n height?: number;\n opacity?: number;\n } | null>(null);\n\n readonly change = output<string>();\n\n readonly isScrollable = signal(false);\n private readonly isOverflowingLeft = signal(false);\n private readonly isOverflowingRight = signal(false);\n private readonly isOverflowingTop = signal(false);\n private readonly isOverflowingBottom = signal(false);\n\n readonly canScrollBackward = computed(() => {\n return this.isOverflowingLeft() || this.isOverflowingTop();\n });\n\n readonly canScrollForward = computed(() => {\n return this.isOverflowingRight() || this.isOverflowingBottom();\n });\n\n readonly isHorizontal = computed(\n () => this.direction() === \"horizontal\" && (this.isOverflowingRight() || this.isOverflowingLeft()),\n );\n\n readonly shouldDisplayDropdown = computed(() => this.overflowType() === \"dropdown\" && this.isHorizontal());\n\n readonly selectedTab = computed(() => {\n return this.options().find((option) => option.id === this.selectedTabId());\n });\n readonly dropdownFilteredOptions = computed(() => {\n return this.options().filter((option) => option.id !== this.selectedTabId()) as DropdownItemConfig[];\n });\n\n displayBadge = (option: TabItemProps): boolean => {\n return (\n !!option.showBadge ||\n (option.badgeCount !== undefined && option.badgeCount > 0 && option.badgeContent === \"number\") ||\n (option.badgeContent === \"icon\" && !!option.badgeIcon)\n );\n };\n\n isSelected(id: string): boolean {\n return this.selectedTabId() === id;\n }\n\n readonly tabItemSelectedIndicatorStyle = computed(() => ({\n left: `${this.shouldDisplayDropdown() ? 0 : this.sliderLeft()}px`,\n top: `${this.sliderTop()}px`,\n width: `${this.sliderWidth() + (this.shouldDisplayDropdown() ? 32 : 0)}px`,\n height: `${this.sliderHeight()}px`,\n }));\n\n ngAfterViewInit() {\n this.updateSelectedTabItemIndicator();\n this.computeScrollableSignals();\n window.addEventListener(\"resize\", this.updateSelectedTabItemIndicator.bind(this));\n window.addEventListener(\"resize\", this.computeScrollableSignals.bind(this));\n if (this.containerRef()) {\n this.containerRef()?.nativeElement.addEventListener(\"scroll\", this.computeScrollableSignals.bind(this));\n }\n this.hoverIndicatorRefs().forEach((hoverIndicator) => {\n hoverIndicator.nativeElement.style.opacity = \"0\";\n });\n }\n\n ngOnDestroy() {\n window.removeEventListener(\"resize\", this.updateSelectedTabItemIndicator.bind(this));\n window.removeEventListener(\"resize\", this.computeScrollableSignals.bind(this));\n if (this.containerRef()) {\n this.containerRef()?.nativeElement.removeEventListener(\"scroll\", this.computeScrollableSignals.bind(this));\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes[\"selectedTabId\"]) {\n this.updateSelectedTabItemIndicator();\n }\n }\n\n onKeydownTabItem = (event: KeyboardEvent) => {\n const isVertical = this.direction() === \"vertical\";\n\n const isDownKeyPressed = isVertical && event.key === ARROW_DOWN_KEY;\n const isUpKeyPressed = isVertical && event.key === ARROW_UP_KEY;\n const isRightKeyPressed = !isVertical && event.key === ARROW_RIGHT_KEY;\n const isLeftKeyPressed = !isVertical && event.key === ARROW_LEFT_KEY;\n\n const isArrowNext = isDownKeyPressed || isRightKeyPressed;\n const isArrowPrev = isUpKeyPressed || isLeftKeyPressed;\n\n if (isArrowNext || isArrowPrev) {\n event.preventDefault();\n this.focusItem(isArrowNext ? \"next\" : \"previous\");\n }\n };\n\n onClickTabItem = (id: string) => {\n if (id !== this.selectedTabId()) {\n this.change.emit(id);\n if (!this.shouldDisplayDropdown()) {\n const newTab = this.getTabItem(id)?.tabItemRef()?.nativeElement;\n if (newTab) {\n const container = this.containerRef()?.nativeElement;\n if (container) {\n scrollToSelectedTab(newTab, container, this.direction());\n }\n }\n }\n }\n };\n\n scrollBackward() {\n if (this.containerRef()?.nativeElement) {\n const scrollObject = this.direction() === \"horizontal\" ? { left: -300 } : { top: -300 };\n this.containerRef()?.nativeElement.scrollBy({ ...scrollObject, behavior: \"smooth\" });\n }\n }\n\n scrollForward() {\n if (this.containerRef() && this.containerRef()?.nativeElement) {\n const scrollObject = this.direction() === \"horizontal\" ? { left: 300 } : { top: 300 };\n this.containerRef()?.nativeElement.scrollBy({ ...scrollObject, behavior: \"smooth\" });\n }\n }\n\n private getTabItem = (id: string) => {\n return this.tabItemRefs().find((tab) => tab.option()?.id === id);\n };\n\n private focusItem = (direction: \"next\" | \"previous\") => {\n const currentIndex = this.tabItemRefs().findIndex((tab) => tab === this.selectedTabRef());\n const maxIterations = this.tabItemRefs().length;\n let newIndex = this.computeNextItemIndex(currentIndex, maxIterations, direction);\n let counter = 0;\n while (\n this.tabItemRefs()[newIndex].tabItemRef()?.nativeElement.getAttribute(\"data-disabled\") === \"true\" &&\n counter < maxIterations\n ) {\n newIndex = this.computeNextItemIndex(newIndex, maxIterations, direction);\n counter++;\n }\n this.tabItemRefs()[newIndex].tabItemRef()?.nativeElement.focus();\n this.tabItemRefs()[newIndex].tabItemRef()?.nativeElement.click();\n };\n\n private computeNextItemIndex(currentIndex: number, totalItems: number, direction: \"next\" | \"previous\") {\n return direction === \"next\" ? (currentIndex + 1) % totalItems : (currentIndex - 1 + totalItems) % totalItems;\n }\n\n private computeIndicatorStyle(tabItem: HTMLElement) {\n if (this.direction() === \"horizontal\") {\n return {\n width: tabItem.offsetWidth,\n left: tabItem.offsetLeft,\n top: tabItem.offsetTop + tabItem.offsetHeight,\n };\n } else {\n return {\n left: 0,\n top: tabItem.offsetTop,\n height: tabItem.offsetHeight,\n width: 2,\n };\n }\n }\n\n private updateSelectedTabItemIndicator() {\n const idx = this.options().findIndex((opt) => opt.id === this.selectedTabId());\n const tabItem = this.tabItemRefs()[idx];\n if (tabItem?.tabItemRef) {\n if (tabItem.option()?.disabled) {\n return;\n }\n const tabItemRef = tabItem.tabItemRef?.();\n if (tabItemRef && tabItemRef.nativeElement) {\n const tabItemElement = tabItemRef.nativeElement;\n const indicatorStyle = this.computeIndicatorStyle(tabItemElement);\n this.sliderHeight.set(indicatorStyle.height ?? 2);\n this.sliderTop.set(indicatorStyle.top);\n this.sliderWidth.set(indicatorStyle.width ?? 2);\n this.sliderLeft.set(indicatorStyle.left);\n }\n }\n }\n\n private computeScrollableSignals = () => {\n this.computeIsScrollable();\n this.computeIsOverflowingLeft();\n this.computeIsOverflowingRight();\n this.computeIsOverflowingTop();\n this.computeIsOverflowingBottom();\n };\n\n private computeIsScrollable() {\n if (this.containerRef()?.nativeElement) {\n const containerNativeElement = this.containerRef()?.nativeElement;\n if (containerNativeElement) {\n this.isScrollable.set(\n containerNativeElement.offsetWidth < containerNativeElement.scrollWidth ||\n containerNativeElement.offsetHeight < containerNativeElement.scrollHeight,\n );\n }\n }\n return false;\n }\n\n private computeIsOverflowingLeft() {\n const containerNativeElement = this.containerRef()?.nativeElement;\n if (containerNativeElement) {\n const isOverFlowingLeft = containerNativeElement.scrollLeft > 0;\n this.isOverflowingLeft.set(this.isScrollable() && isOverFlowingLeft);\n }\n }\n\n private computeIsOverflowingRight() {\n const containerNativeElement = this.containerRef()?.nativeElement;\n if (containerNativeElement) {\n const isOverflowingRight =\n containerNativeElement.scrollWidth - containerNativeElement.clientWidth - containerNativeElement.scrollLeft > 0;\n this.isOverflowingRight.set(this.isScrollable() && isOverflowingRight);\n }\n }\n\n private computeIsOverflowingTop() {\n const containerNativeElement = this.containerRef()?.nativeElement;\n if (containerNativeElement) {\n const isOverFlowingTop = containerNativeElement.scrollTop > 0;\n this.isOverflowingTop.set(this.isScrollable() && isOverFlowingTop);\n }\n }\n private computeIsOverflowingBottom() {\n const containerNativeElement = this.containerRef()?.nativeElement;\n if (containerNativeElement) {\n const isOverflowingBottom =\n containerNativeElement.scrollHeight - containerNativeElement.clientHeight - containerNativeElement.scrollTop >\n 0;\n this.isOverflowingBottom.set(this.isScrollable() && isOverflowingBottom);\n }\n }\n}\n","<div class=\"rte-tab-container\" [attr.data-direction]=\"direction()\">\n <div class=\"rte-tab-border-vertical\" aria-hidden=\"true\" role=\"presentation\" [attr.data-direction]=\"direction()\"></div>\n <div\n [ngStyle]=\"{\n position: 'relative',\n display: 'flex',\n 'align-items': 'center',\n 'flex-direction': direction() === 'horizontal' ? 'row' : 'column',\n }\"\n >\n <rte-icon-button\n *ngIf=\"isScrollable() && !shouldDisplayDropdown()\"\n aria-label=\"Previous tabs\"\n variant=\"transparent\"\n [name]=\"direction() === 'horizontal' ? 'arrow-chevron-left' : 'arrow-chevron-up'\"\n [ngStyle]=\"{\n opacity: canScrollBackward() ? '1' : '0',\n 'pointer-events': canScrollBackward() ? 'auto' : 'none',\n }\"\n (clickEvent)=\"scrollBackward()\"\n />\n <div\n #tabList\n role=\"tablist\"\n aria-label=\"Sample Tabs\"\n class=\"rte-tab\"\n [attr.data-alignment]=\"shouldDisplayDropdown() ? 'start' : alignment()\"\n [attr.data-direction]=\"direction()\"\n [attr.data-overflow-type]=\"overflowType()\"\n >\n <span class=\"rte-tab-selected-indicator\" [ngStyle]=\"tabItemSelectedIndicatorStyle()\"></span>\n <div\n *ngIf=\"shouldDisplayDropdown() && options().length\"\n rteDropdown\n [rteDropdownOffset]=\"10\"\n (menuEvent)=\"onClickTabItem($event.id)\"\n >\n <button\n rteDropdownTrigger\n class=\"rte-tab-dropdown-button\"\n [attr.data-inverted]=\"inverted()\"\n [attr.data-overflow-type]=\"overflowType()\"\n >\n <rte-icon *ngIf=\"selectedTab()?.icon\" appearance=\"filled\" [name]=\"selectedTab()?.icon!\"></rte-icon>\n <span *ngIf=\"selectedTab()?.label\">{{ selectedTab()?.label }}</span>\n <rte-badge\n *ngIf=\"selectedTab()?.badgeCount && selectedTab()?.badgeContent === 'number'\"\n [badgeType]=\"selectedTab()?.badgeType!\"\n [badgeContent]=\"selectedTab()?.badgeContent!\"\n [count]=\"selectedTab()?.badgeCount\"\n [simpleBadge]=\"true\"\n ></rte-badge>\n <rte-icon name=\"arrow-chevron-down\" appearance=\"outlined\"></rte-icon>\n </button>\n <rte-dropdown-menu [items]=\"dropdownFilteredOptions()\" />\n </div>\n <ng-container *ngFor=\"let option of options(); let idx = index\">\n <rte-tab-item\n #tabItem\n [option]=\"option\"\n [direction]=\"direction()\"\n [compactSpacing]=\"compactSpacing()\"\n [isSelected]=\"isSelected(option.id)\"\n [inverted]=\"inverted()\"\n [attr.data-hidden]=\"shouldDisplayDropdown()\"\n [isHidden]=\"shouldDisplayDropdown()\"\n (keydown)=\"onKeydownTabItem($event)\"\n (click)=\"onClickTabItem(option.id)\"\n ></rte-tab-item>\n </ng-container>\n </div>\n <rte-icon-button\n *ngIf=\"isScrollable() && !shouldDisplayDropdown()\"\n aria-label=\"Next tabs\"\n variant=\"transparent\"\n [name]=\"direction() === 'horizontal' ? 'arrow-chevron-right' : 'arrow-chevron-down'\"\n [ngStyle]=\"{\n opacity: canScrollForward() ? '1' : '0',\n 'pointer-events': canScrollForward() ? 'auto' : 'none',\n }\"\n (clickEvent)=\"scrollForward()\"\n />\n </div>\n <div\n class=\"rte-tab-border-horizontal\"\n aria-hidden=\"true\"\n role=\"presentation\"\n [attr.data-direction]=\"direction()\"\n [attr.data-compact-spacing]=\"compactSpacing()\"\n [attr.data-scrollable]=\"isScrollable() && overflowType() === 'scrollable'\"\n ></div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["isValidIconNameShared","i2.DropdownDirective","i3.DropdownTriggerDirective","i4.DropdownMenuComponent","CoreShouldDisplayBadge","coreShouldDisplayBadge","getNavTabIndex","uuidv4"],"mappings":"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"}
|