@fundamental-ngx/core 0.58.0-rc.69 → 0.58.0-rc.70
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/button/index.d.ts +1 -1
- package/card/index.d.ts +8 -4
- package/dialog/index.d.ts +2 -2
- package/feed-input/index.d.ts +1 -1
- package/fesm2022/fundamental-ngx-core-action-sheet.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-action-sheet.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-card.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-dialog.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-feed-input.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-feed-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-input-group.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-menu.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-message-box.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-multi-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-nested-list.mjs +4 -4
- package/fesm2022/fundamental-ngx-core-nested-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-overflow-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs +2 -2
- package/fesm2022/fundamental-ngx-core-resizable-card-layout.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-segmented-button.mjs +3 -3
- package/fesm2022/fundamental-ngx-core-segmented-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tabs.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-time-picker.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-time.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-toolbar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-core-tree.mjs.map +1 -1
- package/form/index.d.ts +2 -2
- package/input-group/index.d.ts +1 -1
- package/list/index.d.ts +4 -4
- package/menu/index.d.ts +2 -2
- package/message-box/index.d.ts +1 -1
- package/multi-combobox/index.d.ts +2 -2
- package/multi-input/index.d.ts +1 -1
- package/nested-list/index.d.ts +11 -11
- package/overflow-layout/index.d.ts +4 -4
- package/package.json +40 -40
- package/popover/index.d.ts +2 -2
- package/segmented-button/index.d.ts +3 -3
- package/table/index.d.ts +2 -2
- package/tabs/index.d.ts +3 -3
- package/time/index.d.ts +1 -1
- package/time-picker/index.d.ts +1 -1
- package/toolbar/index.d.ts +1 -1
- package/tree/index.d.ts +3 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ENTER, SPACE } from '@angular/cdk/keycodes';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import {
|
|
3
|
+
import { signal, inject, Renderer2, effect, forwardRef, booleanAttribute, HostListener, ContentChildren, Input, Optional, Host, ChangeDetectionStrategy, ViewEncapsulation, Component, NgModule } from '@angular/core';
|
|
4
4
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
5
5
|
import * as i1 from '@fundamental-ngx/cdk/utils';
|
|
6
6
|
import { destroyObservable, KeyUtil, FocusableItemDirective, FocusableListDirective } from '@fundamental-ngx/cdk/utils';
|
|
@@ -37,6 +37,8 @@ class SegmentedButtonComponent {
|
|
|
37
37
|
**/
|
|
38
38
|
this.vertical = false;
|
|
39
39
|
/** @hidden */
|
|
40
|
+
this._focusedItemId = signal(null, ...(ngDevMode ? [{ debugName: "_focusedItemId" }] : []));
|
|
41
|
+
/** @hidden */
|
|
40
42
|
this._isDisabled = false;
|
|
41
43
|
/** An RxJS Subject that will kill the data stream upon queryList changes (for unsubscribing) */
|
|
42
44
|
this._onRefresh$ = new Subject();
|
|
@@ -46,8 +48,6 @@ class SegmentedButtonComponent {
|
|
|
46
48
|
/** @hidden */
|
|
47
49
|
this._translationResolver = inject(TranslationResolver);
|
|
48
50
|
/** @hidden */
|
|
49
|
-
this._focusedItemId = signal(null, ...(ngDevMode ? [{ debugName: "_focusedItemId" }] : []));
|
|
50
|
-
/** @hidden */
|
|
51
51
|
this.renderer = inject(Renderer2);
|
|
52
52
|
/** @hidden */
|
|
53
53
|
this.onChange = () => { };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-core-segmented-button.mjs","sources":["../tmp-esm2022/segmented-button/segmented-button.component.js","../tmp-esm2022/segmented-button/segmented-button.module.js","../tmp-esm2022/segmented-button/fundamental-ngx-core-segmented-button.js"],"sourcesContent":["import { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, DestroyRef, ElementRef, Host, HostListener, Input, NgZone, Optional, QueryList, Renderer2, ViewEncapsulation, booleanAttribute, effect, forwardRef, inject, signal } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FocusableItemDirective, FocusableListDirective, KeyUtil, RtlService, destroyObservable } from '@fundamental-ngx/cdk/utils';\nimport { FD_BUTTON_COMPONENT } from '@fundamental-ngx/core/button';\nimport { FD_LANGUAGE, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { EMPTY, Subject, asyncScheduler, fromEvent, merge } from 'rxjs';\nimport { filter, observeOn, startWith, takeUntil, tap } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@fundamental-ngx/cdk/utils\";\n/**\n * Container for grouped buttons.\n *\n * ```html\n * <fd-segmented-button [(ngModel)]=\"value\">\n * <button fd-button value=\"first\">Button</button>\n * <button fd-button value=\"second\">Button</button>\n * <button fd-button value=\"third\">Button</button>\n * </fd-segmented-button>\n * ```\n */\nexport class SegmentedButtonComponent {\n /** @hidden */\n constructor(_changeDetRef, _elementRef, _destroyRef, _ngZone, _focusableList, _rtlService) {\n this._changeDetRef = _changeDetRef;\n this._elementRef = _elementRef;\n this._destroyRef = _destroyRef;\n this._ngZone = _ngZone;\n this._focusableList = _focusableList;\n this._rtlService = _rtlService;\n /** Whether segmented button is on toggle mode, which allows to toggle more than 1 button */\n this.toggle = false;\n /**\n * Whether segmented button is on vertical mode,\n * which allows to display buttons vertically\n **/\n this.vertical = false;\n /** @hidden */\n this._isDisabled = false;\n /** An RxJS Subject that will kill the data stream upon queryList changes (for unsubscribing) */\n this._onRefresh$ = new Subject();\n this._onDestroy$ = new Subject();\n /** @hidden */\n this._lang$ = inject(FD_LANGUAGE);\n /** @hidden */\n this._translationResolver = inject(TranslationResolver);\n /** @hidden */\n this._focusedItemId = signal(null, ...(ngDevMode ? [{ debugName: \"_focusedItemId\" }] : []));\n /** @hidden */\n this.renderer = inject(Renderer2);\n /** @hidden */\n this.onChange = () => { };\n /** @hidden */\n this.onTouched = () => { };\n this._focusableList.navigationDirection = this.vertical ? 'vertical' : 'horizontal';\n effect(() => {\n this._focusableList.contentDirection = this._rtlService?.rtlSignal() ? 'rtl' : 'ltr';\n });\n this._focusableList.itemFocused.pipe(takeUntil(this._onDestroy$)).subscribe((item) => {\n this._focusedItemId.set(item.id);\n });\n }\n /** @hidden */\n _click(event) {\n if (!this._elementRef.nativeElement.contains(event.relatedTarget)) {\n this.onTouched();\n }\n }\n /** @hidden */\n ngOnInit() {\n this._lang$.pipe(takeUntil(this._onDestroy$)).subscribe((lang) => {\n this._groupRoleDescription = this._translationResolver.resolve(lang, 'segmentedButton.groupRoleDescription');\n this._buttonRoleDescription = this._translationResolver.resolve(lang, 'segmentedButton.buttonRoleDescription');\n this._updateButtonRoleDescriptions();\n this._changeDetRef.markForCheck();\n });\n }\n /** @hidden */\n ngAfterViewInit() {\n this._listenToButtonChanges();\n }\n /** @hidden */\n ngOnChanges(changes) {\n if (changes && changes.vertical) {\n this._focusableList.navigationDirection = this.vertical ? 'vertical' : 'horizontal';\n }\n }\n /** @hidden */\n ngOnDestroy() {\n this._onRefresh$.complete();\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._buttons = null;\n this._focusableItems = null;\n }\n /** @hidden */\n writeValue(values) {\n this._currentValue = values;\n this._pickButtonsByValues(values);\n }\n /**\n * @hidden\n * @param fn User defined function that handles the *onChange* event of the SegmentedButtons.\n */\n registerOnChange(fn) {\n this.onChange = fn;\n }\n /**\n * @hidden\n * @param fn User defined function that handles the *onTouch* event of the SegmentedButtons.\n */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /**\n * @hidden\n * @param isDisabled Sets the value of the *disabled* property of the SegmentedButtons.\n */\n setDisabledState(isDisabled) {\n this._isDisabled = isDisabled;\n this._toggleDisableButtons(isDisabled);\n this._onRefresh$.next();\n if (!isDisabled) {\n this._ngZone.run(() => {\n if (this._buttons) {\n this._listenToButtonChanges();\n this._pickButtonsByValues(this._currentValue);\n }\n });\n }\n this._changeDetRef.detectChanges();\n }\n /** @hidden */\n _listenToButtonChanges() {\n if (!this._buttons || !this._focusableItems) {\n return;\n }\n this._onRefresh$.next();\n merge(this._buttons.changes ?? EMPTY, this._focusableItems.changes ?? EMPTY)\n .pipe(startWith(1), observeOn(asyncScheduler), takeUntil(this._onDestroy$))\n .subscribe(() => {\n if (!this._buttons || !this._focusableItems) {\n return;\n }\n this._toggleDisableButtons(this._isDisabled);\n this._pickButtonsByValues(this._currentValue);\n this._buttons.forEach((button, index) => {\n this._setButtonAttributes(button, index);\n this._listenToTriggerEvents(button);\n });\n });\n }\n /** @hidden */\n _listenToTriggerEvents(buttonComponent) {\n const htmlElement = buttonComponent.elementRef.nativeElement;\n const refresh$ = merge(destroyObservable(this._destroyRef), this._onRefresh$);\n const triggerEvents$ = merge(fromEvent(htmlElement, 'click'), fromEvent(htmlElement, 'keydown').pipe(filter((event) => KeyUtil.isKeyCode(event, [ENTER, SPACE])), tap((event) => {\n event.preventDefault();\n this.onTouched();\n })));\n triggerEvents$.pipe(takeUntil(refresh$)).subscribe(() => this._handleTriggerOnButton(buttonComponent));\n }\n /** @hidden */\n _setButtonAttributes(buttonComponent, index) {\n const el = buttonComponent.elementRef.nativeElement;\n this.renderer.setAttribute(el, 'role', 'option');\n this.renderer.setAttribute(el, 'aria-roledescription', this._buttonRoleDescription);\n this.renderer.setAttribute(el, 'aria-posinset', String(index + 1));\n this.renderer.setAttribute(el, 'aria-setsize', String(this._buttons.length));\n }\n _updateButtonRoleDescriptions() {\n if (!this._buttons) {\n return;\n }\n this._buttons.forEach((button) => {\n this.renderer.setAttribute(button.elementRef.nativeElement, 'aria-roledescription', this._buttonRoleDescription);\n });\n }\n /** @hidden */\n _handleTriggerOnButton(buttonComponent) {\n if (!this._isButtonDisabled(buttonComponent)) {\n if (!this.toggle) {\n this._buttons.forEach((button) => this._deselectButton(button));\n this._selectButton(buttonComponent);\n this._propagateChange();\n this._changeDetRef.markForCheck();\n }\n else {\n this._toggleButton(buttonComponent);\n this._propagateChange();\n this._changeDetRef.markForCheck();\n }\n }\n }\n /** @hidden */\n _propagateChange() {\n const selectedValue = this._getValuesBySelected();\n this.onChange(selectedValue);\n this._currentValue = selectedValue;\n }\n /** @hidden */\n _toggleButton(buttonComponent) {\n if (this._isButtonSelected(buttonComponent)) {\n this._deselectButton(buttonComponent);\n }\n else {\n this._selectButton(buttonComponent);\n }\n }\n /** @hidden */\n _pickButtonsByValues(values) {\n if (!this._buttons) {\n return;\n }\n this._buttons.forEach((button) => this._deselectButton(button));\n this._getButtonsByValues(values).forEach((button) => this._selectButton(button));\n this._changeDetRef.detectChanges();\n }\n /** @hidden */\n _getButtonsByValues(values) {\n if (!values) {\n return [];\n }\n if (Array.isArray(values)) {\n return this._buttons.filter((button) => !!values.find((value) => this._getButtonValue(button) === value));\n }\n else {\n return this._buttons.filter((button) => this._getButtonValue(button) === values);\n }\n }\n /** @hidden */\n _selectButton(buttonComponent) {\n buttonComponent.selected = true;\n }\n /** @hidden */\n _deselectButton(buttonComponent) {\n buttonComponent.selected = false;\n }\n /** @hidden */\n _isButtonSelected(buttonComponent) {\n return !!buttonComponent.selected;\n }\n /** @hidden */\n _isButtonDisabled(buttonComponent) {\n return buttonComponent.disabled || buttonComponent.ariaDisabled;\n }\n /** @hidden */\n _toggleDisableButtons(disable) {\n if (!this._buttons || !this._focusableItems) {\n return;\n }\n this._buttons.forEach((button) => (button.disabled = disable));\n this._focusableItems.forEach((focusableItemDirective) => {\n focusableItemDirective.setTabbable(!disable);\n focusableItemDirective.fdkFocusableItem = !disable;\n });\n if (disable) {\n this._buttons.forEach((button) => {\n button.elementRef.nativeElement.role = 'option';\n this._listenToTriggerEvents(button);\n });\n }\n this._changeDetRef.markForCheck();\n }\n /** @hidden */\n _getButtonValue(buttonComponent) {\n const element = buttonComponent.elementRef.nativeElement;\n if (element instanceof HTMLButtonElement) {\n return element.value;\n }\n return element.getAttribute('value');\n }\n /** @hidden\n * Returns values depending on selected state of buttons\n */\n _getValuesBySelected() {\n if (!this._buttons) {\n return [];\n }\n const resButtons = this._buttons\n .filter((button) => !!this._isButtonSelected(button))\n .map((button) => this._getButtonValue(button));\n if (!this.toggle) {\n return resButtons.length === 1 ? resButtons[0] : null;\n }\n else {\n return resButtons;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SegmentedButtonComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.DestroyRef }, { token: i0.NgZone }, { token: i1.FocusableListDirective, host: true, optional: true }, { token: i1.RtlService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"16.1.0\", version: \"20.1.4\", type: SegmentedButtonComponent, isStandalone: true, selector: \"fd-segmented-button\", inputs: { toggle: [\"toggle\", \"toggle\", booleanAttribute], vertical: [\"vertical\", \"vertical\", booleanAttribute] }, host: { attributes: { \"role\": \"listbox\" }, listeners: { \"click\": \"_click($event)\" }, properties: { \"class.fd-segmented-button\": \"true\", \"class.fd-segmented-button--vertical\": \"vertical\", \"attr.aria-multiselectable\": \"toggle\", \"attr.aria-orientation\": \"vertical ? \\\"vertical\\\" : \\\"horizontal\\\"\", \"attr.aria-roledescription\": \"_groupRoleDescription\", \"attr.aria-activedescendant\": \"_focusedItemId()\" } }, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SegmentedButtonComponent),\n multi: true\n }\n ], queries: [{ propertyName: \"_buttons\", predicate: FD_BUTTON_COMPONENT }, { propertyName: \"_focusableItems\", predicate: FocusableItemDirective }], usesOnChanges: true, hostDirectives: [{ directive: i1.FocusableListDirective }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [\".fd-segmented-button{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative;vertical-align:middle;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.fd-segmented-button:after,.fd-segmented-button:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-segmented-button:before{background:var(--sapButton_Background);border-radius:var(--sapButton_BorderCornerRadius);-webkit-box-shadow:inset 0 0 0 var(--sapButton_BorderWidth) var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));box-shadow:inset 0 0 0 var(--sapButton_BorderWidth) var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));content:\\\"\\\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-segmented-button button{margin-block:0;margin-inline:0;--fdButtonPrioritizedBorderColor:var(--fdButton_Split_Border_Color);--fdButtonPrioritizedBackgroundColor:var(--fdButton_Split_Background_Color)}.fd-segmented-button button.is-hover,.fd-segmented-button button:hover{z-index:1}.fd-segmented-button button:first-child{border-radius:var(--fdButton_Border_Radius_Left)}.fd-segmented-button button:not(:first-child,:last-child){border-radius:var(--sapButton_Segment_BorderCornerRadius)}.fd-segmented-button button:last-child{border-radius:var(--fdButton_Border_Radius_Right)}.fd-segmented-button button:not(:last-child){-webkit-margin-end:var(--fdButton_Segmented_Border_Offset);margin-inline-end:var(--fdButton_Segmented_Border_Offset)}.fd-segmented-button:not(.fd-segmented-button--vertical) button[dir=rtl]:first-child,[dir=rtl] .fd-segmented-button:not(.fd-segmented-button--vertical) button:first-child{border-radius:var(--fdButton_Border_Radius_Left_RTL)}.fd-segmented-button:not(.fd-segmented-button--vertical) button[dir=rtl]:last-child,[dir=rtl] .fd-segmented-button:not(.fd-segmented-button--vertical) button:last-child{border-radius:var(--fdButton_Border_Radius_Right_RTL)}.fd-segmented-button--vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.fd-segmented-button--vertical button:first-child{border-radius:var(--fdButton_Vertical_Border_Radius_Left)}.fd-segmented-button--vertical button:last-child{border-radius:var(--fdButton_Vertical_Border_Radius_Right)}.fd-segmented-button--vertical button:not(:last-child){-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-after:var(--fdButton_Segmented_Border_Offset);margin-block-end:var(--fdButton_Segmented_Border_Offset)}.fd-button.is-disabled.is-selected,.fd-button.is-disabled[aria-selected=true],.fd-button:disabled.is-selected,.fd-button:disabled[aria-selected=true],.fd-button[aria-disabled=true].is-selected,.fd-button[aria-disabled=true][aria-selected=true]{--fdButtonBorderColor: var(--sapButton_Selected_BorderColor);--fdButtonBackgroundColor: var(--sapButton_Selected_Background)}\\n/*! Bundled license information:\\n\\nfundamental-styles/dist/segmented-button.css:\\n (*!\\n * Fundamental Library Styles v0.40.1\\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\\n *)\\n*/\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SegmentedButtonComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fd-segmented-button', template: `<ng-content></ng-content>`, host: {\n role: 'listbox',\n '[class.fd-segmented-button]': 'true',\n '[class.fd-segmented-button--vertical]': 'vertical',\n '[attr.aria-multiselectable]': 'toggle',\n '[attr.aria-orientation]': 'vertical ? \"vertical\" : \"horizontal\"',\n '[attr.aria-roledescription]': '_groupRoleDescription',\n '[attr.aria-activedescendant]': '_focusedItemId()'\n }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SegmentedButtonComponent),\n multi: true\n }\n ], standalone: true, hostDirectives: [FocusableListDirective], styles: [\".fd-segmented-button{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative;vertical-align:middle;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.fd-segmented-button:after,.fd-segmented-button:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-segmented-button:before{background:var(--sapButton_Background);border-radius:var(--sapButton_BorderCornerRadius);-webkit-box-shadow:inset 0 0 0 var(--sapButton_BorderWidth) var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));box-shadow:inset 0 0 0 var(--sapButton_BorderWidth) var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));content:\\\"\\\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-segmented-button button{margin-block:0;margin-inline:0;--fdButtonPrioritizedBorderColor:var(--fdButton_Split_Border_Color);--fdButtonPrioritizedBackgroundColor:var(--fdButton_Split_Background_Color)}.fd-segmented-button button.is-hover,.fd-segmented-button button:hover{z-index:1}.fd-segmented-button button:first-child{border-radius:var(--fdButton_Border_Radius_Left)}.fd-segmented-button button:not(:first-child,:last-child){border-radius:var(--sapButton_Segment_BorderCornerRadius)}.fd-segmented-button button:last-child{border-radius:var(--fdButton_Border_Radius_Right)}.fd-segmented-button button:not(:last-child){-webkit-margin-end:var(--fdButton_Segmented_Border_Offset);margin-inline-end:var(--fdButton_Segmented_Border_Offset)}.fd-segmented-button:not(.fd-segmented-button--vertical) button[dir=rtl]:first-child,[dir=rtl] .fd-segmented-button:not(.fd-segmented-button--vertical) button:first-child{border-radius:var(--fdButton_Border_Radius_Left_RTL)}.fd-segmented-button:not(.fd-segmented-button--vertical) button[dir=rtl]:last-child,[dir=rtl] .fd-segmented-button:not(.fd-segmented-button--vertical) button:last-child{border-radius:var(--fdButton_Border_Radius_Right_RTL)}.fd-segmented-button--vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.fd-segmented-button--vertical button:first-child{border-radius:var(--fdButton_Vertical_Border_Radius_Left)}.fd-segmented-button--vertical button:last-child{border-radius:var(--fdButton_Vertical_Border_Radius_Right)}.fd-segmented-button--vertical button:not(:last-child){-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-after:var(--fdButton_Segmented_Border_Offset);margin-block-end:var(--fdButton_Segmented_Border_Offset)}.fd-button.is-disabled.is-selected,.fd-button.is-disabled[aria-selected=true],.fd-button:disabled.is-selected,.fd-button:disabled[aria-selected=true],.fd-button[aria-disabled=true].is-selected,.fd-button[aria-disabled=true][aria-selected=true]{--fdButtonBorderColor: var(--sapButton_Selected_BorderColor);--fdButtonBackgroundColor: var(--sapButton_Selected_Background)}\\n/*! Bundled license information:\\n\\nfundamental-styles/dist/segmented-button.css:\\n (*!\\n * Fundamental Library Styles v0.40.1\\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\\n *)\\n*/\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.DestroyRef }, { type: i0.NgZone }, { type: i1.FocusableListDirective, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }, { type: i1.RtlService, decorators: [{\n type: Optional\n }] }], propDecorators: { toggle: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], vertical: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], _buttons: [{\n type: ContentChildren,\n args: [FD_BUTTON_COMPONENT]\n }], _focusableItems: [{\n type: ContentChildren,\n args: [FocusableItemDirective]\n }], _click: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudGVkLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc2VnbWVudGVkLWJ1dHRvbi9zZWdtZW50ZWQtYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFVBQVUsRUFDVixJQUFJLEVBQ0osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBSU4sUUFBUSxFQUNSLFNBQVMsRUFDVCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLE9BQU8sRUFFUCxVQUFVLEVBQ1YsaUJBQWlCLEVBQ3BCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFtQixtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxXQUFXLEVBQWMsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFJOUU7Ozs7Ozs7Ozs7R0FVRztBQTBCSCxNQUFNLE9B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LEVBQUUsUUFBUTt3QkFDdkMseUJBQXlCLEVBQUUsc0NBQXNDO3dCQUNqRSw2QkFBNkIsRUFBRSx1QkFBdUI7d0JBQ3RELDhCQUE4QixFQUFFLGtCQUFrQjtxQkFDckQsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx5QkFBeUIsQ0FBQzs0QkFDdkQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0osY0FDVyxJQUFJLGtCQUNBLENBQUMsc0JBQXNCLENBQUM7OzBCQTZEbkMsUUFBUTs7MEJBQUksSUFBSTs7MEJBQ2hCLFFBQVE7eUNBekRiLE1BQU07c0JBREwsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFRdEMsUUFBUTtzQkFEUCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUt0QyxRQUFRO3NCQURQLGVBQWU7dUJBQUMsbUJBQW1CO2dCQUtwQyxlQUFlO3NCQURkLGVBQWU7dUJBQUMsc0JBQXNCO2dCQXdEL0IsTUFBTTtzQkFEYixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVOVEVSLCBTUEFDRSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEZXN0cm95UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdCxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIGVmZmVjdCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIGluamVjdCxcbiAgICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmUsXG4gICAgRm9jdXNhYmxlTGlzdERpcmVjdGl2ZSxcbiAgICBLZXlVdGlsLFxuICAgIE51bGxhYmxlLFxuICAgIFJ0bFNlcnZpY2UsXG4gICAgZGVzdHJveU9ic2VydmFibGVcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50LCBGRF9CVVRUT05fQ09NUE9ORU5UIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5pbXBvcnQgeyBGRF9MQU5HVUFHRSwgRmRMYW5ndWFnZSwgVHJhbnNsYXRpb25SZXNvbHZlciB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBFTVBUWSwgU3ViamVjdCwgYXN5bmNTY2hlZHVsZXIsIGZyb21FdmVudCwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgb2JzZXJ2ZU9uLCBzdGFydFdpdGgsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgdHlwZSBTZWdtZW50ZWRCdXR0b25WYWx1ZSA9IHN0cmluZyB8IChzdHJpbmcgfCBudWxsKVtdIHwgbnVsbDtcblxuLyoqXG4gKiBDb250YWluZXIgZm9yIGdyb3VwZWQgYnV0dG9ucy5cbiAqXG4gKiBgYGBodG1sXG4gKiA8ZmQtc2VnbWVudGVkLWJ1dHRvbiBbKG5nTW9kZWwpXT1cInZhbHVlXCI+XG4gKiAgICAgPGJ1dHRvbiBmZC1idXR0b24gdmFsdWU9XCJmaXJzdFwiPkJ1dHRvbjwvYnV0dG9uPlxuICogICAgIDxidXR0b24gZmQtYnV0dG9uIHZhbHVlPVwic2Vjb25kXCI+QnV0dG9uPC9idXR0b24+XG4gKiAgICAgPGJ1dHRvbiBmZC1idXR0b24gdmFsdWU9XCJ0aGlyZFwiPkJ1dHRvbjwvYnV0dG9uPlxuICogPC9mZC1zZWdtZW50ZWQtYnV0dG9uPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtc2VnbWVudGVkLWJ1dHRvbicsXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgICBzdHlsZVVybDogJy4vc2VnbWVudGVkLWJ1dHRvbi5jb21wb25lbnQuc2NzcycsXG4gICAgaG9zdDoge1xuICAgICAgICByb2xlOiAnbGlzdGJveCcsXG4gICAgICAgICdbY2xhc3MuZmQtc2VnbWVudGVkLWJ1dHRvbl0nOiAndHJ1ZScsXG4gICAgICAgICdbY2xhc3MuZmQtc2VnbWVudGVkLWJ1dHRvbi0tdmVydGljYWxdJzogJ3ZlcnRpY2FsJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtbXVsdGlzZWxlY3RhYmxlXSc6ICd0b2dnbGUnLFxuICAgICAgICAnW2F0dHIuYXJpYS1vcmllbnRhdGlvbl0nOiAndmVydGljYWwgPyBcInZlcnRpY2FsXCIgOiBcImhvcml6b250YWxcIicsXG4gICAgICAgICdbYXR0ci5hcmlhLXJvbGVkZXNjcmlwdGlvbl0nOiAnX2dyb3VwUm9sZURlc2NyaXB0aW9uJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtYWN0aXZlZGVzY2VuZGFudF0nOiAnX2ZvY3VzZWRJdGVtSWQoKSdcbiAgICB9LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VnbWVudGVkQnV0dG9uQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtGb2N1c2FibGVMaXN0RGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBTZWdtZW50ZWRCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gICAgLyoqIFdoZXRoZXIgc2VnbWVudGVkIGJ1dHRvbiBpcyBvbiB0b2dnbGUgbW9kZSwgd2hpY2ggYWxsb3dzIHRvIHRvZ2dsZSBtb3JlIHRoYW4gMSBidXR0b24gKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICB0b2dnbGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgc2VnbWVudGVkIGJ1dHRvbiBpcyBvbiB2ZXJ0aWNhbCBtb2RlLFxuICAgICAqIHdoaWNoIGFsbG93cyB0byBkaXNwbGF5IGJ1dHRvbnMgdmVydGljYWxseVxuICAgICAqKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICB2ZXJ0aWNhbCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEZEX0JVVFRPTl9DT01QT05FTlQpXG4gICAgX2J1dHRvbnM6IFF1ZXJ5TGlzdDxCdXR0b25Db21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmUpXG4gICAgX2ZvY3VzYWJsZUl0ZW1zOiBRdWVyeUxpc3Q8Rm9jdXNhYmxlSXRlbURpcmVjdGl2ZT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9ncm91cFJvbGVEZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfYnV0dG9uUm9sZURlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBWYWx1ZSBvZiBzZWdtZW50ZWQgYnV0dG9uIGNhbiBoYXZlIDIgdHlwZXM6XG4gICAgICogLSBzdHJpbmcsIHdoZW4gdGhlcmUgaXMgbm8gdG9nZ2xlIG1vZGUgYW5kIG9ubHkgMSB2YWx1ZSBjYW4gYmUgY2hvc2VuLlxuICAgICAqIC0gYXJyYXkgb2Ygc3RyaW5ncywgd2hlbiB0aGVyZSBpcyB0b2dnbGUgbW9kZSBhbmQgbW9yZSB0aGFuIDEgdmFsdWUgY2FuIGJlIGNob3Nlbi5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9jdXJyZW50VmFsdWU6IFNlZ21lbnRlZEJ1dHRvblZhbHVlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc0Rpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKiogQW4gUnhKUyBTdWJqZWN0IHRoYXQgd2lsbCBraWxsIHRoZSBkYXRhIHN0cmVhbSB1cG9uIHF1ZXJ5TGlzdCBjaGFuZ2VzIChmb3IgdW5zdWJzY3JpYmluZykgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfb25SZWZyZXNoJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vbkRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbGFuZyQgPSBpbmplY3QoRkRfTEFOR1VBR0UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90cmFuc2xhdGlvblJlc29sdmVyID0gaW5qZWN0KFRyYW5zbGF0aW9uUmVzb2x2ZXIpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb2N1c2VkSXRlbUlkID0gc2lnbmFsPHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ+KG51bGwpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmOiBEZXN0cm95UmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9uZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEhvc3QoKSBwcml2YXRlIF9mb2N1c2FibGVMaXN0OiBGb2N1c2FibGVMaXN0RGlyZWN0aXZlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9ydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZUxpc3QubmF2aWdhdGlvbkRpcmVjdGlvbiA9IHRoaXMudmVydGljYWwgPyAndmVydGljYWwnIDogJ2hvcml6b250YWwnO1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fZm9jdXNhYmxlTGlzdC5jb250ZW50RGlyZWN0aW9uID0gdGhpcy5fcnRsU2VydmljZT8ucnRsU2lnbmFsKCkgPyAncnRsJyA6ICdsdHInO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlTGlzdC5pdGVtRm9jdXNlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChpdGVtKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9mb2N1c2VkSXRlbUlkLnNldChpdGVtLmlkKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgcHJpdmF0ZSBfY2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQucmVsYXRlZFRhcmdldCkpIHtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9sYW5nJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChsYW5nOiBGZExhbmd1YWdlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9ncm91cFJvbGVEZXNjcmlwdGlvbiA9IHRoaXMuX3RyYW5zbGF0aW9uUmVzb2x2ZXIucmVzb2x2ZShcbiAgICAgICAgICAgICAgICBsYW5nLFxuICAgICAgICAgICAgICAgICdzZWdtZW50ZWRCdXR0b24uZ3JvdXBSb2xlRGVzY3JpcHRpb24nXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5fYnV0dG9uUm9sZURlc2NyaXB0aW9uID0gdGhpcy5fdHJhbnNsYXRpb25SZXNvbHZlci5yZXNvbHZlKFxuICAgICAgICAgICAgICAgIGxhbmcsXG4gICAgICAgICAgICAgICAgJ3NlZ21lbnRlZEJ1dHRvbi5idXR0b25Sb2xlRGVzY3JpcHRpb24nXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlQnV0dG9uUm9sZURlc2NyaXB0aW9ucygpO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0UmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uQ2hhbmdlOiAodmFsdWU6IFNlZ21lbnRlZEJ1dHRvblZhbHVlKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHt9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xpc3RlblRvQnV0dG9uQ2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlcyAmJiBjaGFuZ2VzLnZlcnRpY2FsKSB7XG4gICAgICAgICAgICB0aGlzLl9mb2N1c2FibGVMaXN0Lm5hdmlnYXRpb25EaXJlY3Rpb24gPSB0aGlzLnZlcnRpY2FsID8gJ3ZlcnRpY2FsJyA6ICdob3Jpem9udGFsJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uUmVmcmVzaCQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fb25EZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fYnV0dG9ucyA9IG51bGwgYXMgYW55O1xuICAgICAgICB0aGlzLl9mb2N1c2FibGVJdGVtcyA9IG51bGwgYXMgYW55O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZXM6IHN0cmluZ1tdIHwgc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRWYWx1ZSA9IHZhbHVlcztcbiAgICAgICAgdGhpcy5fcGlja0J1dHRvbnNCeVZhbHVlcyh2YWx1ZXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gZm4gVXNlciBkZWZpbmVkIGZ1bmN0aW9uIHRoYXQgaGFuZGxlcyB0aGUgKm9uQ2hhbmdlKiBldmVudCBvZiB0aGUgU2VnbWVudGVkQnV0dG9ucy5cbiAgICAgKi9cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IFNlZ21lbnRlZEJ1dHRvblZhbHVlKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHBhcmFtIGZuIFVzZXIgZGVmaW5lZCBmdW5jdGlvbiB0aGF0IGhhbmRsZXMgdGhlICpvblRvdWNoKiBldmVudCBvZiB0aGUgU2VnbWVudGVkQnV0dG9ucy5cbiAgICAgKi9cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAcGFyYW0gaXNEaXNhYmxlZCBTZXRzIHRoZSB2YWx1ZSBvZiB0aGUgKmRpc2FibGVkKiBwcm9wZXJ0eSBvZiB0aGUgU2VnbWVudGVkQnV0dG9ucy5cbiAgICAgKi9cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuX3RvZ2dsZURpc2FibGVCdXR0b25zKGlzRGlzYWJsZWQpO1xuICAgICAgICB0aGlzLl9vblJlZnJlc2gkLm5leHQoKTtcblxuICAgICAgICBpZiAoIWlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX25nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9idXR0b25zKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xpc3RlblRvQnV0dG9uQ2hhbmdlcygpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9waWNrQnV0dG9uc0J5VmFsdWVzKHRoaXMuX2N1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0UmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlblRvQnV0dG9uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9idXR0b25zIHx8ICF0aGlzLl9mb2N1c2FibGVJdGVtcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fb25SZWZyZXNoJC5uZXh0KCk7XG5cbiAgICAgICAgbWVyZ2UodGhpcy5fYnV0dG9ucy5jaGFuZ2VzID8/IEVNUFRZLCB0aGlzLl9mb2N1c2FibGVJdGVtcy5jaGFuZ2VzID8/IEVNUFRZKVxuICAgICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKDEpLCBvYnNlcnZlT24oYXN5bmNTY2hlZHVsZXIpLCB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2J1dHRvbnMgfHwgIXRoaXMuX2ZvY3VzYWJsZUl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLl90b2dnbGVEaXNhYmxlQnV0dG9ucyh0aGlzLl9pc0Rpc2FibGVkKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9waWNrQnV0dG9uc0J5VmFsdWVzKHRoaXMuX2N1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fYnV0dG9ucy5mb3JFYWNoKChidXR0b24sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NldEJ1dHRvbkF0dHJpYnV0ZXMoYnV0dG9uLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xpc3RlblRvVHJpZ2dlckV2ZW50cyhidXR0b24pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Ub1RyaWdnZXJFdmVudHMoYnV0dG9uQ29tcG9uZW50OiBCdXR0b25Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaHRtbEVsZW1lbnQgPSBidXR0b25Db21wb25lbnQuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIGNvbnN0IHJlZnJlc2gkID0gbWVyZ2UoZGVzdHJveU9ic2VydmFibGUodGhpcy5fZGVzdHJveVJlZiksIHRoaXMuX29uUmVmcmVzaCQpO1xuXG4gICAgICAgIGNvbnN0IHRyaWdnZXJFdmVudHMkID0gbWVyZ2UoXG4gICAgICAgICAgICBmcm9tRXZlbnQoaHRtbEVsZW1lbnQsICdjbGljaycpLFxuICAgICAgICAgICAgZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KGh0bWxFbGVtZW50LCAna2V5ZG93bicpLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKChldmVudCkgPT4gS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIFtFTlRFUiwgU1BBQ0VdKSksXG4gICAgICAgICAgICAgICAgdGFwKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdHJpZ2dlckV2ZW50cyQucGlwZSh0YWtlVW50aWwocmVmcmVzaCQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5faGFuZGxlVHJpZ2dlck9uQnV0dG9uKGJ1dHRvbkNvbXBvbmVudCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0QnV0dG9uQXR0cmlidXRlcyhidXR0b25Db21wb25lbnQ6IEJ1dHRvbkNvbXBvbmVudCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBlbCA9IGJ1dHRvbkNvbXBvbmVudC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsLCAncm9sZScsICdvcHRpb24nKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWwsICdhcmlhLXJvbGVkZXNjcmlwdGlvbicsIHRoaXMuX2J1dHRvblJvbGVEZXNjcmlwdGlvbik7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsLCAnYXJpYS1wb3NpbnNldCcsIFN0cmluZyhpbmRleCArIDEpKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWwsICdhcmlhLXNldHNpemUnLCBTdHJpbmcodGhpcy5fYnV0dG9ucy5sZW5ndGgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVCdXR0b25Sb2xlRGVzY3JpcHRpb25zKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2J1dHRvbnMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9idXR0b25zLmZvckVhY2goKGJ1dHRvbikgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgYnV0dG9uLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAnYXJpYS1yb2xlZGVzY3JpcHRpb24nLFxuICAgICAgICAgICAgICAgIHRoaXMuX2J1dHRvblJvbGVEZXNjcmlwdGlvblxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9oYW5kbGVUcmlnZ2VyT25CdXR0b24oYnV0dG9uQ29tcG9uZW50OiBCdXR0b25Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9pc0J1dHRvbkRpc2FibGVkKGJ1dHRvbkNvbXBvbmVudCkpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy50b2dnbGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9idXR0b25zLmZvckVhY2goKGJ1dHRvbikgPT4gdGhpcy5fZGVzZWxlY3RCdXR0b24oYnV0dG9uKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0QnV0dG9uKGJ1dHRvbkNvbXBvbmVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcHJvcGFnYXRlQ2hhbmdlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0UmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90b2dnbGVCdXR0b24oYnV0dG9uQ29tcG9uZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9wcm9wYWdhdGVDaGFuZ2UoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Byb3BhZ2F0ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IHRoaXMuX2dldFZhbHVlc0J5U2VsZWN0ZWQoKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZShzZWxlY3RlZFZhbHVlKTtcbiAgICAgICAgdGhpcy5fY3VycmVudFZhbHVlID0gc2VsZWN0ZWRWYWx1ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RvZ2dsZUJ1dHRvbihidXR0b25Db21wb25lbnQ6IEJ1dHRvbkNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5faXNCdXR0b25TZWxlY3RlZChidXR0b25Db21wb25lbnQpKSB7XG4gICAgICAgICAgICB0aGlzLl9kZXNlbGVjdEJ1dHRvbihidXR0b25Db21wb25lbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0QnV0dG9uKGJ1dHRvbkNvbXBvbmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3BpY2tCdXR0b25zQnlWYWx1ZXModmFsdWVzOiBTZWdtZW50ZWRCdXR0b25WYWx1ZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2J1dHRvbnMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9idXR0b25zLmZvckVhY2goKGJ1dHRvbikgPT4gdGhpcy5fZGVzZWxlY3RCdXR0b24oYnV0dG9uKSk7XG4gICAgICAgIHRoaXMuX2dldEJ1dHRvbnNCeVZhbHVlcyh2YWx1ZXMpLmZvckVhY2goKGJ1dHRvbikgPT4gdGhpcy5fc2VsZWN0QnV0dG9uKGJ1dHRvbikpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0QnV0dG9uc0J5VmFsdWVzKHZhbHVlczogU2VnbWVudGVkQnV0dG9uVmFsdWUpOiBCdXR0b25Db21wb25lbnRbXSB7XG4gICAgICAgIGlmICghdmFsdWVzKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYnV0dG9ucy5maWx0ZXIoKGJ1dHRvbikgPT4gISF2YWx1ZXMuZmluZCgodmFsdWUpID0+IHRoaXMuX2dldEJ1dHRvblZhbHVlKGJ1dHRvbikgPT09IHZhbHVlKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fYnV0dG9ucy5maWx0ZXIoKGJ1dHRvbikgPT4gdGhpcy5fZ2V0QnV0dG9uVmFsdWUoYnV0dG9uKSA9PT0gdmFsdWVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2VsZWN0QnV0dG9uKGJ1dHRvbkNvbXBvbmVudDogQnV0dG9uQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGJ1dHRvbkNvbXBvbmVudC5zZWxlY3RlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9kZXNlbGVjdEJ1dHRvbihidXR0b25Db21wb25lbnQ6IEJ1dHRvbkNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBidXR0b25Db21wb25lbnQuc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lzQnV0dG9uU2VsZWN0ZWQoYnV0dG9uQ29tcG9uZW50OiBCdXR0b25Db21wb25lbnQpOiBOdWxsYWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiAhIWJ1dHRvbkNvbXBvbmVudC5zZWxlY3RlZDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lzQnV0dG9uRGlzYWJsZWQoYnV0dG9uQ29tcG9uZW50OiBCdXR0b25Db21wb25lbnQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGJ1dHRvbkNvbXBvbmVudC5kaXNhYmxlZCB8fCBidXR0b25Db21wb25lbnQuYXJpYURpc2FibGVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdG9nZ2xlRGlzYWJsZUJ1dHRvbnMoZGlzYWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2J1dHRvbnMgfHwgIXRoaXMuX2ZvY3VzYWJsZUl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9idXR0b25zLmZvckVhY2goKGJ1dHRvbikgPT4gKGJ1dHRvbi5kaXNhYmxlZCA9IGRpc2FibGUpKTtcblxuICAgICAgICB0aGlzLl9mb2N1c2FibGVJdGVtcy5mb3JFYWNoKChmb2N1c2FibGVJdGVtRGlyZWN0aXZlKSA9PiB7XG4gICAgICAgICAgICBmb2N1c2FibGVJdGVtRGlyZWN0aXZlLnNldFRhYmJhYmxlKCFkaXNhYmxlKTtcbiAgICAgICAgICAgIGZvY3VzYWJsZUl0ZW1EaXJlY3RpdmUuZmRrRm9jdXNhYmxlSXRlbSA9ICFkaXNhYmxlO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRpc2FibGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2J1dHRvbnMuZm9yRWFjaCgoYnV0dG9uKSA9PiB7XG4gICAgICAgICAgICAgICAgYnV0dG9uLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yb2xlID0gJ29wdGlvbic7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGlzdGVuVG9UcmlnZ2VyRXZlbnRzKGJ1dHRvbik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NoYW5nZURldFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEJ1dHRvblZhbHVlKGJ1dHRvbkNvbXBvbmVudDogQnV0dG9uQ29tcG9uZW50KTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBidXR0b25Db21wb25lbnQuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAoZWxlbWVudCBpbnN0YW5jZW9mIEhUTUxCdXR0b25FbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudC52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3ZhbHVlJyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBSZXR1cm5zIHZhbHVlcyBkZXBlbmRpbmcgb24gc2VsZWN0ZWQgc3RhdGUgb2YgYnV0dG9uc1xuICAgICAqL1xuICAgIHByaXZhdGUgX2dldFZhbHVlc0J5U2VsZWN0ZWQoKTogU2VnbWVudGVkQnV0dG9uVmFsdWUge1xuICAgICAgICBpZiAoIXRoaXMuX2J1dHRvbnMpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlc0J1dHRvbnMgPSB0aGlzLl9idXR0b25zXG4gICAgICAgICAgICAuZmlsdGVyKChidXR0b24pID0+ICEhdGhpcy5faXNCdXR0b25TZWxlY3RlZChidXR0b24pKVxuICAgICAgICAgICAgLm1hcCgoYnV0dG9uKSA9PiB0aGlzLl9nZXRCdXR0b25WYWx1ZShidXR0b24pKTtcbiAgICAgICAgaWYgKCF0aGlzLnRvZ2dsZSkge1xuICAgICAgICAgICAgcmV0dXJuIHJlc0J1dHRvbnMubGVuZ3RoID09PSAxID8gcmVzQnV0dG9uc1swXSA6IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzQnV0dG9ucztcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { SegmentedButtonComponent } from './segmented-button.component';\nimport * as i0 from \"@angular/core\";\n/**\n * @deprecated\n * Use direct `SegmentedButtonComponent` import instead.\n */\nexport class SegmentedButtonModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SegmentedButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: SegmentedButtonModule, imports: [SegmentedButtonComponent], exports: [SegmentedButtonComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SegmentedButtonModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SegmentedButtonModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [SegmentedButtonComponent],\n exports: [SegmentedButtonComponent]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudGVkLWJ1dHRvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc2VnbWVudGVkLWJ1dHRvbi9zZWdtZW50ZWQtYnV0dG9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUV4RTs7O0dBR0c7QUFLSCxNQUFNLE9BQU8scUJBQXFCOzhHQUFyQixxQkFBcUI7K0dBQXJCLHFCQUFxQixZQUhwQix3QkFBd0IsYUFDeEIsd0JBQXdCOytHQUV6QixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBSmpDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsd0JBQXdCLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLHdCQUF3QixDQUFDO2lCQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNlZ21lbnRlZEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vc2VnbWVudGVkLWJ1dHRvbi5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBVc2UgZGlyZWN0IGBTZWdtZW50ZWRCdXR0b25Db21wb25lbnRgIGltcG9ydCBpbnN0ZWFkLlxuICovXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtTZWdtZW50ZWRCdXR0b25Db21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtTZWdtZW50ZWRCdXR0b25Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFNlZ21lbnRlZEJ1dHRvbk1vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LWNvcmUtc2VnbWVudGVkLWJ1dHRvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zZWdtZW50ZWQtYnV0dG9uL2Z1bmRhbWVudGFsLW5neC1jb3JlLXNlZ21lbnRlZC1idXR0b24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-core-segmented-button.mjs","sources":["../tmp-esm2022/segmented-button/segmented-button.component.js","../tmp-esm2022/segmented-button/segmented-button.module.js","../tmp-esm2022/segmented-button/fundamental-ngx-core-segmented-button.js"],"sourcesContent":["import { ENTER, SPACE } from '@angular/cdk/keycodes';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, DestroyRef, ElementRef, Host, HostListener, Input, NgZone, Optional, QueryList, Renderer2, ViewEncapsulation, booleanAttribute, effect, forwardRef, inject, signal } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { FocusableItemDirective, FocusableListDirective, KeyUtil, RtlService, destroyObservable } from '@fundamental-ngx/cdk/utils';\nimport { FD_BUTTON_COMPONENT } from '@fundamental-ngx/core/button';\nimport { FD_LANGUAGE, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { EMPTY, Subject, asyncScheduler, fromEvent, merge } from 'rxjs';\nimport { filter, observeOn, startWith, takeUntil, tap } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@fundamental-ngx/cdk/utils\";\n/**\n * Container for grouped buttons.\n *\n * ```html\n * <fd-segmented-button [(ngModel)]=\"value\">\n * <button fd-button value=\"first\">Button</button>\n * <button fd-button value=\"second\">Button</button>\n * <button fd-button value=\"third\">Button</button>\n * </fd-segmented-button>\n * ```\n */\nexport class SegmentedButtonComponent {\n /** @hidden */\n constructor(_changeDetRef, _elementRef, _destroyRef, _ngZone, _focusableList, _rtlService) {\n this._changeDetRef = _changeDetRef;\n this._elementRef = _elementRef;\n this._destroyRef = _destroyRef;\n this._ngZone = _ngZone;\n this._focusableList = _focusableList;\n this._rtlService = _rtlService;\n /** Whether segmented button is on toggle mode, which allows to toggle more than 1 button */\n this.toggle = false;\n /**\n * Whether segmented button is on vertical mode,\n * which allows to display buttons vertically\n **/\n this.vertical = false;\n /** @hidden */\n this._focusedItemId = signal(null, ...(ngDevMode ? [{ debugName: \"_focusedItemId\" }] : []));\n /** @hidden */\n this._isDisabled = false;\n /** An RxJS Subject that will kill the data stream upon queryList changes (for unsubscribing) */\n this._onRefresh$ = new Subject();\n this._onDestroy$ = new Subject();\n /** @hidden */\n this._lang$ = inject(FD_LANGUAGE);\n /** @hidden */\n this._translationResolver = inject(TranslationResolver);\n /** @hidden */\n this.renderer = inject(Renderer2);\n /** @hidden */\n this.onChange = () => { };\n /** @hidden */\n this.onTouched = () => { };\n this._focusableList.navigationDirection = this.vertical ? 'vertical' : 'horizontal';\n effect(() => {\n this._focusableList.contentDirection = this._rtlService?.rtlSignal() ? 'rtl' : 'ltr';\n });\n this._focusableList.itemFocused.pipe(takeUntil(this._onDestroy$)).subscribe((item) => {\n this._focusedItemId.set(item.id);\n });\n }\n /** @hidden */\n _click(event) {\n if (!this._elementRef.nativeElement.contains(event.relatedTarget)) {\n this.onTouched();\n }\n }\n /** @hidden */\n ngOnInit() {\n this._lang$.pipe(takeUntil(this._onDestroy$)).subscribe((lang) => {\n this._groupRoleDescription = this._translationResolver.resolve(lang, 'segmentedButton.groupRoleDescription');\n this._buttonRoleDescription = this._translationResolver.resolve(lang, 'segmentedButton.buttonRoleDescription');\n this._updateButtonRoleDescriptions();\n this._changeDetRef.markForCheck();\n });\n }\n /** @hidden */\n ngAfterViewInit() {\n this._listenToButtonChanges();\n }\n /** @hidden */\n ngOnChanges(changes) {\n if (changes && changes.vertical) {\n this._focusableList.navigationDirection = this.vertical ? 'vertical' : 'horizontal';\n }\n }\n /** @hidden */\n ngOnDestroy() {\n this._onRefresh$.complete();\n this._onDestroy$.next();\n this._onDestroy$.complete();\n this._buttons = null;\n this._focusableItems = null;\n }\n /** @hidden */\n writeValue(values) {\n this._currentValue = values;\n this._pickButtonsByValues(values);\n }\n /**\n * @hidden\n * @param fn User defined function that handles the *onChange* event of the SegmentedButtons.\n */\n registerOnChange(fn) {\n this.onChange = fn;\n }\n /**\n * @hidden\n * @param fn User defined function that handles the *onTouch* event of the SegmentedButtons.\n */\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /**\n * @hidden\n * @param isDisabled Sets the value of the *disabled* property of the SegmentedButtons.\n */\n setDisabledState(isDisabled) {\n this._isDisabled = isDisabled;\n this._toggleDisableButtons(isDisabled);\n this._onRefresh$.next();\n if (!isDisabled) {\n this._ngZone.run(() => {\n if (this._buttons) {\n this._listenToButtonChanges();\n this._pickButtonsByValues(this._currentValue);\n }\n });\n }\n this._changeDetRef.detectChanges();\n }\n /** @hidden */\n _listenToButtonChanges() {\n if (!this._buttons || !this._focusableItems) {\n return;\n }\n this._onRefresh$.next();\n merge(this._buttons.changes ?? EMPTY, this._focusableItems.changes ?? EMPTY)\n .pipe(startWith(1), observeOn(asyncScheduler), takeUntil(this._onDestroy$))\n .subscribe(() => {\n if (!this._buttons || !this._focusableItems) {\n return;\n }\n this._toggleDisableButtons(this._isDisabled);\n this._pickButtonsByValues(this._currentValue);\n this._buttons.forEach((button, index) => {\n this._setButtonAttributes(button, index);\n this._listenToTriggerEvents(button);\n });\n });\n }\n /** @hidden */\n _listenToTriggerEvents(buttonComponent) {\n const htmlElement = buttonComponent.elementRef.nativeElement;\n const refresh$ = merge(destroyObservable(this._destroyRef), this._onRefresh$);\n const triggerEvents$ = merge(fromEvent(htmlElement, 'click'), fromEvent(htmlElement, 'keydown').pipe(filter((event) => KeyUtil.isKeyCode(event, [ENTER, SPACE])), tap((event) => {\n event.preventDefault();\n this.onTouched();\n })));\n triggerEvents$.pipe(takeUntil(refresh$)).subscribe(() => this._handleTriggerOnButton(buttonComponent));\n }\n /** @hidden */\n _setButtonAttributes(buttonComponent, index) {\n const el = buttonComponent.elementRef.nativeElement;\n this.renderer.setAttribute(el, 'role', 'option');\n this.renderer.setAttribute(el, 'aria-roledescription', this._buttonRoleDescription);\n this.renderer.setAttribute(el, 'aria-posinset', String(index + 1));\n this.renderer.setAttribute(el, 'aria-setsize', String(this._buttons.length));\n }\n _updateButtonRoleDescriptions() {\n if (!this._buttons) {\n return;\n }\n this._buttons.forEach((button) => {\n this.renderer.setAttribute(button.elementRef.nativeElement, 'aria-roledescription', this._buttonRoleDescription);\n });\n }\n /** @hidden */\n _handleTriggerOnButton(buttonComponent) {\n if (!this._isButtonDisabled(buttonComponent)) {\n if (!this.toggle) {\n this._buttons.forEach((button) => this._deselectButton(button));\n this._selectButton(buttonComponent);\n this._propagateChange();\n this._changeDetRef.markForCheck();\n }\n else {\n this._toggleButton(buttonComponent);\n this._propagateChange();\n this._changeDetRef.markForCheck();\n }\n }\n }\n /** @hidden */\n _propagateChange() {\n const selectedValue = this._getValuesBySelected();\n this.onChange(selectedValue);\n this._currentValue = selectedValue;\n }\n /** @hidden */\n _toggleButton(buttonComponent) {\n if (this._isButtonSelected(buttonComponent)) {\n this._deselectButton(buttonComponent);\n }\n else {\n this._selectButton(buttonComponent);\n }\n }\n /** @hidden */\n _pickButtonsByValues(values) {\n if (!this._buttons) {\n return;\n }\n this._buttons.forEach((button) => this._deselectButton(button));\n this._getButtonsByValues(values).forEach((button) => this._selectButton(button));\n this._changeDetRef.detectChanges();\n }\n /** @hidden */\n _getButtonsByValues(values) {\n if (!values) {\n return [];\n }\n if (Array.isArray(values)) {\n return this._buttons.filter((button) => !!values.find((value) => this._getButtonValue(button) === value));\n }\n else {\n return this._buttons.filter((button) => this._getButtonValue(button) === values);\n }\n }\n /** @hidden */\n _selectButton(buttonComponent) {\n buttonComponent.selected = true;\n }\n /** @hidden */\n _deselectButton(buttonComponent) {\n buttonComponent.selected = false;\n }\n /** @hidden */\n _isButtonSelected(buttonComponent) {\n return !!buttonComponent.selected;\n }\n /** @hidden */\n _isButtonDisabled(buttonComponent) {\n return buttonComponent.disabled || buttonComponent.ariaDisabled;\n }\n /** @hidden */\n _toggleDisableButtons(disable) {\n if (!this._buttons || !this._focusableItems) {\n return;\n }\n this._buttons.forEach((button) => (button.disabled = disable));\n this._focusableItems.forEach((focusableItemDirective) => {\n focusableItemDirective.setTabbable(!disable);\n focusableItemDirective.fdkFocusableItem = !disable;\n });\n if (disable) {\n this._buttons.forEach((button) => {\n button.elementRef.nativeElement.role = 'option';\n this._listenToTriggerEvents(button);\n });\n }\n this._changeDetRef.markForCheck();\n }\n /** @hidden */\n _getButtonValue(buttonComponent) {\n const element = buttonComponent.elementRef.nativeElement;\n if (element instanceof HTMLButtonElement) {\n return element.value;\n }\n return element.getAttribute('value');\n }\n /** @hidden\n * Returns values depending on selected state of buttons\n */\n _getValuesBySelected() {\n if (!this._buttons) {\n return [];\n }\n const resButtons = this._buttons\n .filter((button) => !!this._isButtonSelected(button))\n .map((button) => this._getButtonValue(button));\n if (!this.toggle) {\n return resButtons.length === 1 ? resButtons[0] : null;\n }\n else {\n return resButtons;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SegmentedButtonComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.DestroyRef }, { token: i0.NgZone }, { token: i1.FocusableListDirective, host: true, optional: true }, { token: i1.RtlService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"16.1.0\", version: \"20.1.4\", type: SegmentedButtonComponent, isStandalone: true, selector: \"fd-segmented-button\", inputs: { toggle: [\"toggle\", \"toggle\", booleanAttribute], vertical: [\"vertical\", \"vertical\", booleanAttribute] }, host: { attributes: { \"role\": \"listbox\" }, listeners: { \"click\": \"_click($event)\" }, properties: { \"class.fd-segmented-button\": \"true\", \"class.fd-segmented-button--vertical\": \"vertical\", \"attr.aria-multiselectable\": \"toggle\", \"attr.aria-orientation\": \"vertical ? \\\"vertical\\\" : \\\"horizontal\\\"\", \"attr.aria-roledescription\": \"_groupRoleDescription\", \"attr.aria-activedescendant\": \"_focusedItemId()\" } }, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SegmentedButtonComponent),\n multi: true\n }\n ], queries: [{ propertyName: \"_buttons\", predicate: FD_BUTTON_COMPONENT }, { propertyName: \"_focusableItems\", predicate: FocusableItemDirective }], usesOnChanges: true, hostDirectives: [{ directive: i1.FocusableListDirective }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [\".fd-segmented-button{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative;vertical-align:middle;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.fd-segmented-button:after,.fd-segmented-button:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-segmented-button:before{background:var(--sapButton_Background);border-radius:var(--sapButton_BorderCornerRadius);-webkit-box-shadow:inset 0 0 0 var(--sapButton_BorderWidth) var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));box-shadow:inset 0 0 0 var(--sapButton_BorderWidth) var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));content:\\\"\\\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-segmented-button button{margin-block:0;margin-inline:0;--fdButtonPrioritizedBorderColor:var(--fdButton_Split_Border_Color);--fdButtonPrioritizedBackgroundColor:var(--fdButton_Split_Background_Color)}.fd-segmented-button button.is-hover,.fd-segmented-button button:hover{z-index:1}.fd-segmented-button button:first-child{border-radius:var(--fdButton_Border_Radius_Left)}.fd-segmented-button button:not(:first-child,:last-child){border-radius:var(--sapButton_Segment_BorderCornerRadius)}.fd-segmented-button button:last-child{border-radius:var(--fdButton_Border_Radius_Right)}.fd-segmented-button button:not(:last-child){-webkit-margin-end:var(--fdButton_Segmented_Border_Offset);margin-inline-end:var(--fdButton_Segmented_Border_Offset)}.fd-segmented-button:not(.fd-segmented-button--vertical) button[dir=rtl]:first-child,[dir=rtl] .fd-segmented-button:not(.fd-segmented-button--vertical) button:first-child{border-radius:var(--fdButton_Border_Radius_Left_RTL)}.fd-segmented-button:not(.fd-segmented-button--vertical) button[dir=rtl]:last-child,[dir=rtl] .fd-segmented-button:not(.fd-segmented-button--vertical) button:last-child{border-radius:var(--fdButton_Border_Radius_Right_RTL)}.fd-segmented-button--vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.fd-segmented-button--vertical button:first-child{border-radius:var(--fdButton_Vertical_Border_Radius_Left)}.fd-segmented-button--vertical button:last-child{border-radius:var(--fdButton_Vertical_Border_Radius_Right)}.fd-segmented-button--vertical button:not(:last-child){-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-after:var(--fdButton_Segmented_Border_Offset);margin-block-end:var(--fdButton_Segmented_Border_Offset)}.fd-button.is-disabled.is-selected,.fd-button.is-disabled[aria-selected=true],.fd-button:disabled.is-selected,.fd-button:disabled[aria-selected=true],.fd-button[aria-disabled=true].is-selected,.fd-button[aria-disabled=true][aria-selected=true]{--fdButtonBorderColor: var(--sapButton_Selected_BorderColor);--fdButtonBackgroundColor: var(--sapButton_Selected_Background)}\\n/*! Bundled license information:\\n\\nfundamental-styles/dist/segmented-button.css:\\n (*!\\n * Fundamental Library Styles v0.40.1\\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\\n *)\\n*/\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SegmentedButtonComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fd-segmented-button', template: `<ng-content></ng-content>`, host: {\n role: 'listbox',\n '[class.fd-segmented-button]': 'true',\n '[class.fd-segmented-button--vertical]': 'vertical',\n '[attr.aria-multiselectable]': 'toggle',\n '[attr.aria-orientation]': 'vertical ? \"vertical\" : \"horizontal\"',\n '[attr.aria-roledescription]': '_groupRoleDescription',\n '[attr.aria-activedescendant]': '_focusedItemId()'\n }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SegmentedButtonComponent),\n multi: true\n }\n ], standalone: true, hostDirectives: [FocusableListDirective], styles: [\".fd-segmented-button{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative;vertical-align:middle;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.fd-segmented-button:after,.fd-segmented-button:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-segmented-button:before{background:var(--sapButton_Background);border-radius:var(--sapButton_BorderCornerRadius);-webkit-box-shadow:inset 0 0 0 var(--sapButton_BorderWidth) var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));box-shadow:inset 0 0 0 var(--sapButton_BorderWidth) var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));content:\\\"\\\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-segmented-button button{margin-block:0;margin-inline:0;--fdButtonPrioritizedBorderColor:var(--fdButton_Split_Border_Color);--fdButtonPrioritizedBackgroundColor:var(--fdButton_Split_Background_Color)}.fd-segmented-button button.is-hover,.fd-segmented-button button:hover{z-index:1}.fd-segmented-button button:first-child{border-radius:var(--fdButton_Border_Radius_Left)}.fd-segmented-button button:not(:first-child,:last-child){border-radius:var(--sapButton_Segment_BorderCornerRadius)}.fd-segmented-button button:last-child{border-radius:var(--fdButton_Border_Radius_Right)}.fd-segmented-button button:not(:last-child){-webkit-margin-end:var(--fdButton_Segmented_Border_Offset);margin-inline-end:var(--fdButton_Segmented_Border_Offset)}.fd-segmented-button:not(.fd-segmented-button--vertical) button[dir=rtl]:first-child,[dir=rtl] .fd-segmented-button:not(.fd-segmented-button--vertical) button:first-child{border-radius:var(--fdButton_Border_Radius_Left_RTL)}.fd-segmented-button:not(.fd-segmented-button--vertical) button[dir=rtl]:last-child,[dir=rtl] .fd-segmented-button:not(.fd-segmented-button--vertical) button:last-child{border-radius:var(--fdButton_Border_Radius_Right_RTL)}.fd-segmented-button--vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.fd-segmented-button--vertical button:first-child{border-radius:var(--fdButton_Vertical_Border_Radius_Left)}.fd-segmented-button--vertical button:last-child{border-radius:var(--fdButton_Vertical_Border_Radius_Right)}.fd-segmented-button--vertical button:not(:last-child){-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-after:var(--fdButton_Segmented_Border_Offset);margin-block-end:var(--fdButton_Segmented_Border_Offset)}.fd-button.is-disabled.is-selected,.fd-button.is-disabled[aria-selected=true],.fd-button:disabled.is-selected,.fd-button:disabled[aria-selected=true],.fd-button[aria-disabled=true].is-selected,.fd-button[aria-disabled=true][aria-selected=true]{--fdButtonBorderColor: var(--sapButton_Selected_BorderColor);--fdButtonBackgroundColor: var(--sapButton_Selected_Background)}\\n/*! Bundled license information:\\n\\nfundamental-styles/dist/segmented-button.css:\\n (*!\\n * Fundamental Library Styles v0.40.1\\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\\n *)\\n*/\\n\"] }]\n }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.DestroyRef }, { type: i0.NgZone }, { type: i1.FocusableListDirective, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }, { type: i1.RtlService, decorators: [{\n type: Optional\n }] }], propDecorators: { toggle: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], vertical: [{\n type: Input,\n args: [{ transform: booleanAttribute }]\n }], _buttons: [{\n type: ContentChildren,\n args: [FD_BUTTON_COMPONENT]\n }], _focusableItems: [{\n type: ContentChildren,\n args: [FocusableItemDirective]\n }], _click: [{\n type: HostListener,\n args: ['click', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudGVkLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc2VnbWVudGVkLWJ1dHRvbi9zZWdtZW50ZWQtYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFVBQVUsRUFDVixJQUFJLEVBQ0osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBSU4sUUFBUSxFQUNSLFNBQVMsRUFDVCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFDSCxzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLE9BQU8sRUFFUCxVQUFVLEVBQ1YsaUJBQWlCLEVBQ3BCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFtQixtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxXQUFXLEVBQWMsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFJOUU7Ozs7Ozs7Ozs7R0FVRztBQTBCSCxNQUFNLE9B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LEVBQUUsUUFBUTt3QkFDdkMseUJBQXlCLEVBQUUsc0NBQXNDO3dCQUNqRSw2QkFBNkIsRUFBRSx1QkFBdUI7d0JBQ3RELDhCQUE4QixFQUFFLGtCQUFrQjtxQkFDckQsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx5QkFBeUIsQ0FBQzs0QkFDdkQsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0osY0FDVyxJQUFJLGtCQUNBLENBQUMsc0JBQXNCLENBQUM7OzBCQTZEbkMsUUFBUTs7MEJBQUksSUFBSTs7MEJBQ2hCLFFBQVE7eUNBekRiLE1BQU07c0JBREwsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFRdEMsUUFBUTtzQkFEUCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUt0QyxRQUFRO3NCQURQLGVBQWU7dUJBQUMsbUJBQW1CO2dCQUtwQyxlQUFlO3NCQURkLGVBQWU7dUJBQUMsc0JBQXNCO2dCQXdEN0IsTUFBTTtzQkFEZixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVOVEVSLCBTUEFDRSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEZXN0cm95UmVmLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdCxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIGVmZmVjdCxcbiAgICBmb3J3YXJkUmVmLFxuICAgIGluamVjdCxcbiAgICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICAgIEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmUsXG4gICAgRm9jdXNhYmxlTGlzdERpcmVjdGl2ZSxcbiAgICBLZXlVdGlsLFxuICAgIE51bGxhYmxlLFxuICAgIFJ0bFNlcnZpY2UsXG4gICAgZGVzdHJveU9ic2VydmFibGVcbn0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50LCBGRF9CVVRUT05fQ09NUE9ORU5UIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5pbXBvcnQgeyBGRF9MQU5HVUFHRSwgRmRMYW5ndWFnZSwgVHJhbnNsYXRpb25SZXNvbHZlciB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5pbXBvcnQgeyBFTVBUWSwgU3ViamVjdCwgYXN5bmNTY2hlZHVsZXIsIGZyb21FdmVudCwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgb2JzZXJ2ZU9uLCBzdGFydFdpdGgsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgdHlwZSBTZWdtZW50ZWRCdXR0b25WYWx1ZSA9IHN0cmluZyB8IChzdHJpbmcgfCBudWxsKVtdIHwgbnVsbDtcblxuLyoqXG4gKiBDb250YWluZXIgZm9yIGdyb3VwZWQgYnV0dG9ucy5cbiAqXG4gKiBgYGBodG1sXG4gKiA8ZmQtc2VnbWVudGVkLWJ1dHRvbiBbKG5nTW9kZWwpXT1cInZhbHVlXCI+XG4gKiAgICAgPGJ1dHRvbiBmZC1idXR0b24gdmFsdWU9XCJmaXJzdFwiPkJ1dHRvbjwvYnV0dG9uPlxuICogICAgIDxidXR0b24gZmQtYnV0dG9uIHZhbHVlPVwic2Vjb25kXCI+QnV0dG9uPC9idXR0b24+XG4gKiAgICAgPGJ1dHRvbiBmZC1idXR0b24gdmFsdWU9XCJ0aGlyZFwiPkJ1dHRvbjwvYnV0dG9uPlxuICogPC9mZC1zZWdtZW50ZWQtYnV0dG9uPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmQtc2VnbWVudGVkLWJ1dHRvbicsXG4gICAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcbiAgICBzdHlsZVVybDogJy4vc2VnbWVudGVkLWJ1dHRvbi5jb21wb25lbnQuc2NzcycsXG4gICAgaG9zdDoge1xuICAgICAgICByb2xlOiAnbGlzdGJveCcsXG4gICAgICAgICdbY2xhc3MuZmQtc2VnbWVudGVkLWJ1dHRvbl0nOiAndHJ1ZScsXG4gICAgICAgICdbY2xhc3MuZmQtc2VnbWVudGVkLWJ1dHRvbi0tdmVydGljYWxdJzogJ3ZlcnRpY2FsJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtbXVsdGlzZWxlY3RhYmxlXSc6ICd0b2dnbGUnLFxuICAgICAgICAnW2F0dHIuYXJpYS1vcmllbnRhdGlvbl0nOiAndmVydGljYWwgPyBcInZlcnRpY2FsXCIgOiBcImhvcml6b250YWxcIicsXG4gICAgICAgICdbYXR0ci5hcmlhLXJvbGVkZXNjcmlwdGlvbl0nOiAnX2dyb3VwUm9sZURlc2NyaXB0aW9uJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtYWN0aXZlZGVzY2VuZGFudF0nOiAnX2ZvY3VzZWRJdGVtSWQoKSdcbiAgICB9LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VnbWVudGVkQnV0dG9uQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtGb2N1c2FibGVMaXN0RGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBTZWdtZW50ZWRCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gICAgLyoqIFdoZXRoZXIgc2VnbWVudGVkIGJ1dHRvbiBpcyBvbiB0b2dnbGUgbW9kZSwgd2hpY2ggYWxsb3dzIHRvIHRvZ2dsZSBtb3JlIHRoYW4gMSBidXR0b24gKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICB0b2dnbGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgc2VnbWVudGVkIGJ1dHRvbiBpcyBvbiB2ZXJ0aWNhbCBtb2RlLFxuICAgICAqIHdoaWNoIGFsbG93cyB0byBkaXNwbGF5IGJ1dHRvbnMgdmVydGljYWxseVxuICAgICAqKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICB2ZXJ0aWNhbCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEZEX0JVVFRPTl9DT01QT05FTlQpXG4gICAgX2J1dHRvbnM6IFF1ZXJ5TGlzdDxCdXR0b25Db21wb25lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmUpXG4gICAgX2ZvY3VzYWJsZUl0ZW1zOiBRdWVyeUxpc3Q8Rm9jdXNhYmxlSXRlbURpcmVjdGl2ZT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9ncm91cFJvbGVEZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfYnV0dG9uUm9sZURlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBfZm9jdXNlZEl0ZW1JZCA9IHNpZ25hbDxzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkPihudWxsKTtcblxuICAgIC8qKlxuICAgICAqIFZhbHVlIG9mIHNlZ21lbnRlZCBidXR0b24gY2FuIGhhdmUgMiB0eXBlczpcbiAgICAgKiAtIHN0cmluZywgd2hlbiB0aGVyZSBpcyBubyB0b2dnbGUgbW9kZSBhbmQgb25seSAxIHZhbHVlIGNhbiBiZSBjaG9zZW4uXG4gICAgICogLSBhcnJheSBvZiBzdHJpbmdzLCB3aGVuIHRoZXJlIGlzIHRvZ2dsZSBtb2RlIGFuZCBtb3JlIHRoYW4gMSB2YWx1ZSBjYW4gYmUgY2hvc2VuLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2N1cnJlbnRWYWx1ZTogU2VnbWVudGVkQnV0dG9uVmFsdWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lzRGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKiBBbiBSeEpTIFN1YmplY3QgdGhhdCB3aWxsIGtpbGwgdGhlIGRhdGEgc3RyZWFtIHVwb24gcXVlcnlMaXN0IGNoYW5nZXMgKGZvciB1bnN1YnNjcmliaW5nKSAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9vblJlZnJlc2gkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgX29uRGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9sYW5nJCA9IGluamVjdChGRF9MQU5HVUFHRSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RyYW5zbGF0aW9uUmVzb2x2ZXIgPSBpbmplY3QoVHJhbnNsYXRpb25SZXNvbHZlcik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZURldFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWY6IERlc3Ryb3lSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX25nWm9uZTogTmdab25lLFxuICAgICAgICBAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgX2ZvY3VzYWJsZUxpc3Q6IEZvY3VzYWJsZUxpc3REaXJlY3RpdmUsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX3J0bFNlcnZpY2U6IFJ0bFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlTGlzdC5uYXZpZ2F0aW9uRGlyZWN0aW9uID0gdGhpcy52ZXJ0aWNhbCA/ICd2ZXJ0aWNhbCcgOiAnaG9yaXpvbnRhbCc7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9mb2N1c2FibGVMaXN0LmNvbnRlbnREaXJlY3Rpb24gPSB0aGlzLl9ydGxTZXJ2aWNlPy5ydGxTaWduYWwoKSA/ICdydGwnIDogJ2x0cic7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9mb2N1c2FibGVMaXN0Lml0ZW1Gb2N1c2VkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzZWRJdGVtSWQuc2V0KGl0ZW0uaWQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBwcm90ZWN0ZWQgX2NsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnJlbGF0ZWRUYXJnZXQpKSB7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGFuZyQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgobGFuZzogRmRMYW5ndWFnZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fZ3JvdXBSb2xlRGVzY3JpcHRpb24gPSB0aGlzLl90cmFuc2xhdGlvblJlc29sdmVyLnJlc29sdmUoXG4gICAgICAgICAgICAgICAgbGFuZyxcbiAgICAgICAgICAgICAgICAnc2VnbWVudGVkQnV0dG9uLmdyb3VwUm9sZURlc2NyaXB0aW9uJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuX2J1dHRvblJvbGVEZXNjcmlwdGlvbiA9IHRoaXMuX3RyYW5zbGF0aW9uUmVzb2x2ZXIucmVzb2x2ZShcbiAgICAgICAgICAgICAgICBsYW5nLFxuICAgICAgICAgICAgICAgICdzZWdtZW50ZWRCdXR0b24uYnV0dG9uUm9sZURlc2NyaXB0aW9uJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUJ1dHRvblJvbGVEZXNjcmlwdGlvbnMoKTtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkNoYW5nZTogKHZhbHVlOiBTZWdtZW50ZWRCdXR0b25WYWx1ZSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9saXN0ZW5Ub0J1dHRvbkNoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXMgJiYgY2hhbmdlcy52ZXJ0aWNhbCkge1xuICAgICAgICAgICAgdGhpcy5fZm9jdXNhYmxlTGlzdC5uYXZpZ2F0aW9uRGlyZWN0aW9uID0gdGhpcy52ZXJ0aWNhbCA/ICd2ZXJ0aWNhbCcgOiAnaG9yaXpvbnRhbCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vblJlZnJlc2gkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX29uRGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX2J1dHRvbnMgPSBudWxsIGFzIGFueTtcbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlSXRlbXMgPSBudWxsIGFzIGFueTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHdyaXRlVmFsdWUodmFsdWVzOiBzdHJpbmdbXSB8IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdXJyZW50VmFsdWUgPSB2YWx1ZXM7XG4gICAgICAgIHRoaXMuX3BpY2tCdXR0b25zQnlWYWx1ZXModmFsdWVzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHBhcmFtIGZuIFVzZXIgZGVmaW5lZCBmdW5jdGlvbiB0aGF0IGhhbmRsZXMgdGhlICpvbkNoYW5nZSogZXZlbnQgb2YgdGhlIFNlZ21lbnRlZEJ1dHRvbnMuXG4gICAgICovXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBTZWdtZW50ZWRCdXR0b25WYWx1ZSkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBmbiBVc2VyIGRlZmluZWQgZnVuY3Rpb24gdGhhdCBoYW5kbGVzIHRoZSAqb25Ub3VjaCogZXZlbnQgb2YgdGhlIFNlZ21lbnRlZEJ1dHRvbnMuXG4gICAgICovXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHBhcmFtIGlzRGlzYWJsZWQgU2V0cyB0aGUgdmFsdWUgb2YgdGhlICpkaXNhYmxlZCogcHJvcGVydHkgb2YgdGhlIFNlZ21lbnRlZEJ1dHRvbnMuXG4gICAgICovXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgICAgICB0aGlzLl90b2dnbGVEaXNhYmxlQnV0dG9ucyhpc0Rpc2FibGVkKTtcbiAgICAgICAgdGhpcy5fb25SZWZyZXNoJC5uZXh0KCk7XG5cbiAgICAgICAgaWYgKCFpc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fYnV0dG9ucykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9saXN0ZW5Ub0J1dHRvbkNoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcGlja0J1dHRvbnNCeVZhbHVlcyh0aGlzLl9jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NoYW5nZURldFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Ub0J1dHRvbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fYnV0dG9ucyB8fCAhdGhpcy5fZm9jdXNhYmxlSXRlbXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX29uUmVmcmVzaCQubmV4dCgpO1xuXG4gICAgICAgIG1lcmdlKHRoaXMuX2J1dHRvbnMuY2hhbmdlcyA/PyBFTVBUWSwgdGhpcy5fZm9jdXNhYmxlSXRlbXMuY2hhbmdlcyA/PyBFTVBUWSlcbiAgICAgICAgICAgIC5waXBlKHN0YXJ0V2l0aCgxKSwgb2JzZXJ2ZU9uKGFzeW5jU2NoZWR1bGVyKSwgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9idXR0b25zIHx8ICF0aGlzLl9mb2N1c2FibGVJdGVtcykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5fdG9nZ2xlRGlzYWJsZUJ1dHRvbnModGhpcy5faXNEaXNhYmxlZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcGlja0J1dHRvbnNCeVZhbHVlcyh0aGlzLl9jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2J1dHRvbnMuZm9yRWFjaCgoYnV0dG9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZXRCdXR0b25BdHRyaWJ1dGVzKGJ1dHRvbiwgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9saXN0ZW5Ub1RyaWdnZXJFdmVudHMoYnV0dG9uKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9UcmlnZ2VyRXZlbnRzKGJ1dHRvbkNvbXBvbmVudDogQnV0dG9uQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGh0bWxFbGVtZW50ID0gYnV0dG9uQ29tcG9uZW50LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgICAgICBjb25zdCByZWZyZXNoJCA9IG1lcmdlKGRlc3Ryb3lPYnNlcnZhYmxlKHRoaXMuX2Rlc3Ryb3lSZWYpLCB0aGlzLl9vblJlZnJlc2gkKTtcblxuICAgICAgICBjb25zdCB0cmlnZ2VyRXZlbnRzJCA9IG1lcmdlKFxuICAgICAgICAgICAgZnJvbUV2ZW50KGh0bWxFbGVtZW50LCAnY2xpY2snKSxcbiAgICAgICAgICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50PihodG1sRWxlbWVudCwgJ2tleWRvd24nKS5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoZXZlbnQpID0+IEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBbRU5URVIsIFNQQUNFXSkpLFxuICAgICAgICAgICAgICAgIHRhcCgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRyaWdnZXJFdmVudHMkLnBpcGUodGFrZVVudGlsKHJlZnJlc2gkKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2hhbmRsZVRyaWdnZXJPbkJ1dHRvbihidXR0b25Db21wb25lbnQpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NldEJ1dHRvbkF0dHJpYnV0ZXMoYnV0dG9uQ29tcG9uZW50OiBCdXR0b25Db21wb25lbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWwgPSBidXR0b25Db21wb25lbnQuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbCwgJ3JvbGUnLCAnb3B0aW9uJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsLCAnYXJpYS1yb2xlZGVzY3JpcHRpb24nLCB0aGlzLl9idXR0b25Sb2xlRGVzY3JpcHRpb24pO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbCwgJ2FyaWEtcG9zaW5zZXQnLCBTdHJpbmcoaW5kZXggKyAxKSk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsLCAnYXJpYS1zZXRzaXplJywgU3RyaW5nKHRoaXMuX2J1dHRvbnMubGVuZ3RoKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdXBkYXRlQnV0dG9uUm9sZURlc2NyaXB0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9idXR0b25zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fYnV0dG9ucy5mb3JFYWNoKChidXR0b24pID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAgIGJ1dHRvbi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgJ2FyaWEtcm9sZWRlc2NyaXB0aW9uJyxcbiAgICAgICAgICAgICAgICB0aGlzLl9idXR0b25Sb2xlRGVzY3JpcHRpb25cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaGFuZGxlVHJpZ2dlck9uQnV0dG9uKGJ1dHRvbkNvbXBvbmVudDogQnV0dG9uQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5faXNCdXR0b25EaXNhYmxlZChidXR0b25Db21wb25lbnQpKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMudG9nZ2xlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYnV0dG9ucy5mb3JFYWNoKChidXR0b24pID0+IHRoaXMuX2Rlc2VsZWN0QnV0dG9uKGJ1dHRvbikpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdEJ1dHRvbihidXR0b25Db21wb25lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Byb3BhZ2F0ZUNoYW5nZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdG9nZ2xlQnV0dG9uKGJ1dHRvbkNvbXBvbmVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcHJvcGFnYXRlQ2hhbmdlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0UmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wcm9wYWdhdGVDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkVmFsdWUgPSB0aGlzLl9nZXRWYWx1ZXNCeVNlbGVjdGVkKCk7XG4gICAgICAgIHRoaXMub25DaGFuZ2Uoc2VsZWN0ZWRWYWx1ZSk7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRWYWx1ZSA9IHNlbGVjdGVkVmFsdWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90b2dnbGVCdXR0b24oYnV0dG9uQ29tcG9uZW50OiBCdXR0b25Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2lzQnV0dG9uU2VsZWN0ZWQoYnV0dG9uQ29tcG9uZW50KSkge1xuICAgICAgICAgICAgdGhpcy5fZGVzZWxlY3RCdXR0b24oYnV0dG9uQ29tcG9uZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdEJ1dHRvbihidXR0b25Db21wb25lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9waWNrQnV0dG9uc0J5VmFsdWVzKHZhbHVlczogU2VnbWVudGVkQnV0dG9uVmFsdWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9idXR0b25zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fYnV0dG9ucy5mb3JFYWNoKChidXR0b24pID0+IHRoaXMuX2Rlc2VsZWN0QnV0dG9uKGJ1dHRvbikpO1xuICAgICAgICB0aGlzLl9nZXRCdXR0b25zQnlWYWx1ZXModmFsdWVzKS5mb3JFYWNoKChidXR0b24pID0+IHRoaXMuX3NlbGVjdEJ1dHRvbihidXR0b24pKTtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0UmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEJ1dHRvbnNCeVZhbHVlcyh2YWx1ZXM6IFNlZ21lbnRlZEJ1dHRvblZhbHVlKTogQnV0dG9uQ29tcG9uZW50W10ge1xuICAgICAgICBpZiAoIXZhbHVlcykge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWVzKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2J1dHRvbnMuZmlsdGVyKChidXR0b24pID0+ICEhdmFsdWVzLmZpbmQoKHZhbHVlKSA9PiB0aGlzLl9nZXRCdXR0b25WYWx1ZShidXR0b24pID09PSB2YWx1ZSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2J1dHRvbnMuZmlsdGVyKChidXR0b24pID0+IHRoaXMuX2dldEJ1dHRvblZhbHVlKGJ1dHRvbikgPT09IHZhbHVlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NlbGVjdEJ1dHRvbihidXR0b25Db21wb25lbnQ6IEJ1dHRvbkNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICBidXR0b25Db21wb25lbnQuc2VsZWN0ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGVzZWxlY3RCdXR0b24oYnV0dG9uQ29tcG9uZW50OiBCdXR0b25Db21wb25lbnQpOiB2b2lkIHtcbiAgICAgICAgYnV0dG9uQ29tcG9uZW50LnNlbGVjdGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc0J1dHRvblNlbGVjdGVkKGJ1dHRvbkNvbXBvbmVudDogQnV0dG9uQ29tcG9uZW50KTogTnVsbGFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gISFidXR0b25Db21wb25lbnQuc2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc0J1dHRvbkRpc2FibGVkKGJ1dHRvbkNvbXBvbmVudDogQnV0dG9uQ29tcG9uZW50KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBidXR0b25Db21wb25lbnQuZGlzYWJsZWQgfHwgYnV0dG9uQ29tcG9uZW50LmFyaWFEaXNhYmxlZDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RvZ2dsZURpc2FibGVCdXR0b25zKGRpc2FibGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9idXR0b25zIHx8ICF0aGlzLl9mb2N1c2FibGVJdGVtcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fYnV0dG9ucy5mb3JFYWNoKChidXR0b24pID0+IChidXR0b24uZGlzYWJsZWQgPSBkaXNhYmxlKSk7XG5cbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlSXRlbXMuZm9yRWFjaCgoZm9jdXNhYmxlSXRlbURpcmVjdGl2ZSkgPT4ge1xuICAgICAgICAgICAgZm9jdXNhYmxlSXRlbURpcmVjdGl2ZS5zZXRUYWJiYWJsZSghZGlzYWJsZSk7XG4gICAgICAgICAgICBmb2N1c2FibGVJdGVtRGlyZWN0aXZlLmZka0ZvY3VzYWJsZUl0ZW0gPSAhZGlzYWJsZTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkaXNhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLl9idXR0b25zLmZvckVhY2goKGJ1dHRvbikgPT4ge1xuICAgICAgICAgICAgICAgIGJ1dHRvbi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucm9sZSA9ICdvcHRpb24nO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xpc3RlblRvVHJpZ2dlckV2ZW50cyhidXR0b24pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRCdXR0b25WYWx1ZShidXR0b25Db21wb25lbnQ6IEJ1dHRvbkNvbXBvbmVudCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gYnV0dG9uQ29tcG9uZW50LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MQnV0dG9uRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGVsZW1lbnQuZ2V0QXR0cmlidXRlKCd2YWx1ZScpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogUmV0dXJucyB2YWx1ZXMgZGVwZW5kaW5nIG9uIHNlbGVjdGVkIHN0YXRlIG9mIGJ1dHRvbnNcbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZXRWYWx1ZXNCeVNlbGVjdGVkKCk6IFNlZ21lbnRlZEJ1dHRvblZhbHVlIHtcbiAgICAgICAgaWYgKCF0aGlzLl9idXR0b25zKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXNCdXR0b25zID0gdGhpcy5fYnV0dG9uc1xuICAgICAgICAgICAgLmZpbHRlcigoYnV0dG9uKSA9PiAhIXRoaXMuX2lzQnV0dG9uU2VsZWN0ZWQoYnV0dG9uKSlcbiAgICAgICAgICAgIC5tYXAoKGJ1dHRvbikgPT4gdGhpcy5fZ2V0QnV0dG9uVmFsdWUoYnV0dG9uKSk7XG4gICAgICAgIGlmICghdGhpcy50b2dnbGUpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNCdXR0b25zLmxlbmd0aCA9PT0gMSA/IHJlc0J1dHRvbnNbMF0gOiBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHJlc0J1dHRvbnM7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=","import { NgModule } from '@angular/core';\nimport { SegmentedButtonComponent } from './segmented-button.component';\nimport * as i0 from \"@angular/core\";\n/**\n * @deprecated\n * Use direct `SegmentedButtonComponent` import instead.\n */\nexport class SegmentedButtonModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SegmentedButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: SegmentedButtonModule, imports: [SegmentedButtonComponent], exports: [SegmentedButtonComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SegmentedButtonModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: SegmentedButtonModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [SegmentedButtonComponent],\n exports: [SegmentedButtonComponent]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VnbWVudGVkLWJ1dHRvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc2VnbWVudGVkLWJ1dHRvbi9zZWdtZW50ZWQtYnV0dG9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUV4RTs7O0dBR0c7QUFLSCxNQUFNLE9BQU8scUJBQXFCOzhHQUFyQixxQkFBcUI7K0dBQXJCLHFCQUFxQixZQUhwQix3QkFBd0IsYUFDeEIsd0JBQXdCOytHQUV6QixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBSmpDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsd0JBQXdCLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLHdCQUF3QixDQUFDO2lCQUN0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNlZ21lbnRlZEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vc2VnbWVudGVkLWJ1dHRvbi5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBVc2UgZGlyZWN0IGBTZWdtZW50ZWRCdXR0b25Db21wb25lbnRgIGltcG9ydCBpbnN0ZWFkLlxuICovXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtTZWdtZW50ZWRCdXR0b25Db21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtTZWdtZW50ZWRCdXR0b25Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFNlZ21lbnRlZEJ1dHRvbk1vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LWNvcmUtc2VnbWVudGVkLWJ1dHRvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zZWdtZW50ZWQtYnV0dG9uL2Z1bmRhbWVudGFsLW5neC1jb3JlLXNlZ21lbnRlZC1idXR0b24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
|