@eui/components 19.1.1-snapshot-1741071838252 → 19.1.1
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/directives/eui-clearable.directive.d.ts.map +1 -1
- package/directives/eui-loading.directive.d.ts.map +1 -1
- package/directives/eui-maxlength.directive.d.ts.map +1 -1
- package/directives/eui-scroll-handler.directive.d.ts.map +1 -1
- package/directives/eui-smooth-scroll.directive.d.ts.map +1 -1
- package/directives/eui-tooltip/eui-tooltip.directive.d.ts.map +1 -1
- package/docs/components/EuiAutocompleteComponent.html +1 -1
- package/docs/components/EuiAvatarBadgeComponent.html +52 -0
- package/docs/components/EuiAvatarComponent.html +109 -1
- package/docs/components/EuiAvatarIconComponent.html +16 -0
- package/docs/components/EuiAvatarImageComponent.html +42 -0
- package/docs/components/EuiAvatarListComponent.html +45 -0
- package/docs/components/EuiAvatarTextComponent.html +38 -0
- package/docs/components/EuiDiscussionThreadComponent.html +77 -1
- package/docs/components/EuiDiscussionThreadItemComponent.html +118 -0
- package/docs/components/EuiIconToggleComponent.html +149 -0
- package/docs/components/EuiListComponent.html +130 -0
- package/docs/components/EuiListItemComponent.html +29 -0
- package/docs/components/EuiMessageBoxComponent.html +192 -2
- package/docs/components/EuiPopoverComponent.html +119 -8
- package/docs/components/EuiTimebarComponent.html +87 -2
- package/docs/dependencies.html +33 -33
- package/docs/directives/EuiPopoverArrowPositionDirective.html +29 -0
- package/docs/injectables/EuiMessageBoxService.html +49 -3
- package/docs/interfaces/EuiDiscussionThreadItem.html +61 -0
- package/docs/js/menu-wc.js +41 -46
- package/docs/js/menu-wc_es5.js +1 -1
- package/docs/js/search/search_index.js +2 -2
- package/docs/miscellaneous/typealiases.html +6 -0
- package/docs/miscellaneous/variables.html +59 -5
- package/docs/modules/EuiAvatarModule.html +25 -4
- package/docs/modules/EuiDiscussionThreadModule.html +16 -1
- package/docs/modules/EuiIconToggleModule.html +23 -11
- package/docs/modules/EuiListModule.html +17 -2
- package/docs/modules/EuiMessageBoxModule.html +13 -1
- package/docs/modules/EuiPopoverModule.html +16 -1
- package/docs/modules/EuiTimebarModule.html +23 -14
- package/eui-alert/eui-alert.component.d.ts.map +1 -1
- package/eui-autocomplete/eui-autocomplete-option/eui-autocomplete-option.component.d.ts.map +1 -1
- package/eui-autocomplete/eui-autocomplete.component.d.ts.map +1 -1
- package/eui-avatar/avatar-badge/avatar-badge.component.d.ts +37 -0
- package/eui-avatar/avatar-badge/avatar-badge.component.d.ts.map +1 -1
- package/eui-avatar/avatar-icon/avatar-icon.component.d.ts +18 -0
- package/eui-avatar/avatar-icon/avatar-icon.component.d.ts.map +1 -1
- package/eui-avatar/avatar-image/avatar-image.component.d.ts +26 -0
- package/eui-avatar/avatar-image/avatar-image.component.d.ts.map +1 -1
- package/eui-avatar/avatar-list/avatar-list.component.d.ts +30 -0
- package/eui-avatar/avatar-list/avatar-list.component.d.ts.map +1 -1
- package/eui-avatar/avatar-text/avatar-text.component.d.ts +35 -0
- package/eui-avatar/avatar-text/avatar-text.component.d.ts.map +1 -1
- package/eui-avatar/eui-avatar.component.d.ts +85 -1
- package/eui-avatar/eui-avatar.component.d.ts.map +1 -1
- package/eui-avatar/eui-avatar.module.d.ts +33 -10
- package/eui-avatar/eui-avatar.module.d.ts.map +1 -1
- package/eui-badge/eui-badge.component.d.ts.map +1 -1
- package/eui-block-content/eui-block-content.component.d.ts.map +1 -1
- package/eui-block-document/eui-block-document.component.d.ts.map +1 -1
- package/eui-button/eui-button.component.d.ts.map +1 -1
- package/eui-button-group/eui-button-group.component.d.ts.map +1 -1
- package/eui-button-v2/eui-button-v2.component.d.ts.map +1 -1
- package/eui-card/components/eui-card-header/eui-card-header.component.d.ts.map +1 -1
- package/eui-card/eui-card.component.d.ts.map +1 -1
- package/eui-chip/eui-chip.component.d.ts.map +1 -1
- package/eui-chip-list/eui-chip-list.component.d.ts.map +1 -1
- package/eui-dashboard-card/eui-dashboard-card.component.d.ts.map +1 -1
- package/eui-date-range-selector/eui-date-range-selector.component.d.ts.map +1 -1
- package/eui-datepicker/eui-datepicker.component.d.ts.map +1 -1
- package/eui-dialog/eui-dialog.component.d.ts.map +1 -1
- package/eui-discussion-thread/eui-discussion-thread-item.component.d.ts +65 -0
- package/eui-discussion-thread/eui-discussion-thread-item.component.d.ts.map +1 -1
- package/eui-discussion-thread/eui-discussion-thread.component.d.ts +51 -0
- package/eui-discussion-thread/eui-discussion-thread.component.d.ts.map +1 -1
- package/eui-discussion-thread/eui-discussion-thread.module.d.ts +19 -1
- package/eui-discussion-thread/eui-discussion-thread.module.d.ts.map +1 -1
- package/eui-discussion-thread/models/eui-discussion-thread-item.model.d.ts +45 -0
- package/eui-discussion-thread/models/eui-discussion-thread-item.model.d.ts.map +1 -1
- package/eui-dropdown/dropdown-item/eui-dropdown-item.component.d.ts.map +1 -1
- package/eui-dropdown/eui-dropdown.component.d.ts.map +1 -1
- package/eui-feedback-message/eui-feedback-message.component.d.ts.map +1 -1
- package/eui-fieldset/eui-fieldset.component.d.ts.map +1 -1
- package/eui-file-upload/eui-file-upload.component.d.ts.map +1 -1
- package/eui-file-upload/file-preview/file-preview.component.d.ts.map +1 -1
- package/eui-growl/eui-growl.component.d.ts.map +1 -1
- package/eui-icon/eui-icon-svg.component.d.ts.map +1 -1
- package/eui-icon-button/eui-icon-button.component.d.ts.map +1 -1
- package/eui-icon-button-expander/eui-icon-button-expander.component.d.ts.map +1 -1
- package/eui-icon-input/eui-icon-input.component.d.ts.map +1 -1
- package/eui-icon-toggle/eui-icon-toggle.component.d.ts +96 -1
- package/eui-icon-toggle/eui-icon-toggle.component.d.ts.map +1 -1
- package/eui-icon-toggle/eui-icon-toggle.module.d.ts +19 -4
- package/eui-icon-toggle/eui-icon-toggle.module.d.ts.map +1 -1
- package/eui-input-number/eui-input-number.component.d.ts.map +1 -1
- package/eui-label/eui-label.component.d.ts.map +1 -1
- package/eui-language-selector/language-selector.component.d.ts.map +1 -1
- package/eui-list/eui-list-item/eui-list-item.component.d.ts +34 -0
- package/eui-list/eui-list-item/eui-list-item.component.d.ts.map +1 -1
- package/eui-list/eui-list.component.d.ts +56 -0
- package/eui-list/eui-list.component.d.ts.map +1 -1
- package/eui-list/eui-list.module.d.ts +18 -1
- package/eui-list/eui-list.module.d.ts.map +1 -1
- package/eui-menu/eui-menu-item.component.d.ts.map +1 -1
- package/eui-menu/eui-menu.component.d.ts.map +1 -1
- package/eui-message-box/eui-message-box.component.d.ts +148 -2
- package/eui-message-box/eui-message-box.component.d.ts.map +1 -1
- package/eui-message-box/eui-message-box.module.d.ts +15 -1
- package/eui-message-box/eui-message-box.module.d.ts.map +1 -1
- package/eui-message-box/services/eui-message-box.service.d.ts +58 -3
- package/eui-message-box/services/eui-message-box.service.d.ts.map +1 -1
- package/eui-navbar/eui-navbar-item/eui-navbar-item.component.d.ts.map +1 -1
- package/eui-overlay/eui-overlay.component.d.ts.map +1 -1
- package/eui-page/components/eui-page-column/eui-page-column.component.d.ts.map +1 -1
- package/eui-page/components/eui-page-columns/eui-page-columns.component.d.ts.map +1 -1
- package/eui-page/components/eui-page-header/eui-page-header.component.d.ts.map +1 -1
- package/eui-paginator/eui-paginator.component.d.ts.map +1 -1
- package/eui-popover/directives/eui-popover-arrow-position.directive.d.ts +32 -0
- package/eui-popover/directives/eui-popover-arrow-position.directive.d.ts.map +1 -1
- package/eui-popover/eui-popover.component.d.ts +119 -7
- package/eui-popover/eui-popover.component.d.ts.map +1 -1
- package/eui-popover/eui-popover.module.d.ts +18 -1
- package/eui-popover/eui-popover.module.d.ts.map +1 -1
- package/eui-popover/models/eui-popover-position.model.d.ts +26 -0
- package/eui-popover/models/eui-popover-position.model.d.ts.map +1 -1
- package/eui-progress-circle/eui-progress-circle.component.d.ts.map +1 -1
- package/eui-select/eui-select-option.directive.d.ts.map +1 -1
- package/eui-select/eui-select.component.d.ts.map +1 -1
- package/eui-sidebar-menu/eui-sidebar-menu.component.d.ts.map +1 -1
- package/eui-skeleton/eui-skeleton.component.d.ts.map +1 -1
- package/eui-slide-toggle/eui-slide-toggle.component.d.ts.map +1 -1
- package/eui-table/eui-table.component.d.ts.map +1 -1
- package/eui-table/filter/eui-table-filter.component.d.ts.map +1 -1
- package/eui-table/selectable-header/eui-table-selectable-header.component.d.ts.map +1 -1
- package/eui-table/selectable-row/eui-table-selectable-row.component.d.ts.map +1 -1
- package/eui-table/sortable-col/eui-table-sortable-col.component.d.ts.map +1 -1
- package/eui-table-v2/eui-table-v2.component.d.ts.map +1 -1
- package/eui-table-v2/selectable-header/eui-table-v2-selectable-header.component.d.ts.map +1 -1
- package/eui-table-v2/selectable-row/eui-table-v2-selectable-row.component.d.ts.map +1 -1
- package/eui-table-v2/sortable-col/eui-table-v2-sortable-col.component.d.ts.map +1 -1
- package/eui-tabs/eui-tab/eui-tab.component.d.ts.map +1 -1
- package/eui-tabs/eui-tab-content/eui-tab-content.component.d.ts.map +1 -1
- package/eui-tabs/eui-tabs.component.d.ts.map +1 -1
- package/eui-textarea/auto-resize.directive.d.ts.map +1 -1
- package/eui-textarea/eui-textarea.component.d.ts.map +1 -1
- package/eui-timebar/eui-timebar-item.model.d.ts +20 -1
- package/eui-timebar/eui-timebar-item.model.d.ts.map +1 -1
- package/eui-timebar/eui-timebar.component.d.ts +83 -6
- package/eui-timebar/eui-timebar.component.d.ts.map +1 -1
- package/eui-timeline/eui-timeline-item.component.d.ts.map +1 -1
- package/eui-timeline/eui-timeline.component.d.ts.map +1 -1
- package/eui-timepicker/eui-timepicker.component.d.ts.map +1 -1
- package/eui-tree/eui-tree.component.d.ts.map +1 -1
- package/eui-tree-list/eui-tree-list-item.component.d.ts.map +1 -1
- package/eui-tree-list/eui-tree-list.component.d.ts.map +1 -1
- package/eui-tree-list/toolbar/toolbar.component.d.ts.map +1 -1
- package/eui-user-profile/user-profile-card/user-profile-card.component.d.ts.map +1 -1
- package/eui-user-profile/user-profile.component.d.ts.map +1 -1
- package/eui-wizard/eui-wizard-step.component.d.ts.map +1 -1
- package/eui-wizard/eui-wizard.component.d.ts.map +1 -1
- package/externals/eui-editor/counters/eui-editor-counters.component.d.ts.map +1 -1
- package/externals/quill/quill-editor.component.d.ts.map +1 -1
- package/fesm2022/eui-components-directives.mjs +70 -70
- package/fesm2022/eui-components-eui-accordion.mjs +13 -13
- package/fesm2022/eui-components-eui-alert.mjs +10 -10
- package/fesm2022/eui-components-eui-autocomplete.mjs +15 -14
- package/fesm2022/eui-components-eui-autocomplete.mjs.map +1 -1
- package/fesm2022/eui-components-eui-avatar.mjs +286 -36
- package/fesm2022/eui-components-eui-avatar.mjs.map +1 -1
- package/fesm2022/eui-components-eui-badge.mjs +7 -7
- package/fesm2022/eui-components-eui-block-content.mjs +7 -7
- package/fesm2022/eui-components-eui-block-document.mjs +7 -7
- package/fesm2022/eui-components-eui-breadcrumb.mjs +13 -13
- package/fesm2022/eui-components-eui-button-group.mjs +7 -7
- package/fesm2022/eui-components-eui-button-v2.mjs +7 -7
- package/fesm2022/eui-components-eui-button.mjs +7 -7
- package/fesm2022/eui-components-eui-card.mjs +49 -49
- package/fesm2022/eui-components-eui-chip-group.mjs +7 -7
- package/fesm2022/eui-components-eui-chip-list.mjs +13 -13
- package/fesm2022/eui-components-eui-chip.mjs +7 -7
- package/fesm2022/eui-components-eui-dashboard-button.mjs +13 -13
- package/fesm2022/eui-components-eui-dashboard-button.mjs.map +1 -1
- package/fesm2022/eui-components-eui-dashboard-card.mjs +13 -13
- package/fesm2022/eui-components-eui-dashboard-card.mjs.map +1 -1
- package/fesm2022/eui-components-eui-date-range-selector.mjs +10 -10
- package/fesm2022/eui-components-eui-datepicker.mjs +19 -19
- package/fesm2022/eui-components-eui-dialog.mjs +19 -19
- package/fesm2022/eui-components-eui-dimmer.mjs +7 -7
- package/fesm2022/eui-components-eui-disable-content.mjs +7 -7
- package/fesm2022/eui-components-eui-discussion-thread.mjs +113 -12
- package/fesm2022/eui-components-eui-discussion-thread.mjs.map +1 -1
- package/fesm2022/eui-components-eui-dropdown.mjs +20 -20
- package/fesm2022/eui-components-eui-feedback-message.mjs +8 -8
- package/fesm2022/eui-components-eui-feedback-message.mjs.map +1 -1
- package/fesm2022/eui-components-eui-fieldset.mjs +13 -13
- package/fesm2022/eui-components-eui-file-upload.mjs +19 -19
- package/fesm2022/eui-components-eui-growl.mjs +7 -7
- package/fesm2022/eui-components-eui-icon-button-expander.mjs +7 -7
- package/fesm2022/eui-components-eui-icon-button.mjs +7 -7
- package/fesm2022/eui-components-eui-icon-color.mjs +7 -7
- package/fesm2022/eui-components-eui-icon-input.mjs +7 -7
- package/fesm2022/eui-components-eui-icon-state.mjs +7 -7
- package/fesm2022/eui-components-eui-icon-toggle.mjs +106 -10
- package/fesm2022/eui-components-eui-icon-toggle.mjs.map +1 -1
- package/fesm2022/eui-components-eui-icon.mjs +7 -7
- package/fesm2022/eui-components-eui-input-checkbox.mjs +7 -7
- package/fesm2022/eui-components-eui-input-group.mjs +13 -13
- package/fesm2022/eui-components-eui-input-number.mjs +10 -10
- package/fesm2022/eui-components-eui-input-radio.mjs +7 -7
- package/fesm2022/eui-components-eui-input-text.mjs +7 -7
- package/fesm2022/eui-components-eui-label.mjs +8 -8
- package/fesm2022/eui-components-eui-label.mjs.map +1 -1
- package/fesm2022/eui-components-eui-language-selector.mjs +10 -10
- package/fesm2022/eui-components-eui-list.mjs +116 -15
- package/fesm2022/eui-components-eui-list.mjs.map +1 -1
- package/fesm2022/eui-components-eui-menu.mjs +10 -10
- package/fesm2022/eui-components-eui-message-box.mjs +208 -20
- package/fesm2022/eui-components-eui-message-box.mjs.map +1 -1
- package/fesm2022/eui-components-eui-navbar.mjs +10 -10
- package/fesm2022/eui-components-eui-overlay.mjs +19 -19
- package/fesm2022/eui-components-eui-page.mjs +58 -58
- package/fesm2022/eui-components-eui-paginator.mjs +7 -7
- package/fesm2022/eui-components-eui-popover.mjs +195 -21
- package/fesm2022/eui-components-eui-popover.mjs.map +1 -1
- package/fesm2022/eui-components-eui-progress-bar.mjs +7 -7
- package/fesm2022/eui-components-eui-progress-circle.mjs +7 -7
- package/fesm2022/eui-components-eui-select.mjs +19 -19
- package/fesm2022/eui-components-eui-sidebar-menu.mjs +7 -7
- package/fesm2022/eui-components-eui-skeleton.mjs +7 -7
- package/fesm2022/eui-components-eui-slide-toggle.mjs +7 -7
- package/fesm2022/eui-components-eui-split-button.mjs +7 -7
- package/fesm2022/eui-components-eui-table-v2.mjs +34 -34
- package/fesm2022/eui-components-eui-table.mjs +34 -34
- package/fesm2022/eui-components-eui-tabs.mjs +24 -24
- package/fesm2022/eui-components-eui-tabs.mjs.map +1 -1
- package/fesm2022/eui-components-eui-textarea.mjs +10 -10
- package/fesm2022/eui-components-eui-timebar.mjs +82 -10
- package/fesm2022/eui-components-eui-timebar.mjs.map +1 -1
- package/fesm2022/eui-components-eui-timeline.mjs +10 -10
- package/fesm2022/eui-components-eui-timepicker.mjs +7 -7
- package/fesm2022/eui-components-eui-tree-list.mjs +25 -25
- package/fesm2022/eui-components-eui-tree.mjs +21 -21
- package/fesm2022/eui-components-eui-user-profile.mjs +16 -16
- package/fesm2022/eui-components-eui-user-profile.mjs.map +1 -1
- package/fesm2022/eui-components-eui-wizard.mjs +13 -13
- package/fesm2022/eui-components-externals-charts.mjs +7 -7
- package/fesm2022/eui-components-externals-eui-editor.mjs +28 -28
- package/fesm2022/eui-components-externals-quill.mjs +10 -10
- package/fesm2022/eui-components-layout.mjs +183 -182
- package/fesm2022/eui-components-layout.mjs.map +1 -1
- package/fesm2022/eui-components-pipes.mjs +14 -14
- package/fesm2022/eui-components-shared.mjs +6 -6
- package/fesm2022/eui-components.mjs +4 -4
- package/layout/eui-app/eui-app-sidebar/sidebar-header-user-profile/sidebar-header-user-profile.component.d.ts.map +1 -1
- package/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.d.ts.map +1 -1
- package/layout/eui-app/eui-app-toolbar/toolbar.component.d.ts.map +1 -1
- package/layout/eui-app/eui-app-top-message/top-message.component.d.ts.map +1 -1
- package/layout/eui-app/eui-app.component.d.ts.map +1 -1
- package/layout/eui-footer/footer.component.d.ts.map +1 -1
- package/layout/eui-header/header-user-profile/header-user-profile.component.d.ts.map +1 -1
- package/layout/eui-notifications/eui-notification-item.component.d.ts.map +1 -1
- package/layout/eui-notifications/eui-notifications.component.d.ts.map +1 -1
- package/layout/eui-notifications-v2/eui-notification-item.component.d.ts.map +1 -1
- package/layout/eui-notifications-v2/eui-notifications.component.d.ts.map +1 -1
- package/layout/eui-toolbar/toolbar-items/toolbar-items.component.d.ts.map +1 -1
- package/layout/eui-toolbar/toolbar-navbar-item/toolbar-navbar-item.component.d.ts.map +1 -1
- package/layout/eui-toolbar/toolbar-search/toolbar-search.component.d.ts.map +1 -1
- package/layout/eui-toolbar/toolbar-selector/toolbar-selector.component.d.ts.map +1 -1
- package/layout/eui-toolbar/toolbar.component.d.ts.map +1 -1
- package/package.json +4 -4
- package/shared/base/base-states.directive.d.ts.map +1 -1
- package/shared/input.directive.d.ts.map +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eui-components-eui-timebar.mjs","sources":["../../eui-timebar/eui-timebar.component.ts","../../eui-timebar/eui-timebar.component.html","../../eui-timebar/eui-timebar-item.model.ts","../../eui-timebar/eui-components-eui-timebar.ts"],"sourcesContent":["import {\n AfterContentInit,\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n NgModule,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChange,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subscription } from 'rxjs';\n\nimport { EuiAppShellService, formatNumber, LocaleService, LocaleState } from '@eui/core';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiTimebarItem } from './eui-timebar-item.model';\nimport { EuiBadgeComponent } from '@eui/components/eui-badge';\n\nexport class EuiTimebarItemUI {\n perc: number;\n /**\n * info success warning danger\n */\n stepTypeClass: 'info'|'success'|'warning'|'danger'|string;\n tooltipColor: string;\n isGrouped?: boolean;\n groupIndex?: number;\n groupLabel?: string;\n groupEndDate?: Date;\n item: EuiTimebarItem;\n}\n\n@Component({\n selector: 'eui-timebar',\n templateUrl: './eui-timebar.component.html',\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class EuiTimebarComponent implements OnInit, AfterContentInit, AfterViewChecked, OnChanges, OnDestroy {\n itemsUI: EuiTimebarItemUI[] = [];\n currentDate = new Date();\n currentPerc: number;\n markedPerc: number;\n /**\n * The class to be applied to the timebar column.\n *\n * @deprecated Calculation of it happens internally and will be removed in the future\n */\n timebarColumnClass = '';\n subscription: Subscription;\n isShowLegendGenerated: boolean;\n isShowLegendAsIndexGenerated: boolean;\n isGroupOverlappingLabelsGenerated: boolean;\n isMobile = false;\n isSomeStepsAreGrouped = false;\n extraTimelineLabelSpace = 21;\n\n @ViewChild('container') container: ElementRef<HTMLDivElement>;\n @Input() e2eAttr = 'eui-timebar';\n /**\n * The date to be marked on the timebar.\n */\n @Input() markedDate: Date;\n @Input() items: EuiTimebarItem[];\n @Input() startLabel: string;\n @Input() endLabel: string;\n @Input() dateFormat: 'short'|'medium'|'long'|'full'|'shortDate'|'mediumDate'|'longDate'|'fullDate'|'shortTime'|'mediumTime'|'longTime'|'fullTime'|string = 'yyyy-MM-dd';\n\n @Input({ transform: booleanAttribute }) isShowLegend = false;\n @Input({ transform: booleanAttribute }) isShowLegendAsIndex = true;\n @Input({ transform: booleanAttribute }) isShowCurrentDateMarker = false;\n @Input({ transform: booleanAttribute }) isCurrentDateMarkerAlwaysInRange = false;\n @Input({ transform: booleanAttribute }) isGroupOverlappingLabels = false;\n\n protected maxStepWidth = 112; // 112px = 8rem = 2 x 4rem margin around starting and ending bullet.\n protected locale: LocaleService<LocaleState> = inject(LocaleService);\n\n constructor(\n private asService: EuiAppShellService,\n private cd: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.subscription = this.asService.breakpoints$.subscribe((bkps) => {\n this.onBreakpointChange(bkps);\n });\n }\n\n ngAfterContentInit(): void {\n this.removeNullItems();\n this.sortItems();\n\n const startDate: Date = this.items[0].date;\n const endDate: Date = this.items[this.items.length - 1].date;\n this.items.forEach((item) => {\n let stepTypeClass = '';\n let tooltipColor = 'none';\n\n if (item.stepType) {\n stepTypeClass = 'eui-timebar__step--' + item.stepType;\n tooltipColor = item.stepType;\n }\n\n const isNumber = /^\\d+\\.\\d+$/.test(item.label) || /^\\d+$/.test(item.label);\n\n if (isNumber) {\n item.label = formatNumber(item.label, 2);\n }\n\n this.itemsUI.push({\n perc: this.calculatePercentage(item.date, startDate, endDate),\n item,\n stepTypeClass,\n tooltipColor,\n });\n });\n\n this.currentPerc = this.calculatePercentage(this.currentDate, startDate, endDate, true);\n this.markedPerc = this.calculatePercentage(this.markedDate, startDate, endDate, true);\n\n // initialize attributes\n this.isShowLegendGenerated = this.isShowLegend;\n this.isShowLegendAsIndexGenerated = this.isShowLegendAsIndex;\n this.isGroupOverlappingLabelsGenerated = this.isGroupOverlappingLabels;\n this.isMobile = false;\n }\n\n ngAfterViewChecked(): void {\n this.groupOverlappingLabels();\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['markedDate']) {\n const change: SimpleChange = changes['markedDate'];\n const startDate: Date = this.items[0].date;\n const endDate: Date = this.items[this.items.length - 1].date;\n this.markedPerc = this.calculatePercentage(change.currentValue as Date, startDate, endDate);\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 onBreakpointChange(bkps: any): void {\n if (bkps.isMobile) {\n this.isShowLegendGenerated = this.isShowLegendAsIndexGenerated = this.isMobile = true;\n } else {\n this.isShowLegendGenerated = this.isShowLegend;\n this.isShowLegendAsIndexGenerated = this.isShowLegendAsIndex;\n this.isMobile = false;\n }\n }\n\n trackByFn(index: number, item: EuiTimebarItemUI): string {\n return item.item.label;\n }\n\n /**\n * Removes null and undefined items from the timeline collection.\n */\n protected removeNullItems(): void {\n if (this.items) {\n for (let i = 0; i < this.items.length; i++) {\n if (!this.items[i]) {\n this.items.splice(i, 1);\n i--;\n }\n }\n }\n }\n\n /**\n * Sorts the timeline items chronologically by their dates in ascending order.\n * Items with invalid or missing dates are treated as equal during comparison.\n */\n protected sortItems(): void {\n if (!this.items?.length) {\n return;\n }\n\n this.items = this.items\n .filter(a => this.areValidDates(a?.date))\n .sort(this.compareTimebarDates);\n }\n\n protected groupOverlappingLabels(): void {\n if (!this.isGroupOverlappingLabelsGenerated || !this.container || !this.itemsUI) {\n return;\n }\n\n this.clearGrouping();\n\n const containerWidth = this.container.nativeElement.clientWidth;\n const groupingThreshold = (this.maxStepWidth * 100) / containerWidth;\n\n let currentGroup = {\n startIndex: 0,\n items: [] as EuiTimebarItemUI[],\n };\n\n for (let i = 0; i < this.itemsUI.length; i++) {\n const currentItem = this.itemsUI[i];\n const previousItem = i > 0 ? this.itemsUI[i - 1] : null;\n\n if (!previousItem) {\n currentGroup.items.push(currentItem);\n continue;\n }\n\n const distance = Math.abs(currentItem.perc - previousItem.perc);\n\n if (distance <= groupingThreshold) {\n currentGroup.items.push(currentItem);\n } else {\n this.processGroup(currentGroup);\n currentGroup = {\n startIndex: i,\n items: [currentItem],\n };\n }\n }\n\n // Process the last group\n if (currentGroup.items.length > 0) {\n this.processGroup(currentGroup);\n }\n\n this.isSomeStepsAreGrouped = this.itemsUI.some(item => item.isGrouped);\n this.cd.detectChanges();\n }\n\n protected clearGrouping(): void {\n this.isSomeStepsAreGrouped = false;\n if (this.itemsUI) {\n for (const item of this.itemsUI) {\n delete item.isGrouped;\n delete item.groupIndex;\n delete item.groupLabel;\n delete item.groupEndDate;\n }\n }\n this.extraTimelineLabelSpace = 21;\n }\n\n protected calculateExtraTimelineLabelSpace(): void {\n if (this.itemsUI) {\n let maxLabelLength = 0;\n this.itemsUI\n .filter(i => i.item?.label)\n .forEach((i) => {\n maxLabelLength = Math.max(maxLabelLength, i.item.label.length);\n });\n\n if (maxLabelLength > 56) {\n // 56px = 4rem margin of the timeline itself.\n this.extraTimelineLabelSpace = maxLabelLength + 28; // 28px = 2rem = 1 line of text in height + margins\n }\n }\n }\n\n /**\n * Calculates the percentage position of a date within a given date range.\n *\n * @param date - The target date to calculate the position for\n * @param startDate - The beginning of the date range\n * @param endDate - The end of the date range\n * @param compensateForRange - When true, adjusts out-of-range values to maintain visualization constraints\n * @param alwaysInRange - When true, clamps the percentage to the 0-100 range\n * @returns The calculated percentage (0-100), or adjusted values (-3 or 103) if compensating for out-of-range dates\n *\n * @example\n * // Basic usage within range\n * calculatePercentage(new Date('2024-02-15'), new Date('2024-01-01'), new Date('2024-12-31'))\n *\n * // With range compensation\n * calculatePercentage(new Date('2025-01-01'), new Date('2024-01-01'), new Date('2024-12-31'), true)\n */\n protected calculatePercentage(date: Date, startDate: Date, endDate: Date, compensateForRange = false, alwaysInRange = this.isCurrentDateMarkerAlwaysInRange): number {\n if (!this.areValidDates(date, startDate, endDate)) {\n return 0;\n }\n const percentage = this.calculateBasePercentage(date, startDate, endDate);\n\n return compensateForRange\n ? this.adjustPercentageForRange(percentage, alwaysInRange)\n : percentage;\n }\n\n private processGroup(group: { startIndex: number; items: EuiTimebarItemUI[] }): void {\n if (group.items.length <= 1) {\n return;\n }\n\n const firstItem = group.items[0];\n const lastItem = group.items[group.items.length - 1];\n\n // Update the first item in the group\n firstItem.groupEndDate = lastItem.item.date;\n firstItem.stepTypeClass = lastItem.item.stepType;\n\n const groupLabels = this.generateGroupLabels(group);\n firstItem.groupLabel = groupLabels.join(', ');\n firstItem.groupIndex = group.startIndex + 1;\n\n // Mark remaining items as grouped\n for (let i = 1; i < group.items.length; i++) {\n const item = group.items[i];\n item.isGrouped = true;\n item.groupIndex = group.startIndex + i + 1;\n }\n }\n\n private generateGroupLabels(group: { startIndex: number; items: EuiTimebarItemUI[] }): string[] {\n return group.items.map((_, index) =>\n (group.startIndex + index + 1).toString(),\n );\n }\n\n /**\n * Verifies that all required dates are valid Date objects.\n *\n * @param dates - The dates to validate\n * @returns True if all dates are valid, otherwise false\n */\n private areValidDates(...dates: Date[]): boolean {\n return dates.every(date => date instanceof Date);\n }\n\n /**\n * Calculates the raw percentage position of a date within the range.\n *\n * @param date - The target date to calculate the position for\n * @param startDate - The beginning of the date range\n * @param endDate - The end of the date range\n *\n * @returns The calculated percentage (0-100) position on the range\n */\n private calculateBasePercentage(date: Date, startDate: Date, endDate: Date): number {\n const timespan = endDate.getTime() - startDate.getTime();\n const position = date.getTime() - startDate.getTime();\n return (position / timespan) * 100;\n }\n\n /**\n * Handles date positions that fall outside the specified range by applying boundary adjustments.\n *\n * For dates beyond the range boundaries, this method adjusts their position values\n * to maintain consistent TimeBar visualization. When isCurrentDateMarkerAlwaysInRange\n * is enabled, positions are clamped to the boundaries (0-100). Otherwise, they extend\n * slightly beyond (-3 or 103) to indicate out-of-range status.\n *\n * @param percentage - The calculated percentage position\n * @param alwaysInRange - When true, clamps the percentage to the 0-100 range\n *\n * @returns The adjusted percentage value\n */\n private adjustPercentageForRange(percentage: number, alwaysInRange: boolean): number {\n if (percentage > 100) {\n return alwaysInRange ? 100 : 103;\n }\n\n if (percentage <= 0) {\n return alwaysInRange ? 0 : -3;\n }\n\n return percentage;\n }\n\n /**\n * Compares two timeline items by their dates for sorting.\n *\n * @param firstItem - The first item to compare\n * @param secondItem - The second item to compare\n * @returns Negative if first date is earlier, positive if later, zero if equal\n */\n private compareTimebarDates(firstItem: EuiTimebarItem, secondItem: EuiTimebarItem): number {\n return firstItem.date.getTime() - secondItem.date.getTime();\n }\n}\n\n@NgModule({\n imports: [CommonModule, EuiIconModule, EuiBadgeComponent],\n exports: [EuiTimebarComponent],\n declarations: [EuiTimebarComponent],\n})\nexport class EuiTimebarModule {}\n","<div class=\"row eui-u-flex\" #container>\n @if(startLabel) {\n <div class=\"col-2 eui-timebar__start-label\">\n {{ startLabel }}\n </div>\n }\n <div class=\"{{timebarColumnClass}} {{ 'col-' + ((startLabel ? -2 : 0) + (endLabel ? -2 : 0) + 12) }}\">\n <div class=\"eui-timebar\" [style.marginBottom.px]=\"extraTimelineLabelSpace\" attr.data-e2e=\"{{ e2eAttr }}\">\n @if(isShowCurrentDateMarker) {\n <div\n class=\"eui-timebar__current-progress\"\n [style.width.%]=\"currentPerc >= 100 ? 100 : currentPerc\"></div>\n }\n @if(markedDate) {\n <div class=\"eui-timebar__current-progress\" [style.width.%]=\"markedPerc >= 100 ? 100 : markedPerc\"></div>\n }\n\n @for (item of itemsUI; let i = $index; track i) {\n @if(!item.isGrouped) {\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n @if(!isMobile) {\n <div class=\"eui-timebar__step-date-item\" [class.eui-timebar__step-date-item--with-end-date]=\"item.groupEndDate\">\n @if(item.groupEndDate) {\n <span\n class=\"eui-timebar__grouped__step {{\n item.stepTypeClass ? 'eui-timebar__step--' + item.stepTypeClass : ''}}\">\n {{ item.groupEndDate | date: dateFormat: null: (locale.getState() | async).id }}\n </span>\n }\n <span\n class=\"{{ item.tooltipColor ? 'eui-timebar__step--' + item.tooltipColor : '' }}\"\n [class.eui-timebar__grouped__step]=\"item.groupEndDate\">\n {{ item.item.date | date: dateFormat: null: (locale.getState() | async).id }}\n </span>\n </div>\n }\n @if(!isShowLegendGenerated) {\n <div [style.left.%]=\"!isMobile ? item.perc : null\" class=\"eui-timebar__step-label\">\n @if(!item.groupLabel) {\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n }\n @if(item.groupLabel) {\n <span title=\"{{ item.groupLabel }}\">{{ item.groupLabel }}</span>\n }\n </div>\n }\n @if(isShowLegendGenerated && isShowLegendAsIndexGenerated) {\n <div\n [style.left.%]=\"!isMobile ? item.perc : null\"\n class=\"eui-timebar__step-label\">\n {{ !item.groupLabel ? i + 1 : item.groupLabel }}\n </div>\n }\n </div>\n }\n }\n\n @if(isShowCurrentDateMarker) {\n <div\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"currentPerc\"\n title=\"{{ currentDate | date: dateFormat: null: (locale.getState() | async).id }}\">\n <eui-icon-svg icon=\"location\" set=\"sharp\" size=\"m\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n <div class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"currentPerc\">\n <eui-icon-svg icon=\"ellipse:sharp\" size=\"s\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n }\n @if(markedDate) {\n <div\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"markedPerc\"\n title=\"{{ markedDate | date: dateFormat: null: (locale.getState() | async).id }}\">\n <eui-icon-svg icon=\"location\" set=\"sharp\" size=\"m\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n <div class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"markedPerc\">\n <eui-icon-svg icon=\"ellipse:sharp\" size=\"s\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n }\n </div>\n </div>\n @if(endLabel) {\n <div class=\"col-2 eui-timebar__end-label\">\n {{ endLabel }}\n </div>\n }\n</div>\n<div class=\"row eui-u-flex-justify-content-center\">\n <div class=\"{{timebarColumnClass}} {{ 'col-md-' + ((startLabel ? -2 : 0) + (endLabel ? -2 : 0) + 12) }}\">\n <div *ngIf=\"isShowLegendGenerated || isSomeStepsAreGrouped\" class=\"eui-timebar__legend\">\n @for (item of itemsUI; let i = $index; track i){\n @if(isShowLegendGenerated) {\n <div class=\"eui-timebar__legend-item\">\n @if(!isShowLegendAsIndexGenerated) {\n <div class=\"eui-timebar__legend-item-icon\">\n <eui-icon-svg icon=\"ellipse:sharp\" size=\"s\" fillColor=\"{{ item.item.stepType }}\"></eui-icon-svg>\n </div>\n } @else {\n <div class=\"eui-timebar__legend-item-index-wrapper\">\n <eui-badge euiSizeL euiPrimary>{{ i + 1 }}</eui-badge>\n </div>\n }\n <div class=\"eui-timebar__legend-item-label\">\n @if(isMobile) {\n <strong>{{ item.item.date | date: dateFormat: null: (locale.getState() | async).id }}</strong> -\n }\n {{ item.item.label }}\n </div>\n </div>\n }\n @if(!isShowLegendGenerated && (item.groupLabel || item.isGrouped)) {\n <div class=\"eui-timebar__legend-item\">\n <div class=\"eui-timebar__legend-item-index-wrapper\">\n <eui-badge euiSizeL euiPrimary>{{ item.groupIndex }}</eui-badge>\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <strong>{{ item.item.date | date: dateFormat: null: (locale.getState() | async).id }}</strong> - {{ item.item.label }}\n </div>\n </div>\n }\n }\n </div>\n </div>\n</div>\n","// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging\nexport interface EuiTimebarItem {\n date: Date;\n label: string;\n stepType?: string;\n}\n\n// TODO: v17 remove this class - unnecessary\n// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging\nexport class EuiTimebarItem implements EuiTimebarItem {\n date: Date;\n label: string;\n stepType?: string;\n\n constructor(values = {}) {\n Object.assign(this, values);\n }\n}\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-timebar.mjs","sources":["../../eui-timebar/eui-timebar.component.ts","../../eui-timebar/eui-timebar.component.html","../../eui-timebar/eui-timebar-item.model.ts","../../eui-timebar/eui-components-eui-timebar.ts"],"sourcesContent":["import {\n AfterContentInit,\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n NgModule,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChange,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Subscription } from 'rxjs';\n\nimport { EuiAppShellService, formatNumber, LocaleService, LocaleState } from '@eui/core';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiTimebarItem } from './eui-timebar-item.model';\nimport { EuiBadgeComponent } from '@eui/components/eui-badge';\n\nexport class EuiTimebarItemUI {\n perc: number;\n /**\n * info success warning danger\n */\n stepTypeClass: 'info'|'success'|'warning'|'danger'|string;\n tooltipColor: string;\n isGrouped?: boolean;\n groupIndex?: number;\n groupLabel?: string;\n groupEndDate?: Date;\n item: EuiTimebarItem;\n}\n\n/**\n * @description\n * A component for displaying chronological events or milestones on a horizontal timeline.\n *\n * The EuiTimebarComponent renders a horizontal timeline with customizable items, labels,\n * markers, and optional grouping for overlapping items. It supports responsive behavior,\n * current date indication, and multiple display options.\n *\n * @example\n * <!-- Basic usage -->\n * <eui-timebar\n * [items]=\"timelineItems\"\n * [isShowCurrentDateMarker]=\"true\"\n * dateFormat=\"dd/MM/yyyy\">\n * </eui-timebar>\n *\n * @example\n * <!-- With start and end labels -->\n * <eui-timebar\n * [items]=\"timelineItems\"\n * startLabel=\"Start\"\n * endLabel=\"End\"\n * [isShowLegend]=\"true\">\n * </eui-timebar>\n */\n@Component({\n selector: 'eui-timebar',\n templateUrl: './eui-timebar.component.html',\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule, EuiIconModule, EuiBadgeComponent],\n})\nexport class EuiTimebarComponent implements OnInit, AfterContentInit, AfterViewChecked, OnChanges, OnDestroy {\n itemsUI: EuiTimebarItemUI[] = [];\n currentDate = new Date();\n currentPerc: number;\n markedPerc: number;\n /**\n * The class to be applied to the timebar column.\n *\n * @deprecated Calculation of it happens internally and will be removed in the future\n */\n timebarColumnClass = '';\n subscription: Subscription;\n isShowLegendGenerated: boolean;\n isShowLegendAsIndexGenerated: boolean;\n isGroupOverlappingLabelsGenerated: boolean;\n isMobile = false;\n isSomeStepsAreGrouped = false;\n extraTimelineLabelSpace = 21;\n\n @ViewChild('container') container: ElementRef<HTMLDivElement>;\n @Input() e2eAttr = 'eui-timebar';\n /**\n * Date to be highlighted on the timeline.\n * Separate from currentDateMarker, which shows today's date.\n */\n @Input() markedDate: Date;\n /**\n * Collection of items to be displayed on the timeline.\n */\n @Input() items: EuiTimebarItem[];\n /**\n * Label displayed at the beginning of the timeline.\n */\n @Input() startLabel: string;\n\n /**\n * Label displayed at the end of the timeline.\n */\n @Input() endLabel: string;\n\n /**\n * Format for displaying dates in the timeline.\n * @default 'yyyy-MM-dd'\n */\n @Input() dateFormat: 'short'|'medium'|'long'|'full'|'shortDate'|'mediumDate'|'longDate'|'fullDate'|'shortTime'|'mediumTime'|'longTime'|'fullTime'|string = 'yyyy-MM-dd';\n\n /**\n * Whether to show a legend with timeline item labels.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isShowLegend = false;\n\n /**\n * Whether to display indices instead of colors in the legend.\n * @default true\n */\n @Input({ transform: booleanAttribute }) isShowLegendAsIndex = true;\n\n /**\n * Whether to display a marker for the current date on the timeline.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isShowCurrentDateMarker = false;\n\n /**\n * When true, keeps the current date marker visible even if the current date\n * is outside the timeline range by placing it at the edge of the timeline.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isCurrentDateMarkerAlwaysInRange = false;\n\n /**\n * Whether to group timeline items with overlapping labels to improve readability.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isGroupOverlappingLabels = false;\n\n protected maxStepWidth = 112; // 112px = 8rem = 2 x 4rem margin around starting and ending bullet.\n protected locale: LocaleService<LocaleState> = inject(LocaleService);\n\n constructor(\n private asService: EuiAppShellService,\n private cd: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.subscription = this.asService.breakpoints$.subscribe((bkps) => {\n this.onBreakpointChange(bkps);\n });\n }\n\n ngAfterContentInit(): void {\n this.removeNullItems();\n this.sortItems();\n\n const startDate: Date = this.items[0].date;\n const endDate: Date = this.items[this.items.length - 1].date;\n this.items.forEach((item) => {\n let stepTypeClass = '';\n let tooltipColor = 'none';\n\n if (item.stepType) {\n stepTypeClass = 'eui-timebar__step--' + item.stepType;\n tooltipColor = item.stepType;\n }\n\n const isNumber = /^\\d+\\.\\d+$/.test(item.label) || /^\\d+$/.test(item.label);\n\n if (isNumber) {\n item.label = formatNumber(item.label, 2);\n }\n\n this.itemsUI.push({\n perc: this.calculatePercentage(item.date, startDate, endDate),\n item,\n stepTypeClass,\n tooltipColor,\n });\n });\n\n this.currentPerc = this.calculatePercentage(this.currentDate, startDate, endDate, true);\n this.markedPerc = this.calculatePercentage(this.markedDate, startDate, endDate, true);\n\n // initialize attributes\n this.isShowLegendGenerated = this.isShowLegend;\n this.isShowLegendAsIndexGenerated = this.isShowLegendAsIndex;\n this.isGroupOverlappingLabelsGenerated = this.isGroupOverlappingLabels;\n this.isMobile = false;\n }\n\n ngAfterViewChecked(): void {\n this.groupOverlappingLabels();\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['markedDate']) {\n const change: SimpleChange = changes['markedDate'];\n const startDate: Date = this.items[0].date;\n const endDate: Date = this.items[this.items.length - 1].date;\n this.markedPerc = this.calculatePercentage(change.currentValue as Date, startDate, endDate);\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 onBreakpointChange(bkps: any): void {\n if (bkps.isMobile) {\n this.isShowLegendGenerated = this.isShowLegendAsIndexGenerated = this.isMobile = true;\n } else {\n this.isShowLegendGenerated = this.isShowLegend;\n this.isShowLegendAsIndexGenerated = this.isShowLegendAsIndex;\n this.isMobile = false;\n }\n }\n\n trackByFn(index: number, item: EuiTimebarItemUI): string {\n return item.item.label;\n }\n\n /**\n * Removes null and undefined items from the timeline collection.\n */\n protected removeNullItems(): void {\n if (this.items) {\n for (let i = 0; i < this.items.length; i++) {\n if (!this.items[i]) {\n this.items.splice(i, 1);\n i--;\n }\n }\n }\n }\n\n /**\n * Sorts the timeline items chronologically by their dates in ascending order.\n * Items with invalid or missing dates are treated as equal during comparison.\n */\n protected sortItems(): void {\n if (!this.items?.length) {\n return;\n }\n\n this.items = this.items\n .filter(a => this.areValidDates(a?.date))\n .sort(this.compareTimebarDates);\n }\n\n protected groupOverlappingLabels(): void {\n if (!this.isGroupOverlappingLabelsGenerated || !this.container || !this.itemsUI) {\n return;\n }\n\n this.clearGrouping();\n\n const containerWidth = this.container.nativeElement.clientWidth;\n const groupingThreshold = (this.maxStepWidth * 100) / containerWidth;\n\n let currentGroup = {\n startIndex: 0,\n items: [] as EuiTimebarItemUI[],\n };\n\n for (let i = 0; i < this.itemsUI.length; i++) {\n const currentItem = this.itemsUI[i];\n const previousItem = i > 0 ? this.itemsUI[i - 1] : null;\n\n if (!previousItem) {\n currentGroup.items.push(currentItem);\n continue;\n }\n\n const distance = Math.abs(currentItem.perc - previousItem.perc);\n\n if (distance <= groupingThreshold) {\n currentGroup.items.push(currentItem);\n } else {\n this.processGroup(currentGroup);\n currentGroup = {\n startIndex: i,\n items: [currentItem],\n };\n }\n }\n\n // Process the last group\n if (currentGroup.items.length > 0) {\n this.processGroup(currentGroup);\n }\n\n this.isSomeStepsAreGrouped = this.itemsUI.some(item => item.isGrouped);\n this.cd.detectChanges();\n }\n\n protected clearGrouping(): void {\n this.isSomeStepsAreGrouped = false;\n if (this.itemsUI) {\n for (const item of this.itemsUI) {\n delete item.isGrouped;\n delete item.groupIndex;\n delete item.groupLabel;\n delete item.groupEndDate;\n }\n }\n this.extraTimelineLabelSpace = 21;\n }\n\n /**\n * @deprecated it's not used anymore\n */\n protected calculateExtraTimelineLabelSpace(): void {\n if (this.itemsUI) {\n let maxLabelLength = 0;\n this.itemsUI\n .filter(i => i.item?.label)\n .forEach((i) => {\n maxLabelLength = Math.max(maxLabelLength, i.item.label.length);\n });\n\n if (maxLabelLength > 56) {\n // 56px = 4rem margin of the timeline itself.\n this.extraTimelineLabelSpace = maxLabelLength + 28; // 28px = 2rem = 1 line of text in height + margins\n }\n }\n }\n\n /**\n * Calculates the percentage position of a date within a given date range.\n *\n * @param date - The target date to calculate the position for\n * @param startDate - The beginning of the date range\n * @param endDate - The end of the date range\n * @param compensateForRange - When true, adjusts out-of-range values to maintain visualization constraints\n * @param alwaysInRange - When true, clamps the percentage to the 0-100 range\n * @returns The calculated percentage (0-100), or adjusted values (-3 or 103) if compensating for out-of-range dates\n *\n * @example\n * // Basic usage within range\n * calculatePercentage(new Date('2024-02-15'), new Date('2024-01-01'), new Date('2024-12-31'))\n *\n * // With range compensation\n * calculatePercentage(new Date('2025-01-01'), new Date('2024-01-01'), new Date('2024-12-31'), true)\n */\n protected calculatePercentage(date: Date, startDate: Date, endDate: Date, compensateForRange = false, alwaysInRange = this.isCurrentDateMarkerAlwaysInRange): number {\n if (!this.areValidDates(date, startDate, endDate)) {\n return 0;\n }\n const percentage = this.calculateBasePercentage(date, startDate, endDate);\n\n return compensateForRange\n ? this.adjustPercentageForRange(percentage, alwaysInRange)\n : percentage;\n }\n\n private processGroup(group: { startIndex: number; items: EuiTimebarItemUI[] }): void {\n if (group.items.length <= 1) {\n return;\n }\n\n const firstItem = group.items[0];\n const lastItem = group.items[group.items.length - 1];\n\n // Update the first item in the group\n firstItem.groupEndDate = lastItem.item.date;\n firstItem.stepTypeClass = lastItem.item.stepType;\n\n const groupLabels = this.generateGroupLabels(group);\n firstItem.groupLabel = groupLabels.join(', ');\n firstItem.groupIndex = group.startIndex + 1;\n\n // Mark remaining items as grouped\n for (let i = 1; i < group.items.length; i++) {\n const item = group.items[i];\n item.isGrouped = true;\n item.groupIndex = group.startIndex + i + 1;\n }\n }\n\n private generateGroupLabels(group: { startIndex: number; items: EuiTimebarItemUI[] }): string[] {\n return group.items.map((_, index) =>\n (group.startIndex + index + 1).toString(),\n );\n }\n\n /**\n * Verifies that all required dates are valid Date objects.\n *\n * @param dates - The dates to validate\n * @returns True if all dates are valid, otherwise false\n */\n private areValidDates(...dates: Date[]): boolean {\n return dates.every(date => date instanceof Date);\n }\n\n /**\n * Calculates the raw percentage position of a date within the range.\n *\n * @param date - The target date to calculate the position for\n * @param startDate - The beginning of the date range\n * @param endDate - The end of the date range\n *\n * @returns The calculated percentage (0-100) position on the range\n */\n private calculateBasePercentage(date: Date, startDate: Date, endDate: Date): number {\n const timespan = endDate.getTime() - startDate.getTime();\n const position = date.getTime() - startDate.getTime();\n return (position / timespan) * 100;\n }\n\n /**\n * Handles date positions that fall outside the specified range by applying boundary adjustments.\n *\n * For dates beyond the range boundaries, this method adjusts their position values\n * to maintain consistent TimeBar visualization. When isCurrentDateMarkerAlwaysInRange\n * is enabled, positions are clamped to the boundaries (0-100). Otherwise, they extend\n * slightly beyond (-3 or 103) to indicate out-of-range status.\n *\n * @param percentage - The calculated percentage position\n * @param alwaysInRange - When true, clamps the percentage to the 0-100 range\n *\n * @returns The adjusted percentage value\n */\n private adjustPercentageForRange(percentage: number, alwaysInRange: boolean): number {\n if (percentage > 100) {\n return alwaysInRange ? 100 : 103;\n }\n\n if (percentage <= 0) {\n return alwaysInRange ? 0 : -3;\n }\n\n return percentage;\n }\n\n /**\n * Compares two timeline items by their dates for sorting.\n *\n * @param firstItem - The first item to compare\n * @param secondItem - The second item to compare\n * @returns Negative if first date is earlier, positive if later, zero if equal\n */\n private compareTimebarDates(firstItem: EuiTimebarItem, secondItem: EuiTimebarItem): number {\n return firstItem.date.getTime() - secondItem.date.getTime();\n }\n}\n\n/**\n * @description\n * Angular module that provides the EuiTimebarComponent.\n *\n * @deprecated Use {@link EuiTimebarComponent} directly instead as it is now a standalone component.\n *\n * @example\n * // Legacy usage (deprecated)\n * import { EuiTimebarModule } from '@eui/components/eui-timebar';\n *\n * @NgModule({\n * imports: [\n * EuiTimebarModule\n * ]\n * })\n * export class YourFeatureModule {}\n */\n@NgModule({\n imports: [EuiTimebarComponent],\n exports: [EuiTimebarComponent],\n})\nexport class EuiTimebarModule {}\n","<div class=\"row eui-u-flex\" #container>\n @if(startLabel) {\n <div class=\"col-2 eui-timebar__start-label\">\n {{ startLabel }}\n </div>\n }\n <div class=\"{{timebarColumnClass}} {{ 'col-' + ((startLabel ? -2 : 0) + (endLabel ? -2 : 0) + 12) }}\">\n <div class=\"eui-timebar\" [style.marginBottom.px]=\"extraTimelineLabelSpace\" attr.data-e2e=\"{{ e2eAttr }}\">\n @if(isShowCurrentDateMarker) {\n <div\n class=\"eui-timebar__current-progress\"\n [style.width.%]=\"currentPerc >= 100 ? 100 : currentPerc\"></div>\n }\n @if(markedDate) {\n <div class=\"eui-timebar__current-progress\" [style.width.%]=\"markedPerc >= 100 ? 100 : markedPerc\"></div>\n }\n\n @for (item of itemsUI; let i = $index; track i) {\n @if(!item.isGrouped) {\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n @if(!isMobile) {\n <div class=\"eui-timebar__step-date-item\" [class.eui-timebar__step-date-item--with-end-date]=\"item.groupEndDate\">\n @if(item.groupEndDate) {\n <span\n class=\"eui-timebar__grouped__step {{\n item.stepTypeClass ? 'eui-timebar__step--' + item.stepTypeClass : ''}}\">\n {{ item.groupEndDate | date: dateFormat: null: (locale.getState() | async).id }}\n </span>\n }\n <span\n class=\"{{ item.tooltipColor ? 'eui-timebar__step--' + item.tooltipColor : '' }}\"\n [class.eui-timebar__grouped__step]=\"item.groupEndDate\">\n {{ item.item.date | date: dateFormat: null: (locale.getState() | async).id }}\n </span>\n </div>\n }\n @if(!isShowLegendGenerated) {\n <div [style.left.%]=\"!isMobile ? item.perc : null\" class=\"eui-timebar__step-label\">\n @if(!item.groupLabel) {\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n }\n @if(item.groupLabel) {\n <span title=\"{{ item.groupLabel }}\">{{ item.groupLabel }}</span>\n }\n </div>\n }\n @if(isShowLegendGenerated && isShowLegendAsIndexGenerated) {\n <div\n [style.left.%]=\"!isMobile ? item.perc : null\"\n class=\"eui-timebar__step-label\">\n {{ !item.groupLabel ? i + 1 : item.groupLabel }}\n </div>\n }\n </div>\n }\n }\n\n @if(isShowCurrentDateMarker) {\n <div\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"currentPerc\"\n title=\"{{ currentDate | date: dateFormat: null: (locale.getState() | async).id }}\">\n <eui-icon-svg icon=\"location\" set=\"sharp\" size=\"m\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n <div class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"currentPerc\">\n <eui-icon-svg icon=\"ellipse:sharp\" size=\"s\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n }\n @if(markedDate) {\n <div\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"markedPerc\"\n title=\"{{ markedDate | date: dateFormat: null: (locale.getState() | async).id }}\">\n <eui-icon-svg icon=\"location\" set=\"sharp\" size=\"m\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n <div class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"markedPerc\">\n <eui-icon-svg icon=\"ellipse:sharp\" size=\"s\" fillColor=\"danger-100\"></eui-icon-svg>\n </div>\n }\n </div>\n </div>\n @if(endLabel) {\n <div class=\"col-2 eui-timebar__end-label\">\n {{ endLabel }}\n </div>\n }\n</div>\n<div class=\"row eui-u-flex-justify-content-center\">\n <div class=\"{{timebarColumnClass}} {{ 'col-md-' + ((startLabel ? -2 : 0) + (endLabel ? -2 : 0) + 12) }}\">\n @if (isShowLegendGenerated || isSomeStepsAreGrouped) {\n <div class=\"eui-timebar__legend\">\n @for (item of itemsUI; let i = $index; track i){\n @if(isShowLegendGenerated) {\n <div class=\"eui-timebar__legend-item\">\n @if(!isShowLegendAsIndexGenerated) {\n <div class=\"eui-timebar__legend-item-icon\">\n <eui-icon-svg icon=\"ellipse:sharp\" size=\"s\" fillColor=\"{{ item.item.stepType }}\"></eui-icon-svg>\n </div>\n } @else {\n <div class=\"eui-timebar__legend-item-index-wrapper\">\n <eui-badge euiSizeL euiPrimary>{{ i + 1 }}</eui-badge>\n </div>\n }\n <div class=\"eui-timebar__legend-item-label\">\n @if(isMobile) {\n <strong>{{ item.item.date | date: dateFormat: null: (locale.getState() | async).id }}</strong> -\n }\n {{ item.item.label }}\n </div>\n </div>\n }\n @if(!isShowLegendGenerated && (item.groupLabel || item.isGrouped)) {\n <div class=\"eui-timebar__legend-item\">\n <div class=\"eui-timebar__legend-item-index-wrapper\">\n <eui-badge euiSizeL euiPrimary>{{ item.groupIndex }}</eui-badge>\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <strong>{{ item.item.date | date: dateFormat: null: (locale.getState() | async).id }}</strong> - {{ item.item.label }}\n </div>\n </div>\n }\n }\n </div>\n }\n </div>\n</div>\n","/**\n * Represents a single item in the TimeBar component.\n * Used to define the data points that will be displayed on the timeline.\n */\n// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging\nexport interface EuiTimebarItem {\n /**\n * The date to be displayed on the timeline.\n * Used to calculate the item's position in chronological order.\n */\n date: Date;\n\n /**\n * The text label that appears below the timeline marker.\n * Can be a string, a Date or a formatted number value.\n */\n label: string;\n\n /**\n * Optional visual style indicator for the timeline marker.\n * Supported values: 'info', 'success', 'warning', 'danger'\n */\n stepType?: 'info' | 'success' | 'warning' | 'danger' | string;\n}\n\n/**\n * @deprecated use the {@link EuiTimebarItem} interface instead.\n */\n// TODO: v17 remove this class - unnecessary\n// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging\nexport class EuiTimebarItem implements EuiTimebarItem {\n date: Date;\n label: string;\n stepType?: string;\n\n constructor(values = {}) {\n Object.assign(this, values);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -48,10 +48,10 @@ class EuiTimelineComponent {
|
|
48
48
|
getCssClasses() {
|
49
49
|
return ['eui-timeline', this.isLeftAligned ? 'eui-timeline--left-aligned' : ''].join(' ').trim();
|
50
50
|
}
|
51
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1
|
52
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.1
|
51
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiTimelineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
52
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.1", type: EuiTimelineComponent, isStandalone: true, selector: "eui-timeline", inputs: { e2eAttr: "e2eAttr", isLeftAligned: ["isLeftAligned", "isLeftAligned", booleanAttribute] }, host: { properties: { "class": "this.cssClasses", "attr.data-e2e": "this.e2eAttr" } }, ngImport: i0, template: '<ng-content/>', isInline: true, styles: [".eui-19 :host.eui-timeline{display:flex;flex-direction:column;margin:0;padding:0;position:relative;width:100%}.eui-19 :host.eui-timeline.eui-timeline--left-aligned ::ng-deep .eui-timeline-item .eui-timeline-item__icon.eui-timeline-item__icon--group{margin:2px calc(var(--eui-s-xl) + 2px)}.eui-19 :host.eui-timeline.eui-timeline--left-aligned ::ng-deep .eui-timeline-item .eui-timeline-item__icon:after{left:calc(1 * var(--eui-s-m) + 10px)!important}.eui-19 :host.eui-timeline.eui-timeline--left-aligned ::ng-deep .eui-timeline-item .eui-timeline-item__content{padding-bottom:var(--eui-s-s)}.eui-19 :host.eui-timeline.eui-timeline--left-aligned ::ng-deep .eui-timeline-item .eui-timeline-item__content .eui-timeline-item__date{color:var(--eui-c-neutral);margin-top:var(--eui-s-xs);position:relative;font:var(--eui-f-m-bold)}\n"] }); }
|
53
53
|
}
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiTimelineComponent, decorators: [{
|
55
55
|
type: Component,
|
56
56
|
args: [{ selector: 'eui-timeline', template: '<ng-content/>', standalone: true, styles: [".eui-19 :host.eui-timeline{display:flex;flex-direction:column;margin:0;padding:0;position:relative;width:100%}.eui-19 :host.eui-timeline.eui-timeline--left-aligned ::ng-deep .eui-timeline-item .eui-timeline-item__icon.eui-timeline-item__icon--group{margin:2px calc(var(--eui-s-xl) + 2px)}.eui-19 :host.eui-timeline.eui-timeline--left-aligned ::ng-deep .eui-timeline-item .eui-timeline-item__icon:after{left:calc(1 * var(--eui-s-m) + 10px)!important}.eui-19 :host.eui-timeline.eui-timeline--left-aligned ::ng-deep .eui-timeline-item .eui-timeline-item__content{padding-bottom:var(--eui-s-s)}.eui-19 :host.eui-timeline.eui-timeline--left-aligned ::ng-deep .eui-timeline-item .eui-timeline-item__content .eui-timeline-item__date{color:var(--eui-c-neutral);margin-top:var(--eui-s-xs);position:relative;font:var(--eui-f-m-bold)}\n"] }]
|
57
57
|
}], propDecorators: { cssClasses: [{
|
@@ -151,10 +151,10 @@ class EuiTimelineItemComponent {
|
|
151
151
|
.join(' ')
|
152
152
|
.trim();
|
153
153
|
}
|
154
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1
|
155
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1
|
154
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiTimelineItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
155
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: EuiTimelineItemComponent, isStandalone: true, selector: "eui-timeline-item", inputs: { e2eAttr: "e2eAttr", label: "label", subLabel: "subLabel", date: "date", dateStyleClass: "dateStyleClass", time: "time", timeStyleClass: "timeStyleClass", isLeftAligned: ["isLeftAligned", "isLeftAligned", booleanAttribute], isGroup: ["isGroup", "isGroup", booleanAttribute] }, host: { properties: { "class": "this.cssClasses", "attr.data-e2e": "this.e2eAttr" } }, hostDirectives: [{ directive: i1.BaseStatesDirective, inputs: ["euiSecondary", "euiSecondary", "euiPrimary", "euiPrimary", "euiSuccess", "euiSuccess", "euiInfo", "euiInfo", "euiWarning", "euiWarning", "euiDanger", "euiDanger", "euiAccent", "euiAccent", "euiVariant", "euiVariant"] }], ngImport: i0, template: "@if (!isLeftAligned) {\n <div class=\"eui-timeline-item__left-content\">\n @if (date) {\n <div class=\"eui-timeline-item__date {{ dateStyleClass }}\">{{ date }}</div>\n }\n @if (time) {\n <div class=\"eui-timeline-item__time {{ timeStyleClass }}\">{{ time }}</div>\n }\n </div>\n}\n<div class=\"eui-timeline-item__icon\" [class.eui-timeline-item__icon--group]=\"isGroup\"></div>\n<div class=\"eui-timeline-item__content\">\n <ng-container #customContent>\n <ng-content></ng-content>\n </ng-container>\n\n @if (customContent?.childNodes.length === 0) {\n <div class=\"eui-timeline-item__title\">{{ label }}</div>\n <div class=\"eui-timeline-item__subtitle\">{{ subLabel }}</div>\n @if (isLeftAligned && date) {\n <div class=\"eui-timeline-item__date {{ dateStyleClass }}\">{{ date }}</div>\n }\n @if (isLeftAligned && time) {\n <div class=\"eui-timeline-item__time {{ timeStyleClass }}\">{{ time }}</div>\n }\n }\n</div>\n", styles: [".eui-19 :host.eui-timeline-item{display:flex;flex-direction:row;list-style:none;margin-bottom:var(--eui-s-m);position:relative;width:100%}.eui-19 :host.eui-timeline-item .eui-timeline-item__left-content{display:list-item;min-width:calc(11 * var(--eui-s-m));position:relative;text-align:right;word-break:break-all}.eui-19 :host.eui-timeline-item .eui-timeline-item__icon:not(.eui-timeline-item__icon--group){align-items:center;background-color:var(--eui-c-white);border-color:var(--eui-c-accent);border-radius:var(--eui-br-max);border-style:solid;border-width:3px;display:flex;flex-direction:column;max-height:calc(var(--eui-s-m) + var(--eui-s-2xs));margin:0 var(--eui-s-m);min-width:calc(var(--eui-s-m) + var(--eui-s-2xs));z-index:2}.eui-19 :host.eui-timeline-item .eui-timeline-item__icon:not(.eui-timeline-item__icon--group):after{background-color:var(--eui-c-neutral-lighter);content:\"\";height:calc(100% - var(--eui-s-2xs));position:absolute;top:calc(var(--eui-s-m) + var(--eui-s-2xs));width:2px;z-index:1}.eui-19 :host.eui-timeline-item .eui-timeline-item__icon.eui-timeline-item__icon--group{align-items:center;border-right:var(--eui-bw-s) dashed var(--eui-c-neutral-lighter);display:flex;flex-direction:column;height:auto;margin:2px calc(var(--eui-s-xl) + 1px)}.eui-19 :host.eui-timeline-item .eui-timeline-item__content{position:relative;top:calc(-1 * var(--eui-s-2xs));width:100%}.eui-19 :host.eui-timeline-item .eui-timeline-item__content .eui-timeline-item__title{color:var(--eui-c-neutral);font:var(--eui-f-l)}.eui-19 :host.eui-timeline-item .eui-timeline-item__content .eui-timeline-item__subtitle{color:var(--eui-c-neutral-light)}.eui-19 :host.eui-timeline-item .eui-timeline-item__date{color:var(--eui-c-neutral);font:var(--eui-f-m-bold)}.eui-19 :host.eui-timeline-item .eui-timeline-item__time{color:var(--eui-c-neutral-light)}.eui-19 :host.eui-timeline-item:last-child .eui-timeline-item__icon:after{height:0}.eui-19 :host.eui-timeline-item.eui-timeline-item--primary .eui-timeline-item__icon:not(.eui-timeline-item__icon--group){border-color:var(--eui-c-primary)}.eui-19 :host.eui-timeline-item.eui-timeline-item--primary .eui-timeline-item__content,.eui-19 :host.eui-timeline-item.eui-timeline-item--primary .eui-timeline-item__content .eui-timeline-item__title{color:var(--eui-c-primary)}.eui-19 :host.eui-timeline-item.eui-timeline-item--secondary .eui-timeline-item__icon:not(.eui-timeline-item__icon--group){border-color:var(--eui-c-neutral-lightest)}.eui-19 :host.eui-timeline-item.eui-timeline-item--secondary .eui-timeline-item__content,.eui-19 :host.eui-timeline-item.eui-timeline-item--secondary .eui-timeline-item__content .eui-timeline-item__title{color:var(--eui-c-neutral-light)}.eui-19 :host.eui-timeline-item.eui-timeline-item--info .eui-timeline-item__icon:not(.eui-timeline-item__icon--group){border-color:var(--eui-c-info)}.eui-19 :host.eui-timeline-item.eui-timeline-item--info .eui-timeline-item__content,.eui-19 :host.eui-timeline-item.eui-timeline-item--info .eui-timeline-item__content .eui-timeline-item__title{color:var(--eui-c-info-dark)}.eui-19 :host.eui-timeline-item.eui-timeline-item--warning .eui-timeline-item__icon:not(.eui-timeline-item__icon--group){border-color:var(--eui-c-warning)}.eui-19 :host.eui-timeline-item.eui-timeline-item--warning .eui-timeline-item__content,.eui-19 :host.eui-timeline-item.eui-timeline-item--warning .eui-timeline-item__content .eui-timeline-item__title{color:var(--eui-c-warning-darker)}.eui-19 :host.eui-timeline-item.eui-timeline-item--success .eui-timeline-item__icon:not(.eui-timeline-item__icon--group){border-color:var(--eui-c-success-dark)}.eui-19 :host.eui-timeline-item.eui-timeline-item--success .eui-timeline-item__content,.eui-19 :host.eui-timeline-item.eui-timeline-item--success .eui-timeline-item__content .eui-timeline-item__title{color:var(--eui-c-success-dark)}.eui-19 :host.eui-timeline-item.eui-timeline-item--danger .eui-timeline-item__icon:not(.eui-timeline-item__icon--group){border-color:var(--eui-c-danger-dark)}.eui-19 :host.eui-timeline-item.eui-timeline-item--danger .eui-timeline-item__content,.eui-19 :host.eui-timeline-item.eui-timeline-item--danger .eui-timeline-item__content .eui-timeline-item__title{color:var(--eui-c-danger-dark)}.eui-19 :host.eui-timeline-item.eui-timeline-item--accent .eui-timeline-item__icon:not(.eui-timeline-item__icon--group){border-color:var(--eui-c-accent)}.eui-19 :host.eui-timeline-item.eui-timeline-item--accent .eui-timeline-item__content,.eui-19 :host.eui-timeline-item.eui-timeline-item--accent .eui-timeline-item__content .eui-timeline-item__title{color:var(--eui-c-accent-dark)}.eui-19 :host.eui-timeline-item.eui-timeline-item--more{margin-bottom:0}.eui-19 :host.eui-timeline-item.eui-timeline-item--more .eui-timeline-item__content{padding-bottom:var(--eui-s-m)}\n"] }); }
|
156
156
|
}
|
157
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1
|
157
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiTimelineItemComponent, decorators: [{
|
158
158
|
type: Component,
|
159
159
|
args: [{ selector: 'eui-timeline-item', standalone: true, hostDirectives: [
|
160
160
|
{
|
@@ -202,11 +202,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
|
|
202
202
|
* })
|
203
203
|
*/
|
204
204
|
class EuiTimelineModule {
|
205
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1
|
206
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1
|
207
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1
|
205
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiTimelineModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
206
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: EuiTimelineModule, imports: [EuiTimelineComponent, EuiTimelineItemComponent], exports: [EuiTimelineComponent, EuiTimelineItemComponent] }); }
|
207
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiTimelineModule }); }
|
208
208
|
}
|
209
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1
|
209
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiTimelineModule, decorators: [{
|
210
210
|
type: NgModule,
|
211
211
|
args: [{
|
212
212
|
imports: [EuiTimelineComponent, EuiTimelineItemComponent],
|
@@ -370,10 +370,10 @@ class EuiTimepickerComponent {
|
|
370
370
|
updateInputAriaRequiredAttribute(control) {
|
371
371
|
this.hasAriaRequiredAttribute = control?.control?.hasValidator(Validators.required);
|
372
372
|
}
|
373
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1
|
374
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.1.7", type: EuiTimepickerComponent, isStandalone: false, selector: "eui-timepicker", inputs: { e2eAttr: "e2eAttr", inputId: "inputId", timeMask: "timeMask", placeholder: "placeholder", stepHours: "stepHours", stepMinutes: "stepMinutes", stepSeconds: "stepSeconds", iconSize: "iconSize", 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]=\"iconSize\"\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]=\"iconSize\"\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]=\"iconSize\"\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]=\"iconSize\"\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]=\"iconSize\"\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]=\"iconSize\"\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: [":root{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-lightest)}html.eui-t-dark{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-light)}.eui-19 .eui-timepicker{align-items:center;display:flex}.eui-19 .eui-timepicker--centered{justify-content:center}.eui-19 .eui-timepicker__input-container{width:calc(4 * var(--eui-s-m))}.eui-19 .eui-timepicker__input{text-align:center;width:100%}.eui-19 .eui-timepicker__input--one-field{width:calc(6 * var(--eui-s-m))!important;margin-bottom:var(--eui-s-2xs)}.eui-19 .eui-timepicker__spacer{text-align:center;width:var(--eui-s-m)}.eui-19 .eui-timepicker__chevron{display:flex;justify-content:center;padding:var(--eui-s-xs)}.eui-19 .eui-timepicker__chevron .eui-icon-svg:not(.time-control--disabled):hover{cursor:pointer;color:var(--eui-c-primary)}.eui-19 .eui-timepicker__chevron .eui-icon-svg.time-control--disabled{background-image:none;box-shadow:none;cursor:not-allowed!important;opacity:var(--eui-o-50)}.eui-19 input[type=number]::-webkit-inner-spin-button,.eui-19 input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.eui-19 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 }); }
|
373
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiTimepickerComponent, deps: [{ token: DYNAMIC_COMPONENT_CONFIG, optional: true }, { token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
374
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.2.1", type: EuiTimepickerComponent, isStandalone: false, selector: "eui-timepicker", inputs: { e2eAttr: "e2eAttr", inputId: "inputId", timeMask: "timeMask", placeholder: "placeholder", stepHours: "stepHours", stepMinutes: "stepMinutes", stepSeconds: "stepSeconds", iconSize: "iconSize", 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]=\"iconSize\"\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]=\"iconSize\"\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]=\"iconSize\"\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]=\"iconSize\"\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]=\"iconSize\"\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]=\"iconSize\"\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: [":root{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-lightest)}html.eui-t-dark{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-light)}.eui-19 .eui-timepicker{align-items:center;display:flex}.eui-19 .eui-timepicker--centered{justify-content:center}.eui-19 .eui-timepicker__input-container{width:calc(4 * var(--eui-s-m))}.eui-19 .eui-timepicker__input{text-align:center;width:100%}.eui-19 .eui-timepicker__input--one-field{width:calc(6 * var(--eui-s-m))!important;margin-bottom:var(--eui-s-2xs)}.eui-19 .eui-timepicker__spacer{text-align:center;width:var(--eui-s-m)}.eui-19 .eui-timepicker__chevron{display:flex;justify-content:center;padding:var(--eui-s-xs)}.eui-19 .eui-timepicker__chevron .eui-icon-svg:not(.time-control--disabled):hover{cursor:pointer;color:var(--eui-c-primary)}.eui-19 .eui-timepicker__chevron .eui-icon-svg.time-control--disabled{background-image:none;box-shadow:none;cursor:not-allowed!important;opacity:var(--eui-o-50)}.eui-19 input[type=number]::-webkit-inner-spin-button,.eui-19 input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.eui-19 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 }); }
|
375
375
|
}
|
376
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1
|
376
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiTimepickerComponent, decorators: [{
|
377
377
|
type: Component,
|
378
378
|
args: [{ selector: 'eui-timepicker', encapsulation: ViewEncapsulation.None, standalone: false, 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]=\"iconSize\"\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]=\"iconSize\"\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]=\"iconSize\"\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]=\"iconSize\"\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]=\"iconSize\"\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]=\"iconSize\"\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: [":root{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-lightest)}html.eui-t-dark{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-light)}.eui-19 .eui-timepicker{align-items:center;display:flex}.eui-19 .eui-timepicker--centered{justify-content:center}.eui-19 .eui-timepicker__input-container{width:calc(4 * var(--eui-s-m))}.eui-19 .eui-timepicker__input{text-align:center;width:100%}.eui-19 .eui-timepicker__input--one-field{width:calc(6 * var(--eui-s-m))!important;margin-bottom:var(--eui-s-2xs)}.eui-19 .eui-timepicker__spacer{text-align:center;width:var(--eui-s-m)}.eui-19 .eui-timepicker__chevron{display:flex;justify-content:center;padding:var(--eui-s-xs)}.eui-19 .eui-timepicker__chevron .eui-icon-svg:not(.time-control--disabled):hover{cursor:pointer;color:var(--eui-c-primary)}.eui-19 .eui-timepicker__chevron .eui-icon-svg.time-control--disabled{background-image:none;box-shadow:none;cursor:not-allowed!important;opacity:var(--eui-o-50)}.eui-19 input[type=number]::-webkit-inner-spin-button,.eui-19 input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.eui-19 input[type=number]{-moz-appearance:textfield}\n"] }]
|
379
379
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
@@ -413,22 +413,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.7", ngImpor
|
|
413
413
|
}] } });
|
414
414
|
|
415
415
|
class EuiTimepickerModule {
|
416
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1
|
417
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1
|
416
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiTimepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
417
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: EuiTimepickerModule, declarations: [EuiTimepickerComponent], imports: [CommonModule,
|
418
418
|
FormsModule,
|
419
419
|
ReactiveFormsModule,
|
420
420
|
EuiInputNumberModule,
|
421
421
|
EuiInputTextModule,
|
422
422
|
EuiIconModule,
|
423
423
|
NgxMaskDirective], exports: [EuiTimepickerComponent] }); }
|
424
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1
|
424
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiTimepickerModule, providers: [provideNgxMask(), provideEnvironmentNgxMask()], imports: [CommonModule,
|
425
425
|
FormsModule,
|
426
426
|
ReactiveFormsModule,
|
427
427
|
EuiInputNumberModule,
|
428
428
|
EuiInputTextModule,
|
429
429
|
EuiIconModule] }); }
|
430
430
|
}
|
431
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1
|
431
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiTimepickerModule, decorators: [{
|
432
432
|
type: NgModule,
|
433
433
|
args: [{
|
434
434
|
imports: [
|