@eui/components 18.0.0-rc.12 → 18.0.0-rc.14
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/docs/components/EuiAlertComponent.html +1 -1
- package/docs/components/EuiAppTopMessageComponent.html +1 -1
- package/docs/components/EuiChipComponent.html +1 -1
- package/docs/components/EuiDateRangeSelectorComponent.html +25 -1
- package/docs/components/EuiDatepickerComponent.html +25 -1
- package/docs/components/EuiDialogContainerComponent.html +1 -1
- package/docs/components/EuiEditorComponent.html +1 -1
- package/docs/components/EuiEditorCountersComponent.html +1 -1
- package/docs/components/EuiFileUploadComponent.html +1 -1
- package/docs/components/EuiGrowlComponent.html +1 -1
- package/docs/components/EuiMenuItemComponent.html +1 -1
- package/docs/components/EuiOverlayHeaderTitleComponent.html +1 -1
- package/docs/components/EuiPageBreadcrumbComponent.html +3 -3
- package/docs/components/EuiPageColumnsComponent.html +3 -3
- package/docs/components/EuiPageContentComponent.html +3 -3
- package/docs/components/EuiPageFooterComponent.html +46 -3
- package/docs/components/EuiPageTopContentComponent.html +3 -3
- package/docs/components/EuiPopoverComponent.html +1 -1
- package/docs/components/EuiTabsComponent.html +1 -1
- package/docs/components/EuiTimepickerComponent.html +25 -1
- package/docs/components/EuiUserProfileCardComponent.html +1 -1
- package/docs/dependencies.html +1 -1
- package/docs/js/menu-wc.js +3 -3
- package/docs/js/menu-wc_es5.js +1 -1
- package/docs/js/search/search_index.js +2 -2
- package/docs/miscellaneous/variables.html +3 -3
- package/docs/modules/EuiOverlayModule.html +3 -0
- package/esm2022/eui-alert/eui-alert.component.mjs +3 -3
- package/esm2022/eui-autocomplete/animations/animations.mjs +2 -2
- package/esm2022/eui-autocomplete/eui-autocomplete.component.mjs +3 -3
- package/esm2022/eui-chip/eui-chip.component.mjs +3 -3
- package/esm2022/eui-date-range-selector/eui-date-range-selector.component.mjs +7 -3
- package/esm2022/eui-date-range-selector/eui-date-range-selector.validators.mjs +2 -2
- package/esm2022/eui-datepicker/eui-datepicker.component.mjs +7 -4
- package/esm2022/eui-dialog/container/eui-dialog-container.component.mjs +4 -4
- package/esm2022/eui-dropdown/animations/open-close.mjs +2 -2
- package/esm2022/eui-dropdown/dropdown-item/eui-dropdown-item.component.mjs +2 -2
- package/esm2022/eui-dropdown/eui-dropdown.component.mjs +3 -3
- package/esm2022/eui-fieldset/eui-fieldset.component.mjs +2 -2
- package/esm2022/eui-file-upload/eui-file-upload.component.mjs +4 -10
- package/esm2022/eui-growl/eui-growl.component.mjs +3 -3
- package/esm2022/eui-icon/eui-icon-svg.component.mjs +2 -2
- package/esm2022/eui-icon-button/eui-icon-button.component.mjs +2 -2
- package/esm2022/eui-menu/eui-menu-item.component.mjs +3 -3
- package/esm2022/eui-overlay/components/eui-overlay-header/eui-overlay-header-title/eui-overlay-header-title.component.mjs +5 -4
- package/esm2022/eui-overlay/eui-overlay.component.mjs +2 -2
- package/esm2022/eui-overlay/eui-overlay.module.mjs +5 -4
- package/esm2022/eui-page/components/eui-page-breadcrumb/eui-page-breadcrumb.component.mjs +7 -3
- package/esm2022/eui-page/components/eui-page-columns/eui-page-columns.component.mjs +7 -3
- package/esm2022/eui-page/components/eui-page-content/eui-page-content.component.mjs +7 -3
- package/esm2022/eui-page/components/eui-page-footer/eui-page-footer.component.mjs +16 -10
- package/esm2022/eui-page/components/eui-page-top-content/eui-page-top-content.component.mjs +7 -3
- package/esm2022/eui-page/eui-page.component.mjs +2 -2
- package/esm2022/eui-popover/eui-popover.component.mjs +8 -7
- package/esm2022/eui-tabs/eui-tab/eui-tab.component.mjs +2 -2
- package/esm2022/eui-tabs/eui-tabs.component.mjs +3 -3
- package/esm2022/eui-timepicker/eui-timepicker.component.mjs +7 -4
- package/esm2022/eui-user-profile/user-profile-card/user-profile-card.component.mjs +3 -3
- package/esm2022/externals/eui-editor/counters/eui-editor-counters.component.mjs +3 -4
- package/esm2022/externals/eui-editor/eui-editor.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-top-message/top-message.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar.component.mjs +2 -2
- package/eui-date-range-selector/eui-date-range-selector.component.d.ts +2 -1
- package/eui-date-range-selector/eui-date-range-selector.component.d.ts.map +1 -1
- package/eui-datepicker/eui-datepicker.component.d.ts +2 -1
- package/eui-datepicker/eui-datepicker.component.d.ts.map +1 -1
- package/eui-file-upload/eui-file-upload.component.d.ts.map +1 -1
- package/eui-overlay/eui-overlay.module.d.ts +3 -2
- package/eui-overlay/eui-overlay.module.d.ts.map +1 -1
- package/eui-page/components/eui-page-footer/eui-page-footer.component.d.ts +3 -0
- package/eui-page/components/eui-page-footer/eui-page-footer.component.d.ts.map +1 -1
- package/eui-timepicker/eui-timepicker.component.d.ts +2 -1
- package/eui-timepicker/eui-timepicker.component.d.ts.map +1 -1
- package/fesm2022/eui-components-eui-alert.mjs +2 -2
- package/fesm2022/eui-components-eui-alert.mjs.map +1 -1
- package/fesm2022/eui-components-eui-autocomplete.mjs +3 -3
- package/fesm2022/eui-components-eui-autocomplete.mjs.map +1 -1
- package/fesm2022/eui-components-eui-chip.mjs +2 -2
- package/fesm2022/eui-components-eui-chip.mjs.map +1 -1
- package/fesm2022/eui-components-eui-date-range-selector.mjs +7 -3
- package/fesm2022/eui-components-eui-date-range-selector.mjs.map +1 -1
- package/fesm2022/eui-components-eui-datepicker.mjs +6 -3
- package/fesm2022/eui-components-eui-datepicker.mjs.map +1 -1
- package/fesm2022/eui-components-eui-dialog.mjs +5 -5
- package/fesm2022/eui-components-eui-dialog.mjs.map +1 -1
- package/fesm2022/eui-components-eui-dropdown.mjs +5 -5
- package/fesm2022/eui-components-eui-dropdown.mjs.map +1 -1
- package/fesm2022/eui-components-eui-fieldset.mjs +2 -2
- package/fesm2022/eui-components-eui-fieldset.mjs.map +1 -1
- package/fesm2022/eui-components-eui-file-upload.mjs +3 -9
- package/fesm2022/eui-components-eui-file-upload.mjs.map +1 -1
- package/fesm2022/eui-components-eui-growl.mjs +2 -2
- package/fesm2022/eui-components-eui-growl.mjs.map +1 -1
- package/fesm2022/eui-components-eui-icon-button.mjs +2 -2
- package/fesm2022/eui-components-eui-icon-button.mjs.map +1 -1
- package/fesm2022/eui-components-eui-icon.mjs +2 -2
- package/fesm2022/eui-components-eui-icon.mjs.map +1 -1
- package/fesm2022/eui-components-eui-menu.mjs +2 -2
- package/fesm2022/eui-components-eui-menu.mjs.map +1 -1
- package/fesm2022/eui-components-eui-overlay.mjs +10 -8
- package/fesm2022/eui-components-eui-overlay.mjs.map +1 -1
- package/fesm2022/eui-components-eui-page.mjs +41 -19
- package/fesm2022/eui-components-eui-page.mjs.map +1 -1
- package/fesm2022/eui-components-eui-popover.mjs +9 -8
- package/fesm2022/eui-components-eui-popover.mjs.map +1 -1
- package/fesm2022/eui-components-eui-tabs.mjs +4 -4
- package/fesm2022/eui-components-eui-tabs.mjs.map +1 -1
- package/fesm2022/eui-components-eui-timepicker.mjs +6 -3
- package/fesm2022/eui-components-eui-timepicker.mjs.map +1 -1
- package/fesm2022/eui-components-eui-user-profile.mjs +2 -2
- package/fesm2022/eui-components-eui-user-profile.mjs.map +1 -1
- package/fesm2022/eui-components-externals-eui-editor.mjs +4 -4
- package/fesm2022/eui-components-externals-eui-editor.mjs.map +1 -1
- package/fesm2022/eui-components-layout.mjs +4 -4
- package/fesm2022/eui-components-layout.mjs.map +1 -1
- package/package.json +9 -9
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eui-components-eui-tabs.mjs","sources":["../../eui-tabs/eui-tab-content/eui-tab-content.component.ts","../../eui-tabs/eui-tab-label/eui-tab-label.component.ts","../../eui-tabs/eui-tab/eui-tab.component.ts","../../eui-tabs/eui-tab/eui-tab.component.html","../../eui-tabs/eui-tabs.component.ts","../../eui-tabs/eui-tabs.component.html","../../eui-tabs/eui-tabs.module.ts","../../eui-tabs/eui-components-eui-tabs.ts"],"sourcesContent":["import { Component, Input, TemplateRef, ViewChild, ViewContainerRef, AfterViewInit, booleanAttribute } from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Component({\n selector: 'eui-tab-content, euiTabContent',\n template: ` <ng-template #euiTabContent>\n <div tabindex=\"0\" class=\"eui-tab-content\" [class.eui-tab-content--no-padding]=\"this.hasNoContentPadding\">\n <ng-content></ng-content>\n </div>\n </ng-template>`,\n})\nexport class EuiTabContentComponent implements AfterViewInit {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @ViewChild('euiTabContent') templateRef: TemplateRef<any>;\n\n public templatePortal: TemplatePortal;\n\n @Input({ transform: booleanAttribute }) hasNoContentPadding = false;\n\n constructor(private viewContainerRef: ViewContainerRef) {}\n\n ngAfterViewInit(): void {\n this.templatePortal = new TemplatePortal(this.templateRef, this.viewContainerRef);\n }\n}\n","import { Component, TemplateRef, ViewChild, ViewContainerRef, AfterViewInit, Directive } from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Component({\n selector: 'eui-tab-label, euiTabLabel',\n template: `\n <ng-template #euiTabLabel>\n <div class=\"eui-u-flex eui-u-flex-column\">\n <div class=\"eui-u-flex eui-u-flex-row eui-u-flex-justify-content-center\">\n <ng-content></ng-content>\n </div>\n <div class=\"eui-tab-item__sublabel\"><ng-content select=\"euiTabSubLabel\"></ng-content></div>\n </div>\n </ng-template>`,\n})\nexport class EuiTabLabelComponent implements AfterViewInit {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @ViewChild('euiTabLabel') templateRef: TemplateRef<any>;\n\n public templatePortal: TemplatePortal | null;\n\n constructor(private viewContainerRef: ViewContainerRef) {}\n\n ngAfterViewInit(): void {\n this.templatePortal = new TemplatePortal(this.templateRef, this.viewContainerRef);\n }\n}\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({ selector: 'euiTabSubLabel' })\nexport class EuiTabSubLabelDirective {}\n","import { Component, ContentChild, Input, booleanAttribute } from '@angular/core';\n\nimport { BaseStatesDirective } from '@eui/components/shared';\n\nimport { EuiTabContentComponent } from '../eui-tab-content/eui-tab-content.component';\nimport { EuiTabLabelComponent } from '../eui-tab-label/eui-tab-label.component';\n\n@Component({\n selector: 'eui-tab',\n templateUrl: './eui-tab.component.html',\n styleUrls: ['../styles/_index.scss'],\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [\n 'euiDisabled',\n 'euiPrimary',\n 'euiSecondary',\n 'euiInfo',\n 'euiSuccess',\n 'euiWarning',\n 'euiDanger',\n 'euiAccent',\n 'euiVariant',\n ],\n },\n ],\n})\nexport class EuiTabComponent {\n @Input() url: string;\n @Input() e2eAttr = 'eui-tab';\n @Input() tooltip: string;\n @Input({ transform: booleanAttribute }) isClosable = false;\n @Input({ transform: booleanAttribute }) isVisible = true;\n @Input({ transform: booleanAttribute }) isActive = false;\n @Input({ transform: booleanAttribute }) isDisabled = false;\n @Input({ transform: booleanAttribute }) hasBackgroundFilled = false;\n @Input({ transform: booleanAttribute }) isHandleCloseOnClose = false;\n\n @ContentChild(EuiTabLabelComponent)\n get templateLabel(): EuiTabLabelComponent {\n return this._templateLabel;\n }\n set templateLabel(value: EuiTabLabelComponent) {\n this.setTemplateLabelInput(value);\n }\n protected _templateLabel: EuiTabLabelComponent;\n\n @ContentChild(EuiTabContentComponent)\n get templateContent(): EuiTabContentComponent {\n return this._templateContent;\n }\n set templateContent(value: EuiTabContentComponent) {\n this.setTemplateContentInput(value);\n }\n protected _templateContent: EuiTabContentComponent;\n\n constructor(public baseStatesDirective: BaseStatesDirective) {\n }\n\n protected setTemplateLabelInput(value: EuiTabLabelComponent): void {\n if (value) {\n this._templateLabel = value;\n }\n }\n\n protected setTemplateContentInput(value: EuiTabContentComponent): void {\n if (value) {\n this._templateContent = value;\n }\n }\n}\n","<ng-content></ng-content>\n","import {\n Component,\n ContentChildren,\n Directive,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n HostListener,\n ViewEncapsulation,\n forwardRef,\n OnChanges,\n AfterViewInit,\n ViewChildren,\n ViewContainerRef,\n ViewChild,\n ElementRef,\n ChangeDetectorRef,\n SimpleChanges,\n HostBinding,\n booleanAttribute,\n ContentChild,\n} from '@angular/core';\nimport { animate, AnimationBuilder, AnimationFactory, AnimationPlayer, style } from '@angular/animations';\nimport { Subject, Subscription, filter, startWith, takeUntil } from 'rxjs';\nimport { NavigationEnd, Router } from '@angular/router';\n\nimport { EuiTabComponent } from './eui-tab/eui-tab.component';\n\n@Component({\n selector: 'eui-tabs',\n templateUrl: './eui-tabs.component.html',\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiTabsComponent implements OnDestroy, AfterViewInit, OnChanges {\n @HostBinding('class')\n get elementClass(): string {\n return [\n 'eui-tabs',\n this.isMainNavigation ? 'eui-tabs--main-navigation': '',\n this.isVerticalTabs ? 'eui-tabs--vertical': '',\n ].join(' ').trim();\n }\n @Input() tabs: EuiTabComponent[] = [];\n @Input() activeTabIndex = null;\n @HostBinding('attr.data-e2e')\n @Input() e2eAttr = 'eui-tabs';\n @Input() pathMatch: 'prefix' | 'full' = 'prefix';\n\n @Output() tabClose = new EventEmitter<{ tab: EuiTabComponent; index: number }>();\n @Output() tabSelect = new EventEmitter<{ tab: EuiTabComponent; index: number }>();\n\n @ContentChildren(forwardRef(() => EuiTabComponent), { descendants: false }) _tabs: QueryList<EuiTabComponent>;\n @ContentChild(forwardRef(() => EuiTabsRightContentTagDirective)) euiTabsRightContentTagDirective: EuiTabsRightContentTagDirective;\n @ViewChildren('euiTabLabelItem', { read: ViewContainerRef }) euiTabLabelItems: QueryList<ViewContainerRef>;\n @ViewChild('euiTabsItems') euiTabsItems: ElementRef;\n @ViewChild('euiTabsItemsWrapper') euiTabsItemsWrapper: ElementRef;\n\n public scrolling = false;\n public navigationLeftButtonDisabled = true;\n public navigationRightButtonDisabled = false;\n public currentOffset = 0;\n\n @Input({ transform: booleanAttribute }) isMainNavigation = false;\n @Input({ transform: booleanAttribute }) isHandleChangeTab = false;\n @Input({ transform: booleanAttribute }) isSubTabs = false;\n @Input({ transform: booleanAttribute }) isVerticalTabs = false;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private routerSubscription: Subscription;\n private player: AnimationPlayer;\n private observer: ResizeObserver;\n private stepMove = 400;\n private scrollOffset = 60;\n /**\n * For race condition reason, the wrapper width is not correctly calculated when the component passes from no-scroll state to scroll\n * state. To fix this issue, we count the number of times the getScrollingStatus method is called.\n *\n * Scenario 1: The number of tabs does not require any scroll:\n * - Without any fix the scroll will have a delta of 64 at the first activation, then on the first no-scroll to scroll state,\n * - we had 64 to the move\n *\n * Scenario 2: The number of tabs requires a scroll:\n * - In this case the wrapper width is correctly calculated, so we don't need to add the delta\n */\n private scrollingCount = 0;\n\n constructor(\n private cd: ChangeDetectorRef,\n private router: Router,\n private builder: AnimationBuilder,\n private elementRef: ElementRef,\n ) {}\n\n ngOnChanges(c: SimpleChanges): void {\n if (c.activeTabIndex) {\n setTimeout(\n () => {\n const activeTab = this.euiTabsItemsWrapper.nativeElement.children.item(c.activeTabIndex.currentValue);\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n const wrapperWidth = this.euiTabsItemsWrapper.nativeElement.clientWidth;\n\n if (activeTab && !this.isActiveTabFullyVisible(activeTab)) {\n let scrollTo = 0;\n let subsetWidth = 0;\n for (let i = 0; i <= c.activeTabIndex.currentValue; i++) {\n subsetWidth += this.euiTabsItemsWrapper.nativeElement.children.item(i).clientWidth;\n }\n\n scrollTo = containerWidth / 2 - subsetWidth;\n\n if (Math.abs(scrollTo) > wrapperWidth - containerWidth + this.scrollOffset) {\n scrollTo = -(wrapperWidth - containerWidth + this.scrollOffset);\n }\n\n if (scrollTo > 0) {\n scrollTo = 0;\n }\n\n if (c.activeTabIndex.isFirstChange() && c.activeTabIndex.currentValue > 0) {\n this.setScrollTo(scrollTo, false);\n } else {\n this.setScrollTo(scrollTo);\n }\n }\n },\n c.activeTabIndex.isFirstChange() && c.activeTabIndex.currentValue > 0 ? 500 : 0,\n );\n }\n }\n\n ngAfterViewInit(): void {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.observer = new (window as any).ResizeObserver(() => {\n this.getScrollingStatus();\n this.cd.detectChanges();\n });\n\n this.observer.observe(this.elementRef.nativeElement);\n\n this._tabs.changes.pipe(startWith(true), takeUntil(this.destroy$)).subscribe(() => {\n this.tabs = this._tabs.toArray();\n\n if (this.routerSubscription) {\n this.routerSubscription.unsubscribe();\n }\n\n // TODO v18 check navigationEnd (deprecation)\n this.routerSubscription = this.router.events\n .pipe(\n filter((e) => e instanceof NavigationEnd),\n takeUntil(this.destroy$),\n startWith({ url: this.router.url }),\n )\n .subscribe((e: NavigationEnd) => {\n const tabsWithUrl = this.tabs.filter((t) => t.url !== null);\n if (tabsWithUrl.length === this.tabs.length) {\n let tabIndex = -1;\n if (this.pathMatch === 'full') {\n tabIndex = tabsWithUrl.findIndex((t) => e.url === t.url);\n } else {\n tabIndex = tabsWithUrl.findIndex((t) => {\n const regex = new RegExp(t.url + '(/?)');\n return regex.test(e.url);\n });\n }\n\n this.tabs = this.tabs.map((t, i) =>\n tabIndex === i ? Object.assign(t, { isActive: true }) : Object.assign(t, { isActive: false }),\n );\n\n if (this.tabs.findIndex((t) => t.isActive) !== -1) {\n this.activeTabIndex = this.tabs.findIndex((t) => t.isActive);\n }\n\n this.cd.detectChanges();\n }\n });\n\n if (!this.activeTabIndex) {\n this.activeTabIndex = this.tabs.findIndex((t) => t.isActive) !== -1 ? this.tabs.findIndex((t) => t.isActive) : 0;\n }\n\n this.cd.detectChanges();\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n this.observer?.unobserve(this.elementRef.nativeElement);\n }\n\n @HostListener('window:resize', ['$event'])\n onResize(): void {\n this.getScrollingStatus();\n }\n\n public onContentChanges(): void {\n this.getScrollingStatus();\n }\n\n public goToLeft(): void {\n let scrollTo = this.currentOffset + this.stepMove;\n if (scrollTo > 0) {\n scrollTo = 0;\n }\n\n this.setScrollTo(scrollTo);\n }\n\n public goToRight(): void {\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n const wrapperWidth = this.euiTabsItemsWrapper.nativeElement.clientWidth;\n\n let scrollTo = this.currentOffset - this.stepMove;\n\n if (Math.abs(scrollTo) > wrapperWidth - containerWidth) {\n scrollTo = -(wrapperWidth - containerWidth) - this.scrollOffset;\n }\n\n this.setScrollTo(scrollTo);\n }\n\n public changeTab(index: number): void {\n if (this.isHandleChangeTab) {\n this.tabSelect.emit({ tab: this.tabs[index], index });\n } else {\n if (this.tabs[index] && !this.tabs[index].isDisabled) {\n if (this.tabs[this.activeTabIndex]) {\n this.tabs[this.activeTabIndex].isActive = false;\n }\n this.tabs[index].isActive = true;\n\n const activeTab = this.euiTabsItemsWrapper.nativeElement.children.item(index);\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n const wrapperWidth = this.euiTabsItemsWrapper.nativeElement.clientWidth;\n\n if (activeTab && !this.isActiveTabFullyVisible(activeTab) && !this.isVerticalTabs) {\n let scrollTo = 0;\n let subsetWidth = 0;\n for (let i = 0; i <= index; i++) {\n subsetWidth += this.euiTabsItemsWrapper.nativeElement.children.item(i).clientWidth;\n }\n\n scrollTo = containerWidth / 2 - subsetWidth;\n\n if (Math.abs(scrollTo) > wrapperWidth - containerWidth + this.scrollOffset) {\n scrollTo = -(wrapperWidth - containerWidth + this.scrollOffset);\n }\n\n if (scrollTo > 0) {\n scrollTo = 0;\n }\n\n this.setScrollTo(scrollTo);\n }\n\n if (!this.tabs[index].url) {\n this.activeTabIndex = index;\n this.tabSelect.emit({ tab: this.tabs[index], index });\n } else {\n this.activeTabIndex = index;\n this.router.navigateByUrl(this.tabs[index].url);\n }\n }\n }\n }\n\n public onKeyUp(e: KeyboardEvent, index: number): void {\n if (e.code === 'Enter' || e.code === 'Space') {\n if (this.tabs[index] && !this.tabs[index].isDisabled) {\n this.tabs.map((t, i) => (i === index ? Object.assign(t, { isActive: true }) : Object.assign(t, { isActive: false })));\n\n if (!this.tabs[index].url) {\n this.activeTabIndex = index;\n this.tabSelect.emit({ tab: this.tabs[index], index });\n } else {\n this.activeTabIndex = index;\n this.router.navigateByUrl(this.tabs[index].url);\n }\n }\n }\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public closeTab(index: number, e: any): void {\n const tab = this.tabs[index];\n if (!this.tabs[index].isHandleCloseOnClose) {\n this.close(e.index);\n this.tabs = this.tabs.filter((t, i) => i !== index);\n }\n\n this.tabClose.emit({ tab, index });\n e.stopPropagation();\n }\n\n /**\n * Close a tab pass in parameter.\n *\n * @usageNotes\n * ```html\n * <eui-tabs #tabs>\n * <eui-tab isClosable isHandleCloseOnClose>\n * <eui-tab-label>Tab label</eui-tab-label>\n * <eui-tab-content>Tab content</eui-tab-content>\n * </eui-tab>\n * </eui-tabs>\n * ```\n * ...\n * ```typescript\n * this.tabs.close(1);\n * ```\n * @param index Index of the tab to close\n */\n public close(index: number): void {\n if (index === this.activeTabIndex) {\n const previousVisibleIndex = this.tabs.indexOf(this.tabs[index - 1]);\n\n if (previousVisibleIndex < 0) {\n this.changeTab(0);\n } else {\n this.changeTab(previousVisibleIndex);\n }\n } else {\n if (index < this.activeTabIndex) {\n this.activeTabIndex = this.activeTabIndex - 1;\n }\n }\n\n this.tabs = this.tabs.filter((t, i) => i !== index);\n }\n\n private isActiveTabFullyVisible(activeTab: HTMLDivElement): boolean {\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n return activeTab.offsetLeft - 48 >= 0 && activeTab.offsetLeft + activeTab.clientWidth < containerWidth - 48;\n }\n\n private setScrollTo(scrollTo: number, isAnimated = true): void {\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n const wrapperWidth = this.euiTabsItemsWrapper.nativeElement.clientWidth;\n\n const timings = isAnimated ? '500ms cubic-bezier(0.35, 0, 0.25, 1)' : 0;\n const animation: AnimationFactory = this.builder.build([animate(timings, style({ 'margin-left': +scrollTo + 'px' }))]);\n\n this.player = animation.create(this.euiTabsItemsWrapper.nativeElement);\n this.player.play();\n\n this.currentOffset = scrollTo;\n\n if (scrollTo === 0) {\n this.navigationLeftButtonDisabled = true;\n }\n if (Math.abs(this.currentOffset) < wrapperWidth - containerWidth + this.scrollOffset) {\n this.navigationRightButtonDisabled = false;\n }\n if (this.currentOffset < 0) {\n this.navigationLeftButtonDisabled = false;\n }\n if (Math.abs(scrollTo) === wrapperWidth - containerWidth + this.scrollOffset) {\n this.navigationRightButtonDisabled = true;\n }\n\n this.cd.detectChanges();\n }\n\n private getScrollingStatus(): void {\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n const wrapperWidth = this.euiTabsItemsWrapper.nativeElement.clientWidth;\n\n this.scrolling = containerWidth < wrapperWidth;\n\n if (!this.scrolling) {\n this.scrollingCount = 0;\n this.setScrollTo(0);\n } else {\n if (wrapperWidth - containerWidth <= Math.abs(this.currentOffset) + this.scrollOffset) {\n const deltaFix = this.scrollingCount === 0 ? this.scrollOffset * 2 : 0;\n const scrollTo = -(wrapperWidth - containerWidth) - this.scrollOffset - deltaFix;\n\n this.setScrollTo(scrollTo);\n\n this.currentOffset = scrollTo;\n } else {\n if (Math.abs(this.currentOffset) < wrapperWidth - containerWidth + this.scrollOffset) {\n this.navigationRightButtonDisabled = false;\n }\n if (this.currentOffset < 0) {\n this.navigationLeftButtonDisabled = false;\n }\n }\n\n this.scrollingCount++;\n }\n\n this.cd.detectChanges();\n }\n}\n\n/* eslint-disable */\n@Directive({ selector: 'euiTabsRightContent' })\nexport class EuiTabsRightContentTagDirective {\n @HostBinding('class') elementClass = 'eui-tabs__right-content-wrapper';\n}\n/* eslint-enable */\n","<div class=\"eui-u-flex\" [class.eui-tabs__wrapper--horizontal]=\"!isVerticalTabs\" [class.eui-tabs__wrapper--vertical]=\"isVerticalTabs\">\n <div\n #euiTabsItems\n class=\"eui-tabs__items\"\n [class.eui-tabs__items--horizontal]=\"!isVerticalTabs\"\n [class.eui-tabs__items--scrolling]=\"scrolling\"\n (cdkObserveContent)=\"onContentChanges()\">\n <div #euiTabsItemsWrapper class=\"eui-tabs__items-wrapper\" [attr.data-offset]=\"currentOffset\" role=\"tablist\">\n @for (tab of tabs; let i = $index; track tab) {\n @if (tab.isVisible) {\n <div\n tabindex=\"0\"\n role=\"tab\"\n class=\"eui-tab-item eui-tab-item--{{ tab.baseStatesDirective.euiVariant }}\"\n [class.eui-tab-item--closable]=\"tab.isClosable\"\n [class.eui-tab-item--active]=\"activeTabIndex === i\"\n [class.eui-tab-item--disabled]=\"tab.isDisabled\"\n [class.eui-tab-item--background-filled]=\"tab.hasBackgroundFilled\"\n [attr.aria-disabled]=\"tab.isDisabled\"\n (click)=\"changeTab(i)\"\n [euiTooltip]=\"tab.tooltip\"\n (keyup)=\"onKeyUp($event, i)\">\n <div class=\"eui-tab-item__label\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel.templatePortal\"></ng-template>\n </div>\n @if (tab.isClosable) {\n <eui-icon-button\n icon=\"eui-ecl-close-outline\"\n ariaLabel=\"close\"\n (buttonClick)=\"closeTab(i, $event)\"\n size=\"s\"\n hasFocusHoverColor>\n </eui-icon-button>\n }\n </div>\n }\n }\n </div>\n\n <div class=\"eui-tabs__navigation\">\n <div class=\"eui-tabs__navigation__left-item\">\n <button\n (click)=\"goToLeft()\"\n euiButton\n euiIconButton\n euiBasicButton\n type=\"button\"\n [euiDisabled]=\"navigationLeftButtonDisabled\"\n aria-label=\"Scroll left\">\n <eui-icon-svg icon=\"chevron-back:sharp\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-tabs__navigation__right-item\">\n <button\n (click)=\"goToRight()\"\n euiButton\n euiIconButton\n euiBasicButton\n type=\"button\"\n [euiDisabled]=\"navigationRightButtonDisabled\"\n aria-label=\"Scroll right\">\n <eui-icon-svg icon=\"chevron-forward:sharp\"></eui-icon-svg>\n </button>\n </div>\n </div>\n </div>\n\n @if (euiTabsRightContentTagDirective) {\n <div class=\"eui-tabs__right-content\">\n <ng-content select=\"euiTabsRightContent\"></ng-content>\n </div>\n }\n</div>\n\n@for (tab of tabs; let i = $index; track tab) {\n @if (i === activeTabIndex && tab.templateContent) {\n <div class=\"eui-tab-content-wrapper\" tabindex=\"0\">\n <ng-template [cdkPortalOutlet]=\"tab.templateContent.templatePortal\"></ng-template>\n </div>\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { ObserversModule } from '@angular/cdk/observers';\n\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiIconButtonModule } from '@eui/components/eui-icon-button';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiTooltipDirectiveModule } from '@eui/components/directives';\n\nimport { EuiTabComponent } from './eui-tab/eui-tab.component';\nimport { EuiTabsComponent, EuiTabsRightContentTagDirective } from './eui-tabs.component';\nimport { EuiTabLabelComponent, EuiTabSubLabelDirective } from './eui-tab-label/eui-tab-label.component';\nimport { EuiTabContentComponent } from './eui-tab-content/eui-tab-content.component';\n\n@NgModule({\n imports: [CommonModule, PortalModule, EuiIconModule, EuiIconButtonModule, EuiButtonModule, EuiTooltipDirectiveModule, ObserversModule],\n exports: [\n EuiTabsComponent,\n EuiTabComponent,\n EuiTabsRightContentTagDirective,\n EuiTabLabelComponent,\n EuiTabSubLabelDirective,\n EuiTabContentComponent,\n ],\n declarations: [\n EuiTabsComponent,\n EuiTabComponent,\n EuiTabsRightContentTagDirective,\n EuiTabLabelComponent,\n EuiTabSubLabelDirective,\n EuiTabContentComponent,\n ],\n})\nexport class EuiTabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"eui-components-eui-tabs.mjs","sources":["../../eui-tabs/eui-tab-content/eui-tab-content.component.ts","../../eui-tabs/eui-tab-label/eui-tab-label.component.ts","../../eui-tabs/eui-tab/eui-tab.component.ts","../../eui-tabs/eui-tab/eui-tab.component.html","../../eui-tabs/eui-tabs.component.ts","../../eui-tabs/eui-tabs.component.html","../../eui-tabs/eui-tabs.module.ts","../../eui-tabs/eui-components-eui-tabs.ts"],"sourcesContent":["import { Component, Input, TemplateRef, ViewChild, ViewContainerRef, AfterViewInit, booleanAttribute } from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Component({\n selector: 'eui-tab-content, euiTabContent',\n template: ` <ng-template #euiTabContent>\n <div tabindex=\"0\" class=\"eui-tab-content\" [class.eui-tab-content--no-padding]=\"this.hasNoContentPadding\">\n <ng-content></ng-content>\n </div>\n </ng-template>`,\n})\nexport class EuiTabContentComponent implements AfterViewInit {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @ViewChild('euiTabContent') templateRef: TemplateRef<any>;\n\n public templatePortal: TemplatePortal;\n\n @Input({ transform: booleanAttribute }) hasNoContentPadding = false;\n\n constructor(private viewContainerRef: ViewContainerRef) {}\n\n ngAfterViewInit(): void {\n this.templatePortal = new TemplatePortal(this.templateRef, this.viewContainerRef);\n }\n}\n","import { Component, TemplateRef, ViewChild, ViewContainerRef, AfterViewInit, Directive } from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\n@Component({\n selector: 'eui-tab-label, euiTabLabel',\n template: `\n <ng-template #euiTabLabel>\n <div class=\"eui-u-flex eui-u-flex-column\">\n <div class=\"eui-u-flex eui-u-flex-row eui-u-flex-justify-content-center\">\n <ng-content></ng-content>\n </div>\n <div class=\"eui-tab-item__sublabel\"><ng-content select=\"euiTabSubLabel\"></ng-content></div>\n </div>\n </ng-template>`,\n})\nexport class EuiTabLabelComponent implements AfterViewInit {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @ViewChild('euiTabLabel') templateRef: TemplateRef<any>;\n\n public templatePortal: TemplatePortal | null;\n\n constructor(private viewContainerRef: ViewContainerRef) {}\n\n ngAfterViewInit(): void {\n this.templatePortal = new TemplatePortal(this.templateRef, this.viewContainerRef);\n }\n}\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({ selector: 'euiTabSubLabel' })\nexport class EuiTabSubLabelDirective {}\n","import { Component, ContentChild, Input, booleanAttribute } from '@angular/core';\n\nimport { BaseStatesDirective } from '@eui/components/shared';\n\nimport { EuiTabContentComponent } from '../eui-tab-content/eui-tab-content.component';\nimport { EuiTabLabelComponent } from '../eui-tab-label/eui-tab-label.component';\n\n@Component({\n selector: 'eui-tab',\n templateUrl: './eui-tab.component.html',\n styleUrls: ['../styles/_index.scss'],\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [\n 'euiDisabled',\n 'euiPrimary',\n 'euiSecondary',\n 'euiInfo',\n 'euiSuccess',\n 'euiWarning',\n 'euiDanger',\n 'euiAccent',\n 'euiVariant',\n ],\n },\n ],\n})\nexport class EuiTabComponent {\n @Input() url: string;\n @Input() e2eAttr = 'eui-tab';\n @Input() tooltip: string;\n @Input({ transform: booleanAttribute }) isClosable = false;\n @Input({ transform: booleanAttribute }) isVisible = true;\n @Input({ transform: booleanAttribute }) isActive = false;\n @Input({ transform: booleanAttribute }) isDisabled = false;\n @Input({ transform: booleanAttribute }) hasBackgroundFilled = false;\n @Input({ transform: booleanAttribute }) isHandleCloseOnClose = false;\n\n @ContentChild(EuiTabLabelComponent)\n get templateLabel(): EuiTabLabelComponent {\n return this._templateLabel;\n }\n set templateLabel(value: EuiTabLabelComponent) {\n this.setTemplateLabelInput(value);\n }\n protected _templateLabel: EuiTabLabelComponent;\n\n @ContentChild(EuiTabContentComponent)\n get templateContent(): EuiTabContentComponent {\n return this._templateContent;\n }\n set templateContent(value: EuiTabContentComponent) {\n this.setTemplateContentInput(value);\n }\n protected _templateContent: EuiTabContentComponent;\n\n constructor(public baseStatesDirective: BaseStatesDirective) {\n }\n\n protected setTemplateLabelInput(value: EuiTabLabelComponent): void {\n if (value) {\n this._templateLabel = value;\n }\n }\n\n protected setTemplateContentInput(value: EuiTabContentComponent): void {\n if (value) {\n this._templateContent = value;\n }\n }\n}\n","<ng-content></ng-content>\n","import {\n Component,\n ContentChildren,\n Directive,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n HostListener,\n ViewEncapsulation,\n forwardRef,\n OnChanges,\n AfterViewInit,\n ViewChildren,\n ViewContainerRef,\n ViewChild,\n ElementRef,\n ChangeDetectorRef,\n SimpleChanges,\n HostBinding,\n booleanAttribute,\n ContentChild,\n} from '@angular/core';\nimport { animate, AnimationBuilder, AnimationFactory, AnimationPlayer, style } from '@angular/animations';\nimport { Subject, Subscription, filter, startWith, takeUntil } from 'rxjs';\nimport { NavigationEnd, Router } from '@angular/router';\n\nimport { EuiTabComponent } from './eui-tab/eui-tab.component';\n\n@Component({\n selector: 'eui-tabs',\n templateUrl: './eui-tabs.component.html',\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiTabsComponent implements OnDestroy, AfterViewInit, OnChanges {\n @HostBinding('class')\n get elementClass(): string {\n return [\n 'eui-tabs',\n this.isMainNavigation ? 'eui-tabs--main-navigation': '',\n this.isVerticalTabs ? 'eui-tabs--vertical': '',\n ].join(' ').trim();\n }\n @Input() tabs: EuiTabComponent[] = [];\n @Input() activeTabIndex = null;\n @HostBinding('attr.data-e2e')\n @Input() e2eAttr = 'eui-tabs';\n @Input() pathMatch: 'prefix' | 'full' = 'prefix';\n\n @Output() tabClose = new EventEmitter<{ tab: EuiTabComponent; index: number }>();\n @Output() tabSelect = new EventEmitter<{ tab: EuiTabComponent; index: number }>();\n\n @ContentChildren(forwardRef(() => EuiTabComponent), { descendants: false }) _tabs: QueryList<EuiTabComponent>;\n @ContentChild(forwardRef(() => EuiTabsRightContentTagDirective)) euiTabsRightContentTagDirective: EuiTabsRightContentTagDirective;\n @ViewChildren('euiTabLabelItem', { read: ViewContainerRef }) euiTabLabelItems: QueryList<ViewContainerRef>;\n @ViewChild('euiTabsItems') euiTabsItems: ElementRef;\n @ViewChild('euiTabsItemsWrapper') euiTabsItemsWrapper: ElementRef;\n\n public scrolling = false;\n public navigationLeftButtonDisabled = true;\n public navigationRightButtonDisabled = false;\n public currentOffset = 0;\n\n @Input({ transform: booleanAttribute }) isMainNavigation = false;\n @Input({ transform: booleanAttribute }) isHandleChangeTab = false;\n @Input({ transform: booleanAttribute }) isSubTabs = false;\n @Input({ transform: booleanAttribute }) isVerticalTabs = false;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private routerSubscription: Subscription;\n private player: AnimationPlayer;\n private observer: ResizeObserver;\n private stepMove = 400;\n private scrollOffset = 60;\n /**\n * For race condition reason, the wrapper width is not correctly calculated when the component passes from no-scroll state to scroll\n * state. To fix this issue, we count the number of times the getScrollingStatus method is called.\n *\n * Scenario 1: The number of tabs does not require any scroll:\n * - Without any fix the scroll will have a delta of 64 at the first activation, then on the first no-scroll to scroll state,\n * - we had 64 to the move\n *\n * Scenario 2: The number of tabs requires a scroll:\n * - In this case the wrapper width is correctly calculated, so we don't need to add the delta\n */\n private scrollingCount = 0;\n\n constructor(\n private cd: ChangeDetectorRef,\n private router: Router,\n private builder: AnimationBuilder,\n private elementRef: ElementRef,\n ) {}\n\n ngOnChanges(c: SimpleChanges): void {\n if (c.activeTabIndex) {\n setTimeout(\n () => {\n const activeTab = this.euiTabsItemsWrapper.nativeElement.children.item(c.activeTabIndex.currentValue);\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n const wrapperWidth = this.euiTabsItemsWrapper.nativeElement.clientWidth;\n\n if (activeTab && !this.isActiveTabFullyVisible(activeTab)) {\n let scrollTo = 0;\n let subsetWidth = 0;\n for (let i = 0; i <= c.activeTabIndex.currentValue; i++) {\n subsetWidth += this.euiTabsItemsWrapper.nativeElement.children.item(i).clientWidth;\n }\n\n scrollTo = containerWidth / 2 - subsetWidth;\n\n if (Math.abs(scrollTo) > wrapperWidth - containerWidth + this.scrollOffset) {\n scrollTo = -(wrapperWidth - containerWidth + this.scrollOffset);\n }\n\n if (scrollTo > 0) {\n scrollTo = 0;\n }\n\n if (c.activeTabIndex.isFirstChange() && c.activeTabIndex.currentValue > 0) {\n this.setScrollTo(scrollTo, false);\n } else {\n this.setScrollTo(scrollTo);\n }\n }\n },\n c.activeTabIndex.isFirstChange() && c.activeTabIndex.currentValue > 0 ? 500 : 0,\n );\n }\n }\n\n ngAfterViewInit(): void {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.observer = new (window as any).ResizeObserver(() => {\n this.getScrollingStatus();\n this.cd.detectChanges();\n });\n\n this.observer.observe(this.elementRef.nativeElement);\n\n this._tabs.changes.pipe(startWith(true), takeUntil(this.destroy$)).subscribe(() => {\n this.tabs = this._tabs.toArray();\n\n if (this.routerSubscription) {\n this.routerSubscription.unsubscribe();\n }\n\n // TODO v18 check navigationEnd (deprecation)\n this.routerSubscription = this.router.events\n .pipe(\n filter((e) => e instanceof NavigationEnd),\n takeUntil(this.destroy$),\n startWith({ url: this.router.url }),\n )\n .subscribe((e: NavigationEnd) => {\n const tabsWithUrl = this.tabs.filter((t) => t.url !== null);\n if (tabsWithUrl.length === this.tabs.length) {\n let tabIndex = -1;\n if (this.pathMatch === 'full') {\n tabIndex = tabsWithUrl.findIndex((t) => e.url === t.url);\n } else {\n tabIndex = tabsWithUrl.findIndex((t) => {\n const regex = new RegExp(t.url + '(/?)');\n return regex.test(e.url);\n });\n }\n\n this.tabs = this.tabs.map((t, i) =>\n tabIndex === i ? Object.assign(t, { isActive: true }) : Object.assign(t, { isActive: false }),\n );\n\n if (this.tabs.findIndex((t) => t.isActive) !== -1) {\n this.activeTabIndex = this.tabs.findIndex((t) => t.isActive);\n }\n\n this.cd.detectChanges();\n }\n });\n\n if (!this.activeTabIndex) {\n this.activeTabIndex = this.tabs.findIndex((t) => t.isActive) !== -1 ? this.tabs.findIndex((t) => t.isActive) : 0;\n }\n\n this.cd.detectChanges();\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n this.observer?.unobserve(this.elementRef.nativeElement);\n }\n\n @HostListener('window:resize', ['$event'])\n onResize(): void {\n this.getScrollingStatus();\n }\n\n public onContentChanges(): void {\n this.getScrollingStatus();\n }\n\n public goToLeft(): void {\n let scrollTo = this.currentOffset + this.stepMove;\n if (scrollTo > 0) {\n scrollTo = 0;\n }\n\n this.setScrollTo(scrollTo);\n }\n\n public goToRight(): void {\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n const wrapperWidth = this.euiTabsItemsWrapper.nativeElement.clientWidth;\n\n let scrollTo = this.currentOffset - this.stepMove;\n\n if (Math.abs(scrollTo) > wrapperWidth - containerWidth) {\n scrollTo = -(wrapperWidth - containerWidth) - this.scrollOffset;\n }\n\n this.setScrollTo(scrollTo);\n }\n\n public changeTab(index: number): void {\n if (this.isHandleChangeTab) {\n this.tabSelect.emit({ tab: this.tabs[index], index });\n } else {\n if (this.tabs[index] && !this.tabs[index].isDisabled) {\n if (this.tabs[this.activeTabIndex]) {\n this.tabs[this.activeTabIndex].isActive = false;\n }\n this.tabs[index].isActive = true;\n\n const activeTab = this.euiTabsItemsWrapper.nativeElement.children.item(index);\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n const wrapperWidth = this.euiTabsItemsWrapper.nativeElement.clientWidth;\n\n if (activeTab && !this.isActiveTabFullyVisible(activeTab) && !this.isVerticalTabs) {\n let scrollTo = 0;\n let subsetWidth = 0;\n for (let i = 0; i <= index; i++) {\n subsetWidth += this.euiTabsItemsWrapper.nativeElement.children.item(i).clientWidth;\n }\n\n scrollTo = containerWidth / 2 - subsetWidth;\n\n if (Math.abs(scrollTo) > wrapperWidth - containerWidth + this.scrollOffset) {\n scrollTo = -(wrapperWidth - containerWidth + this.scrollOffset);\n }\n\n if (scrollTo > 0) {\n scrollTo = 0;\n }\n\n this.setScrollTo(scrollTo);\n }\n\n if (!this.tabs[index].url) {\n this.activeTabIndex = index;\n this.tabSelect.emit({ tab: this.tabs[index], index });\n } else {\n this.activeTabIndex = index;\n this.router.navigateByUrl(this.tabs[index].url);\n }\n }\n }\n }\n\n public onKeyUp(e: KeyboardEvent, index: number): void {\n if (e.code === 'Enter' || e.code === 'Space') {\n if (this.tabs[index] && !this.tabs[index].isDisabled) {\n this.tabs.map((t, i) => (i === index ? Object.assign(t, { isActive: true }) : Object.assign(t, { isActive: false })));\n\n if (!this.tabs[index].url) {\n this.activeTabIndex = index;\n this.tabSelect.emit({ tab: this.tabs[index], index });\n } else {\n this.activeTabIndex = index;\n this.router.navigateByUrl(this.tabs[index].url);\n }\n }\n }\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public closeTab(index: number, e: any): void {\n const tab = this.tabs[index];\n if (!this.tabs[index].isHandleCloseOnClose) {\n this.close(e.index);\n this.tabs = this.tabs.filter((t, i) => i !== index);\n }\n\n this.tabClose.emit({ tab, index });\n e.stopPropagation();\n }\n\n /**\n * Close a tab pass in parameter.\n *\n * @usageNotes\n * ```html\n * <eui-tabs #tabs>\n * <eui-tab isClosable isHandleCloseOnClose>\n * <eui-tab-label>Tab label</eui-tab-label>\n * <eui-tab-content>Tab content</eui-tab-content>\n * </eui-tab>\n * </eui-tabs>\n * ```\n * ...\n * ```typescript\n * this.tabs.close(1);\n * ```\n * @param index Index of the tab to close\n */\n public close(index: number): void {\n if (index === this.activeTabIndex) {\n const previousVisibleIndex = this.tabs.indexOf(this.tabs[index - 1]);\n\n if (previousVisibleIndex < 0) {\n this.changeTab(0);\n } else {\n this.changeTab(previousVisibleIndex);\n }\n } else {\n if (index < this.activeTabIndex) {\n this.activeTabIndex = this.activeTabIndex - 1;\n }\n }\n\n this.tabs = this.tabs.filter((t, i) => i !== index);\n }\n\n private isActiveTabFullyVisible(activeTab: HTMLDivElement): boolean {\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n return activeTab.offsetLeft - 48 >= 0 && activeTab.offsetLeft + activeTab.clientWidth < containerWidth - 48;\n }\n\n private setScrollTo(scrollTo: number, isAnimated = true): void {\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n const wrapperWidth = this.euiTabsItemsWrapper.nativeElement.clientWidth;\n\n const timings = isAnimated ? '500ms cubic-bezier(0.35, 0, 0.25, 1)' : 0;\n const animation: AnimationFactory = this.builder.build([animate(timings, style({ 'margin-left': +scrollTo + 'px' }))]);\n\n this.player = animation.create(this.euiTabsItemsWrapper.nativeElement);\n this.player.play();\n\n this.currentOffset = scrollTo;\n\n if (scrollTo === 0) {\n this.navigationLeftButtonDisabled = true;\n }\n if (Math.abs(this.currentOffset) < wrapperWidth - containerWidth + this.scrollOffset) {\n this.navigationRightButtonDisabled = false;\n }\n if (this.currentOffset < 0) {\n this.navigationLeftButtonDisabled = false;\n }\n if (Math.abs(scrollTo) === wrapperWidth - containerWidth + this.scrollOffset) {\n this.navigationRightButtonDisabled = true;\n }\n\n this.cd.detectChanges();\n }\n\n private getScrollingStatus(): void {\n const containerWidth = this.euiTabsItems.nativeElement.clientWidth;\n const wrapperWidth = this.euiTabsItemsWrapper.nativeElement.clientWidth;\n\n this.scrolling = containerWidth < wrapperWidth;\n\n if (!this.scrolling) {\n this.scrollingCount = 0;\n this.setScrollTo(0);\n } else {\n if (wrapperWidth - containerWidth <= Math.abs(this.currentOffset) + this.scrollOffset) {\n const deltaFix = this.scrollingCount === 0 ? this.scrollOffset * 2 : 0;\n const scrollTo = -(wrapperWidth - containerWidth) - this.scrollOffset - deltaFix;\n\n this.setScrollTo(scrollTo);\n\n this.currentOffset = scrollTo;\n } else {\n if (Math.abs(this.currentOffset) < wrapperWidth - containerWidth + this.scrollOffset) {\n this.navigationRightButtonDisabled = false;\n }\n if (this.currentOffset < 0) {\n this.navigationLeftButtonDisabled = false;\n }\n }\n\n this.scrollingCount++;\n }\n\n this.cd.detectChanges();\n }\n}\n\n/* eslint-disable */\n@Directive({ selector: 'euiTabsRightContent' })\nexport class EuiTabsRightContentTagDirective {\n @HostBinding('class') elementClass = 'eui-tabs__right-content-wrapper';\n}\n/* eslint-enable */\n","<div class=\"eui-u-flex\" [class.eui-tabs__wrapper--horizontal]=\"!isVerticalTabs\" [class.eui-tabs__wrapper--vertical]=\"isVerticalTabs\">\n <div\n #euiTabsItems\n class=\"eui-tabs__items\"\n [class.eui-tabs__items--horizontal]=\"!isVerticalTabs\"\n [class.eui-tabs__items--scrolling]=\"scrolling\"\n (cdkObserveContent)=\"onContentChanges()\">\n <div #euiTabsItemsWrapper class=\"eui-tabs__items-wrapper\" [attr.data-offset]=\"currentOffset\" role=\"tablist\">\n @for (tab of tabs; let i = $index; track tab) {\n @if (tab.isVisible) {\n <div\n tabindex=\"0\"\n role=\"tab\"\n class=\"eui-tab-item eui-tab-item--{{ tab.baseStatesDirective.euiVariant }}\"\n [class.eui-tab-item--closable]=\"tab.isClosable\"\n [class.eui-tab-item--active]=\"activeTabIndex === i\"\n [class.eui-tab-item--disabled]=\"tab.isDisabled\"\n [class.eui-tab-item--background-filled]=\"tab.hasBackgroundFilled\"\n [attr.aria-disabled]=\"tab.isDisabled\"\n (click)=\"changeTab(i)\"\n [euiTooltip]=\"tab.tooltip\"\n (keyup)=\"onKeyUp($event, i)\">\n <div class=\"eui-tab-item__label\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel.templatePortal\"></ng-template>\n </div>\n @if (tab.isClosable) {\n <eui-icon-button\n class=\"eui-tab-item__close-button\"\n icon=\"close:outline\"\n ariaLabel=\"close tab\"\n (buttonClick)=\"closeTab(i, $event)\"\n euiRounded>\n </eui-icon-button>\n }\n </div>\n }\n }\n </div>\n\n <div class=\"eui-tabs__navigation\">\n <div class=\"eui-tabs__navigation__left-item\">\n <button\n (click)=\"goToLeft()\"\n euiButton\n euiIconButton\n euiBasicButton\n type=\"button\"\n [euiDisabled]=\"navigationLeftButtonDisabled\"\n aria-label=\"Scroll left\">\n <eui-icon-svg icon=\"chevron-back:sharp\"></eui-icon-svg>\n </button>\n </div>\n <div class=\"eui-tabs__navigation__right-item\">\n <button\n (click)=\"goToRight()\"\n euiButton\n euiIconButton\n euiBasicButton\n type=\"button\"\n [euiDisabled]=\"navigationRightButtonDisabled\"\n aria-label=\"Scroll right\">\n <eui-icon-svg icon=\"chevron-forward:sharp\"></eui-icon-svg>\n </button>\n </div>\n </div>\n </div>\n\n @if (euiTabsRightContentTagDirective) {\n <div class=\"eui-tabs__right-content\">\n <ng-content select=\"euiTabsRightContent\"></ng-content>\n </div>\n }\n</div>\n\n@for (tab of tabs; let i = $index; track tab) {\n @if (i === activeTabIndex && tab.templateContent) {\n <div class=\"eui-tab-content-wrapper\" tabindex=\"0\">\n <ng-template [cdkPortalOutlet]=\"tab.templateContent.templatePortal\"></ng-template>\n </div>\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { ObserversModule } from '@angular/cdk/observers';\n\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiIconButtonModule } from '@eui/components/eui-icon-button';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiTooltipDirectiveModule } from '@eui/components/directives';\n\nimport { EuiTabComponent } from './eui-tab/eui-tab.component';\nimport { EuiTabsComponent, EuiTabsRightContentTagDirective } from './eui-tabs.component';\nimport { EuiTabLabelComponent, EuiTabSubLabelDirective } from './eui-tab-label/eui-tab-label.component';\nimport { EuiTabContentComponent } from './eui-tab-content/eui-tab-content.component';\n\n@NgModule({\n imports: [CommonModule, PortalModule, EuiIconModule, EuiIconButtonModule, EuiButtonModule, EuiTooltipDirectiveModule, ObserversModule],\n exports: [\n EuiTabsComponent,\n EuiTabComponent,\n EuiTabsRightContentTagDirective,\n EuiTabLabelComponent,\n EuiTabSubLabelDirective,\n EuiTabContentComponent,\n ],\n declarations: [\n EuiTabsComponent,\n EuiTabComponent,\n EuiTabsRightContentTagDirective,\n EuiTabLabelComponent,\n EuiTabSubLabelDirective,\n EuiTabContentComponent,\n ],\n})\nexport class EuiTabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;MAWa,sBAAsB,CAAA;AAS/B,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAFd,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;KAEV;IAE1D,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACrF;8GAbQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAtB,sBAAsB,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,EAAA,mBAAA,EAAA,CAAA,qBAAA,EAAA,qBAAA,EAOX,gBAAgB,CAb1B,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIK,kBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEN,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gCAAgC;AAC1C,oBAAA,QAAQ,EAAE,CAAA;;;;AAIK,kBAAA,CAAA;AAClB,iBAAA,CAAA;qFAI+B,WAAW,EAAA,CAAA;sBAAtC,SAAS;uBAAC,eAAe,CAAA;gBAIc,mBAAmB,EAAA,CAAA;sBAA1D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;;;MCH7B,oBAAoB,CAAA;AAO7B,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;KAAI;IAE1D,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACrF;8GAXQ,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAVnB,QAAA,EAAA,4BAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;AAQK,kBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEN,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAZhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;AAQK,kBAAA,CAAA;AAClB,iBAAA,CAAA;qFAI6B,WAAW,EAAA,CAAA;sBAApC,SAAS;uBAAC,aAAa,CAAA;;AAW5B;MAEa,uBAAuB,CAAA;8GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAvB,uBAAuB,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,SAAS;mBAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAA;;;MCF5B,eAAe,CAAA;AAWxB,IAAA,IACI,aAAa,GAAA;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;IACD,IAAI,aAAa,CAAC,KAA2B,EAAA;AACzC,QAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACrC;AAGD,IAAA,IACI,eAAe,GAAA;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAChC;IACD,IAAI,eAAe,CAAC,KAA6B,EAAA;AAC7C,QAAA,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;KACvC;AAGD,IAAA,WAAA,CAAmB,mBAAwC,EAAA;QAAxC,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QA3BlD,IAAO,CAAA,OAAA,GAAG,SAAS,CAAC;QAEW,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QACjB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;QAC5B,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;KAqBpE;AAES,IAAA,qBAAqB,CAAC,KAA2B,EAAA;QACvD,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC/B;KACJ;AAES,IAAA,uBAAuB,CAAC,KAA6B,EAAA;QAC3D,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;SACjC;KACJ;8GA1CQ,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,8HAIJ,gBAAgB,CAAA,EAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAChB,gBAAgB,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAChB,gBAAgB,CAChB,EAAA,UAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,gBAAgB,CAChB,EAAA,mBAAA,EAAA,CAAA,qBAAA,EAAA,qBAAA,EAAA,gBAAgB,0EAChB,gBAAgB,CAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAEtB,oBAAoB,EASpB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,sBAAsB,2WChDxC,6BACA,EAAA,MAAA,EAAA,CAAA,qwTAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD2Ba,eAAe,EAAA,UAAA,EAAA,CAAA;kBArB3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAGH,cAAA,EAAA;AACZ,wBAAA;AACI,4BAAA,SAAS,EAAE,mBAAmB;AAC9B,4BAAA,MAAM,EAAE;gCACJ,aAAa;gCACb,YAAY;gCACZ,cAAc;gCACd,SAAS;gCACT,YAAY;gCACZ,YAAY;gCACZ,WAAW;gCACX,WAAW;gCACX,YAAY;AACf,6BAAA;AACJ,yBAAA;AACJ,qBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,qwTAAA,CAAA,EAAA,CAAA;wFAGQ,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACkC,UAAU,EAAA,CAAA;sBAAjD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACE,SAAS,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACE,QAAQ,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACE,UAAU,EAAA,CAAA;sBAAjD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACE,mBAAmB,EAAA,CAAA;sBAA1D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACE,oBAAoB,EAAA,CAAA;sBAA3D,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAGlC,aAAa,EAAA,CAAA;sBADhB,YAAY;uBAAC,oBAAoB,CAAA;gBAU9B,eAAe,EAAA,CAAA;sBADlB,YAAY;uBAAC,sBAAsB,CAAA;;;MEZ3B,gBAAgB,CAAA;AACzB,IAAA,IACI,YAAY,GAAA;QACZ,OAAO;YACH,UAAU;YACV,IAAI,CAAC,gBAAgB,GAAG,2BAA2B,GAAE,EAAE;YACvD,IAAI,CAAC,cAAc,GAAG,oBAAoB,GAAE,EAAE;AACjD,SAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;KACtB;AA6CD,IAAA,WAAA,CACY,EAAqB,EACrB,MAAc,EACd,OAAyB,EACzB,UAAsB,EAAA;QAHtB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QACrB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAO,CAAA,OAAA,GAAP,OAAO,CAAkB;QACzB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAhDzB,IAAI,CAAA,IAAA,GAAsB,EAAE,CAAC;QAC7B,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;QAEtB,IAAO,CAAA,OAAA,GAAG,UAAU,CAAC;QACrB,IAAS,CAAA,SAAA,GAAsB,QAAQ,CAAC;AAEvC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAA2C,CAAC;AACvE,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAA2C,CAAC;QAQ3E,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAA4B,CAAA,4BAAA,GAAG,IAAI,CAAC;QACpC,IAA6B,CAAA,6BAAA,GAAG,KAAK,CAAC;QACtC,IAAa,CAAA,aAAA,GAAG,CAAC,CAAC;QAEe,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAC;QACzB,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;QAC1B,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAClB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;AAEvD,QAAA,IAAA,CAAA,QAAQ,GAAqB,IAAI,OAAO,EAAW,CAAC;QAIpD,IAAQ,CAAA,QAAA,GAAG,GAAG,CAAC;QACf,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;AAC1B;;;;;;;;;;AAUG;QACK,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;KAOvB;AAEJ,IAAA,WAAW,CAAC,CAAgB,EAAA;AACxB,QAAA,IAAI,CAAC,CAAC,cAAc,EAAE;YAClB,UAAU,CACN,MAAK;AACD,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;gBACtG,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC;gBACnE,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,WAAW,CAAC;gBAExE,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,EAAE;oBACvD,IAAI,QAAQ,GAAG,CAAC,CAAC;oBACjB,IAAI,WAAW,GAAG,CAAC,CAAC;AACpB,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE;AACrD,wBAAA,WAAW,IAAI,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;qBACtF;AAED,oBAAA,QAAQ,GAAG,cAAc,GAAG,CAAC,GAAG,WAAW,CAAC;AAE5C,oBAAA,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,YAAY,GAAG,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE;wBACxE,QAAQ,GAAG,EAAE,YAAY,GAAG,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;qBACnE;AAED,oBAAA,IAAI,QAAQ,GAAG,CAAC,EAAE;wBACd,QAAQ,GAAG,CAAC,CAAC;qBAChB;AAED,oBAAA,IAAI,CAAC,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,YAAY,GAAG,CAAC,EAAE;AACvE,wBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;qBACrC;yBAAM;AACH,wBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;qBAC9B;iBACJ;aACJ,EACD,CAAC,CAAC,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAClF,CAAC;SACL;KACJ;IAED,eAAe,GAAA;;;QAGX,IAAI,CAAC,QAAQ,GAAG,IAAK,MAAc,CAAC,cAAc,CAAC,MAAK;YACpD,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC1B,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AAC5B,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAErD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YAC9E,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AAEjC,YAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC;aACzC;;AAGD,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;AACvC,iBAAA,IAAI,CACD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,aAAa,CAAC,EACzC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EACxB,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CACtC;AACA,iBAAA,SAAS,CAAC,CAAC,CAAgB,KAAI;AAC5B,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;gBAC5D,IAAI,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACzC,oBAAA,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;AAClB,oBAAA,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;AAC3B,wBAAA,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;qBAC5D;yBAAM;wBACH,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;4BACnC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;4BACzC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC7B,yBAAC,CAAC,CAAC;qBACN;oBAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAC3B,QAAQ,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAChG,CAAC;AAEF,oBAAA,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;AAC/C,wBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;qBAChE;AAED,oBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;iBAC3B;AACL,aAAC,CAAC,CAAC;AAEP,YAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACtB,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;aACpH;AAED,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AAC5B,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;KAC3D;IAGD,QAAQ,GAAA;QACJ,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC7B;IAEM,gBAAgB,GAAA;QACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC7B;IAEM,QAAQ,GAAA;QACX,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC;AAClD,QAAA,IAAI,QAAQ,GAAG,CAAC,EAAE;YACd,QAAQ,GAAG,CAAC,CAAC;SAChB;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KAC9B;IAEM,SAAS,GAAA;QACZ,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC;QACnE,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,WAAW,CAAC;QAExE,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC;QAElD,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,YAAY,GAAG,cAAc,EAAE;YACpD,QAAQ,GAAG,EAAE,YAAY,GAAG,cAAc,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;SACnE;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;KAC9B;AAEM,IAAA,SAAS,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACxB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;SACzD;aAAM;AACH,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE;gBAClD,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE;oBAChC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;iBACnD;gBACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;AAEjC,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC9E,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC;gBACnE,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,WAAW,CAAC;AAExE,gBAAA,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;oBAC/E,IAAI,QAAQ,GAAG,CAAC,CAAC;oBACjB,IAAI,WAAW,GAAG,CAAC,CAAC;AACpB,oBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE,EAAE;AAC7B,wBAAA,WAAW,IAAI,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;qBACtF;AAED,oBAAA,QAAQ,GAAG,cAAc,GAAG,CAAC,GAAG,WAAW,CAAC;AAE5C,oBAAA,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,YAAY,GAAG,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE;wBACxE,QAAQ,GAAG,EAAE,YAAY,GAAG,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;qBACnE;AAED,oBAAA,IAAI,QAAQ,GAAG,CAAC,EAAE;wBACd,QAAQ,GAAG,CAAC,CAAC;qBAChB;AAED,oBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;iBAC9B;gBAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;AACvB,oBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;iBACzD;qBAAM;AACH,oBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,oBAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;iBACnD;aACJ;SACJ;KACJ;IAEM,OAAO,CAAC,CAAgB,EAAE,KAAa,EAAA;AAC1C,QAAA,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;AAC1C,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE;gBAClD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;gBAEtH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE;AACvB,oBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;iBACzD;qBAAM;AACH,oBAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,oBAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;iBACnD;aACJ;SACJ;KACJ;;;IAIM,QAAQ,CAAC,KAAa,EAAE,CAAM,EAAA;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,oBAAoB,EAAE;AACxC,YAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;SACvD;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QACnC,CAAC,CAAC,eAAe,EAAE,CAAC;KACvB;AAED;;;;;;;;;;;;;;;;;AAiBG;AACI,IAAA,KAAK,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,cAAc,EAAE;AAC/B,YAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AAErE,YAAA,IAAI,oBAAoB,GAAG,CAAC,EAAE;AAC1B,gBAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aACrB;iBAAM;AACH,gBAAA,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;aACxC;SACJ;aAAM;AACH,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE;gBAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;aACjD;SACJ;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;KACvD;AAEO,IAAA,uBAAuB,CAAC,SAAyB,EAAA;QACrD,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC;AACnE,QAAA,OAAO,SAAS,CAAC,UAAU,GAAG,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,WAAW,GAAG,cAAc,GAAG,EAAE,CAAC;KAC/G;AAEO,IAAA,WAAW,CAAC,QAAgB,EAAE,UAAU,GAAG,IAAI,EAAA;QACnD,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC;QACnE,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,WAAW,CAAC;QAExE,MAAM,OAAO,GAAG,UAAU,GAAG,sCAAsC,GAAG,CAAC,CAAC;QACxE,MAAM,SAAS,GAAqB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC,QAAQ,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvH,QAAA,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;AACvE,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAEnB,QAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;AAE9B,QAAA,IAAI,QAAQ,KAAK,CAAC,EAAE;AAChB,YAAA,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC;SAC5C;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,YAAY,GAAG,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE;AAClF,YAAA,IAAI,CAAC,6BAA6B,GAAG,KAAK,CAAC;SAC9C;AACD,QAAA,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE;AACxB,YAAA,IAAI,CAAC,4BAA4B,GAAG,KAAK,CAAC;SAC7C;AACD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,YAAY,GAAG,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE;AAC1E,YAAA,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC;SAC7C;AAED,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;KAC3B;IAEO,kBAAkB,GAAA;QACtB,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,WAAW,CAAC;QACnE,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,WAAW,CAAC;AAExE,QAAA,IAAI,CAAC,SAAS,GAAG,cAAc,GAAG,YAAY,CAAC;AAE/C,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACjB,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;AACxB,YAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SACvB;aAAM;AACH,YAAA,IAAI,YAAY,GAAG,cAAc,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE;AACnF,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,KAAK,CAAC,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC;AACvE,gBAAA,MAAM,QAAQ,GAAG,EAAE,YAAY,GAAG,cAAc,CAAC,GAAG,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;AAEjF,gBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAE3B,gBAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;aACjC;iBAAM;AACH,gBAAA,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,YAAY,GAAG,cAAc,GAAG,IAAI,CAAC,YAAY,EAAE;AAClF,oBAAA,IAAI,CAAC,6BAA6B,GAAG,KAAK,CAAC;iBAC9C;AACD,gBAAA,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE;AACxB,oBAAA,IAAI,CAAC,4BAA4B,GAAG,KAAK,CAAC;iBAC7C;aACJ;YAED,IAAI,CAAC,cAAc,EAAE,CAAC;SACzB;AAED,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;KAC3B;8GA5WQ,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EA6BL,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,CAAA,kBAAA,EAAA,kBAAA,EAAA,gBAAgB,CAChB,EAAA,iBAAA,EAAA,CAAA,mBAAA,EAAA,mBAAA,EAAA,gBAAgB,yCAChB,gBAAgB,CAAA,EAAA,cAAA,EAAA,CAAA,gBAAA,EAAA,gBAAA,EAChB,gBAAgB,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,cAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iCAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAbL,+BAA+B,CAD5B,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAAA,eAAe,CAER,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,gBAAgB,kDCxD7D,qoHAiFA,EAAA,MAAA,EAAA,CAAA,qwTAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,+CAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,KAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,WAAA,EAAA,MAAA,EAAA,WAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FD7Ca,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAN5B,SAAS;+BACI,UAAU,EAAA,aAAA,EAGL,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,qoHAAA,EAAA,MAAA,EAAA,CAAA,qwTAAA,CAAA,EAAA,CAAA;qKAIjC,YAAY,EAAA,CAAA;sBADf,WAAW;uBAAC,OAAO,CAAA;gBAQX,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAEG,OAAO,EAAA,CAAA;sBADf,WAAW;uBAAC,eAAe,CAAA;;sBAC3B,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEI,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAEqE,KAAK,EAAA,CAAA;sBAAhF,eAAe;uBAAC,UAAU,CAAC,MAAM,eAAe,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAA;gBACT,+BAA+B,EAAA,CAAA;sBAA/F,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,+BAA+B,CAAC,CAAA;gBACF,gBAAgB,EAAA,CAAA;sBAA5E,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAA;gBAChC,YAAY,EAAA,CAAA;sBAAtC,SAAS;uBAAC,cAAc,CAAA;gBACS,mBAAmB,EAAA,CAAA;sBAApD,SAAS;uBAAC,qBAAqB,CAAA;gBAOQ,gBAAgB,EAAA,CAAA;sBAAvD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACE,iBAAiB,EAAA,CAAA;sBAAxD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACE,SAAS,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACE,cAAc,EAAA,CAAA;sBAArD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAiItC,QAAQ,EAAA,CAAA;sBADP,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;;AA+M7C;MAEa,+BAA+B,CAAA;AAD5C,IAAA,WAAA,GAAA;QAE0B,IAAY,CAAA,YAAA,GAAG,iCAAiC,CAAC;AAC1E,KAAA;8GAFY,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA/B,+BAA+B,EAAA,QAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAD3C,SAAS;mBAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAA;8BAEpB,YAAY,EAAA,CAAA;sBAAjC,WAAW;uBAAC,OAAO,CAAA;;;MEpXX,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,iBARlB,gBAAgB;YAChB,eAAe;YACf,+BAA+B;YAC/B,oBAAoB;YACpB,uBAAuB;AACvB,YAAA,sBAAsB,CAfhB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,eAAe,EAAE,yBAAyB,EAAE,eAAe,aAEjI,gBAAgB;YAChB,eAAe;YACf,+BAA+B;YAC/B,oBAAoB;YACpB,uBAAuB;YACvB,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;AAWjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAlBZ,OAAA,EAAA,CAAA,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,eAAe,EAAE,yBAAyB,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAkB5H,aAAa,EAAA,UAAA,EAAA,CAAA;kBAnBzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,eAAe,EAAE,yBAAyB,EAAE,eAAe,CAAC;AACtI,oBAAA,OAAO,EAAE;wBACL,gBAAgB;wBAChB,eAAe;wBACf,+BAA+B;wBAC/B,oBAAoB;wBACpB,uBAAuB;wBACvB,sBAAsB;AACzB,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACV,gBAAgB;wBAChB,eAAe;wBACf,+BAA+B;wBAC/B,oBAAoB;wBACpB,uBAAuB;wBACvB,sBAAsB;AACzB,qBAAA;AACJ,iBAAA,CAAA;;;ACjCD;;AAEG;;;;"}
|
@@ -4,7 +4,7 @@ import * as i1 from '@angular/forms';
|
|
4
4
|
import { FormControl, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
5
5
|
import { Subject } from 'rxjs';
|
6
6
|
import { takeUntil } from 'rxjs/operators';
|
7
|
-
import { DYNAMIC_COMPONENT_CONFIG } from '@eui/core';
|
7
|
+
import { uniqueId, DYNAMIC_COMPONENT_CONFIG } from '@eui/core';
|
8
8
|
import * as i2 from '@angular/common';
|
9
9
|
import { CommonModule } from '@angular/common';
|
10
10
|
import * as i3 from '@eui/components/eui-input-number';
|
@@ -27,6 +27,7 @@ class EuiTimepickerComponent {
|
|
27
27
|
this.secondsUpDisabled = false;
|
28
28
|
this.secondsDownDisabled = false;
|
29
29
|
this.e2eAttr = 'eui-timepicker';
|
30
|
+
this.inputId = `eui-timepicker-${uniqueId()}`;
|
30
31
|
this.timeMask = 'Hh:m0';
|
31
32
|
this.placeholder = this.timeMask;
|
32
33
|
this.stepHours = 1;
|
@@ -360,11 +361,11 @@ class EuiTimepickerComponent {
|
|
360
361
|
this.hasAriaRequiredAttribute = control?.control?.hasValidator(Validators.required);
|
361
362
|
}
|
362
363
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: EuiTimepickerComponent, deps: [{ token: DYNAMIC_COMPONENT_CONFIG, optional: true }, { token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
363
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: EuiTimepickerComponent, selector: "eui-timepicker", inputs: { e2eAttr: "e2eAttr", timeMask: "timeMask", placeholder: "placeholder", stepHours: "stepHours", stepMinutes: "stepMinutes", stepSeconds: "stepSeconds", isreadOnly: ["isreadOnly", "isreadOnly", booleanAttribute], isOneInputField: ["isOneInputField", "isOneInputField", booleanAttribute], hasSeconds: ["hasSeconds", "hasSeconds", booleanAttribute] }, usesOnChanges: true, ngImport: i0, template: "<div class=\"eui-timepicker\" [class.eui-timepicker--centered]=\"isDatetimepicker\" attr.data-e2e=\"{{ e2eAttr }}\">\n <ng-container *ngIf=\"isOneInputField; else multipleInputs\">\n <input\n [class.eui-timepicker__input--one-field]=\"isDatetimepicker\"\n euiInputText\n mask=\"{{ timeMask }}\"\n [leadZeroDateTime]=\"true\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"oneInputFormControl.value?oneInputFormControl.value:'No time value'\"\n [formControl]=\"oneInputFormControl\"\n (focusout)=\"onFocusOut()\"\n [dropSpecialCharacters]=\"false\"\n [readonly]=\"isreadOnly\" />\n </ng-container>\n\n <ng-template #multipleInputs>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__hours-up\">\n <eui-icon-svg\n (click)=\"changeHours(stepHours)\"\n [class.time-control--disabled]=\"hoursUpDisabled\"\n icon=\"chevron-up:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase Hours\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefhours\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"HH\"\n [ngModel]=\"hours\"\n (ngModelChange)=\"updateHours($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Hours\"\n [attr.aria-required]=\"hasAriaRequiredAttribute ? 'true' : null\"\n (keydown.ArrowUp)=\"changeHours(stepHours); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeHours(-stepHours); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__hours-down\">\n <eui-icon-svg\n (click)=\"changeHours(-stepHours)\"\n [class.time-control--disabled]=\"hoursDownDisabled\"\n icon=\"chevron-down:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease Hours\">\n </eui-icon-svg>\n </div>\n </div>\n <div class=\"eui-timepicker__spacer\">:</div>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__minutes-up\">\n <eui-icon-svg\n (click)=\"changeMinutes(stepMinutes)\"\n [class.time-control--disabled]=\"minutesUpDisabled\"\n icon=\"chevron-up:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase Minutes\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefmins\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"MM\"\n [ngModel]=\"mins\"\n (ngModelChange)=\"updateMinutes($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Minutes\"\n [attr.aria-required]=\"hasAriaRequiredAttribute ? 'true' : null\"\n (keydown.ArrowUp)=\"changeMinutes(stepMinutes); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeMinutes(-stepMinutes); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__minutes-down\">\n <eui-icon-svg\n (click)=\"changeMinutes(-stepMinutes)\"\n [class.time-control--disabled]=\"minutesDownDisabled\"\n icon=\"chevron-down:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease Minutes\">\n </eui-icon-svg>\n </div>\n </div>\n <ng-container *ngIf=\"hasSeconds\">\n <div class=\"eui-timepicker__spacer\">:</div>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__seconds-up\">\n <eui-icon-svg\n (click)=\"changeSeconds(stepSeconds)\"\n [class.time-control--disabled]=\"secondsUpDisabled\"\n icon=\"chevron-up:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase seconds\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefsecs\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"SS\"\n [ngModel]=\"secs\"\n (ngModelChange)=\"updateSeconds($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Seconds\"\n [attr.aria-required]=\"hasAriaRequiredAttribute ? 'true' : null\"\n (keydown.ArrowUp)=\"changeSeconds(stepSeconds); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeSeconds(-stepSeconds); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__seconds-down\">\n <eui-icon-svg\n (click)=\"changeSeconds(-stepSeconds)\"\n [class.time-control--disabled]=\"secondsDownDisabled\"\n icon=\"chevron-down:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease seconds\">\n </eui-icon-svg>\n </div>\n </div>\n </ng-container>\n </ng-template>\n</div>\n", styles: [".eui-timepicker{align-items:center;display:flex}.eui-timepicker--centered{justify-content:center}.eui-timepicker__input-container{width:calc(4 * var(--eui-s-m))}.eui-timepicker__input{text-align:center;width:100%}.eui-timepicker__input--one-field{width:calc(6 * var(--eui-s-m));margin-bottom:var(--eui-s-2xs)}.eui-timepicker__spacer{text-align:center;width:var(--eui-s-m)}.eui-timepicker__chevron{display:flex;justify-content:center;padding:var(--eui-s-xs)}.eui-timepicker__chevron .eui-icon-svg:not(.time-control--disabled):hover{cursor:pointer;color:var(--eui-c-primary)}.eui-timepicker__chevron .eui-icon-svg.time-control--disabled{background-image:none;box-shadow:none;cursor:not-allowed!important;opacity:var(--eui-o-50)}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.EuiInputNumberComponent, selector: "input[euiInputNumber]", inputs: ["min", "max", "leadingZero", "isInvalid", "fractionDigits", "digits", "fillFraction", "roundUp", "noFormat", "value"] }, { kind: "directive", type: i3.EuiInputNumberDirective, selector: "input[euiInputNumber][formControl],input[euiInputNumber][formControlName],input[euiInputNumber][ngModel]" }, { kind: "component", type: i4.EuiInputTextComponent, selector: "input[euiInputText]", inputs: ["isInvalid"] }, { kind: "component", type: i5.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "directive", type: i6.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
364
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0", type: EuiTimepickerComponent, selector: "eui-timepicker", inputs: { e2eAttr: "e2eAttr", inputId: "inputId", timeMask: "timeMask", placeholder: "placeholder", stepHours: "stepHours", stepMinutes: "stepMinutes", stepSeconds: "stepSeconds", isreadOnly: ["isreadOnly", "isreadOnly", booleanAttribute], isOneInputField: ["isOneInputField", "isOneInputField", booleanAttribute], hasSeconds: ["hasSeconds", "hasSeconds", booleanAttribute] }, usesOnChanges: true, ngImport: i0, template: "<div class=\"eui-timepicker\" [class.eui-timepicker--centered]=\"isDatetimepicker\" attr.data-e2e=\"{{ e2eAttr }}\">\n <ng-container *ngIf=\"isOneInputField; else multipleInputs\">\n <input\n [class.eui-timepicker__input--one-field]=\"isDatetimepicker\"\n euiInputText\n [id]=\"inputId\"\n mask=\"{{ timeMask }}\"\n [leadZeroDateTime]=\"true\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"oneInputFormControl.value?oneInputFormControl.value:'No time value'\"\n [formControl]=\"oneInputFormControl\"\n (focusout)=\"onFocusOut()\"\n [dropSpecialCharacters]=\"false\"\n [readonly]=\"isreadOnly\" />\n </ng-container>\n\n <ng-template #multipleInputs>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__hours-up\">\n <eui-icon-svg\n (click)=\"changeHours(stepHours)\"\n [class.time-control--disabled]=\"hoursUpDisabled\"\n icon=\"chevron-up:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase Hours\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefhours\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"HH\"\n [ngModel]=\"hours\"\n (ngModelChange)=\"updateHours($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Hours\"\n [attr.aria-required]=\"hasAriaRequiredAttribute ? 'true' : null\"\n (keydown.ArrowUp)=\"changeHours(stepHours); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeHours(-stepHours); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__hours-down\">\n <eui-icon-svg\n (click)=\"changeHours(-stepHours)\"\n [class.time-control--disabled]=\"hoursDownDisabled\"\n icon=\"chevron-down:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease Hours\">\n </eui-icon-svg>\n </div>\n </div>\n <div class=\"eui-timepicker__spacer\">:</div>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__minutes-up\">\n <eui-icon-svg\n (click)=\"changeMinutes(stepMinutes)\"\n [class.time-control--disabled]=\"minutesUpDisabled\"\n icon=\"chevron-up:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase Minutes\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefmins\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"MM\"\n [ngModel]=\"mins\"\n (ngModelChange)=\"updateMinutes($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Minutes\"\n [attr.aria-required]=\"hasAriaRequiredAttribute ? 'true' : null\"\n (keydown.ArrowUp)=\"changeMinutes(stepMinutes); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeMinutes(-stepMinutes); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__minutes-down\">\n <eui-icon-svg\n (click)=\"changeMinutes(-stepMinutes)\"\n [class.time-control--disabled]=\"minutesDownDisabled\"\n icon=\"chevron-down:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease Minutes\">\n </eui-icon-svg>\n </div>\n </div>\n <ng-container *ngIf=\"hasSeconds\">\n <div class=\"eui-timepicker__spacer\">:</div>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__seconds-up\">\n <eui-icon-svg\n (click)=\"changeSeconds(stepSeconds)\"\n [class.time-control--disabled]=\"secondsUpDisabled\"\n icon=\"chevron-up:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase seconds\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefsecs\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"SS\"\n [ngModel]=\"secs\"\n (ngModelChange)=\"updateSeconds($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Seconds\"\n [attr.aria-required]=\"hasAriaRequiredAttribute ? 'true' : null\"\n (keydown.ArrowUp)=\"changeSeconds(stepSeconds); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeSeconds(-stepSeconds); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__seconds-down\">\n <eui-icon-svg\n (click)=\"changeSeconds(-stepSeconds)\"\n [class.time-control--disabled]=\"secondsDownDisabled\"\n icon=\"chevron-down:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease seconds\">\n </eui-icon-svg>\n </div>\n </div>\n </ng-container>\n </ng-template>\n</div>\n", styles: [".eui-timepicker{align-items:center;display:flex}.eui-timepicker--centered{justify-content:center}.eui-timepicker__input-container{width:calc(4 * var(--eui-s-m))}.eui-timepicker__input{text-align:center;width:100%}.eui-timepicker__input--one-field{width:calc(6 * var(--eui-s-m));margin-bottom:var(--eui-s-2xs)}.eui-timepicker__spacer{text-align:center;width:var(--eui-s-m)}.eui-timepicker__chevron{display:flex;justify-content:center;padding:var(--eui-s-xs)}.eui-timepicker__chevron .eui-icon-svg:not(.time-control--disabled):hover{cursor:pointer;color:var(--eui-c-primary)}.eui-timepicker__chevron .eui-icon-svg.time-control--disabled{background-image:none;box-shadow:none;cursor:not-allowed!important;opacity:var(--eui-o-50)}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.EuiInputNumberComponent, selector: "input[euiInputNumber]", inputs: ["min", "max", "leadingZero", "isInvalid", "fractionDigits", "digits", "fillFraction", "roundUp", "noFormat", "value"] }, { kind: "directive", type: i3.EuiInputNumberDirective, selector: "input[euiInputNumber][formControl],input[euiInputNumber][formControlName],input[euiInputNumber][ngModel]" }, { kind: "component", type: i4.EuiInputTextComponent, selector: "input[euiInputText]", inputs: ["isInvalid"] }, { kind: "component", type: i5.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "directive", type: i6.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
364
365
|
}
|
365
366
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: EuiTimepickerComponent, decorators: [{
|
366
367
|
type: Component,
|
367
|
-
args: [{ selector: 'eui-timepicker', encapsulation: ViewEncapsulation.None, template: "<div class=\"eui-timepicker\" [class.eui-timepicker--centered]=\"isDatetimepicker\" attr.data-e2e=\"{{ e2eAttr }}\">\n <ng-container *ngIf=\"isOneInputField; else multipleInputs\">\n <input\n [class.eui-timepicker__input--one-field]=\"isDatetimepicker\"\n euiInputText\n mask=\"{{ timeMask }}\"\n [leadZeroDateTime]=\"true\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"oneInputFormControl.value?oneInputFormControl.value:'No time value'\"\n [formControl]=\"oneInputFormControl\"\n (focusout)=\"onFocusOut()\"\n [dropSpecialCharacters]=\"false\"\n [readonly]=\"isreadOnly\" />\n </ng-container>\n\n <ng-template #multipleInputs>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__hours-up\">\n <eui-icon-svg\n (click)=\"changeHours(stepHours)\"\n [class.time-control--disabled]=\"hoursUpDisabled\"\n icon=\"chevron-up:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase Hours\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefhours\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"HH\"\n [ngModel]=\"hours\"\n (ngModelChange)=\"updateHours($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Hours\"\n [attr.aria-required]=\"hasAriaRequiredAttribute ? 'true' : null\"\n (keydown.ArrowUp)=\"changeHours(stepHours); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeHours(-stepHours); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__hours-down\">\n <eui-icon-svg\n (click)=\"changeHours(-stepHours)\"\n [class.time-control--disabled]=\"hoursDownDisabled\"\n icon=\"chevron-down:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease Hours\">\n </eui-icon-svg>\n </div>\n </div>\n <div class=\"eui-timepicker__spacer\">:</div>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__minutes-up\">\n <eui-icon-svg\n (click)=\"changeMinutes(stepMinutes)\"\n [class.time-control--disabled]=\"minutesUpDisabled\"\n icon=\"chevron-up:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase Minutes\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefmins\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"MM\"\n [ngModel]=\"mins\"\n (ngModelChange)=\"updateMinutes($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Minutes\"\n [attr.aria-required]=\"hasAriaRequiredAttribute ? 'true' : null\"\n (keydown.ArrowUp)=\"changeMinutes(stepMinutes); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeMinutes(-stepMinutes); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__minutes-down\">\n <eui-icon-svg\n (click)=\"changeMinutes(-stepMinutes)\"\n [class.time-control--disabled]=\"minutesDownDisabled\"\n icon=\"chevron-down:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease Minutes\">\n </eui-icon-svg>\n </div>\n </div>\n <ng-container *ngIf=\"hasSeconds\">\n <div class=\"eui-timepicker__spacer\">:</div>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__seconds-up\">\n <eui-icon-svg\n (click)=\"changeSeconds(stepSeconds)\"\n [class.time-control--disabled]=\"secondsUpDisabled\"\n icon=\"chevron-up:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase seconds\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefsecs\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"SS\"\n [ngModel]=\"secs\"\n (ngModelChange)=\"updateSeconds($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Seconds\"\n [attr.aria-required]=\"hasAriaRequiredAttribute ? 'true' : null\"\n (keydown.ArrowUp)=\"changeSeconds(stepSeconds); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeSeconds(-stepSeconds); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__seconds-down\">\n <eui-icon-svg\n (click)=\"changeSeconds(-stepSeconds)\"\n [class.time-control--disabled]=\"secondsDownDisabled\"\n icon=\"chevron-down:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease seconds\">\n </eui-icon-svg>\n </div>\n </div>\n </ng-container>\n </ng-template>\n</div>\n", styles: [".eui-timepicker{align-items:center;display:flex}.eui-timepicker--centered{justify-content:center}.eui-timepicker__input-container{width:calc(4 * var(--eui-s-m))}.eui-timepicker__input{text-align:center;width:100%}.eui-timepicker__input--one-field{width:calc(6 * var(--eui-s-m));margin-bottom:var(--eui-s-2xs)}.eui-timepicker__spacer{text-align:center;width:var(--eui-s-m)}.eui-timepicker__chevron{display:flex;justify-content:center;padding:var(--eui-s-xs)}.eui-timepicker__chevron .eui-icon-svg:not(.time-control--disabled):hover{cursor:pointer;color:var(--eui-c-primary)}.eui-timepicker__chevron .eui-icon-svg.time-control--disabled{background-image:none;box-shadow:none;cursor:not-allowed!important;opacity:var(--eui-o-50)}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}\n"] }]
|
368
|
+
args: [{ selector: 'eui-timepicker', encapsulation: ViewEncapsulation.None, template: "<div class=\"eui-timepicker\" [class.eui-timepicker--centered]=\"isDatetimepicker\" attr.data-e2e=\"{{ e2eAttr }}\">\n <ng-container *ngIf=\"isOneInputField; else multipleInputs\">\n <input\n [class.eui-timepicker__input--one-field]=\"isDatetimepicker\"\n euiInputText\n [id]=\"inputId\"\n mask=\"{{ timeMask }}\"\n [leadZeroDateTime]=\"true\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"oneInputFormControl.value?oneInputFormControl.value:'No time value'\"\n [formControl]=\"oneInputFormControl\"\n (focusout)=\"onFocusOut()\"\n [dropSpecialCharacters]=\"false\"\n [readonly]=\"isreadOnly\" />\n </ng-container>\n\n <ng-template #multipleInputs>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__hours-up\">\n <eui-icon-svg\n (click)=\"changeHours(stepHours)\"\n [class.time-control--disabled]=\"hoursUpDisabled\"\n icon=\"chevron-up:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase Hours\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefhours\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"HH\"\n [ngModel]=\"hours\"\n (ngModelChange)=\"updateHours($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Hours\"\n [attr.aria-required]=\"hasAriaRequiredAttribute ? 'true' : null\"\n (keydown.ArrowUp)=\"changeHours(stepHours); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeHours(-stepHours); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__hours-down\">\n <eui-icon-svg\n (click)=\"changeHours(-stepHours)\"\n [class.time-control--disabled]=\"hoursDownDisabled\"\n icon=\"chevron-down:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease Hours\">\n </eui-icon-svg>\n </div>\n </div>\n <div class=\"eui-timepicker__spacer\">:</div>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__minutes-up\">\n <eui-icon-svg\n (click)=\"changeMinutes(stepMinutes)\"\n [class.time-control--disabled]=\"minutesUpDisabled\"\n icon=\"chevron-up:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase Minutes\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefmins\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"MM\"\n [ngModel]=\"mins\"\n (ngModelChange)=\"updateMinutes($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Minutes\"\n [attr.aria-required]=\"hasAriaRequiredAttribute ? 'true' : null\"\n (keydown.ArrowUp)=\"changeMinutes(stepMinutes); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeMinutes(-stepMinutes); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__minutes-down\">\n <eui-icon-svg\n (click)=\"changeMinutes(-stepMinutes)\"\n [class.time-control--disabled]=\"minutesDownDisabled\"\n icon=\"chevron-down:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease Minutes\">\n </eui-icon-svg>\n </div>\n </div>\n <ng-container *ngIf=\"hasSeconds\">\n <div class=\"eui-timepicker__spacer\">:</div>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__seconds-up\">\n <eui-icon-svg\n (click)=\"changeSeconds(stepSeconds)\"\n [class.time-control--disabled]=\"secondsUpDisabled\"\n icon=\"chevron-up:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase seconds\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefsecs\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"SS\"\n [ngModel]=\"secs\"\n (ngModelChange)=\"updateSeconds($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Seconds\"\n [attr.aria-required]=\"hasAriaRequiredAttribute ? 'true' : null\"\n (keydown.ArrowUp)=\"changeSeconds(stepSeconds); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeSeconds(-stepSeconds); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__seconds-down\">\n <eui-icon-svg\n (click)=\"changeSeconds(-stepSeconds)\"\n [class.time-control--disabled]=\"secondsDownDisabled\"\n icon=\"chevron-down:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease seconds\">\n </eui-icon-svg>\n </div>\n </div>\n </ng-container>\n </ng-template>\n</div>\n", styles: [".eui-timepicker{align-items:center;display:flex}.eui-timepicker--centered{justify-content:center}.eui-timepicker__input-container{width:calc(4 * var(--eui-s-m))}.eui-timepicker__input{text-align:center;width:100%}.eui-timepicker__input--one-field{width:calc(6 * var(--eui-s-m));margin-bottom:var(--eui-s-2xs)}.eui-timepicker__spacer{text-align:center;width:var(--eui-s-m)}.eui-timepicker__chevron{display:flex;justify-content:center;padding:var(--eui-s-xs)}.eui-timepicker__chevron .eui-icon-svg:not(.time-control--disabled):hover{cursor:pointer;color:var(--eui-c-primary)}.eui-timepicker__chevron .eui-icon-svg.time-control--disabled{background-image:none;box-shadow:none;cursor:not-allowed!important;opacity:var(--eui-o-50)}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}\n"] }]
|
368
369
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
369
370
|
type: Optional
|
370
371
|
}, {
|
@@ -376,6 +377,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
376
377
|
type: Optional
|
377
378
|
}] }], propDecorators: { e2eAttr: [{
|
378
379
|
type: Input
|
380
|
+
}], inputId: [{
|
381
|
+
type: Input
|
379
382
|
}], timeMask: [{
|
380
383
|
type: Input
|
381
384
|
}], placeholder: [{
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eui-components-eui-timepicker.mjs","sources":["../../eui-timepicker/eui-timepicker.component.ts","../../eui-timepicker/eui-timepicker.component.html","../../eui-timepicker/eui-timepicker.module.ts","../../eui-timepicker/eui-components-eui-timepicker.ts"],"sourcesContent":["import {\n Component,\n Inject,\n Input,\n OnInit,\n Optional,\n ViewEncapsulation,\n Self,\n DoCheck,\n OnDestroy,\n SimpleChanges,\n OnChanges,\n booleanAttribute,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl, FormControl, Validators } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { DYNAMIC_COMPONENT_CONFIG } from '@eui/core';\nimport { EuiDateTimePickerConfig } from './models/eui-date-time-picker.config.model';\nimport { EuiTimePicker } from './models/eui-timepicker.model';\n\n@Component({\n selector: 'eui-timepicker',\n templateUrl: './eui-timepicker.component.html',\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiTimepickerComponent implements ControlValueAccessor, OnInit, OnChanges, DoCheck, OnDestroy {\n hours: number;\n mins: number;\n secs: number;\n isDatetimepicker: boolean;\n oneInputFormControl = new FormControl();\n oneInputHours: string;\n oneInputMins: string;\n oneInputSecs: string;\n\n public hoursUpDisabled = false;\n public hoursDownDisabled = false;\n public minutesUpDisabled = false;\n public minutesDownDisabled = false;\n public secondsUpDisabled = false;\n public secondsDownDisabled = false;\n\n @Input() e2eAttr = 'eui-timepicker';\n\n @Input() timeMask = 'Hh:m0'\n @Input() placeholder = this.timeMask;\n\n @Input() stepHours = 1;\n @Input() stepMinutes = 1;\n @Input() stepSeconds = 1;\n\n @Input({ transform: booleanAttribute }) isreadOnly = false;\n @Input({ transform: booleanAttribute }) isOneInputField = false;\n @Input({ transform: booleanAttribute }) hasSeconds = false;\n\n protected hasAriaRequiredAttribute: boolean;\n private propagatedValues: EuiTimePicker = {\n hours: null,\n mins: null,\n secs: this.hasSeconds ? null : undefined,\n };\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n constructor(\n @Optional() @Inject(DYNAMIC_COMPONENT_CONFIG) config: EuiDateTimePickerConfig,\n @Self() @Optional() private control: NgControl,\n ) {\n this.hours = config?.hours || 0;\n this.mins = config?.mins || 0;\n this.secs = config?.secs || 0;\n this.isDatetimepicker = config?.isDatetimepicker;\n this.hasSeconds = config?.hasSeconds;\n this.isOneInputField = config?.isOneInputField;\n this.stepHours = config? config.stepHours: this.stepHours;\n this.stepMinutes = config? config.stepMinutes: this.stepMinutes;\n this.stepSeconds = config? config.stepSeconds: this.stepSeconds;\n const hours = this.hours === 0 || null ? '00' : this.hours;\n const mins = this.mins === 0 || null ? '00' : this.mins;\n const secs = this.secs === 0 || null ? '00' : this.secs;\n this.oneInputFormControl.setValue('' + hours + ':' + mins + ':' + secs);\n this.callbackFn = config?.callbackFn || this.callbackFn;\n\n if (this.control) {\n this.control.valueAccessor = this;\n }\n }\n\n ngOnInit(): void {\n \n this.oneInputFormControl.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((value) => {\n // splits the entered time into 3 parts based on the : and propagates back the corresponding parts\n if(value) {\n [this.oneInputHours, this.oneInputMins, this.oneInputSecs] = value.split(':');\n const splittedhours = this.oneInputHours ? Number(this.oneInputHours) : null;\n const splittedmins = this.oneInputMins ? Number(this.oneInputMins) : null;\n const splittedsecs = this.oneInputSecs ? Number(this.oneInputSecs) : null;\n if (this.hasSeconds) {\n this.propagatedValues = {\n ...this.propagatedValues,\n hours: splittedhours,\n mins: splittedmins,\n secs: splittedsecs,\n };\n this.callbackFn(splittedhours, splittedmins, splittedsecs);\n } else {\n this.propagatedValues = {\n ...this.propagatedValues,\n hours: splittedhours,\n mins: splittedmins,\n };\n this.callbackFn(splittedhours, splittedmins);\n }\n if (splittedhours === null && splittedmins === null && splittedsecs === null) {\n this.propagateChange(null);\n } else {\n this.propagateChange(this.propagatedValues);\n }\n } \n });\n\n this.updateInputAriaRequiredAttribute(this.control);\n this.control?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((value) => {\n this.updateInputAriaRequiredAttribute(this.control);\n });\n }\n\n ngOnChanges(changes: SimpleChanges):void {\n if(this.isOneInputField) {\n if (this.hasSeconds && changes.hasSeconds) {\n this.timeMask = 'Hh:m0:s0';\n this.placeholder = 'Hh:m0:s0';\n }\n if (changes.timeMask) {\n this.timeMask = changes.timeMask.currentValue;\n this.placeholder = changes.timeMask.currentValue;\n }\n if(changes.placeholder) {\n this.placeholder = changes.placeholder.currentValue;\n }\n }\n }\n\n ngDoCheck(): void {\n if (this.control) {\n // marks the input control as touched/invalid if the form control is touched/invalid\n this.control?.touched ? this.oneInputFormControl.markAsTouched() : this.oneInputFormControl.markAsUntouched();\n this.control?.invalid ? this.oneInputFormControl.setErrors(this.control.errors) : this.oneInputFormControl.setErrors(null);\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n /**\n * Increments or decrements hours according to the step param being passed\n *\n * @param step The step number that hours will increase or decrease\n */\n changeHours(step: number): void {\n if ((!this.hoursUpDisabled && step >0) || (!this.hoursDownDisabled && step <0)) {\n const val = (isNaN(this.hours) ? 0 : this.hours) + step;\n this.updateHours(val.toString());\n }\n }\n /**\n * Increments or decrements minutes according to the step param being passed\n *\n * @param step The step number that minutes will increase or decrease\n */\n changeMinutes(step: number): void {\n if ((!this.minutesUpDisabled && step >0) || (!this.minutesDownDisabled && step <0)) {\n const val = (isNaN(this.mins) ? 0 : this.mins) + step;\n this.updateMinutes(val.toString());\n }\n }\n /**\n * Increments or decrements seconds according to the step param being passed\n *\n * @param step The step number that seconds will increase or decrease\n */\n changeSeconds(step: number): void {\n if ((!this.secondsUpDisabled && step >0) || (!this.secondsDownDisabled && step <0)) {\n const val = (isNaN(this.secs) ? 0 : this.secs) + step;\n this.updateSeconds(val.toString());\n }\n }\n /**\n * Updates the input field when hours change and adds 24hour validation + propagates the value back to the form\n *\n * @param newVal The new value that hours will have\n */\n updateHours(newVal: string): void {\n const enteredHour = this.toInteger(newVal);\n\n if (!isNaN(enteredHour)) {\n this.hours = (enteredHour < 0 ? 24 + enteredHour : enteredHour) % 24;\n } else {\n this.hours = NaN;\n }\n\n this.callbackFn(this.hours, this.mins, this.secs);\n\n this.propagatedValues = {\n ...this.propagatedValues,\n hours: this.hours,\n };\n this.propagateChange(this.propagatedValues);\n }\n /**\n * Updates the input field when minutes change and adds 60mins validation + propagates the value back to the form\n *\n * @param newVal The new value that minutes will have\n */\n updateMinutes(newVal: string): void {\n const enteredMin = this.toInteger(newVal);\n\n if (!isNaN(enteredMin)) {\n this.mins = enteredMin % 60 < 0 ? 60 + (enteredMin % 60) : enteredMin % 60;\n this.changeHours(Math.floor(enteredMin / 60));\n } else {\n this.mins = NaN;\n }\n\n this.callbackFn(this.hours, this.mins, this.secs);\n\n this.propagatedValues = {\n ...this.propagatedValues,\n mins: this.mins,\n };\n this.propagateChange(this.propagatedValues);\n }\n /**\n * Updates the input field when seconds change and adds 60secs validation + propagates the value back to the form\n *\n * @param newVal The new value that seconds will have\n */\n updateSeconds(newVal: string): void {\n const enteredSec = this.toInteger(newVal);\n\n if (!isNaN(enteredSec)) {\n this.secs = enteredSec % 60 < 0 ? 60 + (enteredSec % 60) : enteredSec % 60;\n this.changeMinutes(Math.floor(enteredSec / 60));\n } else {\n this.secs = NaN;\n }\n\n this.callbackFn(this.hours, this.mins, this.secs);\n\n this.propagatedValues = {\n ...this.propagatedValues,\n secs: this.secs,\n };\n\n this.propagateChange(this.propagatedValues);\n }\n /**\n * Autofills mins and secs with 00s if the user tabs after entering hours and marks the input as touched\n */\n onFocusOut(): void {\n if (this.oneInputHours && !this.oneInputMins && !this.oneInputSecs) {\n switch (this.oneInputHours) {\n case '0':\n this.oneInputHours = '00';\n break;\n case '1':\n this.oneInputHours = '01';\n break;\n case '2':\n this.oneInputHours = '02';\n break;\n }\n this.oneInputFormControl.patchValue(`${this.oneInputHours} : 00 : 00`);\n }\n\n this.propagateTouched();\n }\n\n writeValue(values: EuiTimePicker): void {\n if (!values) {\n this.hours = null;\n this.mins = null;\n this.secs = null;\n if(this.isOneInputField) {\n this.oneInputFormControl.setValue(null)\n }\n return;\n }\n \n if (values.hours < 0 || values.hours > 23 || typeof values.hours !== 'number') {\n throw new Error('hours must be defined and be a number with range 0-23');\n }\n if (values.mins < 0 || values.mins > 59 || typeof values.mins !== 'number') {\n throw new Error('mins must be defined and be a number with range 0-59');\n }\n if (this.hasSeconds && (values.secs < 0 || values.secs > 59 || typeof values.secs !== 'number')) {\n throw new Error('secs must be defined and be a number with range 0-59');\n }\n\n this.updateHours(values.hours.toString());\n this.updateMinutes(values.mins.toString());\n if (values.secs) {\n this.updateSeconds(values.secs.toString());\n }\n if (this.isOneInputField) {\n const hours = this.padNumber(values.hours);\n const mins = this.padNumber(values.mins);\n const secs = this.padNumber(values.secs);\n\n this.oneInputFormControl.patchValue('' + hours + ':' + mins + ':' + secs);\n }\n }\n /**\n * Disables the hour up incremental when max time range is reached\n *\n * @param state The boolean value that enables the feature\n */\n public hoursUpDisable(state: boolean): void {\n this.hoursUpDisabled = state;\n }\n /**\n * Disables the hour down decremental when min time range is reached\n *\n * @param state The boolean value that enables the feature\n */\n public hoursDownDisable(state: boolean): void {\n this.hoursDownDisabled = state;\n }\n /**\n * Disables the minutes up incremental when max time range is reached\n *\n * @param state The boolean value that enables the feature\n */\n public minutesUpDisable(state: boolean): void {\n this.minutesUpDisabled = state;\n }\n /**\n * Disables the minutes down decremental when min time range is reached\n *\n * @param state The boolean value that enables the feature\n */\n public minutesDownDisable(state: boolean): void {\n this.minutesDownDisabled = state;\n }\n /**\n * Disables the seconds up incremental when max time range is reached\n *\n * @param state The boolean value that enables the feature\n */\n public secondsUpDisable(state: boolean): void {\n this.secondsUpDisabled = state;\n }\n /**\n * Disables the seconds down decremental when min time range is reached\n *\n * @param state The boolean value that enables the feature\n */\n public secondsDownDisable(state: boolean): void {\n this.secondsDownDisabled = state;\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn: any): void {\n this.propagateTouched = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private callbackFn: (hours: number, mins: number, secs?: number) => void = () => {};\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private toInteger(value: any): number {\n return parseInt(`${value}`, 10);\n }\n\n /**\n * Pads leading zero to the provided number when isOneInputField\n *\n * @param value The value to add leading zero to\n * @private\n */\n private padNumber(value: number): string {\n if (!isNaN(this.toInteger(value))) {\n return `0${value}`.slice(-2);\n } else {\n return '';\n }\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private propagateChange = (_: any): void => {/* empty */};\n\n private propagateTouched = (): void => {/* empty */};\n\n /**\n * Updates the `aria-required` attribute on the input element.\n * @private\n */\n private updateInputAriaRequiredAttribute(control: NgControl): void {\n this.hasAriaRequiredAttribute = control?.control?.hasValidator(Validators.required);\n }\n}\n","<div class=\"eui-timepicker\" [class.eui-timepicker--centered]=\"isDatetimepicker\" attr.data-e2e=\"{{ e2eAttr }}\">\n <ng-container *ngIf=\"isOneInputField; else multipleInputs\">\n <input\n [class.eui-timepicker__input--one-field]=\"isDatetimepicker\"\n euiInputText\n mask=\"{{ timeMask }}\"\n [leadZeroDateTime]=\"true\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"oneInputFormControl.value?oneInputFormControl.value:'No time value'\"\n [formControl]=\"oneInputFormControl\"\n (focusout)=\"onFocusOut()\"\n [dropSpecialCharacters]=\"false\"\n [readonly]=\"isreadOnly\" />\n </ng-container>\n\n <ng-template #multipleInputs>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__hours-up\">\n <eui-icon-svg\n (click)=\"changeHours(stepHours)\"\n [class.time-control--disabled]=\"hoursUpDisabled\"\n icon=\"chevron-up:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase Hours\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefhours\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"HH\"\n [ngModel]=\"hours\"\n (ngModelChange)=\"updateHours($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Hours\"\n [attr.aria-required]=\"hasAriaRequiredAttribute ? 'true' : null\"\n (keydown.ArrowUp)=\"changeHours(stepHours); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeHours(-stepHours); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__hours-down\">\n <eui-icon-svg\n (click)=\"changeHours(-stepHours)\"\n [class.time-control--disabled]=\"hoursDownDisabled\"\n icon=\"chevron-down:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease Hours\">\n </eui-icon-svg>\n </div>\n </div>\n <div class=\"eui-timepicker__spacer\">:</div>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__minutes-up\">\n <eui-icon-svg\n (click)=\"changeMinutes(stepMinutes)\"\n [class.time-control--disabled]=\"minutesUpDisabled\"\n icon=\"chevron-up:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase Minutes\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefmins\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"MM\"\n [ngModel]=\"mins\"\n (ngModelChange)=\"updateMinutes($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Minutes\"\n [attr.aria-required]=\"hasAriaRequiredAttribute ? 'true' : null\"\n (keydown.ArrowUp)=\"changeMinutes(stepMinutes); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeMinutes(-stepMinutes); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__minutes-down\">\n <eui-icon-svg\n (click)=\"changeMinutes(-stepMinutes)\"\n [class.time-control--disabled]=\"minutesDownDisabled\"\n icon=\"chevron-down:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease Minutes\">\n </eui-icon-svg>\n </div>\n </div>\n <ng-container *ngIf=\"hasSeconds\">\n <div class=\"eui-timepicker__spacer\">:</div>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__seconds-up\">\n <eui-icon-svg\n (click)=\"changeSeconds(stepSeconds)\"\n [class.time-control--disabled]=\"secondsUpDisabled\"\n icon=\"chevron-up:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase seconds\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefsecs\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"SS\"\n [ngModel]=\"secs\"\n (ngModelChange)=\"updateSeconds($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Seconds\"\n [attr.aria-required]=\"hasAriaRequiredAttribute ? 'true' : null\"\n (keydown.ArrowUp)=\"changeSeconds(stepSeconds); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeSeconds(-stepSeconds); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__seconds-down\">\n <eui-icon-svg\n (click)=\"changeSeconds(-stepSeconds)\"\n [class.time-control--disabled]=\"secondsDownDisabled\"\n icon=\"chevron-down:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease seconds\">\n </eui-icon-svg>\n </div>\n </div>\n </ng-container>\n </ng-template>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgxMaskDirective, provideNgxMask, provideEnvironmentNgxMask } from 'ngx-mask';\n\nimport { EuiTimepickerComponent } from './eui-timepicker.component';\nimport { EuiInputNumberDirectiveModule } from '@eui/components/eui-input-number';\nimport { EuiInputTextModule } from '@eui/components/eui-input-text';\nimport { EuiIconModule } from '@eui/components/eui-icon';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n EuiInputNumberDirectiveModule,\n EuiInputTextModule,\n EuiIconModule,\n NgxMaskDirective,\n ],\n providers: [provideNgxMask(), provideEnvironmentNgxMask()],\n exports: [EuiTimepickerComponent],\n declarations: [EuiTimepickerComponent],\n})\nexport class EuiTimepickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"eui-components-eui-timepicker.mjs","sources":["../../eui-timepicker/eui-timepicker.component.ts","../../eui-timepicker/eui-timepicker.component.html","../../eui-timepicker/eui-timepicker.module.ts","../../eui-timepicker/eui-components-eui-timepicker.ts"],"sourcesContent":["import {\n Component,\n Inject,\n Input,\n OnInit,\n Optional,\n ViewEncapsulation,\n Self,\n DoCheck,\n OnDestroy,\n SimpleChanges,\n OnChanges,\n booleanAttribute,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl, FormControl, Validators } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { DYNAMIC_COMPONENT_CONFIG, uniqueId } from '@eui/core';\nimport { EuiDateTimePickerConfig } from './models/eui-date-time-picker.config.model';\nimport { EuiTimePicker } from './models/eui-timepicker.model';\n\n@Component({\n selector: 'eui-timepicker',\n templateUrl: './eui-timepicker.component.html',\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiTimepickerComponent implements ControlValueAccessor, OnInit, OnChanges, DoCheck, OnDestroy {\n hours: number;\n mins: number;\n secs: number;\n isDatetimepicker: boolean;\n oneInputFormControl = new FormControl();\n oneInputHours: string;\n oneInputMins: string;\n oneInputSecs: string;\n\n public hoursUpDisabled = false;\n public hoursDownDisabled = false;\n public minutesUpDisabled = false;\n public minutesDownDisabled = false;\n public secondsUpDisabled = false;\n public secondsDownDisabled = false;\n\n @Input() e2eAttr = 'eui-timepicker';\n @Input() inputId = `eui-timepicker-${uniqueId()}`;\n\n @Input() timeMask = 'Hh:m0'\n @Input() placeholder = this.timeMask;\n\n @Input() stepHours = 1;\n @Input() stepMinutes = 1;\n @Input() stepSeconds = 1;\n\n @Input({ transform: booleanAttribute }) isreadOnly = false;\n @Input({ transform: booleanAttribute }) isOneInputField = false;\n @Input({ transform: booleanAttribute }) hasSeconds = false;\n\n protected hasAriaRequiredAttribute: boolean;\n private propagatedValues: EuiTimePicker = {\n hours: null,\n mins: null,\n secs: this.hasSeconds ? null : undefined,\n };\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n constructor(\n @Optional() @Inject(DYNAMIC_COMPONENT_CONFIG) config: EuiDateTimePickerConfig,\n @Self() @Optional() private control: NgControl,\n ) {\n this.hours = config?.hours || 0;\n this.mins = config?.mins || 0;\n this.secs = config?.secs || 0;\n this.isDatetimepicker = config?.isDatetimepicker;\n this.hasSeconds = config?.hasSeconds;\n this.isOneInputField = config?.isOneInputField;\n this.stepHours = config? config.stepHours: this.stepHours;\n this.stepMinutes = config? config.stepMinutes: this.stepMinutes;\n this.stepSeconds = config? config.stepSeconds: this.stepSeconds;\n const hours = this.hours === 0 || null ? '00' : this.hours;\n const mins = this.mins === 0 || null ? '00' : this.mins;\n const secs = this.secs === 0 || null ? '00' : this.secs;\n this.oneInputFormControl.setValue('' + hours + ':' + mins + ':' + secs);\n this.callbackFn = config?.callbackFn || this.callbackFn;\n\n if (this.control) {\n this.control.valueAccessor = this;\n }\n }\n\n ngOnInit(): void {\n \n this.oneInputFormControl.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((value) => {\n // splits the entered time into 3 parts based on the : and propagates back the corresponding parts\n if(value) {\n [this.oneInputHours, this.oneInputMins, this.oneInputSecs] = value.split(':');\n const splittedhours = this.oneInputHours ? Number(this.oneInputHours) : null;\n const splittedmins = this.oneInputMins ? Number(this.oneInputMins) : null;\n const splittedsecs = this.oneInputSecs ? Number(this.oneInputSecs) : null;\n if (this.hasSeconds) {\n this.propagatedValues = {\n ...this.propagatedValues,\n hours: splittedhours,\n mins: splittedmins,\n secs: splittedsecs,\n };\n this.callbackFn(splittedhours, splittedmins, splittedsecs);\n } else {\n this.propagatedValues = {\n ...this.propagatedValues,\n hours: splittedhours,\n mins: splittedmins,\n };\n this.callbackFn(splittedhours, splittedmins);\n }\n if (splittedhours === null && splittedmins === null && splittedsecs === null) {\n this.propagateChange(null);\n } else {\n this.propagateChange(this.propagatedValues);\n }\n } \n });\n\n this.updateInputAriaRequiredAttribute(this.control);\n this.control?.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((value) => {\n this.updateInputAriaRequiredAttribute(this.control);\n });\n }\n\n ngOnChanges(changes: SimpleChanges):void {\n if(this.isOneInputField) {\n if (this.hasSeconds && changes.hasSeconds) {\n this.timeMask = 'Hh:m0:s0';\n this.placeholder = 'Hh:m0:s0';\n }\n if (changes.timeMask) {\n this.timeMask = changes.timeMask.currentValue;\n this.placeholder = changes.timeMask.currentValue;\n }\n if(changes.placeholder) {\n this.placeholder = changes.placeholder.currentValue;\n }\n }\n }\n\n ngDoCheck(): void {\n if (this.control) {\n // marks the input control as touched/invalid if the form control is touched/invalid\n this.control?.touched ? this.oneInputFormControl.markAsTouched() : this.oneInputFormControl.markAsUntouched();\n this.control?.invalid ? this.oneInputFormControl.setErrors(this.control.errors) : this.oneInputFormControl.setErrors(null);\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n /**\n * Increments or decrements hours according to the step param being passed\n *\n * @param step The step number that hours will increase or decrease\n */\n changeHours(step: number): void {\n if ((!this.hoursUpDisabled && step >0) || (!this.hoursDownDisabled && step <0)) {\n const val = (isNaN(this.hours) ? 0 : this.hours) + step;\n this.updateHours(val.toString());\n }\n }\n /**\n * Increments or decrements minutes according to the step param being passed\n *\n * @param step The step number that minutes will increase or decrease\n */\n changeMinutes(step: number): void {\n if ((!this.minutesUpDisabled && step >0) || (!this.minutesDownDisabled && step <0)) {\n const val = (isNaN(this.mins) ? 0 : this.mins) + step;\n this.updateMinutes(val.toString());\n }\n }\n /**\n * Increments or decrements seconds according to the step param being passed\n *\n * @param step The step number that seconds will increase or decrease\n */\n changeSeconds(step: number): void {\n if ((!this.secondsUpDisabled && step >0) || (!this.secondsDownDisabled && step <0)) {\n const val = (isNaN(this.secs) ? 0 : this.secs) + step;\n this.updateSeconds(val.toString());\n }\n }\n /**\n * Updates the input field when hours change and adds 24hour validation + propagates the value back to the form\n *\n * @param newVal The new value that hours will have\n */\n updateHours(newVal: string): void {\n const enteredHour = this.toInteger(newVal);\n\n if (!isNaN(enteredHour)) {\n this.hours = (enteredHour < 0 ? 24 + enteredHour : enteredHour) % 24;\n } else {\n this.hours = NaN;\n }\n\n this.callbackFn(this.hours, this.mins, this.secs);\n\n this.propagatedValues = {\n ...this.propagatedValues,\n hours: this.hours,\n };\n this.propagateChange(this.propagatedValues);\n }\n /**\n * Updates the input field when minutes change and adds 60mins validation + propagates the value back to the form\n *\n * @param newVal The new value that minutes will have\n */\n updateMinutes(newVal: string): void {\n const enteredMin = this.toInteger(newVal);\n\n if (!isNaN(enteredMin)) {\n this.mins = enteredMin % 60 < 0 ? 60 + (enteredMin % 60) : enteredMin % 60;\n this.changeHours(Math.floor(enteredMin / 60));\n } else {\n this.mins = NaN;\n }\n\n this.callbackFn(this.hours, this.mins, this.secs);\n\n this.propagatedValues = {\n ...this.propagatedValues,\n mins: this.mins,\n };\n this.propagateChange(this.propagatedValues);\n }\n /**\n * Updates the input field when seconds change and adds 60secs validation + propagates the value back to the form\n *\n * @param newVal The new value that seconds will have\n */\n updateSeconds(newVal: string): void {\n const enteredSec = this.toInteger(newVal);\n\n if (!isNaN(enteredSec)) {\n this.secs = enteredSec % 60 < 0 ? 60 + (enteredSec % 60) : enteredSec % 60;\n this.changeMinutes(Math.floor(enteredSec / 60));\n } else {\n this.secs = NaN;\n }\n\n this.callbackFn(this.hours, this.mins, this.secs);\n\n this.propagatedValues = {\n ...this.propagatedValues,\n secs: this.secs,\n };\n\n this.propagateChange(this.propagatedValues);\n }\n /**\n * Autofills mins and secs with 00s if the user tabs after entering hours and marks the input as touched\n */\n onFocusOut(): void {\n if (this.oneInputHours && !this.oneInputMins && !this.oneInputSecs) {\n switch (this.oneInputHours) {\n case '0':\n this.oneInputHours = '00';\n break;\n case '1':\n this.oneInputHours = '01';\n break;\n case '2':\n this.oneInputHours = '02';\n break;\n }\n this.oneInputFormControl.patchValue(`${this.oneInputHours} : 00 : 00`);\n }\n\n this.propagateTouched();\n }\n\n writeValue(values: EuiTimePicker): void {\n if (!values) {\n this.hours = null;\n this.mins = null;\n this.secs = null;\n if(this.isOneInputField) {\n this.oneInputFormControl.setValue(null)\n }\n return;\n }\n \n if (values.hours < 0 || values.hours > 23 || typeof values.hours !== 'number') {\n throw new Error('hours must be defined and be a number with range 0-23');\n }\n if (values.mins < 0 || values.mins > 59 || typeof values.mins !== 'number') {\n throw new Error('mins must be defined and be a number with range 0-59');\n }\n if (this.hasSeconds && (values.secs < 0 || values.secs > 59 || typeof values.secs !== 'number')) {\n throw new Error('secs must be defined and be a number with range 0-59');\n }\n\n this.updateHours(values.hours.toString());\n this.updateMinutes(values.mins.toString());\n if (values.secs) {\n this.updateSeconds(values.secs.toString());\n }\n if (this.isOneInputField) {\n const hours = this.padNumber(values.hours);\n const mins = this.padNumber(values.mins);\n const secs = this.padNumber(values.secs);\n\n this.oneInputFormControl.patchValue('' + hours + ':' + mins + ':' + secs);\n }\n }\n /**\n * Disables the hour up incremental when max time range is reached\n *\n * @param state The boolean value that enables the feature\n */\n public hoursUpDisable(state: boolean): void {\n this.hoursUpDisabled = state;\n }\n /**\n * Disables the hour down decremental when min time range is reached\n *\n * @param state The boolean value that enables the feature\n */\n public hoursDownDisable(state: boolean): void {\n this.hoursDownDisabled = state;\n }\n /**\n * Disables the minutes up incremental when max time range is reached\n *\n * @param state The boolean value that enables the feature\n */\n public minutesUpDisable(state: boolean): void {\n this.minutesUpDisabled = state;\n }\n /**\n * Disables the minutes down decremental when min time range is reached\n *\n * @param state The boolean value that enables the feature\n */\n public minutesDownDisable(state: boolean): void {\n this.minutesDownDisabled = state;\n }\n /**\n * Disables the seconds up incremental when max time range is reached\n *\n * @param state The boolean value that enables the feature\n */\n public secondsUpDisable(state: boolean): void {\n this.secondsUpDisabled = state;\n }\n /**\n * Disables the seconds down decremental when min time range is reached\n *\n * @param state The boolean value that enables the feature\n */\n public secondsDownDisable(state: boolean): void {\n this.secondsDownDisabled = state;\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnChange(fn: any): void {\n this.propagateChange = fn;\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerOnTouched(fn: any): void {\n this.propagateTouched = fn;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private callbackFn: (hours: number, mins: number, secs?: number) => void = () => {};\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private toInteger(value: any): number {\n return parseInt(`${value}`, 10);\n }\n\n /**\n * Pads leading zero to the provided number when isOneInputField\n *\n * @param value The value to add leading zero to\n * @private\n */\n private padNumber(value: number): string {\n if (!isNaN(this.toInteger(value))) {\n return `0${value}`.slice(-2);\n } else {\n return '';\n }\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private propagateChange = (_: any): void => {/* empty */};\n\n private propagateTouched = (): void => {/* empty */};\n\n /**\n * Updates the `aria-required` attribute on the input element.\n * @private\n */\n private updateInputAriaRequiredAttribute(control: NgControl): void {\n this.hasAriaRequiredAttribute = control?.control?.hasValidator(Validators.required);\n }\n}\n","<div class=\"eui-timepicker\" [class.eui-timepicker--centered]=\"isDatetimepicker\" attr.data-e2e=\"{{ e2eAttr }}\">\n <ng-container *ngIf=\"isOneInputField; else multipleInputs\">\n <input\n [class.eui-timepicker__input--one-field]=\"isDatetimepicker\"\n euiInputText\n [id]=\"inputId\"\n mask=\"{{ timeMask }}\"\n [leadZeroDateTime]=\"true\"\n [placeholder]=\"placeholder\"\n [attr.aria-label]=\"oneInputFormControl.value?oneInputFormControl.value:'No time value'\"\n [formControl]=\"oneInputFormControl\"\n (focusout)=\"onFocusOut()\"\n [dropSpecialCharacters]=\"false\"\n [readonly]=\"isreadOnly\" />\n </ng-container>\n\n <ng-template #multipleInputs>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__hours-up\">\n <eui-icon-svg\n (click)=\"changeHours(stepHours)\"\n [class.time-control--disabled]=\"hoursUpDisabled\"\n icon=\"chevron-up:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase Hours\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefhours\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"HH\"\n [ngModel]=\"hours\"\n (ngModelChange)=\"updateHours($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Hours\"\n [attr.aria-required]=\"hasAriaRequiredAttribute ? 'true' : null\"\n (keydown.ArrowUp)=\"changeHours(stepHours); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeHours(-stepHours); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__hours-down\">\n <eui-icon-svg\n (click)=\"changeHours(-stepHours)\"\n [class.time-control--disabled]=\"hoursDownDisabled\"\n icon=\"chevron-down:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease Hours\">\n </eui-icon-svg>\n </div>\n </div>\n <div class=\"eui-timepicker__spacer\">:</div>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__minutes-up\">\n <eui-icon-svg\n (click)=\"changeMinutes(stepMinutes)\"\n [class.time-control--disabled]=\"minutesUpDisabled\"\n icon=\"chevron-up:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase Minutes\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefmins\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"MM\"\n [ngModel]=\"mins\"\n (ngModelChange)=\"updateMinutes($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Minutes\"\n [attr.aria-required]=\"hasAriaRequiredAttribute ? 'true' : null\"\n (keydown.ArrowUp)=\"changeMinutes(stepMinutes); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeMinutes(-stepMinutes); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__minutes-down\">\n <eui-icon-svg\n (click)=\"changeMinutes(-stepMinutes)\"\n [class.time-control--disabled]=\"minutesDownDisabled\"\n icon=\"chevron-down:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease Minutes\">\n </eui-icon-svg>\n </div>\n </div>\n <ng-container *ngIf=\"hasSeconds\">\n <div class=\"eui-timepicker__spacer\">:</div>\n <div class=\"eui-timepicker__input-container\">\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__seconds-up\">\n <eui-icon-svg\n (click)=\"changeSeconds(stepSeconds)\"\n [class.time-control--disabled]=\"secondsUpDisabled\"\n icon=\"chevron-up:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Increase seconds\">\n </eui-icon-svg>\n </div>\n <input\n #inputrefsecs\n euiInputNumber\n [leadingZero]=\"2\"\n [digits]=\"2\"\n [fractionDigits]=\"0\"\n class=\"eui-timepicker__input\"\n placeholder=\"SS\"\n [ngModel]=\"secs\"\n (ngModelChange)=\"updateSeconds($event)\"\n [readonly]=\"isreadOnly\"\n aria-label=\"Seconds\"\n [attr.aria-required]=\"hasAriaRequiredAttribute ? 'true' : null\"\n (keydown.ArrowUp)=\"changeSeconds(stepSeconds); $event.preventDefault()\"\n (keydown.ArrowDown)=\"changeSeconds(-stepSeconds); $event.preventDefault()\" />\n <div *ngIf=\"!isreadOnly\" class=\"eui-timepicker__chevron eui-timepicker__seconds-down\">\n <eui-icon-svg\n (click)=\"changeSeconds(-stepSeconds)\"\n [class.time-control--disabled]=\"secondsDownDisabled\"\n icon=\"chevron-down:sharp\"\n fillColor=\"neutral-light\"\n size=\"l\"\n role=\"button\"\n aria-label=\"Decrease seconds\">\n </eui-icon-svg>\n </div>\n </div>\n </ng-container>\n </ng-template>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgxMaskDirective, provideNgxMask, provideEnvironmentNgxMask } from 'ngx-mask';\n\nimport { EuiTimepickerComponent } from './eui-timepicker.component';\nimport { EuiInputNumberDirectiveModule } from '@eui/components/eui-input-number';\nimport { EuiInputTextModule } from '@eui/components/eui-input-text';\nimport { EuiIconModule } from '@eui/components/eui-icon';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n EuiInputNumberDirectiveModule,\n EuiInputTextModule,\n EuiIconModule,\n NgxMaskDirective,\n ],\n providers: [provideNgxMask(), provideEnvironmentNgxMask()],\n exports: [EuiTimepickerComponent],\n declarations: [EuiTimepickerComponent],\n})\nexport class EuiTimepickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|