@taiga-ui/kit 4.42.0-canary.26116ba → 4.42.0-canary.551f28f
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/components/index.d.ts +1 -0
- package/components/input-chip/input-chip.component.d.ts +2 -2
- package/components/input-chip/input-chip.directive.d.ts +2 -0
- package/components/input-date/input-date.directive.d.ts +2 -1
- package/components/input-date-range/input-date-range.directive.d.ts +1 -0
- package/components/input-time/index.d.ts +4 -0
- package/components/input-time/input-time.component.d.ts +14 -0
- package/components/input-time/input-time.d.ts +3 -0
- package/components/input-time/input-time.directive.d.ts +31 -0
- package/components/input-time/input-time.options.d.ts +11 -0
- package/components/select/select-option/select-option.component.d.ts +2 -4
- package/directives/button-select/button-select.directive.d.ts +3 -2
- package/esm2022/components/badge/badge.directive.mjs +2 -2
- package/esm2022/components/calendar-month/calendar-month.component.mjs +3 -3
- package/esm2022/components/combo-box/combo-box.directive.mjs +2 -5
- package/esm2022/components/index.mjs +2 -1
- package/esm2022/components/input-chip/input-chip.component.mjs +15 -13
- package/esm2022/components/input-chip/input-chip.directive.mjs +14 -8
- package/esm2022/components/input-date/input-date.directive.mjs +11 -3
- package/esm2022/components/input-date-range/input-date-range.directive.mjs +6 -2
- package/esm2022/components/input-inline/input-inline.component.mjs +1 -1
- package/esm2022/components/input-time/index.mjs +5 -0
- package/esm2022/components/input-time/input-time.component.mjs +49 -0
- package/esm2022/components/input-time/input-time.directive.mjs +123 -0
- package/esm2022/components/input-time/input-time.mjs +4 -0
- package/esm2022/components/input-time/input-time.options.mjs +9 -0
- package/esm2022/components/input-time/taiga-ui-kit-components-input-time.mjs +5 -0
- package/esm2022/components/select/select-option/select-option.component.mjs +10 -18
- package/esm2022/components/select/select.directive.mjs +1 -4
- package/esm2022/components/tabs/tabs.directive.mjs +2 -2
- package/esm2022/directives/button-select/button-select.directive.mjs +15 -7
- package/esm2022/pipes/hide-selected/hide-selected.pipe.mjs +46 -0
- package/esm2022/pipes/hide-selected/index.mjs +2 -0
- package/esm2022/pipes/hide-selected/taiga-ui-kit-pipes-hide-selected.mjs +5 -0
- package/esm2022/pipes/index.mjs +2 -1
- package/esm2022/tokens/items-handlers.mjs +4 -4
- package/esm2022/utils/index.mjs +2 -1
- package/esm2022/utils/inject-value.mjs +11 -0
- package/fesm2022/taiga-ui-kit-components-badge.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-badge.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-calendar-month.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-calendar-month.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-combo-box.mjs +1 -4
- package/fesm2022/taiga-ui-kit-components-combo-box.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-chip.mjs +103 -94
- package/fesm2022/taiga-ui-kit-components-input-chip.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-date-range.mjs +4 -0
- package/fesm2022/taiga-ui-kit-components-input-date-range.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-date.mjs +10 -2
- package/fesm2022/taiga-ui-kit-components-input-date.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-inline.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-input-time.mjs +180 -0
- package/fesm2022/taiga-ui-kit-components-input-time.mjs.map +1 -0
- package/fesm2022/taiga-ui-kit-components-select.mjs +11 -20
- package/fesm2022/taiga-ui-kit-components-select.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components-tabs.mjs +2 -2
- package/fesm2022/taiga-ui-kit-components-tabs.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-components.mjs +1 -0
- package/fesm2022/taiga-ui-kit-components.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-directives-button-select.mjs +14 -6
- package/fesm2022/taiga-ui-kit-directives-button-select.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs +52 -0
- package/fesm2022/taiga-ui-kit-pipes-hide-selected.mjs.map +1 -0
- package/fesm2022/taiga-ui-kit-pipes.mjs +1 -0
- package/fesm2022/taiga-ui-kit-pipes.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-tokens.mjs +3 -3
- package/fesm2022/taiga-ui-kit-tokens.mjs.map +1 -1
- package/fesm2022/taiga-ui-kit-utils.mjs +12 -1
- package/fesm2022/taiga-ui-kit-utils.mjs.map +1 -1
- package/package.json +19 -7
- package/pipes/hide-selected/hide-selected.pipe.d.ts +12 -0
- package/pipes/hide-selected/index.d.ts +1 -0
- package/pipes/index.d.ts +1 -0
- package/styles/components/badge.less +1 -13
- package/tokens/items-handlers.d.ts +4 -4
- package/utils/index.d.ts +1 -0
- package/utils/inject-value.d.ts +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components-tabs.mjs","sources":["../../../projects/kit/components/tabs/tab.directive.ts","../../../projects/kit/components/tabs/tabs.options.ts","../../../projects/kit/components/tabs/tabs.directive.ts","../../../projects/kit/components/tabs/tabs-horizontal.directive.ts","../../../projects/kit/components/tabs/tabs-vertical.directive.ts","../../../projects/kit/components/tabs/tabs.providers.ts","../../../projects/kit/components/tabs/tabs-with-more.component.ts","../../../projects/kit/components/tabs/tabs-with-more.template.html","../../../projects/kit/components/tabs/tabs.ts","../../../projects/kit/components/tabs/taiga-ui-kit-components-tabs.ts"],"sourcesContent":["import type {OnDestroy} from '@angular/core';\nimport {Directive, inject} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {RouterLinkActive} from '@angular/router';\nimport {MutationObserverService} from '@ng-web-apis/mutation-observer';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {TuiWithIcons} from '@taiga-ui/core/directives/icons';\nimport {EMPTY, filter, merge, switchMap, take} from 'rxjs';\n\nexport const TUI_TAB_ACTIVATE = 'tui-tab-activate';\n\n@Directive({\n standalone: true,\n selector:\n 'a[tuiTab]:not([routerLink]), a[tuiTab][routerLink][routerLinkActive], button[tuiTab]',\n hostDirectives: [TuiWithIcons],\n host: {\n type: 'button',\n },\n})\nexport class TuiTab implements OnDestroy {\n private readonly el = tuiInjectElement();\n private readonly rla = inject(RouterLinkActive, {optional: true});\n private readonly observer =\n this.rla &&\n inject(MutationObserverService, {optional: true})?.pipe(\n filter(() => !!this.rla?.isActive),\n );\n\n protected readonly sub = merge(\n this.observer || EMPTY,\n this.rla?.isActiveChange.pipe(filter(Boolean)) || EMPTY,\n this.el.matches('button')\n ? tuiTypedFromEvent(this.el, 'click').pipe(\n // Delaying execution until after all other click callbacks\n switchMap(() =>\n tuiTypedFromEvent(this.el.parentElement!, 'click').pipe(take(1)),\n ),\n )\n : EMPTY,\n )\n .pipe(takeUntilDestroyed())\n .subscribe(() =>\n this.el.dispatchEvent(new CustomEvent(TUI_TAB_ACTIVATE, {bubbles: true})),\n );\n\n public ngOnDestroy(): void {\n if (tuiIsNativeFocused(this.el)) {\n this.el.blur();\n }\n }\n}\n","import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiSizeL} from '@taiga-ui/core/types';\n\nexport interface TuiTabsOptions {\n readonly exposeActive: boolean;\n readonly itemsLimit: number;\n readonly minMoreWidth: number;\n readonly underline: boolean | string;\n readonly size: TuiSizeL;\n}\n\nexport const TUI_TABS_DEFAULT_OPTIONS: TuiTabsOptions = {\n underline: true,\n exposeActive: true,\n itemsLimit: Infinity,\n minMoreWidth: 0,\n size: 'l',\n};\n\n/**\n * Default parameters for Tabs component\n */\nexport const TUI_TABS_OPTIONS = tuiCreateToken(TUI_TABS_DEFAULT_OPTIONS);\n\nexport function tuiTabsOptionsProvider(options: Partial<TuiTabsOptions>): Provider {\n return tuiProvideOptions(TUI_TABS_OPTIONS, options, TUI_TABS_DEFAULT_OPTIONS);\n}\n","import type {AfterViewChecked} from '@angular/core';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n Directive,\n EventEmitter,\n inject,\n INJECTOR,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiMoveFocus} from '@taiga-ui/cdk/utils/focus';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiSizeL} from '@taiga-ui/core/types';\n\nimport {TUI_TAB_ACTIVATE} from './tab.directive';\nimport {TUI_TABS_OPTIONS} from './tabs.options';\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./tabs.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-tabs',\n },\n})\nclass TuiTabsStyles {}\n\n@Directive({\n standalone: true,\n host: {\n '[attr.data-size]': 'size',\n [`(${TUI_TAB_ACTIVATE})`]: 'onActivate($event, $event.target)',\n },\n})\nexport class TuiTabsDirective implements AfterViewChecked {\n private readonly el = tuiInjectElement();\n private readonly injector = inject(INJECTOR);\n\n protected readonly nothing = tuiWithStyles(TuiTabsStyles);\n\n @Input()\n public size: TuiSizeL = inject(TUI_TABS_OPTIONS).size;\n\n @Input()\n public activeItemIndex = 0;\n\n @Output()\n public readonly activeItemIndexChange = new EventEmitter<number>();\n\n public get tabs(): readonly HTMLElement[] {\n return Array.from(this.el.querySelectorAll<HTMLElement>('[tuiTab]'));\n }\n\n public get activeElement(): HTMLElement | null {\n return this.tabs[this.activeItemIndex] || null;\n }\n\n public moveFocus(current: HTMLElement, step: number): void {\n const {tabs} = this;\n\n tuiMoveFocus(tabs.indexOf(current), tabs, step);\n }\n\n public ngAfterViewChecked(): void {\n afterNextRender(\n () => {\n this.markTabAsActive();\n },\n {injector: this.injector},\n );\n }\n\n protected onActivate(event: Event, element: HTMLElement): void {\n const index = this.tabs.findIndex((tab) => tab === element);\n\n event.stopPropagation();\n\n if (index === this.activeItemIndex) {\n return;\n }\n\n this.activeItemIndexChange.emit(index);\n this.activeItemIndex = index;\n }\n\n protected markTabAsActive(): void {\n const {tabs, activeElement} = this;\n\n tabs.forEach((nativeElement) => {\n const active = nativeElement === activeElement;\n\n nativeElement.classList.toggle('_active', active);\n nativeElement.setAttribute('tabIndex', active ? '0' : '-1');\n });\n }\n}\n","import type {AfterViewChecked, QueryList} from '@angular/core';\nimport {ContentChildren, Directive, forwardRef, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {\n MutationObserverService,\n WA_MUTATION_OBSERVER_INIT,\n} from '@ng-web-apis/mutation-observer';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiPure, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TuiTab} from './tab.directive';\nimport {TuiTabsDirective} from './tabs.directive';\nimport {TUI_TABS_OPTIONS} from './tabs.options';\n\n@Directive({\n standalone: true,\n selector: 'tui-tabs:not([vertical]), nav[tuiTabs]:not([vertical])',\n providers: [\n MutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {\n childList: true,\n characterData: true,\n subtree: true,\n },\n },\n ],\n hostDirectives: [\n {\n directive: TuiTabsDirective,\n inputs: ['activeItemIndex', 'size'],\n outputs: ['activeItemIndexChange'],\n },\n ],\n host: {\n '[class._underline]': 'underline',\n '[style.--t-color]':\n \"underline === true ? 'var(--tui-background-accent-1)' : underline\",\n '(animationend)': 'refresh()',\n '(keydown.arrowRight.prevent)': 'onKeyDownArrow($event.target, 1)',\n '(keydown.arrowLeft.prevent)': 'onKeyDownArrow($event.target, -1)',\n },\n})\nexport class TuiTabsHorizontal implements AfterViewChecked {\n private readonly el = tuiInjectElement();\n private readonly options = inject(TUI_TABS_OPTIONS);\n private readonly tabs = inject(TuiTabsDirective);\n\n @ContentChildren(forwardRef(() => TuiTab))\n protected readonly children: QueryList<unknown> = EMPTY_QUERY;\n\n protected readonly sub = inject(MutationObserverService, {self: true})\n .pipe(tuiZonefree(), takeUntilDestroyed())\n .subscribe(() => this.refresh());\n\n @Input()\n public underline = this.options.underline;\n\n public ngAfterViewChecked(): void {\n this.scrollTo(this.tabs.activeItemIndex);\n this.refresh();\n }\n\n protected onKeyDownArrow(current: HTMLElement, step: number): void {\n this.tabs.moveFocus(current, step);\n }\n\n protected refresh(): void {\n const {activeElement} = this.tabs;\n\n if (activeElement && !activeElement.isConnected) {\n return;\n }\n\n const {offsetLeft = 0, offsetWidth = 0} = activeElement || {};\n\n this.el.style.setProperty('--t-left', tuiPx(offsetLeft));\n this.el.style.setProperty('--t-width', tuiPx(offsetWidth));\n }\n\n @tuiPure\n private scrollTo(index: number): void {\n const element = this.tabs.tabs[index];\n\n if (!element) {\n return;\n }\n\n const {offsetLeft, offsetWidth} = element;\n\n if (offsetLeft < this.el.scrollLeft) {\n this.el.scrollLeft = offsetLeft;\n }\n\n if (offsetLeft + offsetWidth > this.el.scrollLeft + this.el.offsetWidth) {\n this.el.scrollLeft = offsetLeft + offsetWidth - this.el.offsetWidth;\n }\n }\n}\n","import {Directive, inject, Input} from '@angular/core';\nimport type {TuiHorizontalDirection} from '@taiga-ui/core/types';\n\nimport {TuiTabsDirective} from './tabs.directive';\n\n@Directive({\n standalone: true,\n selector: 'tui-tabs[vertical], nav[tuiTabs][vertical]',\n hostDirectives: [\n {\n directive: TuiTabsDirective,\n inputs: ['activeItemIndex', 'size'],\n outputs: ['activeItemIndexChange'],\n },\n ],\n host: {\n '[attr.data-vertical]': 'vertical',\n '(keydown.arrowDown.prevent)': 'onKeyDownArrow($event.target, 1)',\n '(keydown.arrowUp.prevent)': 'onKeyDownArrow($event.target, -1)',\n },\n})\nexport class TuiTabsVertical {\n private readonly tabs = inject(TuiTabsDirective);\n\n @Input()\n public vertical: TuiHorizontalDirection = 'left';\n\n protected onKeyDownArrow(current: HTMLElement, step: number): void {\n this.tabs.moveFocus(current, step);\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport type {Provider} from '@angular/core';\nimport {ChangeDetectorRef, ElementRef} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {\n MutationObserverService,\n WA_MUTATION_OBSERVER_INIT,\n} from '@ng-web-apis/mutation-observer';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiDropdownOptionsProvider} from '@taiga-ui/core/directives/dropdown';\nimport type {Observable} from 'rxjs';\nimport {debounceTime, filter, merge, startWith, tap} from 'rxjs';\n\nexport const TUI_TABS_REFRESH = tuiCreateToken<Observable<unknown>>();\n\nexport const TUI_TABS_PROVIDERS: Provider[] = [\n ResizeObserverService,\n MutationObserverService,\n tuiDropdownOptionsProvider({align: 'right'}),\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {\n childList: true,\n subtree: true,\n characterData: true,\n },\n },\n {\n provide: TUI_TABS_REFRESH,\n deps: [\n ResizeObserverService,\n MutationObserverService,\n DOCUMENT,\n ElementRef,\n ChangeDetectorRef,\n ],\n useFactory: (\n resize$: Observable<unknown>,\n mutations$: Observable<unknown>,\n {body}: Document,\n {nativeElement}: ElementRef<Node>,\n cdr: ChangeDetectorRef,\n ): Observable<unknown> =>\n merge(resize$, mutations$.pipe(tap(() => cdr.detectChanges()))).pipe(\n // Ignoring cases when host is detached from DOM\n filter(() => body.contains(nativeElement)),\n debounceTime(0),\n startWith(null),\n takeUntilDestroyed(),\n ),\n },\n];\n","import {CommonModule} from '@angular/common';\nimport type {AfterViewChecked, AfterViewInit, QueryList} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport type {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {TuiItem} from '@taiga-ui/cdk/directives/item';\nimport type {TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement, tuiIsElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiGetClosestFocusable, tuiIsNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {tuiClamp, tuiToInt} from '@taiga-ui/cdk/utils/math';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiDropdown} from '@taiga-ui/core/directives/dropdown';\nimport type {TuiSizeL} from '@taiga-ui/core/types';\nimport {TuiChevron} from '@taiga-ui/kit/directives/chevron';\nimport {TUI_MORE_WORD} from '@taiga-ui/kit/tokens';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {filter, map, tap} from 'rxjs';\n\nimport {TuiTab} from './tab.directive';\nimport {TUI_TABS_OPTIONS} from './tabs.options';\nimport {TUI_TABS_PROVIDERS, TUI_TABS_REFRESH} from './tabs.providers';\nimport {TuiTabsHorizontal} from './tabs-horizontal.directive';\n\n@Component({\n standalone: true,\n selector: 'tui-tabs-with-more, nav[tuiTabsWithMore]',\n imports: [\n CommonModule,\n PolymorpheusOutlet,\n TuiChevron,\n TuiDropdown,\n TuiTab,\n TuiTabsHorizontal,\n ],\n templateUrl: './tabs-with-more.template.html',\n styleUrls: ['./tabs-with-more.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_TABS_PROVIDERS,\n host: {\n '[attr.data-size]': 'size',\n },\n})\nexport class TuiTabsWithMore implements AfterViewChecked, AfterViewInit {\n @ViewChild(TuiTab, {read: ElementRef})\n private readonly moreButton?: ElementRef<HTMLButtonElement>;\n\n @ViewChild(TuiTabsHorizontal, {read: ElementRef})\n private readonly dir?: ElementRef<HTMLButtonElement>;\n\n private readonly options = inject(TUI_TABS_OPTIONS);\n private readonly refresh$ = inject(TUI_TABS_REFRESH);\n private readonly el = tuiInjectElement();\n private readonly cdr = inject(ChangeDetectorRef);\n private maxIndex = Infinity;\n\n @ContentChildren(TuiItem, {read: TemplateRef})\n protected readonly items: QueryList<TemplateRef<Record<string, unknown>>> =\n EMPTY_QUERY;\n\n protected readonly moreWord$ = inject(TUI_MORE_WORD);\n protected open = false;\n\n @Input()\n public size: TuiSizeL = this.options.size;\n\n @Input()\n public moreContent: PolymorpheusContent;\n\n @Input()\n public dropdownContent: PolymorpheusContent<TuiContext<TuiActiveZone>>;\n\n @Input()\n public underline = this.options.underline;\n\n @Input()\n public itemsLimit = this.options.itemsLimit;\n\n @Output()\n public readonly activeItemIndexChange = new EventEmitter<number>();\n\n public activeItemIndex = 0;\n\n @Input('activeItemIndex')\n public set itemIndex(activeItemIndex: number) {\n this.activeItemIndex = activeItemIndex;\n this.maxIndex = this.getMaxIndex();\n }\n\n public get lastVisibleIndex(): number {\n if (this.itemsLimit + 1 >= this.items.length) {\n return this.maxIndex;\n }\n\n const offset =\n this.itemsLimit - 1 > this.activeItemIndex || !this.options.exposeActive\n ? 1\n : 2;\n\n return Math.min(this.itemsLimit - offset, this.maxIndex);\n }\n\n public ngAfterViewInit(): void {\n this.refresh$\n .pipe(\n map(() => this.getMaxIndex()),\n tap(() => this.refresh()),\n filter((maxIndex) => this.maxIndex !== maxIndex),\n )\n .subscribe((maxIndex) => {\n this.maxIndex = maxIndex;\n this.cdr.detectChanges();\n });\n }\n\n public ngAfterViewChecked(): void {\n this.refresh();\n }\n\n // TODO: Improve performance\n protected get tabs(): readonly HTMLElement[] {\n return Array.from<HTMLElement>(this.el.querySelectorAll('[tuiTab]'));\n }\n\n protected get activeElement(): HTMLElement | null {\n const {tabs} = this;\n const safeActiveIndex = tuiClamp(this.activeItemIndex || 0, 0, tabs.length - 2);\n\n return this.options.exposeActive || this.lastVisibleIndex >= safeActiveIndex\n ? tabs[safeActiveIndex] || null\n : this.moreButton?.nativeElement || null;\n }\n\n protected get isMoreAlone(): boolean {\n return this.lastVisibleIndex < 0 && !this.options.exposeActive;\n }\n\n protected get isMoreVisible(): boolean {\n return this.lastVisibleIndex < this.items.length - 1;\n }\n\n protected get isMoreFocusable(): boolean {\n return !!this.moreButton && tuiIsNativeFocused(this.moreButton.nativeElement);\n }\n\n protected get isMoreActive(): boolean {\n return (\n this.open ||\n (!this.options.exposeActive && this.lastVisibleIndex < this.activeItemIndex)\n );\n }\n\n protected onActiveItemIndexChange(activeItemIndex: number): void {\n this.updateActiveItemIndex(activeItemIndex);\n }\n\n protected onClick(index: number): void {\n this.open = false;\n this.focusMore();\n this.updateActiveItemIndex(index);\n }\n\n protected onArrowRight(event: Event): void {\n if (tuiIsElement(event.target) && tuiIsNativeFocused(event.target)) {\n this.focusMore();\n }\n }\n\n protected onArrowLeft(): void {\n const {tabs} = this;\n let index = tabs.length - 2;\n\n while (index >= 0) {\n tabs[index]?.focus();\n\n if (tuiIsNativeFocused(tabs[index])) {\n return;\n }\n\n index--;\n }\n }\n\n protected onWrapperArrow(\n event: Event,\n wrapper: HTMLElement,\n previous: boolean,\n ): void {\n const button: HTMLButtonElement = event.target as HTMLButtonElement;\n const target = tuiGetClosestFocusable({initial: button, root: wrapper, previous});\n\n if (target) {\n target.focus();\n }\n }\n\n protected isOverflown(index: number): boolean {\n return index !== this.activeItemIndex || !this.options.exposeActive;\n }\n\n protected shouldShow(index: number): boolean {\n return index > this.lastVisibleIndex && this.isOverflown(index);\n }\n\n private get margin(): number {\n return this.size === 'l' ? 24 : 16;\n }\n\n private focusMore(): void {\n if (this.moreButton) {\n this.moreButton.nativeElement.focus();\n }\n }\n\n private getMaxIndex(): number {\n const {tabs, activeItemIndex, margin} = this;\n\n if (tabs.length < 2) {\n return 0;\n }\n\n const {exposeActive, minMoreWidth} = this.options;\n const {clientWidth} = this.el;\n const active = tabs[activeItemIndex];\n const activeWidth = active?.scrollWidth ?? 0;\n const moreWidth = Math.max(tabs[tabs.length - 1]?.scrollWidth ?? 0, minMoreWidth);\n let maxIndex = tabs.length - 2;\n let total =\n tabs.reduce((acc, {scrollWidth}) => acc + scrollWidth, 0) +\n maxIndex * margin -\n (tabs[tabs.length - 1]?.scrollWidth ?? 0);\n\n if (Number.isNaN(total) || total <= clientWidth) {\n return Infinity;\n }\n\n while (maxIndex) {\n total -= (tabs[maxIndex]?.scrollWidth ?? 0) + margin;\n maxIndex--;\n\n const activeDisplaced = exposeActive && activeItemIndex > maxIndex;\n const activeOffset = activeDisplaced ? activeWidth + margin : 0;\n const currentWidth = total + activeOffset + moreWidth + margin;\n // Needed for different rounding of visible and hidden elements scrollWidth\n const safetyOffset = tuiToInt(this.maxIndex === maxIndex - 1);\n\n if (currentWidth + safetyOffset < clientWidth) {\n return maxIndex;\n }\n }\n\n return -1;\n }\n\n private updateActiveItemIndex(activeItemIndex: number): void {\n this.itemIndex = activeItemIndex;\n this.activeItemIndexChange.emit(activeItemIndex);\n }\n\n private refresh(): void {\n const {offsetLeft = 0, offsetWidth = 0} = this.activeElement || {};\n\n this.dir?.nativeElement.style.setProperty('--t-left', tuiPx(offsetLeft));\n this.dir?.nativeElement.style.setProperty('--t-width', tuiPx(offsetWidth));\n }\n}\n","<ng-container *ngIf=\"items.changes | async\" />\n<tui-tabs\n class=\"t-tabs\"\n [activeItemIndex]=\"activeItemIndex\"\n [size]=\"size\"\n [underline]=\"underline\"\n (activeItemIndexChange)=\"onActiveItemIndexChange($event)\"\n (keydown.arrowRight)=\"onArrowRight($event)\"\n>\n <ng-container *ngFor=\"let item of items; let index = index\">\n <ng-container\n *ngIf=\"index <= lastVisibleIndex; else hidden\"\n [ngTemplateOutlet]=\"item\"\n />\n <ng-template #hidden>\n <div\n class=\"t-flex\"\n [class.t-overflown]=\"isOverflown(index)\"\n >\n <ng-container [ngTemplateOutlet]=\"item\" />\n </div>\n </ng-template>\n </ng-container>\n</tui-tabs>\n\n<button\n *ngIf=\"moreContent; else chevron\"\n tuiTab\n type=\"button\"\n class=\"t-more\"\n [class._active]=\"isMoreActive\"\n [class.t-no-margin]=\"isMoreAlone\"\n [class.t-overflown]=\"!isMoreVisible\"\n [tabIndex]=\"isMoreFocusable ? 0 : -1\"\n [tuiDropdown]=\"dropdownContent || dropdown\"\n [(tuiDropdownOpen)]=\"open\"\n (keydown.arrowLeft.prevent)=\"onArrowLeft()\"\n>\n <ng-container *polymorpheusOutlet=\"moreContent as text\">\n {{ text }}\n </ng-container>\n</button>\n<ng-template #chevron>\n <button\n tuiChevron\n tuiTab\n type=\"button\"\n class=\"t-more\"\n [class._active]=\"isMoreActive\"\n [class.t-no-margin]=\"isMoreAlone\"\n [class.t-overflown]=\"!isMoreVisible\"\n [tabIndex]=\"isMoreFocusable ? 0 : -1\"\n [tuiDropdown]=\"dropdownContent || dropdown\"\n [(tuiDropdownOpen)]=\"open\"\n (keydown.arrowLeft.prevent)=\"onArrowLeft()\"\n >\n {{ moreWord$ | async }}\n </button>\n</ng-template>\n<ng-template #dropdown>\n <div\n #element\n class=\"t-dropdown\"\n [attr.data-size]=\"size\"\n (keydown.arrowDown.prevent)=\"onWrapperArrow($event, element, false)\"\n (keydown.arrowUp.prevent)=\"onWrapperArrow($event, element, true)\"\n >\n <div\n *ngFor=\"let item of items; let index = index\"\n class=\"t-dropdown-item\"\n (tui-tab-activate)=\"onClick(index)\"\n >\n <ng-container *ngIf=\"shouldShow(index)\">\n <ng-container *polymorpheusOutlet=\"item\" />\n </ng-container>\n </div>\n </div>\n</ng-template>\n","import {TuiItem} from '@taiga-ui/cdk/directives/item';\n\nimport {TuiTab} from './tab.directive';\nimport {TuiTabsDirective} from './tabs.directive';\nimport {TuiTabsHorizontal} from './tabs-horizontal.directive';\nimport {TuiTabsVertical} from './tabs-vertical.directive';\nimport {TuiTabsWithMore} from './tabs-with-more.component';\n\nexport const TuiTabs = [\n TuiItem,\n TuiTab,\n TuiTabsDirective,\n TuiTabsHorizontal,\n TuiTabsVertical,\n TuiTabsWithMore,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TuiTabsDirective","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components-tabs.mjs","sources":["../../../projects/kit/components/tabs/tab.directive.ts","../../../projects/kit/components/tabs/tabs.options.ts","../../../projects/kit/components/tabs/tabs.directive.ts","../../../projects/kit/components/tabs/tabs-horizontal.directive.ts","../../../projects/kit/components/tabs/tabs-vertical.directive.ts","../../../projects/kit/components/tabs/tabs.providers.ts","../../../projects/kit/components/tabs/tabs-with-more.component.ts","../../../projects/kit/components/tabs/tabs-with-more.template.html","../../../projects/kit/components/tabs/tabs.ts","../../../projects/kit/components/tabs/taiga-ui-kit-components-tabs.ts"],"sourcesContent":["import type {OnDestroy} from '@angular/core';\nimport {Directive, inject} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {RouterLinkActive} from '@angular/router';\nimport {MutationObserverService} from '@ng-web-apis/mutation-observer';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {TuiWithIcons} from '@taiga-ui/core/directives/icons';\nimport {EMPTY, filter, merge, switchMap, take} from 'rxjs';\n\nexport const TUI_TAB_ACTIVATE = 'tui-tab-activate';\n\n@Directive({\n standalone: true,\n selector:\n 'a[tuiTab]:not([routerLink]), a[tuiTab][routerLink][routerLinkActive], button[tuiTab]',\n hostDirectives: [TuiWithIcons],\n host: {\n type: 'button',\n },\n})\nexport class TuiTab implements OnDestroy {\n private readonly el = tuiInjectElement();\n private readonly rla = inject(RouterLinkActive, {optional: true});\n private readonly observer =\n this.rla &&\n inject(MutationObserverService, {optional: true})?.pipe(\n filter(() => !!this.rla?.isActive),\n );\n\n protected readonly sub = merge(\n this.observer || EMPTY,\n this.rla?.isActiveChange.pipe(filter(Boolean)) || EMPTY,\n this.el.matches('button')\n ? tuiTypedFromEvent(this.el, 'click').pipe(\n // Delaying execution until after all other click callbacks\n switchMap(() =>\n tuiTypedFromEvent(this.el.parentElement!, 'click').pipe(take(1)),\n ),\n )\n : EMPTY,\n )\n .pipe(takeUntilDestroyed())\n .subscribe(() =>\n this.el.dispatchEvent(new CustomEvent(TUI_TAB_ACTIVATE, {bubbles: true})),\n );\n\n public ngOnDestroy(): void {\n if (tuiIsNativeFocused(this.el)) {\n this.el.blur();\n }\n }\n}\n","import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiSizeL} from '@taiga-ui/core/types';\n\nexport interface TuiTabsOptions {\n readonly exposeActive: boolean;\n readonly itemsLimit: number;\n readonly minMoreWidth: number;\n readonly underline: boolean | string;\n readonly size: TuiSizeL;\n}\n\nexport const TUI_TABS_DEFAULT_OPTIONS: TuiTabsOptions = {\n underline: true,\n exposeActive: true,\n itemsLimit: Infinity,\n minMoreWidth: 0,\n size: 'l',\n};\n\n/**\n * Default parameters for Tabs component\n */\nexport const TUI_TABS_OPTIONS = tuiCreateToken(TUI_TABS_DEFAULT_OPTIONS);\n\nexport function tuiTabsOptionsProvider(options: Partial<TuiTabsOptions>): Provider {\n return tuiProvideOptions(TUI_TABS_OPTIONS, options, TUI_TABS_DEFAULT_OPTIONS);\n}\n","import type {AfterViewChecked} from '@angular/core';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n Directive,\n EventEmitter,\n inject,\n INJECTOR,\n Input,\n Output,\n ViewEncapsulation,\n} from '@angular/core';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiMoveFocus} from '@taiga-ui/cdk/utils/focus';\nimport {tuiWithStyles} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiSizeL} from '@taiga-ui/core/types';\n\nimport {TUI_TAB_ACTIVATE} from './tab.directive';\nimport {TUI_TABS_OPTIONS} from './tabs.options';\n\n@Component({\n standalone: true,\n template: '',\n styleUrls: ['./tabs.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'tui-tabs',\n },\n})\nclass TuiTabsStyles {}\n\n@Directive({\n standalone: true,\n host: {\n '[attr.data-size]': 'size',\n [`(${TUI_TAB_ACTIVATE})`]: 'onActivate($event, $event.target)',\n },\n})\nexport class TuiTabsDirective implements AfterViewChecked {\n private readonly el = tuiInjectElement();\n private readonly injector = inject(INJECTOR);\n\n protected readonly nothing = tuiWithStyles(TuiTabsStyles);\n\n @Input()\n public size: TuiSizeL = inject(TUI_TABS_OPTIONS).size;\n\n @Input()\n public activeItemIndex = 0;\n\n @Output()\n public readonly activeItemIndexChange = new EventEmitter<number>();\n\n public get tabs(): readonly HTMLElement[] {\n return Array.from(this.el.querySelectorAll<HTMLElement>('[tuiTab]'));\n }\n\n public get activeElement(): HTMLElement | null {\n return this.tabs[this.activeItemIndex] || null;\n }\n\n public moveFocus(current: HTMLElement, step: number): void {\n const {tabs} = this;\n\n tuiMoveFocus(tabs.indexOf(current), tabs, step);\n }\n\n public ngAfterViewChecked(): void {\n afterNextRender(\n () => {\n this.markTabAsActive();\n },\n {injector: this.injector},\n );\n }\n\n protected onActivate(event: Event, element: HTMLElement): void {\n const index = this.tabs.findIndex((tab) => tab === element);\n\n event.stopPropagation();\n\n if (index === this.activeItemIndex) {\n return;\n }\n\n this.activeItemIndexChange.emit(index);\n this.activeItemIndex = index;\n }\n\n protected markTabAsActive(): void {\n const {tabs, activeElement} = this;\n\n tabs.forEach((nativeElement) => {\n const active = nativeElement === activeElement;\n\n nativeElement.classList.toggle('_active', active);\n nativeElement.setAttribute('tabIndex', active ? '0' : '-1');\n });\n }\n}\n","import type {AfterViewChecked, QueryList} from '@angular/core';\nimport {ContentChildren, Directive, forwardRef, inject, Input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {\n MutationObserverService,\n WA_MUTATION_OBSERVER_INIT,\n} from '@ng-web-apis/mutation-observer';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiPure, tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {TuiTab} from './tab.directive';\nimport {TuiTabsDirective} from './tabs.directive';\nimport {TUI_TABS_OPTIONS} from './tabs.options';\n\n@Directive({\n standalone: true,\n selector: 'tui-tabs:not([vertical]), nav[tuiTabs]:not([vertical])',\n providers: [\n MutationObserverService,\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {\n childList: true,\n characterData: true,\n subtree: true,\n },\n },\n ],\n hostDirectives: [\n {\n directive: TuiTabsDirective,\n inputs: ['activeItemIndex', 'size'],\n outputs: ['activeItemIndexChange'],\n },\n ],\n host: {\n '[class._underline]': 'underline',\n '[style.--t-color]':\n \"underline === true ? 'var(--tui-background-accent-1)' : underline\",\n '(animationend)': 'refresh()',\n '(keydown.arrowRight.prevent)': 'onKeyDownArrow($event.target, 1)',\n '(keydown.arrowLeft.prevent)': 'onKeyDownArrow($event.target, -1)',\n },\n})\nexport class TuiTabsHorizontal implements AfterViewChecked {\n private readonly el = tuiInjectElement();\n private readonly options = inject(TUI_TABS_OPTIONS);\n private readonly tabs = inject(TuiTabsDirective);\n\n @ContentChildren(forwardRef(() => TuiTab))\n protected readonly children: QueryList<unknown> = EMPTY_QUERY;\n\n protected readonly sub = inject(MutationObserverService, {self: true})\n .pipe(tuiZonefree(), takeUntilDestroyed())\n .subscribe(() => this.refresh());\n\n @Input()\n public underline = this.options.underline;\n\n public ngAfterViewChecked(): void {\n this.scrollTo(this.tabs.activeItemIndex);\n this.refresh();\n }\n\n protected onKeyDownArrow(current: HTMLElement, step: number): void {\n this.tabs.moveFocus(current, step);\n }\n\n protected refresh(): void {\n const {activeElement} = this.tabs;\n\n if (activeElement && !activeElement.isConnected) {\n return;\n }\n\n const {offsetLeft = 0, offsetWidth = 0} = activeElement || {};\n\n this.el.style.setProperty('--t-left', tuiPx(offsetLeft));\n this.el.style.setProperty('--t-width', tuiPx(offsetWidth));\n }\n\n @tuiPure\n private scrollTo(index: number): void {\n const element = this.tabs.tabs[index];\n\n if (!element) {\n return;\n }\n\n const {offsetLeft, offsetWidth} = element;\n\n if (offsetLeft < this.el.scrollLeft) {\n this.el.scrollLeft = offsetLeft;\n }\n\n if (offsetLeft + offsetWidth > this.el.scrollLeft + this.el.offsetWidth) {\n this.el.scrollLeft = offsetLeft + offsetWidth - this.el.offsetWidth;\n }\n }\n}\n","import {Directive, inject, Input} from '@angular/core';\nimport type {TuiHorizontalDirection} from '@taiga-ui/core/types';\n\nimport {TuiTabsDirective} from './tabs.directive';\n\n@Directive({\n standalone: true,\n selector: 'tui-tabs[vertical], nav[tuiTabs][vertical]',\n hostDirectives: [\n {\n directive: TuiTabsDirective,\n inputs: ['activeItemIndex', 'size'],\n outputs: ['activeItemIndexChange'],\n },\n ],\n host: {\n '[attr.data-vertical]': 'vertical',\n '(keydown.arrowDown.prevent)': 'onKeyDownArrow($event.target, 1)',\n '(keydown.arrowUp.prevent)': 'onKeyDownArrow($event.target, -1)',\n },\n})\nexport class TuiTabsVertical {\n private readonly tabs = inject(TuiTabsDirective);\n\n @Input()\n public vertical: TuiHorizontalDirection = 'left';\n\n protected onKeyDownArrow(current: HTMLElement, step: number): void {\n this.tabs.moveFocus(current, step);\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport type {Provider} from '@angular/core';\nimport {ChangeDetectorRef, ElementRef} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {\n MutationObserverService,\n WA_MUTATION_OBSERVER_INIT,\n} from '@ng-web-apis/mutation-observer';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiDropdownOptionsProvider} from '@taiga-ui/core/directives/dropdown';\nimport type {Observable} from 'rxjs';\nimport {debounceTime, filter, merge, startWith, tap} from 'rxjs';\n\nexport const TUI_TABS_REFRESH = tuiCreateToken<Observable<unknown>>();\n\nexport const TUI_TABS_PROVIDERS: Provider[] = [\n ResizeObserverService,\n MutationObserverService,\n tuiDropdownOptionsProvider({align: 'right'}),\n {\n provide: WA_MUTATION_OBSERVER_INIT,\n useValue: {\n childList: true,\n subtree: true,\n characterData: true,\n },\n },\n {\n provide: TUI_TABS_REFRESH,\n deps: [\n ResizeObserverService,\n MutationObserverService,\n DOCUMENT,\n ElementRef,\n ChangeDetectorRef,\n ],\n useFactory: (\n resize$: Observable<unknown>,\n mutations$: Observable<unknown>,\n {body}: Document,\n {nativeElement}: ElementRef<Node>,\n cdr: ChangeDetectorRef,\n ): Observable<unknown> =>\n merge(resize$, mutations$.pipe(tap(() => cdr.detectChanges()))).pipe(\n // Ignoring cases when host is detached from DOM\n filter(() => body.contains(nativeElement)),\n debounceTime(0),\n startWith(null),\n takeUntilDestroyed(),\n ),\n },\n];\n","import {CommonModule} from '@angular/common';\nimport type {AfterViewChecked, AfterViewInit, QueryList} from '@angular/core';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n inject,\n Input,\n Output,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport type {TuiActiveZone} from '@taiga-ui/cdk/directives/active-zone';\nimport {TuiItem} from '@taiga-ui/cdk/directives/item';\nimport type {TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement, tuiIsElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiGetClosestFocusable, tuiIsNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {tuiClamp, tuiToInt} from '@taiga-ui/cdk/utils/math';\nimport {tuiPx} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiDropdown} from '@taiga-ui/core/directives/dropdown';\nimport type {TuiSizeL} from '@taiga-ui/core/types';\nimport {TuiChevron} from '@taiga-ui/kit/directives/chevron';\nimport {TUI_MORE_WORD} from '@taiga-ui/kit/tokens';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {filter, map, tap} from 'rxjs';\n\nimport {TuiTab} from './tab.directive';\nimport {TUI_TABS_OPTIONS} from './tabs.options';\nimport {TUI_TABS_PROVIDERS, TUI_TABS_REFRESH} from './tabs.providers';\nimport {TuiTabsHorizontal} from './tabs-horizontal.directive';\n\n@Component({\n standalone: true,\n selector: 'tui-tabs-with-more, nav[tuiTabsWithMore]',\n imports: [\n CommonModule,\n PolymorpheusOutlet,\n TuiChevron,\n TuiDropdown,\n TuiTab,\n TuiTabsHorizontal,\n ],\n templateUrl: './tabs-with-more.template.html',\n styleUrls: ['./tabs-with-more.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: TUI_TABS_PROVIDERS,\n host: {\n '[attr.data-size]': 'size',\n },\n})\nexport class TuiTabsWithMore implements AfterViewChecked, AfterViewInit {\n @ViewChild(TuiTab, {read: ElementRef})\n private readonly moreButton?: ElementRef<HTMLButtonElement>;\n\n @ViewChild(TuiTabsHorizontal, {read: ElementRef})\n private readonly dir?: ElementRef<HTMLButtonElement>;\n\n private readonly options = inject(TUI_TABS_OPTIONS);\n private readonly refresh$ = inject(TUI_TABS_REFRESH);\n private readonly el = tuiInjectElement();\n private readonly cdr = inject(ChangeDetectorRef);\n private maxIndex = Infinity;\n\n @ContentChildren(TuiItem, {read: TemplateRef})\n protected readonly items: QueryList<TemplateRef<Record<string, unknown>>> =\n EMPTY_QUERY;\n\n protected readonly moreWord$ = inject(TUI_MORE_WORD);\n protected open = false;\n\n @Input()\n public size: TuiSizeL = this.options.size;\n\n @Input()\n public moreContent: PolymorpheusContent;\n\n @Input()\n public dropdownContent: PolymorpheusContent<TuiContext<TuiActiveZone>>;\n\n @Input()\n public underline = this.options.underline;\n\n @Input()\n public itemsLimit = this.options.itemsLimit;\n\n @Output()\n public readonly activeItemIndexChange = new EventEmitter<number>();\n\n public activeItemIndex = 0;\n\n @Input('activeItemIndex')\n public set itemIndex(activeItemIndex: number) {\n this.activeItemIndex = activeItemIndex;\n this.maxIndex = this.getMaxIndex();\n }\n\n public get lastVisibleIndex(): number {\n if (this.itemsLimit + 1 >= this.items.length) {\n return this.maxIndex;\n }\n\n const offset =\n this.itemsLimit - 1 > this.activeItemIndex || !this.options.exposeActive\n ? 1\n : 2;\n\n return Math.min(this.itemsLimit - offset, this.maxIndex);\n }\n\n public ngAfterViewInit(): void {\n this.refresh$\n .pipe(\n map(() => this.getMaxIndex()),\n tap(() => this.refresh()),\n filter((maxIndex) => this.maxIndex !== maxIndex),\n )\n .subscribe((maxIndex) => {\n this.maxIndex = maxIndex;\n this.cdr.detectChanges();\n });\n }\n\n public ngAfterViewChecked(): void {\n this.refresh();\n }\n\n // TODO: Improve performance\n protected get tabs(): readonly HTMLElement[] {\n return Array.from<HTMLElement>(this.el.querySelectorAll('[tuiTab]'));\n }\n\n protected get activeElement(): HTMLElement | null {\n const {tabs} = this;\n const safeActiveIndex = tuiClamp(this.activeItemIndex || 0, 0, tabs.length - 2);\n\n return this.options.exposeActive || this.lastVisibleIndex >= safeActiveIndex\n ? tabs[safeActiveIndex] || null\n : this.moreButton?.nativeElement || null;\n }\n\n protected get isMoreAlone(): boolean {\n return this.lastVisibleIndex < 0 && !this.options.exposeActive;\n }\n\n protected get isMoreVisible(): boolean {\n return this.lastVisibleIndex < this.items.length - 1;\n }\n\n protected get isMoreFocusable(): boolean {\n return !!this.moreButton && tuiIsNativeFocused(this.moreButton.nativeElement);\n }\n\n protected get isMoreActive(): boolean {\n return (\n this.open ||\n (!this.options.exposeActive && this.lastVisibleIndex < this.activeItemIndex)\n );\n }\n\n protected onActiveItemIndexChange(activeItemIndex: number): void {\n this.updateActiveItemIndex(activeItemIndex);\n }\n\n protected onClick(index: number): void {\n this.open = false;\n this.focusMore();\n this.updateActiveItemIndex(index);\n }\n\n protected onArrowRight(event: Event): void {\n if (tuiIsElement(event.target) && tuiIsNativeFocused(event.target)) {\n this.focusMore();\n }\n }\n\n protected onArrowLeft(): void {\n const {tabs} = this;\n let index = tabs.length - 2;\n\n while (index >= 0) {\n tabs[index]?.focus();\n\n if (tuiIsNativeFocused(tabs[index])) {\n return;\n }\n\n index--;\n }\n }\n\n protected onWrapperArrow(\n event: Event,\n wrapper: HTMLElement,\n previous: boolean,\n ): void {\n const button: HTMLButtonElement = event.target as HTMLButtonElement;\n const target = tuiGetClosestFocusable({initial: button, root: wrapper, previous});\n\n if (target) {\n target.focus();\n }\n }\n\n protected isOverflown(index: number): boolean {\n return index !== this.activeItemIndex || !this.options.exposeActive;\n }\n\n protected shouldShow(index: number): boolean {\n return index > this.lastVisibleIndex && this.isOverflown(index);\n }\n\n private get margin(): number {\n return this.size === 'l' ? 24 : 16;\n }\n\n private focusMore(): void {\n if (this.moreButton) {\n this.moreButton.nativeElement.focus();\n }\n }\n\n private getMaxIndex(): number {\n const {tabs, activeItemIndex, margin} = this;\n\n if (tabs.length < 2) {\n return 0;\n }\n\n const {exposeActive, minMoreWidth} = this.options;\n const {clientWidth} = this.el;\n const active = tabs[activeItemIndex];\n const activeWidth = active?.scrollWidth ?? 0;\n const moreWidth = Math.max(tabs[tabs.length - 1]?.scrollWidth ?? 0, minMoreWidth);\n let maxIndex = tabs.length - 2;\n let total =\n tabs.reduce((acc, {scrollWidth}) => acc + scrollWidth, 0) +\n maxIndex * margin -\n (tabs[tabs.length - 1]?.scrollWidth ?? 0);\n\n if (Number.isNaN(total) || total <= clientWidth) {\n return Infinity;\n }\n\n while (maxIndex) {\n total -= (tabs[maxIndex]?.scrollWidth ?? 0) + margin;\n maxIndex--;\n\n const activeDisplaced = exposeActive && activeItemIndex > maxIndex;\n const activeOffset = activeDisplaced ? activeWidth + margin : 0;\n const currentWidth = total + activeOffset + moreWidth + margin;\n // Needed for different rounding of visible and hidden elements scrollWidth\n const safetyOffset = tuiToInt(this.maxIndex === maxIndex - 1);\n\n if (currentWidth + safetyOffset < clientWidth) {\n return maxIndex;\n }\n }\n\n return -1;\n }\n\n private updateActiveItemIndex(activeItemIndex: number): void {\n this.itemIndex = activeItemIndex;\n this.activeItemIndexChange.emit(activeItemIndex);\n }\n\n private refresh(): void {\n const {offsetLeft = 0, offsetWidth = 0} = this.activeElement || {};\n\n this.dir?.nativeElement.style.setProperty('--t-left', tuiPx(offsetLeft));\n this.dir?.nativeElement.style.setProperty('--t-width', tuiPx(offsetWidth));\n }\n}\n","<ng-container *ngIf=\"items.changes | async\" />\n<tui-tabs\n class=\"t-tabs\"\n [activeItemIndex]=\"activeItemIndex\"\n [size]=\"size\"\n [underline]=\"underline\"\n (activeItemIndexChange)=\"onActiveItemIndexChange($event)\"\n (keydown.arrowRight)=\"onArrowRight($event)\"\n>\n <ng-container *ngFor=\"let item of items; let index = index\">\n <ng-container\n *ngIf=\"index <= lastVisibleIndex; else hidden\"\n [ngTemplateOutlet]=\"item\"\n />\n <ng-template #hidden>\n <div\n class=\"t-flex\"\n [class.t-overflown]=\"isOverflown(index)\"\n >\n <ng-container [ngTemplateOutlet]=\"item\" />\n </div>\n </ng-template>\n </ng-container>\n</tui-tabs>\n\n<button\n *ngIf=\"moreContent; else chevron\"\n tuiTab\n type=\"button\"\n class=\"t-more\"\n [class._active]=\"isMoreActive\"\n [class.t-no-margin]=\"isMoreAlone\"\n [class.t-overflown]=\"!isMoreVisible\"\n [tabIndex]=\"isMoreFocusable ? 0 : -1\"\n [tuiDropdown]=\"dropdownContent || dropdown\"\n [(tuiDropdownOpen)]=\"open\"\n (keydown.arrowLeft.prevent)=\"onArrowLeft()\"\n>\n <ng-container *polymorpheusOutlet=\"moreContent as text\">\n {{ text }}\n </ng-container>\n</button>\n<ng-template #chevron>\n <button\n tuiChevron\n tuiTab\n type=\"button\"\n class=\"t-more\"\n [class._active]=\"isMoreActive\"\n [class.t-no-margin]=\"isMoreAlone\"\n [class.t-overflown]=\"!isMoreVisible\"\n [tabIndex]=\"isMoreFocusable ? 0 : -1\"\n [tuiDropdown]=\"dropdownContent || dropdown\"\n [(tuiDropdownOpen)]=\"open\"\n (keydown.arrowLeft.prevent)=\"onArrowLeft()\"\n >\n {{ moreWord$ | async }}\n </button>\n</ng-template>\n<ng-template #dropdown>\n <div\n #element\n class=\"t-dropdown\"\n [attr.data-size]=\"size\"\n (keydown.arrowDown.prevent)=\"onWrapperArrow($event, element, false)\"\n (keydown.arrowUp.prevent)=\"onWrapperArrow($event, element, true)\"\n >\n <div\n *ngFor=\"let item of items; let index = index\"\n class=\"t-dropdown-item\"\n (tui-tab-activate)=\"onClick(index)\"\n >\n <ng-container *ngIf=\"shouldShow(index)\">\n <ng-container *polymorpheusOutlet=\"item\" />\n </ng-container>\n </div>\n </div>\n</ng-template>\n","import {TuiItem} from '@taiga-ui/cdk/directives/item';\n\nimport {TuiTab} from './tab.directive';\nimport {TuiTabsDirective} from './tabs.directive';\nimport {TuiTabsHorizontal} from './tabs-horizontal.directive';\nimport {TuiTabsVertical} from './tabs-vertical.directive';\nimport {TuiTabsWithMore} from './tabs-with-more.component';\n\nexport const TuiTabs = [\n TuiItem,\n TuiTab,\n TuiTabsDirective,\n TuiTabsHorizontal,\n TuiTabsVertical,\n TuiTabsWithMore,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.TuiTabsDirective","i1"],"mappings":"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"}
|
|
@@ -33,6 +33,7 @@ export * from '@taiga-ui/kit/components/input-password';
|
|
|
33
33
|
export * from '@taiga-ui/kit/components/input-phone-international';
|
|
34
34
|
export * from '@taiga-ui/kit/components/input-pin';
|
|
35
35
|
export * from '@taiga-ui/kit/components/input-slider';
|
|
36
|
+
export * from '@taiga-ui/kit/components/input-time';
|
|
36
37
|
export * from '@taiga-ui/kit/components/items-with-more';
|
|
37
38
|
export * from '@taiga-ui/kit/components/like';
|
|
38
39
|
export * from '@taiga-ui/kit/components/line-clamp';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-components.mjs","sources":["../../../projects/kit/components/taiga-ui-kit-components.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-components.mjs","sources":["../../../projects/kit/components/taiga-ui-kit-components.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEG"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Directive } from '@angular/core';
|
|
3
3
|
import { TuiControl } from '@taiga-ui/cdk/classes';
|
|
4
|
-
import
|
|
5
|
-
import
|
|
4
|
+
import * as i2 from '@taiga-ui/cdk/directives/native-validator';
|
|
5
|
+
import { TuiNativeValidator } from '@taiga-ui/cdk/directives/native-validator';
|
|
6
|
+
import { tuiAsOptionContent, tuiAsDataListHost } from '@taiga-ui/core/components/data-list';
|
|
7
|
+
import * as i3 from '@taiga-ui/core/components/textfield';
|
|
6
8
|
import { TuiWithTextfieldDropdown } from '@taiga-ui/core/components/textfield';
|
|
7
9
|
import * as i1 from '@taiga-ui/core/directives/dropdown';
|
|
8
10
|
import { tuiDropdownOpen, tuiDropdownOptionsProvider, TuiDropdownDirective, TuiWithDropdownOpen } from '@taiga-ui/core/directives/dropdown';
|
|
11
|
+
import { TuiSelectOption } from '@taiga-ui/kit/components/select';
|
|
9
12
|
|
|
10
13
|
class TuiButtonSelect extends TuiControl {
|
|
11
14
|
constructor() {
|
|
@@ -19,10 +22,10 @@ class TuiButtonSelect extends TuiControl {
|
|
|
19
22
|
}
|
|
20
23
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiButtonSelect, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
21
24
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiButtonSelect, isStandalone: true, selector: "button[tuiButtonSelect]", providers: [
|
|
22
|
-
|
|
25
|
+
tuiAsOptionContent(TuiSelectOption),
|
|
23
26
|
tuiAsDataListHost(TuiButtonSelect),
|
|
24
27
|
tuiDropdownOptionsProvider({ align: 'right' }),
|
|
25
|
-
], usesInheritance: true, hostDirectives: [{ directive: i1.TuiDropdownDirective }, { directive: i1.TuiWithDropdownOpen }, { directive:
|
|
28
|
+
], usesInheritance: true, hostDirectives: [{ directive: i1.TuiDropdownDirective }, { directive: i2.TuiNativeValidator }, { directive: i1.TuiWithDropdownOpen }, { directive: i3.TuiWithTextfieldDropdown }], ngImport: i0 }); }
|
|
26
29
|
}
|
|
27
30
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiButtonSelect, decorators: [{
|
|
28
31
|
type: Directive,
|
|
@@ -30,11 +33,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
30
33
|
standalone: true,
|
|
31
34
|
selector: 'button[tuiButtonSelect]',
|
|
32
35
|
providers: [
|
|
33
|
-
|
|
36
|
+
tuiAsOptionContent(TuiSelectOption),
|
|
34
37
|
tuiAsDataListHost(TuiButtonSelect),
|
|
35
38
|
tuiDropdownOptionsProvider({ align: 'right' }),
|
|
36
39
|
],
|
|
37
|
-
hostDirectives: [
|
|
40
|
+
hostDirectives: [
|
|
41
|
+
TuiDropdownDirective,
|
|
42
|
+
TuiNativeValidator,
|
|
43
|
+
TuiWithDropdownOpen,
|
|
44
|
+
TuiWithTextfieldDropdown,
|
|
45
|
+
],
|
|
38
46
|
}]
|
|
39
47
|
}] });
|
|
40
48
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-directives-button-select.mjs","sources":["../../../projects/kit/directives/button-select/button-select.directive.ts","../../../projects/kit/directives/button-select/taiga-ui-kit-directives-button-select.ts"],"sourcesContent":["import {Directive} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport type {TuiDataListHost} from '@taiga-ui/core/components/data-list';\nimport {tuiAsDataListHost} from '@taiga-ui/core/components/data-list';\nimport {TuiWithTextfieldDropdown} from '@taiga-ui/core/components/textfield';\nimport {\n TuiDropdownDirective,\n tuiDropdownOpen,\n tuiDropdownOptionsProvider,\n TuiWithDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\n\n@Directive({\n standalone: true,\n selector: 'button[tuiButtonSelect]',\n providers: [\n
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-directives-button-select.mjs","sources":["../../../projects/kit/directives/button-select/button-select.directive.ts","../../../projects/kit/directives/button-select/taiga-ui-kit-directives-button-select.ts"],"sourcesContent":["import {Directive} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {TuiNativeValidator} from '@taiga-ui/cdk/directives/native-validator';\nimport type {TuiDataListHost} from '@taiga-ui/core/components/data-list';\nimport {tuiAsDataListHost, tuiAsOptionContent} from '@taiga-ui/core/components/data-list';\nimport {TuiWithTextfieldDropdown} from '@taiga-ui/core/components/textfield';\nimport {\n TuiDropdownDirective,\n tuiDropdownOpen,\n tuiDropdownOptionsProvider,\n TuiWithDropdownOpen,\n} from '@taiga-ui/core/directives/dropdown';\nimport {TuiSelectOption} from '@taiga-ui/kit/components/select';\n\n@Directive({\n standalone: true,\n selector: 'button[tuiButtonSelect]',\n providers: [\n tuiAsOptionContent(TuiSelectOption),\n tuiAsDataListHost(TuiButtonSelect),\n tuiDropdownOptionsProvider({align: 'right'}),\n ],\n hostDirectives: [\n TuiDropdownDirective,\n TuiNativeValidator,\n TuiWithDropdownOpen,\n TuiWithTextfieldDropdown,\n ],\n})\nexport class TuiButtonSelect<T> extends TuiControl<T> implements TuiDataListHost<T> {\n private readonly open = tuiDropdownOpen();\n\n public readonly size = 's';\n\n public handleOption(option: T): void {\n this.onChange(option);\n this.open.set(false);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;AAcA,MAea,eAAmB,SAAQ,UAAa,CAAA;AAfrD,IAAA,WAAA,GAAA;;QAgBqB,IAAI,CAAA,IAAA,GAAG,eAAe,EAAE,CAAC;QAE1B,IAAI,CAAA,IAAA,GAAG,GAAG,CAAC;AAM9B,KAAA;AAJU,IAAA,YAAY,CAAC,MAAS,EAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACxB;+GARQ,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EAZb,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,SAAA,EAAA;YACP,kBAAkB,CAAC,eAAe,CAAC;YACnC,iBAAiB,CAAC,eAAe,CAAC;AAClC,YAAA,0BAA0B,CAAC,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC;AAC/C,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAQQ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAf3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,SAAS,EAAE;wBACP,kBAAkB,CAAC,eAAe,CAAC;AACnC,wBAAA,iBAAiB,CAAiB,eAAA,CAAA;AAClC,wBAAA,0BAA0B,CAAC,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC;AAC/C,qBAAA;AACD,oBAAA,cAAc,EAAE;wBACZ,oBAAoB;wBACpB,kBAAkB;wBAClB,mBAAmB;wBACnB,wBAAwB;AAC3B,qBAAA;AACJ,iBAAA,CAAA;;;AC5BD;;AAEG;;;;"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { __decorate } from 'tslib';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { inject, Pipe } from '@angular/core';
|
|
4
|
+
import { tuiPure } from '@taiga-ui/cdk/utils/miscellaneous';
|
|
5
|
+
import { TuiTextfieldComponent } from '@taiga-ui/core/components/textfield';
|
|
6
|
+
import { TUI_ITEMS_HANDLERS } from '@taiga-ui/core/directives/items-handlers';
|
|
7
|
+
import { tuiIsFlat } from '@taiga-ui/kit/utils';
|
|
8
|
+
|
|
9
|
+
class TuiHideSelectedPipe {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.textfield = inject(TuiTextfieldComponent);
|
|
12
|
+
this.handlers = inject(TUI_ITEMS_HANDLERS);
|
|
13
|
+
}
|
|
14
|
+
transform(items) {
|
|
15
|
+
if (!items) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
const value = this.textfield.control?.value || [];
|
|
19
|
+
return tuiIsFlat(items)
|
|
20
|
+
? this.filter(items, value, this.handlers.identityMatcher())
|
|
21
|
+
: this.filter2d(items, value, this.handlers.identityMatcher());
|
|
22
|
+
}
|
|
23
|
+
filter2d(items, value, matcher) {
|
|
24
|
+
return items.map((subItems) => this.filter(subItems, value, matcher));
|
|
25
|
+
}
|
|
26
|
+
filter(items, value, matcher) {
|
|
27
|
+
return items.filter((item) => value.every((selected) => !matcher(selected, item)));
|
|
28
|
+
}
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiHideSelectedPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
30
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: TuiHideSelectedPipe, isStandalone: true, name: "tuiHideSelected", pure: false }); }
|
|
31
|
+
}
|
|
32
|
+
__decorate([
|
|
33
|
+
tuiPure
|
|
34
|
+
], TuiHideSelectedPipe.prototype, "filter2d", null);
|
|
35
|
+
__decorate([
|
|
36
|
+
tuiPure
|
|
37
|
+
], TuiHideSelectedPipe.prototype, "filter", null);
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiHideSelectedPipe, decorators: [{
|
|
39
|
+
type: Pipe,
|
|
40
|
+
args: [{
|
|
41
|
+
standalone: true,
|
|
42
|
+
name: 'tuiHideSelected',
|
|
43
|
+
pure: false,
|
|
44
|
+
}]
|
|
45
|
+
}], propDecorators: { filter2d: [], filter: [] } });
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Generated bundle index. Do not edit.
|
|
49
|
+
*/
|
|
50
|
+
|
|
51
|
+
export { TuiHideSelectedPipe };
|
|
52
|
+
//# sourceMappingURL=taiga-ui-kit-pipes-hide-selected.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-pipes-hide-selected.mjs","sources":["../../../projects/kit/pipes/hide-selected/hide-selected.pipe.ts","../../../projects/kit/pipes/hide-selected/taiga-ui-kit-pipes-hide-selected.ts"],"sourcesContent":["import type {PipeTransform} from '@angular/core';\nimport {inject, Pipe} from '@angular/core';\nimport type {TuiIdentityMatcher} from '@taiga-ui/cdk/types';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\nimport {TUI_ITEMS_HANDLERS} from '@taiga-ui/core/directives/items-handlers';\nimport {tuiIsFlat} from '@taiga-ui/kit/utils';\n\n@Pipe({\n standalone: true,\n name: 'tuiHideSelected',\n pure: false,\n})\nexport class TuiHideSelectedPipe implements PipeTransform {\n private readonly textfield = inject(TuiTextfieldComponent);\n private readonly handlers = inject(TUI_ITEMS_HANDLERS);\n\n public transform<T>(items: readonly T[] | null): readonly T[] | null;\n public transform<T>(\n items: ReadonlyArray<readonly T[]> | null,\n ): ReadonlyArray<readonly T[]> | null;\n public transform<T>(\n items: ReadonlyArray<readonly T[]> | readonly T[] | null,\n ): ReadonlyArray<readonly T[]> | readonly T[] | null {\n if (!items) {\n return null;\n }\n\n const value = this.textfield.control?.value || [];\n\n return tuiIsFlat(items)\n ? this.filter(items, value, this.handlers.identityMatcher())\n : this.filter2d(items, value, this.handlers.identityMatcher());\n }\n\n @tuiPure\n private filter2d<T>(\n items: ReadonlyArray<readonly T[]>,\n value: readonly T[],\n matcher: TuiIdentityMatcher<T>,\n ): ReadonlyArray<readonly T[]> {\n return items.map((subItems) => this.filter(subItems, value, matcher));\n }\n\n @tuiPure\n private filter<T>(\n items: readonly T[],\n value: readonly T[],\n matcher: TuiIdentityMatcher<T>,\n ): readonly T[] {\n return items.filter((item) =>\n value.every((selected) => !matcher(selected, item)),\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAQA,MAKa,mBAAmB,CAAA;AALhC,IAAA,WAAA,GAAA;AAMqB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAC1C,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAuC1D,KAAA;AAjCU,IAAA,SAAS,CACZ,KAAwD,EAAA;QAExD,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;QAElD,OAAO,SAAS,CAAC,KAAK,CAAC;AACnB,cAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;AAC5D,cAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;KACtE;AAGO,IAAA,QAAQ,CACZ,KAAkC,EAClC,KAAmB,EACnB,OAA8B,EAAA;QAE9B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;KACzE;AAGO,IAAA,MAAM,CACV,KAAmB,EACnB,KAAmB,EACnB,OAA8B,EAAA;QAE9B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KACrB,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CACtD,CAAC;KACL;+GAxCQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA;;AAuBpB,UAAA,CAAA;IADP,OAAO;AAOP,CAAA,EAAA,mBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,IAAA,CAAA,CAAA;AAGO,UAAA,CAAA;IADP,OAAO;AASP,CAAA,EAAA,mBAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,CAAA,CAAA;4FAxCQ,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,iBAAiB;AACvB,oBAAA,IAAI,EAAE,KAAK;AACd,iBAAA,CAAA;AAwBW,SAAA,CAAA,EAAA,cAAA,EAAA,EAAA,QAAQ,MASR,MAAM,EAAA,EAAA,EAAA,EAAA,CAAA;;AC7ClB;;AAEG;;;;"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from '@taiga-ui/kit/pipes/emails';
|
|
2
2
|
export * from '@taiga-ui/kit/pipes/field-error';
|
|
3
3
|
export * from '@taiga-ui/kit/pipes/filter-by-input';
|
|
4
|
+
export * from '@taiga-ui/kit/pipes/hide-selected';
|
|
4
5
|
export * from '@taiga-ui/kit/pipes/sort-countries';
|
|
5
6
|
export * from '@taiga-ui/kit/pipes/stringify';
|
|
6
7
|
export * from '@taiga-ui/kit/pipes/stringify-content';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-pipes.mjs","sources":["../../../projects/kit/pipes/taiga-ui-kit-pipes.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-pipes.mjs","sources":["../../../projects/kit/pipes/taiga-ui-kit-pipes.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAAA;;AAEG"}
|
|
@@ -87,7 +87,7 @@ const TUI_INPUT_DATE_DEFAULT_OPTIONS = {
|
|
|
87
87
|
const [TUI_INPUT_DATE_OPTIONS, tuiInputDateOptionsProvider] = tuiCreateOptions(TUI_INPUT_DATE_DEFAULT_OPTIONS);
|
|
88
88
|
|
|
89
89
|
/**
|
|
90
|
-
* @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/
|
|
90
|
+
* @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/core`.
|
|
91
91
|
* TODO(v5): delete
|
|
92
92
|
*/
|
|
93
93
|
const TUI_DEFAULT_ITEMS_HANDLERS = {
|
|
@@ -96,12 +96,12 @@ const TUI_DEFAULT_ITEMS_HANDLERS = {
|
|
|
96
96
|
disabledItemHandler: TUI_FALSE_HANDLER,
|
|
97
97
|
};
|
|
98
98
|
/**
|
|
99
|
-
* @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/
|
|
99
|
+
* @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/core`.
|
|
100
100
|
* TODO(v5): delete
|
|
101
101
|
*/
|
|
102
102
|
const TUI_ITEMS_HANDLERS = tuiCreateToken(TUI_DEFAULT_ITEMS_HANDLERS);
|
|
103
103
|
/**
|
|
104
|
-
* @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/
|
|
104
|
+
* @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/core`.
|
|
105
105
|
* TODO(v5): delete
|
|
106
106
|
*/
|
|
107
107
|
function tuiItemsHandlersProvider(options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-tokens.mjs","sources":["../../../projects/kit/tokens/calendar-date-stream.ts","../../../projects/kit/tokens/date-inputs-value-transformers.ts","../../../projects/kit/tokens/i18n.ts","../../../projects/kit/tokens/input-date-options.ts","../../../projects/kit/tokens/items-handlers.ts","../../../projects/kit/tokens/mobile-calendar.ts","../../../projects/kit/tokens/month-formatter.ts","../../../projects/kit/tokens/preview-icons.ts","../../../projects/kit/tokens/validation-errors.ts","../../../projects/kit/tokens/taiga-ui-kit-tokens.ts"],"sourcesContent":["import type {InjectionToken, Provider} from '@angular/core';\nimport {Optional, Self} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport type {TuiValueTransformer} from '@taiga-ui/cdk/classes';\nimport type {TuiDay, TuiDayRange, TuiTime} from '@taiga-ui/cdk/date-time';\nimport {tuiControlValue} from '@taiga-ui/cdk/observables';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {Observable} from 'rxjs';\nimport {map, of} from 'rxjs';\n\n/**\n * Stream that emits calendar data change\n * @deprecated this should be rewritten in v5\n */\nexport const TUI_CALENDAR_DATE_STREAM =\n tuiCreateToken<Observable<TuiDay | TuiDayRange | null>>();\n\nexport function tuiDateStreamWithTransformer(\n transformer: InjectionToken<TuiValueTransformer<any>>,\n): Provider {\n return {\n provide: TUI_CALENDAR_DATE_STREAM,\n deps: [\n [new Optional(), new Self(), NgControl],\n [new Optional(), transformer],\n ],\n useFactory: tuiControlValueFactory,\n };\n}\n\nfunction tuiControlValueFactory<\n T extends TuiDay | TuiDayRange | [TuiDay, TuiTime | null],\n>(\n control: NgControl | null,\n transformer?: TuiValueTransformer<T> | null,\n): Observable<T | null> | null {\n return control\n ? tuiControlValue(control).pipe(\n map((value) =>\n transformer ? transformer?.fromControlValue(value) : (value as T),\n ),\n )\n : of(null);\n}\n","import type {TuiValueTransformer} from '@taiga-ui/cdk/classes';\nimport {TUI_IDENTITY_VALUE_TRANSFORMER} from '@taiga-ui/cdk/classes';\nimport type {TuiDay, TuiDayRange, TuiTime} from '@taiga-ui/cdk/date-time';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\n\n/**\n * Control value transformer of TuiDay to custom value format for InputDate* components\n */\nexport const TUI_DATE_VALUE_TRANSFORMER = tuiCreateToken<\n TuiValueTransformer<TuiDay | null>\n>(TUI_IDENTITY_VALUE_TRANSFORMER);\n\n/**\n * Control value transformer for InputDateRange component\n */\nexport const TUI_DATE_RANGE_VALUE_TRANSFORMER =\n tuiCreateToken<TuiValueTransformer<TuiDayRange | null>>();\n\n/**\n * Control value transformer for InputDateTime component\n */\nexport const TUI_DATE_TIME_VALUE_TRANSFORMER =\n tuiCreateToken<TuiValueTransformer<[TuiDay, TuiTime | null]>>();\n\n/**\n * Control value transformer for InputTime component\n */\nexport const TUI_TIME_VALUE_TRANSFORMER =\n tuiCreateToken<TuiValueTransformer<TuiTime | null>>();\n","import type {TuiDateMode} from '@taiga-ui/cdk/date-time';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiCountryIsoCode} from '@taiga-ui/i18n/types';\nimport {tuiExtractI18n} from '@taiga-ui/i18n/utils';\nimport type {Observable} from 'rxjs';\n\nexport const TUI_CONFIRM_WORDS = tuiCreateTokenFromFactory(tuiExtractI18n('confirm'));\n\nexport const TUI_CANCEL_WORD = tuiCreateTokenFromFactory(tuiExtractI18n('cancel'));\n\nexport const TUI_DONE_WORD = tuiCreateTokenFromFactory(tuiExtractI18n('done'));\n\nexport const TUI_MORE_WORD = tuiCreateTokenFromFactory(tuiExtractI18n('more'));\n\nexport const TUI_HIDE_TEXT = tuiCreateTokenFromFactory(tuiExtractI18n('hide'));\n\nexport const TUI_SHOW_ALL_TEXT = tuiCreateTokenFromFactory(tuiExtractI18n('showAll'));\n\nexport const TUI_OTHER_DATE_TEXT = tuiCreateTokenFromFactory(tuiExtractI18n('otherDate'));\n\nexport const TUI_CHOOSE_DAY_OR_RANGE_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('mobileCalendarTexts'),\n);\n\nexport const TUI_FROM_TO_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('range'));\n\nexport const TUI_PLUS_MINUS_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('countTexts'),\n);\n\nexport const TUI_TIME_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('time'));\n\nexport const TUI_DATE_TEXTS = tuiCreateTokenFromFactory<\n Observable<Record<TuiDateMode, string>>\n>(tuiExtractI18n('dateTexts'));\n\nexport const TUI_DIGITAL_INFORMATION_UNITS = tuiCreateTokenFromFactory(\n tuiExtractI18n('digitalInformationUnits'),\n);\n\nexport const TUI_COPY_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('copyTexts'));\n\nexport const TUI_PASSWORD_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('passwordTexts'),\n);\n\nexport const TUI_CALENDAR_MONTHS = tuiCreateTokenFromFactory(\n tuiExtractI18n('shortCalendarMonths'),\n);\n\nexport const TUI_FILE_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('fileTexts'));\n\nexport const TUI_PAGINATION_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('pagination'),\n);\n\nexport const TUI_INPUT_FILE_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('inputFileTexts'),\n);\n\nexport const TUI_MULTI_SELECT_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('multiSelectTexts'),\n);\n\nexport const TUI_COUNTRIES = tuiCreateTokenFromFactory<\n Observable<Record<TuiCountryIsoCode, string>>\n>(tuiExtractI18n('countries'));\n\nexport const TUI_PREVIEW_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('previewTexts'),\n);\n\nexport const TUI_PREVIEW_ZOOM_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('zoomTexts'),\n);\n\nexport const TUI_INTERNATIONAL_SEARCH = tuiCreateTokenFromFactory(\n tuiExtractI18n('phoneSearch'),\n);\n","import type {TuiDay} from '@taiga-ui/cdk/date-time';\nimport {TUI_FIRST_DAY, TUI_LAST_DAY} from '@taiga-ui/cdk/date-time';\nimport type {TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport type {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nexport interface TuiInputDateOptions {\n readonly icon: PolymorpheusContent<TuiContext<TuiSizeL | TuiSizeS>>;\n readonly max: TuiDay;\n readonly min: TuiDay;\n readonly nativePicker: boolean;\n}\n\nexport const TUI_INPUT_DATE_DEFAULT_OPTIONS: TuiInputDateOptions = {\n icon: () => '@tui.calendar',\n min: TUI_FIRST_DAY,\n max: TUI_LAST_DAY,\n nativePicker: false,\n};\n\n/**\n * Default parameters for InputDate component\n */\nexport const [TUI_INPUT_DATE_OPTIONS, tuiInputDateOptionsProvider] = tuiCreateOptions(\n TUI_INPUT_DATE_DEFAULT_OPTIONS,\n);\n","import type {Provider} from '@angular/core';\nimport {TUI_DEFAULT_IDENTITY_MATCHER, TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport type {\n TuiBooleanHandler,\n TuiIdentityMatcher,\n TuiStringHandler,\n} from '@taiga-ui/cdk/types';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\n/**\n * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/kit`.\n * TODO(v5): delete\n */\nexport interface TuiItemsHandlers<T> {\n readonly disabledItemHandler: TuiBooleanHandler<T>;\n readonly identityMatcher: TuiIdentityMatcher<T>;\n readonly stringify: TuiStringHandler<T>;\n}\n\n/**\n * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/kit`.\n * TODO(v5): delete\n */\nexport const TUI_DEFAULT_ITEMS_HANDLERS: TuiItemsHandlers<unknown> = {\n stringify: String,\n identityMatcher: TUI_DEFAULT_IDENTITY_MATCHER,\n disabledItemHandler: TUI_FALSE_HANDLER,\n};\n\n/**\n * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/kit`.\n * TODO(v5): delete\n */\nexport const TUI_ITEMS_HANDLERS = tuiCreateToken(TUI_DEFAULT_ITEMS_HANDLERS);\n\n/**\n * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/kit`.\n * TODO(v5): delete\n */\nexport function tuiItemsHandlersProvider<T>(\n options: Partial<TuiItemsHandlers<T>>,\n): Provider {\n return tuiProvideOptions(TUI_ITEMS_HANDLERS, options, TUI_DEFAULT_ITEMS_HANDLERS);\n}\n","import type {FactoryProvider, Type} from '@angular/core';\nimport {inject} from '@angular/core';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_DROPDOWN_COMPONENT} from '@taiga-ui/core/directives/dropdown';\n\n/**\n * A component for mobile data picker\n */\nexport const TUI_MOBILE_CALENDAR = tuiCreateToken<Type<unknown>>();\n\nexport const TUI_MOBILE_CALENDAR_PROVIDER: FactoryProvider = {\n provide: TUI_DROPDOWN_COMPONENT,\n useFactory: () =>\n (inject(TUI_IS_MOBILE) && inject(TUI_MOBILE_CALENDAR, {optional: true})) ||\n inject(TUI_DROPDOWN_COMPONENT, {skipSelf: true}),\n};\n","import {inject} from '@angular/core';\nimport type {TuiMonth} from '@taiga-ui/cdk/date-time';\nimport type {TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_MONTHS} from '@taiga-ui/core/tokens';\nimport type {Observable} from 'rxjs';\nimport {map} from 'rxjs';\n\nexport const TUI_MONTH_FORMATTER = tuiCreateTokenFromFactory<\n Observable<TuiHandler<TuiMonth | null, string>>\n>(() =>\n inject(TUI_MONTHS).pipe(\n map((months) => (date) => {\n if (!date) {\n return '';\n }\n\n return `${months[date.month] ?? ''} ${date.formattedYear}`;\n }),\n ),\n);\n","import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiPreviewIcons {\n readonly next: string;\n readonly prev: string;\n readonly rotate: string;\n readonly zoomIn: string;\n readonly zoomOut: string;\n readonly zoomReset: string;\n}\n\nexport const TUI_PREVIEW_ICONS_DEFAULT: TuiPreviewIcons = {\n rotate: '@tui.rotate-ccw-square',\n prev: '@tui.arrow-left',\n next: '@tui.arrow-right',\n zoomIn: '@tui.plus',\n zoomOut: '@tui.minus',\n zoomReset: '@tui.minimize',\n};\n\nexport const TUI_PREVIEW_ICONS = tuiCreateToken(TUI_PREVIEW_ICONS_DEFAULT);\n\nexport function tuiPreviewIconsProvider(icons: Partial<TuiPreviewIcons>): Provider {\n return tuiProvideOptions(TUI_PREVIEW_ICONS, icons, TUI_PREVIEW_ICONS_DEFAULT);\n}\n","import type {Provider} from '@angular/core';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport type {Observable} from 'rxjs';\n\nexport const TUI_VALIDATION_ERRORS = tuiCreateToken<\n Record<string, Observable<PolymorpheusContent> | PolymorpheusContent>\n>({});\n\nexport const tuiValidationErrorsProvider = (\n useValue: Record<string, Observable<PolymorpheusContent> | PolymorpheusContent>,\n): Provider => ({provide: TUI_VALIDATION_ERRORS, useValue});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAUA;;;AAGG;AACU,MAAA,wBAAwB,GACjC,cAAc,GAA4C;AAExD,SAAU,4BAA4B,CACxC,WAAqD,EAAA;IAErD,OAAO;AACH,QAAA,OAAO,EAAE,wBAAwB;AACjC,QAAA,IAAI,EAAE;YACF,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,SAAS,CAAC;AACvC,YAAA,CAAC,IAAI,QAAQ,EAAE,EAAE,WAAW,CAAC;AAChC,SAAA;AACD,QAAA,UAAU,EAAE,sBAAsB;KACrC,CAAC;AACN,CAAC;AAED,SAAS,sBAAsB,CAG3B,OAAyB,EACzB,WAA2C,EAAA;AAE3C,IAAA,OAAO,OAAO;AACV,UAAE,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,CACzB,GAAG,CAAC,CAAC,KAAK,KACN,WAAW,GAAG,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAI,KAAW,CACpE,CACJ;AACH,UAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACnB;;ACtCA;;AAEG;MACU,0BAA0B,GAAG,cAAc,CAEtD,8BAA8B,EAAE;AAElC;;AAEG;AACU,MAAA,gCAAgC,GACzC,cAAc,GAA4C;AAE9D;;AAEG;AACU,MAAA,+BAA+B,GACxC,cAAc,GAAkD;AAEpE;;AAEG;AACU,MAAA,0BAA0B,GACnC,cAAc;;ACtBL,MAAA,iBAAiB,GAAG,yBAAyB,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;AAEzE,MAAA,eAAe,GAAG,yBAAyB,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;AAEtE,MAAA,aAAa,GAAG,yBAAyB,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;AAElE,MAAA,aAAa,GAAG,yBAAyB,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;AAElE,MAAA,aAAa,GAAG,yBAAyB,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;AAElE,MAAA,iBAAiB,GAAG,yBAAyB,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;AAEzE,MAAA,mBAAmB,GAAG,yBAAyB,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE;AAE7E,MAAA,6BAA6B,GAAG,yBAAyB,CAClE,cAAc,CAAC,qBAAqB,CAAC,EACvC;AAEW,MAAA,iBAAiB,GAAG,yBAAyB,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;AAEvE,MAAA,oBAAoB,GAAG,yBAAyB,CACzD,cAAc,CAAC,YAAY,CAAC,EAC9B;AAEW,MAAA,cAAc,GAAG,yBAAyB,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;AAEnE,MAAA,cAAc,GAAG,yBAAyB,CAErD,cAAc,CAAC,WAAW,CAAC,EAAE;AAElB,MAAA,6BAA6B,GAAG,yBAAyB,CAClE,cAAc,CAAC,yBAAyB,CAAC,EAC3C;AAEW,MAAA,cAAc,GAAG,yBAAyB,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE;AAExE,MAAA,kBAAkB,GAAG,yBAAyB,CACvD,cAAc,CAAC,eAAe,CAAC,EACjC;AAEW,MAAA,mBAAmB,GAAG,yBAAyB,CACxD,cAAc,CAAC,qBAAqB,CAAC,EACvC;AAEW,MAAA,cAAc,GAAG,yBAAyB,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE;AAExE,MAAA,oBAAoB,GAAG,yBAAyB,CACzD,cAAc,CAAC,YAAY,CAAC,EAC9B;AAEW,MAAA,oBAAoB,GAAG,yBAAyB,CACzD,cAAc,CAAC,gBAAgB,CAAC,EAClC;AAEW,MAAA,sBAAsB,GAAG,yBAAyB,CAC3D,cAAc,CAAC,kBAAkB,CAAC,EACpC;AAEW,MAAA,aAAa,GAAG,yBAAyB,CAEpD,cAAc,CAAC,WAAW,CAAC,EAAE;AAElB,MAAA,iBAAiB,GAAG,yBAAyB,CACtD,cAAc,CAAC,cAAc,CAAC,EAChC;AAEW,MAAA,sBAAsB,GAAG,yBAAyB,CAC3D,cAAc,CAAC,WAAW,CAAC,EAC7B;AAEW,MAAA,wBAAwB,GAAG,yBAAyB,CAC7D,cAAc,CAAC,aAAa,CAAC;;AC/DpB,MAAA,8BAA8B,GAAwB;AAC/D,IAAA,IAAI,EAAE,MAAM,eAAe;AAC3B,IAAA,GAAG,EAAE,aAAa;AAClB,IAAA,GAAG,EAAE,YAAY;AACjB,IAAA,YAAY,EAAE,KAAK;EACrB;AAEF;;AAEG;AACI,MAAM,CAAC,sBAAsB,EAAE,2BAA2B,CAAC,GAAG,gBAAgB,CACjF,8BAA8B;;ACNlC;;;AAGG;AACU,MAAA,0BAA0B,GAA8B;AACjE,IAAA,SAAS,EAAE,MAAM;AACjB,IAAA,eAAe,EAAE,4BAA4B;AAC7C,IAAA,mBAAmB,EAAE,iBAAiB;EACxC;AAEF;;;AAGG;MACU,kBAAkB,GAAG,cAAc,CAAC,0BAA0B,EAAE;AAE7E;;;AAGG;AACG,SAAU,wBAAwB,CACpC,OAAqC,EAAA;IAErC,OAAO,iBAAiB,CAAC,kBAAkB,EAAE,OAAO,EAAE,0BAA0B,CAAC,CAAC;AACtF;;ACrCA;;AAEG;AACU,MAAA,mBAAmB,GAAG,cAAc,GAAkB;AAEtD,MAAA,4BAA4B,GAAoB;AACzD,IAAA,OAAO,EAAE,sBAAsB;IAC/B,UAAU,EAAE,MACR,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,mBAAmB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;QACvE,MAAM,CAAC,sBAAsB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;;;ACP3C,MAAA,mBAAmB,GAAG,yBAAyB,CAE1D,MACE,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CACnB,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,KAAI;IACrB,IAAI,CAAC,IAAI,EAAE;AACP,QAAA,OAAO,EAAE,CAAC;AACb,KAAA;AAED,IAAA,OAAO,CAAG,EAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAI,CAAA,EAAA,IAAI,CAAC,aAAa,EAAE,CAAC;AAC/D,CAAC,CAAC,CACL;;ACPQ,MAAA,yBAAyB,GAAoB;AACtD,IAAA,MAAM,EAAE,wBAAwB;AAChC,IAAA,IAAI,EAAE,iBAAiB;AACvB,IAAA,IAAI,EAAE,kBAAkB;AACxB,IAAA,MAAM,EAAE,WAAW;AACnB,IAAA,OAAO,EAAE,YAAY;AACrB,IAAA,SAAS,EAAE,eAAe;EAC5B;MAEW,iBAAiB,GAAG,cAAc,CAAC,yBAAyB,EAAE;AAErE,SAAU,uBAAuB,CAAC,KAA+B,EAAA;IACnE,OAAO,iBAAiB,CAAC,iBAAiB,EAAE,KAAK,EAAE,yBAAyB,CAAC,CAAC;AAClF;;MCpBa,qBAAqB,GAAG,cAAc,CAEjD,EAAE,EAAE;AAEO,MAAA,2BAA2B,GAAG,CACvC,QAA+E,MACnE,EAAC,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAC;;ACX1D;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-tokens.mjs","sources":["../../../projects/kit/tokens/calendar-date-stream.ts","../../../projects/kit/tokens/date-inputs-value-transformers.ts","../../../projects/kit/tokens/i18n.ts","../../../projects/kit/tokens/input-date-options.ts","../../../projects/kit/tokens/items-handlers.ts","../../../projects/kit/tokens/mobile-calendar.ts","../../../projects/kit/tokens/month-formatter.ts","../../../projects/kit/tokens/preview-icons.ts","../../../projects/kit/tokens/validation-errors.ts","../../../projects/kit/tokens/taiga-ui-kit-tokens.ts"],"sourcesContent":["import type {InjectionToken, Provider} from '@angular/core';\nimport {Optional, Self} from '@angular/core';\nimport {NgControl} from '@angular/forms';\nimport type {TuiValueTransformer} from '@taiga-ui/cdk/classes';\nimport type {TuiDay, TuiDayRange, TuiTime} from '@taiga-ui/cdk/date-time';\nimport {tuiControlValue} from '@taiga-ui/cdk/observables';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {Observable} from 'rxjs';\nimport {map, of} from 'rxjs';\n\n/**\n * Stream that emits calendar data change\n * @deprecated this should be rewritten in v5\n */\nexport const TUI_CALENDAR_DATE_STREAM =\n tuiCreateToken<Observable<TuiDay | TuiDayRange | null>>();\n\nexport function tuiDateStreamWithTransformer(\n transformer: InjectionToken<TuiValueTransformer<any>>,\n): Provider {\n return {\n provide: TUI_CALENDAR_DATE_STREAM,\n deps: [\n [new Optional(), new Self(), NgControl],\n [new Optional(), transformer],\n ],\n useFactory: tuiControlValueFactory,\n };\n}\n\nfunction tuiControlValueFactory<\n T extends TuiDay | TuiDayRange | [TuiDay, TuiTime | null],\n>(\n control: NgControl | null,\n transformer?: TuiValueTransformer<T> | null,\n): Observable<T | null> | null {\n return control\n ? tuiControlValue(control).pipe(\n map((value) =>\n transformer ? transformer?.fromControlValue(value) : (value as T),\n ),\n )\n : of(null);\n}\n","import type {TuiValueTransformer} from '@taiga-ui/cdk/classes';\nimport {TUI_IDENTITY_VALUE_TRANSFORMER} from '@taiga-ui/cdk/classes';\nimport type {TuiDay, TuiDayRange, TuiTime} from '@taiga-ui/cdk/date-time';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\n\n/**\n * Control value transformer of TuiDay to custom value format for InputDate* components\n */\nexport const TUI_DATE_VALUE_TRANSFORMER = tuiCreateToken<\n TuiValueTransformer<TuiDay | null>\n>(TUI_IDENTITY_VALUE_TRANSFORMER);\n\n/**\n * Control value transformer for InputDateRange component\n */\nexport const TUI_DATE_RANGE_VALUE_TRANSFORMER =\n tuiCreateToken<TuiValueTransformer<TuiDayRange | null>>();\n\n/**\n * Control value transformer for InputDateTime component\n */\nexport const TUI_DATE_TIME_VALUE_TRANSFORMER =\n tuiCreateToken<TuiValueTransformer<[TuiDay, TuiTime | null]>>();\n\n/**\n * Control value transformer for InputTime component\n */\nexport const TUI_TIME_VALUE_TRANSFORMER =\n tuiCreateToken<TuiValueTransformer<TuiTime | null>>();\n","import type {TuiDateMode} from '@taiga-ui/cdk/date-time';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {TuiCountryIsoCode} from '@taiga-ui/i18n/types';\nimport {tuiExtractI18n} from '@taiga-ui/i18n/utils';\nimport type {Observable} from 'rxjs';\n\nexport const TUI_CONFIRM_WORDS = tuiCreateTokenFromFactory(tuiExtractI18n('confirm'));\n\nexport const TUI_CANCEL_WORD = tuiCreateTokenFromFactory(tuiExtractI18n('cancel'));\n\nexport const TUI_DONE_WORD = tuiCreateTokenFromFactory(tuiExtractI18n('done'));\n\nexport const TUI_MORE_WORD = tuiCreateTokenFromFactory(tuiExtractI18n('more'));\n\nexport const TUI_HIDE_TEXT = tuiCreateTokenFromFactory(tuiExtractI18n('hide'));\n\nexport const TUI_SHOW_ALL_TEXT = tuiCreateTokenFromFactory(tuiExtractI18n('showAll'));\n\nexport const TUI_OTHER_DATE_TEXT = tuiCreateTokenFromFactory(tuiExtractI18n('otherDate'));\n\nexport const TUI_CHOOSE_DAY_OR_RANGE_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('mobileCalendarTexts'),\n);\n\nexport const TUI_FROM_TO_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('range'));\n\nexport const TUI_PLUS_MINUS_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('countTexts'),\n);\n\nexport const TUI_TIME_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('time'));\n\nexport const TUI_DATE_TEXTS = tuiCreateTokenFromFactory<\n Observable<Record<TuiDateMode, string>>\n>(tuiExtractI18n('dateTexts'));\n\nexport const TUI_DIGITAL_INFORMATION_UNITS = tuiCreateTokenFromFactory(\n tuiExtractI18n('digitalInformationUnits'),\n);\n\nexport const TUI_COPY_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('copyTexts'));\n\nexport const TUI_PASSWORD_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('passwordTexts'),\n);\n\nexport const TUI_CALENDAR_MONTHS = tuiCreateTokenFromFactory(\n tuiExtractI18n('shortCalendarMonths'),\n);\n\nexport const TUI_FILE_TEXTS = tuiCreateTokenFromFactory(tuiExtractI18n('fileTexts'));\n\nexport const TUI_PAGINATION_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('pagination'),\n);\n\nexport const TUI_INPUT_FILE_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('inputFileTexts'),\n);\n\nexport const TUI_MULTI_SELECT_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('multiSelectTexts'),\n);\n\nexport const TUI_COUNTRIES = tuiCreateTokenFromFactory<\n Observable<Record<TuiCountryIsoCode, string>>\n>(tuiExtractI18n('countries'));\n\nexport const TUI_PREVIEW_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('previewTexts'),\n);\n\nexport const TUI_PREVIEW_ZOOM_TEXTS = tuiCreateTokenFromFactory(\n tuiExtractI18n('zoomTexts'),\n);\n\nexport const TUI_INTERNATIONAL_SEARCH = tuiCreateTokenFromFactory(\n tuiExtractI18n('phoneSearch'),\n);\n","import type {TuiDay} from '@taiga-ui/cdk/date-time';\nimport {TUI_FIRST_DAY, TUI_LAST_DAY} from '@taiga-ui/cdk/date-time';\nimport type {TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport type {TuiSizeL, TuiSizeS} from '@taiga-ui/core/types';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\nexport interface TuiInputDateOptions {\n readonly icon: PolymorpheusContent<TuiContext<TuiSizeL | TuiSizeS>>;\n readonly max: TuiDay;\n readonly min: TuiDay;\n readonly nativePicker: boolean;\n}\n\nexport const TUI_INPUT_DATE_DEFAULT_OPTIONS: TuiInputDateOptions = {\n icon: () => '@tui.calendar',\n min: TUI_FIRST_DAY,\n max: TUI_LAST_DAY,\n nativePicker: false,\n};\n\n/**\n * Default parameters for InputDate component\n */\nexport const [TUI_INPUT_DATE_OPTIONS, tuiInputDateOptionsProvider] = tuiCreateOptions(\n TUI_INPUT_DATE_DEFAULT_OPTIONS,\n);\n","import type {Provider} from '@angular/core';\nimport {TUI_DEFAULT_IDENTITY_MATCHER, TUI_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport type {\n TuiBooleanHandler,\n TuiIdentityMatcher,\n TuiStringHandler,\n} from '@taiga-ui/cdk/types';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\n/**\n * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/core`.\n * TODO(v5): delete\n */\nexport interface TuiItemsHandlers<T> {\n readonly disabledItemHandler: TuiBooleanHandler<T>;\n readonly identityMatcher: TuiIdentityMatcher<T>;\n readonly stringify: TuiStringHandler<T>;\n}\n\n/**\n * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/core`.\n * TODO(v5): delete\n */\nexport const TUI_DEFAULT_ITEMS_HANDLERS: TuiItemsHandlers<unknown> = {\n stringify: String,\n identityMatcher: TUI_DEFAULT_IDENTITY_MATCHER,\n disabledItemHandler: TUI_FALSE_HANDLER,\n};\n\n/**\n * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/core`.\n * TODO(v5): delete\n */\nexport const TUI_ITEMS_HANDLERS = tuiCreateToken(TUI_DEFAULT_ITEMS_HANDLERS);\n\n/**\n * @deprecated use it only for LEGACY controls. For new controls use the same entity from `@taiga-ui/core`.\n * TODO(v5): delete\n */\nexport function tuiItemsHandlersProvider<T>(\n options: Partial<TuiItemsHandlers<T>>,\n): Provider {\n return tuiProvideOptions(TUI_ITEMS_HANDLERS, options, TUI_DEFAULT_ITEMS_HANDLERS);\n}\n","import type {FactoryProvider, Type} from '@angular/core';\nimport {inject} from '@angular/core';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_DROPDOWN_COMPONENT} from '@taiga-ui/core/directives/dropdown';\n\n/**\n * A component for mobile data picker\n */\nexport const TUI_MOBILE_CALENDAR = tuiCreateToken<Type<unknown>>();\n\nexport const TUI_MOBILE_CALENDAR_PROVIDER: FactoryProvider = {\n provide: TUI_DROPDOWN_COMPONENT,\n useFactory: () =>\n (inject(TUI_IS_MOBILE) && inject(TUI_MOBILE_CALENDAR, {optional: true})) ||\n inject(TUI_DROPDOWN_COMPONENT, {skipSelf: true}),\n};\n","import {inject} from '@angular/core';\nimport type {TuiMonth} from '@taiga-ui/cdk/date-time';\nimport type {TuiHandler} from '@taiga-ui/cdk/types';\nimport {tuiCreateTokenFromFactory} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_MONTHS} from '@taiga-ui/core/tokens';\nimport type {Observable} from 'rxjs';\nimport {map} from 'rxjs';\n\nexport const TUI_MONTH_FORMATTER = tuiCreateTokenFromFactory<\n Observable<TuiHandler<TuiMonth | null, string>>\n>(() =>\n inject(TUI_MONTHS).pipe(\n map((months) => (date) => {\n if (!date) {\n return '';\n }\n\n return `${months[date.month] ?? ''} ${date.formattedYear}`;\n }),\n ),\n);\n","import type {Provider} from '@angular/core';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiPreviewIcons {\n readonly next: string;\n readonly prev: string;\n readonly rotate: string;\n readonly zoomIn: string;\n readonly zoomOut: string;\n readonly zoomReset: string;\n}\n\nexport const TUI_PREVIEW_ICONS_DEFAULT: TuiPreviewIcons = {\n rotate: '@tui.rotate-ccw-square',\n prev: '@tui.arrow-left',\n next: '@tui.arrow-right',\n zoomIn: '@tui.plus',\n zoomOut: '@tui.minus',\n zoomReset: '@tui.minimize',\n};\n\nexport const TUI_PREVIEW_ICONS = tuiCreateToken(TUI_PREVIEW_ICONS_DEFAULT);\n\nexport function tuiPreviewIconsProvider(icons: Partial<TuiPreviewIcons>): Provider {\n return tuiProvideOptions(TUI_PREVIEW_ICONS, icons, TUI_PREVIEW_ICONS_DEFAULT);\n}\n","import type {Provider} from '@angular/core';\nimport {tuiCreateToken} from '@taiga-ui/cdk/utils/miscellaneous';\nimport type {PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport type {Observable} from 'rxjs';\n\nexport const TUI_VALIDATION_ERRORS = tuiCreateToken<\n Record<string, Observable<PolymorpheusContent> | PolymorpheusContent>\n>({});\n\nexport const tuiValidationErrorsProvider = (\n useValue: Record<string, Observable<PolymorpheusContent> | PolymorpheusContent>,\n): Provider => ({provide: TUI_VALIDATION_ERRORS, useValue});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { TuiTime, HOURS_IN_DAY } from '@taiga-ui/cdk/date-time';
|
|
2
|
+
import { inject } from '@angular/core';
|
|
3
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { NgControl } from '@angular/forms';
|
|
5
|
+
import { tuiControlValue } from '@taiga-ui/cdk/observables';
|
|
6
|
+
import { TuiTextfieldComponent } from '@taiga-ui/core/components/textfield';
|
|
2
7
|
import { MaskitoDirective } from '@maskito/angular';
|
|
3
8
|
import { tuiDirectiveBinding } from '@taiga-ui/cdk/utils';
|
|
4
9
|
import { CHAR_PLUS } from '@taiga-ui/cdk/constants';
|
|
@@ -15,6 +20,12 @@ function tuiCreateTimePeriods(minHour = 0, maxHour = HOURS_IN_DAY, minutes = [0,
|
|
|
15
20
|
return timeArray;
|
|
16
21
|
}
|
|
17
22
|
|
|
23
|
+
function tuiInjectValue() {
|
|
24
|
+
const control = inject(TuiTextfieldComponent, { optional: true })?.control ||
|
|
25
|
+
inject(NgControl, { optional: true });
|
|
26
|
+
return toSignal(tuiControlValue(control), { requireSync: true });
|
|
27
|
+
}
|
|
28
|
+
|
|
18
29
|
function tuiIsFlat(items) {
|
|
19
30
|
return !Array.isArray(items[0]);
|
|
20
31
|
}
|
|
@@ -37,5 +48,5 @@ function tuiToggleDay(days, day) {
|
|
|
37
48
|
* Generated bundle index. Do not edit.
|
|
38
49
|
*/
|
|
39
50
|
|
|
40
|
-
export { tuiCreateTimePeriods, tuiGetCallingCode, tuiIsFlat, tuiMaskito, tuiToggleDay };
|
|
51
|
+
export { tuiCreateTimePeriods, tuiGetCallingCode, tuiInjectValue, tuiIsFlat, tuiMaskito, tuiToggleDay };
|
|
41
52
|
//# sourceMappingURL=taiga-ui-kit-utils.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-kit-utils.mjs","sources":["../../../projects/kit/utils/create-time-periods.ts","../../../projects/kit/utils/is-flat.ts","../../../projects/kit/utils/maskito.binding.ts","../../../projects/kit/utils/phone.ts","../../../projects/kit/utils/toggle-day.ts","../../../projects/kit/utils/taiga-ui-kit-utils.ts"],"sourcesContent":["import {HOURS_IN_DAY, TuiTime} from '@taiga-ui/cdk/date-time';\n\nexport function tuiCreateTimePeriods(\n minHour = 0,\n maxHour: number = HOURS_IN_DAY,\n minutes: readonly number[] = [0, 30],\n): readonly TuiTime[] {\n const timeArray: TuiTime[] = [];\n\n for (let i = minHour; i < maxHour; i++) {\n minutes.forEach((minute) => {\n const time = new TuiTime(i, minute);\n\n timeArray.push(time);\n });\n }\n\n return timeArray;\n}\n","export function tuiIsFlat<T>(\n items: ReadonlyArray<readonly T[]> | readonly T[],\n): items is readonly T[] {\n return !Array.isArray(items[0]);\n}\n","import type {Signal, WritableSignal} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport type {MaskitoOptions} from '@maskito/core';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils';\n\ntype M = MaskitoOptions | null;\n\nexport function tuiMaskito(options: M | WritableSignal<M>): WritableSignal<M>;\nexport function tuiMaskito(options: Signal<M>): Signal<M>;\nexport function tuiMaskito(options: M | Signal<M>): Signal<M> {\n return tuiDirectiveBinding(MaskitoDirective, 'options', options);\n}\n","import {CHAR_PLUS} from '@taiga-ui/cdk/constants';\nimport type {TuiCountryIsoCode} from '@taiga-ui/i18n/types';\nimport type {MetadataJson} from 'libphonenumber-js/core';\nimport {getCountryCallingCode} from 'libphonenumber-js/core';\n\nexport function tuiGetCallingCode(\n iso: TuiCountryIsoCode,\n metadata?: MetadataJson | null,\n): string {\n return metadata ? CHAR_PLUS + getCountryCallingCode(iso, metadata) : '';\n}\n","import type {TuiDay} from '@taiga-ui/cdk/date-time';\n\nexport function tuiToggleDay(\n days: readonly TuiDay[] | null,\n day: TuiDay,\n): readonly TuiDay[] {\n return (\n (days?.find((item) => item.daySame(day))\n ? days.filter((item) => !item.daySame(day))\n : days?.concat(day)) || []\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"taiga-ui-kit-utils.mjs","sources":["../../../projects/kit/utils/create-time-periods.ts","../../../projects/kit/utils/inject-value.ts","../../../projects/kit/utils/is-flat.ts","../../../projects/kit/utils/maskito.binding.ts","../../../projects/kit/utils/phone.ts","../../../projects/kit/utils/toggle-day.ts","../../../projects/kit/utils/taiga-ui-kit-utils.ts"],"sourcesContent":["import {HOURS_IN_DAY, TuiTime} from '@taiga-ui/cdk/date-time';\n\nexport function tuiCreateTimePeriods(\n minHour = 0,\n maxHour: number = HOURS_IN_DAY,\n minutes: readonly number[] = [0, 30],\n): readonly TuiTime[] {\n const timeArray: TuiTime[] = [];\n\n for (let i = minHour; i < maxHour; i++) {\n minutes.forEach((minute) => {\n const time = new TuiTime(i, minute);\n\n timeArray.push(time);\n });\n }\n\n return timeArray;\n}\n","import type {Signal} from '@angular/core';\nimport {inject} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {NgControl} from '@angular/forms';\nimport {tuiControlValue} from '@taiga-ui/cdk/observables';\nimport {TuiTextfieldComponent} from '@taiga-ui/core/components/textfield';\n\nexport function tuiInjectValue<T>(): Signal<T> {\n const control =\n inject(TuiTextfieldComponent, {optional: true})?.control ||\n inject(NgControl, {optional: true});\n\n return toSignal(tuiControlValue(control), {requireSync: true});\n}\n","export function tuiIsFlat<T>(\n items: ReadonlyArray<readonly T[]> | readonly T[],\n): items is readonly T[] {\n return !Array.isArray(items[0]);\n}\n","import type {Signal, WritableSignal} from '@angular/core';\nimport {MaskitoDirective} from '@maskito/angular';\nimport type {MaskitoOptions} from '@maskito/core';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils';\n\ntype M = MaskitoOptions | null;\n\nexport function tuiMaskito(options: M | WritableSignal<M>): WritableSignal<M>;\nexport function tuiMaskito(options: Signal<M>): Signal<M>;\nexport function tuiMaskito(options: M | Signal<M>): Signal<M> {\n return tuiDirectiveBinding(MaskitoDirective, 'options', options);\n}\n","import {CHAR_PLUS} from '@taiga-ui/cdk/constants';\nimport type {TuiCountryIsoCode} from '@taiga-ui/i18n/types';\nimport type {MetadataJson} from 'libphonenumber-js/core';\nimport {getCountryCallingCode} from 'libphonenumber-js/core';\n\nexport function tuiGetCallingCode(\n iso: TuiCountryIsoCode,\n metadata?: MetadataJson | null,\n): string {\n return metadata ? CHAR_PLUS + getCountryCallingCode(iso, metadata) : '';\n}\n","import type {TuiDay} from '@taiga-ui/cdk/date-time';\n\nexport function tuiToggleDay(\n days: readonly TuiDay[] | null,\n day: TuiDay,\n): readonly TuiDay[] {\n return (\n (days?.find((item) => item.daySame(day))\n ? days.filter((item) => !item.daySame(day))\n : days?.concat(day)) || []\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAEgB,SAAA,oBAAoB,CAChC,OAAO,GAAG,CAAC,EACX,OAAkB,GAAA,YAAY,EAC9B,OAA6B,GAAA,CAAC,CAAC,EAAE,EAAE,CAAC,EAAA;IAEpC,MAAM,SAAS,GAAc,EAAE,CAAC;IAEhC,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;AACpC,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;YACvB,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AAEpC,YAAA,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,SAAC,CAAC,CAAC;AACN,KAAA;AAED,IAAA,OAAO,SAAS,CAAC;AACrB;;SCXgB,cAAc,GAAA;AAC1B,IAAA,MAAM,OAAO,GACT,MAAM,CAAC,qBAAqB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,EAAE,OAAO;QACxD,MAAM,CAAC,SAAS,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;AAExC,IAAA,OAAO,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC,CAAC;AACnE;;ACbM,SAAU,SAAS,CACrB,KAAiD,EAAA;IAEjD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC;;ACKM,SAAU,UAAU,CAAC,OAAsB,EAAA;IAC7C,OAAO,mBAAmB,CAAC,gBAAgB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACrE;;ACNgB,SAAA,iBAAiB,CAC7B,GAAsB,EACtB,QAA8B,EAAA;AAE9B,IAAA,OAAO,QAAQ,GAAG,SAAS,GAAG,qBAAqB,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC;AAC5E;;ACRgB,SAAA,YAAY,CACxB,IAA8B,EAC9B,GAAW,EAAA;AAEX,IAAA,QACI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACpC,UAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;UACzC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAChC;AACN;;ACXA;;AAEG;;;;"}
|