@coreui/angular-pro 5.2.0-next.0 → 5.2.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/README.md +3 -1
- package/esm2022/lib/accordion/accordion/accordion.component.mjs +3 -3
- package/esm2022/lib/accordion/accordion-button/accordion-button.directive.mjs +3 -3
- package/esm2022/lib/accordion/accordion-item/accordion-item.component.mjs +3 -3
- package/esm2022/lib/accordion/accordion.module.mjs +4 -4
- package/esm2022/lib/accordion/accordion.service.mjs +3 -3
- package/esm2022/lib/alert/alert-heading.directive.mjs +3 -3
- package/esm2022/lib/alert/alert-link.directive.mjs +3 -3
- package/esm2022/lib/alert/alert.component.mjs +3 -3
- package/esm2022/lib/alert/alert.module.mjs +4 -4
- package/esm2022/lib/avatar/avatar.component.mjs +3 -3
- package/esm2022/lib/avatar/avatar.module.mjs +4 -4
- package/esm2022/lib/backdrop/backdrop.service.mjs +3 -3
- package/esm2022/lib/badge/badge.component.mjs +3 -3
- package/esm2022/lib/badge/badge.module.mjs +4 -4
- package/esm2022/lib/breadcrumb/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.mjs +3 -3
- package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.mjs +3 -3
- package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs +3 -3
- package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +4 -4
- package/esm2022/lib/button/button-close.directive.mjs +3 -3
- package/esm2022/lib/button/button.directive.mjs +3 -3
- package/esm2022/lib/button/button.module.mjs +4 -4
- package/esm2022/lib/button-group/button-group/button-group.component.mjs +3 -3
- package/esm2022/lib/button-group/button-group.module.mjs +4 -4
- package/esm2022/lib/button-group/button-toolbar/button-toolbar.component.mjs +3 -3
- package/esm2022/lib/calendar/calendar/calendar-class-view.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar/calendar.component.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-class-day.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-class-month.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-class-row.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-class-year.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-day-title.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-day.directive.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-day.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-month.component.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-row.directive.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-weekday.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-navigation/calendar-navigation.component.mjs +3 -3
- package/esm2022/lib/calendar/calendar.module.mjs +4 -4
- package/esm2022/lib/calendar/calendar.service.mjs +3 -3
- package/esm2022/lib/callout/callout.component.mjs +3 -3
- package/esm2022/lib/callout/callout.module.mjs +4 -4
- package/esm2022/lib/card/card-body.component.mjs +3 -3
- package/esm2022/lib/card/card-footer.component.mjs +3 -3
- package/esm2022/lib/card/card-group.component.mjs +3 -3
- package/esm2022/lib/card/card-header-actions.component.mjs +3 -3
- package/esm2022/lib/card/card-header.component.mjs +3 -3
- package/esm2022/lib/card/card-img-overlay/card-img-overlay.component.mjs +3 -3
- package/esm2022/lib/card/card-img.directive.mjs +3 -3
- package/esm2022/lib/card/card-link.directive.mjs +3 -3
- package/esm2022/lib/card/card-subtitle.directive.mjs +3 -3
- package/esm2022/lib/card/card-text.directive.mjs +3 -3
- package/esm2022/lib/card/card-title.directive.mjs +3 -3
- package/esm2022/lib/card/card.component.mjs +3 -3
- package/esm2022/lib/card/card.module.mjs +4 -4
- package/esm2022/lib/carousel/carousel/carousel.component.mjs +3 -3
- package/esm2022/lib/carousel/carousel-caption/carousel-caption.component.mjs +3 -3
- package/esm2022/lib/carousel/carousel-control/carousel-control.component.mjs +3 -3
- package/esm2022/lib/carousel/carousel-indicators/carousel-indicators.component.mjs +3 -3
- package/esm2022/lib/carousel/carousel-inner/carousel-inner.component.mjs +3 -3
- package/esm2022/lib/carousel/carousel-item/carousel-item.component.mjs +3 -3
- package/esm2022/lib/carousel/carousel-state.mjs +3 -3
- package/esm2022/lib/carousel/carousel.config.mjs +3 -3
- package/esm2022/lib/carousel/carousel.module.mjs +4 -4
- package/esm2022/lib/carousel/carousel.service.mjs +3 -3
- package/esm2022/lib/collapse/collapse.directive.mjs +3 -3
- package/esm2022/lib/collapse/collapse.module.mjs +4 -4
- package/esm2022/lib/date-picker/date-picker.component.mjs +3 -3
- package/esm2022/lib/date-picker/date-picker.module.mjs +4 -4
- package/esm2022/lib/date-range-picker/date-range-picker/custom-range-key.pipe.mjs +3 -3
- package/esm2022/lib/date-range-picker/date-range-picker/date-range-picker.component.mjs +3 -3
- package/esm2022/lib/date-range-picker/date-range-picker.module.mjs +4 -4
- package/esm2022/lib/dropdown/dropdown/dropdown.component.mjs +6 -6
- package/esm2022/lib/dropdown/dropdown-close/dropdown-close.directive.mjs +3 -3
- package/esm2022/lib/dropdown/dropdown-divider/dropdown-divider.directive.mjs +3 -3
- package/esm2022/lib/dropdown/dropdown-header/dropdown-header.directive.mjs +3 -3
- package/esm2022/lib/dropdown/dropdown-item/dropdown-item-plain.directive.mjs +3 -3
- package/esm2022/lib/dropdown/dropdown-item/dropdown-item.directive.mjs +3 -3
- package/esm2022/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs +3 -3
- package/esm2022/lib/dropdown/dropdown.module.mjs +4 -4
- package/esm2022/lib/dropdown/dropdown.service.mjs +3 -3
- package/esm2022/lib/element-cover/element-cover.component.mjs +3 -3
- package/esm2022/lib/element-cover/element-cover.module.mjs +4 -4
- package/esm2022/lib/footer/footer.component.mjs +3 -3
- package/esm2022/lib/footer/footer.module.mjs +4 -4
- package/esm2022/lib/form/form/form.directive.mjs +3 -3
- package/esm2022/lib/form/form-check/form-check-input.directive.mjs +3 -3
- package/esm2022/lib/form/form-check/form-check-label.directive.mjs +3 -3
- package/esm2022/lib/form/form-check/form-check.component.mjs +3 -3
- package/esm2022/lib/form/form-control/form-control.directive.mjs +3 -3
- package/esm2022/lib/form/form-feedback/form-feedback.component.mjs +3 -3
- package/esm2022/lib/form/form-floating/form-floating.directive.mjs +3 -3
- package/esm2022/lib/form/form-label/form-label.directive.mjs +3 -3
- package/esm2022/lib/form/form-select/form-select.directive.mjs +3 -3
- package/esm2022/lib/form/form-text/form-text.directive.mjs +3 -3
- package/esm2022/lib/form/form.module.mjs +4 -4
- package/esm2022/lib/form/input-group/input-group.component.mjs +3 -3
- package/esm2022/lib/form/input-group-text/input-group-text.directive.mjs +3 -3
- package/esm2022/lib/grid/col.component.mjs +3 -3
- package/esm2022/lib/grid/col.directive.mjs +3 -3
- package/esm2022/lib/grid/container.component.mjs +3 -3
- package/esm2022/lib/grid/grid.module.mjs +4 -4
- package/esm2022/lib/grid/gutter.directive.mjs +3 -3
- package/esm2022/lib/grid/row.component.mjs +3 -3
- package/esm2022/lib/grid/row.directive.mjs +3 -3
- package/esm2022/lib/header/header/header.component.mjs +3 -3
- package/esm2022/lib/header/header-brand/header-brand.component.mjs +3 -3
- package/esm2022/lib/header/header-divider/header-divider.component.mjs +3 -3
- package/esm2022/lib/header/header-nav/header-nav.component.mjs +3 -3
- package/esm2022/lib/header/header-text/header-text.component.mjs +3 -3
- package/esm2022/lib/header/header-toggler/header-toggler.directive.mjs +3 -3
- package/esm2022/lib/header/header.module.mjs +4 -4
- package/esm2022/lib/image/img.directive.mjs +3 -3
- package/esm2022/lib/image/img.module.mjs +4 -4
- package/esm2022/lib/list-group/list-group-item.directive.mjs +3 -3
- package/esm2022/lib/list-group/list-group.directive.mjs +3 -3
- package/esm2022/lib/list-group/list-group.module.mjs +4 -4
- package/esm2022/lib/loading-button/loading-button.component.mjs +3 -3
- package/esm2022/lib/loading-button/loading-button.module.mjs +4 -4
- package/esm2022/lib/modal/modal/modal.component.mjs +11 -11
- package/esm2022/lib/modal/modal-body/modal-body.component.mjs +3 -3
- package/esm2022/lib/modal/modal-content/modal-content.component.mjs +3 -3
- package/esm2022/lib/modal/modal-dialog/modal-dialog.component.mjs +3 -3
- package/esm2022/lib/modal/modal-dismiss/modal-toggle.directive.mjs +3 -3
- package/esm2022/lib/modal/modal-footer/modal-footer.component.mjs +3 -3
- package/esm2022/lib/modal/modal-header/modal-header.component.mjs +3 -3
- package/esm2022/lib/modal/modal-title/modal-title.directive.mjs +3 -3
- package/esm2022/lib/modal/modal.module.mjs +4 -4
- package/esm2022/lib/modal/modal.service.mjs +3 -3
- package/esm2022/lib/multi-select/multi-select/multi-select-search.directive.mjs +3 -3
- package/esm2022/lib/multi-select/multi-select/multi-select.component.mjs +91 -68
- package/esm2022/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs +3 -3
- package/esm2022/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.mjs +3 -3
- package/esm2022/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.mjs +3 -3
- package/esm2022/lib/multi-select/multi-select-option/multi-select-option.component.mjs +3 -3
- package/esm2022/lib/multi-select/multi-select-tag/multi-select-tag.component.mjs +3 -3
- package/esm2022/lib/multi-select/multi-select.module.mjs +4 -4
- package/esm2022/lib/multi-select/multi-select.service.mjs +3 -3
- package/esm2022/lib/nav/nav-item.component.mjs +3 -3
- package/esm2022/lib/nav/nav-link.directive.mjs +3 -3
- package/esm2022/lib/nav/nav.component.mjs +3 -3
- package/esm2022/lib/nav/nav.module.mjs +4 -4
- package/esm2022/lib/navbar/navbar-brand/navbar-brand.directive.mjs +3 -3
- package/esm2022/lib/navbar/navbar-nav/navbar-nav.component.mjs +3 -3
- package/esm2022/lib/navbar/navbar-text/navbar-text.component.mjs +3 -3
- package/esm2022/lib/navbar/navbar-toggler/navbar-toggler.directive.mjs +3 -3
- package/esm2022/lib/navbar/navbar.component.mjs +3 -3
- package/esm2022/lib/navbar/navbar.module.mjs +4 -4
- package/esm2022/lib/offcanvas/offcanvas/offcanvas.component.mjs +3 -3
- package/esm2022/lib/offcanvas/offcanvas-body/offcanvas-body.component.mjs +3 -3
- package/esm2022/lib/offcanvas/offcanvas-header/offcanvas-header.component.mjs +3 -3
- package/esm2022/lib/offcanvas/offcanvas-title/offcanvas-title.directive.mjs +3 -3
- package/esm2022/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.mjs +3 -3
- package/esm2022/lib/offcanvas/offcanvas.module.mjs +4 -4
- package/esm2022/lib/offcanvas/offcanvas.service.mjs +3 -3
- package/esm2022/lib/pagination/page-item/page-item.component.mjs +3 -3
- package/esm2022/lib/pagination/page-item/page-item.directive.mjs +3 -3
- package/esm2022/lib/pagination/page-link/page-link.directive.mjs +3 -3
- package/esm2022/lib/pagination/pagination/pagination.component.mjs +3 -3
- package/esm2022/lib/pagination/pagination.module.mjs +4 -4
- package/esm2022/lib/placeholder/placeholder-animation.directive.mjs +3 -3
- package/esm2022/lib/placeholder/placeholder.directive.mjs +3 -3
- package/esm2022/lib/placeholder/placeholder.module.mjs +4 -4
- package/esm2022/lib/popover/popover/popover.component.mjs +3 -3
- package/esm2022/lib/popover/popover.directive.mjs +3 -3
- package/esm2022/lib/popover/popover.module.mjs +4 -4
- package/esm2022/lib/progress/progress-bar.component.mjs +3 -3
- package/esm2022/lib/progress/progress-bar.directive.mjs +3 -3
- package/esm2022/lib/progress/progress-stacked.component.mjs +3 -3
- package/esm2022/lib/progress/progress.component.mjs +3 -3
- package/esm2022/lib/progress/progress.module.mjs +4 -4
- package/esm2022/lib/rating/rating-item-label/rating-item-label.component.mjs +3 -3
- package/esm2022/lib/rating/rating.component.mjs +3 -3
- package/esm2022/lib/rating/rating.module.mjs +4 -4
- package/esm2022/lib/services/class-toggle.service.mjs +3 -3
- package/esm2022/lib/services/color-mode.service.mjs +3 -3
- package/esm2022/lib/services/in-memory-storage.service.mjs +3 -3
- package/esm2022/lib/services/intersection.service.mjs +3 -3
- package/esm2022/lib/services/listeners.service.mjs +3 -3
- package/esm2022/lib/services/local-storage.service.mjs +3 -3
- package/esm2022/lib/shared/element-ref.directive.mjs +3 -3
- package/esm2022/lib/shared/html-attr.directive.mjs +3 -3
- package/esm2022/lib/shared/shared.module.mjs +4 -4
- package/esm2022/lib/shared/template-id.directive.mjs +3 -3
- package/esm2022/lib/shared/theme.directive.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar/sidebar.component.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-footer/sidebar-footer.component.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-header/sidebar-header.component.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-group.service.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +6 -6
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-title.component.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +6 -6
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.service.mjs +6 -6
- package/esm2022/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-toggler/sidebar-toggler.directive.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar.module.mjs +4 -4
- package/esm2022/lib/sidebar/sidebar.service.mjs +3 -3
- package/esm2022/lib/smart-pagination/smart-pagination.component.mjs +5 -5
- package/esm2022/lib/smart-pagination/smart-pagination.module.mjs +4 -4
- package/esm2022/lib/smart-table/smart-table/smart-table.component.mjs +3 -3
- package/esm2022/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.mjs +3 -3
- package/esm2022/lib/smart-table/smart-table-filter/filter-input.directive.mjs +3 -3
- package/esm2022/lib/smart-table/smart-table-filter/smart-table-filter.component.mjs +3 -3
- package/esm2022/lib/smart-table/smart-table-head/smart-table-column-label.pipe.mjs +3 -3
- package/esm2022/lib/smart-table/smart-table-head/smart-table-head.component.mjs +3 -3
- package/esm2022/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.mjs +3 -3
- package/esm2022/lib/smart-table/smart-table.module.mjs +4 -4
- package/esm2022/lib/spinner/spinner.component.mjs +3 -3
- package/esm2022/lib/spinner/spinner.module.mjs +4 -4
- package/esm2022/lib/table/table-active.directive.mjs +3 -3
- package/esm2022/lib/table/table-color.directive.mjs +3 -3
- package/esm2022/lib/table/table.directive.mjs +3 -3
- package/esm2022/lib/table/table.module.mjs +4 -4
- package/esm2022/lib/tabs/tab-content/tab-content.component.mjs +3 -3
- package/esm2022/lib/tabs/tab-content-ref.directive.mjs +3 -3
- package/esm2022/lib/tabs/tab-pane/tab-pane.component.mjs +3 -3
- package/esm2022/lib/tabs/tab.service.mjs +3 -3
- package/esm2022/lib/tabs/tabs.module.mjs +4 -4
- package/esm2022/lib/tabs-2/index.mjs +2 -0
- package/esm2022/lib/tabs-2/public_api.mjs +8 -0
- package/esm2022/lib/tabs-2/tab/tab.directive.mjs +93 -0
- package/esm2022/lib/tabs-2/tab-panel/tab-panel.component.mjs +113 -0
- package/esm2022/lib/tabs-2/tabs-content/tabs-content.component.mjs +19 -0
- package/esm2022/lib/tabs-2/tabs-list/tabs-list.component.mjs +93 -0
- package/esm2022/lib/tabs-2/tabs.component.mjs +37 -0
- package/esm2022/lib/tabs-2/tabs.service.mjs +15 -0
- package/esm2022/lib/tabs-2/tabs2.module.mjs +22 -0
- package/esm2022/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.mjs +6 -6
- package/esm2022/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.mjs +6 -6
- package/esm2022/lib/time-picker/time-picker.component.mjs +3 -3
- package/esm2022/lib/time-picker/time-picker.module.mjs +4 -4
- package/esm2022/lib/toast/toast/toast.component.mjs +3 -3
- package/esm2022/lib/toast/toast-body/toast-body.component.mjs +3 -3
- package/esm2022/lib/toast/toast-close.directive.mjs +3 -3
- package/esm2022/lib/toast/toast-header/toast-header.component.mjs +3 -3
- package/esm2022/lib/toast/toast.module.mjs +4 -4
- package/esm2022/lib/toast/toaster/toaster-host.directive.mjs +3 -3
- package/esm2022/lib/toast/toaster/toaster.component.mjs +3 -3
- package/esm2022/lib/toast/toaster/toaster.service.mjs +3 -3
- package/esm2022/lib/tooltip/tooltip/tooltip.component.mjs +3 -3
- package/esm2022/lib/tooltip/tooltip.directive.mjs +3 -3
- package/esm2022/lib/tooltip/tooltip.module.mjs +4 -4
- package/esm2022/lib/utilities/align.directive.mjs +3 -3
- package/esm2022/lib/utilities/bg-color.directive.mjs +3 -3
- package/esm2022/lib/utilities/border.directive.mjs +3 -3
- package/esm2022/lib/utilities/rounded.directive.mjs +3 -3
- package/esm2022/lib/utilities/shadow-on-scroll.directive.mjs +3 -3
- package/esm2022/lib/utilities/text-bg-color.directive.mjs +3 -3
- package/esm2022/lib/utilities/text-color.directive.mjs +3 -3
- package/esm2022/lib/utilities/utilities.module.mjs +4 -4
- package/esm2022/lib/widget/widget-stat-a/widget-stat-a.component.mjs +3 -3
- package/esm2022/lib/widget/widget-stat-b/widget-stat-b.component.mjs +3 -3
- package/esm2022/lib/widget/widget-stat-c/widget-stat-c.component.mjs +3 -3
- package/esm2022/lib/widget/widget-stat-d/widget-stat-d.component.mjs +3 -3
- package/esm2022/lib/widget/widget-stat-e/widget-stat-e.component.mjs +3 -3
- package/esm2022/lib/widget/widget-stat-f/widget-stat-f.component.mjs +3 -3
- package/esm2022/lib/widget/widget.module.mjs +4 -4
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/coreui-angular-pro.mjs +1291 -908
- package/fesm2022/coreui-angular-pro.mjs.map +1 -1
- package/lib/multi-select/multi-select/multi-select.component.d.ts +4 -3
- package/lib/tabs-2/index.d.ts +1 -0
- package/lib/tabs-2/public_api.d.ts +7 -0
- package/lib/tabs-2/tab/tab.directive.d.ts +43 -0
- package/lib/tabs-2/tab-panel/tab-panel.component.d.ts +64 -0
- package/lib/tabs-2/tabs-content/tabs-content.component.d.ts +5 -0
- package/lib/tabs-2/tabs-list/tabs-list.component.d.ts +35 -0
- package/lib/tabs-2/tabs.component.d.ts +21 -0
- package/lib/tabs-2/tabs.service.d.ts +8 -0
- package/lib/tabs-2/tabs2.module.d.ts +11 -0
- package/package.json +2 -2
- package/public-api.d.ts +1 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { booleanAttribute, computed, DestroyRef, Directive, effect, ElementRef, inject, Input, input, signal, untracked } from '@angular/core';
|
|
2
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { fromEvent, merge, takeWhile } from 'rxjs';
|
|
4
|
+
import { filter, tap } from 'rxjs/operators';
|
|
5
|
+
import { TabsService } from '../tabs.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class TabDirective {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.#destroyRef = inject(DestroyRef);
|
|
10
|
+
this.#elementRef = inject(ElementRef);
|
|
11
|
+
this.#tabsService = inject(TabsService);
|
|
12
|
+
this.#disabled = signal(false);
|
|
13
|
+
/**
|
|
14
|
+
* Item key.
|
|
15
|
+
* @type string | number
|
|
16
|
+
* @required
|
|
17
|
+
*/
|
|
18
|
+
this.itemKey = input.required();
|
|
19
|
+
/**
|
|
20
|
+
* Element id attribute
|
|
21
|
+
* @type string
|
|
22
|
+
* @default undefined
|
|
23
|
+
*/
|
|
24
|
+
this.id = input();
|
|
25
|
+
/**
|
|
26
|
+
* aria-controls attribute
|
|
27
|
+
* @type string
|
|
28
|
+
* @default undefined
|
|
29
|
+
*/
|
|
30
|
+
this.ariaControls = input(undefined, {
|
|
31
|
+
alias: 'aria-controls'
|
|
32
|
+
});
|
|
33
|
+
this.isActive = computed(() => !this.#disabled() && this.#tabsService.activeItemKey() === this.itemKey());
|
|
34
|
+
this.hostClasses = computed(() => ({
|
|
35
|
+
'nav-link': true,
|
|
36
|
+
active: this.isActive()
|
|
37
|
+
}));
|
|
38
|
+
this.propId = computed(() => this.id() ?? `${this.#tabsService.id()}-tab-${this.itemKey()}`);
|
|
39
|
+
this.attrAriaControls = computed(() => this.ariaControls() ?? `${this.#tabsService.id()}-panel-${this.itemKey()}`);
|
|
40
|
+
this.disabledEffect = effect(() => {
|
|
41
|
+
if (!this.#disabled()) {
|
|
42
|
+
const click$ = fromEvent(this.#elementRef.nativeElement, 'click');
|
|
43
|
+
const focusIn$ = fromEvent(this.#elementRef.nativeElement, 'focusin');
|
|
44
|
+
merge(focusIn$, click$)
|
|
45
|
+
.pipe(filter(($event) => !this.#disabled()), tap(($event) => {
|
|
46
|
+
this.#tabsService.activeItemKey.set(untracked(this.itemKey));
|
|
47
|
+
}), takeWhile(() => !this.#disabled()), takeUntilDestroyed(this.#destroyRef))
|
|
48
|
+
.subscribe();
|
|
49
|
+
}
|
|
50
|
+
}, { allowSignalWrites: true });
|
|
51
|
+
}
|
|
52
|
+
#destroyRef;
|
|
53
|
+
#elementRef;
|
|
54
|
+
#tabsService;
|
|
55
|
+
/**
|
|
56
|
+
* Disabled attribute
|
|
57
|
+
* @type boolean
|
|
58
|
+
* @default false
|
|
59
|
+
*/
|
|
60
|
+
set disabled(value) {
|
|
61
|
+
this.#disabled.set(value);
|
|
62
|
+
}
|
|
63
|
+
get disabled() {
|
|
64
|
+
return this.#disabled();
|
|
65
|
+
}
|
|
66
|
+
#disabled;
|
|
67
|
+
focus(origin) {
|
|
68
|
+
this.#elementRef.nativeElement.focus();
|
|
69
|
+
}
|
|
70
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
71
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.0.3", type: TabDirective, isStandalone: true, selector: "button[cTab]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, itemKey: { classPropertyName: "itemKey", publicName: "itemKey", isSignal: true, isRequired: true, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ariaControls: { classPropertyName: "ariaControls", publicName: "aria-controls", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button", "role": "tab" }, properties: { "class": "hostClasses()", "attr.aria-selected": "isActive()", "attr.aria-controls": "attrAriaControls()", "id": "propId()", "tabindex": "isActive() ? 0 : -1" } }, exportAs: ["cTab"], ngImport: i0 }); }
|
|
72
|
+
}
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabDirective, decorators: [{
|
|
74
|
+
type: Directive,
|
|
75
|
+
args: [{
|
|
76
|
+
exportAs: 'cTab',
|
|
77
|
+
selector: 'button[cTab]',
|
|
78
|
+
standalone: true,
|
|
79
|
+
host: {
|
|
80
|
+
'[class]': 'hostClasses()',
|
|
81
|
+
type: 'button',
|
|
82
|
+
role: 'tab',
|
|
83
|
+
'[attr.aria-selected]': 'isActive()',
|
|
84
|
+
'[attr.aria-controls]': 'attrAriaControls()',
|
|
85
|
+
'[id]': 'propId()',
|
|
86
|
+
'[tabindex]': 'isActive() ? 0 : -1'
|
|
87
|
+
}
|
|
88
|
+
}]
|
|
89
|
+
}], propDecorators: { disabled: [{
|
|
90
|
+
type: Input,
|
|
91
|
+
args: [{ transform: booleanAttribute }]
|
|
92
|
+
}] } });
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvdGFicy0yL3RhYi90YWIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLFVBQVUsRUFDVixTQUFTLEVBQ1QsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFnQjlDLE1BQU0sT0FBTyxZQUFZO0lBZHpCO1FBZVcsZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakMsaUJBQVksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFnQm5DLGNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbkM7Ozs7V0FJRztRQUNNLFlBQU8sR0FBaUMsS0FBSyxDQUFDLFFBQVEsRUFBbUIsQ0FBQztRQUVuRjs7OztXQUlHO1FBQ00sT0FBRSxHQUFvQyxLQUFLLEVBQVUsQ0FBQztRQUUvRDs7OztXQUlHO1FBQ00saUJBQVksR0FBb0MsS0FBSyxDQUFxQixTQUFTLEVBQUU7WUFDNUYsS0FBSyxFQUFFLGVBQWU7U0FDdkIsQ0FBQyxDQUFD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QUFFLG9CQUFvQjt3QkFDNUMsTUFBTSxFQUFFLFVBQVU7d0JBQ2xCLFlBQVksRUFBRSxxQkFBcUI7cUJBQ3BDO2lCQUNGOzhCQVlLLFFBQVE7c0JBRFgsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzYWJsZU9wdGlvbiwgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICBib29sZWFuQXR0cmlidXRlLFxuICBjb21wdXRlZCxcbiAgRGVzdHJveVJlZixcbiAgRGlyZWN0aXZlLFxuICBlZmZlY3QsXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIGlucHV0LFxuICBJbnB1dFNpZ25hbCxcbiAgc2lnbmFsLFxuICB1bnRyYWNrZWRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCB0YWtlV2hpbGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVGFic1NlcnZpY2UgfSBmcm9tICcuLi90YWJzLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgZXhwb3J0QXM6ICdjVGFiJyxcbiAgc2VsZWN0b3I6ICdidXR0b25bY1RhYl0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzc10nOiAnaG9zdENsYXNzZXMoKScsXG4gICAgdHlwZTogJ2J1dHRvbicsXG4gICAgcm9sZTogJ3RhYicsXG4gICAgJ1thdHRyLmFyaWEtc2VsZWN0ZWRdJzogJ2lzQWN0aXZlKCknLFxuICAgICdbYXR0ci5hcmlhLWNvbnRyb2xzXSc6ICdhdHRyQXJpYUNvbnRyb2xzKCknLFxuICAgICdbaWRdJzogJ3Byb3BJZCgpJyxcbiAgICAnW3RhYmluZGV4XSc6ICdpc0FjdGl2ZSgpID8gMCA6IC0xJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIFRhYkRpcmVjdGl2ZSBpbXBsZW1lbnRzIEZvY3VzYWJsZU9wdGlvbiB7XG4gIHJlYWRvbmx5ICNkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICByZWFkb25seSAjZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcmVhZG9ubHkgI3RhYnNTZXJ2aWNlID0gaW5qZWN0KFRhYnNTZXJ2aWNlKTtcblxuICAvKipcbiAgICogRGlzYWJsZWQgYXR0cmlidXRlXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNkaXNhYmxlZC5zZXQodmFsdWUpO1xuICB9XG5cbiAgZ2V0IGRpc2FibGVkKCkge1xuICAgIHJldHVybiB0aGlzLiNkaXNhYmxlZCgpO1xuICB9XG5cbiAgcmVhZG9ubHkgI2Rpc2FibGVkID0gc2lnbmFsKGZhbHNlKTtcblxuICAvKipcbiAgICogSXRlbSBrZXkuXG4gICAqIEB0eXBlIHN0cmluZyB8IG51bWJlclxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIHJlYWRvbmx5IGl0ZW1LZXk6IElucHV0U2lnbmFsPHN0cmluZyB8IG51bWJlcj4gPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmcgfCBudW1iZXI+KCk7XG5cbiAgLyoqXG4gICAqIEVsZW1lbnQgaWQgYXR0cmlidXRlXG4gICAqIEB0eXBlIHN0cmluZ1xuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGlkOiBJbnB1dFNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+ID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBhcmlhLWNvbnRyb2xzIGF0dHJpYnV0ZVxuICAgKiBAdHlwZSBzdHJpbmdcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBhcmlhQ29udHJvbHM6IElucHV0U2lnbmFsPHN0cmluZyB8IHVuZGVmaW5lZD4gPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCwge1xuICAgIGFsaWFzOiAnYXJpYS1jb250cm9scydcbiAgfSk7XG5cbiAgcmVhZG9ubHkgaXNBY3RpdmUgPSBjb21wdXRlZDxib29sZWFuPihcbiAgICAoKSA9PiAhdGhpcy4jZGlzYWJsZWQoKSAmJiB0aGlzLiN0YWJzU2VydmljZS5hY3RpdmVJdGVtS2V5KCkgPT09IHRoaXMuaXRlbUtleSgpXG4gICk7XG5cbiAgcmVhZG9ubHkgaG9zdENsYXNzZXMgPSBjb21wdXRlZCgoKSA9PiAoe1xuICAgICduYXYtbGluayc6IHRydWUsXG4gICAgYWN0aXZlOiB0aGlzLmlzQWN0aXZlKClcbiAgfSkpO1xuXG4gIHJlYWRvbmx5IHByb3BJZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaWQoKSA/PyBgJHt0aGlzLiN0YWJzU2VydmljZS5pZCgpfS10YWItJHt0aGlzLml0ZW1LZXkoKX1gKTtcblxuICByZWFkb25seSBhdHRyQXJpYUNvbnRyb2xzID0gY29tcHV0ZWQoXG4gICAgKCkgPT4gdGhpcy5hcmlhQ29udHJvbHMoKSA/PyBgJHt0aGlzLiN0YWJzU2VydmljZS5pZCgpfS1wYW5lbC0ke3RoaXMuaXRlbUtleSgpfWBcbiAgKTtcblxuICBkaXNhYmxlZEVmZmVjdCA9IGVmZmVjdChcbiAgICAoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuI2Rpc2FibGVkKCkpIHtcbiAgICAgICAgY29uc3QgY2xpY2skID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2NsaWNrJyk7XG4gICAgICAgIGNvbnN0IGZvY3VzSW4kID0gZnJvbUV2ZW50PEZvY3VzRXZlbnQ+KHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2ZvY3VzaW4nKTtcblxuICAgICAgICBtZXJnZShmb2N1c0luJCwgY2xpY2skKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKCgkZXZlbnQpID0+ICF0aGlzLiNkaXNhYmxlZCgpKSxcbiAgICAgICAgICAgIHRhcCgoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuI3RhYnNTZXJ2aWNlLmFjdGl2ZUl0ZW1LZXkuc2V0KHVudHJhY2tlZCh0aGlzLml0ZW1LZXkpKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFrZVdoaWxlKCgpID0+ICF0aGlzLiNkaXNhYmxlZCgpKSxcbiAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKVxuICAgICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICAgfSxcbiAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgKTtcblxuICBmb2N1cyhvcmlnaW4/OiBGb2N1c09yaWdpbik6IHZvaWQge1xuICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { animate, state, style, transition, trigger } from '@angular/animations';
|
|
2
|
+
import { Component, computed, HostBinding, HostListener, inject, input, numberAttribute, output, signal } from '@angular/core';
|
|
3
|
+
import { TabsService } from '../tabs.service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class TabPanelComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.tabsService = inject(TabsService);
|
|
8
|
+
/**
|
|
9
|
+
* aria-labelledby attribute
|
|
10
|
+
* @type string
|
|
11
|
+
* @default undefined
|
|
12
|
+
*/
|
|
13
|
+
this.ariaLabelledBy = input(undefined, {
|
|
14
|
+
alias: 'aria-labelledby'
|
|
15
|
+
});
|
|
16
|
+
/**
|
|
17
|
+
* Element id attribute
|
|
18
|
+
* @type string
|
|
19
|
+
* @default undefined
|
|
20
|
+
*/
|
|
21
|
+
this.id = input();
|
|
22
|
+
/**
|
|
23
|
+
* Item key.
|
|
24
|
+
* @type string | number
|
|
25
|
+
* @required
|
|
26
|
+
*/
|
|
27
|
+
this.itemKey = input.required();
|
|
28
|
+
/**
|
|
29
|
+
* tabindex attribute.
|
|
30
|
+
* @type number
|
|
31
|
+
* @default 0
|
|
32
|
+
*/
|
|
33
|
+
this.tabindex = input(0, { transform: numberAttribute });
|
|
34
|
+
/**
|
|
35
|
+
* Enable fade in transition.
|
|
36
|
+
* @type boolean
|
|
37
|
+
* @default true
|
|
38
|
+
*/
|
|
39
|
+
this.transition = input(true);
|
|
40
|
+
/**
|
|
41
|
+
* visible change output
|
|
42
|
+
* @type OutputEmitterRef<VisibleChangeEvent>
|
|
43
|
+
*/
|
|
44
|
+
this.visibleChange = output();
|
|
45
|
+
this.show = signal(false);
|
|
46
|
+
this.visible = computed(() => {
|
|
47
|
+
const visible = this.tabsService.activeItemKey() === this.itemKey() && !this.tabsService.activeItem()?.disabled;
|
|
48
|
+
this.visibleChange.emit({ itemKey: this.itemKey(), visible });
|
|
49
|
+
return visible;
|
|
50
|
+
});
|
|
51
|
+
this.propId = computed(() => this.id() ?? `${this.tabsService.id()}-panel-${this.itemKey()}`);
|
|
52
|
+
this.attrAriaLabelledBy = computed(() => this.ariaLabelledBy() ?? `${this.tabsService.id()}-tab-${this.itemKey()}`);
|
|
53
|
+
this.hostClasses = computed(() => ({
|
|
54
|
+
'tab-pane': true,
|
|
55
|
+
active: this.show(),
|
|
56
|
+
fade: this.transition(),
|
|
57
|
+
show: this.show(),
|
|
58
|
+
invisible: this.tabsService.activeItem()?.disabled
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
get animationDisabled() {
|
|
62
|
+
return !this.transition();
|
|
63
|
+
}
|
|
64
|
+
get animateType() {
|
|
65
|
+
return this.visible() ? 'show' : 'hide';
|
|
66
|
+
}
|
|
67
|
+
onAnimationDone($event) {
|
|
68
|
+
this.show.set(this.visible());
|
|
69
|
+
}
|
|
70
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
71
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.3", type: TabPanelComponent, isStandalone: true, selector: "c-tab-panel", inputs: { ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, itemKey: { classPropertyName: "itemKey", publicName: "itemKey", isSignal: true, isRequired: true, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, transition: { classPropertyName: "transition", publicName: "transition", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visibleChange: "visibleChange" }, host: { attributes: { "role": "tabpanel" }, listeners: { "@fadeInOut.done": "onAnimationDone($event)" }, properties: { "class": "hostClasses()", "tabindex": "visible() ? tabindex(): -1", "attr.aria-labelledby": "attrAriaLabelledBy()", "id": "propId()", "@.disabled": "this.animationDisabled", "@fadeInOut": "this.animateType" } }, exportAs: ["cTabPanel"], ngImport: i0, template: '<ng-content />', isInline: true, animations: [
|
|
72
|
+
trigger('fadeInOut', [
|
|
73
|
+
state('show', style({ opacity: 1 })),
|
|
74
|
+
state('hide', style({ opacity: 0 })),
|
|
75
|
+
state('void', style({ opacity: 0 })),
|
|
76
|
+
transition('* => *', [animate('150ms linear')])
|
|
77
|
+
])
|
|
78
|
+
] }); }
|
|
79
|
+
}
|
|
80
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabPanelComponent, decorators: [{
|
|
81
|
+
type: Component,
|
|
82
|
+
args: [{
|
|
83
|
+
exportAs: 'cTabPanel',
|
|
84
|
+
selector: 'c-tab-panel',
|
|
85
|
+
standalone: true,
|
|
86
|
+
template: '<ng-content />',
|
|
87
|
+
host: {
|
|
88
|
+
'[class]': 'hostClasses()',
|
|
89
|
+
'[tabindex]': 'visible() ? tabindex(): -1',
|
|
90
|
+
'[attr.aria-labelledby]': 'attrAriaLabelledBy()',
|
|
91
|
+
'[id]': 'propId()',
|
|
92
|
+
role: 'tabpanel'
|
|
93
|
+
},
|
|
94
|
+
animations: [
|
|
95
|
+
trigger('fadeInOut', [
|
|
96
|
+
state('show', style({ opacity: 1 })),
|
|
97
|
+
state('hide', style({ opacity: 0 })),
|
|
98
|
+
state('void', style({ opacity: 0 })),
|
|
99
|
+
transition('* => *', [animate('150ms linear')])
|
|
100
|
+
])
|
|
101
|
+
]
|
|
102
|
+
}]
|
|
103
|
+
}], propDecorators: { animationDisabled: [{
|
|
104
|
+
type: HostBinding,
|
|
105
|
+
args: ['@.disabled']
|
|
106
|
+
}], animateType: [{
|
|
107
|
+
type: HostBinding,
|
|
108
|
+
args: ['@fadeInOut']
|
|
109
|
+
}], onAnimationDone: [{
|
|
110
|
+
type: HostListener,
|
|
111
|
+
args: ['@fadeInOut.done', ['$event']]
|
|
112
|
+
}] } });
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXBhbmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvdGFicy0yL3RhYi1wYW5lbC90YWItcGFuZWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQWtCLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pHLE9BQU8sRUFDTCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxlQUFlLEVBQ2YsTUFBTSxFQUVOLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBMEI5QyxNQUFNLE9BQU8saUJBQWlCO0lBckI5QjtRQXNCVyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUzQzs7OztXQUlHO1FBQ00sbUJBQWMsR0FBb0MsS0FBSyxDQUFxQixTQUFTLEVBQUU7WUFDOUYsS0FBSyxFQUFFLGlCQUFpQjtTQUN6QixDQUFDLENBQUM7UUFFSDs7OztXQUlHO1FBQ00sT0FBRSxHQUFvQyxLQUFLLEVBQVUsQ0FBQztRQUUvRDs7OztXQUlHO1FBQ00sWUFBTyxHQUFpQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFbEU7Ozs7V0FJRztRQUNNLGFBQVEsR0FBOEMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBRXhHOzs7O1dBSUc7UUFDTSxlQUFVLEdBQXlCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV4RDs7O1dBR0c7UUFDTSxrQkFBYSxHQUF5QyxNQUFNLEVBQXNCLENBQUM7UUFFbkYsU0FBSSxHQUFH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QUFDLFdBQVcsRUFBRTs0QkFDbkIsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzs0QkFDcEMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzs0QkFDcEMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzs0QkFDcEMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO3lCQUNoRCxDQUFDO3FCQUNIO2lCQUNGOzhCQXNFSyxpQkFBaUI7c0JBRHBCLFdBQVc7dUJBQUMsWUFBWTtnQkFNckIsV0FBVztzQkFEZCxXQUFXO3VCQUFDLFlBQVk7Z0JBTXpCLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIEFuaW1hdGlvbkV2ZW50LCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIElucHV0U2lnbmFsLFxuICBJbnB1dFNpZ25hbFdpdGhUcmFuc2Zvcm0sXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgb3V0cHV0LFxuICBPdXRwdXRFbWl0dGVyUmVmLFxuICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJzU2VydmljZSB9IGZyb20gJy4uL3RhYnMuc2VydmljZSc7XG5cbnR5cGUgQW5pbWF0ZVR5cGUgPSAnaGlkZScgfCAnc2hvdyc7XG50eXBlIFZpc2libGVDaGFuZ2VFdmVudCA9IHsgaXRlbUtleTogc3RyaW5nIHwgbnVtYmVyOyB2aXNpYmxlOiBib29sZWFuIH07XG5cbkBDb21wb25lbnQoe1xuICBleHBvcnRBczogJ2NUYWJQYW5lbCcsXG4gIHNlbGVjdG9yOiAnYy10YWItcGFuZWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50IC8+JyxcbiAgaG9zdDoge1xuICAgICdbY2xhc3NdJzogJ2hvc3RDbGFzc2VzKCknLFxuICAgICdbdGFiaW5kZXhdJzogJ3Zpc2libGUoKSA/IHRhYmluZGV4KCk6IC0xJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSc6ICdhdHRyQXJpYUxhYmVsbGVkQnkoKScsXG4gICAgJ1tpZF0nOiAncHJvcElkKCknLFxuICAgIHJvbGU6ICd0YWJwYW5lbCdcbiAgfSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2ZhZGVJbk91dCcsIFtcbiAgICAgIHN0YXRlKCdzaG93Jywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKSxcbiAgICAgIHN0YXRlKCdoaWRlJywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKSxcbiAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKSxcbiAgICAgIHRyYW5zaXRpb24oJyogPT4gKicsIFthbmltYXRlKCcxNTBtcyBsaW5lYXInKV0pXG4gICAgXSlcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJQYW5lbENvbXBvbmVudCB7XG4gIHJlYWRvbmx5IHRhYnNTZXJ2aWNlID0gaW5qZWN0KFRhYnNTZXJ2aWNlKTtcblxuICAvKipcbiAgICogYXJpYS1sYWJlbGxlZGJ5IGF0dHJpYnV0ZVxuICAgKiBAdHlwZSBzdHJpbmdcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBhcmlhTGFiZWxsZWRCeTogSW5wdXRTaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPiA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkLCB7XG4gICAgYWxpYXM6ICdhcmlhLWxhYmVsbGVkYnknXG4gIH0pO1xuXG4gIC8qKlxuICAgKiBFbGVtZW50IGlkIGF0dHJpYnV0ZVxuICAgKiBAdHlwZSBzdHJpbmdcbiAgICogQGRlZmF1bHQgdW5kZWZpbmVkXG4gICAqL1xuICByZWFkb25seSBpZDogSW5wdXRTaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPiA9IGlucHV0PHN0cmluZz4oKTtcblxuICAvKipcbiAgICogSXRlbSBrZXkuXG4gICAqIEB0eXBlIHN0cmluZyB8IG51bWJlclxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIHJlYWRvbmx5IGl0ZW1LZXk6IElucHV0U2lnbmFsPHN0cmluZyB8IG51bWJlcj4gPSBpbnB1dC5yZXF1aXJlZCgpO1xuXG4gIC8qKlxuICAgKiB0YWJpbmRleCBhdHRyaWJ1dGUuXG4gICAqIEB0eXBlIG51bWJlclxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICByZWFkb25seSB0YWJpbmRleDogSW5wdXRTaWduYWxXaXRoVHJhbnNmb3JtPG51bWJlciwgdW5rbm93bj4gPSBpbnB1dCgwLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgZmFkZSBpbiB0cmFuc2l0aW9uLlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHRyYW5zaXRpb246IElucHV0U2lnbmFsPGJvb2xlYW4+ID0gaW5wdXQodHJ1ZSk7XG5cbiAgLyoqXG4gICAqIHZpc2libGUgY2hhbmdlIG91dHB1dFxuICAgKiBAdHlwZSBPdXRwdXRFbWl0dGVyUmVmPFZpc2libGVDaGFuZ2VFdmVudD5cbiAgICovXG4gIHJlYWRvbmx5IHZpc2libGVDaGFuZ2U6IE91dHB1dEVtaXR0ZXJSZWY8VmlzaWJsZUNoYW5nZUV2ZW50PiA9IG91dHB1dDxWaXNpYmxlQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgcmVhZG9ubHkgc2hvdyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgdmlzaWJsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB2aXNpYmxlID0gdGhpcy50YWJzU2VydmljZS5hY3RpdmVJdGVtS2V5KCkgPT09IHRoaXMuaXRlbUtleSgpICYmICF0aGlzLnRhYnNTZXJ2aWNlLmFjdGl2ZUl0ZW0oKT8uZGlzYWJsZWQ7XG4gICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoeyBpdGVtS2V5OiB0aGlzLml0ZW1LZXkoKSwgdmlzaWJsZSB9KTtcbiAgICByZXR1cm4gdmlzaWJsZTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcHJvcElkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pZCgpID8/IGAke3RoaXMudGFic1NlcnZpY2UuaWQoKX0tcGFuZWwtJHt0aGlzLml0ZW1LZXkoKX1gKTtcblxuICByZWFkb25seSBhdHRyQXJpYUxhYmVsbGVkQnkgPSBjb21wdXRlZChcbiAgICAoKSA9PiB0aGlzLmFyaWFMYWJlbGxlZEJ5KCkgPz8gYCR7dGhpcy50YWJzU2VydmljZS5pZCgpfS10YWItJHt0aGlzLml0ZW1LZXkoKX1gXG4gICk7XG5cbiAgcmVhZG9ubHkgaG9zdENsYXNzZXMgPSBjb21wdXRlZCgoKSA9PiAoe1xuICAgICd0YWItcGFuZSc6IHRydWUsXG4gICAgYWN0aXZlOiB0aGlzLnNob3coKSxcbiAgICBmYWRlOiB0aGlzLnRyYW5zaXRpb24oKSxcbiAgICBzaG93OiB0aGlzLnNob3coKSxcbiAgICBpbnZpc2libGU6IHRoaXMudGFic1NlcnZpY2UuYWN0aXZlSXRlbSgpPy5kaXNhYmxlZFxuICB9KSk7XG5cbiAgQEhvc3RCaW5kaW5nKCdALmRpc2FibGVkJylcbiAgZ2V0IGFuaW1hdGlvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy50cmFuc2l0aW9uKCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ0BmYWRlSW5PdXQnKVxuICBnZXQgYW5pbWF0ZVR5cGUoKTogQW5pbWF0ZVR5cGUge1xuICAgIHJldHVybiB0aGlzLnZpc2libGUoKSA/ICdzaG93JyA6ICdoaWRlJztcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ0BmYWRlSW5PdXQuZG9uZScsIFsnJGV2ZW50J10pXG4gIG9uQW5pbWF0aW9uRG9uZSgkZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zaG93LnNldCh0aGlzLnZpc2libGUoKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class TabsContentComponent {
|
|
4
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: TabsContentComponent, isStandalone: true, selector: "c-tabs-content", host: { classAttribute: "tab-content" }, exportAs: ["cTabsContent"], ngImport: i0, template: '<ng-content />', isInline: true }); }
|
|
6
|
+
}
|
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsContentComponent, decorators: [{
|
|
8
|
+
type: Component,
|
|
9
|
+
args: [{
|
|
10
|
+
exportAs: 'cTabsContent',
|
|
11
|
+
selector: 'c-tabs-content',
|
|
12
|
+
standalone: true,
|
|
13
|
+
template: '<ng-content />',
|
|
14
|
+
host: {
|
|
15
|
+
class: 'tab-content'
|
|
16
|
+
}
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvdGFicy0yL3RhYnMtY29udGVudC90YWJzLWNvbnRlbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVzFDLE1BQU0sT0FBTyxvQkFBb0I7OEdBQXBCLG9CQUFvQjtrR0FBcEIsb0JBQW9CLCtJQUxyQixnQkFBZ0I7OzJGQUtmLG9CQUFvQjtrQkFUaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsYUFBYTtxQkFDckI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIGV4cG9ydEFzOiAnY1RhYnNDb250ZW50JyxcbiAgc2VsZWN0b3I6ICdjLXRhYnMtY29udGVudCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQgLz4nLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICd0YWItY29udGVudCdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBUYWJzQ29udGVudENvbXBvbmVudCB7fVxuIl19
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { FocusKeyManager } from '@angular/cdk/a11y';
|
|
2
|
+
import { Component, computed, contentChildren, DestroyRef, effect, HostListener, inject, input, untracked } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { tap } from 'rxjs/operators';
|
|
5
|
+
import { TabDirective } from '../tab/tab.directive';
|
|
6
|
+
import { TabsService } from '../tabs.service';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class TabsListComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.#destroyRef = inject(DestroyRef);
|
|
11
|
+
this.tabsService = inject(TabsService);
|
|
12
|
+
/**
|
|
13
|
+
* Specify a layout type for component.
|
|
14
|
+
* @type 'fill' | 'justified' | undefined
|
|
15
|
+
* @default undefined
|
|
16
|
+
*/
|
|
17
|
+
this.layout = input();
|
|
18
|
+
/**
|
|
19
|
+
* Set the variant to tabs, pills or underline.
|
|
20
|
+
* @type 'pills' | 'tabs' | 'underline' | 'underline-border' | undefined
|
|
21
|
+
* @default undefined
|
|
22
|
+
*/
|
|
23
|
+
this.variant = input();
|
|
24
|
+
/**
|
|
25
|
+
* Set the role to tab list.
|
|
26
|
+
* @default 'tablist'
|
|
27
|
+
*/
|
|
28
|
+
this.role = input('tablist');
|
|
29
|
+
this.hostClasses = computed(() => ({
|
|
30
|
+
nav: true,
|
|
31
|
+
[`nav-${this.layout()}`]: this.layout(),
|
|
32
|
+
[`nav-${this.variant()}`]: this.variant()
|
|
33
|
+
}));
|
|
34
|
+
this.tabs = contentChildren(TabDirective);
|
|
35
|
+
this.tabsEffect = effect(() => {
|
|
36
|
+
if (this.tabs().length === 0) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
this.#focusKeyManager = new FocusKeyManager(this.tabs())
|
|
40
|
+
.skipPredicate((tab) => tab.disabled === true)
|
|
41
|
+
.withHorizontalOrientation('ltr')
|
|
42
|
+
.withHomeAndEnd()
|
|
43
|
+
.withWrap();
|
|
44
|
+
this.#focusKeyManager.change
|
|
45
|
+
.pipe(tap((value) => {
|
|
46
|
+
this.tabsService.activeItemKey.set(this.#focusKeyManager.activeItem?.itemKey());
|
|
47
|
+
this.tabsService.activeItem.set(this.#focusKeyManager.activeItem);
|
|
48
|
+
}), takeUntilDestroyed(this.#destroyRef))
|
|
49
|
+
.subscribe();
|
|
50
|
+
const activeItem = this.tabs().find((tab) => untracked(tab.isActive)) ?? this.tabs().find((tab) => !tab.disabled);
|
|
51
|
+
const activeItemIndex = this.tabs().findIndex((tab) => tab === activeItem);
|
|
52
|
+
this.#focusKeyManager?.updateActiveItem(activeItemIndex < 0 ? 0 : activeItemIndex);
|
|
53
|
+
this.tabsService.activeItemKey.set(this.#focusKeyManager.activeItem?.itemKey());
|
|
54
|
+
this.tabsService.activeItem.set(this.#focusKeyManager.activeItem);
|
|
55
|
+
}, { allowSignalWrites: true });
|
|
56
|
+
this.tabsServiceEffect = effect(() => {
|
|
57
|
+
const activeItemIndex = this.tabs().findIndex((tab) => untracked(tab.isActive) && untracked(tab.itemKey) === this.tabsService.activeItemKey());
|
|
58
|
+
this.#focusKeyManager?.updateActiveItem(activeItemIndex < 0 ? 0 : activeItemIndex);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
#destroyRef;
|
|
62
|
+
#focusKeyManager;
|
|
63
|
+
onKeydown($event) {
|
|
64
|
+
if (['ArrowLeft', 'ArrowRight'].includes($event.key)) {
|
|
65
|
+
this.#focusKeyManager.onKeydown($event);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
if (['Tab'].includes($event.key)) {
|
|
69
|
+
this.#focusKeyManager?.tabOut.next();
|
|
70
|
+
}
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
74
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.0.3", type: TabsListComponent, isStandalone: true, selector: "c-tabs-list", inputs: { layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown": "onKeydown($event)" }, properties: { "attr.role": "role()", "class": "hostClasses()" } }, queries: [{ propertyName: "tabs", predicate: TabDirective, isSignal: true }], exportAs: ["cTabsList"], ngImport: i0, template: '<ng-content />', isInline: true }); }
|
|
75
|
+
}
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsListComponent, decorators: [{
|
|
77
|
+
type: Component,
|
|
78
|
+
args: [{
|
|
79
|
+
exportAs: 'cTabsList',
|
|
80
|
+
selector: 'c-tabs-list',
|
|
81
|
+
standalone: true,
|
|
82
|
+
imports: [TabDirective],
|
|
83
|
+
template: '<ng-content />',
|
|
84
|
+
host: {
|
|
85
|
+
'[attr.role]': 'role()',
|
|
86
|
+
'[class]': 'hostClasses()'
|
|
87
|
+
}
|
|
88
|
+
}]
|
|
89
|
+
}], propDecorators: { onKeydown: [{
|
|
90
|
+
type: HostListener,
|
|
91
|
+
args: ['keydown', ['$event']]
|
|
92
|
+
}] } });
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvdGFicy0yL3RhYnMtbGlzdC90YWJzLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsU0FBUyxFQUNULFFBQVEsRUFDUixlQUFlLEVBQ2YsVUFBVSxFQUNWLE1BQU0sRUFDTixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBYTlDLE1BQU0sT0FBTyxpQkFBaUI7SUFYOUI7UUFZVyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUzQzs7OztXQUlHO1FBQ00sV0FBTSxHQUFrRCxLQUFLLEVBQUUsQ0FBQztRQUV6RTs7OztXQUlHO1FBQ00sWUFBTyxHQUFpRixLQUFLLEVBQUUsQ0FBQztRQUV6Rzs7O1dBR0c7UUFDTSxTQUFJLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXhCLGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDckMsR0FBRyxFQUFFLElBQUk7WUFDVCxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxJ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QUMsQ0FBQztRQUNyRixDQUFDLENBQUMsQ0FBQztLQWFKO0lBaEZVLFdBQVcsQ0FBc0I7SUE4QjFDLGdCQUFnQixDQUFpQztJQXdDakQsU0FBUyxDQUFDLE1BQVc7UUFDbkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDckQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN4QyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsT0FBTztJQUNULENBQUM7OEdBaEZVLGlCQUFpQjtrR0FBakIsaUJBQWlCLGdsQkE4QkksWUFBWSxzRUFwQ2xDLGdCQUFnQjs7MkZBTWYsaUJBQWlCO2tCQVg3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixRQUFRLEVBQUUsYUFBYTtvQkFDdkIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsSUFBSSxFQUFFO3dCQUNKLGFBQWEsRUFBRSxRQUFRO3dCQUN2QixTQUFTLEVBQUUsZUFBZTtxQkFDM0I7aUJBQ0Y7OEJBd0VDLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c0tleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBjb250ZW50Q2hpbGRyZW4sXG4gIERlc3Ryb3lSZWYsXG4gIGVmZmVjdCxcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBJbnB1dFNpZ25hbCxcbiAgdW50cmFja2VkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVGFiRGlyZWN0aXZlIH0gZnJvbSAnLi4vdGFiL3RhYi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGFic1NlcnZpY2UgfSBmcm9tICcuLi90YWJzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgZXhwb3J0QXM6ICdjVGFic0xpc3QnLFxuICBzZWxlY3RvcjogJ2MtdGFicy1saXN0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1RhYkRpcmVjdGl2ZV0sXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQgLz4nLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLnJvbGVdJzogJ3JvbGUoKScsXG4gICAgJ1tjbGFzc10nOiAnaG9zdENsYXNzZXMoKSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBUYWJzTGlzdENvbXBvbmVudCB7XG4gIHJlYWRvbmx5ICNkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICByZWFkb25seSB0YWJzU2VydmljZSA9IGluamVjdChUYWJzU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgYSBsYXlvdXQgdHlwZSBmb3IgY29tcG9uZW50LlxuICAgKiBAdHlwZSAnZmlsbCcgfCAnanVzdGlmaWVkJyB8IHVuZGVmaW5lZFxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICovXG4gIHJlYWRvbmx5IGxheW91dDogSW5wdXRTaWduYWw8J2ZpbGwnIHwgJ2p1c3RpZmllZCcgfCB1bmRlZmluZWQ+ID0gaW5wdXQoKTtcblxuICAvKipcbiAgICogU2V0IHRoZSB2YXJpYW50IHRvIHRhYnMsIHBpbGxzIG9yIHVuZGVybGluZS5cbiAgICogQHR5cGUgJ3BpbGxzJyB8ICd0YWJzJyB8ICd1bmRlcmxpbmUnIHwgJ3VuZGVybGluZS1ib3JkZXInIHwgdW5kZWZpbmVkXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKi9cbiAgcmVhZG9ubHkgdmFyaWFudDogSW5wdXRTaWduYWw8J3BpbGxzJyB8ICd0YWJzJyB8ICd1bmRlcmxpbmUnIHwgJ3VuZGVybGluZS1ib3JkZXInIHwgdW5kZWZpbmVkPiA9IGlucHV0KCk7XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcm9sZSB0byB0YWIgbGlzdC5cbiAgICogQGRlZmF1bHQgJ3RhYmxpc3QnXG4gICAqL1xuICByZWFkb25seSByb2xlID0gaW5wdXQoJ3RhYmxpc3QnKTtcblxuICByZWFkb25seSBob3N0Q2xhc3NlcyA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgbmF2OiB0cnVlLFxuICAgIFtgbmF2LSR7dGhpcy5sYXlvdXQoKX1gXTogdGhpcy5sYXlvdXQoKSxcbiAgICBbYG5hdi0ke3RoaXMudmFyaWFudCgpfWBdOiB0aGlzLnZhcmlhbnQoKVxuICB9KSk7XG5cbiAgcmVhZG9ubHkgdGFicyA9IGNvbnRlbnRDaGlsZHJlbihUYWJEaXJlY3RpdmUpO1xuICAjZm9jdXNLZXlNYW5hZ2VyITogRm9jdXNLZXlNYW5hZ2VyPFRhYkRpcmVjdGl2ZT47XG5cbiAgcmVhZG9ubHkgdGFic0VmZmVjdCA9IGVmZmVjdChcbiAgICAoKSA9PiB7XG4gICAgICBpZiAodGhpcy50YWJzKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuI2ZvY3VzS2V5TWFuYWdlciA9IG5ldyBGb2N1c0tleU1hbmFnZXIodGhpcy50YWJzKCkpXG4gICAgICAgIC5za2lwUHJlZGljYXRlKCh0YWIpID0+IHRhYi5kaXNhYmxlZCA9PT0gdHJ1ZSlcbiAgICAgICAgLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24oJ2x0cicpXG4gICAgICAgIC53aXRoSG9tZUFuZEVuZCgpXG4gICAgICAgIC53aXRoV3JhcCgpO1xuXG4gICAgICB0aGlzLiNmb2N1c0tleU1hbmFnZXIuY2hhbmdlXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRhcCgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHRoaXMudGFic1NlcnZpY2UuYWN0aXZlSXRlbUtleS5zZXQodGhpcy4jZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/Lml0ZW1LZXkoKSk7XG4gICAgICAgICAgICB0aGlzLnRhYnNTZXJ2aWNlLmFjdGl2ZUl0ZW0uc2V0KHRoaXMuI2ZvY3VzS2V5TWFuYWdlci5hY3RpdmVJdGVtKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZilcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICAgIGNvbnN0IGFjdGl2ZUl0ZW0gPSB0aGlzLnRhYnMoKS5maW5kKCh0YWIpID0+IHVudHJhY2tlZCh0YWIuaXNBY3RpdmUpKSA/PyB0aGlzLnRhYnMoKS5maW5kKCh0YWIpID0+ICF0YWIuZGlzYWJsZWQpO1xuICAgICAgY29uc3QgYWN0aXZlSXRlbUluZGV4ID0gdGhpcy50YWJzKCkuZmluZEluZGV4KCh0YWIpID0+IHRhYiA9PT0gYWN0aXZlSXRlbSk7XG4gICAgICB0aGlzLiNmb2N1c0tleU1hbmFnZXI/LnVwZGF0ZUFjdGl2ZUl0ZW0oYWN0aXZlSXRlbUluZGV4IDwgMCA/IDAgOiBhY3RpdmVJdGVtSW5kZXgpO1xuICAgICAgdGhpcy50YWJzU2VydmljZS5hY3RpdmVJdGVtS2V5LnNldCh0aGlzLiNmb2N1c0tleU1hbmFnZXIuYWN0aXZlSXRlbT8uaXRlbUtleSgpKTtcbiAgICAgIHRoaXMudGFic1NlcnZpY2UuYWN0aXZlSXRlbS5zZXQodGhpcy4jZm9jdXNLZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0pO1xuICAgIH0sXG4gICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICk7XG5cbiAgdGFic1NlcnZpY2VFZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGFjdGl2ZUl0ZW1JbmRleCA9IHRoaXMudGFicygpLmZpbmRJbmRleChcbiAgICAgICh0YWIpID0+IHVudHJhY2tlZCh0YWIuaXNBY3RpdmUpICYmIHVudHJhY2tlZCh0YWIuaXRlbUtleSkgPT09IHRoaXMudGFic1NlcnZpY2UuYWN0aXZlSXRlbUtleSgpXG4gICAgKTtcbiAgICB0aGlzLiNmb2N1c0tleU1hbmFnZXI/LnVwZGF0ZUFjdGl2ZUl0ZW0oYWN0aXZlSXRlbUluZGV4IDwgMCA/IDAgOiBhY3RpdmVJdGVtSW5kZXgpO1xuICB9KTtcblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25LZXlkb3duKCRldmVudDogYW55KSB7XG4gICAgaWYgKFsnQXJyb3dMZWZ0JywgJ0Fycm93UmlnaHQnXS5pbmNsdWRlcygkZXZlbnQua2V5KSkge1xuICAgICAgdGhpcy4jZm9jdXNLZXlNYW5hZ2VyLm9uS2V5ZG93bigkZXZlbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoWydUYWInXS5pbmNsdWRlcygkZXZlbnQua2V5KSkge1xuICAgICAgdGhpcy4jZm9jdXNLZXlNYW5hZ2VyPy50YWJPdXQubmV4dCgpO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Component, effect, inject, input, model } from '@angular/core';
|
|
2
|
+
import { TabsService } from './tabs.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
let nextId = 0;
|
|
5
|
+
export class TabsComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.tabsService = inject(TabsService);
|
|
8
|
+
/**
|
|
9
|
+
* The active item key.
|
|
10
|
+
* @type <string | number | undefined>
|
|
11
|
+
*/
|
|
12
|
+
this.activeItemKey = model();
|
|
13
|
+
/**
|
|
14
|
+
* The id attribute
|
|
15
|
+
* @type string
|
|
16
|
+
*/
|
|
17
|
+
this.tabsId = `tabs-${nextId++}`;
|
|
18
|
+
this.id = input(this.tabsId);
|
|
19
|
+
this.activeItemEffect = effect(() => {
|
|
20
|
+
this.tabsService.id.set(this.id());
|
|
21
|
+
this.tabsService.activeItemKey.set(this.activeItemKey());
|
|
22
|
+
}, { allowSignalWrites: true });
|
|
23
|
+
this.tabsServiceEffect = effect(() => {
|
|
24
|
+
this.activeItemKey.set(this.tabsService.activeItemKey());
|
|
25
|
+
}, { allowSignalWrites: true });
|
|
26
|
+
}
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.3", type: TabsComponent, isStandalone: true, selector: "c-tabs", inputs: { activeItemKey: { classPropertyName: "activeItemKey", publicName: "activeItemKey", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeItemKey: "activeItemKeyChange" }, host: { properties: { "id": "id()" }, classAttribute: "tabs" }, providers: [TabsService], exportAs: ["cTabs"], ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host{display:block}\n"] }); }
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsComponent, decorators: [{
|
|
31
|
+
type: Component,
|
|
32
|
+
args: [{ exportAs: 'cTabs', selector: 'c-tabs', standalone: true, imports: [], template: '<ng-content />', providers: [TabsService], host: {
|
|
33
|
+
'[id]': 'id()',
|
|
34
|
+
class: 'tabs'
|
|
35
|
+
}, styles: [":host{display:block}\n"] }]
|
|
36
|
+
}] });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL3RhYnMtMi90YWJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRTdDLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztBQWVmLE1BQU0sT0FBTyxhQUFhO0lBYjFCO1FBY1csZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFM0M7OztXQUdHO1FBQ00sa0JBQWEsR0FBNkMsS0FBSyxFQUFtQixDQUFDO1FBRTVGOzs7V0FHRztRQUNILFdBQU0sR0FBRyxRQUFRLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFDbkIsT0FBRSxHQUFHLEtBQUssQ0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFaEMscUJBQWdCLEdBQUcsTUFBTSxDQUNoQyxHQUFHLEVBQUU7WUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUMsRUFDRCxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUM1QixDQUFDO1FBRU8sc0JBQWlCLEdBQUcsTUFBTSxDQUNqQyxHQUFHLEVBQUU7WUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDM0QsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzVCLENBQUM7S0FDSDs4R0E5QlksYUFBYTtrR0FBYixhQUFhLG1iQU5iLENBQUMsV0FBVyxDQUFDLCtDQUZkLGdCQUFnQjs7MkZBUWYsYUFBYTtrQkFiekIsU0FBUzsrQkFDRSxPQUFPLFlBQ1AsUUFBUSxjQUNOLElBQUksV0FDUCxFQUFFLFlBQ0QsZ0JBQWdCLGFBRWYsQ0FBQyxXQUFXLENBQUMsUUFDbEI7d0JBQ0osTUFBTSxFQUFFLE1BQU07d0JBQ2QsS0FBSyxFQUFFLE1BQU07cUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgbW9kZWwsIE1vZGVsU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJzU2VydmljZSB9IGZyb20gJy4vdGFicy5zZXJ2aWNlJztcblxubGV0IG5leHRJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBleHBvcnRBczogJ2NUYWJzJyxcbiAgc2VsZWN0b3I6ICdjLXRhYnMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXSxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudCAvPicsXG4gIHN0eWxlVXJsOiAnLi90YWJzLmNvbXBvbmVudC5zY3NzJyxcbiAgcHJvdmlkZXJzOiBbVGFic1NlcnZpY2VdLFxuICBob3N0OiB7XG4gICAgJ1tpZF0nOiAnaWQoKScsXG4gICAgY2xhc3M6ICd0YWJzJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIFRhYnNDb21wb25lbnQge1xuICByZWFkb25seSB0YWJzU2VydmljZSA9IGluamVjdChUYWJzU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIFRoZSBhY3RpdmUgaXRlbSBrZXkuXG4gICAqIEB0eXBlIDxzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQ+XG4gICAqL1xuICByZWFkb25seSBhY3RpdmVJdGVtS2V5OiBNb2RlbFNpZ25hbDxzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQ+ID0gbW9kZWw8bnVtYmVyIHwgc3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBUaGUgaWQgYXR0cmlidXRlXG4gICAqIEB0eXBlIHN0cmluZ1xuICAgKi9cbiAgdGFic0lkID0gYHRhYnMtJHtuZXh0SWQrK31gO1xuICByZWFkb25seSBpZCA9IGlucHV0PHN0cmluZz4odGhpcy50YWJzSWQpO1xuXG4gIHJlYWRvbmx5IGFjdGl2ZUl0ZW1FZmZlY3QgPSBlZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgdGhpcy50YWJzU2VydmljZS5pZC5zZXQodGhpcy5pZCgpKTtcbiAgICAgIHRoaXMudGFic1NlcnZpY2UuYWN0aXZlSXRlbUtleS5zZXQodGhpcy5hY3RpdmVJdGVtS2V5KCkpO1xuICAgIH0sXG4gICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICk7XG5cbiAgcmVhZG9ubHkgdGFic1NlcnZpY2VFZmZlY3QgPSBlZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgdGhpcy5hY3RpdmVJdGVtS2V5LnNldCh0aGlzLnRhYnNTZXJ2aWNlLmFjdGl2ZUl0ZW1LZXkoKSk7XG4gICAgfSxcbiAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Injectable, signal } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class TabsService {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.activeItem = signal(undefined);
|
|
6
|
+
this.activeItemKey = signal(undefined);
|
|
7
|
+
this.id = signal(undefined);
|
|
8
|
+
}
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
10
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsService }); }
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TabsService, decorators: [{
|
|
13
|
+
type: Injectable
|
|
14
|
+
}] });
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi90YWJzLTIvdGFicy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUduRCxNQUFNLE9BQU8sV0FBVztJQUR4QjtRQUVXLGVBQVUsR0FBRyxNQUFNLENBQU0sU0FBUyxDQUFDLENBQUM7UUFDcEMsa0JBQWEsR0FBRyxNQUFNLENBQThCLFNBQVMsQ0FBQyxDQUFDO1FBQy9ELE9BQUUsR0FBRyxNQUFNLENBQThCLFNBQVMsQ0FBQyxDQUFDO0tBQzlEOzhHQUpZLFdBQVc7a0hBQVgsV0FBVzs7MkZBQVgsV0FBVztrQkFEdkIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGFic1NlcnZpY2Uge1xuICByZWFkb25seSBhY3RpdmVJdGVtID0gc2lnbmFsPGFueT4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgYWN0aXZlSXRlbUtleSA9IHNpZ25hbDxzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IGlkID0gc2lnbmFsPHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { TabsService } from './tabs.service';
|
|
3
|
+
import { TabsComponent } from './tabs.component';
|
|
4
|
+
import { TabDirective } from './tab/tab.directive';
|
|
5
|
+
import { TabsListComponent } from './tabs-list/tabs-list.component';
|
|
6
|
+
import { TabsContentComponent } from './tabs-content/tabs-content.component';
|
|
7
|
+
import { TabPanelComponent } from './tab-panel/tab-panel.component';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class Tabs2Module {
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: Tabs2Module, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
11
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: Tabs2Module, imports: [TabsComponent, TabsListComponent, TabDirective, TabsContentComponent, TabPanelComponent], exports: [TabsComponent, TabsListComponent, TabDirective, TabsContentComponent, TabPanelComponent] }); }
|
|
12
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: Tabs2Module, providers: [TabsService] }); }
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: Tabs2Module, decorators: [{
|
|
15
|
+
type: NgModule,
|
|
16
|
+
args: [{
|
|
17
|
+
imports: [TabsComponent, TabsListComponent, TabDirective, TabsContentComponent, TabPanelComponent],
|
|
18
|
+
exports: [TabsComponent, TabsListComponent, TabDirective, TabsContentComponent, TabPanelComponent],
|
|
19
|
+
providers: [TabsService]
|
|
20
|
+
}]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiczIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi90YWJzLTIvdGFiczIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBT3BFLE1BQU0sT0FBTyxXQUFXOzhHQUFYLFdBQVc7K0dBQVgsV0FBVyxZQUpaLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLGFBQ3ZGLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCOytHQUd0RixXQUFXLGFBRlgsQ0FBQyxXQUFXLENBQUM7OzJGQUViLFdBQVc7a0JBTHZCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQztvQkFDbEcsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQztvQkFDbEcsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJzU2VydmljZSB9IGZyb20gJy4vdGFicy5zZXJ2aWNlJztcbmltcG9ydCB7IFRhYnNDb21wb25lbnQgfSBmcm9tICcuL3RhYnMuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYkRpcmVjdGl2ZSB9IGZyb20gJy4vdGFiL3RhYi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGFic0xpc3RDb21wb25lbnQgfSBmcm9tICcuL3RhYnMtbGlzdC90YWJzLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYnNDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi90YWJzLWNvbnRlbnQvdGFicy1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJQYW5lbENvbXBvbmVudCB9IGZyb20gJy4vdGFiLXBhbmVsL3RhYi1wYW5lbC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbVGFic0NvbXBvbmVudCwgVGFic0xpc3RDb21wb25lbnQsIFRhYkRpcmVjdGl2ZSwgVGFic0NvbnRlbnRDb21wb25lbnQsIFRhYlBhbmVsQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW1RhYnNDb21wb25lbnQsIFRhYnNMaXN0Q29tcG9uZW50LCBUYWJEaXJlY3RpdmUsIFRhYnNDb250ZW50Q29tcG9uZW50LCBUYWJQYW5lbENvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW1RhYnNTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJzMk1vZHVsZSB7fVxuIl19
|
|
@@ -5,10 +5,10 @@ export class DayPeriodElementDirective {
|
|
|
5
5
|
constructor(elementRef) {
|
|
6
6
|
this.elementRef = elementRef;
|
|
7
7
|
}
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
9
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DayPeriodElementDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
9
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: DayPeriodElementDirective, isStandalone: true, selector: "[cDayPeriodElement]", inputs: { cDayPeriodElement: "cDayPeriodElement" }, exportAs: ["cDayPeriodElement"], ngImport: i0 }); }
|
|
10
10
|
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DayPeriodElementDirective, decorators: [{
|
|
12
12
|
type: Directive,
|
|
13
13
|
args: [{
|
|
14
14
|
selector: '[cDayPeriodElement]',
|
|
@@ -80,10 +80,10 @@ export class TimePickerRollAmPmComponent {
|
|
|
80
80
|
this.handleElementClick($event, element);
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
84
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.
|
|
83
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TimePickerRollAmPmComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
84
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: TimePickerRollAmPmComponent, isStandalone: true, selector: "c-time-picker-roll-am-pm", inputs: { disabled: ["disabled", "disabled", booleanAttribute], elements: "elements", onClick: "onClick", selected: "selected", refresh: ["refresh", "refresh", booleanAttribute] }, outputs: { selectedChange: "selectedChange" }, host: { properties: { "class": "this.hostClasses" } }, viewQueries: [{ propertyName: "dayPeriodElements", predicate: DayPeriodElementDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@for (element of elements; track element; let i = $index) {\n <div (click)=\"handleElementClick($event, element)\"\n (keydown)=\"handleElementKeyDown($event, element)\"\n [attr.disabled]=\"element.disabled || null\"\n [cDayPeriodElement]=\"element\"\n [ngClass]=\"{'time-picker-roll-cell': true, selected: element.value === selected, disabled: element.disabled}\"\n [tabindex]=\"element.disabled ? -1 : 0\"\n role=\"button\"\n >\n {{ element.label }}\n </div>\n}\n", styles: [":host{display:block}:host .disabled{pointer-events:none}\n"], dependencies: [{ kind: "directive", type: DayPeriodElementDirective, selector: "[cDayPeriodElement]", inputs: ["cDayPeriodElement"], exportAs: ["cDayPeriodElement"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
85
85
|
}
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
86
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TimePickerRollAmPmComponent, decorators: [{
|
|
87
87
|
type: Component,
|
|
88
88
|
args: [{ selector: 'c-time-picker-roll-am-pm', standalone: true, imports: [DayPeriodElementDirective, NgClass], template: "@for (element of elements; track element; let i = $index) {\n <div (click)=\"handleElementClick($event, element)\"\n (keydown)=\"handleElementKeyDown($event, element)\"\n [attr.disabled]=\"element.disabled || null\"\n [cDayPeriodElement]=\"element\"\n [ngClass]=\"{'time-picker-roll-cell': true, selected: element.value === selected, disabled: element.disabled}\"\n [tabindex]=\"element.disabled ? -1 : 0\"\n role=\"button\"\n >\n {{ element.label }}\n </div>\n}\n", styles: [":host{display:block}:host .disabled{pointer-events:none}\n"] }]
|
|
89
89
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { disabled: [{
|
|
@@ -5,10 +5,10 @@ export class TimeElementDirective {
|
|
|
5
5
|
constructor(elementRef) {
|
|
6
6
|
this.elementRef = elementRef;
|
|
7
7
|
}
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
9
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TimeElementDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
9
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: TimeElementDirective, isStandalone: true, selector: "[cTimeElement]", inputs: { cTimeElement: "cTimeElement" }, exportAs: ["cTimeElement"], ngImport: i0 }); }
|
|
10
10
|
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TimeElementDirective, decorators: [{
|
|
12
12
|
type: Directive,
|
|
13
13
|
args: [{
|
|
14
14
|
selector: '[cTimeElement]',
|
|
@@ -84,10 +84,10 @@ export class TimePickerRollColComponent {
|
|
|
84
84
|
this.handleElementClick($event, element);
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
88
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.
|
|
87
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TimePickerRollColComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
88
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: TimePickerRollColComponent, isStandalone: true, selector: "c-time-picker-roll-col", inputs: { disabled: ["disabled", "disabled", booleanAttribute], elements: "elements", onClick: "onClick", selected: "selected", refresh: ["refresh", "refresh", booleanAttribute] }, outputs: { selectedChange: "selectedChange" }, host: { properties: { "class": "this.hostClasses" } }, viewQueries: [{ propertyName: "timeElements", predicate: TimeElementDirective, descendants: true }], exportAs: ["cTimePickerRollCol"], usesOnChanges: true, ngImport: i0, template: "@for (element of elements; track element; let i = $index) {\n <div (click)=\"handleElementClick($event, element)\"\n (keydown)=\"handleElementKeyDown($event, element)\"\n [attr.disabled]=\"element.disabled || null\"\n [cTimeElement]=\"element\"\n [ngClass]=\"{'time-picker-roll-cell': true, selected: element.value === selected, disabled: element.disabled}\"\n [tabindex]=\"element.disabled ? -1 : 0\"\n role=\"button\"\n >\n {{ element.label }}\n </div>\n}\n\n", styles: [":host{display:block}:host .disabled{pointer-events:none}\n"], dependencies: [{ kind: "directive", type: TimeElementDirective, selector: "[cTimeElement]", inputs: ["cTimeElement"], exportAs: ["cTimeElement"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
89
89
|
}
|
|
90
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TimePickerRollColComponent, decorators: [{
|
|
91
91
|
type: Component,
|
|
92
92
|
args: [{ selector: 'c-time-picker-roll-col', exportAs: 'cTimePickerRollCol', standalone: true, imports: [TimeElementDirective, NgClass], template: "@for (element of elements; track element; let i = $index) {\n <div (click)=\"handleElementClick($event, element)\"\n (keydown)=\"handleElementKeyDown($event, element)\"\n [attr.disabled]=\"element.disabled || null\"\n [cTimeElement]=\"element\"\n [ngClass]=\"{'time-picker-roll-cell': true, selected: element.value === selected, disabled: element.disabled}\"\n [tabindex]=\"element.disabled ? -1 : 0\"\n role=\"button\"\n >\n {{ element.label }}\n </div>\n}\n\n", styles: [":host{display:block}:host .disabled{pointer-events:none}\n"] }]
|
|
93
93
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { disabled: [{
|
|
@@ -429,8 +429,8 @@ export class TimePickerComponent {
|
|
|
429
429
|
}), takeUntilDestroyed(this.#destroyRef))
|
|
430
430
|
.subscribe();
|
|
431
431
|
}
|
|
432
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
433
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.
|
|
432
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
433
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", type: TimePickerComponent, isStandalone: true, selector: "c-time-picker", inputs: { cleaner: ["cleaner", "cleaner", booleanAttribute], dateTimeFormatOptions: "dateTimeFormatOptions", disabled: ["disabled", "disabled", booleanAttribute], filterHours: "filterHours", filterMinutes: "filterMinutes", filterSeconds: "filterSeconds", indicator: ["indicator", "indicator", booleanAttribute], inputReadOnly: ["inputReadOnly", "inputReadOnly", booleanAttribute], locale: "locale", placeholder: "placeholder", seconds: ["seconds", "seconds", booleanAttribute], size: "size", time: "time", variant: "variant", valid: "valid", visible: ["visible", "visible", booleanAttribute] }, outputs: { timeChange: "timeChange" }, host: { listeners: { "blur": "onBlur()" } }, providers: [
|
|
434
434
|
{
|
|
435
435
|
provide: NG_VALUE_ACCESSOR,
|
|
436
436
|
useExisting: forwardRef(() => TimePickerComponent),
|
|
@@ -438,7 +438,7 @@ export class TimePickerComponent {
|
|
|
438
438
|
}
|
|
439
439
|
], queries: [{ propertyName: "contentTemplates", predicate: TemplateIdDirective, descendants: true }], viewQueries: [{ propertyName: "dropdownRef", first: true, predicate: DropdownComponent, descendants: true, read: ElementRef }], exportAs: ["cTimePicker"], usesOnChanges: true, ngImport: i0, template: "@if (variant === 'select') {\n <div class=\"date-picker-timepickers\">\n <div class=\"picker time-picker\">\n <div [formGroup]=\"selectTime\" [ngClass]=\"timePickerClasses\" class=\"time-picker-body\">\n <span class=\"time-picker-inline-icon\"></span>\n <select (blur)=\"onBlur()\" [attr.disabled]=\"disabled || null\" [sizing]=\"size ?? ''\"\n cSelect class=\"time-picker-inline-select ms-0\" formControlName=\"selectHours\">\n @for (hour of listOfHours12; track hour; let i = $index) {\n <option [attr.disabled]=\"hour.disabled || null\" [ngValue]=\"hour.value\">\n {{ hour.label }}\n </option>\n }\n </select>\n {{ ' :' }}<select (blur)=\"onBlur()\" [attr.disabled]=\"disabled || null\" [sizing]=\"size ?? ''\"\n cSelect class=\"time-picker-inline-select ms-0\" formControlName=\"selectMinutes\">\n @for (minute of listOfMinutes; track minute; let i = $index) {\n <option [attr.disabled]=\"minute.disabled || null\" [ngValue]=\"minute.value\">\n {{ minute.label }}\n </option>\n }\n </select>\n @if (seconds) {\n {{ ' :' }}<select (blur)=\"onBlur()\" [attr.disabled]=\"disabled || null\" [sizing]=\"size ?? ''\"\n cSelect class=\"time-picker-inline-select ms-0\" formControlName=\"selectSeconds\">\n @for (second of listOfSeconds; track second; let i = $index) {\n <option [attr.disabled]=\"second.disabled || null\" [ngValue]=\"second.value\">\n {{ second.label }}\n </option>\n }\n </select>\n }\n @if (hour12) {\n <select (blur)=\"onBlur()\" [attr.disabled]=\"disabled || null\" [sizing]=\"size ?? ''\"\n cSelect class=\"time-picker-inline-select ms-0\" formControlName=\"selectDayPeriod\">\n @for (dayPeriod of dayPeriods; track dayPeriod) {\n <option [ngValue]=\"dayPeriod.value\" class=\"time-picker-roll-cell\">\n {{ dayPeriod.label }}\n </option>\n }\n </select>\n }\n </div>\n </div>\n </div>\n}\n@if (variant === 'roll') {\n <c-dropdown #dropdown=\"cDropdown\" [autoClose]=\"'outside'\" [ngClass]=\"timePickerClasses\" [visible]=\"visible\">\n <div [caret]=\"false\" cDropdownToggle class=\"time-picker-input-group\">\n <input (blur)=\"handleBlur($event);\"\n (change)=\"handleTimeInputChange($event)\"\n (focus)=\"handleFocus($event)\"\n [attr.disabled]=\"disabled ?? dropdown.visible ? '' : null\"\n [attr.pattern]=\"hour12 ? '(((0[1-9])|(1[0-2])):([0-5])([0-9])\\\\s(A|P)M)' : '([01]?[0-9]|2[0-3]):[0-5][0-9]'\"\n [attr.tabindex]=\"disabled ? -1 : 0\"\n [formControl]=\"timeInput\"\n [placeholder]=\"placeholder\"\n [readonly]=\"inputReadOnly ?? null\"\n class=\"time-picker-input\"\n >\n @if (indicator) {\n <div class=\"time-picker-indicator\"></div>\n }\n @if (cleaner && time && !disabled) {\n <div (click)=\"!disabled && handleClear($event)\" class=\"time-picker-cleaner\" role=\"button\"></div>\n }\n </div>\n <div #dropdownMenu=\"cDropdownMenu\" cDropdownMenu class=\"time-picker-dropdown py-0\">\n <div class=\"time-picker-body time-picker-roll\" style=\"position: relative;\">\n <c-time-picker-roll-col\n (selectedChange)=\"handleSelectTimeChange($event, 'hour')\"\n [disabled]=\"disabled\"\n [elements]=\"listOfHours12\"\n [refresh]=\"dropdownMenu.visible\"\n [selected]=\"hour\"\n role=\"listbox\"\n />\n <c-time-picker-roll-col\n (selectedChange)=\"handleSelectTimeChange($event, 'minute')\"\n [disabled]=\"disabled\"\n [elements]=\"listOfMinutes\"\n [refresh]=\"dropdownMenu.visible\"\n [selected]=\"minute\"\n role=\"listbox\"\n />\n @if (seconds) {\n <c-time-picker-roll-col\n (selectedChange)=\"handleSelectTimeChange($event, 'second')\"\n [disabled]=\"disabled\"\n [elements]=\"listOfSeconds\"\n [refresh]=\"dropdownMenu.visible\"\n [selected]=\"second\"\n role=\"listbox\"\n />\n }\n @if (hour12) {\n <c-time-picker-roll-am-pm\n (selectedChange)=\"handleSelectDayPeriodChange($event)\"\n [disabled]=\"disabled\"\n [elements]=\"dayPeriods\"\n [refresh]=\"dropdownMenu.visible\"\n [selected]=\"dayPeriod\"\n role=\"listbox\"\n />\n }\n </div>\n @if (templates?.timePickerFooter) {\n <div class=\"time-picker-footer\">\n <ng-container *ngTemplateOutlet=\"templates?.timePickerFooter; context: {$implicit: dropdown}\" />\n </div>\n }\n </div>\n </c-dropdown>\n}\n", styles: [".disabled{pointer-events:none}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { 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.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: DropdownComponent, selector: "c-dropdown", inputs: ["alignment", "autoClose", "direction", "placement", "popper", "popperOptions", "variant", "visible"], outputs: ["visibleChange"], exportAs: ["cDropdown"] }, { kind: "directive", type: DropdownToggleDirective, selector: "[cDropdownToggle]", inputs: ["dropdownComponent", "disabled", "caret", "split"], exportAs: ["cDropdownToggle"] }, { kind: "directive", type: DropdownMenuDirective, selector: "[cDropdownMenu]", inputs: ["alignment", "visible"], exportAs: ["cDropdownMenu"] }, { kind: "directive", type: FormSelectDirective, selector: "select[cSelect]", inputs: ["sizing", "valid"] }, { kind: "component", type: TimePickerRollColComponent, selector: "c-time-picker-roll-col", inputs: ["disabled", "elements", "onClick", "selected", "refresh"], outputs: ["selectedChange"], exportAs: ["cTimePickerRollCol"] }, { kind: "component", type: TimePickerRollAmPmComponent, selector: "c-time-picker-roll-am-pm", inputs: ["disabled", "elements", "onClick", "selected", "refresh"], outputs: ["selectedChange"] }] }); }
|
|
440
440
|
}
|
|
441
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
441
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TimePickerComponent, decorators: [{
|
|
442
442
|
type: Component,
|
|
443
443
|
args: [{ selector: 'c-time-picker', exportAs: 'cTimePicker', standalone: true, imports: [
|
|
444
444
|
NgClass,
|
|
@@ -2,11 +2,11 @@ import { NgModule } from '@angular/core';
|
|
|
2
2
|
import { TimePickerComponent } from './time-picker.component';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class TimePickerModule {
|
|
5
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
6
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.
|
|
7
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: TimePickerModule, imports: [TimePickerComponent], exports: [TimePickerComponent] }); }
|
|
7
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TimePickerModule, imports: [TimePickerComponent] }); }
|
|
8
8
|
}
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TimePickerModule, decorators: [{
|
|
10
10
|
type: NgModule,
|
|
11
11
|
args: [{
|
|
12
12
|
imports: [TimePickerComponent],
|