@cute-widgets/base 20.0.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/CHANGELOG.md +1 -0
- package/LICENSE.md +191 -0
- package/README.md +190 -0
- package/abstract/index.d.ts +327 -0
- package/alert/index.d.ts +68 -0
- package/autocomplete/index.d.ts +442 -0
- package/badge/index.d.ts +26 -0
- package/bottom-sheet/index.d.ts +231 -0
- package/button/index.d.ts +182 -0
- package/button-toggle/index.d.ts +225 -0
- package/card/index.d.ts +163 -0
- package/checkbox/index.d.ts +174 -0
- package/chips/index.d.ts +963 -0
- package/collapse/index.d.ts +97 -0
- package/core/animation/index.d.ts +43 -0
- package/core/datetime/index.d.ts +404 -0
- package/core/directives/index.d.ts +168 -0
- package/core/error/index.d.ts +74 -0
- package/core/index.d.ts +1039 -0
- package/core/interfaces/index.d.ts +114 -0
- package/core/layout/index.d.ts +53 -0
- package/core/line/index.d.ts +37 -0
- package/core/nav/index.d.ts +321 -0
- package/core/observers/index.d.ts +124 -0
- package/core/option/index.d.ts +185 -0
- package/core/pipes/index.d.ts +53 -0
- package/core/ripple/index.d.ts +66 -0
- package/core/testing/index.d.ts +154 -0
- package/core/theming/index.d.ts +118 -0
- package/core/types/index.d.ts +53 -0
- package/core/utils/index.d.ts +129 -0
- package/cute-widgets-base-20.0.1.tgz +0 -0
- package/datepicker/index.d.ts +1817 -0
- package/dialog/index.d.ts +484 -0
- package/divider/index.d.ts +24 -0
- package/expansion/README.md +8 -0
- package/expansion/index.d.ts +308 -0
- package/fesm2022/cute-widgets-base-abstract.mjs +547 -0
- package/fesm2022/cute-widgets-base-abstract.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-alert.mjs +198 -0
- package/fesm2022/cute-widgets-base-alert.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-autocomplete.mjs +1217 -0
- package/fesm2022/cute-widgets-base-autocomplete.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-badge.mjs +75 -0
- package/fesm2022/cute-widgets-base-badge.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-bottom-sheet.mjs +416 -0
- package/fesm2022/cute-widgets-base-bottom-sheet.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-button-toggle.mjs +640 -0
- package/fesm2022/cute-widgets-base-button-toggle.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-button.mjs +546 -0
- package/fesm2022/cute-widgets-base-button.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-card.mjs +471 -0
- package/fesm2022/cute-widgets-base-card.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-checkbox.mjs +390 -0
- package/fesm2022/cute-widgets-base-checkbox.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-chips.mjs +2360 -0
- package/fesm2022/cute-widgets-base-chips.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-collapse.mjs +259 -0
- package/fesm2022/cute-widgets-base-collapse.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-core-animation.mjs +53 -0
- package/fesm2022/cute-widgets-base-core-animation.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-core-datetime.mjs +568 -0
- package/fesm2022/cute-widgets-base-core-datetime.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-core-directives.mjs +404 -0
- package/fesm2022/cute-widgets-base-core-directives.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-core-error.mjs +105 -0
- package/fesm2022/cute-widgets-base-core-error.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-core-interfaces.mjs +22 -0
- package/fesm2022/cute-widgets-base-core-interfaces.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-core-layout.mjs +74 -0
- package/fesm2022/cute-widgets-base-core-layout.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-core-line.mjs +87 -0
- package/fesm2022/cute-widgets-base-core-line.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-core-nav.mjs +863 -0
- package/fesm2022/cute-widgets-base-core-nav.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-core-observers.mjs +304 -0
- package/fesm2022/cute-widgets-base-core-observers.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-core-option.mjs +373 -0
- package/fesm2022/cute-widgets-base-core-option.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-core-pipes.mjs +97 -0
- package/fesm2022/cute-widgets-base-core-pipes.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-core-ripple.mjs +172 -0
- package/fesm2022/cute-widgets-base-core-ripple.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-core-testing.mjs +210 -0
- package/fesm2022/cute-widgets-base-core-testing.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-core-theming.mjs +314 -0
- package/fesm2022/cute-widgets-base-core-theming.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-core-types.mjs +22 -0
- package/fesm2022/cute-widgets-base-core-types.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-core-utils.mjs +257 -0
- package/fesm2022/cute-widgets-base-core-utils.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-core.mjs +1600 -0
- package/fesm2022/cute-widgets-base-core.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-datepicker.mjs +4827 -0
- package/fesm2022/cute-widgets-base-datepicker.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-dialog.mjs +1046 -0
- package/fesm2022/cute-widgets-base-dialog.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-divider.mjs +86 -0
- package/fesm2022/cute-widgets-base-divider.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-expansion.mjs +623 -0
- package/fesm2022/cute-widgets-base-expansion.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-form-field.mjs +969 -0
- package/fesm2022/cute-widgets-base-form-field.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-grid-list.mjs +715 -0
- package/fesm2022/cute-widgets-base-grid-list.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-icon.mjs +1105 -0
- package/fesm2022/cute-widgets-base-icon.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-input.mjs +726 -0
- package/fesm2022/cute-widgets-base-input.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-layout-container.mjs +95 -0
- package/fesm2022/cute-widgets-base-layout-container.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-layout-stack.mjs +166 -0
- package/fesm2022/cute-widgets-base-layout-stack.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-layout.mjs +250 -0
- package/fesm2022/cute-widgets-base-layout.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-list.mjs +1557 -0
- package/fesm2022/cute-widgets-base-list.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-menu.mjs +1283 -0
- package/fesm2022/cute-widgets-base-menu.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-navbar.mjs +359 -0
- package/fesm2022/cute-widgets-base-navbar.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-paginator.mjs +485 -0
- package/fesm2022/cute-widgets-base-paginator.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-progress.mjs +321 -0
- package/fesm2022/cute-widgets-base-progress.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-radio.mjs +637 -0
- package/fesm2022/cute-widgets-base-radio.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-select.mjs +1208 -0
- package/fesm2022/cute-widgets-base-select.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-sidenav.mjs +1095 -0
- package/fesm2022/cute-widgets-base-sidenav.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-slider.mjs +99 -0
- package/fesm2022/cute-widgets-base-slider.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-snack-bar.mjs +897 -0
- package/fesm2022/cute-widgets-base-snack-bar.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-sort.mjs +639 -0
- package/fesm2022/cute-widgets-base-sort.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-spinner.mjs +154 -0
- package/fesm2022/cute-widgets-base-spinner.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-stepper.mjs +673 -0
- package/fesm2022/cute-widgets-base-stepper.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-table.mjs +1023 -0
- package/fesm2022/cute-widgets-base-table.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-tabs.mjs +729 -0
- package/fesm2022/cute-widgets-base-tabs.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-timepicker.mjs +965 -0
- package/fesm2022/cute-widgets-base-timepicker.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-toolbar.mjs +120 -0
- package/fesm2022/cute-widgets-base-toolbar.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-tooltip.mjs +947 -0
- package/fesm2022/cute-widgets-base-tooltip.mjs.map +1 -0
- package/fesm2022/cute-widgets-base-tree.mjs +598 -0
- package/fesm2022/cute-widgets-base-tree.mjs.map +1 -0
- package/fesm2022/cute-widgets-base.mjs +68 -0
- package/fesm2022/cute-widgets-base.mjs.map +1 -0
- package/form-field/index.d.ts +401 -0
- package/grid-list/index.d.ts +361 -0
- package/icon/index.d.ts +477 -0
- package/index.d.ts +3 -0
- package/input/index.d.ts +256 -0
- package/layout/container/index.d.ts +31 -0
- package/layout/index.d.ts +78 -0
- package/layout/stack/index.d.ts +52 -0
- package/list/index.d.ts +659 -0
- package/menu/index.d.ts +497 -0
- package/navbar/index.d.ts +91 -0
- package/package.json +279 -0
- package/paginator/index.d.ts +216 -0
- package/progress/index.d.ts +130 -0
- package/radio/index.d.ts +259 -0
- package/select/index.d.ts +426 -0
- package/sidenav/index.d.ts +369 -0
- package/slider/index.d.ts +48 -0
- package/snack-bar/index.d.ts +374 -0
- package/sort/index.d.ts +334 -0
- package/spinner/index.d.ts +70 -0
- package/stepper/index.d.ts +295 -0
- package/table/index.d.ts +395 -0
- package/tabs/index.d.ts +307 -0
- package/timepicker/index.d.ts +350 -0
- package/toolbar/index.d.ts +36 -0
- package/tooltip/index.d.ts +299 -0
- package/tree/index.d.ts +314 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cute-widgets-base-tabs.mjs","sources":["../../../../projects/cute-widgets/base/tabs/src/tab-label.directive.ts","../../../../projects/cute-widgets/base/tabs/src/tab-content.directive.ts","../../../../projects/cute-widgets/base/tabs/src/tab-group.component.ts","../../../../projects/cute-widgets/base/tabs/src/tab-group.component.html","../../../../projects/cute-widgets/base/tabs/src/tab.component.ts","../../../../projects/cute-widgets/base/tabs/src/tab.component.html","../../../../projects/cute-widgets/base/tabs/src/tabs.module.ts","../../../../projects/cute-widgets/base/tabs/cute-widgets-base-tabs.ts"],"sourcesContent":["/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive, InjectionToken, inject} from '@angular/core';\r\nimport {CUTE_TAB} from \"./tab.component\";\r\n\r\n/**\r\n * Injection token that can be used to reference instances of `CuteTabLabel`. It serves as\r\n * alternative token to the actual `CuteTabLabel` class which could cause unnecessary\r\n * retention of the class and its directive metadata.\r\n */\r\nexport const CUTE_TAB_LABEL = new InjectionToken<CuteTabLabel>('CuteTabLabel');\r\n\r\n/** Used to flag tab labels for use with the portal directive */\r\n@Directive({\r\n selector: 'ng-template[cute-tab-label], ng-template[cuteTabLabel]',\r\n exportAs: 'cuteTabLabel',\r\n providers: [{provide: CUTE_TAB_LABEL, useExisting: CuteTabLabel}],\r\n})\r\nexport class CuteTabLabel {\r\n _closestTab = inject(CUTE_TAB, {optional: true});\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {Directive, InjectionToken, TemplateRef, inject} from '@angular/core';\r\n\r\n/**\r\n * Injection token that can be used to reference instances of `CuteTabContent`. It serves as\r\n * alternative token to the actual `CuteTabContent` class which could cause unnecessary\r\n * retention of the class and its directive metadata.\r\n */\r\nexport const CUTE_TAB_CONTENT = new InjectionToken<CuteTabContent>('CuteTabContent');\r\n\r\n/** Decorates the `ng-template` tags and reads out the template from it. */\r\n@Directive({\r\n selector: 'ng-template[cute-tab-content], ng-template[cuteTabContent]',\r\n providers: [{provide: CUTE_TAB_CONTENT, useExisting: CuteTabContent}],\r\n})\r\nexport class CuteTabContent {\r\n template = inject<TemplateRef<any>>(TemplateRef);\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n Component,\r\n Input,\r\n Output,\r\n ContentChildren,\r\n QueryList,\r\n ViewChildren,\r\n EventEmitter,\r\n TemplateRef,\r\n ChangeDetectionStrategy,\r\n ViewEncapsulation,\r\n InjectionToken,\r\n forwardRef,\r\n numberAttribute,\r\n booleanAttribute, ViewContainerRef, ViewChild, ComponentRef, ElementRef, inject, DestroyRef\r\n} from '@angular/core';\r\nimport {CuteTab} from './tab.component';\r\nimport {CdkDrag, CdkDragDrop, CdkDragHandle, CdkDropList, moveItemInArray} from '@angular/cdk/drag-drop';\r\nimport {animate, animation, state, style} from '@angular/animations';\r\nimport {NgTemplateOutlet} from \"@angular/common\";\r\nimport {CuteLayoutControl} from \"@cute-widgets/base/abstract\";\r\nimport {\r\n CuteNavChangeEvent,\r\n CuteNavChangingEvent,\r\n CuteNavLink,\r\n CuteNavModule,\r\n CuteNavStretch\r\n} from \"@cute-widgets/base/core/nav\";\r\nimport {FocusOrigin} from \"@angular/cdk/a11y\";\r\nimport {ContentAlignment, ViewportEdge} from \"@cute-widgets/base/core\";\r\nimport {CuteButton} from \"@cute-widgets/base/button\";\r\nimport {debounceTime, fromEvent} from \"rxjs\";\r\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\r\nimport {CuteObserveVisibility} from \"@cute-widgets/base/core/observers\";\r\n\r\nexport const transitionAnimation = animation([\r\n state('void', style({ transform: 'translateX({{offset}})', opacity: 0 })),\r\n animate('300ms ease-out', style({ transform: 'translateX(0)', opacity: 1 })),\r\n], { params: { offset: '30px' }});\r\n\r\nlet nextId: number = 0;\r\n\r\n/**\r\n * Used to provide a tab group to a tab without causing a circular dependency.\r\n */\r\nexport const CUTE_TAB_GROUP = new InjectionToken<CuteTabGroup>('CUTE_TAB_GROUP');\r\n\r\n/** Cancelable event emitted when the `cute-tab` selection is about to change. */\r\nexport class CuteTabChangingEvent extends Event {\r\n constructor(\r\n /** Index of the currently-selected tab. */\r\n readonly index : number,\r\n /** Reference to the currently-selected tab. */\r\n readonly tab: CuteTab,\r\n /** Index of the previously-selected tab. */\r\n readonly fromIndex: number | null,\r\n /** Reference to the previously-selected tab. */\r\n readonly fromTab: CuteTab | null,\r\n /** How the tab was focused. */\r\n readonly origin: FocusOrigin,\r\n ) {\r\n super(\"tabChanging\", {cancelable: true});\r\n }\r\n}\r\n\r\n/** A simple change event emitted on focus or selection changes. */\r\nexport class CuteTabChangeEvent extends Event {\r\n constructor(\r\n /** Index of the currently-selected tab. */\r\n readonly index : number,\r\n /** Reference to the currently-selected tab. */\r\n readonly tab: CuteTab,\r\n /** Index of the previously-selected tab. */\r\n readonly fromIndex: number | null,\r\n /** Reference to the previously-selected tab. */\r\n readonly fromTab: CuteTab | null,\r\n /** How the tab was focused. */\r\n readonly origin: FocusOrigin,\r\n ) {\r\n super(\"tabChange\");\r\n }\r\n}\r\n\r\n/**\r\n * A flexible, feature-rich tab component for Angular applications with Bootstrap integration.\r\n */\r\n@Component({\r\n selector: 'cute-tab-group',\r\n templateUrl: './tab-group.component.html',\r\n styleUrls: ['./tab-group.component.scss'],\r\n exportAs: \"cuteTabGroup\",\r\n host: {\r\n \"class\": \"cute-tab-group\",\r\n \"[class.tabs-top]\": \"headerPosition === 'top'\",\r\n \"[class.tabs-bottom]\": \"headerPosition === 'bottom'\",\r\n \"[class.tabs-left]\": \"headerPosition === 'left'\",\r\n \"[class.tabs-right]\": \"headerPosition === 'right'\",\r\n \"[class.tabs-end]\": \"headerPosition === 'end'\",\r\n \"[class.tabs-start]\": \"headerPosition === 'start'\",\r\n },\r\n imports: [\r\n CdkDropList,\r\n CdkDrag,\r\n NgTemplateOutlet,\r\n CuteNavModule,\r\n CuteButton,\r\n CuteObserveVisibility,\r\n ],\r\n providers: [\r\n {provide: CUTE_TAB_GROUP, useExisting: forwardRef(()=> CuteTabGroup)},\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class CuteTabGroup extends CuteLayoutControl {\r\n private _indexToChange: number | null = null;\r\n private _scrollDebounce: number | undefined;\r\n private _resizeObserver: ResizeObserver | undefined;\r\n\r\n protected showScrollButtons = false;\r\n protected canScrollLeft = false;\r\n protected canScrollRight = false;\r\n /** Number of pixels to scroll left or right */\r\n protected scrollAmount: number = 200;\r\n protected dynamicTabs: ComponentRef<CuteTab>[] = [];\r\n\r\n protected destroyRef = inject(DestroyRef);\r\n\r\n @ContentChildren(CuteTab)\r\n protected tabs: QueryList<CuteTab> | undefined;\r\n\r\n @ViewChildren('tabLink', {read: CuteNavLink})\r\n protected tabLinks: QueryList<CuteNavLink> | undefined;\r\n\r\n @ViewChild('dynamicTabs', {read: ViewContainerRef, static: true})\r\n protected dynamicTabsContainer: ViewContainerRef | undefined;\r\n\r\n @ViewChild('headerContainer', {static: true})\r\n headerContainer!: ElementRef<HTMLElement>;\r\n\r\n @ViewChild('headerScroll', {static: true})\r\n headerScroll!: ElementRef<HTMLElement>;\r\n\r\n /** The index of the active tab. */\r\n @Input({transform: numberAttribute})\r\n get selectedIndex(): number|undefined {return this._selectedIndex;}\r\n set selectedIndex(value: number) {\r\n if (value !== this._selectedIndex) {\r\n this._indexToChange = value;\r\n Promise.resolve().then(()=> this.selectTab(value));\r\n }\r\n }\r\n private _selectedIndex: number | undefined;\r\n\r\n /**\r\n * Alignment for tabs.\r\n * @default start\r\n */\r\n @Input({ alias: 'cute-align-tabs' })\r\n alignTabs: ContentAlignment = \"start\";\r\n\r\n /**\r\n * The style a `cute-tab`’s content extends the full available width, proportionately (**fill**) or equal-width (**justified**).\r\n * The width is determined by the longest `cute-tab-label`'s content. By default, stretching of items is not used (**none**).\r\n */\r\n @Input({alias: 'cute-stretch-tabs'})\r\n get stretchTabs(): CuteNavStretch { return this._stretchTabs; }\r\n set stretchTabs(value: CuteNavStretch|boolean|\"false\"|\"true\"|undefined) {\r\n if (value) {\r\n if (typeof value===\"boolean\" || value===\"true\" || value===\"false\") {\r\n this._stretchTabs = Boolean(value) ? \"justified\" : \"none\";\r\n } else {\r\n this._stretchTabs = value;\r\n }\r\n } else {\r\n this._stretchTabs = \"none\";\r\n }\r\n }\r\n private _stretchTabs: CuteNavStretch = \"none\";\r\n\r\n /**\r\n * By default, tabs remove their lazy content from the DOM while it's off-screen. Setting this to _true_ will keep it in the DOM,\r\n * which will prevent elements like `iframe` and `video` from reloading next time it comes back into the view.\r\n */\r\n @Input({ transform: booleanAttribute })\r\n preserveContent: boolean | undefined;\r\n\r\n /** Whether the tab group will change its height to the height of the currently active tab. */\r\n @Input({transform: booleanAttribute})\r\n dynamicHeight: boolean = false;\r\n\r\n /**\r\n * Possible positions for the tab header.\r\n * @default top\r\n */\r\n @Input() headerPosition: ViewportEdge = 'top';\r\n\r\n /** Use `underline` style for horizontal tabs. */\r\n @Input({transform: booleanAttribute})\r\n underlineTabs: boolean = false;\r\n\r\n /**\r\n * Whether tabs can be draggable.\r\n * @default false\r\n */\r\n @Input({transform: booleanAttribute})\r\n dragEnabled = false;\r\n\r\n /**\r\n * Defines the horizontal alignment when scrolling the tabs.\r\n * @default center\r\n */\r\n @Input()\r\n tabScrollingAlignment: ScrollLogicalPosition = \"center\";\r\n\r\n /** Output to enable support for two-way binding on `[(selectedIndex)]` */\r\n @Output() selectedIndexChange = new EventEmitter<number>();\r\n\r\n /** Event emitted when the active tab selection is about to change. */\r\n @Output() selectedTabChanging = new EventEmitter<CuteTabChangingEvent>();\r\n\r\n /** Event emitted when the tab selection has changed. */\r\n @Output() selectedTabChange = new EventEmitter<CuteTabChangeEvent>();\r\n\r\n /** Event emitted when focus has changed within a tab group. */\r\n @Output() focusChange = new EventEmitter<CuteTabChangeEvent>();\r\n\r\n /** Event emitted after the new tab was added. */\r\n @Output() tabAdded = new EventEmitter<void>();\r\n\r\n /** Event emitted after the closable tab was removed. */\r\n @Output() tabRemoved = new EventEmitter<number>();\r\n\r\n constructor() {\r\n super();\r\n }\r\n\r\n /** Whether the tab group currently has a horizontal layout */\r\n get isHorizontal(): boolean {\r\n return this.headerPosition === 'top' || this.headerPosition === 'bottom';\r\n }\r\n\r\n /** The active tab. */\r\n get selectedTab(): CuteTab | undefined {\r\n return this.tabs?.get(this.selectedIndex ?? NaN);\r\n }\r\n\r\n /** The number of tabs in the tab group. */\r\n get tabCount(): number {\r\n return this.tabs?.length || 0;\r\n }\r\n\r\n /**\r\n * Returns the first element in the array of tabs that satisfies the provided testing function.\r\n * Otherwise, _undefined_ is returned.\r\n * @param predicate Testing function\r\n * @returns `CuteTab` object or _undefined_ if there are no tabs with the specified condition.\r\n */\r\n findTab(predicate: (tab: CuteTab, index: number) => boolean): CuteTab | undefined {\r\n return this.tabs?.find(predicate);\r\n }\r\n\r\n protected override generateId(): string {\r\n return `cute-tab-group-${nextId++}`;\r\n }\r\n\r\n private checkScrollButtons() {\r\n const el = this.headerScroll.nativeElement;\r\n this.showScrollButtons = el.scrollWidth > el.clientWidth;\r\n this.canScrollLeft = el.scrollLeft > 0;\r\n this.canScrollRight = el.scrollLeft < el.scrollWidth - el.clientWidth - 1;\r\n //this._changeDetectorRef.detectChanges();\r\n this.markForCheck();\r\n }\r\n\r\n private setupScrollListener() {\r\n fromEvent(this.headerScroll.nativeElement, 'scroll')\r\n .pipe(debounceTime(100), takeUntilDestroyed(this.destroyRef))\r\n .subscribe(() => this.checkScrollButtons());\r\n\r\n this._resizeObserver = new ResizeObserver(() => {\r\n this.checkScrollButtons();\r\n //setTimeout(()=>this.scrollToTab( this.selectedIndex ));\r\n });\r\n this._resizeObserver.observe(this.headerContainer.nativeElement);\r\n }\r\n\r\n protected scrollHeader(direction: number) {\r\n const el = this.headerScroll.nativeElement;\r\n\r\n clearTimeout(this._scrollDebounce);\r\n el.scrollBy({\r\n left: direction * this.scrollAmount,\r\n behavior: 'smooth'\r\n });\r\n\r\n this._scrollDebounce = setTimeout(() => {\r\n this.checkScrollButtons();\r\n }, 300);\r\n }\r\n\r\n /**\r\n * Activates tab with specified index.\r\n * @param index Tab index\r\n * @param origin (optional) Focus origin\r\n */\r\n selectTab(index: number, origin: FocusOrigin=\"program\") {\r\n if (!this.tabs) return;\r\n if (index < 0 || index >= this.tabs.length) return;\r\n if (index === this.selectedIndex) return;\r\n const tabsArray = this.tabs.toArray();\r\n if (tabsArray[index].disabled) return;\r\n\r\n this._indexToChange = null;\r\n this._selectedIndex = index;\r\n\r\n this.tabs.forEach((tab, i) => {\r\n tab.active = (i === index);\r\n });\r\n\r\n setTimeout(() => {\r\n if (tabsArray[index].scrollNeeded) {\r\n this.scrollToTab(index);\r\n }\r\n }, 100);\r\n\r\n this.selectedIndexChange.emit(index);\r\n\r\n this.markForCheck();\r\n }\r\n\r\n private _createChangeEvent(event: CuteNavChangeEvent): CuteTabChangeEvent {\r\n const tabsArray = this.tabs?.toArray() ?? [];\r\n return new CuteTabChangeEvent(event.index,\r\n tabsArray[event.index],\r\n event.fromIndex,\r\n event.fromIndex ? tabsArray[event.fromIndex] : null,\r\n event.origin\r\n );\r\n }\r\n\r\n private _createChangingEvent(event: CuteNavChangingEvent): CuteTabChangingEvent {\r\n const tabsArray = this.tabs?.toArray() ?? [];\r\n return new CuteTabChangeEvent(event.index,\r\n tabsArray[event.index],\r\n event.fromIndex,\r\n event.fromIndex ? tabsArray[event.fromIndex] : null,\r\n event.origin\r\n );\r\n }\r\n\r\n protected onNavFocusChange(event: CuteNavChangeEvent) {\r\n this.focusChange.emit( this._createChangeEvent(event) );\r\n }\r\n\r\n protected onNavLinkChange(event: CuteNavChangeEvent) {\r\n this.selectedTabChange.emit( this._createChangeEvent(event) );\r\n }\r\n\r\n protected onNavLinkChanging(event: CuteNavChangingEvent) {\r\n const ev = this._createChangingEvent(event);\r\n this.selectedTabChanging.emit( ev );\r\n if (ev.defaultPrevented) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n protected getLabelContext(tab: CuteTab, index: number) {\r\n return {...tab.getContentContext(), index};\r\n }\r\n\r\n /** Gets the current index of the specified tab object. */\r\n getTabIndex(tab: CuteTab): number | undefined {\r\n return this.tabs?.toArray().indexOf(tab);\r\n }\r\n\r\n private scrollToTab(index: number|undefined) {\r\n if (index != null) {\r\n const tabElement = this.tabLinks?.toArray()[index]?.element.nativeElement;\r\n if (tabElement) {\r\n tabElement.scrollIntoView({\r\n behavior: 'smooth',\r\n block: 'nearest',\r\n inline: this.tabScrollingAlignment\r\n });\r\n }\r\n }\r\n }\r\n\r\n /** Drop event */\r\n protected onDrop(event: CdkDragDrop<CuteTab[]>): void {\r\n if (event.previousIndex === event.currentIndex) return;\r\n if (!this.tabs) return;\r\n\r\n const tabsArray = this.tabs.toArray();\r\n moveItemInArray(tabsArray, event.previousIndex, event.currentIndex);\r\n\r\n // Refresh QueryList\r\n this.tabs.reset(tabsArray);\r\n\r\n this._adjustActiveIndex(event.previousIndex, event.currentIndex);\r\n\r\n this.tabs.notifyOnChanges();\r\n }\r\n\r\n /** Sets a new active index after the dragging tabs */\r\n private _adjustActiveIndex(prevIndex: number, newIndex: number) {\r\n if (this.selectedIndex === prevIndex) {\r\n this.selectedIndex = newIndex;\r\n } else if (this.selectedIndex !== undefined) {\r\n const min = Math.min(prevIndex, newIndex);\r\n const max = Math.max(prevIndex, newIndex);\r\n if (this.selectedIndex >= min && this.selectedIndex <= max) {\r\n this.selectedIndex += (prevIndex < newIndex ? -1 : 1);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Adds a new tab to the end of `tab-group` dynamically.\r\n *\r\n * @param label Tab label\r\n * @param content Tab template reference\r\n * @param context (optional) Template context object\r\n * @param closable (optional) Whether the tab is closable. Default is _true_.\r\n * @returns `ComponentRef` object of the new Tab.\r\n */\r\n async addTab(label: string, content: TemplateRef<any>, context?: any, closable?: boolean): Promise<ComponentRef<CuteTab>> {\r\n const componentRef = this.dynamicTabsContainer!.createComponent(CuteTab);\r\n const newTab = componentRef.instance;\r\n newTab.textLabel = label || `Tab ${(this.tabs?.length??0) + 1}`;\r\n newTab.contentTemplate = content;\r\n newTab.contentContext = context;\r\n newTab.active = true; // !this.tabs || this.tabs.length === 0;\r\n newTab.isDynamic = true;\r\n //componentRef.setInput(\"closable\", true);\r\n newTab.closable = closable ?? true;\r\n componentRef.changeDetectorRef.detectChanges();\r\n this.dynamicTabs.push(componentRef);\r\n\r\n const tabsArray = this.tabs?.toArray() || [];\r\n tabsArray.push(newTab);\r\n this.tabs?.reset( tabsArray );\r\n\r\n this.tabAdded.emit();\r\n\r\n if (newTab.active) {\r\n this.selectTab(tabsArray.length - 1);\r\n }\r\n\r\n return componentRef;\r\n }\r\n\r\n /**\r\n * Removes the tab with specified index.\r\n * @param index Tab index\r\n */\r\n async removeTab(index: number) {\r\n if (!this.tabs) return;\r\n if (index < 0 || index >= this.tabs.length) return;\r\n\r\n const tab = this.tabs.get(index)!;\r\n const wasActive = tab.active;\r\n\r\n const dynIndex = this.dynamicTabs.findIndex(cref => cref.instance == tab);\r\n if (dynIndex >= 0) {\r\n this.dynamicTabsContainer?.remove(dynIndex);\r\n this.dynamicTabs.splice(dynIndex, 1);\r\n }\r\n\r\n const tabsArray = this.tabs.filter((_, i) => i !== index);\r\n this.tabs.reset( tabsArray );\r\n this.tabs.notifyOnChanges();\r\n\r\n this.tabRemoved.emit(index);\r\n\r\n if (wasActive && this.tabs.length > 0) {\r\n const newIndex = Math.min(index, this.tabs.length - 1);\r\n if (newIndex == index) {\r\n // To bypass verification\r\n this._selectedIndex = undefined;\r\n }\r\n this.selectedIndex = newIndex;\r\n this.tabs.get(newIndex)?.link?.focus();\r\n }\r\n\r\n //this.markForCheck();\r\n }\r\n\r\n override ngAfterViewInit() {\r\n super.ngAfterViewInit();\r\n\r\n this.checkScrollButtons();\r\n this.setupScrollListener();\r\n }\r\n\r\n override ngAfterContentInit() {\r\n super.ngAfterContentInit();\r\n if (this.tabs) {\r\n const tabsArray = this.tabs.toArray();\r\n if (this._indexToChange == null) {\r\n this.selectedIndex = Math.max( tabsArray.findIndex(t => !t.disabled), 0);\r\n }\r\n }\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this._resizeObserver?.disconnect();\r\n }\r\n\r\n}\r\n","<div class=\"tab-header-wrapper\" #headerContainer>\r\n <div class=\"tab-header-scroll\" #headerScroll\r\n cdkDropList\r\n [cdkDropListOrientation]=\"isHorizontal ? 'horizontal' : 'vertical'\"\r\n (cdkDropListDropped)=\"onDrop($event)\">\r\n <nav [cuteNav]=\"isHorizontal ? (underlineTabs ? 'underline' : 'tabs') : 'pills'\"\r\n [selectedIndex]=\"selectedIndex\"\r\n [alignment]=\"alignTabs\"\r\n [stretchItems]=\"stretchTabs\"\r\n [preserveTabContent]=\"preserveContent\"\r\n [color]=\"color\"\r\n [class.flex-column]=\"!isHorizontal\"\r\n (selectedIndexChange)=\"selectTab($event)\"\r\n (selectedLinkChanging)=\"onNavLinkChanging($event)\"\r\n (selectedLinkChange)=\"onNavLinkChange($event)\"\r\n (focusChange)=\"onNavFocusChange($event)\">\r\n @for (tab of tabs; track tab.id; let i = $index) {\r\n <li cute-nav-item\r\n cdkDrag\r\n [cdkDragDisabled]=\"!dragEnabled || tabCount <= 1\"\r\n [cdkDragData]=\"tab\">\r\n <a href=\"#\" cute-nav-link\r\n [cuteObserveVisibility]=\"1\"\r\n [cuteObserveVisibilityRoot]=\"headerScroll\"\r\n (cuteObserveVisibility)=\"tab._visibilityChanged($event)\"\r\n [active]=\"tab.active\"\r\n [disabled]=\"tab.disabled\"\r\n [id]=\"tab.ariaLabelledby || undefined\"\r\n [attr.aria-disabled]=\"tab.disabled\"\r\n [attr.aria-controls]=\"tab.id\"\r\n [attr.tabindex]=\"tab.active && !tab.disabled ? 0 : -1\"\r\n role=\"tab\"\r\n #tabLink>\r\n\r\n @if (tab._templateLabel) {\r\n <ng-container\r\n *ngTemplateOutlet=\"tab._templateLabel; context: getLabelContext(tab, i)\">\r\n </ng-container>\r\n } @else {\r\n <!-- <ng-container>-->\r\n <!-- @if (dragEnabled && tabCount > 1) {-->\r\n <!-- <span cdkDragHandle>☰</span>-->\r\n <!-- }-->\r\n {{ tab.textLabel || 'Tab '+i }}\r\n <!-- </ng-container>-->\r\n }\r\n\r\n @if (tab.closable && tab.isDynamic) {\r\n <button cuteButton=\"close-button\"\r\n magnitude=\"smallest\"\r\n tabIndex=\"-1\"\r\n (click)=\"removeTab(i); $event.preventDefault();\"\r\n aria-label=\"Close tab\">\r\n </button>\r\n }\r\n\r\n </a>\r\n </li>\r\n }\r\n </nav>\r\n\r\n </div>\r\n\r\n @if (showScrollButtons) {\r\n <button cuteButton class=\"scroll-button left\"\r\n tabindex=\"-1\"\r\n magnitude=\"smallest\"\r\n visuallyHiddenLabel=\"Prev\"\r\n aria-hidden=\"true\"\r\n (click)=\"scrollHeader(-1)\"\r\n [disabled]=\"!canScrollLeft\">\r\n <!--\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" class=\"bi bi-chevron-left\" viewBox=\"0 0 16 16\">\r\n <path fill-rule=\"evenodd\" d=\"M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0\"/>\r\n </svg>\r\n -->\r\n </button>\r\n <button cuteButton class=\"scroll-button right\"\r\n tabindex=\"-1\"\r\n magnitude=\"smallest\"\r\n visuallyHiddenLabel=\"Next\"\r\n aria-hidden=\"true\"\r\n (click)=\"scrollHeader(1)\"\r\n [disabled]=\"!canScrollRight\">\r\n <!--\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"currentColor\" class=\"bi bi-chevron-right\" viewBox=\"0 0 16 16\">\r\n <path fill-rule=\"evenodd\" d=\"M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708\"/>\r\n </svg>\r\n -->\r\n </button>\r\n <!--\r\n <div class=\"scroll-indicator\"\r\n [class.active]=\"showScrollButtons\"\r\n [class.left-visible]=\"canScrollLeft\"\r\n [class.right-visible]=\"canScrollRight\">\r\n </div>\r\n -->\r\n }\r\n\r\n</div>\r\n\r\n<div class=\"tab-content-wrapper\">\r\n<!-- <div class=\"tab-content\">-->\r\n <ng-content></ng-content>\r\n <ng-container #dynamicTabs></ng-container>\r\n<!-- </div>-->\r\n</div>\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * This code is a modification of the `@angular/material` original\r\n * code licensed under MIT-style License (https://angular.dev/license).\r\n */\r\nimport {\r\n Component,\r\n Input,\r\n TemplateRef,\r\n SimpleChanges,\r\n ChangeDetectionStrategy,\r\n ViewEncapsulation,\r\n InjectionToken,\r\n signal,\r\n ContentChild,\r\n booleanAttribute,\r\n inject,\r\n} from '@angular/core';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\nimport {NgTemplateOutlet} from \"@angular/common\";\r\nimport {CuteTabLabel} from \"./tab-label.directive\";\r\nimport {CuteTabContent} from \"./tab-content.directive\";\r\nimport {CuteFocusableControl} from \"@cute-widgets/base/abstract\";\r\nimport {Subject} from \"rxjs\";\r\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\r\nimport {CUTE_TAB_GROUP} from \"./tab-group.component\";\r\nimport {CuteNavLink} from \"@cute-widgets/base/core/nav\";\r\n\r\n/**\r\n * Used to provide a tab label to a tab without causing a circular dependency.\r\n * @docs-private\r\n */\r\nexport const CUTE_TAB = new InjectionToken<CuteTab>('CUTE_TAB');\r\n\r\nlet nextId: number = 0;\r\n\r\n@Component({\r\n selector: 'cute-tab',\r\n templateUrl: './tab.component.html',\r\n styleUrls: ['./tab.component.scss'],\r\n animations: [\r\n trigger('contentFade', [\r\n state('in', style({ opacity: 1, height: '*'})),\r\n state('out', style({ opacity: 0, height: '0px'})),\r\n transition('in <=> out', animate('150ms linear'))\r\n ])\r\n ],\r\n host: {\r\n \"class\": \"cute-tab tab-pane\",\r\n \"[class.show]\": \"active\",\r\n \"[class.active]\": \"active\",\r\n// \"[class.d-none]\": \"!active\",\r\n '[attr.tabindex]': 'active && !disabled ? 0 : -1',\r\n '[attr.aria-labelledby]': 'ariaLabelledby || null',\r\n '[attr.id]': 'id || null',\r\n \"role\": \"tabpanel\",\r\n \"[@contentFade]\": \"active ? 'in' : 'out'\"\r\n },\r\n imports: [\r\n NgTemplateOutlet,\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class CuteTab extends CuteFocusableControl {\r\n\r\n protected _tabGroup = inject(CUTE_TAB_GROUP, {optional: true});\r\n private _intersectionRatio: number = NaN;\r\n\r\n /** Plain text label for the tab, used when there is no template label. */\r\n @Input(\"label\") textLabel: string = \"\";\r\n\r\n //@Input() titleTemplate: TemplateRef<any> | undefined;\r\n\r\n /** Explicit reference to the external content template. */\r\n @Input() contentTemplate: TemplateRef<any> | undefined;\r\n\r\n /** Lazy loading label's outlet context */\r\n @Input() labelContext: any = {};\r\n\r\n /** Lazy loading content's outlet context */\r\n @Input() contentContext: any = {};\r\n\r\n /** Whether the tab is closable. */\r\n @Input({transform: booleanAttribute}) closable = false;\r\n\r\n /** Whether the tab preserves lazing content */\r\n @Input({ transform: booleanAttribute })\r\n preserveContent: boolean | undefined;\r\n\r\n /** Content for the tab label given by `<ng-template cute-tab-label>`. */\r\n @ContentChild(CuteTabLabel, {read: TemplateRef, static: true})\r\n public readonly _templateLabel: TemplateRef<any>|undefined;\r\n\r\n /**\r\n * Template provided in the tab content by <ng-template cute-tab-content>, used to enable lazy-loading\r\n */\r\n @ContentChild(CuteTabContent, {read: TemplateRef, static: true})\r\n private _explicitContent: TemplateRef<any> | undefined;\r\n\r\n /** Reference to `<cute-nav-link>` element. */\r\n @ContentChild(CuteNavLink, {descendants: true})\r\n readonly link: CuteNavLink | undefined;\r\n\r\n /** Whether the tab is currently active. */\r\n get active(): boolean {return this._active;}\r\n set active(value: boolean) {\r\n if (value !== this._active) {\r\n this._active = value;\r\n this._stateChanges.next();\r\n }\r\n }\r\n private _active: boolean = false;\r\n\r\n /** Whether the tab is intersected the containing box and needs to scroll to display its full size */\r\n get scrollNeeded(): boolean {\r\n return this._intersectionRatio < 1;\r\n }\r\n\r\n /** Whether the tab was added dynamically */\r\n public isDynamic: boolean = false;\r\n\r\n protected isPreserveContent(): boolean {\r\n return this.preserveContent ?? this._tabGroup?.preserveContent ?? false;\r\n }\r\n\r\n /** Tab content defined by <ng-template cute-tab-content> or directly referenced where the latter has more priority. */\r\n protected get explicitContent(): TemplateRef<any> | undefined {\r\n return this.contentTemplate || this._explicitContent;\r\n }\r\n\r\n /** Emits whenever the internal state of the tab changes. */\r\n readonly _stateChanges = new Subject<void>();\r\n\r\n /** Whether the tab content was loaded */\r\n loaded = signal<boolean>(false);\r\n\r\n /** Template inside the CuteTab view that contains an `<ng-content>`. */\r\n // @ViewChild(TemplateRef, {static: true}) _implicitContent: TemplateRef<any> | undefined;\r\n\r\n constructor() {\r\n super();\r\n this._stateChanges.pipe(takeUntilDestroyed()).subscribe(()=> {\r\n this.markForCheck();\r\n });\r\n }\r\n\r\n protected override generateId(): string {\r\n return `cute-tab-${nextId++}`;\r\n }\r\n\r\n /** Gets the content template's context object */\r\n getContentContext(): any {\r\n return {...this.contentContext,\r\n $implicit: this,\r\n index: this._tabGroup?.getTabIndex(this),\r\n active: this.active,\r\n tab: this\r\n };\r\n }\r\n\r\n /**\r\n * Removes this tab from the tab group.\r\n */\r\n async remove() {\r\n if (this._tabGroup) {\r\n const index = this._tabGroup.getTabIndex(this);\r\n if (index != null) {\r\n return this._tabGroup.removeTab( index );\r\n }\r\n }\r\n return;\r\n }\r\n\r\n _visibilityChanged(entries: IntersectionObserverEntry[]) {\r\n if (entries.length) {\r\n this._intersectionRatio = entries[0].intersectionRatio;\r\n }\r\n }\r\n\r\n override ngOnInit() {\r\n super.ngOnInit();\r\n\r\n this.ariaLabelledby = this.id+\"-link\";\r\n }\r\n\r\n override ngOnChanges(changes: SimpleChanges) {\r\n super.ngOnChanges(changes);\r\n if (changes['textLabel'] || changes['disabled'] || changes['closable']) {\r\n this._stateChanges.next();\r\n }\r\n if (changes[\"active\"] && changes[\"active\"].currentValue) {\r\n this.loaded.set(true);\r\n }\r\n }\r\n\r\n override ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this._stateChanges.complete();\r\n }\r\n}\r\n","@if (active || isPreserveContent()) {\r\n\r\n <ng-content></ng-content>\r\n\r\n @if (explicitContent) {\r\n <ng-container [ngTemplateOutlet]=\"explicitContent\"\r\n [ngTemplateOutletContext]=\"getContentContext()\">\r\n </ng-container>\r\n }\r\n}\r\n","/**\r\n * @license Apache-2.0\r\n *\r\n * Copyright (c) 2025 CuteWidgets Team. All Rights Reserved.\r\n *\r\n * You may not use this file except in compliance with the License\r\n * that can be found at http://www.apache.org/licenses/LICENSE-2.0\r\n */\r\nimport {NgModule, Type} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {CuteTab} from \"./tab.component\";\r\nimport {CuteTabGroup} from \"./tab-group.component\";\r\nimport {CuteTabLabel} from \"./tab-label.directive\";\r\nimport {CuteTabContent} from \"./tab-content.directive\";\r\n\r\nconst TYPES: (any | Type<any>)[] = [\r\n CuteTab,\r\n CuteTabGroup,\r\n CuteTabLabel,\r\n CuteTabContent,\r\n];\r\n\r\n@NgModule({\r\n imports: [CommonModule, ...TYPES],\r\n exports: TYPES,\r\n declarations: [],\r\n})\r\nexport class CuteTabsModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextId"],"mappings":"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"}
|