@design-system-rte/angular 1.3.0 → 1.4.1-rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/badge/badge.component.mjs +7 -3
- package/esm2022/lib/components/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +1 -1
- package/esm2022/lib/components/breadcrumbs/breadcrumbs.component.mjs +2 -2
- package/esm2022/lib/components/chip/chip.component.mjs +4 -3
- package/esm2022/lib/components/dropdown/dropdown-item/dropdown-item.component.mjs +158 -14
- package/esm2022/lib/components/dropdown/dropdown-menu/dropdown-menu.component.mjs +71 -6
- package/esm2022/lib/components/dropdown/dropdown.directive.mjs +54 -40
- package/esm2022/lib/components/dropdown/dropdown.types.mjs +2 -0
- package/esm2022/lib/components/dropdown/index.mjs +1 -3
- package/esm2022/lib/components/icon/icon-map.mjs +117 -112
- package/esm2022/lib/components/segmented-control/segmented-control.component.mjs +5 -3
- package/esm2022/lib/components/select/select-footer.directive.mjs +17 -0
- package/esm2022/lib/components/select/select-header.directive.mjs +17 -0
- package/esm2022/lib/components/select/select.component.mjs +177 -39
- package/esm2022/lib/components/side-nav/nav-item/nav-item.component.mjs +2 -2
- package/esm2022/lib/components/side-nav/nav-menu/nav-menu.component.mjs +2 -2
- package/esm2022/lib/components/split-button/split-button.component.mjs +2 -2
- package/esm2022/lib/components/stepper/stepper.component.mjs +3 -3
- package/esm2022/lib/components/tab/tab-item/tab-item.component.mjs +3 -3
- package/esm2022/lib/components/tab/tab.component.mjs +2 -2
- package/esm2022/lib/components/tag/tag.component.mjs +4 -3
- package/esm2022/public-api.mjs +9 -1
- package/fesm2022/design-system-rte-angular.mjs +654 -265
- package/fesm2022/design-system-rte-angular.mjs.map +1 -1
- package/lib/components/badge/badge.component.d.ts +3 -1
- package/lib/components/badge/badge.directive.d.ts +1 -1
- package/lib/components/chip/chip.component.d.ts +2 -1
- package/lib/components/dropdown/dropdown-item/dropdown-item.component.d.ts +28 -16
- package/lib/components/dropdown/dropdown-menu/dropdown-menu.component.d.ts +14 -3
- package/lib/components/dropdown/dropdown.directive.d.ts +18 -5
- package/lib/components/dropdown/dropdown.types.d.ts +30 -0
- package/lib/components/dropdown/index.d.ts +1 -0
- package/lib/components/icon/icon-map.d.ts +5 -0
- package/lib/components/icon-button/icon-button.component.d.ts +3 -3
- package/lib/components/icon-button-toggle/icon-button-toggle.component.d.ts +2 -2
- package/lib/components/popover/popover.component.d.ts +1 -1
- package/lib/components/segmented-control/segmented-control.component.d.ts +3 -1
- package/lib/components/select/select-footer.directive.d.ts +7 -0
- package/lib/components/select/select-header.directive.d.ts +7 -0
- package/lib/components/select/select.component.d.ts +35 -16
- package/lib/components/split-button/split-button.component.d.ts +2 -2
- package/lib/components/tab/tab.component.d.ts +1 -1
- package/lib/components/tag/tag.component.d.ts +4 -3
- package/lib/components/text-input/base-text-input/base-text-input.component.d.ts +2 -2
- package/lib/components/tooltip/tooltip.component.d.ts +1 -1
- package/package.json +2 -2
- package/public-api.d.ts +8 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, computed, Component, ChangeDetectionStrategy, HostBinding, Directive, inject, Injectable, DestroyRef, ChangeDetectorRef, effect, ElementRef, ViewContainerRef, Renderer2, HostListener, output, TemplateRef, contentChild, viewChild,
|
|
2
|
+
import { input, computed, Component, ChangeDetectionStrategy, HostBinding, Directive, inject, Injectable, DestroyRef, ChangeDetectorRef, effect, ElementRef, ViewContainerRef, Renderer2, HostListener, output, signal, TemplateRef, contentChild, viewChild, viewChildren, NgModule, RendererFactory2 } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
@@ -14,12 +14,13 @@ import { FOCUSABLE_ELEMENTS_QUERY, FOCUSABLE_BUTTONS_QUERY } from '@design-syste
|
|
|
14
14
|
import { getShowIcon, getShowText, getDisplayCount, getBadgeIconSize, getShowBadge, shouldDisplayBadge } from '@design-system-rte/core/components/badge/badge.utils';
|
|
15
15
|
import { splitButtonLeftIconSize, splitButtonRightIconSize } from '@design-system-rte/core/components/split-button/split-button.constants';
|
|
16
16
|
import { SPACE_KEY, ENTER_KEY, ARROW_DOWN_KEY, ARROW_UP_KEY, ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ESCAPE_KEY, TAB_KEY, BACKSPACE_KEY, DELETE_KEY } from '@design-system-rte/core/constants/keyboard/keyboard.constants';
|
|
17
|
+
import { DropdownManager } from '@design-system-rte/core/components/dropdown/DropdownManager';
|
|
18
|
+
import { getAutoPlacementDropdown, getAutoAlignment, getCoordinates as getCoordinates$1, getAutoPlacement as getAutoPlacement$1 } from '@design-system-rte/core/components/utils/auto-placement';
|
|
19
|
+
import { logWarn, logError } from '@design-system-rte/core/utils/log-handlers';
|
|
17
20
|
import { BehaviorSubject } from 'rxjs';
|
|
18
21
|
import { map } from 'rxjs/operators';
|
|
19
22
|
import { waitForNextFrame } from '@design-system-rte/core/common/animation';
|
|
20
23
|
import { DROPDOWN_ANIMATION_DURATION } from '@design-system-rte/core/components/dropdown/dropdown.constants';
|
|
21
|
-
import { getAutoPlacementDropdown, getAutoAlignment, getCoordinates as getCoordinates$1, getAutoPlacement as getAutoPlacement$1 } from '@design-system-rte/core/components/utils/auto-placement';
|
|
22
|
-
import { DropdownManager } from '@design-system-rte/core/components/dropdown/DropdownManager';
|
|
23
24
|
import { ButtonIconSize } from '@design-system-rte/core/components/button/common/common-button.constants';
|
|
24
25
|
import { loaderSize } from '@design-system-rte/core/components/loader/loader.constants';
|
|
25
26
|
import { CHIP_TYPE_TO_ARIA_ROLE_MAP } from '@design-system-rte/core/components/chip/chip.constants';
|
|
@@ -40,7 +41,8 @@ import { isStepClickable, focusPreviousNotStepElement, focusNextNotStepElement,
|
|
|
40
41
|
import { ToastDurationMap } from '@design-system-rte/core/components/toast/toast.constants';
|
|
41
42
|
import { getToastPriority } from '@design-system-rte/core/components/toast/toast.utils';
|
|
42
43
|
import { v4 } from 'uuid';
|
|
43
|
-
import {
|
|
44
|
+
import { SELECT_DROPDOWN_OFFSET, THRESHOLD_BOTTOM_POSITION } from '@design-system-rte/core/components/select/select.constants';
|
|
45
|
+
import { getSelectedOption } from '@design-system-rte/core/components/select/select.utils';
|
|
44
46
|
import { ASSISTIVE_TEXT_ICON_SIZE } from '@design-system-rte/core/components/assistive-text/assistive-text.constants';
|
|
45
47
|
import { getIconNameFromAppearance } from '@design-system-rte/core/components/assistive-text/assistive-text.utils';
|
|
46
48
|
import { scrollToSelectedTab } from '@design-system-rte/core/components/tab/tab.utils';
|
|
@@ -140,9 +142,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
140
142
|
|
|
141
143
|
// This file is auto-generated. Do not edit manually.
|
|
142
144
|
const RegularIcons = {
|
|
143
|
-
add: "add",
|
|
145
|
+
"add": "add",
|
|
144
146
|
"alt-route": "alt_route",
|
|
145
|
-
apps: "apps",
|
|
147
|
+
"apps": "apps",
|
|
146
148
|
"arrow-alt-down": "arrow_alt_down",
|
|
147
149
|
"arrow-alt-down-left": "arrow_alt_down_left",
|
|
148
150
|
"arrow-alt-down-right": "arrow_alt_down_right",
|
|
@@ -173,100 +175,102 @@ const RegularIcons = {
|
|
|
173
175
|
"arrow-up": "arrow_up",
|
|
174
176
|
"arrow-up-left": "arrow_up_left",
|
|
175
177
|
"arrow-up-right": "arrow_up_right",
|
|
176
|
-
asterisk: "asterisk",
|
|
178
|
+
"asterisk": "asterisk",
|
|
177
179
|
"attach-file": "attach_file",
|
|
178
180
|
"battery-alt-empty": "battery_alt_empty",
|
|
179
181
|
"battery-alt-full": "battery_alt_full",
|
|
180
182
|
"battery-charging": "battery_charging",
|
|
181
183
|
"battery-empty": "battery_empty",
|
|
182
184
|
"battery-full": "battery_full",
|
|
183
|
-
bluetooth: "bluetooth",
|
|
185
|
+
"bluetooth": "bluetooth",
|
|
184
186
|
"bluetooth-off": "bluetooth_off",
|
|
185
187
|
"chart-bar": "chart_bar",
|
|
186
188
|
"chart-bar-stacked": "chart_bar_stacked",
|
|
187
|
-
check: "check",
|
|
189
|
+
"check": "check",
|
|
188
190
|
"check-indeterminate": "check_indeterminate",
|
|
189
191
|
"check-small": "check_small",
|
|
190
192
|
"checkbox-empty": "checkbox_empty",
|
|
191
|
-
close: "close",
|
|
192
|
-
compare: "compare",
|
|
193
|
+
"close": "close",
|
|
194
|
+
"compare": "compare",
|
|
193
195
|
"copy-all": "copy_all",
|
|
194
196
|
"crisis-alert": "crisis_alert",
|
|
195
|
-
cut: "cut",
|
|
196
|
-
download: "download",
|
|
197
|
+
"cut": "cut",
|
|
198
|
+
"download": "download",
|
|
197
199
|
"download-done": "download_done",
|
|
198
200
|
"drag-handle": "drag_handle",
|
|
199
201
|
"drag-indicator": "drag_indicator",
|
|
200
|
-
exclamation: "exclamation",
|
|
202
|
+
"exclamation": "exclamation",
|
|
201
203
|
"explore-travel": "explore_travel",
|
|
202
204
|
"external-link": "external_link",
|
|
203
|
-
filter: "filter",
|
|
205
|
+
"filter": "filter",
|
|
204
206
|
"filter-off": "filter_off",
|
|
205
207
|
"first-page": "first_page",
|
|
206
|
-
forward: "forward",
|
|
207
|
-
fullscreen: "fullscreen",
|
|
208
|
+
"forward": "forward",
|
|
209
|
+
"fullscreen": "fullscreen",
|
|
208
210
|
"fullscreen-exit": "fullscreen_exit",
|
|
209
|
-
history: "history",
|
|
211
|
+
"history": "history",
|
|
210
212
|
"hourglass-empty": "hourglass_empty",
|
|
211
213
|
"info-i": "info_i",
|
|
212
|
-
language: "language",
|
|
214
|
+
"language": "language",
|
|
213
215
|
"last-page": "last_page",
|
|
214
|
-
link: "link",
|
|
216
|
+
"link": "link",
|
|
215
217
|
"link-off": "link_off",
|
|
216
|
-
list: "list",
|
|
218
|
+
"list": "list",
|
|
217
219
|
"location-disabled": "location_disabled",
|
|
218
|
-
login: "login",
|
|
219
|
-
logout: "logout",
|
|
220
|
-
menu: "menu",
|
|
220
|
+
"login": "login",
|
|
221
|
+
"logout": "logout",
|
|
222
|
+
"menu": "menu",
|
|
221
223
|
"menu-open": "menu_open",
|
|
222
|
-
monitoring: "monitoring",
|
|
224
|
+
"monitoring": "monitoring",
|
|
223
225
|
"more-down": "more_down",
|
|
224
226
|
"more-horiz": "more_horiz",
|
|
225
227
|
"more-up": "more_up",
|
|
226
228
|
"more-vert": "more_vert",
|
|
227
|
-
ohm: "ohm",
|
|
229
|
+
"ohm": "ohm",
|
|
228
230
|
"open-in-full": "open_in_full",
|
|
229
|
-
paste: "paste",
|
|
231
|
+
"paste": "paste",
|
|
230
232
|
"play-pause": "play_pause",
|
|
231
233
|
"power-input": "power_input",
|
|
232
234
|
"power-plug": "power_plug",
|
|
233
235
|
"power-settings": "power_settings",
|
|
234
236
|
"priority-high": "priority_high",
|
|
235
|
-
public: "public",
|
|
236
|
-
publish: "publish",
|
|
237
|
+
"public": "public",
|
|
238
|
+
"publish": "publish",
|
|
237
239
|
"question-mark": "question_mark",
|
|
238
|
-
radar: "radar",
|
|
240
|
+
"radar": "radar",
|
|
239
241
|
"radio-button-empty": "radio_button_empty",
|
|
240
|
-
redo: "redo",
|
|
241
|
-
reload: "reload",
|
|
242
|
-
remove: "remove",
|
|
243
|
-
reply: "reply",
|
|
242
|
+
"redo": "redo",
|
|
243
|
+
"reload": "reload",
|
|
244
|
+
"remove": "remove",
|
|
245
|
+
"reply": "reply",
|
|
244
246
|
"reply-all": "reply_all",
|
|
245
|
-
route: "route",
|
|
246
|
-
search: "search",
|
|
247
|
+
"route": "route",
|
|
248
|
+
"search": "search",
|
|
247
249
|
"side-navigation": "side_navigation",
|
|
248
|
-
sort: "sort",
|
|
250
|
+
"sort": "sort",
|
|
249
251
|
"support-agent": "support_agent",
|
|
250
|
-
|
|
252
|
+
"swap-horiz": "swap_horiz",
|
|
253
|
+
"swap-vert": "swap_vert",
|
|
254
|
+
"timeline": "timeline",
|
|
251
255
|
"trending-down": "trending_down",
|
|
252
256
|
"trending-flat": "trending_flat",
|
|
253
257
|
"trending-up": "trending_up",
|
|
254
|
-
tune: "tune",
|
|
255
|
-
undo: "undo",
|
|
256
|
-
upload: "upload",
|
|
257
|
-
water: "water",
|
|
258
|
+
"tune": "tune",
|
|
259
|
+
"undo": "undo",
|
|
260
|
+
"upload": "upload",
|
|
261
|
+
"water": "water",
|
|
258
262
|
"water-alt": "water_alt",
|
|
259
|
-
wifi: "wifi",
|
|
263
|
+
"wifi": "wifi",
|
|
260
264
|
"wifi-off": "wifi_off",
|
|
261
|
-
windmill: "windmill",
|
|
265
|
+
"windmill": "windmill",
|
|
262
266
|
"zoom-in": "zoom_in",
|
|
263
267
|
"zoom-out": "zoom_out",
|
|
264
268
|
};
|
|
265
269
|
const TogglableIcons = {
|
|
266
270
|
"add-circle": ["add_circle_outlined", "add_circle_filled"],
|
|
267
271
|
"admin-panel-settings": ["admin_panel_settings_outlined", "admin_panel_settings_filled"],
|
|
268
|
-
analytics: ["analytics_outlined", "analytics_filled"],
|
|
269
|
-
archive: ["archive_outlined", "archive_filled"],
|
|
272
|
+
"analytics": ["analytics_outlined", "analytics_filled"],
|
|
273
|
+
"archive": ["archive_outlined", "archive_filled"],
|
|
270
274
|
"arrow-circle-chevron-down": ["arrow_circle_chevron_down_outlined", "arrow_circle_chevron_down_filled"],
|
|
271
275
|
"arrow-circle-chevron-left": ["arrow_circle_chevron_left_outlined", "arrow_circle_chevron_left_filled"],
|
|
272
276
|
"arrow-circle-chevron-right": ["arrow_circle_chevron_right_outlined", "arrow_circle_chevron_right_filled"],
|
|
@@ -275,153 +279,156 @@ const TogglableIcons = {
|
|
|
275
279
|
"arrow-circle-left": ["arrow_circle_left_outlined", "arrow_circle_left_filled"],
|
|
276
280
|
"arrow-circle-right": ["arrow_circle_right_outlined", "arrow_circle_right_filled"],
|
|
277
281
|
"arrow-circle-up": ["arrow_circle_up_outlined", "arrow_circle_up_filled"],
|
|
278
|
-
article: ["article_outlined", "article_filled"],
|
|
282
|
+
"article": ["article_outlined", "article_filled"],
|
|
279
283
|
"assignment-complete": ["assignment_complete_outlined", "assignment_complete_filled"],
|
|
280
|
-
assignment: ["assignment_outlined", "assignment_filled"],
|
|
284
|
+
"assignment": ["assignment_outlined", "assignment_filled"],
|
|
281
285
|
"battery-alert": ["battery_alert_outlined", "battery_alert_filled"],
|
|
282
286
|
"battery-charging-full": ["battery_charging_full_outlined", "battery_charging_full_filled"],
|
|
283
287
|
"bolt-alt-circle": ["bolt_alt_circle_outlined", "bolt_alt_circle_filled"],
|
|
284
288
|
"bolt-alt": ["bolt_alt_outlined", "bolt_alt_filled"],
|
|
285
289
|
"bolt-circle": ["bolt_circle_outlined", "bolt_circle_filled"],
|
|
286
|
-
bolt: ["bolt_outlined", "bolt_filled"],
|
|
287
|
-
bookmark: ["bookmark_outlined", "bookmark_filled"],
|
|
288
|
-
bookmarks: ["bookmarks_outlined", "bookmarks_filled"],
|
|
289
|
-
build: ["build_outlined", "build_filled"],
|
|
290
|
+
"bolt": ["bolt_outlined", "bolt_filled"],
|
|
291
|
+
"bookmark": ["bookmark_outlined", "bookmark_filled"],
|
|
292
|
+
"bookmarks": ["bookmarks_outlined", "bookmarks_filled"],
|
|
293
|
+
"build": ["build_outlined", "build_filled"],
|
|
290
294
|
"calendar-available": ["calendar_available_outlined", "calendar_available_filled"],
|
|
291
295
|
"calendar-busy": ["calendar_busy_outlined", "calendar_busy_filled"],
|
|
292
296
|
"calendar-month": ["calendar_month_outlined", "calendar_month_filled"],
|
|
293
297
|
"calendar-today": ["calendar_today_outlined", "calendar_today_filled"],
|
|
294
|
-
call: ["call_outlined", "call_filled"],
|
|
295
|
-
cancel: ["cancel_outlined", "cancel_filled"],
|
|
296
|
-
category: ["category_outlined", "category_filled"],
|
|
298
|
+
"call": ["call_outlined", "call_filled"],
|
|
299
|
+
"cancel": ["cancel_outlined", "cancel_filled"],
|
|
300
|
+
"category": ["category_outlined", "category_filled"],
|
|
297
301
|
"chart-add": ["chart_add_outlined", "chart_add_filled"],
|
|
298
302
|
"chart-area": ["chart_area_outlined", "chart_area_filled"],
|
|
299
303
|
"chart-pie": ["chart_pie_outlined", "chart_pie_filled"],
|
|
300
304
|
"chart-table": ["chart_table_outlined", "chart_table_filled"],
|
|
301
305
|
"chat-alt": ["chat_alt_outlined", "chat_alt_filled"],
|
|
302
306
|
"chat-alt-unread": ["chat_alt_unread_outlined", "chat_alt_unread_filled"],
|
|
303
|
-
chat: ["chat_outlined", "chat_filled"],
|
|
307
|
+
"chat": ["chat_outlined", "chat_filled"],
|
|
304
308
|
"chat-unread": ["chat_unread_outlined", "chat_unread_filled"],
|
|
305
309
|
"check-circle": ["check_circle_outlined", "check_circle_filled"],
|
|
306
|
-
checkbox: ["checkbox_outlined", "checkbox_filled"],
|
|
310
|
+
"checkbox": ["checkbox_outlined", "checkbox_filled"],
|
|
307
311
|
"checkbox-indeterminate": ["checkbox_indeterminate_outlined", "checkbox_indeterminate_filled"],
|
|
308
|
-
clock: ["clock_outlined", "clock_filled"],
|
|
312
|
+
"clock": ["clock_outlined", "clock_filled"],
|
|
309
313
|
"cloud-download": ["cloud_download_outlined", "cloud_download_filled"],
|
|
310
|
-
cloud: ["cloud_outlined", "cloud_filled"],
|
|
314
|
+
"cloud": ["cloud_outlined", "cloud_filled"],
|
|
311
315
|
"cloud-off": ["cloud_off_outlined", "cloud_off_filled"],
|
|
312
316
|
"cloud-upload": ["cloud_upload_outlined", "cloud_upload_filled"],
|
|
313
317
|
"comment-add": ["comment_add_outlined", "comment_add_filled"],
|
|
314
|
-
comment: ["comment_outlined", "comment_filled"],
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
318
|
+
"comment": ["comment_outlined", "comment_filled"],
|
|
319
|
+
"contact": ["contact_outlined", "contact_filled"],
|
|
320
|
+
"copy": ["copy_outlined", "copy_filled"],
|
|
321
|
+
"dangerous": ["dangerous_outlined", "dangerous_filled"],
|
|
322
|
+
"dashboard": ["dashboard_outlined", "dashboard_filled"],
|
|
323
|
+
"database": ["database_outlined", "database_filled"],
|
|
324
|
+
"delete": ["delete_outlined", "delete_filled"],
|
|
325
|
+
"desktop": ["desktop_outlined", "desktop_filled"],
|
|
326
|
+
"devices": ["devices_outlined", "devices_filled"],
|
|
327
|
+
"draft": ["draft_outlined", "draft_filled"],
|
|
328
|
+
"eco": ["eco_outlined", "eco_filled"],
|
|
329
|
+
"edit": ["edit_outlined", "edit_filled"],
|
|
325
330
|
"electric-meter": ["electric_meter_outlined", "electric_meter_filled"],
|
|
326
|
-
error: ["error_outlined", "error_filled"],
|
|
327
|
-
explore: ["explore_outlined", "explore_filled"],
|
|
331
|
+
"error": ["error_outlined", "error_filled"],
|
|
332
|
+
"explore": ["explore_outlined", "explore_filled"],
|
|
328
333
|
"explore-off": ["explore_off_outlined", "explore_off_filled"],
|
|
334
|
+
"export-xls": ["export_xls_outlined", "export_xls_filled"],
|
|
329
335
|
"fast-forward": ["fast_forward_outlined", "fast_forward_filled"],
|
|
330
336
|
"fast-rewind": ["fast_rewind_outlined", "fast_rewind_filled"],
|
|
331
|
-
feedback: ["feedback_outlined", "feedback_filled"],
|
|
337
|
+
"feedback": ["feedback_outlined", "feedback_filled"],
|
|
332
338
|
"file-copy": ["file_copy_outlined", "file_copy_filled"],
|
|
333
339
|
"file-download": ["file_download_outlined", "file_download_filled"],
|
|
334
340
|
"file-upload": ["file_upload_outlined", "file_upload_filled"],
|
|
335
341
|
"filter-alt": ["filter_alt_outlined", "filter_alt_filled"],
|
|
336
342
|
"filter-alt-off": ["filter_alt_off_outlined", "filter_alt_off_filled"],
|
|
337
|
-
fire: ["fire_outlined", "fire_filled"],
|
|
343
|
+
"fire": ["fire_outlined", "fire_filled"],
|
|
338
344
|
"fit-screen": ["fit_screen_outlined", "fit_screen_filled"],
|
|
339
|
-
flag: ["flag_outlined", "flag_filled"],
|
|
340
|
-
flash: ["flash_outlined", "flash_filled"],
|
|
345
|
+
"flag": ["flag_outlined", "flag_filled"],
|
|
346
|
+
"flash": ["flash_outlined", "flash_filled"],
|
|
341
347
|
"flash-off": ["flash_off_outlined", "flash_off_filled"],
|
|
342
348
|
"folder-add": ["folder_add_outlined", "folder_add_filled"],
|
|
343
|
-
folder: ["folder_outlined", "folder_filled"],
|
|
349
|
+
"folder": ["folder_outlined", "folder_filled"],
|
|
344
350
|
"folder-move": ["folder_move_outlined", "folder_move_filled"],
|
|
345
351
|
"folder-open": ["folder_open_outlined", "folder_open_filled"],
|
|
346
352
|
"folder-shared": ["folder_shared_outlined", "folder_shared_filled"],
|
|
347
|
-
forum: ["forum_outlined", "forum_filled"],
|
|
353
|
+
"forum": ["forum_outlined", "forum_filled"],
|
|
348
354
|
"group-add": ["group_add_outlined", "group_add_filled"],
|
|
349
|
-
group: ["group_outlined", "group_filled"],
|
|
350
|
-
groups: ["groups_outlined", "groups_filled"],
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
355
|
+
"group": ["group_outlined", "group_filled"],
|
|
356
|
+
"groups": ["groups_outlined", "groups_filled"],
|
|
357
|
+
"handshake": ["handshake_outlined", "handshake_filled"],
|
|
358
|
+
"headphones": ["headphones_outlined", "headphones_filled"],
|
|
359
|
+
"heart": ["heart_outlined", "heart_filled"],
|
|
360
|
+
"help": ["help_outlined", "help_filled"],
|
|
361
|
+
"home": ["home_outlined", "home_filled"],
|
|
362
|
+
"hourglass": ["hourglass_outlined", "hourglass_filled"],
|
|
356
363
|
"image-broken": ["image_broken_outlined", "image_broken_filled"],
|
|
357
|
-
image: ["image_outlined", "image_filled"],
|
|
364
|
+
"image": ["image_outlined", "image_filled"],
|
|
358
365
|
"image-gallery": ["image_gallery_outlined", "image_gallery_filled"],
|
|
359
|
-
inbox: ["inbox_outlined", "inbox_filled"],
|
|
360
|
-
info: ["info_outlined", "info_filled"],
|
|
361
|
-
keep: ["keep_outlined", "keep_filled"],
|
|
366
|
+
"inbox": ["inbox_outlined", "inbox_filled"],
|
|
367
|
+
"info": ["info_outlined", "info_filled"],
|
|
368
|
+
"keep": ["keep_outlined", "keep_filled"],
|
|
362
369
|
"keep-off": ["keep_off_outlined", "keep_off_filled"],
|
|
363
|
-
label: ["label_outlined", "label_filled"],
|
|
364
|
-
laptop: ["laptop_outlined", "laptop_filled"],
|
|
370
|
+
"label": ["label_outlined", "label_filled"],
|
|
371
|
+
"laptop": ["laptop_outlined", "laptop_filled"],
|
|
365
372
|
"left-panel-close": ["left_panel_close_outlined", "left_panel_close_filled"],
|
|
366
373
|
"left-panel-open": ["left_panel_open_outlined", "left_panel_open_filled"],
|
|
367
374
|
"light-off": ["light_off_outlined", "light_off_filled"],
|
|
368
375
|
"lightbulb-alt": ["lightbulb_alt_outlined", "lightbulb_alt_filled"],
|
|
369
376
|
"lightbulb-circle": ["lightbulb_circle_outlined", "lightbulb_circle_filled"],
|
|
370
|
-
lightbulb: ["lightbulb_outlined", "lightbulb_filled"],
|
|
377
|
+
"lightbulb": ["lightbulb_outlined", "lightbulb_filled"],
|
|
371
378
|
"list-alt": ["list_alt_outlined", "list_alt_filled"],
|
|
372
379
|
"location-me": ["location_me_outlined", "location_me_filled"],
|
|
373
380
|
"location-off": ["location_off_outlined", "location_off_filled"],
|
|
374
381
|
"location-on": ["location_on_outlined", "location_on_filled"],
|
|
375
|
-
lock: ["lock_outlined", "lock_filled"],
|
|
382
|
+
"lock": ["lock_outlined", "lock_filled"],
|
|
376
383
|
"lock-open": ["lock_open_outlined", "lock_open_filled"],
|
|
377
384
|
"lock-open-right": ["lock_open_right_outlined", "lock_open_right_filled"],
|
|
378
|
-
mail: ["mail_outlined", "mail_filled"],
|
|
385
|
+
"mail": ["mail_outlined", "mail_filled"],
|
|
379
386
|
"mail-unread": ["mail_unread_outlined", "mail_unread_filled"],
|
|
380
|
-
map: ["map_outlined", "map_filled"],
|
|
381
|
-
mic: ["mic_outlined", "mic_filled"],
|
|
387
|
+
"map": ["map_outlined", "map_filled"],
|
|
388
|
+
"mic": ["mic_outlined", "mic_filled"],
|
|
382
389
|
"mic-off": ["mic_off_outlined", "mic_off_filled"],
|
|
383
390
|
"mode-dark": ["mode_dark_outlined", "mode_dark_filled"],
|
|
384
391
|
"mode-light": ["mode_light_outlined", "mode_light_filled"],
|
|
385
|
-
notification: ["notification_outlined", "notification_filled"],
|
|
392
|
+
"notification": ["notification_outlined", "notification_filled"],
|
|
386
393
|
"notification-important": ["notification_important_outlined", "notification_important_filled"],
|
|
387
394
|
"notification-off": ["notification_off_outlined", "notification_off_filled"],
|
|
388
395
|
"notification-unread": ["notification_unread_outlined", "notification_unread_filled"],
|
|
389
|
-
palette: ["palette_outlined", "palette_filled"],
|
|
396
|
+
"palette": ["palette_outlined", "palette_filled"],
|
|
390
397
|
"pause-circle": ["pause_circle_outlined", "pause_circle_filled"],
|
|
391
|
-
pause: ["pause_outlined", "pause_filled"],
|
|
398
|
+
"pause": ["pause_outlined", "pause_filled"],
|
|
392
399
|
"photo-camera": ["photo_camera_outlined", "photo_camera_filled"],
|
|
393
400
|
"play-circle": ["play_circle_outlined", "play_circle_filled"],
|
|
394
|
-
play: ["play_outlined", "play_filled"],
|
|
395
|
-
power: ["power_outlined", "power_filled"],
|
|
401
|
+
"play": ["play_outlined", "play_filled"],
|
|
402
|
+
"power": ["power_outlined", "power_filled"],
|
|
396
403
|
"power-off": ["power_off_outlined", "power_off_filled"],
|
|
397
404
|
"power-plug-connect": ["power_plug_connect_outlined", "power_plug_connect_filled"],
|
|
398
405
|
"power-settings-circle": ["power_settings_circle_outlined", "power_settings_circle_filled"],
|
|
399
406
|
"power-solar": ["power_solar_outlined", "power_solar_filled"],
|
|
400
407
|
"power-switch": ["power_switch_outlined", "power_switch_filled"],
|
|
401
408
|
"power-wind": ["power_wind_outlined", "power_wind_filled"],
|
|
402
|
-
print: ["print_outlined", "print_filled"],
|
|
409
|
+
"print": ["print_outlined", "print_filled"],
|
|
403
410
|
"right-panel-close": ["right_panel_close_outlined", "right_panel_close_filled"],
|
|
404
411
|
"right-panel-open": ["right_panel_open_outlined", "right_panel_open_filled"],
|
|
405
|
-
save: ["save_outlined", "save_filled"],
|
|
406
|
-
send: ["send_outlined", "send_filled"],
|
|
407
|
-
settings: ["settings_outlined", "settings_filled"],
|
|
408
|
-
share: ["share_outlined", "share_filled"],
|
|
412
|
+
"save": ["save_outlined", "save_filled"],
|
|
413
|
+
"send": ["send_outlined", "send_filled"],
|
|
414
|
+
"settings": ["settings_outlined", "settings_filled"],
|
|
415
|
+
"share": ["share_outlined", "share_filled"],
|
|
409
416
|
"skip-next": ["skip_next_outlined", "skip_next_filled"],
|
|
410
417
|
"skip-previous": ["skip_previous_outlined", "skip_previous_filled"],
|
|
411
|
-
smartphone: ["smartphone_outlined", "smartphone_filled"],
|
|
412
|
-
star: ["star_outlined", "star_filled"],
|
|
418
|
+
"smartphone": ["smartphone_outlined", "smartphone_filled"],
|
|
419
|
+
"star": ["star_outlined", "star_filled"],
|
|
413
420
|
"sticky-note": ["sticky_note_outlined", "sticky_note_filled"],
|
|
414
421
|
"stop-circle": ["stop_circle_outlined", "stop_circle_filled"],
|
|
415
|
-
stop: ["stop_outlined", "stop_filled"],
|
|
416
|
-
subtitles: ["subtitles_outlined", "subtitles_filled"],
|
|
422
|
+
"stop": ["stop_outlined", "stop_filled"],
|
|
423
|
+
"subtitles": ["subtitles_outlined", "subtitles_filled"],
|
|
417
424
|
"text-snippet": ["text_snippet_outlined", "text_snippet_filled"],
|
|
418
425
|
"trash-restore": ["trash_restore_outlined", "trash_restore_filled"],
|
|
419
|
-
unarchive: ["unarchive_outlined", "unarchive_filled"],
|
|
426
|
+
"unarchive": ["unarchive_outlined", "unarchive_filled"],
|
|
420
427
|
"user-add": ["user_add_outlined", "user_add_filled"],
|
|
421
428
|
"user-circle": ["user_circle_outlined", "user_circle_filled"],
|
|
422
|
-
user: ["user_outlined", "user_filled"],
|
|
429
|
+
"user": ["user_outlined", "user_filled"],
|
|
423
430
|
"user-settings": ["user_settings_outlined", "user_settings_filled"],
|
|
424
|
-
verified: ["verified_outlined", "verified_filled"],
|
|
431
|
+
"verified": ["verified_outlined", "verified_filled"],
|
|
425
432
|
"video-camera": ["video_camera_outlined", "video_camera_filled"],
|
|
426
433
|
"video-camera-off": ["video_camera_off_outlined", "video_camera_off_filled"],
|
|
427
434
|
"video-gallery": ["video_gallery_outlined", "video_gallery_filled"],
|
|
@@ -437,8 +444,8 @@ const TogglableIcons = {
|
|
|
437
444
|
"volume-mute": ["volume_mute_outlined", "volume_mute_filled"],
|
|
438
445
|
"volume-off": ["volume_off_outlined", "volume_off_filled"],
|
|
439
446
|
"volume-up": ["volume_up_outlined", "volume_up_filled"],
|
|
440
|
-
warning: ["warning_outlined", "warning_filled"],
|
|
441
|
-
waterdrop: ["waterdrop_outlined", "waterdrop_filled"],
|
|
447
|
+
"warning": ["warning_outlined", "warning_filled"],
|
|
448
|
+
"waterdrop": ["waterdrop_outlined", "waterdrop_filled"],
|
|
442
449
|
};
|
|
443
450
|
function isValidIconName(iconName) {
|
|
444
451
|
return isValidIconName$1(iconName, RegularIcons, TogglableIcons);
|
|
@@ -819,6 +826,7 @@ class BadgeComponent {
|
|
|
819
826
|
this.count = input();
|
|
820
827
|
this.icon = input("notification");
|
|
821
828
|
this.simpleBadge = input(false);
|
|
829
|
+
this.withPlusSign = input(false);
|
|
822
830
|
this.isValidIconName = computed(() => {
|
|
823
831
|
const icon = this.icon();
|
|
824
832
|
return isValidIconName(icon);
|
|
@@ -842,13 +850,16 @@ class BadgeComponent {
|
|
|
842
850
|
count: this.count(),
|
|
843
851
|
iconSize: this.iconSize(),
|
|
844
852
|
}));
|
|
853
|
+
this.badgeText = computed(() => {
|
|
854
|
+
return `${this.withPlusSign() && this.count() && this.count() > 0 ? "+" : ""}${this.displayCount()}`;
|
|
855
|
+
});
|
|
845
856
|
}
|
|
846
857
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
847
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: BadgeComponent, isStandalone: true, selector: "rte-badge", inputs: { badgeType: { classPropertyName: "badgeType", publicName: "badgeType", isSignal: true, isRequired: false, transformFunction: null }, badgeSize: { classPropertyName: "badgeSize", publicName: "badgeSize", isSignal: true, isRequired: false, transformFunction: null }, badgeContent: { classPropertyName: "badgeContent", publicName: "badgeContent", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, simpleBadge: { classPropertyName: "simpleBadge", publicName: "simpleBadge", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<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 {{
|
|
858
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: BadgeComponent, isStandalone: true, selector: "rte-badge", inputs: { badgeType: { classPropertyName: "badgeType", publicName: "badgeType", isSignal: true, isRequired: false, transformFunction: null }, badgeSize: { classPropertyName: "badgeSize", publicName: "badgeSize", isSignal: true, isRequired: false, transformFunction: null }, badgeContent: { classPropertyName: "badgeContent", publicName: "badgeContent", isSignal: true, isRequired: false, transformFunction: null }, count: { classPropertyName: "count", publicName: "count", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, simpleBadge: { classPropertyName: "simpleBadge", publicName: "simpleBadge", isSignal: true, isRequired: false, transformFunction: null }, withPlusSign: { classPropertyName: "withPlusSign", publicName: "withPlusSign", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<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 {{ badgeText() }}\n </span>\n</div>\n", styles: [".badge{position:absolute;border-radius:999px;display:flex;align-items:center;justify-content:center;transition:opacity .15s ease-in-out;box-sizing:border-box}.badge.hidden{opacity:0}.badge.type-brand{box-shadow:0 2px 4px 0 var(--elevation-shadow-key-brand),0 0 2px 0 var(--elevation-shadow-ambient-brand);background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);background-color:var(--background-brand-default);color:var(--content-primary-inverse)}.badge.type-neutral{box-shadow:0 2px 4px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);background-color:var(--background-neutral-regular-default);color:var(--content-secondary)}.badge.type-indicator{box-shadow:0 2px 4px 0 var(--elevation-shadow-key-brand),0 0 2px 0 var(--elevation-shadow-ambient-brand);background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);background-color:var(--background-danger-default);color:var(--content-primary-inverse)}.badge.size-xs{width:6px;height:6px;box-shadow:none;top:-3px;right:-3px}.badge.size-s{width:12px;height:12px;top:-6px;right:-6px}.badge.size-m{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;min-width:16px;width:fit-content;height:16px;top:-8px;right:-8px;padding:0 2px}.badge.size-m.count-overflow{padding:0 4px}.badge.size-l{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:16px;line-height:24px;letter-spacing:0px;min-width:24px;width:fit-content;height:24px;top:-12px;right:-12px;padding:0 4px}.badge.size-l.count-overflow{padding:0 6px}.badge[data-simple-badge=true]{position:static;box-shadow:none}.badge .badge-text{margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
848
859
|
}
|
|
849
860
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BadgeComponent, decorators: [{
|
|
850
861
|
type: Component,
|
|
851
|
-
args: [{ selector: "rte-badge", imports: [CommonModule, IconComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<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 {{
|
|
862
|
+
args: [{ selector: "rte-badge", imports: [CommonModule, IconComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<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 {{ badgeText() }}\n </span>\n</div>\n", styles: [".badge{position:absolute;border-radius:999px;display:flex;align-items:center;justify-content:center;transition:opacity .15s ease-in-out;box-sizing:border-box}.badge.hidden{opacity:0}.badge.type-brand{box-shadow:0 2px 4px 0 var(--elevation-shadow-key-brand),0 0 2px 0 var(--elevation-shadow-ambient-brand);background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);background-color:var(--background-brand-default);color:var(--content-primary-inverse)}.badge.type-neutral{box-shadow:0 2px 4px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);background-color:var(--background-neutral-regular-default);color:var(--content-secondary)}.badge.type-indicator{box-shadow:0 2px 4px 0 var(--elevation-shadow-key-brand),0 0 2px 0 var(--elevation-shadow-ambient-brand);background:linear-gradient(0deg,var(--elevation-surface-shadow-2) 0%,var(--elevation-surface-shadow-2) 100%);background-color:var(--background-danger-default);color:var(--content-primary-inverse)}.badge.size-xs{width:6px;height:6px;box-shadow:none;top:-3px;right:-3px}.badge.size-s{width:12px;height:12px;top:-6px;right:-6px}.badge.size-m{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;min-width:16px;width:fit-content;height:16px;top:-8px;right:-8px;padding:0 2px}.badge.size-m.count-overflow{padding:0 4px}.badge.size-l{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:16px;line-height:24px;letter-spacing:0px;min-width:24px;width:fit-content;height:24px;top:-12px;right:-12px;padding:0 4px}.badge.size-l.count-overflow{padding:0 6px}.badge[data-simple-badge=true]{position:static;box-shadow:none}.badge .badge-text{margin:0}\n"] }]
|
|
852
863
|
}] });
|
|
853
864
|
|
|
854
865
|
class BadgeDirective {
|
|
@@ -919,11 +930,65 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
919
930
|
args: [{ selector: "rte-divider", imports: [CommonModule], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (isHorizontal()) {\n <hr class=\"horizontal {{ thickness() }} {{ appearance() }} {{ endPoint() }}\" />\n} @else {\n <div class=\"vertical {{ thickness() }} {{ appearance() }} {{ endPoint() }}\" role=\"separator\"></div>\n}\n", styles: [":host{display:contents}.horizontal{border:none;padding:0;margin:0;width:100%}.horizontal.round{border-radius:999px}.horizontal.light{border-top:1px solid var(--border-divider)}.horizontal.medium{border-top:2px solid var(--border-divider)}.horizontal.bold{border-top:4px solid var(--border-divider)}.horizontal.inverse{border-top-color:var(--border-inverse)}.horizontal.brand{border-top-color:var(--border-brand-default)}.horizontal.brand-navigation{border-top-color:var(--border-brand-navigation-divider)}.vertical{height:100%;background-color:var(--border-divider);margin:0;padding:0}.vertical.round{border-radius:999px}.vertical.light{width:1px}.vertical.medium{width:2px}.vertical.bold{width:4px}.vertical.inverse{background-color:var(--border-inverse)}.vertical.brand{background-color:var(--border-brand-default)}.vertical.brand-navigation{background-color:var(--border-brand-navigation-divider)}\n"] }]
|
|
920
931
|
}] });
|
|
921
932
|
|
|
933
|
+
const focusNextElement = (dropdown) => {
|
|
934
|
+
const menuItems = getDropdownMenuItems(dropdown);
|
|
935
|
+
const activeElementIndex = menuItems.indexOf(document.activeElement);
|
|
936
|
+
if (activeElementIndex < menuItems.length - 1) {
|
|
937
|
+
const nextElement = menuItems[activeElementIndex + 1];
|
|
938
|
+
nextElement.focus();
|
|
939
|
+
}
|
|
940
|
+
else {
|
|
941
|
+
menuItems[0]?.focus();
|
|
942
|
+
}
|
|
943
|
+
};
|
|
944
|
+
const focusPreviousElement = (dropdown) => {
|
|
945
|
+
const menuItems = getDropdownMenuItems(dropdown);
|
|
946
|
+
const activeElementIndex = menuItems.indexOf(document.activeElement);
|
|
947
|
+
if (activeElementIndex > 0) {
|
|
948
|
+
const previousElement = menuItems[activeElementIndex - 1];
|
|
949
|
+
previousElement.focus();
|
|
950
|
+
}
|
|
951
|
+
else {
|
|
952
|
+
menuItems.at(-1)?.focus();
|
|
953
|
+
}
|
|
954
|
+
};
|
|
955
|
+
const focusDropdownFirstElement = (dropdownId) => {
|
|
956
|
+
const childDropdown = document.querySelector(`[data-menu-id='${dropdownId}']`);
|
|
957
|
+
if (childDropdown) {
|
|
958
|
+
const allChildDropdownElement = childDropdown?.querySelectorAll('li[role="menuitem"]');
|
|
959
|
+
allChildDropdownElement[0]?.focus();
|
|
960
|
+
}
|
|
961
|
+
};
|
|
962
|
+
const focusParentDropdownFirstElement = (dropdownId) => {
|
|
963
|
+
const parentDropdownId = DropdownManager.getParentDropdownId(dropdownId);
|
|
964
|
+
const parentDropdown = document.querySelector(`[data-menu-id='${parentDropdownId}']`);
|
|
965
|
+
parentDropdown?.querySelector("[data-active=true]")?.focus();
|
|
966
|
+
};
|
|
967
|
+
const getDropdownMenuItems = (dropdown) => {
|
|
968
|
+
const allDropdownElement = dropdown?.querySelectorAll('li[role="menuitem"]');
|
|
969
|
+
return allDropdownElement ? Array.from(allDropdownElement) : [];
|
|
970
|
+
};
|
|
971
|
+
|
|
972
|
+
const SUB_MENU_CLOSE_DELAY_MS = 300;
|
|
922
973
|
class DropdownItemComponent {
|
|
923
974
|
constructor() {
|
|
975
|
+
this.elementRef = inject(ElementRef);
|
|
976
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
924
977
|
this.item = input();
|
|
925
978
|
this.menuId = input();
|
|
926
979
|
this.itemEvent = output();
|
|
980
|
+
this.submenuRequest = output();
|
|
981
|
+
this.subMenuOpen = signal(false);
|
|
982
|
+
this.subMenuRef = null;
|
|
983
|
+
this.closeSubMenuTimeout = null;
|
|
984
|
+
this.subMenuSubscriptions = [];
|
|
985
|
+
this.dropdownManagerUnsubscribe = null;
|
|
986
|
+
this.hasChildren = computed(() => (this.item()?.children?.length ?? 0) > 0);
|
|
987
|
+
this.childDropdownId = computed(() => {
|
|
988
|
+
const menuId = this.menuId();
|
|
989
|
+
const label = this.item()?.label ?? "";
|
|
990
|
+
return menuId && label ? `${menuId}-${label.replace(/\s+/g, "")}` : "";
|
|
991
|
+
});
|
|
927
992
|
this.shouldDisplayBadge = computed(() => {
|
|
928
993
|
const item = this.item();
|
|
929
994
|
return shouldDisplayBadge({
|
|
@@ -933,6 +998,7 @@ class DropdownItemComponent {
|
|
|
933
998
|
badgeIcon: item?.badgeIcon,
|
|
934
999
|
});
|
|
935
1000
|
});
|
|
1001
|
+
this.boundHandleSubMenuMouseEnter = () => this.handleSubMenuMouseEnter();
|
|
936
1002
|
}
|
|
937
1003
|
handleClick(event) {
|
|
938
1004
|
if (this.item()?.disabled) {
|
|
@@ -940,32 +1006,157 @@ class DropdownItemComponent {
|
|
|
940
1006
|
event.stopPropagation();
|
|
941
1007
|
return;
|
|
942
1008
|
}
|
|
1009
|
+
if (this.hasChildren()) {
|
|
1010
|
+
event.preventDefault();
|
|
1011
|
+
event.stopPropagation();
|
|
1012
|
+
this.openSubMenu();
|
|
1013
|
+
return;
|
|
1014
|
+
}
|
|
943
1015
|
this.itemEvent.emit({
|
|
944
1016
|
event,
|
|
945
1017
|
id: this.item()?.id || this.item()?.label || "",
|
|
1018
|
+
item: this.item(),
|
|
946
1019
|
});
|
|
947
1020
|
}
|
|
948
1021
|
handleKeyDown(event) {
|
|
949
1022
|
event.preventDefault();
|
|
950
|
-
if ([SPACE_KEY, ENTER_KEY].includes(event.key)) {
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
1023
|
+
if (this.item()?.link && [SPACE_KEY, ENTER_KEY].includes(event.key)) {
|
|
1024
|
+
const link = event.target.closest("li")?.querySelector("a");
|
|
1025
|
+
link?.click();
|
|
1026
|
+
return;
|
|
1027
|
+
}
|
|
1028
|
+
if (this.hasChildren()) {
|
|
1029
|
+
if (event.key === SPACE_KEY) {
|
|
1030
|
+
this.openSubMenu();
|
|
1031
|
+
const childId = this.childDropdownId();
|
|
1032
|
+
if (childId) {
|
|
1033
|
+
setTimeout(() => focusDropdownFirstElement(childId), 0);
|
|
1034
|
+
}
|
|
960
1035
|
}
|
|
1036
|
+
return;
|
|
1037
|
+
}
|
|
1038
|
+
if ([SPACE_KEY, ENTER_KEY].includes(event.key)) {
|
|
1039
|
+
this.itemEvent.emit({
|
|
1040
|
+
event,
|
|
1041
|
+
id: this.item()?.id || this.item()?.label || "",
|
|
1042
|
+
item: this.item(),
|
|
1043
|
+
});
|
|
961
1044
|
}
|
|
962
1045
|
}
|
|
1046
|
+
handleMouseEnter() {
|
|
1047
|
+
if (this.item()?.disabled || !this.hasChildren())
|
|
1048
|
+
return;
|
|
1049
|
+
const menuId = this.menuId();
|
|
1050
|
+
const childId = this.childDropdownId();
|
|
1051
|
+
if (menuId) {
|
|
1052
|
+
DropdownManager.closeSubMenus(menuId, childId);
|
|
1053
|
+
this.openSubMenu();
|
|
1054
|
+
}
|
|
1055
|
+
}
|
|
1056
|
+
handleFocus() {
|
|
1057
|
+
if (this.item()?.disabled || !this.hasChildren())
|
|
1058
|
+
return;
|
|
1059
|
+
const menuId = this.menuId();
|
|
1060
|
+
const childId = this.childDropdownId();
|
|
1061
|
+
if (menuId) {
|
|
1062
|
+
DropdownManager.closeSubMenus(menuId, childId);
|
|
1063
|
+
}
|
|
1064
|
+
}
|
|
1065
|
+
handleMouseLeave() {
|
|
1066
|
+
if (!this.hasChildren())
|
|
1067
|
+
return;
|
|
1068
|
+
this.scheduleCloseSubMenu();
|
|
1069
|
+
}
|
|
1070
|
+
handleSubMenuMouseEnter() {
|
|
1071
|
+
this.cancelCloseSubMenu();
|
|
1072
|
+
}
|
|
1073
|
+
openSubMenuForKeyboard() {
|
|
1074
|
+
this.openSubMenu();
|
|
1075
|
+
const childId = this.childDropdownId();
|
|
1076
|
+
if (childId) {
|
|
1077
|
+
setTimeout(() => focusDropdownFirstElement(childId), 0);
|
|
1078
|
+
}
|
|
1079
|
+
}
|
|
1080
|
+
openSubMenu() {
|
|
1081
|
+
if (this.subMenuRef)
|
|
1082
|
+
return;
|
|
1083
|
+
const children = this.item()?.children;
|
|
1084
|
+
const childId = this.childDropdownId();
|
|
1085
|
+
if (!children?.length || !childId)
|
|
1086
|
+
return;
|
|
1087
|
+
const triggerElement = this.elementRef.nativeElement.querySelector("li.rte-dropdown-item");
|
|
1088
|
+
if (!triggerElement)
|
|
1089
|
+
return;
|
|
1090
|
+
DropdownManager.open(childId);
|
|
1091
|
+
this.submenuRequest.emit({
|
|
1092
|
+
children,
|
|
1093
|
+
childId,
|
|
1094
|
+
triggerElement,
|
|
1095
|
+
onCreated: (result) => this.wireSubmenu(result),
|
|
1096
|
+
});
|
|
1097
|
+
}
|
|
1098
|
+
wireSubmenu(result) {
|
|
1099
|
+
if (this.subMenuRef)
|
|
1100
|
+
return;
|
|
1101
|
+
this.subMenuRef = result.componentRef;
|
|
1102
|
+
const hostElement = result.hostElement;
|
|
1103
|
+
const childId = this.childDropdownId();
|
|
1104
|
+
this.dropdownManagerUnsubscribe = DropdownManager.subscribe(childId ?? "", () => this.destroySubMenu());
|
|
1105
|
+
const menuInstance = this.subMenuRef.instance;
|
|
1106
|
+
const itemSub = menuInstance.itemEvent.subscribe((emittedItemEvent) => {
|
|
1107
|
+
this.itemEvent.emit({ ...emittedItemEvent, item: emittedItemEvent.item });
|
|
1108
|
+
});
|
|
1109
|
+
const closeSub = menuInstance.closingMenu.subscribe(() => {
|
|
1110
|
+
this.destroySubMenu();
|
|
1111
|
+
});
|
|
1112
|
+
this.subMenuSubscriptions.push(() => {
|
|
1113
|
+
itemSub.unsubscribe();
|
|
1114
|
+
closeSub.unsubscribe();
|
|
1115
|
+
});
|
|
1116
|
+
hostElement.addEventListener("mouseenter", this.boundHandleSubMenuMouseEnter);
|
|
1117
|
+
this.subMenuOpen.set(true);
|
|
1118
|
+
this.cdr.markForCheck();
|
|
1119
|
+
}
|
|
1120
|
+
scheduleCloseSubMenu() {
|
|
1121
|
+
this.cancelCloseSubMenu();
|
|
1122
|
+
this.closeSubMenuTimeout = setTimeout(() => {
|
|
1123
|
+
this.closeSubMenuTimeout = null;
|
|
1124
|
+
this.destroySubMenu();
|
|
1125
|
+
}, SUB_MENU_CLOSE_DELAY_MS);
|
|
1126
|
+
}
|
|
1127
|
+
cancelCloseSubMenu() {
|
|
1128
|
+
if (this.closeSubMenuTimeout) {
|
|
1129
|
+
clearTimeout(this.closeSubMenuTimeout);
|
|
1130
|
+
this.closeSubMenuTimeout = null;
|
|
1131
|
+
}
|
|
1132
|
+
}
|
|
1133
|
+
destroySubMenu() {
|
|
1134
|
+
this.cancelCloseSubMenu();
|
|
1135
|
+
this.subMenuSubscriptions.forEach((unsubscribe) => unsubscribe());
|
|
1136
|
+
this.subMenuSubscriptions = [];
|
|
1137
|
+
if (this.subMenuRef) {
|
|
1138
|
+
const hostElement = this.subMenuRef.location.nativeElement;
|
|
1139
|
+
hostElement.removeEventListener("mouseenter", this.boundHandleSubMenuMouseEnter);
|
|
1140
|
+
const childId = this.childDropdownId();
|
|
1141
|
+
this.dropdownManagerUnsubscribe?.();
|
|
1142
|
+
this.dropdownManagerUnsubscribe = null;
|
|
1143
|
+
if (childId)
|
|
1144
|
+
DropdownManager.close(childId);
|
|
1145
|
+
this.subMenuRef.destroy();
|
|
1146
|
+
this.subMenuRef = null;
|
|
1147
|
+
}
|
|
1148
|
+
this.subMenuOpen.set(false);
|
|
1149
|
+
this.cdr.markForCheck();
|
|
1150
|
+
}
|
|
1151
|
+
ngOnDestroy() {
|
|
1152
|
+
this.destroySubMenu();
|
|
1153
|
+
}
|
|
963
1154
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
964
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: DropdownItemComponent, isStandalone: true, selector: "rte-dropdown-item", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, menuId: { classPropertyName: "menuId", publicName: "menuId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemEvent: "itemEvent" }, ngImport: i0, template: "<ng-container>\n <li\n #itemRef\n class=\"rte-dropdown-item\"\n role=\"menuitem\"\n tabindex=\"0\"\n [attr.data-disabled]=\"item()?.disabled\"\n [attr.data-active]=\"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", styles: [".rte-dropdown-item{font-family:Arial;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px;color:var(--content-secondary);display:flex;height:40px;padding:8px 12px;align-items:center;gap:12px;align-self:stretch;cursor:pointer;box-sizing:border-box}.rte-dropdown-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rte-dropdown-item:hover{background-color:var(--background-hover)}.rte-dropdown-item[data-disabled=true]{cursor:not-allowed;color:var(--content-disabled);background:var(--background-disabled)}.rte-dropdown-item[data-active=true]{background-color:var(--background-brand-inverse-pressed)}.rte-dropdown-item:focus-visible{outline:none;background-color:var(--background-hover)}.dropdown-divider{width:100%;padding:8px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: DividerComponent, selector: "rte-divider", inputs: ["orientation", "thickness", "appearance", "endPoint"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge"] }] }); }
|
|
1155
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: DropdownItemComponent, isStandalone: true, selector: "rte-dropdown-item", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, menuId: { classPropertyName: "menuId", publicName: "menuId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemEvent: "itemEvent", submenuRequest: "submenuRequest" }, ngImport: i0, template: "<ng-container>\n <li\n #itemRef\n class=\"rte-dropdown-item\"\n role=\"menuitem\"\n tabindex=\"0\"\n [attr.data-disabled]=\"item()?.disabled\"\n [attr.data-active]=\"hasChildren() ? subMenuOpen() : item()?.selected\"\n [attr.aria-haspopup]=\"hasChildren() ? 'menu' : null\"\n [attr.aria-expanded]=\"hasChildren() ? subMenuOpen() : null\"\n (click)=\"handleClick($event)\"\n (keydown)=\"handleKeyDown($event)\"\n (mouseenter)=\"handleMouseEnter()\"\n (mouseleave)=\"handleMouseLeave()\"\n (focus)=\"handleFocus()\"\n >\n <rte-checkbox\n *ngIf=\"item()?.hasCheckbox\"\n [label]=\"item()?.label ?? ''\"\n [id]=\"menuId() + ':' + item()?.id\"\n [checked]=\"item()?.selected ?? false\"\n [disabled]=\"item()?.disabled ?? false\"\n [showLabel]=\"false\"\n [indeterminate]=\"item()?.isIndeterminate ?? false\"\n ></rte-checkbox>\n <span *ngIf=\"item()?.hasIndent && !item()?.leftIcon\" style=\"width: 20px\"></span>\n <rte-icon *ngIf=\"item()?.leftIcon\" [name]=\"item()?.leftIcon ?? ''\" />\n <ng-container [ngSwitch]=\"!!item()?.link\">\n <a *ngSwitchCase=\"true\" style=\"flex: 2; text-decoration: none; color: inherit\" [href]=\"item()?.link\"\n >{{ item()?.label }}\n </a>\n <span *ngSwitchDefault style=\"flex: 2\">{{ item()?.label }}</span>\n </ng-container>\n <rte-icon *ngIf=\"hasChildren()\" name=\"arrow-chevron-right\" />\n <div *ngIf=\"item()?.trailingText\">{{ item()?.trailingText }}</div>\n <rte-badge\n *ngIf=\"shouldDisplayBadge()\"\n [badgeType]=\"item()?.badgeType!\"\n [badgeContent]=\"item()?.badgeContent!\"\n [count]=\"item()?.badgeCount\"\n [simpleBadge]=\"true\"\n [icon]=\"item()?.badgeIcon ?? ''\"\n [badgeSize]=\"item()?.badgeSize!\"\n ></rte-badge>\n </li>\n <div *ngIf=\"item()?.hasSeparator\" class=\"dropdown-divider\">\n <rte-divider />\n </div>\n</ng-container>\n", styles: [".rte-dropdown-item{font-family:Arial;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px;color:var(--content-secondary);display:flex;height:40px;padding:8px 12px;align-items:center;gap:12px;align-self:stretch;cursor:pointer;box-sizing:border-box}.rte-dropdown-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rte-dropdown-item:hover{background-color:var(--background-hover)}.rte-dropdown-item[data-disabled=true]{cursor:not-allowed;color:var(--content-disabled);background:var(--background-disabled)}.rte-dropdown-item[data-active=true]{background-color:var(--background-brand-inverse-pressed)}.rte-dropdown-item:focus-visible{outline:none;background-color:var(--background-hover)}.dropdown-divider{width:100%;padding:8px 0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: DividerComponent, selector: "rte-divider", inputs: ["orientation", "thickness", "appearance", "endPoint"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge", "withPlusSign"] }, { kind: "component", type: CheckboxComponent, selector: "rte-checkbox", inputs: ["id", "label", "value", "indeterminate", "description", "showLabel", "disabled", "error", "errorMessage", "readOnly", "checked"] }] }); }
|
|
965
1156
|
}
|
|
966
1157
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownItemComponent, decorators: [{
|
|
967
1158
|
type: Component,
|
|
968
|
-
args: [{ selector: "rte-dropdown-item", imports: [CommonModule, IconComponent, DividerComponent, BadgeComponent], standalone: true, template: "<ng-container>\n <li\n #itemRef\n class=\"rte-dropdown-item\"\n role=\"menuitem\"\n tabindex=\"0\"\n [attr.data-disabled]=\"item()?.disabled\"\n [attr.data-active]=\"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", styles: [".rte-dropdown-item{font-family:Arial;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px;color:var(--content-secondary);display:flex;height:40px;padding:8px 12px;align-items:center;gap:12px;align-self:stretch;cursor:pointer;box-sizing:border-box}.rte-dropdown-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rte-dropdown-item:hover{background-color:var(--background-hover)}.rte-dropdown-item[data-disabled=true]{cursor:not-allowed;color:var(--content-disabled);background:var(--background-disabled)}.rte-dropdown-item[data-active=true]{background-color:var(--background-brand-inverse-pressed)}.rte-dropdown-item:focus-visible{outline:none;background-color:var(--background-hover)}.dropdown-divider{width:100%;padding:8px 0}\n"] }]
|
|
1159
|
+
args: [{ selector: "rte-dropdown-item", imports: [CommonModule, IconComponent, DividerComponent, BadgeComponent, CheckboxComponent], standalone: true, template: "<ng-container>\n <li\n #itemRef\n class=\"rte-dropdown-item\"\n role=\"menuitem\"\n tabindex=\"0\"\n [attr.data-disabled]=\"item()?.disabled\"\n [attr.data-active]=\"hasChildren() ? subMenuOpen() : item()?.selected\"\n [attr.aria-haspopup]=\"hasChildren() ? 'menu' : null\"\n [attr.aria-expanded]=\"hasChildren() ? subMenuOpen() : null\"\n (click)=\"handleClick($event)\"\n (keydown)=\"handleKeyDown($event)\"\n (mouseenter)=\"handleMouseEnter()\"\n (mouseleave)=\"handleMouseLeave()\"\n (focus)=\"handleFocus()\"\n >\n <rte-checkbox\n *ngIf=\"item()?.hasCheckbox\"\n [label]=\"item()?.label ?? ''\"\n [id]=\"menuId() + ':' + item()?.id\"\n [checked]=\"item()?.selected ?? false\"\n [disabled]=\"item()?.disabled ?? false\"\n [showLabel]=\"false\"\n [indeterminate]=\"item()?.isIndeterminate ?? false\"\n ></rte-checkbox>\n <span *ngIf=\"item()?.hasIndent && !item()?.leftIcon\" style=\"width: 20px\"></span>\n <rte-icon *ngIf=\"item()?.leftIcon\" [name]=\"item()?.leftIcon ?? ''\" />\n <ng-container [ngSwitch]=\"!!item()?.link\">\n <a *ngSwitchCase=\"true\" style=\"flex: 2; text-decoration: none; color: inherit\" [href]=\"item()?.link\"\n >{{ item()?.label }}\n </a>\n <span *ngSwitchDefault style=\"flex: 2\">{{ item()?.label }}</span>\n </ng-container>\n <rte-icon *ngIf=\"hasChildren()\" name=\"arrow-chevron-right\" />\n <div *ngIf=\"item()?.trailingText\">{{ item()?.trailingText }}</div>\n <rte-badge\n *ngIf=\"shouldDisplayBadge()\"\n [badgeType]=\"item()?.badgeType!\"\n [badgeContent]=\"item()?.badgeContent!\"\n [count]=\"item()?.badgeCount\"\n [simpleBadge]=\"true\"\n [icon]=\"item()?.badgeIcon ?? ''\"\n [badgeSize]=\"item()?.badgeSize!\"\n ></rte-badge>\n </li>\n <div *ngIf=\"item()?.hasSeparator\" class=\"dropdown-divider\">\n <rte-divider />\n </div>\n</ng-container>\n", styles: [".rte-dropdown-item{font-family:Arial;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px;color:var(--content-secondary);display:flex;height:40px;padding:8px 12px;align-items:center;gap:12px;align-self:stretch;cursor:pointer;box-sizing:border-box}.rte-dropdown-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rte-dropdown-item:hover{background-color:var(--background-hover)}.rte-dropdown-item[data-disabled=true]{cursor:not-allowed;color:var(--content-disabled);background:var(--background-disabled)}.rte-dropdown-item[data-active=true]{background-color:var(--background-brand-inverse-pressed)}.rte-dropdown-item:focus-visible{outline:none;background-color:var(--background-hover)}.dropdown-divider{width:100%;padding:8px 0}\n"] }]
|
|
969
1160
|
}] });
|
|
970
1161
|
|
|
971
1162
|
class DropdownMenuFooterDirective {
|
|
@@ -1076,7 +1267,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
1076
1267
|
class DropdownMenuComponent {
|
|
1077
1268
|
constructor() {
|
|
1078
1269
|
this.elementRef = inject(ElementRef);
|
|
1270
|
+
this.pendingPositioningFrameId = null;
|
|
1079
1271
|
this.dropdownService = inject(DropdownService);
|
|
1272
|
+
this.overlayService = inject(OverlayService);
|
|
1273
|
+
this.viewContainerRef = inject(ViewContainerRef);
|
|
1080
1274
|
this.items = input([]);
|
|
1081
1275
|
this.menuId = input();
|
|
1082
1276
|
this.itemEvent = output();
|
|
@@ -1093,6 +1287,7 @@ class DropdownMenuComponent {
|
|
|
1093
1287
|
this.footerTemplate = input(undefined);
|
|
1094
1288
|
this.headerContentRef = viewChild("headerContent");
|
|
1095
1289
|
this.footerContentRef = viewChild("footerContent");
|
|
1290
|
+
this.itemComponents = viewChildren(DropdownItemComponent);
|
|
1096
1291
|
this.hasHeaderContent = computed(() => {
|
|
1097
1292
|
const hasTemplate = !!this.headerTemplate();
|
|
1098
1293
|
const hasProjectedContent = !!this.headerContentRef()?.nativeElement?.children.length;
|
|
@@ -1104,34 +1299,90 @@ class DropdownMenuComponent {
|
|
|
1104
1299
|
return hasTemplate || hasProjectedContent;
|
|
1105
1300
|
});
|
|
1106
1301
|
}
|
|
1302
|
+
static { this.SUB_MENU_OFFSET = 4; }
|
|
1107
1303
|
getChildMenuId(itemIndex) {
|
|
1108
1304
|
return `${this.menuId()}:${itemIndex + 1}`;
|
|
1109
1305
|
}
|
|
1110
1306
|
handleItemEvent(itemEvent) {
|
|
1111
1307
|
this.itemEvent.emit(itemEvent);
|
|
1112
1308
|
}
|
|
1309
|
+
handleSubmenuRequest(event) {
|
|
1310
|
+
const { children, childId, triggerElement, onCreated } = event;
|
|
1311
|
+
const componentRef = this.overlayService.create(DropdownMenuComponent, this.viewContainerRef);
|
|
1312
|
+
componentRef.setInput("items", children);
|
|
1313
|
+
componentRef.setInput("menuId", childId);
|
|
1314
|
+
componentRef.setInput("isOpen", true);
|
|
1315
|
+
const hostElement = componentRef.location.nativeElement;
|
|
1316
|
+
this.cancelPendingPositioningFrame();
|
|
1317
|
+
this.pendingPositioningFrameId = requestAnimationFrame(() => {
|
|
1318
|
+
this.pendingPositioningFrameId = null;
|
|
1319
|
+
try {
|
|
1320
|
+
const subMenuHost = componentRef.location?.nativeElement;
|
|
1321
|
+
const menuElement = subMenuHost?.querySelector(".rte-dropdown-menu");
|
|
1322
|
+
if (!triggerElement || !menuElement) {
|
|
1323
|
+
logWarn("DropdownMenuComponent", "Unable to position submenu: required DOM elements not found.");
|
|
1324
|
+
return;
|
|
1325
|
+
}
|
|
1326
|
+
const position = getAutoPlacementDropdown({
|
|
1327
|
+
hostElement: triggerElement,
|
|
1328
|
+
castedElement: menuElement,
|
|
1329
|
+
defaultPosition: "right",
|
|
1330
|
+
offset: DropdownMenuComponent.SUB_MENU_OFFSET,
|
|
1331
|
+
hasDropdownParent: true,
|
|
1332
|
+
});
|
|
1333
|
+
const alignment = getAutoAlignment(triggerElement, menuElement, position);
|
|
1334
|
+
const coords = getCoordinates$1(position, triggerElement, menuElement, DropdownMenuComponent.SUB_MENU_OFFSET, alignment);
|
|
1335
|
+
hostElement.style.display = "block";
|
|
1336
|
+
hostElement.style.position = "absolute";
|
|
1337
|
+
hostElement.style.top = `${coords.top}px`;
|
|
1338
|
+
hostElement.style.left = `${coords.left}px`;
|
|
1339
|
+
hostElement.style.opacity = "1";
|
|
1340
|
+
}
|
|
1341
|
+
catch (error) {
|
|
1342
|
+
logError("DropdownMenuComponent", "Error while positioning submenu:", error);
|
|
1343
|
+
}
|
|
1344
|
+
});
|
|
1345
|
+
onCreated({ componentRef, hostElement });
|
|
1346
|
+
}
|
|
1347
|
+
ngOnDestroy() {
|
|
1348
|
+
this.cancelPendingPositioningFrame();
|
|
1349
|
+
}
|
|
1350
|
+
cancelPendingPositioningFrame() {
|
|
1351
|
+
if (this.pendingPositioningFrameId !== null) {
|
|
1352
|
+
cancelAnimationFrame(this.pendingPositioningFrameId);
|
|
1353
|
+
this.pendingPositioningFrameId = null;
|
|
1354
|
+
}
|
|
1355
|
+
}
|
|
1113
1356
|
onKeyDown(event) {
|
|
1114
1357
|
if (!event.target || !this.menuId()) {
|
|
1115
1358
|
return;
|
|
1116
1359
|
}
|
|
1117
|
-
if ([ARROW_UP_KEY, ARROW_DOWN_KEY,
|
|
1360
|
+
if ([ARROW_UP_KEY, ARROW_DOWN_KEY, TAB_KEY].includes(event.key)) {
|
|
1118
1361
|
event.preventDefault();
|
|
1119
1362
|
}
|
|
1120
1363
|
if (event.key === ESCAPE_KEY) {
|
|
1121
1364
|
this.closingMenu.emit();
|
|
1122
1365
|
}
|
|
1123
1366
|
const menuId = this.menuId();
|
|
1367
|
+
if (event.key === TAB_KEY && event.shiftKey) {
|
|
1368
|
+
const parentMenuId = DropdownManager.getParentDropdownId(menuId);
|
|
1369
|
+
if (parentMenuId) {
|
|
1370
|
+
focusParentDropdownFirstElement(menuId);
|
|
1371
|
+
this.closingMenu.emit();
|
|
1372
|
+
return;
|
|
1373
|
+
}
|
|
1374
|
+
}
|
|
1124
1375
|
this.dropdownService.handleKeyboardInput(event.key, {
|
|
1125
1376
|
menuElement: this.elementRef,
|
|
1126
1377
|
menuId,
|
|
1127
1378
|
});
|
|
1128
1379
|
}
|
|
1129
1380
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1130
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DropdownMenuComponent, isStandalone: true, selector: "rte-dropdown-menu", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, menuId: { classPropertyName: "menuId", publicName: "menuId", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, headerTemplate: { classPropertyName: "headerTemplate", publicName: "headerTemplate", isSignal: true, isRequired: false, transformFunction: null }, footerTemplate: { classPropertyName: "footerTemplate", publicName: "footerTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemEvent: "itemEvent", closingMenu: "closingMenu" }, host: { listeners: { "keydown": "onKeyDown($event)" }, properties: { "attr.data-menu-id": "menuId()" } }, queries: [{ propertyName: "headerDirective", first: true, predicate: DropdownMenuHeaderDirective, descendants: true, isSignal: true }, { propertyName: "footerDirective", first: true, predicate: DropdownMenuFooterDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "headerContentRef", first: true, predicate: ["headerContent"], descendants: true, isSignal: true }, { propertyName: "footerContentRef", first: true, predicate: ["footerContent"], descendants: true, isSignal: true }], ngImport: i0, template: "<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
|
|
1381
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DropdownMenuComponent, isStandalone: true, selector: "rte-dropdown-menu", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, menuId: { classPropertyName: "menuId", publicName: "menuId", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, headerTemplate: { classPropertyName: "headerTemplate", publicName: "headerTemplate", isSignal: true, isRequired: false, transformFunction: null }, footerTemplate: { classPropertyName: "footerTemplate", publicName: "footerTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemEvent: "itemEvent", closingMenu: "closingMenu" }, host: { listeners: { "keydown": "onKeyDown($event)" }, properties: { "attr.data-menu-id": "menuId()" } }, queries: [{ propertyName: "headerDirective", first: true, predicate: DropdownMenuHeaderDirective, descendants: true, isSignal: true }, { propertyName: "footerDirective", first: true, predicate: DropdownMenuFooterDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "headerContentRef", first: true, predicate: ["headerContent"], descendants: true, isSignal: true }, { propertyName: "footerContentRef", first: true, predicate: ["footerContent"], descendants: true, isSignal: true }, { propertyName: "itemComponents", predicate: DropdownItemComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<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\n [item]=\"item\"\n [menuId]=\"menuId()\"\n (itemEvent)=\"handleItemEvent($event)\"\n (submenuRequest)=\"handleSubmenuRequest($event)\"\n />\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", styles: [":host{display:none;position:absolute}.rte-dropdown-menu{opacity:0;box-shadow:0 8px 16px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-4) 0%,var(--elevation-surface-shadow-4) 100%);background-color:var(--background-default);position:absolute;top:0;left:0;display:flex;min-width:112px;max-width:280px;padding:8px 0;flex-direction:column;align-items:flex-start;gap:0px;border-radius:4px;transition:opacity .1s ease-in-out;pointer-events:auto;overflow-x:hidden;overflow-y:auto}.rte-dropdown-menu-header,.rte-dropdown-menu-content,.rte-dropdown-menu-footer{width:100%}.rte-dropdown-menu.open{opacity:1}.rte-dropdown-menu .rte-dropdown-items{width:100%;padding:0;margin:0}.rte-dropdown-menu .rte-dropdown-items li{list-style:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: DropdownItemComponent, selector: "rte-dropdown-item", inputs: ["item", "menuId"], outputs: ["itemEvent", "submenuRequest"] }, { kind: "component", type: DividerComponent, selector: "rte-divider", inputs: ["orientation", "thickness", "appearance", "endPoint"] }] }); }
|
|
1131
1382
|
}
|
|
1132
1383
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownMenuComponent, decorators: [{
|
|
1133
1384
|
type: Component,
|
|
1134
|
-
args: [{ selector: "rte-dropdown-menu", imports: [CommonModule, DropdownItemComponent, DividerComponent], standalone: true, host: { "[attr.data-menu-id]": "menuId()" }, template: "<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
|
|
1385
|
+
args: [{ selector: "rte-dropdown-menu", imports: [CommonModule, DropdownItemComponent, DividerComponent], standalone: true, host: { "[attr.data-menu-id]": "menuId()" }, template: "<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\n [item]=\"item\"\n [menuId]=\"menuId()\"\n (itemEvent)=\"handleItemEvent($event)\"\n (submenuRequest)=\"handleSubmenuRequest($event)\"\n />\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", styles: [":host{display:none;position:absolute}.rte-dropdown-menu{opacity:0;box-shadow:0 8px 16px 0 var(--elevation-shadow-key),0 0 2px 0 var(--elevation-shadow-ambient);background:linear-gradient(0deg,var(--elevation-surface-shadow-4) 0%,var(--elevation-surface-shadow-4) 100%);background-color:var(--background-default);position:absolute;top:0;left:0;display:flex;min-width:112px;max-width:280px;padding:8px 0;flex-direction:column;align-items:flex-start;gap:0px;border-radius:4px;transition:opacity .1s ease-in-out;pointer-events:auto;overflow-x:hidden;overflow-y:auto}.rte-dropdown-menu-header,.rte-dropdown-menu-content,.rte-dropdown-menu-footer{width:100%}.rte-dropdown-menu.open{opacity:1}.rte-dropdown-menu .rte-dropdown-items{width:100%;padding:0;margin:0}.rte-dropdown-menu .rte-dropdown-items li{list-style:none}\n"] }]
|
|
1135
1386
|
}], propDecorators: { onKeyDown: [{
|
|
1136
1387
|
type: HostListener,
|
|
1137
1388
|
args: ["keydown", ["$event"]]
|
|
@@ -1195,45 +1446,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
1195
1446
|
args: ["closeDropdown", ["$event"]]
|
|
1196
1447
|
}] } });
|
|
1197
1448
|
|
|
1198
|
-
const focusNextElement = (dropdown) => {
|
|
1199
|
-
const menuItems = getDropdownMenuItems(dropdown);
|
|
1200
|
-
const activeElementIndex = menuItems.indexOf(document.activeElement);
|
|
1201
|
-
if (activeElementIndex < menuItems.length - 1) {
|
|
1202
|
-
const nextElement = menuItems[activeElementIndex + 1];
|
|
1203
|
-
nextElement.focus();
|
|
1204
|
-
}
|
|
1205
|
-
else {
|
|
1206
|
-
menuItems[0]?.focus();
|
|
1207
|
-
}
|
|
1208
|
-
};
|
|
1209
|
-
const focusPreviousElement = (dropdown) => {
|
|
1210
|
-
const menuItems = getDropdownMenuItems(dropdown);
|
|
1211
|
-
const activeElementIndex = menuItems.indexOf(document.activeElement);
|
|
1212
|
-
if (activeElementIndex > 0) {
|
|
1213
|
-
const previousElement = menuItems[activeElementIndex - 1];
|
|
1214
|
-
previousElement.focus();
|
|
1215
|
-
}
|
|
1216
|
-
else {
|
|
1217
|
-
menuItems.at(-1)?.focus();
|
|
1218
|
-
}
|
|
1219
|
-
};
|
|
1220
|
-
const focusDropdownFirstElement = (dropdownId) => {
|
|
1221
|
-
const childDropdown = document.querySelector(`[data-menu-id='${dropdownId}']`);
|
|
1222
|
-
if (childDropdown) {
|
|
1223
|
-
const allChildDropdownElement = childDropdown?.querySelectorAll('li[role="menuitem"]');
|
|
1224
|
-
allChildDropdownElement[0]?.focus();
|
|
1225
|
-
}
|
|
1226
|
-
};
|
|
1227
|
-
const focusParentDropdownFirstElement = (dropdownId) => {
|
|
1228
|
-
const parentDropdownId = DropdownManager.getParentDropdownId(dropdownId);
|
|
1229
|
-
const parentDropdown = document.querySelector(`[data-menu-id='${parentDropdownId}']`);
|
|
1230
|
-
parentDropdown?.querySelector("[data-active=true]")?.focus();
|
|
1231
|
-
};
|
|
1232
|
-
const getDropdownMenuItems = (dropdown) => {
|
|
1233
|
-
const allDropdownElement = dropdown?.querySelectorAll('li[role="menuitem"]');
|
|
1234
|
-
return allDropdownElement ? Array.from(allDropdownElement) : [];
|
|
1235
|
-
};
|
|
1236
|
-
|
|
1237
1449
|
class DropdownDirective {
|
|
1238
1450
|
static { this.idCounter = 0; }
|
|
1239
1451
|
constructor() {
|
|
@@ -1247,6 +1459,7 @@ class DropdownDirective {
|
|
|
1247
1459
|
this.rteDropdownAutofocus = input(true);
|
|
1248
1460
|
this.rteDropdownAutoOpen = input(true);
|
|
1249
1461
|
this.rteDropdownWidth = input(null);
|
|
1462
|
+
this.rteCloseOnItemClick = input(true);
|
|
1250
1463
|
this.menuEvent = output();
|
|
1251
1464
|
this.dropdownId = `dropdown_${++DropdownDirective.idCounter}`;
|
|
1252
1465
|
this.overlayService = inject(OverlayService);
|
|
@@ -1258,6 +1471,7 @@ class DropdownDirective {
|
|
|
1258
1471
|
this.cdr = inject(ChangeDetectorRef);
|
|
1259
1472
|
this.clickedOutside = output();
|
|
1260
1473
|
this.closedDropdown = output();
|
|
1474
|
+
this.menuChangeEvent = output();
|
|
1261
1475
|
this.isActive = signal(false);
|
|
1262
1476
|
this.menuInputs = computed(() => {
|
|
1263
1477
|
const menu = this.menu();
|
|
@@ -1272,20 +1486,25 @@ class DropdownDirective {
|
|
|
1272
1486
|
};
|
|
1273
1487
|
});
|
|
1274
1488
|
this.dropdownMenuRef = null;
|
|
1489
|
+
this.itemEventSubscription = null;
|
|
1275
1490
|
this.handleClickOutside = (event) => {
|
|
1276
1491
|
const target = event.target;
|
|
1277
|
-
const isMenuItemClick = target.closest(".rte-dropdown-item") !== null;
|
|
1278
|
-
if (isMenuItemClick) {
|
|
1279
|
-
return;
|
|
1280
|
-
}
|
|
1281
1492
|
const clickedInTrigger = this.hostElement.contains(target);
|
|
1282
|
-
const
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1493
|
+
const dropdownMenuElement = this.dropdownMenuRef?.location.nativeElement;
|
|
1494
|
+
const clickedInThisMenu = dropdownMenuElement ? dropdownMenuElement.contains(target) : false;
|
|
1495
|
+
if (clickedInTrigger || clickedInThisMenu) {
|
|
1496
|
+
return;
|
|
1286
1497
|
}
|
|
1498
|
+
this.closeDropdown();
|
|
1499
|
+
this.clickedOutside.emit();
|
|
1287
1500
|
};
|
|
1288
1501
|
this.hostElement = this.elementRef.nativeElement;
|
|
1502
|
+
this.destroyRef.onDestroy(() => {
|
|
1503
|
+
this.unsubscribeItemEvent();
|
|
1504
|
+
this.removeClickOutsideListener();
|
|
1505
|
+
this.dropdownMenuRef?.destroy();
|
|
1506
|
+
this.dropdownMenuRef = null;
|
|
1507
|
+
});
|
|
1289
1508
|
effect(() => {
|
|
1290
1509
|
const isOpen = this.rteDropdownIsOpen();
|
|
1291
1510
|
if (isOpen) {
|
|
@@ -1316,9 +1535,12 @@ class DropdownDirective {
|
|
|
1316
1535
|
}
|
|
1317
1536
|
}
|
|
1318
1537
|
onTriggerKeyEvent(event) {
|
|
1319
|
-
|
|
1538
|
+
const shouldOpen = event.key === SPACE_KEY ||
|
|
1320
1539
|
event.key === ENTER_KEY ||
|
|
1321
|
-
(event.key === ARROW_DOWN_KEY && this.trigger()?.rteDropdownTriggerActivateWithArrowDown())
|
|
1540
|
+
(event.key === ARROW_DOWN_KEY && this.trigger()?.rteDropdownTriggerActivateWithArrowDown());
|
|
1541
|
+
if (shouldOpen) {
|
|
1542
|
+
event.preventDefault();
|
|
1543
|
+
event.stopPropagation();
|
|
1322
1544
|
this.showDropdownMenu();
|
|
1323
1545
|
if (this.rteDropdownAutofocus()) {
|
|
1324
1546
|
waitForNextFrame(() => focusDropdownFirstElement(this.dropdownId));
|
|
@@ -1327,31 +1549,32 @@ class DropdownDirective {
|
|
|
1327
1549
|
}
|
|
1328
1550
|
onMenuEvent(event) {
|
|
1329
1551
|
this.menuEvent.emit(event);
|
|
1330
|
-
this.
|
|
1331
|
-
|
|
1552
|
+
if (!event.item?.children?.length && this.rteCloseOnItemClick()) {
|
|
1553
|
+
this.isActive.set(false);
|
|
1554
|
+
this.dropdownService.closeAllMenus();
|
|
1555
|
+
}
|
|
1556
|
+
}
|
|
1557
|
+
onMenuChangeEvent(event) {
|
|
1558
|
+
this.menuEvent.emit(event);
|
|
1332
1559
|
}
|
|
1333
1560
|
ngAfterContentInit() {
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
this.showDropdownMenu();
|
|
1346
|
-
});
|
|
1347
|
-
this.trigger()?.dropdownTriggerCloseDropdown.subscribe(() => {
|
|
1348
|
-
this.closeDropdown();
|
|
1349
|
-
});
|
|
1350
|
-
}
|
|
1561
|
+
const trigger = this.trigger();
|
|
1562
|
+
if (!trigger)
|
|
1563
|
+
return;
|
|
1564
|
+
const triggerSubscriptions = [
|
|
1565
|
+
trigger.dropdownTriggered.subscribe(() => this.onTrigger()),
|
|
1566
|
+
trigger.dropdownKeyDown.subscribe((event) => this.onTriggerKeyEvent(event)),
|
|
1567
|
+
trigger.dropdownTriggerClearContent.subscribe(() => this.closeDropdown()),
|
|
1568
|
+
trigger.dropdownTriggerOpenDropdown.subscribe(() => this.showDropdownMenu()),
|
|
1569
|
+
trigger.dropdownTriggerCloseDropdown.subscribe(() => this.closeDropdown()),
|
|
1570
|
+
];
|
|
1571
|
+
this.destroyRef.onDestroy(() => triggerSubscriptions.forEach((subscription) => subscription.unsubscribe()));
|
|
1351
1572
|
}
|
|
1352
1573
|
showDropdownMenu() {
|
|
1574
|
+
this.unsubscribeItemEvent();
|
|
1353
1575
|
if (this.dropdownMenuRef) {
|
|
1354
1576
|
this.dropdownMenuRef.destroy();
|
|
1577
|
+
this.dropdownMenuRef = null;
|
|
1355
1578
|
}
|
|
1356
1579
|
this.dropdownMenuRef = this.overlayService.create(DropdownMenuComponent, this.viewContainerRef);
|
|
1357
1580
|
const menuId = this.rteDropdownId() || this.dropdownId;
|
|
@@ -1360,12 +1583,11 @@ class DropdownDirective {
|
|
|
1360
1583
|
this.assignInputs();
|
|
1361
1584
|
this.positionDropdownMenu(this.rteDropdownPosition());
|
|
1362
1585
|
this.addClickOutsideListener();
|
|
1363
|
-
this.dropdownMenuRef.instance.itemEvent.subscribe((event) =>
|
|
1364
|
-
this.onMenuEvent(event);
|
|
1365
|
-
});
|
|
1586
|
+
this.itemEventSubscription = this.dropdownMenuRef.instance.itemEvent.subscribe((event) => this.onMenuEvent(event));
|
|
1366
1587
|
const dropdownStateSubscription = this.dropdownService.state$.subscribe((state) => {
|
|
1367
1588
|
if (state === null) {
|
|
1368
1589
|
if (this.dropdownMenuRef) {
|
|
1590
|
+
this.unsubscribeItemEvent();
|
|
1369
1591
|
this.dropdownMenuRef.destroy();
|
|
1370
1592
|
this.dropdownMenuRef = null;
|
|
1371
1593
|
this.removeClickOutsideListener();
|
|
@@ -1411,7 +1633,13 @@ class DropdownDirective {
|
|
|
1411
1633
|
if (triggerElement) {
|
|
1412
1634
|
this.renderer.setStyle(dropdownMenuElement, "display", "block");
|
|
1413
1635
|
this.cdr.detectChanges();
|
|
1414
|
-
const computedPosition = position === "auto"
|
|
1636
|
+
const computedPosition = position === "auto"
|
|
1637
|
+
? getAutoPlacementDropdown({
|
|
1638
|
+
hostElement: triggerElement,
|
|
1639
|
+
castedElement: dropdownMenuElement,
|
|
1640
|
+
defaultPosition: "bottom",
|
|
1641
|
+
})
|
|
1642
|
+
: position;
|
|
1415
1643
|
const autoAlignment = this.rteDropdownAlignment() ?? getAutoAlignment(triggerElement, dropdownMenuElement, computedPosition);
|
|
1416
1644
|
const computedCoordinates = getCoordinates$1(computedPosition, triggerElement, dropdownMenuElement.children[0], this.rteDropdownOffset(), autoAlignment);
|
|
1417
1645
|
this.renderer.setStyle(dropdownMenuElement, "top", `${computedCoordinates.top}px`);
|
|
@@ -1420,11 +1648,9 @@ class DropdownDirective {
|
|
|
1420
1648
|
}
|
|
1421
1649
|
}
|
|
1422
1650
|
}
|
|
1423
|
-
|
|
1424
|
-
this.
|
|
1425
|
-
|
|
1426
|
-
this.dropdownMenuRef.destroy();
|
|
1427
|
-
}
|
|
1651
|
+
unsubscribeItemEvent() {
|
|
1652
|
+
this.itemEventSubscription?.unsubscribe();
|
|
1653
|
+
this.itemEventSubscription = null;
|
|
1428
1654
|
}
|
|
1429
1655
|
addClickOutsideListener() {
|
|
1430
1656
|
document.addEventListener("mousedown", this.handleClickOutside);
|
|
@@ -1440,7 +1666,7 @@ class DropdownDirective {
|
|
|
1440
1666
|
}, DROPDOWN_ANIMATION_DURATION);
|
|
1441
1667
|
}
|
|
1442
1668
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1443
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.14", type: DropdownDirective, isStandalone: true, selector: "[rteDropdown]", inputs: { rteDropdownId: { classPropertyName: "rteDropdownId", publicName: "rteDropdownId", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownPosition: { classPropertyName: "rteDropdownPosition", publicName: "rteDropdownPosition", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownAlignment: { classPropertyName: "rteDropdownAlignment", publicName: "rteDropdownAlignment", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownIsOpen: { classPropertyName: "rteDropdownIsOpen", publicName: "rteDropdownIsOpen", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownOffset: { classPropertyName: "rteDropdownOffset", publicName: "rteDropdownOffset", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownAutofocus: { classPropertyName: "rteDropdownAutofocus", publicName: "rteDropdownAutofocus", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownAutoOpen: { classPropertyName: "rteDropdownAutoOpen", publicName: "rteDropdownAutoOpen", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownWidth: { classPropertyName: "rteDropdownWidth", publicName: "rteDropdownWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { menuEvent: "menuEvent", clickedOutside: "clickedOutside", closedDropdown: "closedDropdown" }, host: { properties: { "class.dropdown": "true", "attr.data-dropdown-id": "dropdownId" } }, queries: [{ propertyName: "trigger", first: true, predicate: DropdownTriggerDirective, descendants: true, isSignal: true }, { propertyName: "menu", first: true, predicate: DropdownMenuComponent, descendants: true, isSignal: true }], ngImport: i0 }); }
|
|
1669
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.14", type: DropdownDirective, isStandalone: true, selector: "[rteDropdown]", inputs: { rteDropdownId: { classPropertyName: "rteDropdownId", publicName: "rteDropdownId", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownPosition: { classPropertyName: "rteDropdownPosition", publicName: "rteDropdownPosition", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownAlignment: { classPropertyName: "rteDropdownAlignment", publicName: "rteDropdownAlignment", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownIsOpen: { classPropertyName: "rteDropdownIsOpen", publicName: "rteDropdownIsOpen", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownOffset: { classPropertyName: "rteDropdownOffset", publicName: "rteDropdownOffset", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownAutofocus: { classPropertyName: "rteDropdownAutofocus", publicName: "rteDropdownAutofocus", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownAutoOpen: { classPropertyName: "rteDropdownAutoOpen", publicName: "rteDropdownAutoOpen", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownWidth: { classPropertyName: "rteDropdownWidth", publicName: "rteDropdownWidth", isSignal: true, isRequired: false, transformFunction: null }, rteCloseOnItemClick: { classPropertyName: "rteCloseOnItemClick", publicName: "rteCloseOnItemClick", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { menuEvent: "menuEvent", clickedOutside: "clickedOutside", closedDropdown: "closedDropdown", menuChangeEvent: "menuChangeEvent" }, host: { properties: { "class.dropdown": "true", "attr.data-dropdown-id": "dropdownId" } }, queries: [{ propertyName: "trigger", first: true, predicate: DropdownTriggerDirective, descendants: true, isSignal: true }, { propertyName: "menu", first: true, predicate: DropdownMenuComponent, descendants: true, isSignal: true }], ngImport: i0 }); }
|
|
1444
1670
|
}
|
|
1445
1671
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownDirective, decorators: [{
|
|
1446
1672
|
type: Directive,
|
|
@@ -1492,8 +1718,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
1492
1718
|
}]
|
|
1493
1719
|
}] });
|
|
1494
1720
|
|
|
1495
|
-
// Main dropdown module - import this to get everything
|
|
1496
|
-
|
|
1497
1721
|
class SplitButtonComponent {
|
|
1498
1722
|
constructor() {
|
|
1499
1723
|
this.appearance = input("primary");
|
|
@@ -1556,7 +1780,7 @@ class SplitButtonComponent {
|
|
|
1556
1780
|
}
|
|
1557
1781
|
}
|
|
1558
1782
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SplitButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1559
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SplitButtonComponent, isStandalone: true, selector: "rte-split-button", inputs: { appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, compactSpacing: { classPropertyName: "compactSpacing", publicName: "compactSpacing", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelRight: { classPropertyName: "ariaLabelRight", publicName: "ariaLabelRight", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, badgeType: { classPropertyName: "badgeType", publicName: "badgeType", isSignal: true, isRequired: false, transformFunction: null }, showBadge: { classPropertyName: "showBadge", publicName: "showBadge", isSignal: true, isRequired: false, transformFunction: null }, badgeContent: { classPropertyName: "badgeContent", publicName: "badgeContent", isSignal: true, isRequired: false, transformFunction: null }, badgeCount: { classPropertyName: "badgeCount", publicName: "badgeCount", isSignal: true, isRequired: false, transformFunction: null }, badgeIcon: { classPropertyName: "badgeIcon", publicName: "badgeIcon", isSignal: true, isRequired: false, transformFunction: null }, badgeSize: { classPropertyName: "badgeSize", publicName: "badgeSize", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<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", styles: [".split-button-container{display:inline-flex;padding:0;align-items:center;gap:0px;align-self:stretch}.split-button-container.size-s{height:24px}.split-button-container.size-s.compact-spacing{height:20px}.split-button-container.size-m{height:32px}.split-button-container.size-m.compact-spacing{height:24px}.split-button-container.size-l{height:40px}.split-button-container.size-l.compact-spacing{height:28px}.split-button-container .split-button-left{display:flex;border:none;padding:4px 12px;align-items:center;gap:0px;align-self:stretch;border-radius:4px 0 0 4px;border-color:var(--border-brand-default);background-color:var(--background-brand-default);color:var(--content-primary-inverse)}.split-button-container .split-button-left.size-s{padding:0 8px}.split-button-container .split-button-left.size-l{padding:8px 12px}.split-button-container .split-button-left .split-button-label{margin:0}.split-button-container .split-button-left .split-button-label.size-s{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:14px;line-height:20px;letter-spacing:-.5px}.split-button-container .split-button-left .split-button-label.size-m{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:16px;line-height:24px;letter-spacing:-.5px}.split-button-container .split-button-left .split-button-label.size-l{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px}.split-button-container .split-button-left:hover{cursor:pointer;background-color:var(--background-brand-hover)}.split-button-container .split-button-left:active{background-color:var(--background-brand-pressed)}.split-button-container .split-button-left:disabled{background-color:var(--background-disabled);color:var(--content-disabled);border-top:1px solid var(--border-disabled);border-bottom:1px solid var(--border-disabled);border-left:1px solid var(--border-disabled);cursor:not-allowed}.split-button-container .split-button-left:focus-visible{outline:none;position:relative;z-index:1}.split-button-container .split-button-left:focus-visible:after{content:\"\";position:absolute;inset:-8px -1px -8px -8px;border:1px solid var(--border-brand-focused);pointer-events:none;border-radius:4px;z-index:2}.split-button-container .split-button-divider{width:1px;height:100%;background-color:var(--content-primary-inverse)}.split-button-container .split-button-divider.disabled{background-color:var(--border-disabled)}.split-button-container .split-button-right{display:flex;border:none;padding:4px 12px;align-items:center;justify-content:center;align-self:stretch;width:34px;height:100%;border-radius:0 4px 4px 0;border-color:var(--border-brand-default);background-color:var(--background-brand-default);color:var(--content-primary-inverse)}.split-button-container .split-button-right.size-s{width:24px;padding:2px 8px}.split-button-container .split-button-right.size-l{width:44px;padding:6px 16px}.split-button-container .split-button-right:hover{cursor:pointer;background-color:var(--background-brand-hover)}.split-button-container .split-button-right:active,.split-button-container .split-button-right[data-expanded=true]{background-color:var(--background-brand-pressed)}.split-button-container .split-button-right:disabled{background-color:var(--background-disabled);color:var(--content-disabled);border-top:1px solid var(--border-disabled);border-bottom:1px solid var(--border-disabled);border-right:1px solid var(--border-disabled);cursor:not-allowed}.split-button-container .split-button-right:focus-visible{outline:none;position:relative;z-index:1}.split-button-container .split-button-right:focus-visible:after{content:\"\";position:absolute;inset:-8px -8px -8px -1px;border:1px solid var(--border-brand-focused);pointer-events:none;border-radius:4px;z-index:2}.split-button-container .split-button-right .split-button-right-icon-container{display:flex;pointer-events:none}.split-button-container .split-button-dropdown{position:absolute}.split-button-container .split-button-dropdown.position-bottom-start{top:100%;left:0}.split-button-container .split-button-dropdown.position-bottom-end{top:100%;right:0}.split-button-container .split-button-dropdown.position-top-start{bottom:100%;left:0}.split-button-container .split-button-dropdown.position-top-end{bottom:100%;right:0}.split-button-container.secondary .split-button-left{border-top:1px solid var(--border-brand-default);border-bottom:1px solid var(--border-brand-default);border-left:1px solid var(--border-brand-default);background-color:var(--background-default);color:var(--content-brand-default)}.split-button-container.secondary .split-button-left:hover{cursor:pointer;background-color:var(--background-brand-inverse-hover)}.split-button-container.secondary .split-button-left:active{background-color:var(--background-brand-inverse-pressed)}.split-button-container.secondary .split-button-left:disabled{background-color:var(--background-disabled);color:var(--content-disabled);border-top:1px solid var(--border-disabled);border-bottom:1px solid var(--border-disabled);border-left:1px solid var(--border-disabled);cursor:not-allowed}.split-button-container.secondary .split-button-divider{background-color:var(--border-brand-default)}.split-button-container.secondary .split-button-right{border-top:1px solid var(--border-brand-default);border-bottom:1px solid var(--border-brand-default);border-right:1px solid var(--border-brand-default);background-color:var(--background-default);color:var(--content-brand-default)}.split-button-container.secondary .split-button-right:hover{cursor:pointer;background-color:var(--background-brand-inverse-hover)}.split-button-container.secondary .split-button-right:active{background-color:var(--background-brand-inverse-pressed)}.split-button-container.secondary .split-button-right:disabled{background-color:var(--background-disabled);color:var(--content-disabled);border-top:1px solid var(--border-disabled);border-bottom:1px solid var(--border-disabled);border-right:1px solid var(--border-disabled);cursor:not-allowed}.animation-slide-from-top{animation:slide-from-top .2s ease-in-out}@keyframes slide-from-top{0%{transform:translateY(-10px);pointer-events:none;opacity:0}to{transform:translateY(0);opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: DropdownDirective, selector: "[rteDropdown]", inputs: ["rteDropdownId", "rteDropdownPosition", "rteDropdownAlignment", "rteDropdownIsOpen", "rteDropdownOffset", "rteDropdownAutofocus", "rteDropdownAutoOpen", "rteDropdownWidth"], outputs: ["menuEvent", "clickedOutside", "closedDropdown"] }, { kind: "directive", type: DropdownTriggerDirective, selector: "[rteDropdownTrigger]", inputs: ["rteDropdownTriggerActivateWithArrowDown"], outputs: ["dropdownKeyDown", "dropdownTriggered", "dropdownTriggerFocus", "dropdownTriggerClearContent", "dropdownTriggerOpenDropdown", "dropdownTriggerCloseDropdown"] }, { kind: "component", type: DropdownMenuComponent, selector: "rte-dropdown-menu", inputs: ["items", "menuId", "isOpen", "width", "headerTemplate", "footerTemplate"], outputs: ["itemEvent", "closingMenu"] }, { kind: "directive", type: BadgeDirective, selector: "[rteBadge]", inputs: ["rteBadgeType", "rteBadgeSize", "rteBadgeContent", "rteBadgeCount", "rteBadgeIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1783
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SplitButtonComponent, isStandalone: true, selector: "rte-split-button", inputs: { appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, compactSpacing: { classPropertyName: "compactSpacing", publicName: "compactSpacing", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelRight: { classPropertyName: "ariaLabelRight", publicName: "ariaLabelRight", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, badgeType: { classPropertyName: "badgeType", publicName: "badgeType", isSignal: true, isRequired: false, transformFunction: null }, showBadge: { classPropertyName: "showBadge", publicName: "showBadge", isSignal: true, isRequired: false, transformFunction: null }, badgeContent: { classPropertyName: "badgeContent", publicName: "badgeContent", isSignal: true, isRequired: false, transformFunction: null }, badgeCount: { classPropertyName: "badgeCount", publicName: "badgeCount", isSignal: true, isRequired: false, transformFunction: null }, badgeIcon: { classPropertyName: "badgeIcon", publicName: "badgeIcon", isSignal: true, isRequired: false, transformFunction: null }, badgeSize: { classPropertyName: "badgeSize", publicName: "badgeSize", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<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", styles: [".split-button-container{display:inline-flex;padding:0;align-items:center;gap:0px;align-self:stretch}.split-button-container.size-s{height:24px}.split-button-container.size-s.compact-spacing{height:20px}.split-button-container.size-m{height:32px}.split-button-container.size-m.compact-spacing{height:24px}.split-button-container.size-l{height:40px}.split-button-container.size-l.compact-spacing{height:28px}.split-button-container .split-button-left{display:flex;border:none;padding:4px 12px;align-items:center;gap:0px;align-self:stretch;border-radius:4px 0 0 4px;border-color:var(--border-brand-default);background-color:var(--background-brand-default);color:var(--content-primary-inverse)}.split-button-container .split-button-left.size-s{padding:0 8px}.split-button-container .split-button-left.size-l{padding:8px 12px}.split-button-container .split-button-left .split-button-label{margin:0}.split-button-container .split-button-left .split-button-label.size-s{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:14px;line-height:20px;letter-spacing:-.5px}.split-button-container .split-button-left .split-button-label.size-m{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:16px;line-height:24px;letter-spacing:-.5px}.split-button-container .split-button-left .split-button-label.size-l{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px}.split-button-container .split-button-left:hover{cursor:pointer;background-color:var(--background-brand-hover)}.split-button-container .split-button-left:active{background-color:var(--background-brand-pressed)}.split-button-container .split-button-left:disabled{background-color:var(--background-disabled);color:var(--content-disabled);border-top:1px solid var(--border-disabled);border-bottom:1px solid var(--border-disabled);border-left:1px solid var(--border-disabled);cursor:not-allowed}.split-button-container .split-button-left:focus-visible{outline:none;position:relative;z-index:1}.split-button-container .split-button-left:focus-visible:after{content:\"\";position:absolute;inset:-8px -1px -8px -8px;border:1px solid var(--border-brand-focused);pointer-events:none;border-radius:4px;z-index:2}.split-button-container .split-button-divider{width:1px;height:100%;background-color:var(--content-primary-inverse)}.split-button-container .split-button-divider.disabled{background-color:var(--border-disabled)}.split-button-container .split-button-right{display:flex;border:none;padding:4px 12px;align-items:center;justify-content:center;align-self:stretch;width:34px;height:100%;border-radius:0 4px 4px 0;border-color:var(--border-brand-default);background-color:var(--background-brand-default);color:var(--content-primary-inverse)}.split-button-container .split-button-right.size-s{width:24px;padding:2px 8px}.split-button-container .split-button-right.size-l{width:44px;padding:6px 16px}.split-button-container .split-button-right:hover{cursor:pointer;background-color:var(--background-brand-hover)}.split-button-container .split-button-right:active,.split-button-container .split-button-right[data-expanded=true]{background-color:var(--background-brand-pressed)}.split-button-container .split-button-right:disabled{background-color:var(--background-disabled);color:var(--content-disabled);border-top:1px solid var(--border-disabled);border-bottom:1px solid var(--border-disabled);border-right:1px solid var(--border-disabled);cursor:not-allowed}.split-button-container .split-button-right:focus-visible{outline:none;position:relative;z-index:1}.split-button-container .split-button-right:focus-visible:after{content:\"\";position:absolute;inset:-8px -8px -8px -1px;border:1px solid var(--border-brand-focused);pointer-events:none;border-radius:4px;z-index:2}.split-button-container .split-button-right .split-button-right-icon-container{display:flex;pointer-events:none}.split-button-container .split-button-dropdown{position:absolute}.split-button-container .split-button-dropdown.position-bottom-start{top:100%;left:0}.split-button-container .split-button-dropdown.position-bottom-end{top:100%;right:0}.split-button-container .split-button-dropdown.position-top-start{bottom:100%;left:0}.split-button-container .split-button-dropdown.position-top-end{bottom:100%;right:0}.split-button-container.secondary .split-button-left{border-top:1px solid var(--border-brand-default);border-bottom:1px solid var(--border-brand-default);border-left:1px solid var(--border-brand-default);background-color:var(--background-default);color:var(--content-brand-default)}.split-button-container.secondary .split-button-left:hover{cursor:pointer;background-color:var(--background-brand-inverse-hover)}.split-button-container.secondary .split-button-left:active{background-color:var(--background-brand-inverse-pressed)}.split-button-container.secondary .split-button-left:disabled{background-color:var(--background-disabled);color:var(--content-disabled);border-top:1px solid var(--border-disabled);border-bottom:1px solid var(--border-disabled);border-left:1px solid var(--border-disabled);cursor:not-allowed}.split-button-container.secondary .split-button-divider{background-color:var(--border-brand-default)}.split-button-container.secondary .split-button-right{border-top:1px solid var(--border-brand-default);border-bottom:1px solid var(--border-brand-default);border-right:1px solid var(--border-brand-default);background-color:var(--background-default);color:var(--content-brand-default)}.split-button-container.secondary .split-button-right:hover{cursor:pointer;background-color:var(--background-brand-inverse-hover)}.split-button-container.secondary .split-button-right:active{background-color:var(--background-brand-inverse-pressed)}.split-button-container.secondary .split-button-right:disabled{background-color:var(--background-disabled);color:var(--content-disabled);border-top:1px solid var(--border-disabled);border-bottom:1px solid var(--border-disabled);border-right:1px solid var(--border-disabled);cursor:not-allowed}.animation-slide-from-top{animation:slide-from-top .2s ease-in-out}@keyframes slide-from-top{0%{transform:translateY(-10px);pointer-events:none;opacity:0}to{transform:translateY(0);opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: DropdownDirective, selector: "[rteDropdown]", inputs: ["rteDropdownId", "rteDropdownPosition", "rteDropdownAlignment", "rteDropdownIsOpen", "rteDropdownOffset", "rteDropdownAutofocus", "rteDropdownAutoOpen", "rteDropdownWidth", "rteCloseOnItemClick"], outputs: ["menuEvent", "clickedOutside", "closedDropdown", "menuChangeEvent"] }, { kind: "directive", type: DropdownTriggerDirective, selector: "[rteDropdownTrigger]", inputs: ["rteDropdownTriggerActivateWithArrowDown"], outputs: ["dropdownKeyDown", "dropdownTriggered", "dropdownTriggerFocus", "dropdownTriggerClearContent", "dropdownTriggerOpenDropdown", "dropdownTriggerCloseDropdown"] }, { kind: "component", type: DropdownMenuComponent, selector: "rte-dropdown-menu", inputs: ["items", "menuId", "isOpen", "width", "headerTemplate", "footerTemplate"], outputs: ["itemEvent", "closingMenu"] }, { kind: "directive", type: BadgeDirective, selector: "[rteBadge]", inputs: ["rteBadgeType", "rteBadgeSize", "rteBadgeContent", "rteBadgeCount", "rteBadgeIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1560
1784
|
}
|
|
1561
1785
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SplitButtonComponent, decorators: [{
|
|
1562
1786
|
type: Component,
|
|
@@ -1777,6 +2001,7 @@ class ChipComponent {
|
|
|
1777
2001
|
this.close = output();
|
|
1778
2002
|
this.isCheckable = computed(() => this.type() === "single" || this.type() === "multi");
|
|
1779
2003
|
this.role = computed(() => CHIP_TYPE_TO_ARIA_ROLE_MAP[this.type()] || null);
|
|
2004
|
+
this.isFocusable = computed(() => this.type() !== "input");
|
|
1780
2005
|
}
|
|
1781
2006
|
onClick(event) {
|
|
1782
2007
|
event.stopPropagation();
|
|
@@ -1815,11 +2040,11 @@ class ChipComponent {
|
|
|
1815
2040
|
}
|
|
1816
2041
|
}
|
|
1817
2042
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1818
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: ChipComponent, isStandalone: true, selector: "rte-chip", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, compactSpacing: { classPropertyName: "compactSpacing", publicName: "compactSpacing", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click: "click", close: "close" }, ngImport: i0, template: "<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", styles: [".chip{overflow:hidden;color:var(--content-brand-default);text-overflow:ellipsis;display:inline-flex;padding:4px 12px;justify-content:center;align-items:center;gap:0px;border-radius:999px;background:var(--background-brand-unselected-default);transition:background-color .2s ease-in-out,color .2s ease-in-out}.chip:hover{cursor:pointer;color:var(--content-brand-hover);background:var(--background-brand-unselected-hover)}.chip:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px}.chip[data-disabled=true]{cursor:default;color:var(--content-disabled);background:var(--background-disabled);outline:none}.chip[data-selected=true]{color:var(--content-primary-inverse);background:var(--background-brand-selected-default)}.chip[data-selected=true]:hover{background:var(--background-brand-selected-hover)}.chip[data-selected=true][data-disabled=true]{cursor:default;color:var(--content-disabled);background:var(--background-disabled)}.chip[data-compact-spacing=true]{padding:0 12px}.chip[data-type=input]{padding:0 4px;pointer-events:none}.chip-label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:16px;line-height:24px;letter-spacing:-.5px;padding:0 6px}.chip-label[data-type=input]{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;padding:0 8px}.chip-icon-container{position:relative;width:16px;height:16px}.chip-icon{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease-in-out,transform .2s ease-in-out;pointer-events:none}.chip-icon--visible{opacity:1;pointer-events:auto}.chip-close-button{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--content-brand-default);border-radius:999px;width:16px;height:16px;pointer-events:auto;transition:background-color .2s ease-in-out}.chip-close-button:disabled{cursor:default;color:var(--content-disabled);background:var(--background-disabled);outline:none}.chip-close-button:hover:not(:disabled){background:var(--background-brand-hover);color:var(--background-brand-unselected-hover)}.chip-close-button:focus-visible{outline:1px solid var(--border-brand-focused)}.chip-close-button--icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2043
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: ChipComponent, isStandalone: true, selector: "rte-chip", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, compactSpacing: { classPropertyName: "compactSpacing", publicName: "compactSpacing", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click: "click", close: "close" }, ngImport: i0, template: "<span\n class=\"chip\"\n [tabindex]=\"isFocusable() ? 0 : -1\"\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", styles: [".chip{overflow:hidden;color:var(--content-brand-default);text-overflow:ellipsis;display:inline-flex;padding:4px 12px;justify-content:center;align-items:center;gap:0px;border-radius:999px;background:var(--background-brand-unselected-default);transition:background-color .2s ease-in-out,color .2s ease-in-out}.chip:hover{cursor:pointer;color:var(--content-brand-hover);background:var(--background-brand-unselected-hover)}.chip:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px}.chip[data-disabled=true]{cursor:default;color:var(--content-disabled);background:var(--background-disabled);outline:none}.chip[data-selected=true]{color:var(--content-primary-inverse);background:var(--background-brand-selected-default)}.chip[data-selected=true]:hover{background:var(--background-brand-selected-hover)}.chip[data-selected=true][data-disabled=true]{cursor:default;color:var(--content-disabled);background:var(--background-disabled)}.chip[data-compact-spacing=true]{padding:0 12px}.chip[data-type=input]{padding:0 4px;pointer-events:none}.chip-label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:16px;line-height:24px;letter-spacing:-.5px;padding:0 6px}.chip-label[data-type=input]{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;padding:0 8px}.chip-icon-container{position:relative;width:16px;height:16px}.chip-icon{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease-in-out,transform .2s ease-in-out;pointer-events:none}.chip-icon--visible{opacity:1;pointer-events:auto}.chip-close-button{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--content-brand-default);border-radius:999px;width:16px;height:16px;pointer-events:auto;transition:background-color .2s ease-in-out}.chip-close-button:disabled{cursor:default;color:var(--content-disabled);background:var(--background-disabled);outline:none}.chip-close-button:hover:not(:disabled){background:var(--background-brand-hover);color:var(--background-brand-unselected-hover)}.chip-close-button:focus-visible{outline:1px solid var(--border-brand-focused)}.chip-close-button--icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1819
2044
|
}
|
|
1820
2045
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChipComponent, decorators: [{
|
|
1821
2046
|
type: Component,
|
|
1822
|
-
args: [{ selector: "rte-chip", imports: [CommonModule, IconComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<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", styles: [".chip{overflow:hidden;color:var(--content-brand-default);text-overflow:ellipsis;display:inline-flex;padding:4px 12px;justify-content:center;align-items:center;gap:0px;border-radius:999px;background:var(--background-brand-unselected-default);transition:background-color .2s ease-in-out,color .2s ease-in-out}.chip:hover{cursor:pointer;color:var(--content-brand-hover);background:var(--background-brand-unselected-hover)}.chip:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px}.chip[data-disabled=true]{cursor:default;color:var(--content-disabled);background:var(--background-disabled);outline:none}.chip[data-selected=true]{color:var(--content-primary-inverse);background:var(--background-brand-selected-default)}.chip[data-selected=true]:hover{background:var(--background-brand-selected-hover)}.chip[data-selected=true][data-disabled=true]{cursor:default;color:var(--content-disabled);background:var(--background-disabled)}.chip[data-compact-spacing=true]{padding:0 12px}.chip[data-type=input]{padding:0 4px;pointer-events:none}.chip-label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:16px;line-height:24px;letter-spacing:-.5px;padding:0 6px}.chip-label[data-type=input]{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;padding:0 8px}.chip-icon-container{position:relative;width:16px;height:16px}.chip-icon{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease-in-out,transform .2s ease-in-out;pointer-events:none}.chip-icon--visible{opacity:1;pointer-events:auto}.chip-close-button{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--content-brand-default);border-radius:999px;width:16px;height:16px;pointer-events:auto;transition:background-color .2s ease-in-out}.chip-close-button:disabled{cursor:default;color:var(--content-disabled);background:var(--background-disabled);outline:none}.chip-close-button:hover:not(:disabled){background:var(--background-brand-hover);color:var(--background-brand-unselected-hover)}.chip-close-button:focus-visible{outline:1px solid var(--border-brand-focused)}.chip-close-button--icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center}\n"] }]
|
|
2047
|
+
args: [{ selector: "rte-chip", imports: [CommonModule, IconComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\n class=\"chip\"\n [tabindex]=\"isFocusable() ? 0 : -1\"\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", styles: [".chip{overflow:hidden;color:var(--content-brand-default);text-overflow:ellipsis;display:inline-flex;padding:4px 12px;justify-content:center;align-items:center;gap:0px;border-radius:999px;background:var(--background-brand-unselected-default);transition:background-color .2s ease-in-out,color .2s ease-in-out}.chip:hover{cursor:pointer;color:var(--content-brand-hover);background:var(--background-brand-unselected-hover)}.chip:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px}.chip[data-disabled=true]{cursor:default;color:var(--content-disabled);background:var(--background-disabled);outline:none}.chip[data-selected=true]{color:var(--content-primary-inverse);background:var(--background-brand-selected-default)}.chip[data-selected=true]:hover{background:var(--background-brand-selected-hover)}.chip[data-selected=true][data-disabled=true]{cursor:default;color:var(--content-disabled);background:var(--background-disabled)}.chip[data-compact-spacing=true]{padding:0 12px}.chip[data-type=input]{padding:0 4px;pointer-events:none}.chip-label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:16px;line-height:24px;letter-spacing:-.5px;padding:0 6px}.chip-label[data-type=input]{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;padding:0 8px}.chip-icon-container{position:relative;width:16px;height:16px}.chip-icon{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease-in-out,transform .2s ease-in-out;pointer-events:none}.chip-icon--visible{opacity:1;pointer-events:auto}.chip-close-button{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--content-brand-default);border-radius:999px;width:16px;height:16px;pointer-events:auto;transition:background-color .2s ease-in-out}.chip-close-button:disabled{cursor:default;color:var(--content-disabled);background:var(--background-disabled);outline:none}.chip-close-button:hover:not(:disabled){background:var(--background-brand-hover);color:var(--background-brand-unselected-hover)}.chip-close-button:focus-visible{outline:1px solid var(--border-brand-focused)}.chip-close-button--icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center}\n"] }]
|
|
1823
2048
|
}] });
|
|
1824
2049
|
|
|
1825
2050
|
class TextareaComponent {
|
|
@@ -1943,6 +2168,8 @@ class SegmentedControlComponent {
|
|
|
1943
2168
|
this.selectedSegment = input();
|
|
1944
2169
|
this.ariaLabel = input();
|
|
1945
2170
|
this.ariaLabelledBy = input();
|
|
2171
|
+
this.appearance = input("brand");
|
|
2172
|
+
this.compactSpacing = input(false);
|
|
1946
2173
|
this.segmentRefs = viewChildren("segment");
|
|
1947
2174
|
this.sliderLeft = signal(0);
|
|
1948
2175
|
this.sliderWidth = signal(0);
|
|
@@ -2050,11 +2277,11 @@ class SegmentedControlComponent {
|
|
|
2050
2277
|
}
|
|
2051
2278
|
}
|
|
2052
2279
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SegmentedControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2053
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: SegmentedControlComponent, isStandalone: true, selector: "rte-segmented-control", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, selectedSegment: { classPropertyName: "selectedSegment", publicName: "selectedSegment", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, viewQueries: [{ propertyName: "segmentRefs", predicate: ["segment"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div
|
|
2280
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: SegmentedControlComponent, isStandalone: true, selector: "rte-segmented-control", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, selectedSegment: { classPropertyName: "selectedSegment", publicName: "selectedSegment", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "ariaLabelledBy", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, compactSpacing: { classPropertyName: "compactSpacing", publicName: "compactSpacing", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, viewQueries: [{ propertyName: "segmentRefs", predicate: ["segment"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div\n *ngIf=\"isValidOptions()\"\n class=\"rte-segmented-control\"\n role=\"radiogroup\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.data-number-of-segments]=\"options().length\"\n [attr.data-compact-spacing]=\"compactSpacing()\"\n>\n <span\n class=\"rte-segment-selected-indicator\"\n [ngStyle]=\"segmentSelectedIndicatorStyle()\"\n [attr.data-compact-spacing]=\"compactSpacing()\"\n ></span>\n <ng-container *ngFor=\"let option of options(); let idx = index\">\n <div\n class=\"rte-segment-container\"\n [attr.data-position]=\"getSegmentPosition(idx)\"\n [attr.data-appearance]=\"appearance()\"\n [attr.data-compact-spacing]=\"compactSpacing()\"\n >\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 [attr.data-compact-spacing]=\"compactSpacing()\"\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]=\"compactSpacing() ? 20 : 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", styles: [".rte-segmented-control{display:flex;min-width:168px;max-width:720px}.rte-segmented-control[data-number-of-segments=\"3\"]{min-width:256px}.rte-segmented-control[data-compact-spacing=true]{min-width:80px}.rte-segmented-control[data-compact-spacing=true][data-number-of-segments=\"3\"]{min-width:128px}.rte-segment-selected-indicator{position:absolute;top:4px;height:32px;background:var(--background-default);border-radius:999px;transition:left .2s ease-out,width .2s ease-out}.rte-segment-selected-indicator[data-compact-spacing=true]{height:24px}.rte-segment-container{display:flex;border-top:1px solid var(--border-inverse);border-bottom:1px solid var(--border-inverse);background:var(--background-brand-default);padding:4px 2px;align-items:center;flex:1 0 0;overflow:hidden;height:40px;box-sizing:border-box}.rte-segment-container[data-compact-spacing=true]{height:32px;padding:0 2px}.rte-segment-container[data-appearance=neutral]{border-top:1px solid var(--border-tertiary);border-bottom:1px solid var(--border-tertiary);background:var(--background-neutral-regular-default)}.rte-segment-container[data-appearance=neutral][data-position=left]{border-radius:999px 0 0 999px;border-left:1px solid var(--border-tertiary);padding-left:4px}.rte-segment-container[data-appearance=neutral][data-position=right]{border-radius:0 999px 999px 0;border-right:1px solid var(--border-tertiary);padding-right:4px}.rte-segment-container[data-appearance=neutral] .rte-segment-label,.rte-segment-container[data-appearance=neutral] .rte-segment{color:var(--content-secondary)}.rte-segment-container[data-appearance=neutral] .rte-segment.selected .rte-segment-content,.rte-segment-container[data-appearance=neutral] .rte-segment.selected .rte-segment-label,.rte-segment-container[data-appearance=neutral] .rte-segment.selected .rte-selected-icon{color:var(--content-primary)}.rte-segment-container[data-appearance=neutral] .rte-segment:hover:not(.selected){background:var(--background-neutral-regular-hover);cursor:pointer}.rte-segment-container[data-position=left]{border-radius:999px 0 0 999px;border-left:1px solid var(--border-inverse);padding-left:4px}.rte-segment-container[data-position=right]{border-radius:0 999px 999px 0;border-right:1px solid var(--border-inverse);padding-right:4px}.rte-segment{display:flex;padding:2px 8px;align-items:center;border-radius:999px;color:var(--content-primary-inverse);flex:1 1 auto;width:100%;z-index:0;height:32px;box-sizing:border-box}.rte-segment[data-compact-spacing=true]{padding:0 8px;height:24px}.rte-segment[data-compact-spacing=true] .rte-segment-content .rte-segment-label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:16px;line-height:24px;letter-spacing:-.5px}.rte-segment:focus-visible{outline:1px solid var(--border-inverse);outline-offset:0px}.rte-segment.selected{transition:color .2s ease-out;color:var(--content-brand-default)}.rte-segment.selected:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:-2px}.rte-segment:hover:not(.selected){background:var(--background-brand-hover);cursor:pointer}.rte-segment .rte-segment-content{display:flex;align-items:center;justify-content:center;width:100%;overflow:hidden}.rte-segment .rte-segment-content .rte-segment-label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px;padding:0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rte-segment .rte-selected-icon{min-width:24px;min-height:24px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge", "withPlusSign"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2054
2281
|
}
|
|
2055
2282
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SegmentedControlComponent, decorators: [{
|
|
2056
2283
|
type: Component,
|
|
2057
|
-
args: [{ selector: "rte-segmented-control", imports: [CommonModule, IconComponent, BadgeComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div
|
|
2284
|
+
args: [{ selector: "rte-segmented-control", imports: [CommonModule, IconComponent, BadgeComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *ngIf=\"isValidOptions()\"\n class=\"rte-segmented-control\"\n role=\"radiogroup\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.data-number-of-segments]=\"options().length\"\n [attr.data-compact-spacing]=\"compactSpacing()\"\n>\n <span\n class=\"rte-segment-selected-indicator\"\n [ngStyle]=\"segmentSelectedIndicatorStyle()\"\n [attr.data-compact-spacing]=\"compactSpacing()\"\n ></span>\n <ng-container *ngFor=\"let option of options(); let idx = index\">\n <div\n class=\"rte-segment-container\"\n [attr.data-position]=\"getSegmentPosition(idx)\"\n [attr.data-appearance]=\"appearance()\"\n [attr.data-compact-spacing]=\"compactSpacing()\"\n >\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 [attr.data-compact-spacing]=\"compactSpacing()\"\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]=\"compactSpacing() ? 20 : 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", styles: [".rte-segmented-control{display:flex;min-width:168px;max-width:720px}.rte-segmented-control[data-number-of-segments=\"3\"]{min-width:256px}.rte-segmented-control[data-compact-spacing=true]{min-width:80px}.rte-segmented-control[data-compact-spacing=true][data-number-of-segments=\"3\"]{min-width:128px}.rte-segment-selected-indicator{position:absolute;top:4px;height:32px;background:var(--background-default);border-radius:999px;transition:left .2s ease-out,width .2s ease-out}.rte-segment-selected-indicator[data-compact-spacing=true]{height:24px}.rte-segment-container{display:flex;border-top:1px solid var(--border-inverse);border-bottom:1px solid var(--border-inverse);background:var(--background-brand-default);padding:4px 2px;align-items:center;flex:1 0 0;overflow:hidden;height:40px;box-sizing:border-box}.rte-segment-container[data-compact-spacing=true]{height:32px;padding:0 2px}.rte-segment-container[data-appearance=neutral]{border-top:1px solid var(--border-tertiary);border-bottom:1px solid var(--border-tertiary);background:var(--background-neutral-regular-default)}.rte-segment-container[data-appearance=neutral][data-position=left]{border-radius:999px 0 0 999px;border-left:1px solid var(--border-tertiary);padding-left:4px}.rte-segment-container[data-appearance=neutral][data-position=right]{border-radius:0 999px 999px 0;border-right:1px solid var(--border-tertiary);padding-right:4px}.rte-segment-container[data-appearance=neutral] .rte-segment-label,.rte-segment-container[data-appearance=neutral] .rte-segment{color:var(--content-secondary)}.rte-segment-container[data-appearance=neutral] .rte-segment.selected .rte-segment-content,.rte-segment-container[data-appearance=neutral] .rte-segment.selected .rte-segment-label,.rte-segment-container[data-appearance=neutral] .rte-segment.selected .rte-selected-icon{color:var(--content-primary)}.rte-segment-container[data-appearance=neutral] .rte-segment:hover:not(.selected){background:var(--background-neutral-regular-hover);cursor:pointer}.rte-segment-container[data-position=left]{border-radius:999px 0 0 999px;border-left:1px solid var(--border-inverse);padding-left:4px}.rte-segment-container[data-position=right]{border-radius:0 999px 999px 0;border-right:1px solid var(--border-inverse);padding-right:4px}.rte-segment{display:flex;padding:2px 8px;align-items:center;border-radius:999px;color:var(--content-primary-inverse);flex:1 1 auto;width:100%;z-index:0;height:32px;box-sizing:border-box}.rte-segment[data-compact-spacing=true]{padding:0 8px;height:24px}.rte-segment[data-compact-spacing=true] .rte-segment-content .rte-segment-label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:16px;line-height:24px;letter-spacing:-.5px}.rte-segment:focus-visible{outline:1px solid var(--border-inverse);outline-offset:0px}.rte-segment.selected{transition:color .2s ease-out;color:var(--content-brand-default)}.rte-segment.selected:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:-2px}.rte-segment:hover:not(.selected){background:var(--background-brand-hover);cursor:pointer}.rte-segment .rte-segment-content{display:flex;align-items:center;justify-content:center;width:100%;overflow:hidden}.rte-segment .rte-segment-content .rte-segment-label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.5px;padding:0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rte-segment .rte-selected-icon{min-width:24px;min-height:24px}\n"] }]
|
|
2058
2285
|
}] });
|
|
2059
2286
|
|
|
2060
2287
|
class BreadcrumbItemComponent {
|
|
@@ -2095,7 +2322,7 @@ class BreadcrumbItemComponent {
|
|
|
2095
2322
|
this.initialScrollWidth.set(el.scrollWidth);
|
|
2096
2323
|
}
|
|
2097
2324
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BreadcrumbItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2098
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: BreadcrumbItemComponent, isStandalone: true, selector: "rte-breadcrumb-item", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, isLast: { classPropertyName: "isLast", publicName: "isLast", isSignal: true, isRequired: false, transformFunction: null }, breadcrumbItemMaxWidth: { classPropertyName: "breadcrumbItemMaxWidth", publicName: "breadcrumbItemMaxWidth", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<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", styles: [".rte-breadcrumb-item{display:inline-flex;align-items:center;opacity:0;animation:fadeIn .15s forwards;gap:4px;font-family:Arial;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px}.rte-breadcrumb-item rte-link ::ng-deep a,.rte-breadcrumb-item rte-link ::ng-deep a.subtle{color:var(--content-tertiary)!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rte-breadcrumb-item a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rte-breadcrumb-item:last-child{cursor:default;color:var(--content-primary)}.rte-breadcrumb-item :focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px;border-radius:4px}@keyframes fadeIn{to{opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LinkComponent, selector: "rte-link", inputs: ["label", "href", "subtle", "externalLink", "reverse", "maxWidth"] }, { kind: "directive", type: TooltipDirective, selector: "[rteTooltip]", inputs: ["rteTooltip", "rteTooltipPosition", "rteTooltipAlignment", "rteTooltipArrow", "rteTooltipShouldFocusTrigger", "rteTooltipGap"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2325
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: BreadcrumbItemComponent, isStandalone: true, selector: "rte-breadcrumb-item", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, isLast: { classPropertyName: "isLast", publicName: "isLast", isSignal: true, isRequired: false, transformFunction: null }, breadcrumbItemMaxWidth: { classPropertyName: "breadcrumbItemMaxWidth", publicName: "breadcrumbItemMaxWidth", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<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", styles: [".rte-breadcrumb-item{display:inline-flex;align-items:center;opacity:0;animation:fadeIn .15s forwards;gap:4px;font-family:Arial;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px}.rte-breadcrumb-item rte-link ::ng-deep a,.rte-breadcrumb-item rte-link ::ng-deep a.subtle{color:var(--content-tertiary)!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rte-breadcrumb-item a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rte-breadcrumb-item:last-child{cursor:default;color:var(--content-primary)}.rte-breadcrumb-item :focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px;border-radius:4px}@keyframes fadeIn{to{opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LinkComponent, selector: "rte-link", inputs: ["label", "href", "subtle", "externalLink", "reverse", "maxWidth"] }, { kind: "directive", type: TooltipDirective, selector: "[rteTooltip]", inputs: ["rteTooltip", "rteTooltipPosition", "rteTooltipAlignment", "rteTooltipArrow", "rteTooltipShouldFocusTrigger", "rteTooltipGap"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge", "withPlusSign"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2099
2326
|
}
|
|
2100
2327
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BreadcrumbItemComponent, decorators: [{
|
|
2101
2328
|
type: Component,
|
|
@@ -2129,7 +2356,7 @@ class BreadcrumbsComponent {
|
|
|
2129
2356
|
});
|
|
2130
2357
|
}
|
|
2131
2358
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BreadcrumbsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2132
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: BreadcrumbsComponent, isStandalone: true, selector: "rte-breadcrumbs", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, breadcrumbItemMaxWidth: { classPropertyName: "breadcrumbItemMaxWidth", publicName: "breadcrumbItemMaxWidth", isSignal: true, isRequired: false, transformFunction: null }, badgeContent: { classPropertyName: "badgeContent", publicName: "badgeContent", isSignal: true, isRequired: false, transformFunction: null }, badgeCount: { classPropertyName: "badgeCount", publicName: "badgeCount", isSignal: true, isRequired: false, transformFunction: null }, badgeIcon: { classPropertyName: "badgeIcon", publicName: "badgeIcon", isSignal: true, isRequired: false, transformFunction: null }, badgeType: { classPropertyName: "badgeType", publicName: "badgeType", isSignal: true, isRequired: false, transformFunction: null }, showBadge: { classPropertyName: "showBadge", publicName: "showBadge", isSignal: true, isRequired: false, transformFunction: null }, badgeSize: { classPropertyName: "badgeSize", publicName: "badgeSize", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<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", styles: [".breadcrumbs-container{display:flex;align-items:center;gap:2px}.breadcrumbs-container .breadcrumb-item{display:inline-flex;align-items:center;opacity:0;animation:fadeIn .15s forwards;font-family:Arial;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px}.breadcrumbs-container .breadcrumb-item rte-link ::ng-deep a,.breadcrumbs-container .breadcrumb-item rte-link ::ng-deep a.subtle{color:var(--content-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breadcrumbs-container .breadcrumb-item a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breadcrumbs-container .breadcrumb-item:last-child{cursor:default;color:var(--content-primary)}.breadcrumbs-container .breadcrumb-item :focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px;border-radius:4px}.separator{color:var(--content-secondary);padding:0 8px;-webkit-user-select:none;user-select:none;opacity:0;animation:fadeIn .15s forwards}@keyframes fadeIn{to{opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: DropdownDirective, selector: "[rteDropdown]", inputs: ["rteDropdownId", "rteDropdownPosition", "rteDropdownAlignment", "rteDropdownIsOpen", "rteDropdownOffset", "rteDropdownAutofocus", "rteDropdownAutoOpen", "rteDropdownWidth"], outputs: ["menuEvent", "clickedOutside", "closedDropdown"] }, { kind: "directive", type: DropdownTriggerDirective, selector: "[rteDropdownTrigger]", inputs: ["rteDropdownTriggerActivateWithArrowDown"], outputs: ["dropdownKeyDown", "dropdownTriggered", "dropdownTriggerFocus", "dropdownTriggerClearContent", "dropdownTriggerOpenDropdown", "dropdownTriggerCloseDropdown"] }, { kind: "component", type: DropdownMenuComponent, selector: "rte-dropdown-menu", inputs: ["items", "menuId", "isOpen", "width", "headerTemplate", "footerTemplate"], outputs: ["itemEvent", "closingMenu"] }, { kind: "component", type: IconButtonComponent, selector: "rte-icon-button", inputs: ["disabled", "name", "size", "variant", "type", "appearance", "compactSpacing", "ariaLabel", "ariaLabelledBy", "badgeCount", "badgeContent", "badgeType", "badgeIcon", "customStyle"], outputs: ["clickEvent"] }, { kind: "component", type: BreadcrumbItemComponent, selector: "rte-breadcrumb-item", inputs: ["item", "isLast", "breadcrumbItemMaxWidth"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2359
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: BreadcrumbsComponent, isStandalone: true, selector: "rte-breadcrumbs", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, breadcrumbItemMaxWidth: { classPropertyName: "breadcrumbItemMaxWidth", publicName: "breadcrumbItemMaxWidth", isSignal: true, isRequired: false, transformFunction: null }, badgeContent: { classPropertyName: "badgeContent", publicName: "badgeContent", isSignal: true, isRequired: false, transformFunction: null }, badgeCount: { classPropertyName: "badgeCount", publicName: "badgeCount", isSignal: true, isRequired: false, transformFunction: null }, badgeIcon: { classPropertyName: "badgeIcon", publicName: "badgeIcon", isSignal: true, isRequired: false, transformFunction: null }, badgeType: { classPropertyName: "badgeType", publicName: "badgeType", isSignal: true, isRequired: false, transformFunction: null }, showBadge: { classPropertyName: "showBadge", publicName: "showBadge", isSignal: true, isRequired: false, transformFunction: null }, badgeSize: { classPropertyName: "badgeSize", publicName: "badgeSize", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<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", styles: [".breadcrumbs-container{display:flex;align-items:center;gap:2px}.breadcrumbs-container .breadcrumb-item{display:inline-flex;align-items:center;opacity:0;animation:fadeIn .15s forwards;font-family:Arial;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px}.breadcrumbs-container .breadcrumb-item rte-link ::ng-deep a,.breadcrumbs-container .breadcrumb-item rte-link ::ng-deep a.subtle{color:var(--content-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breadcrumbs-container .breadcrumb-item a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breadcrumbs-container .breadcrumb-item:last-child{cursor:default;color:var(--content-primary)}.breadcrumbs-container .breadcrumb-item :focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:4px;border-radius:4px}.separator{color:var(--content-secondary);padding:0 8px;-webkit-user-select:none;user-select:none;opacity:0;animation:fadeIn .15s forwards}@keyframes fadeIn{to{opacity:1}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: DropdownDirective, selector: "[rteDropdown]", inputs: ["rteDropdownId", "rteDropdownPosition", "rteDropdownAlignment", "rteDropdownIsOpen", "rteDropdownOffset", "rteDropdownAutofocus", "rteDropdownAutoOpen", "rteDropdownWidth", "rteCloseOnItemClick"], outputs: ["menuEvent", "clickedOutside", "closedDropdown", "menuChangeEvent"] }, { kind: "directive", type: DropdownTriggerDirective, selector: "[rteDropdownTrigger]", inputs: ["rteDropdownTriggerActivateWithArrowDown"], outputs: ["dropdownKeyDown", "dropdownTriggered", "dropdownTriggerFocus", "dropdownTriggerClearContent", "dropdownTriggerOpenDropdown", "dropdownTriggerCloseDropdown"] }, { kind: "component", type: DropdownMenuComponent, selector: "rte-dropdown-menu", inputs: ["items", "menuId", "isOpen", "width", "headerTemplate", "footerTemplate"], outputs: ["itemEvent", "closingMenu"] }, { kind: "component", type: IconButtonComponent, selector: "rte-icon-button", inputs: ["disabled", "name", "size", "variant", "type", "appearance", "compactSpacing", "ariaLabel", "ariaLabelledBy", "badgeCount", "badgeContent", "badgeType", "badgeIcon", "customStyle"], outputs: ["clickEvent"] }, { kind: "component", type: BreadcrumbItemComponent, selector: "rte-breadcrumb-item", inputs: ["item", "isLast", "breadcrumbItemMaxWidth"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge", "withPlusSign"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2133
2360
|
}
|
|
2134
2361
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BreadcrumbsComponent, decorators: [{
|
|
2135
2362
|
type: Component,
|
|
@@ -2847,7 +3074,7 @@ class NavItemComponent {
|
|
|
2847
3074
|
this.focused.set(false);
|
|
2848
3075
|
}
|
|
2849
3076
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NavItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2850
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: NavItemComponent, isStandalone: true, selector: "rte-nav-item", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, isNested: { classPropertyName: "isNested", publicName: "isNested", isSignal: true, isRequired: false, transformFunction: null }, parentMenuOpen: { classPropertyName: "parentMenuOpen", publicName: "parentMenuOpen", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null }, showDivider: { classPropertyName: "showDivider", publicName: "showDivider", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClick: "itemClick" }, ngImport: i0, template: "@if (collapsed() && label()) {\n @if (link()) {\n <a\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]=\"true\"\n [href]=\"link()!\"\n [attr.aria-label]=\"label()\"\n >\n <ng-container [ngTemplateOutlet]=\"contentTemplate\" />\n </a>\n } @else {\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 }\n} @else {\n @if (link()) {\n <a\n class=\"nav-item-container {{ appearance() }}\"\n [id]=\"id()\"\n [ngClass]=\"{ collapsed: collapsed(), nested: isNested(), active: active(), focused: focused() }\"\n [attr.role]=\"role()\"\n [href]=\"link()!\"\n >\n <ng-container [ngTemplateOutlet]=\"contentTemplate\" />\n </a>\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\n<ng-template #contentTemplate>\n <span\n class=\"nav-item\"\n [attr.tabindex]=\"link() ? undefined : 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</ng-template>\n", styles: [".nav-item-container{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:16px;line-height:24px;letter-spacing:-.5px;width:100%;display:flex;justify-content:flex-start;gap:8px;padding:8px 6px;border-radius:4px;cursor:pointer;transition:background-color .3s ease;align-items:center;box-sizing:border-box;border-left:2px solid transparent;color:var(--content-brand-navigation-default)}.nav-item-container:link,.nav-item-container:visited,.nav-item-container:link:hover,.nav-item-container:visited:hover{text-decoration:none;color:inherit}.nav-item-container.neutral{color:var(--content-secondary)}.nav-item-container.neutral:hover{background:var(--background-neutral-navigation-hover);color:var(--content-primary)}.nav-item-container.neutral.active{box-shadow:inset 0 1px 4px 0 var(--elevation-shadow-key);background:linear-gradient(0deg,var(--elevation-surface-inner-shadow) 0%,var(--elevation-surface-inner-shadow) 100%);color:var(--content-brand-pressed)}.nav-item-container.neutral.nested{border-radius:0 4px 4px 0;border-left:1px solid var(--border-divider)}.nav-item-container.neutral.nested.active{border-left:1px solid var(--border-brand-navigation-active)}.nav-item-container:hover{background:var(--background-brand-navigation-hover);color:var(--content-brand-navigation-hover)}.nav-item-container.active{background:var(--background-brand-navigation-pressed);border-left:2px solid var(--border-brand-navigation-divider);color:var(--content-primary-inverse)}.nav-item-container:active.focused{outline:none}.nav-item-container .nav-item{display:flex;padding:0;align-items:center;gap:8px;flex:1 0 0;-webkit-user-select:none;user-select:none;outline:none;justify-content:space-between}.nav-item-container .nav-item:link,.nav-item-container .nav-item:visited,.nav-item-container .nav-item:link:hover,.nav-item-container .nav-item:visited:hover{text-decoration:none;color:inherit}.nav-item-container .nav-item .nav-item-left{display:flex;align-items:center;gap:8px}.nav-item-container .nav-item .nav-item-right{display:flex;align-items:center;gap:4px}.nav-item-container.focused{outline:1px solid var(--border-brand-focused);outline-offset:0}.nav-item-container.collapsed{padding:8px 12px;justify-content:center;border-left:none}.nav-item-container.collapsed .nav-item{justify-content:center;gap:0}.nav-item-container.nested{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-size:14px;letter-spacing:-.5px;font-weight:600;line-height:20px;border-radius:0 4px 4px 0;border-left:1px solid var(--border-brand-navigation-divider);padding:4px 8px}.nav-item-container.nested.active{box-shadow:inset 0 1px 4px 0 var(--elevation-shadow-key)}.nav-item-container:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge"] }, { kind: "directive", type: TooltipDirective, selector: "[rteTooltip]", inputs: ["rteTooltip", "rteTooltipPosition", "rteTooltipAlignment", "rteTooltipArrow", "rteTooltipShouldFocusTrigger", "rteTooltipGap"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3077
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: NavItemComponent, isStandalone: true, selector: "rte-nav-item", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, isNested: { classPropertyName: "isNested", publicName: "isNested", isSignal: true, isRequired: false, transformFunction: null }, parentMenuOpen: { classPropertyName: "parentMenuOpen", publicName: "parentMenuOpen", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null }, showDivider: { classPropertyName: "showDivider", publicName: "showDivider", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClick: "itemClick" }, ngImport: i0, template: "@if (collapsed() && label()) {\n @if (link()) {\n <a\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]=\"true\"\n [href]=\"link()!\"\n [attr.aria-label]=\"label()\"\n >\n <ng-container [ngTemplateOutlet]=\"contentTemplate\" />\n </a>\n } @else {\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 }\n} @else {\n @if (link()) {\n <a\n class=\"nav-item-container {{ appearance() }}\"\n [id]=\"id()\"\n [ngClass]=\"{ collapsed: collapsed(), nested: isNested(), active: active(), focused: focused() }\"\n [attr.role]=\"role()\"\n [href]=\"link()!\"\n >\n <ng-container [ngTemplateOutlet]=\"contentTemplate\" />\n </a>\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\n<ng-template #contentTemplate>\n <span\n class=\"nav-item\"\n [attr.tabindex]=\"link() ? undefined : 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</ng-template>\n", styles: [".nav-item-container{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:16px;line-height:24px;letter-spacing:-.5px;width:100%;display:flex;justify-content:flex-start;gap:8px;padding:8px 6px;border-radius:4px;cursor:pointer;transition:background-color .3s ease;align-items:center;box-sizing:border-box;border-left:2px solid transparent;color:var(--content-brand-navigation-default)}.nav-item-container:link,.nav-item-container:visited,.nav-item-container:link:hover,.nav-item-container:visited:hover{text-decoration:none;color:inherit}.nav-item-container.neutral{color:var(--content-secondary)}.nav-item-container.neutral:hover{background:var(--background-neutral-navigation-hover);color:var(--content-primary)}.nav-item-container.neutral.active{box-shadow:inset 0 1px 4px 0 var(--elevation-shadow-key);background:linear-gradient(0deg,var(--elevation-surface-inner-shadow) 0%,var(--elevation-surface-inner-shadow) 100%);color:var(--content-brand-pressed)}.nav-item-container.neutral.nested{border-radius:0 4px 4px 0;border-left:1px solid var(--border-divider)}.nav-item-container.neutral.nested.active{border-left:1px solid var(--border-brand-navigation-active)}.nav-item-container:hover{background:var(--background-brand-navigation-hover);color:var(--content-brand-navigation-hover)}.nav-item-container.active{background:var(--background-brand-navigation-pressed);border-left:2px solid var(--border-brand-navigation-divider);color:var(--content-primary-inverse)}.nav-item-container:active.focused{outline:none}.nav-item-container .nav-item{display:flex;padding:0;align-items:center;gap:8px;flex:1 0 0;-webkit-user-select:none;user-select:none;outline:none;justify-content:space-between}.nav-item-container .nav-item:link,.nav-item-container .nav-item:visited,.nav-item-container .nav-item:link:hover,.nav-item-container .nav-item:visited:hover{text-decoration:none;color:inherit}.nav-item-container .nav-item .nav-item-left{display:flex;align-items:center;gap:8px}.nav-item-container .nav-item .nav-item-right{display:flex;align-items:center;gap:4px}.nav-item-container.focused{outline:1px solid var(--border-brand-focused);outline-offset:0}.nav-item-container.collapsed{padding:8px 12px;justify-content:center;border-left:none}.nav-item-container.collapsed .nav-item{justify-content:center;gap:0}.nav-item-container.nested{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-size:14px;letter-spacing:-.5px;font-weight:600;line-height:20px;border-radius:0 4px 4px 0;border-left:1px solid var(--border-brand-navigation-divider);padding:4px 8px}.nav-item-container.nested.active{box-shadow:inset 0 1px 4px 0 var(--elevation-shadow-key)}.nav-item-container:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge", "withPlusSign"] }, { kind: "directive", type: TooltipDirective, selector: "[rteTooltip]", inputs: ["rteTooltip", "rteTooltipPosition", "rteTooltipAlignment", "rteTooltipArrow", "rteTooltipShouldFocusTrigger", "rteTooltipGap"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2851
3078
|
}
|
|
2852
3079
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NavItemComponent, decorators: [{
|
|
2853
3080
|
type: Component,
|
|
@@ -2925,7 +3152,7 @@ class NavMenuComponent {
|
|
|
2925
3152
|
this.openChange.emit({ id: this.id() || this.label(), open: false });
|
|
2926
3153
|
}
|
|
2927
3154
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NavMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2928
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: NavMenuComponent, isStandalone: true, selector: "rte-nav-menu", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, showMenuIcon: { classPropertyName: "showMenuIcon", publicName: "showMenuIcon", isSignal: true, isRequired: false, transformFunction: null }, isNested: { classPropertyName: "isNested", publicName: "isNested", isSignal: true, isRequired: false, transformFunction: null }, parentMenuOpen: { classPropertyName: "parentMenuOpen", publicName: "parentMenuOpen", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, showDivider: { classPropertyName: "showDivider", publicName: "showDivider", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClick: "itemClick", openChange: "openChange" }, ngImport: i0, template: "@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", styles: [":host{display:contents}.nav-menu-container{width:100%;display:flex;flex-direction:column;justify-content:flex-start;border-radius:4px;transition:background-color .3s;box-sizing:border-box}.nav-menu-container.neutral .nav-menu{color:var(--content-secondary)}.nav-menu-container.neutral .nav-menu:hover{background:var(--background-neutral-navigation-hover);color:var(--content-primary)}.nav-menu-container.neutral .nav-menu.focused{outline:none}.nav-menu-container.neutral.nested .nav-menu{border-radius:0 4px 4px 0;border-left:1px solid var(--border-divider)}.nav-menu-container .nav-menu{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:16px;line-height:24px;letter-spacing:-.5px;display:flex;padding:8px 6px;align-items:center;gap:8px;flex:1 0 0;-webkit-user-select:none;user-select:none;justify-content:space-between;width:100%;box-sizing:border-box;cursor:pointer;border-left:2px solid transparent;color:var(--content-brand-navigation-default)}.nav-menu-container .nav-menu .menu-content-left{display:flex;align-items:center;gap:8px}.nav-menu-container .nav-menu .menu-content-right{display:flex;align-items:center;gap:4px}.nav-menu-container .nav-menu:hover{border-radius:4px;background:var(--background-brand-navigation-hover);color:var(--content-brand-navigation-hover)}.nav-menu-container .nav-menu:link,.nav-menu-container .nav-menu:link:hover{text-decoration:none;color:inherit}.nav-menu-container .nav-menu:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:0;border-radius:4px}.nav-menu-container.collapsed .nav-menu{padding:8px 12px;justify-content:center;gap:0;border-left:none}.nav-menu-container.nested .nav-menu{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-size:14px;letter-spacing:-.5px;font-weight:600;line-height:20px;border-radius:0 4px 4px 0;border-left:1px solid var(--border-brand-navigation-divider);padding:4px 8px}.nav-menu-container .menu-icon{flex-shrink:0;transition:transform .2s;margin-left:auto}.nav-menu-container .menu-icon-open{transform:rotate(90deg)}.nav-menu-container .nested-menu{list-style:none;margin:0;max-height:0;overflow:hidden;transition:max-height .3s,padding .3s;padding:0 0 0 16px;gap:0}.nav-menu-container .nested-menu.nested-menu-open{max-height:1000px;padding-top:4px;padding-bottom:4px}.nav-menu-container .icon{flex-shrink:0}\n"], dependencies: [{ kind: "component", type: NavMenuComponent, selector: "rte-nav-menu", inputs: ["id", "icon", "showIcon", "label", "collapsed", "link", "items", "open", "showMenuIcon", "isNested", "parentMenuOpen", "appearance", "badge", "showDivider"], outputs: ["itemClick", "openChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge"] }, { kind: "component", type: DividerComponent, selector: "rte-divider", inputs: ["orientation", "thickness", "appearance", "endPoint"] }, { kind: "component", type: NavItemComponent, selector: "rte-nav-item", inputs: ["id", "icon", "showIcon", "label", "collapsed", "link", "appearance", "active", "badge", "isNested", "parentMenuOpen", "role", "showDivider"], outputs: ["itemClick"] }, { kind: "directive", type: TooltipDirective, selector: "[rteTooltip]", inputs: ["rteTooltip", "rteTooltipPosition", "rteTooltipAlignment", "rteTooltipArrow", "rteTooltipShouldFocusTrigger", "rteTooltipGap"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3155
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: NavMenuComponent, isStandalone: true, selector: "rte-nav-menu", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, showIcon: { classPropertyName: "showIcon", publicName: "showIcon", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, link: { classPropertyName: "link", publicName: "link", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, showMenuIcon: { classPropertyName: "showMenuIcon", publicName: "showMenuIcon", isSignal: true, isRequired: false, transformFunction: null }, isNested: { classPropertyName: "isNested", publicName: "isNested", isSignal: true, isRequired: false, transformFunction: null }, parentMenuOpen: { classPropertyName: "parentMenuOpen", publicName: "parentMenuOpen", isSignal: true, isRequired: false, transformFunction: null }, appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, badge: { classPropertyName: "badge", publicName: "badge", isSignal: true, isRequired: false, transformFunction: null }, showDivider: { classPropertyName: "showDivider", publicName: "showDivider", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClick: "itemClick", openChange: "openChange" }, ngImport: i0, template: "@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", styles: [":host{display:contents}.nav-menu-container{width:100%;display:flex;flex-direction:column;justify-content:flex-start;border-radius:4px;transition:background-color .3s;box-sizing:border-box}.nav-menu-container.neutral .nav-menu{color:var(--content-secondary)}.nav-menu-container.neutral .nav-menu:hover{background:var(--background-neutral-navigation-hover);color:var(--content-primary)}.nav-menu-container.neutral .nav-menu.focused{outline:none}.nav-menu-container.neutral.nested .nav-menu{border-radius:0 4px 4px 0;border-left:1px solid var(--border-divider)}.nav-menu-container .nav-menu{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-weight:600;font-size:16px;line-height:24px;letter-spacing:-.5px;display:flex;padding:8px 6px;align-items:center;gap:8px;flex:1 0 0;-webkit-user-select:none;user-select:none;justify-content:space-between;width:100%;box-sizing:border-box;cursor:pointer;border-left:2px solid transparent;color:var(--content-brand-navigation-default)}.nav-menu-container .nav-menu .menu-content-left{display:flex;align-items:center;gap:8px}.nav-menu-container .nav-menu .menu-content-right{display:flex;align-items:center;gap:4px}.nav-menu-container .nav-menu:hover{border-radius:4px;background:var(--background-brand-navigation-hover);color:var(--content-brand-navigation-hover)}.nav-menu-container .nav-menu:link,.nav-menu-container .nav-menu:link:hover{text-decoration:none;color:inherit}.nav-menu-container .nav-menu:focus-visible{outline:1px solid var(--border-brand-focused);outline-offset:0;border-radius:4px}.nav-menu-container.collapsed .nav-menu{padding:8px 12px;justify-content:center;gap:0;border-left:none}.nav-menu-container.nested .nav-menu{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Nunito;font-size:14px;letter-spacing:-.5px;font-weight:600;line-height:20px;border-radius:0 4px 4px 0;border-left:1px solid var(--border-brand-navigation-divider);padding:4px 8px}.nav-menu-container .menu-icon{flex-shrink:0;transition:transform .2s;margin-left:auto}.nav-menu-container .menu-icon-open{transform:rotate(90deg)}.nav-menu-container .nested-menu{list-style:none;margin:0;max-height:0;overflow:hidden;transition:max-height .3s,padding .3s;padding:0 0 0 16px;gap:0}.nav-menu-container .nested-menu.nested-menu-open{max-height:1000px;padding-top:4px;padding-bottom:4px}.nav-menu-container .icon{flex-shrink:0}\n"], dependencies: [{ kind: "component", type: NavMenuComponent, selector: "rte-nav-menu", inputs: ["id", "icon", "showIcon", "label", "collapsed", "link", "items", "open", "showMenuIcon", "isNested", "parentMenuOpen", "appearance", "badge", "showDivider"], outputs: ["itemClick", "openChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge", "withPlusSign"] }, { kind: "component", type: DividerComponent, selector: "rte-divider", inputs: ["orientation", "thickness", "appearance", "endPoint"] }, { kind: "component", type: NavItemComponent, selector: "rte-nav-item", inputs: ["id", "icon", "showIcon", "label", "collapsed", "link", "appearance", "active", "badge", "isNested", "parentMenuOpen", "role", "showDivider"], outputs: ["itemClick"] }, { kind: "directive", type: TooltipDirective, selector: "[rteTooltip]", inputs: ["rteTooltip", "rteTooltipPosition", "rteTooltipAlignment", "rteTooltipArrow", "rteTooltipShouldFocusTrigger", "rteTooltipGap"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2929
3156
|
}
|
|
2930
3157
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NavMenuComponent, decorators: [{
|
|
2931
3158
|
type: Component,
|
|
@@ -3105,11 +3332,11 @@ class StepperComponent {
|
|
|
3105
3332
|
}
|
|
3106
3333
|
}
|
|
3107
3334
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StepperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3108
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: StepperComponent, isStandalone: true, selector: "rte-stepper", inputs: { steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: false, transformFunction: null }, activeStepId: { classPropertyName: "activeStepId", publicName: "activeStepId", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clickStep: "clickStep" }, ngImport: i0, template: "<nav aria-label=\"Stepper Navigation\" style=\"width: 100%; height: 100%\">\n <ol class=\"rte-stepper\" [attr.data-orientation]=\"orientation()\">\n <ng-container *ngFor=\"let step of steps(); let index = index\">\n <li\n #step\n class=\"rte-stepper-item\"\n [attr.data-completion-state]=\"step.completionState\"\n [attr.aria-current]=\"isStepActive(step.id) ? 'step' : undefined\"\n [attr.data-active]=\"isStepActive(step.id)\"\n [attr.data-orientation]=\"orientation()\"\n [attr.data-clickable]=\"isStepClickable(step)\"\n (keydown)=\"handleKeyDown($event)\"\n >\n <button\n class=\"rte-stepper-button\"\n type=\"button\"\n [attr.tabindex]=\"isStepActive(step.id) ? 0 : -1\"\n [attr.disabled]=\"isStepFocusable(step) ? undefined : true\"\n (click)=\"handleStepClick(step)\"\n >\n @if (step.completionState === \"complete\" && !isStepActive(step.id)) {\n <div class=\"rte-stepper-complete-indicator\">\n <rte-icon name=\"check\" aria-hidden=\"true\" [size]=\"iconSize['m']\" />\n </div>\n } @else {\n <div class=\"rte-stepper-number\" [attr.data-completion-state]=\"step.completionState\">\n <span>{{ index + 1 }}</span>\n </div>\n }\n <span class=\"rte-stepper-name\">{{ step.name }}</span>\n </button>\n </li>\n <ng-container *ngIf=\"index < steps().length - 1\">\n <div style=\"width: 100%; height: 100%\">\n <div\n class=\"rte-step-separator\"\n role=\"separator\"\n [attr.data-orientation]=\"orientation()\"\n [attr.data-complete]=\"step.completionState === 'complete'\"\n ></div>\n </div>\n </ng-container>\n </ng-container>\n </ol>\n</nav>\n", styles: [".rte-stepper{display:flex;flex-direction:row;gap:6px;align-items:start;padding:0;margin:0;width:auto}.rte-stepper[data-orientation=vertical]{flex-direction:column;height:100%}.rte-stepper .rte-stepper-item{display:flex;width:100%;flex:1 0 0}.rte-stepper .rte-stepper-item .rte-stepper-button{all:unset;display:flex;flex-direction:column;gap:12px;align-items:center}.rte-stepper .rte-stepper-item .rte-stepper-button:focus-visible .rte-stepper-number,.rte-stepper .rte-stepper-item .rte-stepper-button:focus-visible .rte-stepper-complete-indicator{outline:2px solid var(--border-brand-focused);outline-offset:4px}.rte-stepper .rte-stepper-item .rte-stepper-button .rte-stepper-complete-indicator{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:999px;background-color:var(--background-brand-default);border:2px solid var(--border-brand-default);color:var(--content-primary-inverse)}.rte-stepper .rte-stepper-item .rte-stepper-button .rte-stepper-number{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:999px;border:2px solid var(--border-secondary)}.rte-stepper .rte-stepper-item .rte-stepper-button .rte-stepper-number span{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:16px;line-height:24px;letter-spacing:0px;color:var(--content-tertiary);display:flex;justify-content:center;align-items:center}.rte-stepper .rte-stepper-item .rte-stepper-button .rte-stepper-name{font-family:Arial;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0px;color:var(--content-tertiary);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:relative}.rte-stepper .rte-stepper-item:hover[data-clickable=true][data-active=false]{cursor:pointer}.rte-stepper .rte-stepper-item:hover[data-clickable=true][data-active=false][data-completion-state=unvisited] .rte-stepper-number{border-color:var(--border-primary)}.rte-stepper .rte-stepper-item:hover[data-clickable=true][data-active=false][data-completion-state=unvisited] .rte-stepper-complete-indicator{background-color:var(--background-brand-hover);border:2px solid var(--background-brand-hover)}.rte-stepper .rte-stepper-item:hover[data-clickable=true][data-active=false][data-completion-state=incomplete] .rte-stepper-number span{background-color:var(--background-brand-hover)}.rte-stepper .rte-stepper-item:hover[data-clickable=true][data-active=false][data-completion-state=complete] .rte-stepper-complete-indicator{background-color:var(--background-brand-hover);border:2px solid var(--background-brand-hover)}.rte-stepper .rte-stepper-item[data-completion-state=incomplete][data-active=false] .rte-stepper-number{border:2px solid var(--border-brand-default)}.rte-stepper .rte-stepper-item[data-completion-state=incomplete][data-active=false] .rte-stepper-number span{color:var(--content-primary-inverse);border:solid 2px var(--brand-default);border-radius:999px;background-color:var(--background-brand-default);width:28px;height:28px}.rte-stepper .rte-stepper-item[data-completion-state=incomplete] .rte-stepper-name{font-family:Arial;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0px}.rte-stepper .rte-stepper-item[data-active=true] .rte-stepper-button .rte-stepper-number{border:2px solid var(--border-brand-default)}.rte-stepper .rte-stepper-item[data-active=true] .rte-stepper-button .rte-stepper-number span{color:var(--content-brand-default)}.rte-stepper .rte-stepper-item[data-active=true] .rte-stepper-button .rte-stepper-name{font-family:Arial;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0px;color:var(--content-primary)}.rte-stepper .rte-stepper-item[data-orientation=vertical],.rte-stepper .rte-stepper-item[data-orientation=vertical] .rte-stepper-button{flex-direction:row}.rte-stepper .rte-stepper-item[data-orientation=vertical] .rte-stepper-button .rte-stepper-name{text-align:left}.rte-stepper .rte-step-separator{width:100%;border-radius:999px;height:4px;margin-top:16px;background-color:var(--border-secondary);flex:1 1 auto}.rte-stepper .rte-step-separator[data-complete=true]{background-color:var(--border-brand-default)}.rte-stepper .rte-step-separator[data-orientation=vertical]{width:4px;height:100%;margin-left:16px;margin-top:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3335
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: StepperComponent, isStandalone: true, selector: "rte-stepper", inputs: { steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: false, transformFunction: null }, activeStepId: { classPropertyName: "activeStepId", publicName: "activeStepId", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clickStep: "clickStep" }, ngImport: i0, template: "<nav aria-label=\"Stepper Navigation\" style=\"width: 100%; height: 100%\">\n <ol class=\"rte-stepper\" [attr.data-orientation]=\"orientation()\">\n <ng-container *ngFor=\"let step of steps(); let index = index\">\n <li\n #step\n class=\"rte-stepper-item\"\n [attr.data-completion-state]=\"step.completionState\"\n [attr.aria-current]=\"isStepActive(step.id) ? 'step' : undefined\"\n [attr.data-active]=\"isStepActive(step.id)\"\n [attr.data-orientation]=\"orientation()\"\n [attr.data-clickable]=\"isStepClickable(step)\"\n (keydown)=\"handleKeyDown($event)\"\n >\n <button\n class=\"rte-stepper-button\"\n type=\"button\"\n [attr.tabindex]=\"isStepActive(step.id) ? 0 : -1\"\n [attr.disabled]=\"isStepFocusable(step) ? undefined : true\"\n (click)=\"handleStepClick(step)\"\n >\n @if (step.completionState === \"complete\" && !isStepActive(step.id)) {\n <div class=\"rte-stepper-complete-indicator\">\n <rte-icon name=\"check\" aria-hidden=\"true\" [size]=\"iconSize['m']\" />\n </div>\n } @else {\n <div class=\"rte-stepper-number\" [attr.data-completion-state]=\"step.completionState\">\n <span>{{ index + 1 }}</span>\n </div>\n }\n <span class=\"rte-stepper-name\">{{ step.name }}</span>\n </button>\n </li>\n <ng-container *ngIf=\"index < steps().length - 1\">\n <div style=\"width: 100%; height: 100%\">\n <div\n class=\"rte-step-separator\"\n role=\"separator\"\n [attr.data-orientation]=\"orientation()\"\n [attr.data-complete]=\"step.completionState === 'complete'\"\n ></div>\n </div>\n </ng-container>\n </ng-container>\n </ol>\n</nav>\n", styles: [".rte-stepper{display:flex;flex-direction:row;gap:6px;align-items:start;padding:0;margin:0;width:auto}.rte-stepper[data-orientation=vertical]{flex-direction:column;height:100%}.rte-stepper .rte-stepper-item{display:flex;width:100%;flex:1 0 0}.rte-stepper .rte-stepper-item .rte-stepper-button{all:unset;display:flex;flex-direction:column;gap:12px;align-items:center}.rte-stepper .rte-stepper-item .rte-stepper-button:focus-visible .rte-stepper-number,.rte-stepper .rte-stepper-item .rte-stepper-button:focus-visible .rte-stepper-complete-indicator{outline:2px solid var(--border-brand-focused);outline-offset:4px}.rte-stepper .rte-stepper-item .rte-stepper-button .rte-stepper-complete-indicator{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:999px;background-color:var(--background-brand-default);border:2px solid var(--border-brand-default);color:var(--content-primary-inverse)}.rte-stepper .rte-stepper-item .rte-stepper-button .rte-stepper-number{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:999px;border:2px solid var(--border-secondary)}.rte-stepper .rte-stepper-item .rte-stepper-button .rte-stepper-number span{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:16px;line-height:24px;letter-spacing:0px;color:var(--content-tertiary);display:flex;justify-content:center;align-items:center}.rte-stepper .rte-stepper-item .rte-stepper-button .rte-stepper-name{font-family:Arial;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0px;color:var(--content-tertiary);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:relative}.rte-stepper .rte-stepper-item:hover[data-clickable=true][data-active=false]{cursor:pointer}.rte-stepper .rte-stepper-item:hover[data-clickable=true][data-active=false] .rte-stepper-name{color:var(--content-secondary)}.rte-stepper .rte-stepper-item:hover[data-clickable=true][data-active=false][data-completion-state=unvisited] .rte-stepper-number{border-color:var(--border-primary)}.rte-stepper .rte-stepper-item:hover[data-clickable=true][data-active=false][data-completion-state=unvisited] .rte-stepper-complete-indicator{background-color:var(--background-brand-hover);border:2px solid var(--background-brand-hover)}.rte-stepper .rte-stepper-item:hover[data-clickable=true][data-active=false][data-completion-state=incomplete] .rte-stepper-number span{background-color:var(--background-brand-hover)}.rte-stepper .rte-stepper-item:hover[data-clickable=true][data-active=false][data-completion-state=complete] .rte-stepper-complete-indicator{background-color:var(--background-brand-hover);border:2px solid var(--background-brand-hover)}.rte-stepper .rte-stepper-item[data-completion-state=incomplete][data-active=false] .rte-stepper-number{border:2px solid var(--border-brand-default)}.rte-stepper .rte-stepper-item[data-completion-state=incomplete][data-active=false] .rte-stepper-number span{color:var(--content-primary-inverse);border:solid 2px var(--brand-default);border-radius:999px;background-color:var(--background-brand-default);width:28px;height:28px}.rte-stepper .rte-stepper-item[data-completion-state=incomplete] .rte-stepper-name{font-family:Arial;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0px}.rte-stepper .rte-stepper-item[data-active=true] .rte-stepper-button .rte-stepper-number{border:2px solid var(--border-brand-default)}.rte-stepper .rte-stepper-item[data-active=true] .rte-stepper-button .rte-stepper-number span{color:var(--content-brand-default)}.rte-stepper .rte-stepper-item[data-active=true] .rte-stepper-button .rte-stepper-name{font-family:Arial;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0px;color:var(--content-primary)}.rte-stepper .rte-stepper-item[data-orientation=vertical],.rte-stepper .rte-stepper-item[data-orientation=vertical] .rte-stepper-button{flex-direction:row}.rte-stepper .rte-stepper-item[data-orientation=vertical] .rte-stepper-button .rte-stepper-name{text-align:left}.rte-stepper .rte-step-separator{width:100%;border-radius:999px;height:4px;margin-top:16px;background-color:var(--border-secondary);flex:1 1 auto}.rte-stepper .rte-step-separator[data-complete=true]{background-color:var(--border-brand-default)}.rte-stepper .rte-step-separator[data-orientation=vertical]{width:4px;height:100%;margin-left:16px;margin-top:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3109
3336
|
}
|
|
3110
3337
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StepperComponent, decorators: [{
|
|
3111
3338
|
type: Component,
|
|
3112
|
-
args: [{ selector: "rte-stepper", imports: [CommonModule, IconComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav aria-label=\"Stepper Navigation\" style=\"width: 100%; height: 100%\">\n <ol class=\"rte-stepper\" [attr.data-orientation]=\"orientation()\">\n <ng-container *ngFor=\"let step of steps(); let index = index\">\n <li\n #step\n class=\"rte-stepper-item\"\n [attr.data-completion-state]=\"step.completionState\"\n [attr.aria-current]=\"isStepActive(step.id) ? 'step' : undefined\"\n [attr.data-active]=\"isStepActive(step.id)\"\n [attr.data-orientation]=\"orientation()\"\n [attr.data-clickable]=\"isStepClickable(step)\"\n (keydown)=\"handleKeyDown($event)\"\n >\n <button\n class=\"rte-stepper-button\"\n type=\"button\"\n [attr.tabindex]=\"isStepActive(step.id) ? 0 : -1\"\n [attr.disabled]=\"isStepFocusable(step) ? undefined : true\"\n (click)=\"handleStepClick(step)\"\n >\n @if (step.completionState === \"complete\" && !isStepActive(step.id)) {\n <div class=\"rte-stepper-complete-indicator\">\n <rte-icon name=\"check\" aria-hidden=\"true\" [size]=\"iconSize['m']\" />\n </div>\n } @else {\n <div class=\"rte-stepper-number\" [attr.data-completion-state]=\"step.completionState\">\n <span>{{ index + 1 }}</span>\n </div>\n }\n <span class=\"rte-stepper-name\">{{ step.name }}</span>\n </button>\n </li>\n <ng-container *ngIf=\"index < steps().length - 1\">\n <div style=\"width: 100%; height: 100%\">\n <div\n class=\"rte-step-separator\"\n role=\"separator\"\n [attr.data-orientation]=\"orientation()\"\n [attr.data-complete]=\"step.completionState === 'complete'\"\n ></div>\n </div>\n </ng-container>\n </ng-container>\n </ol>\n</nav>\n", styles: [".rte-stepper{display:flex;flex-direction:row;gap:6px;align-items:start;padding:0;margin:0;width:auto}.rte-stepper[data-orientation=vertical]{flex-direction:column;height:100%}.rte-stepper .rte-stepper-item{display:flex;width:100%;flex:1 0 0}.rte-stepper .rte-stepper-item .rte-stepper-button{all:unset;display:flex;flex-direction:column;gap:12px;align-items:center}.rte-stepper .rte-stepper-item .rte-stepper-button:focus-visible .rte-stepper-number,.rte-stepper .rte-stepper-item .rte-stepper-button:focus-visible .rte-stepper-complete-indicator{outline:2px solid var(--border-brand-focused);outline-offset:4px}.rte-stepper .rte-stepper-item .rte-stepper-button .rte-stepper-complete-indicator{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:999px;background-color:var(--background-brand-default);border:2px solid var(--border-brand-default);color:var(--content-primary-inverse)}.rte-stepper .rte-stepper-item .rte-stepper-button .rte-stepper-number{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:999px;border:2px solid var(--border-secondary)}.rte-stepper .rte-stepper-item .rte-stepper-button .rte-stepper-number span{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:16px;line-height:24px;letter-spacing:0px;color:var(--content-tertiary);display:flex;justify-content:center;align-items:center}.rte-stepper .rte-stepper-item .rte-stepper-button .rte-stepper-name{font-family:Arial;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0px;color:var(--content-tertiary);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:relative}.rte-stepper .rte-stepper-item:hover[data-clickable=true][data-active=false]{cursor:pointer}.rte-stepper .rte-stepper-item:hover[data-clickable=true][data-active=false][data-completion-state=unvisited] .rte-stepper-number{border-color:var(--border-primary)}.rte-stepper .rte-stepper-item:hover[data-clickable=true][data-active=false][data-completion-state=unvisited] .rte-stepper-complete-indicator{background-color:var(--background-brand-hover);border:2px solid var(--background-brand-hover)}.rte-stepper .rte-stepper-item:hover[data-clickable=true][data-active=false][data-completion-state=incomplete] .rte-stepper-number span{background-color:var(--background-brand-hover)}.rte-stepper .rte-stepper-item:hover[data-clickable=true][data-active=false][data-completion-state=complete] .rte-stepper-complete-indicator{background-color:var(--background-brand-hover);border:2px solid var(--background-brand-hover)}.rte-stepper .rte-stepper-item[data-completion-state=incomplete][data-active=false] .rte-stepper-number{border:2px solid var(--border-brand-default)}.rte-stepper .rte-stepper-item[data-completion-state=incomplete][data-active=false] .rte-stepper-number span{color:var(--content-primary-inverse);border:solid 2px var(--brand-default);border-radius:999px;background-color:var(--background-brand-default);width:28px;height:28px}.rte-stepper .rte-stepper-item[data-completion-state=incomplete] .rte-stepper-name{font-family:Arial;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0px}.rte-stepper .rte-stepper-item[data-active=true] .rte-stepper-button .rte-stepper-number{border:2px solid var(--border-brand-default)}.rte-stepper .rte-stepper-item[data-active=true] .rte-stepper-button .rte-stepper-number span{color:var(--content-brand-default)}.rte-stepper .rte-stepper-item[data-active=true] .rte-stepper-button .rte-stepper-name{font-family:Arial;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0px;color:var(--content-primary)}.rte-stepper .rte-stepper-item[data-orientation=vertical],.rte-stepper .rte-stepper-item[data-orientation=vertical] .rte-stepper-button{flex-direction:row}.rte-stepper .rte-stepper-item[data-orientation=vertical] .rte-stepper-button .rte-stepper-name{text-align:left}.rte-stepper .rte-step-separator{width:100%;border-radius:999px;height:4px;margin-top:16px;background-color:var(--border-secondary);flex:1 1 auto}.rte-stepper .rte-step-separator[data-complete=true]{background-color:var(--border-brand-default)}.rte-stepper .rte-step-separator[data-orientation=vertical]{width:4px;height:100%;margin-left:16px;margin-top:0}\n"] }]
|
|
3339
|
+
args: [{ selector: "rte-stepper", imports: [CommonModule, IconComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav aria-label=\"Stepper Navigation\" style=\"width: 100%; height: 100%\">\n <ol class=\"rte-stepper\" [attr.data-orientation]=\"orientation()\">\n <ng-container *ngFor=\"let step of steps(); let index = index\">\n <li\n #step\n class=\"rte-stepper-item\"\n [attr.data-completion-state]=\"step.completionState\"\n [attr.aria-current]=\"isStepActive(step.id) ? 'step' : undefined\"\n [attr.data-active]=\"isStepActive(step.id)\"\n [attr.data-orientation]=\"orientation()\"\n [attr.data-clickable]=\"isStepClickable(step)\"\n (keydown)=\"handleKeyDown($event)\"\n >\n <button\n class=\"rte-stepper-button\"\n type=\"button\"\n [attr.tabindex]=\"isStepActive(step.id) ? 0 : -1\"\n [attr.disabled]=\"isStepFocusable(step) ? undefined : true\"\n (click)=\"handleStepClick(step)\"\n >\n @if (step.completionState === \"complete\" && !isStepActive(step.id)) {\n <div class=\"rte-stepper-complete-indicator\">\n <rte-icon name=\"check\" aria-hidden=\"true\" [size]=\"iconSize['m']\" />\n </div>\n } @else {\n <div class=\"rte-stepper-number\" [attr.data-completion-state]=\"step.completionState\">\n <span>{{ index + 1 }}</span>\n </div>\n }\n <span class=\"rte-stepper-name\">{{ step.name }}</span>\n </button>\n </li>\n <ng-container *ngIf=\"index < steps().length - 1\">\n <div style=\"width: 100%; height: 100%\">\n <div\n class=\"rte-step-separator\"\n role=\"separator\"\n [attr.data-orientation]=\"orientation()\"\n [attr.data-complete]=\"step.completionState === 'complete'\"\n ></div>\n </div>\n </ng-container>\n </ng-container>\n </ol>\n</nav>\n", styles: [".rte-stepper{display:flex;flex-direction:row;gap:6px;align-items:start;padding:0;margin:0;width:auto}.rte-stepper[data-orientation=vertical]{flex-direction:column;height:100%}.rte-stepper .rte-stepper-item{display:flex;width:100%;flex:1 0 0}.rte-stepper .rte-stepper-item .rte-stepper-button{all:unset;display:flex;flex-direction:column;gap:12px;align-items:center}.rte-stepper .rte-stepper-item .rte-stepper-button:focus-visible .rte-stepper-number,.rte-stepper .rte-stepper-item .rte-stepper-button:focus-visible .rte-stepper-complete-indicator{outline:2px solid var(--border-brand-focused);outline-offset:4px}.rte-stepper .rte-stepper-item .rte-stepper-button .rte-stepper-complete-indicator{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:999px;background-color:var(--background-brand-default);border:2px solid var(--border-brand-default);color:var(--content-primary-inverse)}.rte-stepper .rte-stepper-item .rte-stepper-button .rte-stepper-number{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:999px;border:2px solid var(--border-secondary)}.rte-stepper .rte-stepper-item .rte-stepper-button .rte-stepper-number span{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:16px;line-height:24px;letter-spacing:0px;color:var(--content-tertiary);display:flex;justify-content:center;align-items:center}.rte-stepper .rte-stepper-item .rte-stepper-button .rte-stepper-name{font-family:Arial;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0px;color:var(--content-tertiary);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:relative}.rte-stepper .rte-stepper-item:hover[data-clickable=true][data-active=false]{cursor:pointer}.rte-stepper .rte-stepper-item:hover[data-clickable=true][data-active=false] .rte-stepper-name{color:var(--content-secondary)}.rte-stepper .rte-stepper-item:hover[data-clickable=true][data-active=false][data-completion-state=unvisited] .rte-stepper-number{border-color:var(--border-primary)}.rte-stepper .rte-stepper-item:hover[data-clickable=true][data-active=false][data-completion-state=unvisited] .rte-stepper-complete-indicator{background-color:var(--background-brand-hover);border:2px solid var(--background-brand-hover)}.rte-stepper .rte-stepper-item:hover[data-clickable=true][data-active=false][data-completion-state=incomplete] .rte-stepper-number span{background-color:var(--background-brand-hover)}.rte-stepper .rte-stepper-item:hover[data-clickable=true][data-active=false][data-completion-state=complete] .rte-stepper-complete-indicator{background-color:var(--background-brand-hover);border:2px solid var(--background-brand-hover)}.rte-stepper .rte-stepper-item[data-completion-state=incomplete][data-active=false] .rte-stepper-number{border:2px solid var(--border-brand-default)}.rte-stepper .rte-stepper-item[data-completion-state=incomplete][data-active=false] .rte-stepper-number span{color:var(--content-primary-inverse);border:solid 2px var(--brand-default);border-radius:999px;background-color:var(--background-brand-default);width:28px;height:28px}.rte-stepper .rte-stepper-item[data-completion-state=incomplete] .rte-stepper-name{font-family:Arial;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0px}.rte-stepper .rte-stepper-item[data-active=true] .rte-stepper-button .rte-stepper-number{border:2px solid var(--border-brand-default)}.rte-stepper .rte-stepper-item[data-active=true] .rte-stepper-button .rte-stepper-number span{color:var(--content-brand-default)}.rte-stepper .rte-stepper-item[data-active=true] .rte-stepper-button .rte-stepper-name{font-family:Arial;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0px;color:var(--content-primary)}.rte-stepper .rte-stepper-item[data-orientation=vertical],.rte-stepper .rte-stepper-item[data-orientation=vertical] .rte-stepper-button{flex-direction:row}.rte-stepper .rte-stepper-item[data-orientation=vertical] .rte-stepper-button .rte-stepper-name{text-align:left}.rte-stepper .rte-step-separator{width:100%;border-radius:999px;height:4px;margin-top:16px;background-color:var(--border-secondary);flex:1 1 auto}.rte-stepper .rte-step-separator[data-complete=true]{background-color:var(--border-brand-default)}.rte-stepper .rte-step-separator[data-orientation=vertical]{width:4px;height:100%;margin-left:16px;margin-top:0}\n"] }]
|
|
3113
3340
|
}] });
|
|
3114
3341
|
|
|
3115
3342
|
class ToastComponent {
|
|
@@ -3316,6 +3543,7 @@ class TagComponent {
|
|
|
3316
3543
|
this.label = input("");
|
|
3317
3544
|
this.showLeftIcon = input(false);
|
|
3318
3545
|
this.iconName = input();
|
|
3546
|
+
this.ariaLabel = input();
|
|
3319
3547
|
this.computedIconName = computed(() => {
|
|
3320
3548
|
if (this.tagType() === "status") {
|
|
3321
3549
|
const statusIconMap = {
|
|
@@ -3337,11 +3565,11 @@ class TagComponent {
|
|
|
3337
3565
|
});
|
|
3338
3566
|
}
|
|
3339
3567
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TagComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3340
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: TagComponent, isStandalone: true, selector: "rte-tag", inputs: { tagType: { classPropertyName: "tagType", publicName: "tagType", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, compactSpacing: { classPropertyName: "compactSpacing", publicName: "compactSpacing", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, showLeftIcon: { classPropertyName: "showLeftIcon", publicName: "showLeftIcon", isSignal: true, isRequired: false, transformFunction: null }, iconName: { classPropertyName: "iconName", publicName: "iconName", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<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 <
|
|
3568
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: TagComponent, isStandalone: true, selector: "rte-tag", inputs: { tagType: { classPropertyName: "tagType", publicName: "tagType", isSignal: true, isRequired: false, transformFunction: null }, status: { classPropertyName: "status", publicName: "status", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, compactSpacing: { classPropertyName: "compactSpacing", publicName: "compactSpacing", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, showLeftIcon: { classPropertyName: "showLeftIcon", publicName: "showLeftIcon", isSignal: true, isRequired: false, transformFunction: null }, iconName: { classPropertyName: "iconName", publicName: "iconName", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<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 [attr.aria-label]=\"ariaLabel()\"\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 <span class=\"tag-label\" [attr.data-compact-spacing]=\"compactSpacing()\">{{ label() }}</span>\n </ng-container>\n</div>\n", styles: [".rte-tag{height:32px;display:inline-flex;padding:4px 6px;justify-content:center;align-items:center;gap:0px;border-radius:4px;text-wrap:nowrap}.rte-tag[data-compact-spacing=true]{padding:0 6px;height:24px}.rte-tag .tag-label{padding:0 6px;font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:16px;line-height:24px;letter-spacing:0px;color:var(--content-status)}.rte-tag .tag-label[data-compact-spacing=true]{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px}.rte-tag[data-tag-type=status][data-status=success],.rte-tag[data-tag-type=status][data-status=information],.rte-tag[data-tag-type=status][data-status=alert]{color:var(--content-primary-inverse)}.rte-tag[data-tag-type=status][data-status=success]{background-color:var(--background-success-default)}.rte-tag[data-tag-type=status][data-status=information]{background-color:var(--background-info-default)}.rte-tag[data-tag-type=status][data-status=warning]{background-color:var(--background-warning-default)}.rte-tag[data-tag-type=status][data-status=alert]{background-color:var(--background-danger-default)}.rte-tag[data-tag-type=decorative][data-color=brand]{background-color:var(--background-brand-default)}.rte-tag[data-tag-type=decorative][data-color=neutral]{background-color:var(--decorative-neutral)}.rte-tag[data-tag-type=decorative][data-color=azur]{background-color:var(--decorative-bleu-iceberg)}.rte-tag[data-tag-type=decorative][data-color=jade]{background-color:var(--decorative-vert-foret)}.rte-tag[data-tag-type=decorative][data-color=lavande]{background-color:var(--decorative-violet)}.rte-tag[data-tag-type=decorative][data-color=ciel]{background-color:var(--decorative-bleu-rte)}.rte-tag[data-tag-type=decorative][data-color=nuage]{background-color:var(--decorative-bleu-digital)}.rte-tag[data-tag-type=decorative][data-color=givre]{background-color:var(--decorative-marine)}.rte-tag[data-tag-type=decorative][data-color=brume]{background-color:var(--decorative-bleu-petrole)}.rte-tag[data-tag-type=decorative][data-color=glacier]{background-color:var(--decorative-bleu-cyan)}.rte-tag[data-tag-type=decorative][data-color=turquoise]{background-color:var(--decorative-vert)}.rte-tag[data-tag-type=decorative][data-color=anis]{background-color:var(--decorative-vert-indications)}.rte-tag[data-tag-type=decorative][data-color=menthe]{background-color:var(--decorative-vert-digital)}.rte-tag[data-tag-type=decorative][data-color=citronnelle]{background-color:var(--decorative-jaune)}.rte-tag[data-tag-type=decorative][data-color=sable]{background-color:var(--decorative-jaune-ocre)}.rte-tag[data-tag-type=decorative][data-color=abricot]{background-color:var(--decorative-jaune-indications)}.rte-tag[data-tag-type=decorative][data-color=coral]{background-color:var(--decorative-saumon)}.rte-tag[data-tag-type=decorative][data-color=rose]{background-color:var(--decorative-rose-digital)}.rte-tag[data-tag-type=decorative][data-color=petale]{background-color:var(--decorative-fuschia)}.rte-tag[data-tag-type=decorative][data-color=quartz]{background-color:var(--decorative-rouge-indication)}.rte-tag[data-tag-type=decorative][data-color=cendre]{background-color:var(--decorative-taupe)}.rte-tag[data-tag-type=decorative][data-color=brand],.rte-tag[data-tag-type=decorative][data-color=brand] .tag-label{color:var(--content-primary-inverse)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3341
3569
|
}
|
|
3342
3570
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TagComponent, decorators: [{
|
|
3343
3571
|
type: Component,
|
|
3344
|
-
args: [{ selector: "rte-tag", imports: [CommonModule, IconComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<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 <
|
|
3572
|
+
args: [{ selector: "rte-tag", imports: [CommonModule, IconComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<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 [attr.aria-label]=\"ariaLabel()\"\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 <span class=\"tag-label\" [attr.data-compact-spacing]=\"compactSpacing()\">{{ label() }}</span>\n </ng-container>\n</div>\n", styles: [".rte-tag{height:32px;display:inline-flex;padding:4px 6px;justify-content:center;align-items:center;gap:0px;border-radius:4px;text-wrap:nowrap}.rte-tag[data-compact-spacing=true]{padding:0 6px;height:24px}.rte-tag .tag-label{padding:0 6px;font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:16px;line-height:24px;letter-spacing:0px;color:var(--content-status)}.rte-tag .tag-label[data-compact-spacing=true]{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px}.rte-tag[data-tag-type=status][data-status=success],.rte-tag[data-tag-type=status][data-status=information],.rte-tag[data-tag-type=status][data-status=alert]{color:var(--content-primary-inverse)}.rte-tag[data-tag-type=status][data-status=success]{background-color:var(--background-success-default)}.rte-tag[data-tag-type=status][data-status=information]{background-color:var(--background-info-default)}.rte-tag[data-tag-type=status][data-status=warning]{background-color:var(--background-warning-default)}.rte-tag[data-tag-type=status][data-status=alert]{background-color:var(--background-danger-default)}.rte-tag[data-tag-type=decorative][data-color=brand]{background-color:var(--background-brand-default)}.rte-tag[data-tag-type=decorative][data-color=neutral]{background-color:var(--decorative-neutral)}.rte-tag[data-tag-type=decorative][data-color=azur]{background-color:var(--decorative-bleu-iceberg)}.rte-tag[data-tag-type=decorative][data-color=jade]{background-color:var(--decorative-vert-foret)}.rte-tag[data-tag-type=decorative][data-color=lavande]{background-color:var(--decorative-violet)}.rte-tag[data-tag-type=decorative][data-color=ciel]{background-color:var(--decorative-bleu-rte)}.rte-tag[data-tag-type=decorative][data-color=nuage]{background-color:var(--decorative-bleu-digital)}.rte-tag[data-tag-type=decorative][data-color=givre]{background-color:var(--decorative-marine)}.rte-tag[data-tag-type=decorative][data-color=brume]{background-color:var(--decorative-bleu-petrole)}.rte-tag[data-tag-type=decorative][data-color=glacier]{background-color:var(--decorative-bleu-cyan)}.rte-tag[data-tag-type=decorative][data-color=turquoise]{background-color:var(--decorative-vert)}.rte-tag[data-tag-type=decorative][data-color=anis]{background-color:var(--decorative-vert-indications)}.rte-tag[data-tag-type=decorative][data-color=menthe]{background-color:var(--decorative-vert-digital)}.rte-tag[data-tag-type=decorative][data-color=citronnelle]{background-color:var(--decorative-jaune)}.rte-tag[data-tag-type=decorative][data-color=sable]{background-color:var(--decorative-jaune-ocre)}.rte-tag[data-tag-type=decorative][data-color=abricot]{background-color:var(--decorative-jaune-indications)}.rte-tag[data-tag-type=decorative][data-color=coral]{background-color:var(--decorative-saumon)}.rte-tag[data-tag-type=decorative][data-color=rose]{background-color:var(--decorative-rose-digital)}.rte-tag[data-tag-type=decorative][data-color=petale]{background-color:var(--decorative-fuschia)}.rte-tag[data-tag-type=decorative][data-color=quartz]{background-color:var(--decorative-rouge-indication)}.rte-tag[data-tag-type=decorative][data-color=cendre]{background-color:var(--decorative-taupe)}.rte-tag[data-tag-type=decorative][data-color=brand],.rte-tag[data-tag-type=decorative][data-color=brand] .tag-label{color:var(--content-primary-inverse)}\n"] }]
|
|
3345
3573
|
}] });
|
|
3346
3574
|
|
|
3347
3575
|
class AssistiveTextComponent {
|
|
@@ -3370,6 +3598,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
3370
3598
|
args: [{ selector: "rte-assistive-text", imports: [CommonModule, IconComponent, LinkComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<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", styles: [".rte-assistive-text{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;display:flex;align-items:center;gap:4px;padding:4px 8px;color:var(--content-secondary)}.rte-assistive-text.error{color:var(--content-danger-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}.rte-assistive-text.success{color:var(--content-success-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}.rte-assistive-text.description{color:var(--content-tertiary);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}\n"] }]
|
|
3371
3599
|
}] });
|
|
3372
3600
|
|
|
3601
|
+
class SelectFooterDirective {
|
|
3602
|
+
constructor() {
|
|
3603
|
+
this.templateRef = inject((TemplateRef), { optional: true });
|
|
3604
|
+
}
|
|
3605
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectFooterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3606
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: SelectFooterDirective, isStandalone: true, selector: "[rteSelectFooter]", ngImport: i0 }); }
|
|
3607
|
+
}
|
|
3608
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectFooterDirective, decorators: [{
|
|
3609
|
+
type: Directive,
|
|
3610
|
+
args: [{
|
|
3611
|
+
selector: "[rteSelectFooter]",
|
|
3612
|
+
standalone: true,
|
|
3613
|
+
}]
|
|
3614
|
+
}] });
|
|
3615
|
+
|
|
3616
|
+
class SelectHeaderDirective {
|
|
3617
|
+
constructor() {
|
|
3618
|
+
this.templateRef = inject((TemplateRef), { optional: true });
|
|
3619
|
+
}
|
|
3620
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectHeaderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3621
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: SelectHeaderDirective, isStandalone: true, selector: "[rteSelectHeader]", ngImport: i0 }); }
|
|
3622
|
+
}
|
|
3623
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectHeaderDirective, decorators: [{
|
|
3624
|
+
type: Directive,
|
|
3625
|
+
args: [{
|
|
3626
|
+
selector: "[rteSelectHeader]",
|
|
3627
|
+
standalone: true,
|
|
3628
|
+
}]
|
|
3629
|
+
}] });
|
|
3630
|
+
|
|
3373
3631
|
class SelectComponent {
|
|
3374
3632
|
constructor() {
|
|
3375
3633
|
this.id = input();
|
|
@@ -3385,17 +3643,32 @@ class SelectComponent {
|
|
|
3385
3643
|
this.showLabelRequirement = input(false);
|
|
3386
3644
|
this.disabled = input(false);
|
|
3387
3645
|
this.readOnly = input(false);
|
|
3388
|
-
this.value = input();
|
|
3389
3646
|
this.options = input([]);
|
|
3390
3647
|
this.isError = input(false);
|
|
3391
3648
|
this.showAssistiveIcon = input(false);
|
|
3392
3649
|
this.showResetButton = input(false);
|
|
3393
|
-
this.
|
|
3650
|
+
this.multiple = input(false);
|
|
3651
|
+
this.value = input();
|
|
3652
|
+
this.withSelectAll = input(false);
|
|
3653
|
+
this.optionToDisplay = input("first-selected");
|
|
3394
3654
|
this.selectRef = viewChild("selectRef");
|
|
3395
3655
|
this.buttonsContainerRef = viewChild("buttonsContainerRef");
|
|
3396
3656
|
this.selectDropdownOffset = SELECT_DROPDOWN_OFFSET;
|
|
3397
|
-
this.
|
|
3398
|
-
|
|
3657
|
+
this.headerDirective = contentChild(SelectHeaderDirective);
|
|
3658
|
+
this.footerDirective = contentChild(SelectFooterDirective);
|
|
3659
|
+
this.headerTemplate = input(undefined);
|
|
3660
|
+
this.footerTemplate = input(undefined);
|
|
3661
|
+
this.headerContentRef = viewChild("headerContent");
|
|
3662
|
+
this.footerContentRef = viewChild("footerContent");
|
|
3663
|
+
this.hasHeaderContent = computed(() => {
|
|
3664
|
+
const hasTemplate = this.headerDirective()?.templateRef || !!this.headerTemplate();
|
|
3665
|
+
const hasProjectedContent = !!this.headerContentRef()?.nativeElement?.children.length;
|
|
3666
|
+
return hasTemplate || hasProjectedContent;
|
|
3667
|
+
});
|
|
3668
|
+
this.hasFooterContent = computed(() => {
|
|
3669
|
+
const hasTemplate = this.footerDirective()?.templateRef || !!this.footerTemplate();
|
|
3670
|
+
const hasProjectedContent = !!this.footerContentRef()?.nativeElement?.children.length;
|
|
3671
|
+
return hasTemplate || hasProjectedContent;
|
|
3399
3672
|
});
|
|
3400
3673
|
this.clearButton = computed(() => {
|
|
3401
3674
|
return this.buttonsContainerRef()?.nativeElement.querySelector(".rte-icon-button.clear-button");
|
|
@@ -3409,6 +3682,11 @@ class SelectComponent {
|
|
|
3409
3682
|
}
|
|
3410
3683
|
return "bottom";
|
|
3411
3684
|
});
|
|
3685
|
+
this.optionsFormatted = signal(this.options().map(({ value, label }) => ({
|
|
3686
|
+
id: value,
|
|
3687
|
+
label: label,
|
|
3688
|
+
selected: this.isSelected(value),
|
|
3689
|
+
})));
|
|
3412
3690
|
this.internalValue = signal(this.value());
|
|
3413
3691
|
this.requirementIndicatorValue = computed(() => this.required()
|
|
3414
3692
|
? this.showLabelRequirement()
|
|
@@ -3416,20 +3694,8 @@ class SelectComponent {
|
|
|
3416
3694
|
: REQUIREMENT_INDICATOR_VALUE.requiredIcon
|
|
3417
3695
|
: REQUIREMENT_INDICATOR_VALUE.optional);
|
|
3418
3696
|
this.valueChange = output();
|
|
3419
|
-
this.
|
|
3420
|
-
|
|
3421
|
-
});
|
|
3422
|
-
this.isAssistiveTextLinkVisible = computed(() => {
|
|
3423
|
-
return this.assistiveTextAppearance() === "link" && this.assistiveTextLink() !== undefined;
|
|
3424
|
-
});
|
|
3425
|
-
this.formattedOptions = computed(() => {
|
|
3426
|
-
return this.options().map(({ value, label }) => ({
|
|
3427
|
-
id: value,
|
|
3428
|
-
label: label,
|
|
3429
|
-
selected: value === this.internalValue(),
|
|
3430
|
-
}));
|
|
3431
|
-
});
|
|
3432
|
-
this.shouldDisplayClearButton = computed(() => this.showResetButton() && !!this.internalValue() && !this.disabled());
|
|
3697
|
+
this.currentDisplayedOption = signal(getSelectedOption(this.optionToDisplay() || "first-selected", this.options(), this.internalValue()));
|
|
3698
|
+
this.shouldDisplayClearButton = signal(false);
|
|
3433
3699
|
this.shouldDisplayErrorIcon = computed(() => this.isError() && !this.disabled() && !this.readOnly());
|
|
3434
3700
|
this.isActive = signal(false);
|
|
3435
3701
|
this.selectWidth = computed(() => {
|
|
@@ -3440,6 +3706,13 @@ class SelectComponent {
|
|
|
3440
3706
|
return null;
|
|
3441
3707
|
});
|
|
3442
3708
|
}
|
|
3709
|
+
ngAfterViewInit() {
|
|
3710
|
+
this.regenerateOptionsFormatted();
|
|
3711
|
+
this.computeShouldDisplayClearButton();
|
|
3712
|
+
}
|
|
3713
|
+
areAllOptionsSelected() {
|
|
3714
|
+
return this.multiple() && this.options().every((option) => this.internalValue()?.includes(option.value));
|
|
3715
|
+
}
|
|
3443
3716
|
handleOnClickTrigger() {
|
|
3444
3717
|
if (this.readOnly() || this.disabled()) {
|
|
3445
3718
|
return;
|
|
@@ -3454,7 +3727,7 @@ class SelectComponent {
|
|
|
3454
3727
|
const clearButton = this.buttonsContainerRef()?.nativeElement.children[0].children[0];
|
|
3455
3728
|
const isClearButtonFocused = document.activeElement === clearButton;
|
|
3456
3729
|
if (isClearButtonFocused && (event.key === SPACE_KEY || event.key === ENTER_KEY)) {
|
|
3457
|
-
this.clearSelection(
|
|
3730
|
+
this.clearSelection();
|
|
3458
3731
|
return;
|
|
3459
3732
|
}
|
|
3460
3733
|
}
|
|
@@ -3462,24 +3735,53 @@ class SelectComponent {
|
|
|
3462
3735
|
this.toggleDropdown();
|
|
3463
3736
|
}
|
|
3464
3737
|
}
|
|
3738
|
+
handleOnCloseChip(event, value) {
|
|
3739
|
+
event.stopPropagation();
|
|
3740
|
+
if (this.readOnly() || this.disabled()) {
|
|
3741
|
+
return;
|
|
3742
|
+
}
|
|
3743
|
+
if (this.multiple() && value) {
|
|
3744
|
+
const currentValue = this.internalValue();
|
|
3745
|
+
if (currentValue && Array.isArray(currentValue)) {
|
|
3746
|
+
const valueIndex = currentValue.indexOf(value);
|
|
3747
|
+
if (valueIndex > -1) {
|
|
3748
|
+
currentValue.splice(valueIndex, 1);
|
|
3749
|
+
this.internalValue.set(currentValue);
|
|
3750
|
+
this.regenerateOptionsFormatted();
|
|
3751
|
+
this.valueChange.emit(value);
|
|
3752
|
+
this.currentDisplayedOption.set(getSelectedOption(this.optionToDisplay() || "first-selected", this.options(), this.internalValue()));
|
|
3753
|
+
this.computeShouldDisplayClearButton();
|
|
3754
|
+
}
|
|
3755
|
+
}
|
|
3756
|
+
}
|
|
3757
|
+
}
|
|
3465
3758
|
handleOnClickClearButton(event) {
|
|
3466
3759
|
if (this.readOnly() || this.disabled()) {
|
|
3467
3760
|
return;
|
|
3468
3761
|
}
|
|
3469
|
-
event.
|
|
3470
|
-
this.clearSelection(
|
|
3762
|
+
event.stopPropagation();
|
|
3763
|
+
this.clearSelection();
|
|
3471
3764
|
}
|
|
3472
|
-
handleOnClickItem(
|
|
3765
|
+
handleOnClickItem(value) {
|
|
3473
3766
|
if (this.readOnly() || this.disabled()) {
|
|
3474
3767
|
return;
|
|
3475
3768
|
}
|
|
3476
|
-
this.
|
|
3477
|
-
|
|
3478
|
-
|
|
3479
|
-
|
|
3480
|
-
|
|
3481
|
-
|
|
3482
|
-
|
|
3769
|
+
if (this.multiple()) {
|
|
3770
|
+
if (value === "select-all") {
|
|
3771
|
+
this.clickedSelectAll();
|
|
3772
|
+
}
|
|
3773
|
+
else {
|
|
3774
|
+
this.clickedSelectItemMultiple(value);
|
|
3775
|
+
}
|
|
3776
|
+
}
|
|
3777
|
+
else {
|
|
3778
|
+
this.internalValue.set(value);
|
|
3779
|
+
this.isActive.set(!this.isActive());
|
|
3780
|
+
}
|
|
3781
|
+
this.regenerateOptionsFormatted();
|
|
3782
|
+
this.valueChange.emit(value);
|
|
3783
|
+
this.currentDisplayedOption.set(getSelectedOption(this.optionToDisplay() || "first-selected", this.options(), this.internalValue()));
|
|
3784
|
+
this.computeShouldDisplayClearButton();
|
|
3483
3785
|
this.selectRef()?.nativeElement.focus();
|
|
3484
3786
|
}
|
|
3485
3787
|
handleOnClosingDropdown() {
|
|
@@ -3497,30 +3799,117 @@ class SelectComponent {
|
|
|
3497
3799
|
this.selectRef()?.nativeElement.dispatchEvent(new Event("closeDropdown"));
|
|
3498
3800
|
}
|
|
3499
3801
|
}
|
|
3500
|
-
clearSelection(
|
|
3501
|
-
this.
|
|
3802
|
+
clearSelection() {
|
|
3803
|
+
if (!this.multiple()) {
|
|
3804
|
+
this.internalValue.set("");
|
|
3805
|
+
}
|
|
3806
|
+
else {
|
|
3807
|
+
this.internalValue.set([]);
|
|
3808
|
+
}
|
|
3502
3809
|
this.isActive.set(false);
|
|
3503
|
-
this.valueChange.emit(
|
|
3810
|
+
this.valueChange.emit("select-all");
|
|
3504
3811
|
this.selectRef()?.nativeElement.dispatchEvent(new Event("clearContent"));
|
|
3812
|
+
this.regenerateOptionsFormatted();
|
|
3813
|
+
this.currentDisplayedOption.set(getSelectedOption(this.optionToDisplay() || "first-selected", this.options(), this.internalValue()));
|
|
3814
|
+
this.computeShouldDisplayClearButton();
|
|
3815
|
+
}
|
|
3816
|
+
regenerateOptionsFormatted() {
|
|
3817
|
+
if (this.withSelectAll()) {
|
|
3818
|
+
this.optionsFormatted.set([
|
|
3819
|
+
{
|
|
3820
|
+
id: "select-all",
|
|
3821
|
+
label: "Sélectionner tout",
|
|
3822
|
+
selected: this.areAllOptionsSelected(),
|
|
3823
|
+
hasCheckbox: true,
|
|
3824
|
+
hasSeparator: true,
|
|
3825
|
+
isIndeterminate: this.options().some((option) => this.isSelected(option.value)) && !this.areAllOptionsSelected(),
|
|
3826
|
+
},
|
|
3827
|
+
...this.options().map((option) => this.mapOptionToDropdownItemConfig(option)),
|
|
3828
|
+
]);
|
|
3829
|
+
}
|
|
3830
|
+
else {
|
|
3831
|
+
this.optionsFormatted.set(this.options().map((option) => ({ ...this.mapOptionToDropdownItemConfig(option), hasSeparator: false })));
|
|
3832
|
+
}
|
|
3833
|
+
}
|
|
3834
|
+
isSelected(value) {
|
|
3835
|
+
if (this.multiple()) {
|
|
3836
|
+
const currentValue = this.internalValue();
|
|
3837
|
+
if (currentValue) {
|
|
3838
|
+
return currentValue.includes(value);
|
|
3839
|
+
}
|
|
3840
|
+
}
|
|
3841
|
+
return this.internalValue() === value;
|
|
3842
|
+
}
|
|
3843
|
+
computeShouldDisplayClearButton() {
|
|
3844
|
+
const shouldDisplay = this.showResetButton() &&
|
|
3845
|
+
(this.multiple()
|
|
3846
|
+
? Array.isArray(this.internalValue()) && this.internalValue().length > 0
|
|
3847
|
+
: !!this.internalValue()) &&
|
|
3848
|
+
!this.disabled();
|
|
3849
|
+
this.shouldDisplayClearButton.set(shouldDisplay);
|
|
3850
|
+
}
|
|
3851
|
+
clickedSelectAll() {
|
|
3852
|
+
if (this.areAllOptionsSelected()) {
|
|
3853
|
+
this.internalValue.set([]);
|
|
3854
|
+
}
|
|
3855
|
+
else {
|
|
3856
|
+
this.internalValue.set(this.options().map((option) => option.value));
|
|
3857
|
+
}
|
|
3858
|
+
}
|
|
3859
|
+
clickedSelectItemMultiple(value) {
|
|
3860
|
+
const currentValue = this.internalValue();
|
|
3861
|
+
if (currentValue === undefined) {
|
|
3862
|
+
this.internalValue.set([value]);
|
|
3863
|
+
}
|
|
3864
|
+
else {
|
|
3865
|
+
if (Array.isArray(currentValue)) {
|
|
3866
|
+
const valuesArray = currentValue;
|
|
3867
|
+
const valueIndex = valuesArray.indexOf(value);
|
|
3868
|
+
if (valueIndex > -1) {
|
|
3869
|
+
valuesArray.splice(valueIndex, 1);
|
|
3870
|
+
}
|
|
3871
|
+
else {
|
|
3872
|
+
valuesArray.push(value);
|
|
3873
|
+
}
|
|
3874
|
+
this.internalValue.set(valuesArray);
|
|
3875
|
+
}
|
|
3876
|
+
}
|
|
3877
|
+
}
|
|
3878
|
+
mapOptionToDropdownItemConfig(option) {
|
|
3879
|
+
const { value, label } = option;
|
|
3880
|
+
return {
|
|
3881
|
+
id: value,
|
|
3882
|
+
label: label,
|
|
3883
|
+
selected: this.isSelected(value),
|
|
3884
|
+
hasCheckbox: this.multiple(),
|
|
3885
|
+
};
|
|
3505
3886
|
}
|
|
3506
3887
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3507
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
3888
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SelectComponent, isStandalone: true, selector: "rte-select", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "ariaLabelledby", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, labelId: { classPropertyName: "labelId", publicName: "labelId", isSignal: true, isRequired: false, transformFunction: null }, labelPosition: { classPropertyName: "labelPosition", publicName: "labelPosition", isSignal: true, isRequired: false, transformFunction: null }, assistiveTextLabel: { classPropertyName: "assistiveTextLabel", publicName: "assistiveTextLabel", isSignal: true, isRequired: false, transformFunction: null }, assistiveTextAppearance: { classPropertyName: "assistiveTextAppearance", publicName: "assistiveTextAppearance", isSignal: true, isRequired: false, transformFunction: null }, assistiveTextLink: { classPropertyName: "assistiveTextLink", publicName: "assistiveTextLink", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, showLabelRequirement: { classPropertyName: "showLabelRequirement", publicName: "showLabelRequirement", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, isError: { classPropertyName: "isError", publicName: "isError", isSignal: true, isRequired: false, transformFunction: null }, showAssistiveIcon: { classPropertyName: "showAssistiveIcon", publicName: "showAssistiveIcon", isSignal: true, isRequired: false, transformFunction: null }, showResetButton: { classPropertyName: "showResetButton", publicName: "showResetButton", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, withSelectAll: { classPropertyName: "withSelectAll", publicName: "withSelectAll", isSignal: true, isRequired: false, transformFunction: null }, optionToDisplay: { classPropertyName: "optionToDisplay", publicName: "optionToDisplay", isSignal: true, isRequired: false, transformFunction: null }, headerTemplate: { classPropertyName: "headerTemplate", publicName: "headerTemplate", isSignal: true, isRequired: false, transformFunction: null }, footerTemplate: { classPropertyName: "footerTemplate", publicName: "footerTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange" }, providers: [
|
|
3508
3889
|
{
|
|
3509
3890
|
provide: NG_VALUE_ACCESSOR,
|
|
3510
3891
|
useExisting: SelectComponent,
|
|
3511
3892
|
multi: true,
|
|
3512
3893
|
},
|
|
3513
|
-
], viewQueries: [{ propertyName: "selectRef", first: true, predicate: ["selectRef"], descendants: true, isSignal: true }, { propertyName: "buttonsContainerRef", first: true, predicate: ["buttonsContainerRef"], descendants: true, isSignal: true }], ngImport: i0, template: "<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", styles: [".rte-select-container{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;flex-direction:column}.rte-select-container[data-label-position=side]{flex-direction:row;align-self:start}.rte-select-container[data-label-position=side] .rte-select-header{display:flex;flex-direction:column}.rte-select-container[data-label-position=side] .rte-select-label{height:32px;padding:0 8px}.rte-select-container .rte-select-label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;padding:2px 8px;color:var(--content-secondary);justify-content:space-between;white-space:normal;overflow-wrap:normal;word-break:normal}.rte-select-container .rte-select-label .requirement-indicator{margin-left:2px}.rte-select-container .rte-select-label .requirement-indicator.show-label-requirement{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;color:var(--content-tertiary)}.rte-select-container .rte-select-label .requirement-indicator.show-label-requirement:not(.required){font-style:italic}.rte-select-container .rte-select-label .requirement-indicator:not(.show-label-requirement).required{color:var(--content-danger-default)}.rte-select-container .rte-select-wrapper{box-shadow:inset 0 1px 4px 0 var(--elevation-shadow-key);background:linear-gradient(0deg,var(--elevation-surface-inner-shadow) 0%,var(--elevation-surface-inner-shadow) 100%);display:flex;min-width:112px;min-height:32px;max-height:32px;align-items:center;align-self:stretch;border-radius:4px;border:1px solid var(--border-secondary);box-sizing:border-box}.rte-select-container .rte-select-wrapper .trigger-icon{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper:hover{border-color:var(--border-primary);cursor:pointer}.rte-select-container .rte-select-wrapper:focus-visible,.rte-select-container .rte-select-wrapper[data-active=true]{border-color:var(--border-brand-default);outline:1px solid var(--border-brand-default)}.rte-select-container .rte-select-wrapper[data-error=true]{border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-disabled=true]{color:var(--content-disabled);border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-disabled=true]:hover{border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true]{color:var(--content-tertiary);border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true]:hover{cursor:default;border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true] .rte-select-content .rte-select-value{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper[data-error=true]:hover{border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true]:focus-visible{border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true] .rte-select-content .rte-select-value{color:var(--content-secondary)}.rte-select-container .rte-select-wrapper[data-disabled=true]{color:var(--content-disabled);background-color:var(--background-disabled);border-color:var(--border-disabled)}.rte-select-container .rte-select-wrapper[data-disabled=true]:hover{cursor:not-allowed}.rte-select-container .rte-select-wrapper[data-disabled=true] .trigger-icon,.rte-select-container .rte-select-wrapper[data-disabled=true] .rte-select-content .rte-select-value{color:var(--content-disabled)}.rte-select-container .rte-select-wrapper[data-read-only=true]{color:var(--content-tertiary);background-color:var(--background-disabled);border-color:var(--border-tertiary)}.rte-select-container .rte-select-wrapper[data-read-only=true]:hover{cursor:default}.rte-select-container .rte-select-wrapper[data-read-only=true] .trigger-icon{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper .rte-select-content{display:flex;min-width:96px;padding:4px 8px;align-items:center;flex:1 0 0}.rte-select-container .rte-select-wrapper .rte-select-content .error-icon{padding:0;color:var(--content-danger-default)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-value{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;padding:0 8px;align-items:center;flex:1 0 0;text-overflow:ellipsis;overflow:hidden;color:var(--content-primary)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-value span{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons{display:flex;align-items:center;gap:8px}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button{padding:0;height:20px;width:20px}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button:focus-visible{outline:1px solid var(--border-brand-focused);border-radius:2px;outline-offset:3px}.rte-select-container .assistive-text{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;display:flex;align-items:center;gap:4px;padding:4px 8px;color:var(--content-secondary)}.rte-select-container .assistive-text .assistive-icon-error{color:var(--content-danger-default)}.rte-select-container .assistive-text .assistive-icon-success{color:var(--content-success-default)}.rte-select-container .assistive-text.error{color:var(--content-danger-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}.rte-select-container .assistive-text.success{color:var(--content-success-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: DropdownDirective, selector: "[rteDropdown]", inputs: ["rteDropdownId", "rteDropdownPosition", "rteDropdownAlignment", "rteDropdownIsOpen", "rteDropdownOffset", "rteDropdownAutofocus", "rteDropdownAutoOpen", "rteDropdownWidth"], outputs: ["menuEvent", "clickedOutside", "closedDropdown"] }, { kind: "directive", type: DropdownTriggerDirective, selector: "[rteDropdownTrigger]", inputs: ["rteDropdownTriggerActivateWithArrowDown"], outputs: ["dropdownKeyDown", "dropdownTriggered", "dropdownTriggerFocus", "dropdownTriggerClearContent", "dropdownTriggerOpenDropdown", "dropdownTriggerCloseDropdown"] }, { kind: "component", type: DropdownMenuComponent, selector: "rte-dropdown-menu", inputs: ["items", "menuId", "isOpen", "width", "headerTemplate", "footerTemplate"], outputs: ["itemEvent", "closingMenu"] }, { kind: "component", type: IconButtonComponent, selector: "rte-icon-button", inputs: ["disabled", "name", "size", "variant", "type", "appearance", "compactSpacing", "ariaLabel", "ariaLabelledBy", "badgeCount", "badgeContent", "badgeType", "badgeIcon", "customStyle"], outputs: ["clickEvent"] }, { kind: "component", type: AssistiveTextComponent, selector: "rte-assistive-text", inputs: ["label", "appearance", "showIcon", "href", "width"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3894
|
+
], queries: [{ propertyName: "headerDirective", first: true, predicate: SelectHeaderDirective, descendants: true, isSignal: true }, { propertyName: "footerDirective", first: true, predicate: SelectFooterDirective, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "selectRef", first: true, predicate: ["selectRef"], descendants: true, isSignal: true }, { propertyName: "buttonsContainerRef", first: true, predicate: ["buttonsContainerRef"], descendants: true, isSignal: true }, { propertyName: "headerContentRef", first: true, predicate: ["headerContent"], descendants: true, isSignal: true }, { propertyName: "footerContentRef", first: true, predicate: ["footerContent"], descendants: true, isSignal: true }], ngImport: i0, template: "<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 [rteCloseOnItemClick]=\"multiple() ? false : true\"\n (menuEvent)=\"handleOnClickItem($event.id)\"\n (menuChangeEvent)=\"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 (dropdownTriggered)=\"handleOnClickTrigger()\"\n (dropdownKeyDown)=\"handleOnKeyDownTrigger($event)\"\n >\n <div class=\"rte-select-content\">\n <rte-icon *ngIf=\"shouldDisplayErrorIcon()\" name=\"error\" class=\"error-icon\" />\n\n <div class=\"rte-select-value\">\n @if (this.multiple() && currentDisplayedOption()) {\n <div class=\"rte-select-multiple-values\">\n <rte-chip\n type=\"input\"\n [label]=\"currentDisplayedOption()!.label\"\n (close)=\"handleOnCloseChip($event, currentDisplayedOption()!.value)\"\n />\n <rte-badge\n *ngIf=\"internalValue()!.length > 1\"\n content=\"number\"\n badgeType=\"brand\"\n size=\"m\"\n [count]=\"internalValue()!.length - 1\"\n [withPlusSign]=\"true\"\n [simpleBadge]=\"true\"\n />\n </div>\n } @else {\n <span>{{ currentDisplayedOption()?.label }}</span>\n }\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]=\"optionsFormatted()\">\n @if (hasHeaderContent()) {\n <ng-template rteDropdownMenuHeader>\n <div #headerContent>\n @if (headerTemplate() || headerDirective()?.templateRef) {\n <ng-container\n [ngTemplateOutlet]=\"(headerTemplate() || headerDirective()?.templateRef) ?? null\"\n ></ng-container>\n } @else {\n <div #headerContent>\n <ng-content select=\"[select-header]\"></ng-content>\n </div>\n }\n </div>\n </ng-template>\n }\n @if (hasFooterContent()) {\n <ng-template rteDropdownMenuFooter>\n <div #footerContent>\n @if (footerTemplate() || footerDirective()?.templateRef) {\n <ng-container\n [ngTemplateOutlet]=\"(footerTemplate() || footerDirective()?.templateRef) ?? null\"\n ></ng-container>\n } @else {\n <div #footerContent>\n <ng-content select=\"[select-footer]\"></ng-content>\n </div>\n }\n </div>\n </ng-template>\n }\n </rte-dropdown-menu>\n <rte-assistive-text\n *ngIf=\"assistiveTextLabel()\"\n [label]=\"assistiveTextLabel()\"\n [appearance]=\"isError() ? 'error' : assistiveTextAppearance()!\"\n [showIcon]=\"showAssistiveIcon()\"\n [href]=\"assistiveTextLink()\"\n />\n </div>\n</div>\n", styles: [".rte-select-container{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;flex-direction:column}.rte-select-container[data-label-position=side]{flex-direction:row;align-self:start}.rte-select-container[data-label-position=side] .rte-select-header{display:flex;flex-direction:column}.rte-select-container[data-label-position=side] .rte-select-label{height:32px;padding:0 8px}.rte-select-container .rte-select-label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;padding:2px 8px;color:var(--content-secondary);white-space:normal;overflow-wrap:normal;word-break:normal;align-items:center}.rte-select-container .rte-select-label .requirement-indicator{margin-left:2px}.rte-select-container .rte-select-label .requirement-indicator.show-label-requirement{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;color:var(--content-tertiary)}.rte-select-container .rte-select-label .requirement-indicator.show-label-requirement:not(.required){font-style:italic}.rte-select-container .rte-select-label .requirement-indicator:not(.show-label-requirement).required{color:var(--content-danger-default)}.rte-select-container .rte-select-wrapper{box-shadow:inset 0 1px 4px 0 var(--elevation-shadow-key);background:linear-gradient(0deg,var(--elevation-surface-inner-shadow) 0%,var(--elevation-surface-inner-shadow) 100%);display:flex;min-width:112px;min-height:32px;max-height:32px;align-items:center;align-self:stretch;border-radius:4px;border:1px solid var(--border-secondary);box-sizing:border-box}.rte-select-container .rte-select-wrapper .trigger-icon{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper:hover{border-color:var(--border-primary);cursor:pointer}.rte-select-container .rte-select-wrapper:focus-visible,.rte-select-container .rte-select-wrapper[data-active=true]{border-color:var(--border-brand-default);outline:1px solid var(--border-brand-default)}.rte-select-container .rte-select-wrapper[data-error=true]{border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-disabled=true]{color:var(--content-disabled);border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-disabled=true]:hover{border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true]{color:var(--content-tertiary);border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true]:hover{cursor:default;border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true] .rte-select-content .rte-select-value{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper[data-error=true]:hover{border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true]:focus-visible{border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true] .rte-select-content .rte-select-value{color:var(--content-secondary)}.rte-select-container .rte-select-wrapper[data-disabled=true]{color:var(--content-disabled);background-color:var(--background-disabled);border-color:var(--border-disabled)}.rte-select-container .rte-select-wrapper[data-disabled=true]:hover{cursor:not-allowed}.rte-select-container .rte-select-wrapper[data-disabled=true] .trigger-icon,.rte-select-container .rte-select-wrapper[data-disabled=true] .rte-select-content .rte-select-value{color:var(--content-disabled)}.rte-select-container .rte-select-wrapper[data-read-only=true]{color:var(--content-tertiary);background-color:var(--background-disabled);border-color:var(--border-tertiary)}.rte-select-container .rte-select-wrapper[data-read-only=true]:hover{cursor:default}.rte-select-container .rte-select-wrapper[data-read-only=true] .trigger-icon{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper .rte-select-content{display:flex;min-width:96px;padding:4px 8px;align-items:center;flex:1 0 0}.rte-select-container .rte-select-wrapper .rte-select-content .error-icon{padding:0;color:var(--content-danger-default)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-value{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;padding:0 8px;align-items:center;flex:1 0 0;text-overflow:ellipsis;overflow:hidden;color:var(--content-primary)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-value span{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-value .rte-select-multiple-values,.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons{display:flex;align-items:center;gap:8px}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button{padding:0;height:20px;width:20px;color:var(--content-secondary)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button:hover{color:var(--content-primary)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button:active{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button:focus-visible{outline:1px solid var(--border-brand-focused);border-radius:2px;outline-offset:3px}.rte-select-container .assistive-text{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;display:flex;align-items:center;gap:4px;padding:4px 8px;color:var(--content-secondary)}.rte-select-container .assistive-text .assistive-icon-error{color:var(--content-danger-default)}.rte-select-container .assistive-text .assistive-icon-success{color:var(--content-success-default)}.rte-select-container .assistive-text.error{color:var(--content-danger-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}.rte-select-container .assistive-text.success{color:var(--content-success-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: DropdownDirective, selector: "[rteDropdown]", inputs: ["rteDropdownId", "rteDropdownPosition", "rteDropdownAlignment", "rteDropdownIsOpen", "rteDropdownOffset", "rteDropdownAutofocus", "rteDropdownAutoOpen", "rteDropdownWidth", "rteCloseOnItemClick"], outputs: ["menuEvent", "clickedOutside", "closedDropdown", "menuChangeEvent"] }, { kind: "directive", type: DropdownTriggerDirective, selector: "[rteDropdownTrigger]", inputs: ["rteDropdownTriggerActivateWithArrowDown"], outputs: ["dropdownKeyDown", "dropdownTriggered", "dropdownTriggerFocus", "dropdownTriggerClearContent", "dropdownTriggerOpenDropdown", "dropdownTriggerCloseDropdown"] }, { kind: "component", type: DropdownMenuComponent, selector: "rte-dropdown-menu", inputs: ["items", "menuId", "isOpen", "width", "headerTemplate", "footerTemplate"], outputs: ["itemEvent", "closingMenu"] }, { kind: "directive", type: DropdownMenuHeaderDirective, selector: "[rteDropdownMenuHeader]" }, { kind: "directive", type: DropdownMenuFooterDirective, selector: "[rteDropdownMenuFooter]" }, { kind: "component", type: IconButtonComponent, selector: "rte-icon-button", inputs: ["disabled", "name", "size", "variant", "type", "appearance", "compactSpacing", "ariaLabel", "ariaLabelledBy", "badgeCount", "badgeContent", "badgeType", "badgeIcon", "customStyle"], outputs: ["clickEvent"] }, { kind: "component", type: AssistiveTextComponent, selector: "rte-assistive-text", inputs: ["label", "appearance", "showIcon", "href", "width"] }, { kind: "component", type: ChipComponent, selector: "rte-chip", inputs: ["id", "label", "selected", "disabled", "type", "compactSpacing"], outputs: ["click", "close"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge", "withPlusSign"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3514
3895
|
}
|
|
3515
3896
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectComponent, decorators: [{
|
|
3516
3897
|
type: Component,
|
|
3517
|
-
args: [{ selector: "rte-select", imports: [
|
|
3898
|
+
args: [{ selector: "rte-select", imports: [
|
|
3899
|
+
CommonModule,
|
|
3900
|
+
IconComponent,
|
|
3901
|
+
DropdownModule,
|
|
3902
|
+
IconButtonComponent,
|
|
3903
|
+
AssistiveTextComponent,
|
|
3904
|
+
ChipComponent,
|
|
3905
|
+
BadgeComponent,
|
|
3906
|
+
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
3518
3907
|
{
|
|
3519
3908
|
provide: NG_VALUE_ACCESSOR,
|
|
3520
3909
|
useExisting: SelectComponent,
|
|
3521
3910
|
multi: true,
|
|
3522
3911
|
},
|
|
3523
|
-
], template: "<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", styles: [".rte-select-container{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;flex-direction:column}.rte-select-container[data-label-position=side]{flex-direction:row;align-self:start}.rte-select-container[data-label-position=side] .rte-select-header{display:flex;flex-direction:column}.rte-select-container[data-label-position=side] .rte-select-label{height:32px;padding:0 8px}.rte-select-container .rte-select-label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;padding:2px 8px;color:var(--content-secondary);justify-content:space-between;white-space:normal;overflow-wrap:normal;word-break:normal}.rte-select-container .rte-select-label .requirement-indicator{margin-left:2px}.rte-select-container .rte-select-label .requirement-indicator.show-label-requirement{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;color:var(--content-tertiary)}.rte-select-container .rte-select-label .requirement-indicator.show-label-requirement:not(.required){font-style:italic}.rte-select-container .rte-select-label .requirement-indicator:not(.show-label-requirement).required{color:var(--content-danger-default)}.rte-select-container .rte-select-wrapper{box-shadow:inset 0 1px 4px 0 var(--elevation-shadow-key);background:linear-gradient(0deg,var(--elevation-surface-inner-shadow) 0%,var(--elevation-surface-inner-shadow) 100%);display:flex;min-width:112px;min-height:32px;max-height:32px;align-items:center;align-self:stretch;border-radius:4px;border:1px solid var(--border-secondary);box-sizing:border-box}.rte-select-container .rte-select-wrapper .trigger-icon{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper:hover{border-color:var(--border-primary);cursor:pointer}.rte-select-container .rte-select-wrapper:focus-visible,.rte-select-container .rte-select-wrapper[data-active=true]{border-color:var(--border-brand-default);outline:1px solid var(--border-brand-default)}.rte-select-container .rte-select-wrapper[data-error=true]{border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-disabled=true]{color:var(--content-disabled);border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-disabled=true]:hover{border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true]{color:var(--content-tertiary);border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true]:hover{cursor:default;border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true] .rte-select-content .rte-select-value{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper[data-error=true]:hover{border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true]:focus-visible{border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true] .rte-select-content .rte-select-value{color:var(--content-secondary)}.rte-select-container .rte-select-wrapper[data-disabled=true]{color:var(--content-disabled);background-color:var(--background-disabled);border-color:var(--border-disabled)}.rte-select-container .rte-select-wrapper[data-disabled=true]:hover{cursor:not-allowed}.rte-select-container .rte-select-wrapper[data-disabled=true] .trigger-icon,.rte-select-container .rte-select-wrapper[data-disabled=true] .rte-select-content .rte-select-value{color:var(--content-disabled)}.rte-select-container .rte-select-wrapper[data-read-only=true]{color:var(--content-tertiary);background-color:var(--background-disabled);border-color:var(--border-tertiary)}.rte-select-container .rte-select-wrapper[data-read-only=true]:hover{cursor:default}.rte-select-container .rte-select-wrapper[data-read-only=true] .trigger-icon{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper .rte-select-content{display:flex;min-width:96px;padding:4px 8px;align-items:center;flex:1 0 0}.rte-select-container .rte-select-wrapper .rte-select-content .error-icon{padding:0;color:var(--content-danger-default)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-value{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;padding:0 8px;align-items:center;flex:1 0 0;text-overflow:ellipsis;overflow:hidden;color:var(--content-primary)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-value span{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons{display:flex;align-items:center;gap:8px}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button{padding:0;height:20px;width:20px}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button:focus-visible{outline:1px solid var(--border-brand-focused);border-radius:2px;outline-offset:3px}.rte-select-container .assistive-text{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;display:flex;align-items:center;gap:4px;padding:4px 8px;color:var(--content-secondary)}.rte-select-container .assistive-text .assistive-icon-error{color:var(--content-danger-default)}.rte-select-container .assistive-text .assistive-icon-success{color:var(--content-success-default)}.rte-select-container .assistive-text.error{color:var(--content-danger-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}.rte-select-container .assistive-text.success{color:var(--content-success-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}\n"] }]
|
|
3912
|
+
], template: "<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 [rteCloseOnItemClick]=\"multiple() ? false : true\"\n (menuEvent)=\"handleOnClickItem($event.id)\"\n (menuChangeEvent)=\"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 (dropdownTriggered)=\"handleOnClickTrigger()\"\n (dropdownKeyDown)=\"handleOnKeyDownTrigger($event)\"\n >\n <div class=\"rte-select-content\">\n <rte-icon *ngIf=\"shouldDisplayErrorIcon()\" name=\"error\" class=\"error-icon\" />\n\n <div class=\"rte-select-value\">\n @if (this.multiple() && currentDisplayedOption()) {\n <div class=\"rte-select-multiple-values\">\n <rte-chip\n type=\"input\"\n [label]=\"currentDisplayedOption()!.label\"\n (close)=\"handleOnCloseChip($event, currentDisplayedOption()!.value)\"\n />\n <rte-badge\n *ngIf=\"internalValue()!.length > 1\"\n content=\"number\"\n badgeType=\"brand\"\n size=\"m\"\n [count]=\"internalValue()!.length - 1\"\n [withPlusSign]=\"true\"\n [simpleBadge]=\"true\"\n />\n </div>\n } @else {\n <span>{{ currentDisplayedOption()?.label }}</span>\n }\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]=\"optionsFormatted()\">\n @if (hasHeaderContent()) {\n <ng-template rteDropdownMenuHeader>\n <div #headerContent>\n @if (headerTemplate() || headerDirective()?.templateRef) {\n <ng-container\n [ngTemplateOutlet]=\"(headerTemplate() || headerDirective()?.templateRef) ?? null\"\n ></ng-container>\n } @else {\n <div #headerContent>\n <ng-content select=\"[select-header]\"></ng-content>\n </div>\n }\n </div>\n </ng-template>\n }\n @if (hasFooterContent()) {\n <ng-template rteDropdownMenuFooter>\n <div #footerContent>\n @if (footerTemplate() || footerDirective()?.templateRef) {\n <ng-container\n [ngTemplateOutlet]=\"(footerTemplate() || footerDirective()?.templateRef) ?? null\"\n ></ng-container>\n } @else {\n <div #footerContent>\n <ng-content select=\"[select-footer]\"></ng-content>\n </div>\n }\n </div>\n </ng-template>\n }\n </rte-dropdown-menu>\n <rte-assistive-text\n *ngIf=\"assistiveTextLabel()\"\n [label]=\"assistiveTextLabel()\"\n [appearance]=\"isError() ? 'error' : assistiveTextAppearance()!\"\n [showIcon]=\"showAssistiveIcon()\"\n [href]=\"assistiveTextLink()\"\n />\n </div>\n</div>\n", styles: [".rte-select-container{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;flex-direction:column}.rte-select-container[data-label-position=side]{flex-direction:row;align-self:start}.rte-select-container[data-label-position=side] .rte-select-header{display:flex;flex-direction:column}.rte-select-container[data-label-position=side] .rte-select-label{height:32px;padding:0 8px}.rte-select-container .rte-select-label{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;padding:2px 8px;color:var(--content-secondary);white-space:normal;overflow-wrap:normal;word-break:normal;align-items:center}.rte-select-container .rte-select-label .requirement-indicator{margin-left:2px}.rte-select-container .rte-select-label .requirement-indicator.show-label-requirement{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;color:var(--content-tertiary)}.rte-select-container .rte-select-label .requirement-indicator.show-label-requirement:not(.required){font-style:italic}.rte-select-container .rte-select-label .requirement-indicator:not(.show-label-requirement).required{color:var(--content-danger-default)}.rte-select-container .rte-select-wrapper{box-shadow:inset 0 1px 4px 0 var(--elevation-shadow-key);background:linear-gradient(0deg,var(--elevation-surface-inner-shadow) 0%,var(--elevation-surface-inner-shadow) 100%);display:flex;min-width:112px;min-height:32px;max-height:32px;align-items:center;align-self:stretch;border-radius:4px;border:1px solid var(--border-secondary);box-sizing:border-box}.rte-select-container .rte-select-wrapper .trigger-icon{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper:hover{border-color:var(--border-primary);cursor:pointer}.rte-select-container .rte-select-wrapper:focus-visible,.rte-select-container .rte-select-wrapper[data-active=true]{border-color:var(--border-brand-default);outline:1px solid var(--border-brand-default)}.rte-select-container .rte-select-wrapper[data-error=true]{border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-disabled=true]{color:var(--content-disabled);border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-disabled=true]:hover{border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true]{color:var(--content-tertiary);border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true]:hover{cursor:default;border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true][data-read-only=true] .rte-select-content .rte-select-value{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper[data-error=true]:hover{border-color:var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true]:focus-visible{border-color:var(--border-danger);outline:1px solid var(--border-danger)}.rte-select-container .rte-select-wrapper[data-error=true] .rte-select-content .rte-select-value{color:var(--content-secondary)}.rte-select-container .rte-select-wrapper[data-disabled=true]{color:var(--content-disabled);background-color:var(--background-disabled);border-color:var(--border-disabled)}.rte-select-container .rte-select-wrapper[data-disabled=true]:hover{cursor:not-allowed}.rte-select-container .rte-select-wrapper[data-disabled=true] .trigger-icon,.rte-select-container .rte-select-wrapper[data-disabled=true] .rte-select-content .rte-select-value{color:var(--content-disabled)}.rte-select-container .rte-select-wrapper[data-read-only=true]{color:var(--content-tertiary);background-color:var(--background-disabled);border-color:var(--border-tertiary)}.rte-select-container .rte-select-wrapper[data-read-only=true]:hover{cursor:default}.rte-select-container .rte-select-wrapper[data-read-only=true] .trigger-icon{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper .rte-select-content{display:flex;min-width:96px;padding:4px 8px;align-items:center;flex:1 0 0}.rte-select-container .rte-select-wrapper .rte-select-content .error-icon{padding:0;color:var(--content-danger-default)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-value{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;padding:0 8px;align-items:center;flex:1 0 0;text-overflow:ellipsis;overflow:hidden;color:var(--content-primary)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-value span{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-value .rte-select-multiple-values,.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons{display:flex;align-items:center;gap:8px}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button{padding:0;height:20px;width:20px;color:var(--content-secondary)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button:hover{color:var(--content-primary)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button:active{color:var(--content-tertiary)}.rte-select-container .rte-select-wrapper .rte-select-content .rte-select-right-icons ::ng-deep .rte-icon-button:focus-visible{outline:1px solid var(--border-brand-focused);border-radius:2px;outline-offset:3px}.rte-select-container .assistive-text{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;display:flex;align-items:center;gap:4px;padding:4px 8px;color:var(--content-secondary)}.rte-select-container .assistive-text .assistive-icon-error{color:var(--content-danger-default)}.rte-select-container .assistive-text .assistive-icon-success{color:var(--content-success-default)}.rte-select-container .assistive-text.error{color:var(--content-danger-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}.rte-select-container .assistive-text.success{color:var(--content-success-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}\n"] }]
|
|
3524
3913
|
}] });
|
|
3525
3914
|
|
|
3526
3915
|
class TabItemComponent {
|
|
@@ -3622,11 +4011,11 @@ class TabItemComponent {
|
|
|
3622
4011
|
});
|
|
3623
4012
|
}
|
|
3624
4013
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3625
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: TabItemComponent, isStandalone: true, selector: "rte-tab-item", inputs: { direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, option: { classPropertyName: "option", publicName: "option", isSignal: true, isRequired: false, transformFunction: null }, compactSpacing: { classPropertyName: "compactSpacing", publicName: "compactSpacing", isSignal: true, isRequired: false, transformFunction: null }, isSelected: { classPropertyName: "isSelected", publicName: "isSelected", isSignal: true, isRequired: false, transformFunction: null }, handleKeydown: { classPropertyName: "handleKeydown", publicName: "handleKeydown", isSignal: true, isRequired: false, transformFunction: null }, inverted: { classPropertyName: "inverted", publicName: "inverted", isSignal: true, isRequired: false, transformFunction: null }, isHidden: { classPropertyName: "isHidden", publicName: "isHidden", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click: "click" }, viewQueries: [{ propertyName: "tabItemRef", first: true, predicate: ["tabItem"], descendants: true, isSignal: true }], ngImport: i0, template: "<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", styles: [":host{pointer-events:none;display:flex}.rte-tabitem{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;padding:12px;justify-content:center;align-items:center;gap:12px;background:transparent;color:var(--content-
|
|
4014
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: TabItemComponent, isStandalone: true, selector: "rte-tab-item", inputs: { direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, option: { classPropertyName: "option", publicName: "option", isSignal: true, isRequired: false, transformFunction: null }, compactSpacing: { classPropertyName: "compactSpacing", publicName: "compactSpacing", isSignal: true, isRequired: false, transformFunction: null }, isSelected: { classPropertyName: "isSelected", publicName: "isSelected", isSignal: true, isRequired: false, transformFunction: null }, handleKeydown: { classPropertyName: "handleKeydown", publicName: "handleKeydown", isSignal: true, isRequired: false, transformFunction: null }, inverted: { classPropertyName: "inverted", publicName: "inverted", isSignal: true, isRequired: false, transformFunction: null }, isHidden: { classPropertyName: "isHidden", publicName: "isHidden", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { click: "click" }, viewQueries: [{ propertyName: "tabItemRef", first: true, predicate: ["tabItem"], descendants: true, isSignal: true }], ngImport: i0, template: "<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", styles: [":host{pointer-events:none;display:flex}.rte-tabitem{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;padding:12px;justify-content:center;align-items:center;gap:12px;background:transparent;color:var(--content-tertiary);cursor:pointer;border:none;text-align:left;flex-shrink:0;margin-left:2px;height:100%;pointer-events:auto}.rte-tabitem[data-inverted=true],.rte-tabitem[data-inverted=true]:hover,.rte-tabitem[data-inverted=true][data-selected=true]{color:var(--content-primary-inverse)}.rte-tabitem[data-direction=vertical]{flex-shrink:1;margin-left:0}.rte-tabitem[data-hidden=true]{visibility:hidden}.rte-tabitem:hover{color:var(--content-secondary)}.rte-tabitem[data-selected=true]{color:var(--content-primary)}.rte-tabitem[data-disabled=true]{color:var(--content-disabled);cursor:not-allowed}.rte-tabitem[data-compact-spacing=true]{padding:4px 12px}.rte-tabitem:focus-visible{z-index:1;outline:2px solid var(--border-brand-focused)}.rte-tab-hover-indicator{position:absolute;top:4px;height:2px;width:2px;background:var(--background-neutral-regular-hover);opacity:0;transition:left .2s ease,width .2s ease;z-index:10}.rte-tab-hover-indicator[data-disabled=true]{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge", "withPlusSign"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3626
4015
|
}
|
|
3627
4016
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabItemComponent, decorators: [{
|
|
3628
4017
|
type: Component,
|
|
3629
|
-
args: [{ selector: "rte-tab-item", imports: [CommonModule, IconComponent, BadgeComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<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", styles: [":host{pointer-events:none;display:flex}.rte-tabitem{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;padding:12px;justify-content:center;align-items:center;gap:12px;background:transparent;color:var(--content-
|
|
4018
|
+
args: [{ selector: "rte-tab-item", imports: [CommonModule, IconComponent, BadgeComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<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", styles: [":host{pointer-events:none;display:flex}.rte-tabitem{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:14px;line-height:20px;letter-spacing:0px;display:flex;padding:12px;justify-content:center;align-items:center;gap:12px;background:transparent;color:var(--content-tertiary);cursor:pointer;border:none;text-align:left;flex-shrink:0;margin-left:2px;height:100%;pointer-events:auto}.rte-tabitem[data-inverted=true],.rte-tabitem[data-inverted=true]:hover,.rte-tabitem[data-inverted=true][data-selected=true]{color:var(--content-primary-inverse)}.rte-tabitem[data-direction=vertical]{flex-shrink:1;margin-left:0}.rte-tabitem[data-hidden=true]{visibility:hidden}.rte-tabitem:hover{color:var(--content-secondary)}.rte-tabitem[data-selected=true]{color:var(--content-primary)}.rte-tabitem[data-disabled=true]{color:var(--content-disabled);cursor:not-allowed}.rte-tabitem[data-compact-spacing=true]{padding:4px 12px}.rte-tabitem:focus-visible{z-index:1;outline:2px solid var(--border-brand-focused)}.rte-tab-hover-indicator{position:absolute;top:4px;height:2px;width:2px;background:var(--background-neutral-regular-hover);opacity:0;transition:left .2s ease,width .2s ease;z-index:10}.rte-tab-hover-indicator[data-disabled=true]{display:none}\n"] }]
|
|
3630
4019
|
}] });
|
|
3631
4020
|
|
|
3632
4021
|
class TabComponent {
|
|
@@ -3850,7 +4239,7 @@ class TabComponent {
|
|
|
3850
4239
|
}
|
|
3851
4240
|
}
|
|
3852
4241
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3853
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: TabComponent, isStandalone: true, selector: "rte-tab", inputs: { alignment: { classPropertyName: "alignment", publicName: "alignment", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, selectedTabId: { classPropertyName: "selectedTabId", publicName: "selectedTabId", isSignal: true, isRequired: false, transformFunction: null }, compactSpacing: { classPropertyName: "compactSpacing", publicName: "compactSpacing", isSignal: true, isRequired: false, transformFunction: null }, overflowType: { classPropertyName: "overflowType", publicName: "overflowType", isSignal: true, isRequired: false, transformFunction: null }, inverted: { classPropertyName: "inverted", publicName: "inverted", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, viewQueries: [{ propertyName: "tabItemRefs", predicate: ["tabItem"], descendants: true, isSignal: true }, { propertyName: "containerRef", first: true, predicate: ["tabList"], descendants: true, isSignal: true }, { propertyName: "hoverIndicatorRefs", predicate: ["hoverIndicator"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<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", styles: [".rte-tab-container{position:relative;display:flex;flex-direction:column}.rte-tab-container[data-direction=vertical]{flex-direction:row;height:100%}.rte-tab{position:relative;display:flex;height:100%;gap:24px;justify-content:flex-start;padding-bottom:2px;margin-bottom:-2px;margin-left:-2px;scrollbar-width:none;width:100%;padding-top:2px;padding-left:2px;align-items:center}.rte-tab[data-direction=horizontal]{overflow-x:scroll}.rte-tab[data-direction=horizontal][data-overflow-type=dropdown]{overflow:hidden;margin-left:0}.rte-tab[data-direction=vertical]{flex-direction:column;border-bottom:none;gap:4px;height:100%;padding-right:2px;margin-left:-2px;width:max-content;align-items:start;margin-bottom:0}.rte-tab[data-direction=vertical] .rte-tab-selected-indicator{width:2px;transition:top .2s ease,height .2s ease}.rte-tab[data-alignment=center]{justify-content:center}.rte-tab .rte-tab-selected-indicator{position:absolute;bottom:0;height:2px;background:var(--background-brand-selected-default);transition:left .2s ease,width .2s ease;pointer-events:none;z-index:1}.rte-tab .rte-tab-separator{width:24px;flex-shrink:0}.rte-tab-border-horizontal{background-color:var(--background-neutral-regular-default);position:relative;height:2px}.rte-tab-border-horizontal[data-compact-spacing=true][data-scrollable=true]{bottom:5px}.rte-tab-border-horizontal[data-direction=vertical]{display:none}.rte-tab-border-vertical{background-color:var(--background-neutral-regular-default);position:relative;width:2px}.rte-tab-border-vertical[data-direction=horizontal]{display:none}.rte-tab-dropdown-button{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:14px;line-height:20px;letter-spacing:0px;color:var(--content-secondary);width:max-content;display:flex;align-items:center;gap:12px;background-color:transparent;border:none;cursor:pointer;padding:0;margin:12px}.rte-tab-dropdown-button:focus-visible{outline:2px solid var(--border-brand-focused);outline-offset:12px;z-index:1}.rte-tab-dropdown-button[data-inverted=true]{color:var(--content-primary-inverse)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: TabItemComponent, selector: "rte-tab-item", inputs: ["direction", "option", "compactSpacing", "isSelected", "handleKeydown", "inverted", "isHidden"], outputs: ["click"] }, { kind: "component", type: IconButtonComponent, selector: "rte-icon-button", inputs: ["disabled", "name", "size", "variant", "type", "appearance", "compactSpacing", "ariaLabel", "ariaLabelledBy", "badgeCount", "badgeContent", "badgeType", "badgeIcon", "customStyle"], outputs: ["clickEvent"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: DropdownDirective, selector: "[rteDropdown]", inputs: ["rteDropdownId", "rteDropdownPosition", "rteDropdownAlignment", "rteDropdownIsOpen", "rteDropdownOffset", "rteDropdownAutofocus", "rteDropdownAutoOpen", "rteDropdownWidth"], outputs: ["menuEvent", "clickedOutside", "closedDropdown"] }, { kind: "directive", type: DropdownTriggerDirective, selector: "[rteDropdownTrigger]", inputs: ["rteDropdownTriggerActivateWithArrowDown"], outputs: ["dropdownKeyDown", "dropdownTriggered", "dropdownTriggerFocus", "dropdownTriggerClearContent", "dropdownTriggerOpenDropdown", "dropdownTriggerCloseDropdown"] }, { kind: "component", type: DropdownMenuComponent, selector: "rte-dropdown-menu", inputs: ["items", "menuId", "isOpen", "width", "headerTemplate", "footerTemplate"], outputs: ["itemEvent", "closingMenu"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4242
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: TabComponent, isStandalone: true, selector: "rte-tab", inputs: { alignment: { classPropertyName: "alignment", publicName: "alignment", isSignal: true, isRequired: false, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, selectedTabId: { classPropertyName: "selectedTabId", publicName: "selectedTabId", isSignal: true, isRequired: false, transformFunction: null }, compactSpacing: { classPropertyName: "compactSpacing", publicName: "compactSpacing", isSignal: true, isRequired: false, transformFunction: null }, overflowType: { classPropertyName: "overflowType", publicName: "overflowType", isSignal: true, isRequired: false, transformFunction: null }, inverted: { classPropertyName: "inverted", publicName: "inverted", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, viewQueries: [{ propertyName: "tabItemRefs", predicate: ["tabItem"], descendants: true, isSignal: true }, { propertyName: "containerRef", first: true, predicate: ["tabList"], descendants: true, isSignal: true }, { propertyName: "hoverIndicatorRefs", predicate: ["hoverIndicator"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<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", styles: [".rte-tab-container{position:relative;display:flex;flex-direction:column}.rte-tab-container[data-direction=vertical]{flex-direction:row;height:100%}.rte-tab{position:relative;display:flex;height:100%;gap:24px;justify-content:flex-start;padding-bottom:2px;margin-bottom:-2px;margin-left:-2px;scrollbar-width:none;width:100%;padding-top:2px;padding-left:2px;align-items:center}.rte-tab[data-direction=horizontal]{overflow-x:scroll}.rte-tab[data-direction=horizontal][data-overflow-type=dropdown]{overflow:hidden;margin-left:0}.rte-tab[data-direction=vertical]{flex-direction:column;border-bottom:none;gap:4px;height:100%;padding-right:2px;margin-left:-2px;width:max-content;align-items:start;margin-bottom:0}.rte-tab[data-direction=vertical] .rte-tab-selected-indicator{width:2px;transition:top .2s ease,height .2s ease}.rte-tab[data-alignment=center]{justify-content:center}.rte-tab .rte-tab-selected-indicator{position:absolute;bottom:0;height:2px;background:var(--background-brand-selected-default);transition:left .2s ease,width .2s ease;pointer-events:none;z-index:1}.rte-tab .rte-tab-separator{width:24px;flex-shrink:0}.rte-tab-border-horizontal{background-color:var(--background-neutral-regular-default);position:relative;height:2px}.rte-tab-border-horizontal[data-compact-spacing=true][data-scrollable=true]{bottom:5px}.rte-tab-border-horizontal[data-direction=vertical]{display:none}.rte-tab-border-vertical{background-color:var(--background-neutral-regular-default);position:relative;width:2px}.rte-tab-border-vertical[data-direction=horizontal]{display:none}.rte-tab-dropdown-button{font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:14px;line-height:20px;letter-spacing:0px;color:var(--content-secondary);width:max-content;display:flex;align-items:center;gap:12px;background-color:transparent;border:none;cursor:pointer;padding:0;margin:12px}.rte-tab-dropdown-button:focus-visible{outline:2px solid var(--border-brand-focused);outline-offset:12px;z-index:1}.rte-tab-dropdown-button[data-inverted=true]{color:var(--content-primary-inverse)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: TabItemComponent, selector: "rte-tab-item", inputs: ["direction", "option", "compactSpacing", "isSelected", "handleKeydown", "inverted", "isHidden"], outputs: ["click"] }, { kind: "component", type: IconButtonComponent, selector: "rte-icon-button", inputs: ["disabled", "name", "size", "variant", "type", "appearance", "compactSpacing", "ariaLabel", "ariaLabelledBy", "badgeCount", "badgeContent", "badgeType", "badgeIcon", "customStyle"], outputs: ["clickEvent"] }, { kind: "ngmodule", type: DropdownModule }, { kind: "directive", type: DropdownDirective, selector: "[rteDropdown]", inputs: ["rteDropdownId", "rteDropdownPosition", "rteDropdownAlignment", "rteDropdownIsOpen", "rteDropdownOffset", "rteDropdownAutofocus", "rteDropdownAutoOpen", "rteDropdownWidth", "rteCloseOnItemClick"], outputs: ["menuEvent", "clickedOutside", "closedDropdown", "menuChangeEvent"] }, { kind: "directive", type: DropdownTriggerDirective, selector: "[rteDropdownTrigger]", inputs: ["rteDropdownTriggerActivateWithArrowDown"], outputs: ["dropdownKeyDown", "dropdownTriggered", "dropdownTriggerFocus", "dropdownTriggerClearContent", "dropdownTriggerOpenDropdown", "dropdownTriggerCloseDropdown"] }, { kind: "component", type: DropdownMenuComponent, selector: "rte-dropdown-menu", inputs: ["items", "menuId", "isOpen", "width", "headerTemplate", "footerTemplate"], outputs: ["itemEvent", "closingMenu"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: BadgeComponent, selector: "rte-badge", inputs: ["badgeType", "badgeSize", "badgeContent", "count", "icon", "simpleBadge", "withPlusSign"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3854
4243
|
}
|
|
3855
4244
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabComponent, decorators: [{
|
|
3856
4245
|
type: Component,
|
|
@@ -3861,5 +4250,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
3861
4250
|
* Generated bundle index. Do not edit.
|
|
3862
4251
|
*/
|
|
3863
4252
|
|
|
3864
|
-
export { BadgeDirective, BannerComponent, BreadcrumbsComponent, ButtonComponent, CardComponent, CheckboxComponent, CheckboxGroupComponent, ChipComponent, ColDirective, DividerComponent, GridDirective, IconButtonComponent, IconButtonToggleComponent, IconComponent, LinkComponent, LoaderComponent, ModalDirective, ModalModule, ModalTriggerDirective, PopoverDirective, RadioButtonComponent, RadioButtonGroupComponent, SearchbarComponent, SegmentedControlComponent, SelectComponent, SideNavComponent, SplitButtonComponent, StepperComponent, SwitchComponent, TabComponent, TagComponent, TextInputComponent, TextareaComponent, ToastComponent, ToastService, TooltipDirective };
|
|
4253
|
+
export { BadgeDirective, BannerComponent, BaseSideNavComponent, BreadcrumbsComponent, ButtonComponent, CardComponent, CheckboxComponent, CheckboxGroupComponent, ChipComponent, ColDirective, DividerComponent, DropdownDirective, DropdownItemComponent, DropdownMenuComponent, DropdownMenuFooterDirective, DropdownMenuHeaderDirective, DropdownModule, DropdownTriggerDirective, GridDirective, IconButtonComponent, IconButtonToggleComponent, IconComponent, LinkComponent, LoaderComponent, ModalDirective, ModalModule, ModalTriggerDirective, PopoverDirective, RadioButtonComponent, RadioButtonGroupComponent, SearchbarComponent, SegmentedControlComponent, SelectComponent, SideNavComponent, SplitButtonComponent, StepperComponent, SwitchComponent, TabComponent, TagComponent, TextInputComponent, TextareaComponent, ToastComponent, ToastService, TooltipDirective };
|
|
3865
4254
|
//# sourceMappingURL=design-system-rte-angular.mjs.map
|