@taiga-ui/core 4.52.0-canary.698642f → 4.52.0-canary.6c67ccf
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/textfield/textfield-content.directive.d.ts +3 -2
- package/components/textfield/textfield.directive.d.ts +1 -1
- package/fesm2022/taiga-ui-core-animations.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-classes.mjs +3 -3
- package/fesm2022/taiga-ui-core-classes.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-alert.mjs +12 -12
- package/fesm2022/taiga-ui-core-components-alert.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-button.mjs +6 -6
- package/fesm2022/taiga-ui-core-components-button.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-calendar.mjs +12 -12
- package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-data-list.mjs +21 -21
- package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-dialog.mjs +15 -15
- package/fesm2022/taiga-ui-core-components-dialog.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-error.mjs +3 -3
- package/fesm2022/taiga-ui-core-components-error.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-expand.mjs +6 -6
- package/fesm2022/taiga-ui-core-components-expand.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-fullscreen.mjs +3 -3
- package/fesm2022/taiga-ui-core-components-fullscreen.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-icon.mjs +6 -6
- package/fesm2022/taiga-ui-core-components-icon.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-label.mjs +6 -6
- package/fesm2022/taiga-ui-core-components-label.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-link.mjs +6 -6
- package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-loader.mjs +3 -3
- package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-notification.mjs +6 -6
- package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-root.mjs +3 -3
- package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-scrollbar.mjs +21 -21
- package/fesm2022/taiga-ui-core-components-scrollbar.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-spin-button.mjs +3 -3
- package/fesm2022/taiga-ui-core-components-spin-button.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-textfield.mjs +48 -46
- package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-appearance.mjs +9 -9
- package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-date-format.mjs +3 -3
- package/fesm2022/taiga-ui-core-directives-date-format.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-dropdown.mjs +57 -57
- package/fesm2022/taiga-ui-core-directives-dropdown.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-group.mjs +6 -6
- package/fesm2022/taiga-ui-core-directives-group.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-hint.mjs +48 -48
- package/fesm2022/taiga-ui-core-directives-hint.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-icons.mjs +9 -9
- package/fesm2022/taiga-ui-core-directives-icons.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +9 -9
- package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-number-format.mjs +3 -3
- package/fesm2022/taiga-ui-core-directives-number-format.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-popup.mjs +9 -9
- package/fesm2022/taiga-ui-core-directives-popup.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-surface.mjs +6 -6
- package/fesm2022/taiga-ui-core-directives-surface.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-title.mjs +6 -6
- package/fesm2022/taiga-ui-core-directives-title.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-pipes-auto-color.mjs +3 -3
- package/fesm2022/taiga-ui-core-pipes-auto-color.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs +3 -3
- package/fesm2022/taiga-ui-core-pipes-calendar-sheet.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-pipes-fallback-src.mjs +3 -3
- package/fesm2022/taiga-ui-core-pipes-fallback-src.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-pipes-flag.mjs +3 -3
- package/fesm2022/taiga-ui-core-pipes-flag.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-pipes-format-date.mjs +3 -3
- package/fesm2022/taiga-ui-core-pipes-format-date.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-pipes-format-number.mjs +3 -3
- package/fesm2022/taiga-ui-core-pipes-format-number.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-pipes-initials.mjs +3 -3
- package/fesm2022/taiga-ui-core-pipes-initials.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-pipes-month.mjs +3 -3
- package/fesm2022/taiga-ui-core-pipes-month.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs +3 -3
- package/fesm2022/taiga-ui-core-pipes-order-week-days.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-services.mjs +15 -15
- package/fesm2022/taiga-ui-core-services.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-tokens.mjs +13 -11
- package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-utils-dom.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-utils-format.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-data-list.mjs","sources":["../../../projects/core/components/data-list/data-list.tokens.ts","../../../projects/core/components/data-list/option/option-content.ts","../../../projects/core/components/data-list/option/option.directive.ts","../../../projects/core/components/data-list/option/option-legacy.component.ts","../../../projects/core/components/data-list/data-list.component.ts","../../../projects/core/components/data-list/data-list.template.html","../../../projects/core/components/data-list/data-list.directive.ts","../../../projects/core/components/data-list/opt-group.directive.ts","../../../projects/core/components/data-list/data-list.ts","../../../projects/core/components/data-list/taiga-ui-core-components-data-list.ts"],"sourcesContent":["import {InjectionToken, type Provider, type Signal, type Type} from '@angular/core';\nimport {type TuiIdentityMatcher, type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiAsAuxiliary} from '@taiga-ui/core/tokens';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nexport interface TuiDataListAccessor<T = unknown> {\n /**\n * @deprecated Use `options` property instead\n */\n getOptions(includeDisabled?: boolean): readonly T[];\n // TODO(v5): remove `undefined` for this property\n options?: Signal<readonly T[]>;\n}\n\n// TODO: Consider refactoring checkOption, it is only needed in ComboBox\nexport interface TuiDataListHost<T> {\n checkOption?(option: T): void;\n handleOption?(option: T): void;\n /**\n * @deprecated Use `inject(TuiItemsHandlersDirective<T>).identityMatcher` instead\n */\n readonly identityMatcher?: TuiIdentityMatcher<T>;\n /**\n * @deprecated Use `inject(TuiItemsHandlersDirective<T>).stringify` instead\n */\n readonly stringify?: TuiStringHandler<T>;\n readonly size?: TuiSizeL | TuiSizeS;\n}\n\n/**\n * Accessor for data-list options\n */\nexport const TUI_DATA_LIST_ACCESSOR = new InjectionToken<TuiDataListAccessor>(\n ngDevMode ? 'TUI_DATA_LIST_ACCESSOR' : '',\n);\n\nexport function tuiAsDataListAccessor(accessor: Type<TuiDataListAccessor>): Provider {\n return [tuiProvide(TUI_DATA_LIST_ACCESSOR, accessor), tuiAsAuxiliary(accessor)];\n}\n\n/**\n * DataList controller\n */\nexport const TUI_DATA_LIST_HOST = new InjectionToken<TuiDataListHost<unknown>>(\n ngDevMode ? 'TUI_DATA_LIST_HOST' : '',\n);\n\nexport function tuiAsDataListHost<T>(host: Type<TuiDataListHost<T>>): Provider {\n return tuiProvide(TUI_DATA_LIST_HOST, host);\n}\n","import {\n ContentChild,\n Directive,\n inject,\n InjectionToken,\n type Provider,\n type TemplateRef,\n type Type,\n} from '@angular/core';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\n/**\n * Content for tuiOption component\n */\nexport const TUI_OPTION_CONTENT = new InjectionToken<\n | PolymorpheusContent<TuiContext<TemplateRef<Record<string, unknown>>>> // TODO(v5): delete\n | Type<any>\n>(ngDevMode ? 'TUI_OPTION_CONTENT' : '');\n\nexport function tuiAsOptionContent(\n useValue:\n | PolymorpheusContent<TuiContext<TemplateRef<Record<string, unknown>>>> // TODO(v5): delete\n | Type<any>,\n): Provider {\n return {\n provide: TUI_OPTION_CONTENT,\n useValue,\n };\n}\n\n@Directive({\n standalone: true,\n})\nexport class TuiWithOptionContent {\n @ContentChild(TUI_OPTION_CONTENT, {descendants: true})\n protected readonly localContent: Type<any> | null = null;\n\n protected readonly globalContent = inject<Type<any>>(TUI_OPTION_CONTENT, {\n optional: true,\n });\n\n public get content(): Type<any> | null {\n return this.globalContent ?? this.localContent;\n }\n}\n","import {\n createComponent,\n Directive,\n EnvironmentInjector,\n forwardRef,\n inject,\n INJECTOR,\n Input,\n type OnDestroy,\n signal,\n type Type,\n ViewContainerRef,\n} from '@angular/core';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {TuiDropdownDirective} from '@taiga-ui/core/directives/dropdown';\nimport {TuiWithIcons} from '@taiga-ui/core/directives/icons';\n\nimport {TuiDataListComponent} from '../data-list.component';\nimport {TUI_DATA_LIST_HOST, type TuiDataListHost} from '../data-list.tokens';\nimport {TUI_OPTION_CONTENT} from './option-content';\n\n// TODO(v5): rename `TuiOptionNew` => `TuiOption` & remove [new] from selector\n// TODO: Consider all use cases for aria roles\n@Directive({\n standalone: true,\n selector: 'button[tuiOption][new], a[tuiOption][new], label[tuiOption][new]',\n hostDirectives: [TuiWithIcons],\n host: {\n type: 'button',\n role: 'option',\n '[attr.disabled]': 'disabled || null',\n '[class._with-dropdown]': 'dropdown?.()',\n '(mousemove.zoneless)': 'onMouseMove()',\n },\n})\nexport class TuiOptionNew<T = unknown> implements OnDestroy {\n private readonly vcr = inject(ViewContainerRef);\n private readonly isMobile = inject(TUI_IS_MOBILE);\n private readonly el = tuiInjectElement();\n private readonly dataList = inject<TuiDataListComponent<T>>(\n forwardRef(() => TuiDataListComponent),\n {optional: true},\n );\n\n private readonly content = inject<Type<any> | null>(TUI_OPTION_CONTENT, {\n optional: true,\n });\n\n private readonly ref =\n this.content &&\n createComponent(this.content, {\n environmentInjector: inject(EnvironmentInjector),\n elementInjector: inject(INJECTOR),\n hostElement: tuiInjectElement(),\n });\n\n protected readonly dropdown = inject(TuiDropdownDirective, {\n self: true,\n optional: true,\n })?.ref;\n\n @Input()\n public disabled = false;\n\n constructor() {\n if (this.ref) {\n this.vcr.insert(this.ref.hostView);\n this.ref.changeDetectorRef.detectChanges();\n }\n }\n\n // Preventing focus loss upon focused option removal\n public ngOnDestroy(): void {\n this.dataList?.handleFocusLossIfNecessary(this.el);\n }\n\n protected onMouseMove(): void {\n if (\n !this.isMobile &&\n !tuiIsNativeFocused(this.el) &&\n this.dataList &&\n this.el.closest('[tuiDataListDropdownManager]')\n ) {\n this.el.focus({preventScroll: true});\n }\n }\n}\n\n// TODO(v5): remove [new] from selector\n@Directive({\n standalone: true,\n selector:\n 'button[tuiOption][value][new], a[tuiOption][value][new], label[tuiOption][value][new]',\n host: {\n '(click)': 'onClick()',\n },\n})\nexport class TuiOptionWithValue<T = unknown> {\n private readonly host = inject<TuiDataListHost<T>>(TUI_DATA_LIST_HOST, {\n optional: true,\n });\n\n @Input()\n public disabled = false;\n\n public readonly value = signal<T | undefined>(undefined);\n\n // TODO(v5): use `input.required<T>()` to remove `undefined` from `this.value()`\n @Input({alias: 'value', required: true})\n public set valueSetter(x: T) {\n this.value.set(x);\n }\n\n protected onClick(value = this.value()): void {\n if (this.host?.handleOption && value !== undefined) {\n this.host.handleOption(value);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n inject,\n Input,\n type OnDestroy,\n type TemplateRef,\n} from '@angular/core';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {TuiDropdownDirective} from '@taiga-ui/core/directives/dropdown';\nimport {TuiWithIcons} from '@taiga-ui/core/directives/icons';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiDataListComponent} from '../data-list.component';\nimport {TUI_DATA_LIST_HOST, type TuiDataListHost} from '../data-list.tokens';\nimport {TUI_OPTION_CONTENT} from './option-content';\n\n/**\n * TODO(v5): delete\n * @deprecated use `<button tuiOption new />` / `<a tuiOption new /> / `<label tuiOption new /> instead\n */\n@Component({\n selector:\n 'button[tuiOption]:not([new]), a[tuiOption]:not([new]), label[tuiOption]:not([new])',\n imports: [PolymorpheusOutlet],\n template: `\n <ng-container *polymorpheusOutlet=\"content || t as text; context: {$implicit: t}\">\n {{ text }}\n </ng-container>\n <ng-template #t>\n <ng-content />\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiWithIcons],\n host: {\n type: 'button',\n role: 'option',\n '[attr.disabled]': 'disabled || null',\n '[class._with-dropdown]': 'dropdown?.()',\n '(click)': 'onClick()',\n '(mousemove.zoneless)': 'onMouseMove()',\n },\n})\nexport class TuiOption<T = unknown> implements OnDestroy {\n private readonly isMobile = inject(TUI_IS_MOBILE);\n private readonly el = tuiInjectElement();\n private readonly dataList = inject<TuiDataListComponent<T>>(\n forwardRef(() => TuiDataListComponent),\n {optional: true},\n );\n\n private readonly host = inject<TuiDataListHost<T>>(TUI_DATA_LIST_HOST, {\n optional: true,\n });\n\n protected readonly content: PolymorpheusContent<\n TuiContext<TemplateRef<Record<string, unknown>>>\n > = inject(TUI_OPTION_CONTENT, {optional: true});\n\n protected readonly dropdown = inject(TuiDropdownDirective, {\n self: true,\n optional: true,\n })?.ref;\n\n @Input()\n public disabled = false;\n\n @Input()\n public value?: T;\n\n // Preventing focus loss upon focused option removal\n public ngOnDestroy(): void {\n this.dataList?.handleFocusLossIfNecessary(this.el);\n }\n\n protected onClick(): void {\n if (this.host?.handleOption && this.value !== undefined) {\n this.host.handleOption(this.value);\n }\n }\n\n protected onMouseMove(): void {\n if (\n !this.isMobile &&\n !tuiIsNativeFocused(this.el) &&\n this.dataList &&\n this.el.closest('[tuiDataListDropdownManager]')\n ) {\n this.el.focus({preventScroll: true});\n }\n }\n}\n","import {\n type AfterContentChecked,\n type AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n forwardRef,\n inject,\n Input,\n isSignal,\n NgZone,\n type QueryList,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {\n tuiQueryListChanges,\n tuiTakeUntilDestroyed,\n tuiZonefree,\n} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsNativeFocusedIn, tuiMoveFocus} from '@taiga-ui/cdk/utils/focus';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_NOTHING_FOUND_MESSAGE} from '@taiga-ui/core/tokens';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {combineLatest, map, ReplaySubject, startWith, switchMap, timer} from 'rxjs';\n\nimport {\n TUI_DATA_LIST_HOST,\n tuiAsDataListAccessor,\n type TuiDataListAccessor,\n} from './data-list.tokens';\nimport {TuiOptionWithValue} from './option/option.directive';\nimport {TUI_OPTION_CONTENT, TuiWithOptionContent} from './option/option-content';\nimport {TuiOption} from './option/option-legacy.component';\n\nexport function tuiInjectDataListSize(): TuiSizeL | TuiSizeS {\n const sizes = ['s', 'm', 'l'] as const;\n const size = inject(TUI_DATA_LIST_HOST, {optional: true})?.size;\n\n return size && sizes.includes(size) ? size : 'l';\n}\n\n// TODO: Consider aria-activedescendant for proper accessibility implementation\n@Component({\n selector: 'tui-data-list',\n imports: [PolymorpheusOutlet],\n templateUrl: './data-list.template.html',\n styleUrls: ['./data-list.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsDataListAccessor(TuiDataListComponent),\n {\n provide: TUI_OPTION_CONTENT,\n useFactory: () =>\n inject(TuiWithOptionContent, {optional: true})?.content ??\n // TODO(v5): remove when all legacy controls are deleted\n inject(TUI_OPTION_CONTENT, {\n host: true,\n skipSelf: true,\n optional: true,\n }) ??\n inject(TUI_OPTION_CONTENT, {skipSelf: true, optional: true}),\n },\n ],\n host: {\n role: 'listbox',\n '[attr.data-size]': 'size',\n '(focusin)': 'onFocusIn($event.relatedTarget, $event.currentTarget)',\n '(mousedown.prevent)': '(0)',\n '(wheel.zoneless.passive)': 'handleFocusLossIfNecessary()',\n '(mouseleave)': 'handleFocusLossIfNecessary($event.target)',\n '(keydown.tab)': 'handleFocusLossIfNecessary()',\n '(keydown.shift.tab)': 'handleFocusLossIfNecessary()',\n '(keydown.arrowDown.prevent)': 'onKeyDownArrow($event.target, 1)',\n '(keydown.arrowUp.prevent)': 'onKeyDownArrow($event.target, -1)',\n },\n})\nexport class TuiDataListComponent<T>\n implements TuiDataListAccessor<T>, AfterContentChecked, AfterContentInit\n{\n // TODO(v5): delete\n @ContentChildren(forwardRef(() => TuiOption), {descendants: true})\n private readonly legacyOptionsQuery: QueryList<TuiOption<T>> = EMPTY_QUERY;\n\n @ContentChildren(forwardRef(() => TuiOptionWithValue), {descendants: true})\n private readonly optionsQuery: QueryList<TuiOptionWithValue<T>> = EMPTY_QUERY;\n\n private origin?: HTMLElement;\n private readonly ngZone = inject(NgZone);\n private readonly destroyRef = inject(DestroyRef);\n private readonly el = tuiInjectElement();\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly contentReady$ = new ReplaySubject<boolean>(1);\n\n protected readonly fallback = toSignal(inject(TUI_NOTHING_FOUND_MESSAGE));\n protected readonly empty = signal(false);\n\n @Input()\n public emptyContent: PolymorpheusContent;\n\n @Input()\n public size = tuiInjectDataListSize();\n\n // TODO(v5): use signal `contentChildren`\n public readonly options = toSignal<readonly T[]>(\n this.contentReady$.pipe(\n switchMap(() =>\n combineLatest([\n tuiQueryListChanges(this.legacyOptionsQuery),\n tuiQueryListChanges(this.optionsQuery),\n ]),\n ),\n map(([legacyOptions, options]) =>\n [\n ...legacyOptions.map(({value}) => value),\n ...options.map(({value}) => value()),\n ].filter(tuiIsPresent),\n ),\n startWith([]),\n ),\n {requireSync: true},\n );\n\n public onKeyDownArrow(current: HTMLElement, step: number): void {\n const {elements} = this;\n\n tuiMoveFocus(elements.indexOf(current), elements, step);\n }\n\n public handleFocusLossIfNecessary(element: Element = this.el): void {\n if (tuiIsNativeFocusedIn(element)) {\n this.origin?.focus({preventScroll: true});\n }\n }\n\n public ngAfterContentInit(): void {\n this.contentReady$.next(true);\n }\n\n // TODO: Refactor to :has after Safari support bumped to 15\n public ngAfterContentChecked(): void {\n timer(0)\n .pipe(tuiZonefree(this.ngZone), tuiTakeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.empty.set(!this.elements.length);\n this.cdr.detectChanges();\n });\n }\n\n // TODO(v5): delete\n public getOptions(includeDisabled = false): readonly T[] {\n return [\n ...this.legacyOptionsQuery, // TODO(v5): delete\n ...this.optionsQuery,\n ]\n .filter(({disabled}) => includeDisabled || !disabled)\n .map(({value}) => (isSignal(value) ? value() : value))\n .filter(tuiIsPresent);\n }\n\n protected onFocusIn(relatedTarget: HTMLElement, currentTarget: HTMLElement): void {\n if (!currentTarget.contains(relatedTarget) && !this.origin) {\n this.origin = relatedTarget;\n }\n }\n\n private get elements(): readonly HTMLElement[] {\n return Array.from(this.el.querySelectorAll('[tuiOption]'));\n }\n}\n","<ng-content />\n@if (empty()) {\n <div class=\"t-empty\">\n <ng-container *polymorpheusOutlet=\"emptyContent || fallback() as text\">\n {{ text }}\n </ng-container>\n </div>\n}\n","import {Directive, type Provider, type Type} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiDataList]',\n})\nexport class TuiDataListDirective {}\n\nexport function tuiAsDataList(list: Type<TuiDataListDirective>): Provider {\n return tuiProvide(TuiDataListDirective, list);\n}\n","import {Directive, Input} from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: 'tui-opt-group',\n host: {\n role: 'group',\n '[attr.data-label]': 'label',\n },\n})\nexport class TuiOptGroup {\n @Input()\n public label?: string | null;\n}\n","import {TuiDataListComponent} from './data-list.component';\nimport {TuiDataListDirective} from './data-list.directive';\nimport {TuiOptGroup} from './opt-group.directive';\nimport {TuiOptionNew, TuiOptionWithValue} from './option/option.directive';\nimport {TuiOption} from './option/option-legacy.component';\n\nexport const TuiDataList = [\n TuiDataListComponent,\n TuiDataListDirective,\n TuiOption,\n TuiOptionNew,\n TuiOptionWithValue,\n TuiOptGroup,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-components-data-list.mjs","sources":["../../../projects/core/components/data-list/data-list.tokens.ts","../../../projects/core/components/data-list/option/option-content.ts","../../../projects/core/components/data-list/option/option.directive.ts","../../../projects/core/components/data-list/option/option-legacy.component.ts","../../../projects/core/components/data-list/data-list.component.ts","../../../projects/core/components/data-list/data-list.template.html","../../../projects/core/components/data-list/data-list.directive.ts","../../../projects/core/components/data-list/opt-group.directive.ts","../../../projects/core/components/data-list/data-list.ts","../../../projects/core/components/data-list/taiga-ui-core-components-data-list.ts"],"sourcesContent":["import {InjectionToken, type Provider, type Signal, type Type} from '@angular/core';\nimport {type TuiIdentityMatcher, type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {tuiAsAuxiliary} from '@taiga-ui/core/tokens';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nexport interface TuiDataListAccessor<T = unknown> {\n /**\n * @deprecated Use `options` property instead\n */\n getOptions(includeDisabled?: boolean): readonly T[];\n // TODO(v5): remove `undefined` for this property\n options?: Signal<readonly T[]>;\n}\n\n// TODO: Consider refactoring checkOption, it is only needed in ComboBox\nexport interface TuiDataListHost<T> {\n checkOption?(option: T): void;\n handleOption?(option: T): void;\n /**\n * @deprecated Use `inject(TuiItemsHandlersDirective<T>).identityMatcher` instead\n */\n readonly identityMatcher?: TuiIdentityMatcher<T>;\n /**\n * @deprecated Use `inject(TuiItemsHandlersDirective<T>).stringify` instead\n */\n readonly stringify?: TuiStringHandler<T>;\n readonly size?: TuiSizeL | TuiSizeS;\n}\n\n/**\n * Accessor for data-list options\n */\nexport const TUI_DATA_LIST_ACCESSOR = new InjectionToken<TuiDataListAccessor>(\n ngDevMode ? 'TUI_DATA_LIST_ACCESSOR' : '',\n);\n\nexport function tuiAsDataListAccessor(accessor: Type<TuiDataListAccessor>): Provider {\n return [tuiProvide(TUI_DATA_LIST_ACCESSOR, accessor), tuiAsAuxiliary(accessor)];\n}\n\n/**\n * DataList controller\n */\nexport const TUI_DATA_LIST_HOST = new InjectionToken<TuiDataListHost<unknown>>(\n ngDevMode ? 'TUI_DATA_LIST_HOST' : '',\n);\n\nexport function tuiAsDataListHost<T>(host: Type<TuiDataListHost<T>>): Provider {\n return tuiProvide(TUI_DATA_LIST_HOST, host);\n}\n","import {\n ContentChild,\n Directive,\n inject,\n InjectionToken,\n type Provider,\n type TemplateRef,\n type Type,\n} from '@angular/core';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\n\n/**\n * Content for tuiOption component\n */\nexport const TUI_OPTION_CONTENT = new InjectionToken<\n | PolymorpheusContent<TuiContext<TemplateRef<Record<string, unknown>>>> // TODO(v5): delete\n | Type<any>\n>(ngDevMode ? 'TUI_OPTION_CONTENT' : '');\n\nexport function tuiAsOptionContent(\n useValue:\n | PolymorpheusContent<TuiContext<TemplateRef<Record<string, unknown>>>> // TODO(v5): delete\n | Type<any>,\n): Provider {\n return {\n provide: TUI_OPTION_CONTENT,\n useValue,\n };\n}\n\n@Directive({\n standalone: true,\n})\nexport class TuiWithOptionContent {\n @ContentChild(TUI_OPTION_CONTENT, {descendants: true})\n protected readonly localContent: Type<any> | null = null;\n\n protected readonly globalContent = inject<Type<any>>(TUI_OPTION_CONTENT, {\n optional: true,\n });\n\n public get content(): Type<any> | null {\n return this.globalContent ?? this.localContent;\n }\n}\n","import {\n createComponent,\n Directive,\n EnvironmentInjector,\n forwardRef,\n inject,\n INJECTOR,\n Input,\n type OnDestroy,\n signal,\n type Type,\n ViewContainerRef,\n} from '@angular/core';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {TuiDropdownDirective} from '@taiga-ui/core/directives/dropdown';\nimport {TuiWithIcons} from '@taiga-ui/core/directives/icons';\n\nimport {TuiDataListComponent} from '../data-list.component';\nimport {TUI_DATA_LIST_HOST, type TuiDataListHost} from '../data-list.tokens';\nimport {TUI_OPTION_CONTENT} from './option-content';\n\n// TODO(v5): rename `TuiOptionNew` => `TuiOption` & remove [new] from selector\n// TODO: Consider all use cases for aria roles\n@Directive({\n standalone: true,\n selector: 'button[tuiOption][new], a[tuiOption][new], label[tuiOption][new]',\n hostDirectives: [TuiWithIcons],\n host: {\n type: 'button',\n role: 'option',\n '[attr.disabled]': 'disabled || null',\n '[class._with-dropdown]': 'dropdown?.()',\n '(mousemove.zoneless)': 'onMouseMove()',\n },\n})\nexport class TuiOptionNew<T = unknown> implements OnDestroy {\n private readonly vcr = inject(ViewContainerRef);\n private readonly isMobile = inject(TUI_IS_MOBILE);\n private readonly el = tuiInjectElement();\n private readonly dataList = inject<TuiDataListComponent<T>>(\n forwardRef(() => TuiDataListComponent),\n {optional: true},\n );\n\n private readonly content = inject<Type<any> | null>(TUI_OPTION_CONTENT, {\n optional: true,\n });\n\n private readonly ref =\n this.content &&\n createComponent(this.content, {\n environmentInjector: inject(EnvironmentInjector),\n elementInjector: inject(INJECTOR),\n hostElement: tuiInjectElement(),\n });\n\n protected readonly dropdown = inject(TuiDropdownDirective, {\n self: true,\n optional: true,\n })?.ref;\n\n @Input()\n public disabled = false;\n\n constructor() {\n if (this.ref) {\n this.vcr.insert(this.ref.hostView);\n this.ref.changeDetectorRef.detectChanges();\n }\n }\n\n // Preventing focus loss upon focused option removal\n public ngOnDestroy(): void {\n this.dataList?.handleFocusLossIfNecessary(this.el);\n }\n\n protected onMouseMove(): void {\n if (\n !this.isMobile &&\n !tuiIsNativeFocused(this.el) &&\n this.dataList &&\n this.el.closest('[tuiDataListDropdownManager]')\n ) {\n this.el.focus({preventScroll: true});\n }\n }\n}\n\n// TODO(v5): remove [new] from selector\n@Directive({\n standalone: true,\n selector:\n 'button[tuiOption][value][new], a[tuiOption][value][new], label[tuiOption][value][new]',\n host: {\n '(click)': 'onClick()',\n },\n})\nexport class TuiOptionWithValue<T = unknown> {\n private readonly host = inject<TuiDataListHost<T>>(TUI_DATA_LIST_HOST, {\n optional: true,\n });\n\n @Input()\n public disabled = false;\n\n public readonly value = signal<T | undefined>(undefined);\n\n // TODO(v5): use `input.required<T>()` to remove `undefined` from `this.value()`\n @Input({alias: 'value', required: true})\n public set valueSetter(x: T) {\n this.value.set(x);\n }\n\n protected onClick(value = this.value()): void {\n if (this.host?.handleOption && value !== undefined) {\n this.host.handleOption(value);\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n inject,\n Input,\n type OnDestroy,\n type TemplateRef,\n} from '@angular/core';\nimport {TUI_IS_MOBILE} from '@taiga-ui/cdk/tokens';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {TuiDropdownDirective} from '@taiga-ui/core/directives/dropdown';\nimport {TuiWithIcons} from '@taiga-ui/core/directives/icons';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TuiDataListComponent} from '../data-list.component';\nimport {TUI_DATA_LIST_HOST, type TuiDataListHost} from '../data-list.tokens';\nimport {TUI_OPTION_CONTENT} from './option-content';\n\n/**\n * TODO(v5): delete\n * @deprecated use `<button tuiOption new />` / `<a tuiOption new /> / `<label tuiOption new /> instead\n */\n@Component({\n selector:\n 'button[tuiOption]:not([new]), a[tuiOption]:not([new]), label[tuiOption]:not([new])',\n imports: [PolymorpheusOutlet],\n template: `\n <ng-container *polymorpheusOutlet=\"content || t as text; context: {$implicit: t}\">\n {{ text }}\n </ng-container>\n <ng-template #t>\n <ng-content />\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n hostDirectives: [TuiWithIcons],\n host: {\n type: 'button',\n role: 'option',\n '[attr.disabled]': 'disabled || null',\n '[class._with-dropdown]': 'dropdown?.()',\n '(click)': 'onClick()',\n '(mousemove.zoneless)': 'onMouseMove()',\n },\n})\nexport class TuiOption<T = unknown> implements OnDestroy {\n private readonly isMobile = inject(TUI_IS_MOBILE);\n private readonly el = tuiInjectElement();\n private readonly dataList = inject<TuiDataListComponent<T>>(\n forwardRef(() => TuiDataListComponent),\n {optional: true},\n );\n\n private readonly host = inject<TuiDataListHost<T>>(TUI_DATA_LIST_HOST, {\n optional: true,\n });\n\n protected readonly content: PolymorpheusContent<\n TuiContext<TemplateRef<Record<string, unknown>>>\n > = inject(TUI_OPTION_CONTENT, {optional: true});\n\n protected readonly dropdown = inject(TuiDropdownDirective, {\n self: true,\n optional: true,\n })?.ref;\n\n @Input()\n public disabled = false;\n\n @Input()\n public value?: T;\n\n // Preventing focus loss upon focused option removal\n public ngOnDestroy(): void {\n this.dataList?.handleFocusLossIfNecessary(this.el);\n }\n\n protected onClick(): void {\n if (this.host?.handleOption && this.value !== undefined) {\n this.host.handleOption(this.value);\n }\n }\n\n protected onMouseMove(): void {\n if (\n !this.isMobile &&\n !tuiIsNativeFocused(this.el) &&\n this.dataList &&\n this.el.closest('[tuiDataListDropdownManager]')\n ) {\n this.el.focus({preventScroll: true});\n }\n }\n}\n","import {\n type AfterContentChecked,\n type AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n forwardRef,\n inject,\n Input,\n isSignal,\n NgZone,\n type QueryList,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {\n tuiQueryListChanges,\n tuiTakeUntilDestroyed,\n tuiZonefree,\n} from '@taiga-ui/cdk/observables';\nimport {tuiInjectElement} from '@taiga-ui/cdk/utils/dom';\nimport {tuiIsNativeFocusedIn, tuiMoveFocus} from '@taiga-ui/cdk/utils/focus';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_NOTHING_FOUND_MESSAGE} from '@taiga-ui/core/tokens';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {combineLatest, map, ReplaySubject, startWith, switchMap, timer} from 'rxjs';\n\nimport {\n TUI_DATA_LIST_HOST,\n tuiAsDataListAccessor,\n type TuiDataListAccessor,\n} from './data-list.tokens';\nimport {TuiOptionWithValue} from './option/option.directive';\nimport {TUI_OPTION_CONTENT, TuiWithOptionContent} from './option/option-content';\nimport {TuiOption} from './option/option-legacy.component';\n\nexport function tuiInjectDataListSize(): TuiSizeL | TuiSizeS {\n const sizes = ['s', 'm', 'l'] as const;\n const size = inject(TUI_DATA_LIST_HOST, {optional: true})?.size;\n\n return size && sizes.includes(size) ? size : 'l';\n}\n\n// TODO: Consider aria-activedescendant for proper accessibility implementation\n@Component({\n selector: 'tui-data-list',\n imports: [PolymorpheusOutlet],\n templateUrl: './data-list.template.html',\n styleUrls: ['./data-list.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsDataListAccessor(TuiDataListComponent),\n {\n provide: TUI_OPTION_CONTENT,\n useFactory: () =>\n inject(TuiWithOptionContent, {optional: true})?.content ??\n // TODO(v5): remove when all legacy controls are deleted\n inject(TUI_OPTION_CONTENT, {\n host: true,\n skipSelf: true,\n optional: true,\n }) ??\n inject(TUI_OPTION_CONTENT, {skipSelf: true, optional: true}),\n },\n ],\n host: {\n role: 'listbox',\n '[attr.data-size]': 'size',\n '(focusin)': 'onFocusIn($event.relatedTarget, $event.currentTarget)',\n '(mousedown.prevent)': '(0)',\n '(wheel.zoneless.passive)': 'handleFocusLossIfNecessary()',\n '(mouseleave)': 'handleFocusLossIfNecessary($event.target)',\n '(keydown.tab)': 'handleFocusLossIfNecessary()',\n '(keydown.shift.tab)': 'handleFocusLossIfNecessary()',\n '(keydown.arrowDown.prevent)': 'onKeyDownArrow($event.target, 1)',\n '(keydown.arrowUp.prevent)': 'onKeyDownArrow($event.target, -1)',\n },\n})\nexport class TuiDataListComponent<T>\n implements TuiDataListAccessor<T>, AfterContentChecked, AfterContentInit\n{\n // TODO(v5): delete\n @ContentChildren(forwardRef(() => TuiOption), {descendants: true})\n private readonly legacyOptionsQuery: QueryList<TuiOption<T>> = EMPTY_QUERY;\n\n @ContentChildren(forwardRef(() => TuiOptionWithValue), {descendants: true})\n private readonly optionsQuery: QueryList<TuiOptionWithValue<T>> = EMPTY_QUERY;\n\n private origin?: HTMLElement;\n private readonly ngZone = inject(NgZone);\n private readonly destroyRef = inject(DestroyRef);\n private readonly el = tuiInjectElement();\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly contentReady$ = new ReplaySubject<boolean>(1);\n\n protected readonly fallback = toSignal(inject(TUI_NOTHING_FOUND_MESSAGE));\n protected readonly empty = signal(false);\n\n @Input()\n public emptyContent: PolymorpheusContent;\n\n @Input()\n public size = tuiInjectDataListSize();\n\n // TODO(v5): use signal `contentChildren`\n public readonly options = toSignal<readonly T[]>(\n this.contentReady$.pipe(\n switchMap(() =>\n combineLatest([\n tuiQueryListChanges(this.legacyOptionsQuery),\n tuiQueryListChanges(this.optionsQuery),\n ]),\n ),\n map(([legacyOptions, options]) =>\n [\n ...legacyOptions.map(({value}) => value),\n ...options.map(({value}) => value()),\n ].filter(tuiIsPresent),\n ),\n startWith([]),\n ),\n {requireSync: true},\n );\n\n public onKeyDownArrow(current: HTMLElement, step: number): void {\n const {elements} = this;\n\n tuiMoveFocus(elements.indexOf(current), elements, step);\n }\n\n public handleFocusLossIfNecessary(element: Element = this.el): void {\n if (tuiIsNativeFocusedIn(element)) {\n this.origin?.focus({preventScroll: true});\n }\n }\n\n public ngAfterContentInit(): void {\n this.contentReady$.next(true);\n }\n\n // TODO: Refactor to :has after Safari support bumped to 15\n public ngAfterContentChecked(): void {\n timer(0)\n .pipe(tuiZonefree(this.ngZone), tuiTakeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.empty.set(!this.elements.length);\n this.cdr.detectChanges();\n });\n }\n\n // TODO(v5): delete\n public getOptions(includeDisabled = false): readonly T[] {\n return [\n ...this.legacyOptionsQuery, // TODO(v5): delete\n ...this.optionsQuery,\n ]\n .filter(({disabled}) => includeDisabled || !disabled)\n .map(({value}) => (isSignal(value) ? value() : value))\n .filter(tuiIsPresent);\n }\n\n protected onFocusIn(relatedTarget: HTMLElement, currentTarget: HTMLElement): void {\n if (!currentTarget.contains(relatedTarget) && !this.origin) {\n this.origin = relatedTarget;\n }\n }\n\n private get elements(): readonly HTMLElement[] {\n return Array.from(this.el.querySelectorAll('[tuiOption]'));\n }\n}\n","<ng-content />\n@if (empty()) {\n <div class=\"t-empty\">\n <ng-container *polymorpheusOutlet=\"emptyContent || fallback() as text\">\n {{ text }}\n </ng-container>\n </div>\n}\n","import {Directive, type Provider, type Type} from '@angular/core';\nimport {tuiProvide} from '@taiga-ui/cdk/utils/miscellaneous';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiDataList]',\n})\nexport class TuiDataListDirective {}\n\nexport function tuiAsDataList(list: Type<TuiDataListDirective>): Provider {\n return tuiProvide(TuiDataListDirective, list);\n}\n","import {Directive, Input} from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: 'tui-opt-group',\n host: {\n role: 'group',\n '[attr.data-label]': 'label',\n },\n})\nexport class TuiOptGroup {\n @Input()\n public label?: string | null;\n}\n","import {TuiDataListComponent} from './data-list.component';\nimport {TuiDataListDirective} from './data-list.directive';\nimport {TuiOptGroup} from './opt-group.directive';\nimport {TuiOptionNew, TuiOptionWithValue} from './option/option.directive';\nimport {TuiOption} from './option/option-legacy.component';\n\nexport const TuiDataList = [\n TuiDataListComponent,\n TuiDataListDirective,\n TuiOption,\n TuiOptionNew,\n TuiOptionWithValue,\n TuiOptGroup,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -76,10 +76,10 @@ class TuiDialogCloseService extends Observable {
|
|
|
76
76
|
// TODO: Drop 'new' attribute in v5
|
|
77
77
|
(target === this.el && !this.el.hasAttribute('new'))));
|
|
78
78
|
}
|
|
79
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
80
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
79
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDialogCloseService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
80
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDialogCloseService }); }
|
|
81
81
|
}
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDialogCloseService, decorators: [{
|
|
83
83
|
type: Injectable
|
|
84
84
|
}], ctorParameters: () => [] });
|
|
85
85
|
|
|
@@ -117,10 +117,10 @@ class TuiDialogComponent {
|
|
|
117
117
|
this.context.$implicit.complete();
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
121
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
120
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
121
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiDialogComponent, isStandalone: true, selector: "tui-dialog", host: { properties: { "attr.data-appearance": "context.appearance", "attr.data-size": "size", "class._centered": "header", "style.--tui-from": "from()" } }, providers: [TuiDialogCloseService], hostDirectives: [{ directive: i1.TuiAnimated }], ngImport: i0, template: "@if (header) {\n <header class=\"t-header\">\n <ng-container *polymorpheusOutlet=\"header as text; context: context\">\n {{ text }}\n </ng-container>\n </header>\n}\n<div class=\"t-content\">\n <h2\n class=\"t-heading\"\n [class.t-heading_closable]=\"context.closeable && !header\"\n [id]=\"context.id\"\n [textContent]=\"context.label\"\n ></h2>\n <section>\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n <div [innerHTML]=\"text\"></div>\n @if (context.closeable || context.dismissible) {\n <div class=\"t-buttons\">\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ context.data?.button || 'OK' }}\n </button>\n </div>\n }\n </ng-container>\n </section>\n</div>\n<div class=\"t-filler\"></div>\n\n<!-- Close button is insensitive to `context.closeable === Observable<false>` by design -->\n@if (context.closeable) {\n <button\n automation-id=\"tui-dialog__close\"\n tuiIconButton\n type=\"button\"\n class=\"t-close\"\n [appearance]=\"isMobile() ? 'icon' : 'neutral'\"\n [iconStart]=\"icons.close\"\n [size]=\"isMobile() ? 'xs' : 's'\"\n [style.border-radius.%]=\"100\"\n (click)=\"close$.next()\"\n (mousedown.prevent.zoneless)=\"(0)\"\n >\n {{ closeWord$ | async }}\n </button>\n}\n", styles: [":host{position:relative;display:flex;font:var(--tui-font-text-m);flex-direction:column;box-sizing:border-box;margin:auto;border-radius:1.5rem;border:2.5rem solid transparent}:host.tui-enter,:host.tui-leave{animation-name:tuiFade,tuiSlide}:host:after{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;content:\"\";border-radius:inherit;pointer-events:none;box-shadow:var(--tui-shadow-popup)}:host[data-size=auto]{inline-size:auto}:host[data-size=s]{inline-size:30rem}:host[data-size=s] .t-content{padding:1.5rem}:host[data-size=s] .t-heading{font:var(--tui-font-heading-5)}:host[data-size=m]{inline-size:42.5rem}:host[data-size=l]{inline-size:55rem}:host[data-size=fullscreen],:host[data-size=page]{min-inline-size:100vw;min-block-size:100%;border-radius:0;border:none;background:var(--tui-background-elevation-1);box-shadow:0 4rem var(--tui-background-elevation-1)}:host[data-size=fullscreen] .t-content,:host[data-size=page] .t-content{padding:3rem calc(50vw - 22.5rem)}:host[data-size=fullscreen] .t-heading,:host[data-size=page] .t-heading{font:var(--tui-font-heading-3)}:host._centered{text-align:center}:host :host-context(tui-root._mobile)[data-size]{min-inline-size:100%;inline-size:100%;max-inline-size:100%;border-radius:0;border:none;margin:auto 0 0;background:var(--tui-background-elevation-1);padding-block-end:env(safe-area-inset-bottom)}:host :host-context(tui-root._mobile)[data-size] .t-content{padding:1rem}:host :host-context(tui-root._mobile)[data-size] .t-heading{font:var(--tui-font-heading-5)}:host :host-context(tui-root._mobile)[data-size=fullscreen],:host :host-context(tui-root._mobile)[data-size=page]{padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}:host :host-context(tui-root._mobile)[data-size=fullscreen] .t-close,:host :host-context(tui-root._mobile)[data-size=page] .t-close{top:max(1rem,env(safe-area-inset-top))}:host[data-size=page] .t-content,:host-context(tui-root._mobile) :host[data-size=page] .t-content{padding:0}.t-heading{margin:0 0 .5rem;overflow-wrap:break-word;font:var(--tui-font-heading-4)}.t-heading_closable{padding-inline-end:2rem}.t-heading:empty{display:none}.t-header{display:flex;border-top-left-radius:inherit;border-top-right-radius:inherit;overflow:hidden}:host[data-size=fullscreen] :host-context(tui-root._mobile) .t-header{flex:1}.t-content{border-radius:inherit;padding:1.75rem;background:var(--tui-background-elevation-1)}.t-content:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.t-content>section{border-radius:inherit}.t-filler{flex-grow:1}.t-close{transition-property:background;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:absolute;top:1rem;right:1rem}@supports (inset-inline-end: 0){.t-close{right:unset;inset-inline-end:1rem}}.t-buttons{margin-block-start:1.25rem;text-align:end}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiAutoFocus, selector: "[tuiAutoFocus]", inputs: ["tuiAutoFocus"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
|
|
122
122
|
}
|
|
123
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
123
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDialogComponent, decorators: [{
|
|
124
124
|
type: Component,
|
|
125
125
|
args: [{ selector: 'tui-dialog', imports: [AsyncPipe, PolymorpheusOutlet, TuiAutoFocus, TuiButton], changeDetection: ChangeDetectionStrategy.Default, providers: [TuiDialogCloseService], hostDirectives: [TuiAnimated], host: {
|
|
126
126
|
'[attr.data-appearance]': 'context.appearance',
|
|
@@ -131,10 +131,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImpor
|
|
|
131
131
|
}], ctorParameters: () => [] });
|
|
132
132
|
|
|
133
133
|
class TuiDialogService extends TuiPopoverService {
|
|
134
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
135
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
134
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDialogService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
135
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDialogService, providedIn: 'root', useFactory: () => new TuiDialogService(TUI_DIALOGS, TuiDialogComponent, inject(TUI_DIALOG_OPTIONS)) }); }
|
|
136
136
|
}
|
|
137
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
137
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDialogService, decorators: [{
|
|
138
138
|
type: Injectable,
|
|
139
139
|
args: [{
|
|
140
140
|
providedIn: 'root',
|
|
@@ -143,10 +143,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImpor
|
|
|
143
143
|
}] });
|
|
144
144
|
|
|
145
145
|
class TuiDialog extends TuiPopoverDirective {
|
|
146
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
147
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
146
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDialog, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
147
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiDialog, isStandalone: true, selector: "ng-template[tuiDialog]", inputs: { options: ["tuiDialogOptions", "options"], open: ["tuiDialog", "open"] }, outputs: { openChange: "tuiDialogChange" }, providers: [tuiAsPopover(TuiDialogService)], usesInheritance: true, ngImport: i0 }); }
|
|
148
148
|
}
|
|
149
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
149
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDialog, decorators: [{
|
|
150
150
|
type: Directive,
|
|
151
151
|
args: [{
|
|
152
152
|
standalone: true,
|
|
@@ -173,10 +173,10 @@ class TuiDialogs {
|
|
|
173
173
|
constructor() {
|
|
174
174
|
this.dialogs = toSignal(inject(TUI_DIALOGS), { initialValue: [] });
|
|
175
175
|
}
|
|
176
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
177
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
176
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDialogs, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
177
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiDialogs, isStandalone: true, selector: "tui-dialogs", ngImport: i0, template: "<div\n class=\"t-overlay\"\n [class.t-overlay_visible]=\"dialogs().length\"\n></div>\n<!--TODO: Rename to <article> in v5-->\n@for (item of dialogs(); track item) {\n <section\n aria-modal=\"true\"\n role=\"dialog\"\n tuiAnimatedParent\n tuiFocusTrap\n tuiScrollRef\n class=\"t-dialog\"\n [attr.aria-labelledby]=\"item.id\"\n >\n <ng-container *polymorpheusOutlet=\"item.component; context: item\" />\n <tui-scroll-controls class=\"t-scrollbars\" />\n </section>\n}\n", styles: [":host{position:fixed;top:0;left:0;inline-size:100%;block-size:100%;scrollbar-width:none;-ms-overflow-style:none;pointer-events:none;overflow:hidden;overscroll-behavior:none;overflow-wrap:break-word;margin-block-start:var(--t-root-top)}:host::-webkit-scrollbar,:host::-webkit-scrollbar-thumb{display:none}:host:has(section){pointer-events:auto;overflow:auto}:host:has(section:only-of-type ::ng-deep tui-dialog[new][data-appearance~=fullscreen])>.t-overlay,:host:has(section:only-of-type ::ng-deep tui-notification-middle)>.t-overlay{opacity:0}:host:before{content:\"\";display:block;block-size:200%}.t-overlay,.t-dialog{transition-property:filter;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;scrollbar-width:none;-ms-overflow-style:none;position:fixed;top:0;left:0;bottom:0;right:0;display:flex;block-size:100%;align-items:flex-start;outline:none;overflow:auto}.t-overlay::-webkit-scrollbar,.t-dialog::-webkit-scrollbar,.t-overlay::-webkit-scrollbar-thumb,.t-dialog::-webkit-scrollbar-thumb{display:none}.t-dialog{position:sticky;overscroll-behavior:none;filter:brightness(.25)}.t-dialog:has(tui-dialog[new]){display:grid;place-items:center}.t-dialog ::ng-deep>.tui-enter+.t-scrollbars .t-bar_vertical,.t-dialog ::ng-deep>.tui-leave+.t-scrollbars .t-bar_vertical{display:none}.t-overlay{transition-property:opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;background:var(--tui-service-backdrop);-webkit-backdrop-filter:var(--tui-backdrop, none);backdrop-filter:var(--tui-backdrop, none);opacity:0;transition-timing-function:ease-in}.t-overlay_visible{opacity:1;transition-timing-function:ease-out}.t-dialog:last-child{pointer-events:auto;filter:none}:host-context(tui-root:has(tui-dropdown-mobile._sheet)) .t-dialog:last-child{filter:brightness(.5)}.t-scrollbars{position:fixed;top:0;left:0;bottom:0;right:0;margin:0;color:#747474}.t-scrollbars ::ng-deep .t-bar_horizontal,.t-scrollbars ::ng-deep .t-bar_vertical .t-thumb[style*=\"height: 100%\"]{display:none}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiAnimatedParent, selector: "[tuiAnimatedParent]" }, { kind: "directive", type: TuiFocusTrap, selector: "[tuiFocusTrap]" }, { kind: "component", type: TuiScrollControls, selector: "tui-scroll-controls" }, { kind: "directive", type: TuiScrollRef, selector: "[tuiScrollRef]" }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
|
|
178
178
|
}
|
|
179
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
179
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiDialogs, decorators: [{
|
|
180
180
|
type: Component,
|
|
181
181
|
args: [{ selector: 'tui-dialogs', imports: [
|
|
182
182
|
PolymorpheusOutlet,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-dialog.mjs","sources":["../../../projects/core/components/dialog/dialog.tokens.ts","../../../projects/core/components/dialog/dialog-close.service.ts","../../../projects/core/components/dialog/dialog.component.ts","../../../projects/core/components/dialog/dialog.template.html","../../../projects/core/components/dialog/dialog.service.ts","../../../projects/core/components/dialog/dialog.directive.ts","../../../projects/core/components/dialog/dialog.factory.ts","../../../projects/core/components/dialog/dialogs.component.ts","../../../projects/core/components/dialog/dialogs.template.html","../../../projects/core/components/dialog/taiga-ui-core-components-dialog.ts"],"sourcesContent":["import {InjectionToken, type Provider} from '@angular/core';\nimport {type TuiPopover} from '@taiga-ui/cdk/services';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {BehaviorSubject, EMPTY, type Observable} from 'rxjs';\n\nimport {type TuiDialogOptions} from './dialog.interfaces';\n\nexport const TUI_DIALOGS = new InjectionToken(ngDevMode ? 'TUI_DIALOGS' : '', {\n factory: () => new BehaviorSubject<ReadonlyArray<TuiPopover<any, any>>>([]),\n});\n\nexport const TUI_DIALOG_DEFAULT_OPTIONS: TuiDialogOptions<void> = {\n appearance: '',\n size: 'm',\n required: false,\n closeable: true,\n dismissible: true,\n label: '',\n header: '',\n data: undefined,\n};\n\n/**\n * A stream to close dialogs\n * TODO: use router.events in v5\n */\nexport const TUI_DIALOGS_CLOSE = new InjectionToken<Observable<unknown>>(\n ngDevMode ? 'TUI_DIALOGS_CLOSE' : '',\n {\n factory: () => EMPTY,\n },\n);\n\n/**\n * Default parameters for dialog component\n */\nexport const TUI_DIALOG_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_DIALOG_OPTIONS' : '',\n {\n factory: () => TUI_DIALOG_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiDialogOptionsProvider(\n options: Partial<TuiDialogOptions<unknown>>,\n): Provider {\n return tuiProvideOptions(TUI_DIALOG_OPTIONS, options, TUI_DIALOG_DEFAULT_OPTIONS);\n}\n","import {DOCUMENT} from '@angular/common';\nimport {inject, Injectable} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {tuiCloseWatcher, tuiTypedFromEvent, tuiZonefull} from '@taiga-ui/cdk/observables';\nimport {\n tuiContainsOrAfter,\n tuiGetActualTarget,\n tuiInjectElement,\n tuiIsElement,\n} from '@taiga-ui/cdk/utils/dom';\nimport {tuiGetViewportWidth} from '@taiga-ui/core/utils';\nimport {filter, map, merge, Observable, switchMap, take} from 'rxjs';\n\nconst SCROLLBAR_PLACEHOLDER = 17;\n\n@Injectable()\nexport class TuiDialogCloseService extends Observable<unknown> {\n private readonly win = inject(WA_WINDOW);\n private readonly doc = inject(DOCUMENT);\n private readonly el = tuiInjectElement();\n\n private readonly esc$ = tuiTypedFromEvent(this.doc, 'keydown').pipe(\n filter((event) => {\n const target = tuiGetActualTarget(event);\n\n return (\n // @ts-ignore\n typeof CloseWatcher === 'undefined' &&\n event.key?.toLowerCase() === 'escape' &&\n !event.defaultPrevented &&\n (this.el.contains(target) || this.isOutside(target))\n );\n }),\n );\n\n private readonly mousedown$ = tuiTypedFromEvent(this.doc, 'mousedown').pipe(\n filter(\n (event) =>\n tuiGetViewportWidth(this.win) - event.clientX > SCROLLBAR_PLACEHOLDER &&\n this.isOutside(tuiGetActualTarget(event)),\n ),\n switchMap(() =>\n tuiTypedFromEvent(this.doc, 'mouseup').pipe(\n take(1),\n map(tuiGetActualTarget),\n filter((target) => this.isOutside(target)),\n ),\n ),\n );\n\n constructor() {\n super((subscriber) =>\n merge(\n this.esc$,\n this.mousedown$,\n tuiCloseWatcher().pipe(tuiZonefull()),\n ).subscribe(subscriber),\n );\n }\n\n private isOutside(target: EventTarget): boolean {\n return (\n tuiIsElement(target) &&\n (!tuiContainsOrAfter(this.el, target) ||\n // TODO: Drop 'new' attribute in v5\n (target === this.el && !this.el.hasAttribute('new')))\n );\n }\n}\n","import {AsyncPipe} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, computed, inject} from '@angular/core';\nimport {takeUntilDestroyed, toSignal} from '@angular/core/rxjs-interop';\nimport {TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {TuiAutoFocus} from '@taiga-ui/cdk/directives/auto-focus';\nimport {type TuiPopover} from '@taiga-ui/cdk/services';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiBreakpointService} from '@taiga-ui/core/services';\nimport {TUI_CLOSE_WORD, TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {\n injectContext,\n type PolymorpheusContent,\n PolymorpheusOutlet,\n} from '@taiga-ui/polymorpheus';\nimport {\n exhaustMap,\n filter,\n isObservable,\n map,\n merge,\n type Observable,\n of,\n Subject,\n switchMap,\n take,\n} from 'rxjs';\n\nimport {type TuiDialogOptions, type TuiDialogSize} from './dialog.interfaces';\nimport {TUI_DIALOGS_CLOSE} from './dialog.tokens';\nimport {TuiDialogCloseService} from './dialog-close.service';\n\nconst REQUIRED_ERROR = new Error('Required dialog was dismissed');\n\nfunction toObservable<T>(valueOrStream: Observable<T> | T): Observable<T> {\n return isObservable(valueOrStream) ? valueOrStream : of(valueOrStream);\n}\n\n@Component({\n selector: 'tui-dialog',\n imports: [AsyncPipe, PolymorpheusOutlet, TuiAutoFocus, TuiButton],\n templateUrl: './dialog.template.html',\n styleUrls: ['./dialog.style.less'],\n // So we don't force OnPush on dialog content\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [TuiDialogCloseService],\n hostDirectives: [TuiAnimated],\n host: {\n '[attr.data-appearance]': 'context.appearance',\n '[attr.data-size]': 'size',\n '[class._centered]': 'header',\n '[style.--tui-from]': 'from()',\n },\n})\nexport class TuiDialogComponent<O, I> {\n protected readonly close$ = new Subject<void>();\n protected readonly context = injectContext<TuiPopover<TuiDialogOptions<I>, O>>();\n protected readonly closeWord$ = inject(TUI_CLOSE_WORD);\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly from = computed(() =>\n this.size === 'fullscreen' || this.size === 'page' || this.isMobile()\n ? 'translateY(100vh)'\n : 'translateY(2.5rem)',\n );\n\n protected readonly isMobile = toSignal(\n inject(TuiBreakpointService).pipe(map((breakpoint) => breakpoint === 'mobile')),\n );\n\n constructor() {\n merge(\n this.close$.pipe(switchMap(() => toObservable(this.context.closeable))),\n inject(TuiDialogCloseService).pipe(\n exhaustMap(() => toObservable(this.context.dismissible).pipe(take(1))),\n ),\n inject(TUI_DIALOGS_CLOSE).pipe(map(TUI_TRUE_HANDLER)),\n )\n .pipe(filter(Boolean), takeUntilDestroyed())\n .subscribe(() => {\n this.close();\n });\n }\n\n protected get size(): TuiDialogSize {\n return this.context.size;\n }\n\n protected get header(): PolymorpheusContent<TuiPopover<TuiDialogOptions<I>, O>> {\n return this.context.header;\n }\n\n private close(): void {\n if (this.context.required) {\n this.context.$implicit.error(REQUIRED_ERROR);\n } else {\n this.context.$implicit.complete();\n }\n }\n}\n","@if (header) {\n <header class=\"t-header\">\n <ng-container *polymorpheusOutlet=\"header as text; context: context\">\n {{ text }}\n </ng-container>\n </header>\n}\n<div class=\"t-content\">\n <h2\n class=\"t-heading\"\n [class.t-heading_closable]=\"context.closeable && !header\"\n [id]=\"context.id\"\n [textContent]=\"context.label\"\n ></h2>\n <section>\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n <div [innerHTML]=\"text\"></div>\n @if (context.closeable || context.dismissible) {\n <div class=\"t-buttons\">\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ context.data?.button || 'OK' }}\n </button>\n </div>\n }\n </ng-container>\n </section>\n</div>\n<div class=\"t-filler\"></div>\n\n<!-- Close button is insensitive to `context.closeable === Observable<false>` by design -->\n@if (context.closeable) {\n <button\n automation-id=\"tui-dialog__close\"\n tuiIconButton\n type=\"button\"\n class=\"t-close\"\n [appearance]=\"isMobile() ? 'icon' : 'neutral'\"\n [iconStart]=\"icons.close\"\n [size]=\"isMobile() ? 'xs' : 's'\"\n [style.border-radius.%]=\"100\"\n (click)=\"close$.next()\"\n (mousedown.prevent.zoneless)=\"(0)\"\n >\n {{ closeWord$ | async }}\n </button>\n}\n","import {inject, Injectable} from '@angular/core';\nimport {TuiPopoverService} from '@taiga-ui/cdk/services';\n\nimport {TuiDialogComponent} from './dialog.component';\nimport {type TuiDialogOptions} from './dialog.interfaces';\nimport {TUI_DIALOG_OPTIONS, TUI_DIALOGS} from './dialog.tokens';\n\n@Injectable({\n providedIn: 'root',\n useFactory: () =>\n new TuiDialogService(TUI_DIALOGS, TuiDialogComponent, inject(TUI_DIALOG_OPTIONS)),\n})\nexport class TuiDialogService extends TuiPopoverService<TuiDialogOptions<any>> {}\n","import {Directive} from '@angular/core';\nimport {TuiPopoverDirective} from '@taiga-ui/cdk/directives/popover';\nimport {tuiAsPopover} from '@taiga-ui/cdk/services';\n\nimport {type TuiDialogOptions} from './dialog.interfaces';\nimport {TuiDialogService} from './dialog.service';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiDialog]',\n inputs: ['options: tuiDialogOptions', 'open: tuiDialog'],\n outputs: ['openChange: tuiDialogChange'],\n providers: [tuiAsPopover(TuiDialogService)],\n})\nexport class TuiDialog<T> extends TuiPopoverDirective<TuiDialogOptions<T>> {}\n","import {assertInInjectionContext, inject, INJECTOR, type Injector} from '@angular/core';\nimport {PolymorpheusComponent} from '@taiga-ui/polymorpheus';\nimport {type Observable} from 'rxjs';\n\nimport {type TuiDialogContext, type TuiDialogOptions} from './dialog.interfaces';\nimport {TuiDialogService} from './dialog.service';\n\ntype SingleUnionOrNever<T, U = T> = [T] extends [never]\n ? never\n : T extends U\n ? [U] extends [T]\n ? T\n : never\n : never;\n\ntype ReplaceAny<T> = 0 extends T & 1 ? void : T;\n\ntype ContextKeys<T> = {\n [K in keyof T]: ReplaceAny<T[K]> extends TuiDialogContext<any, any> | null\n ? K\n : never;\n}[keyof T];\n\ntype AssertNotMultipleContexts<T, K extends keyof T> = [K] extends [never]\n ? new (...args: any[]) => T\n : [SingleUnionOrNever<K>] extends [never]\n ? 'Component has multiple context. Cannot determine the type...'\n : new (...args: any[]) => T;\n\ntype ExtractDialogData<T, K extends keyof T = ContextKeys<T>> = [K] extends [never]\n ? void\n : [SingleUnionOrNever<K>] extends [never]\n ? never\n : T[K] extends TuiDialogContext<any, infer D> | null\n ? D\n : void;\n\ntype ExtractDialogResult<T, K extends keyof T = ContextKeys<T>> = [K] extends [never]\n ? void\n : [SingleUnionOrNever<K>] extends [never]\n ? never\n : T[K] extends TuiDialogContext<infer R, any> | null\n ? R\n : void;\n\ntype Options<T> = Omit<TuiDialogOptions<T>, 'data'> & {injector: Injector};\n\nexport function tuiDialog<\n T,\n K extends ContextKeys<T>,\n D extends ExtractDialogData<T, K>,\n R extends ExtractDialogResult<T, K>,\n>(\n component: AssertNotMultipleContexts<T, K>,\n {injector, ...options}: Partial<Options<D>> = {},\n): (data: D) => Observable<R> {\n if (!injector) {\n assertInInjectionContext(tuiDialog);\n injector = inject(INJECTOR);\n }\n\n const dialogService = injector.get(TuiDialogService);\n\n return (data) =>\n dialogService.open(\n new PolymorpheusComponent(component as new () => T, injector),\n {\n ...options,\n data,\n },\n );\n}\n","import {ChangeDetectionStrategy, Component, inject, type Signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {TuiAnimatedParent} from '@taiga-ui/cdk/directives/animated';\nimport {TuiFocusTrap} from '@taiga-ui/cdk/directives/focus-trap';\nimport {type TuiPopover} from '@taiga-ui/cdk/services';\nimport {TuiScrollControls, TuiScrollRef} from '@taiga-ui/core/components/scrollbar';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TUI_DIALOGS} from './dialog.tokens';\n\n@Component({\n selector: 'tui-dialogs',\n imports: [\n PolymorpheusOutlet,\n TuiAnimatedParent,\n TuiFocusTrap,\n TuiScrollControls,\n TuiScrollRef,\n ],\n templateUrl: './dialogs.template.html',\n styleUrls: ['./dialogs.style.less'],\n // So that we do not force OnPush on custom dialogs\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class TuiDialogs {\n protected readonly dialogs: Signal<ReadonlyArray<TuiPopover<any, any>>> = toSignal(\n inject(TUI_DIALOGS),\n {initialValue: []},\n );\n}\n","<div\n class=\"t-overlay\"\n [class.t-overlay_visible]=\"dialogs().length\"\n></div>\n<!--TODO: Rename to <article> in v5-->\n@for (item of dialogs(); track item) {\n <section\n aria-modal=\"true\"\n role=\"dialog\"\n tuiAnimatedParent\n tuiFocusTrap\n tuiScrollRef\n class=\"t-dialog\"\n [attr.aria-labelledby]=\"item.id\"\n >\n <ng-container *polymorpheusOutlet=\"item.component; context: item\" />\n <tui-scroll-controls class=\"t-scrollbars\" />\n </section>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-components-dialog.mjs","sources":["../../../projects/core/components/dialog/dialog.tokens.ts","../../../projects/core/components/dialog/dialog-close.service.ts","../../../projects/core/components/dialog/dialog.component.ts","../../../projects/core/components/dialog/dialog.template.html","../../../projects/core/components/dialog/dialog.service.ts","../../../projects/core/components/dialog/dialog.directive.ts","../../../projects/core/components/dialog/dialog.factory.ts","../../../projects/core/components/dialog/dialogs.component.ts","../../../projects/core/components/dialog/dialogs.template.html","../../../projects/core/components/dialog/taiga-ui-core-components-dialog.ts"],"sourcesContent":["import {InjectionToken, type Provider} from '@angular/core';\nimport {type TuiPopover} from '@taiga-ui/cdk/services';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {BehaviorSubject, EMPTY, type Observable} from 'rxjs';\n\nimport {type TuiDialogOptions} from './dialog.interfaces';\n\nexport const TUI_DIALOGS = new InjectionToken(ngDevMode ? 'TUI_DIALOGS' : '', {\n factory: () => new BehaviorSubject<ReadonlyArray<TuiPopover<any, any>>>([]),\n});\n\nexport const TUI_DIALOG_DEFAULT_OPTIONS: TuiDialogOptions<void> = {\n appearance: '',\n size: 'm',\n required: false,\n closeable: true,\n dismissible: true,\n label: '',\n header: '',\n data: undefined,\n};\n\n/**\n * A stream to close dialogs\n * TODO: use router.events in v5\n */\nexport const TUI_DIALOGS_CLOSE = new InjectionToken<Observable<unknown>>(\n ngDevMode ? 'TUI_DIALOGS_CLOSE' : '',\n {\n factory: () => EMPTY,\n },\n);\n\n/**\n * Default parameters for dialog component\n */\nexport const TUI_DIALOG_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_DIALOG_OPTIONS' : '',\n {\n factory: () => TUI_DIALOG_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiDialogOptionsProvider(\n options: Partial<TuiDialogOptions<unknown>>,\n): Provider {\n return tuiProvideOptions(TUI_DIALOG_OPTIONS, options, TUI_DIALOG_DEFAULT_OPTIONS);\n}\n","import {DOCUMENT} from '@angular/common';\nimport {inject, Injectable} from '@angular/core';\nimport {WA_WINDOW} from '@ng-web-apis/common';\nimport {tuiCloseWatcher, tuiTypedFromEvent, tuiZonefull} from '@taiga-ui/cdk/observables';\nimport {\n tuiContainsOrAfter,\n tuiGetActualTarget,\n tuiInjectElement,\n tuiIsElement,\n} from '@taiga-ui/cdk/utils/dom';\nimport {tuiGetViewportWidth} from '@taiga-ui/core/utils';\nimport {filter, map, merge, Observable, switchMap, take} from 'rxjs';\n\nconst SCROLLBAR_PLACEHOLDER = 17;\n\n@Injectable()\nexport class TuiDialogCloseService extends Observable<unknown> {\n private readonly win = inject(WA_WINDOW);\n private readonly doc = inject(DOCUMENT);\n private readonly el = tuiInjectElement();\n\n private readonly esc$ = tuiTypedFromEvent(this.doc, 'keydown').pipe(\n filter((event) => {\n const target = tuiGetActualTarget(event);\n\n return (\n // @ts-ignore\n typeof CloseWatcher === 'undefined' &&\n event.key?.toLowerCase() === 'escape' &&\n !event.defaultPrevented &&\n (this.el.contains(target) || this.isOutside(target))\n );\n }),\n );\n\n private readonly mousedown$ = tuiTypedFromEvent(this.doc, 'mousedown').pipe(\n filter(\n (event) =>\n tuiGetViewportWidth(this.win) - event.clientX > SCROLLBAR_PLACEHOLDER &&\n this.isOutside(tuiGetActualTarget(event)),\n ),\n switchMap(() =>\n tuiTypedFromEvent(this.doc, 'mouseup').pipe(\n take(1),\n map(tuiGetActualTarget),\n filter((target) => this.isOutside(target)),\n ),\n ),\n );\n\n constructor() {\n super((subscriber) =>\n merge(\n this.esc$,\n this.mousedown$,\n tuiCloseWatcher().pipe(tuiZonefull()),\n ).subscribe(subscriber),\n );\n }\n\n private isOutside(target: EventTarget): boolean {\n return (\n tuiIsElement(target) &&\n (!tuiContainsOrAfter(this.el, target) ||\n // TODO: Drop 'new' attribute in v5\n (target === this.el && !this.el.hasAttribute('new')))\n );\n }\n}\n","import {AsyncPipe} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, computed, inject} from '@angular/core';\nimport {takeUntilDestroyed, toSignal} from '@angular/core/rxjs-interop';\nimport {TUI_TRUE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {TuiAutoFocus} from '@taiga-ui/cdk/directives/auto-focus';\nimport {type TuiPopover} from '@taiga-ui/cdk/services';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiBreakpointService} from '@taiga-ui/core/services';\nimport {TUI_CLOSE_WORD, TUI_COMMON_ICONS} from '@taiga-ui/core/tokens';\nimport {\n injectContext,\n type PolymorpheusContent,\n PolymorpheusOutlet,\n} from '@taiga-ui/polymorpheus';\nimport {\n exhaustMap,\n filter,\n isObservable,\n map,\n merge,\n type Observable,\n of,\n Subject,\n switchMap,\n take,\n} from 'rxjs';\n\nimport {type TuiDialogOptions, type TuiDialogSize} from './dialog.interfaces';\nimport {TUI_DIALOGS_CLOSE} from './dialog.tokens';\nimport {TuiDialogCloseService} from './dialog-close.service';\n\nconst REQUIRED_ERROR = new Error('Required dialog was dismissed');\n\nfunction toObservable<T>(valueOrStream: Observable<T> | T): Observable<T> {\n return isObservable(valueOrStream) ? valueOrStream : of(valueOrStream);\n}\n\n@Component({\n selector: 'tui-dialog',\n imports: [AsyncPipe, PolymorpheusOutlet, TuiAutoFocus, TuiButton],\n templateUrl: './dialog.template.html',\n styleUrls: ['./dialog.style.less'],\n // So we don't force OnPush on dialog content\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [TuiDialogCloseService],\n hostDirectives: [TuiAnimated],\n host: {\n '[attr.data-appearance]': 'context.appearance',\n '[attr.data-size]': 'size',\n '[class._centered]': 'header',\n '[style.--tui-from]': 'from()',\n },\n})\nexport class TuiDialogComponent<O, I> {\n protected readonly close$ = new Subject<void>();\n protected readonly context = injectContext<TuiPopover<TuiDialogOptions<I>, O>>();\n protected readonly closeWord$ = inject(TUI_CLOSE_WORD);\n protected readonly icons = inject(TUI_COMMON_ICONS);\n protected readonly from = computed(() =>\n this.size === 'fullscreen' || this.size === 'page' || this.isMobile()\n ? 'translateY(100vh)'\n : 'translateY(2.5rem)',\n );\n\n protected readonly isMobile = toSignal(\n inject(TuiBreakpointService).pipe(map((breakpoint) => breakpoint === 'mobile')),\n );\n\n constructor() {\n merge(\n this.close$.pipe(switchMap(() => toObservable(this.context.closeable))),\n inject(TuiDialogCloseService).pipe(\n exhaustMap(() => toObservable(this.context.dismissible).pipe(take(1))),\n ),\n inject(TUI_DIALOGS_CLOSE).pipe(map(TUI_TRUE_HANDLER)),\n )\n .pipe(filter(Boolean), takeUntilDestroyed())\n .subscribe(() => {\n this.close();\n });\n }\n\n protected get size(): TuiDialogSize {\n return this.context.size;\n }\n\n protected get header(): PolymorpheusContent<TuiPopover<TuiDialogOptions<I>, O>> {\n return this.context.header;\n }\n\n private close(): void {\n if (this.context.required) {\n this.context.$implicit.error(REQUIRED_ERROR);\n } else {\n this.context.$implicit.complete();\n }\n }\n}\n","@if (header) {\n <header class=\"t-header\">\n <ng-container *polymorpheusOutlet=\"header as text; context: context\">\n {{ text }}\n </ng-container>\n </header>\n}\n<div class=\"t-content\">\n <h2\n class=\"t-heading\"\n [class.t-heading_closable]=\"context.closeable && !header\"\n [id]=\"context.id\"\n [textContent]=\"context.label\"\n ></h2>\n <section>\n <ng-container *polymorpheusOutlet=\"context.content as text; context: context\">\n <div [innerHTML]=\"text\"></div>\n @if (context.closeable || context.dismissible) {\n <div class=\"t-buttons\">\n <button\n size=\"m\"\n tuiAutoFocus\n tuiButton\n type=\"button\"\n (click)=\"context.$implicit.complete()\"\n >\n {{ context.data?.button || 'OK' }}\n </button>\n </div>\n }\n </ng-container>\n </section>\n</div>\n<div class=\"t-filler\"></div>\n\n<!-- Close button is insensitive to `context.closeable === Observable<false>` by design -->\n@if (context.closeable) {\n <button\n automation-id=\"tui-dialog__close\"\n tuiIconButton\n type=\"button\"\n class=\"t-close\"\n [appearance]=\"isMobile() ? 'icon' : 'neutral'\"\n [iconStart]=\"icons.close\"\n [size]=\"isMobile() ? 'xs' : 's'\"\n [style.border-radius.%]=\"100\"\n (click)=\"close$.next()\"\n (mousedown.prevent.zoneless)=\"(0)\"\n >\n {{ closeWord$ | async }}\n </button>\n}\n","import {inject, Injectable} from '@angular/core';\nimport {TuiPopoverService} from '@taiga-ui/cdk/services';\n\nimport {TuiDialogComponent} from './dialog.component';\nimport {type TuiDialogOptions} from './dialog.interfaces';\nimport {TUI_DIALOG_OPTIONS, TUI_DIALOGS} from './dialog.tokens';\n\n@Injectable({\n providedIn: 'root',\n useFactory: () =>\n new TuiDialogService(TUI_DIALOGS, TuiDialogComponent, inject(TUI_DIALOG_OPTIONS)),\n})\nexport class TuiDialogService extends TuiPopoverService<TuiDialogOptions<any>> {}\n","import {Directive} from '@angular/core';\nimport {TuiPopoverDirective} from '@taiga-ui/cdk/directives/popover';\nimport {tuiAsPopover} from '@taiga-ui/cdk/services';\n\nimport {type TuiDialogOptions} from './dialog.interfaces';\nimport {TuiDialogService} from './dialog.service';\n\n@Directive({\n standalone: true,\n selector: 'ng-template[tuiDialog]',\n inputs: ['options: tuiDialogOptions', 'open: tuiDialog'],\n outputs: ['openChange: tuiDialogChange'],\n providers: [tuiAsPopover(TuiDialogService)],\n})\nexport class TuiDialog<T> extends TuiPopoverDirective<TuiDialogOptions<T>> {}\n","import {assertInInjectionContext, inject, INJECTOR, type Injector} from '@angular/core';\nimport {PolymorpheusComponent} from '@taiga-ui/polymorpheus';\nimport {type Observable} from 'rxjs';\n\nimport {type TuiDialogContext, type TuiDialogOptions} from './dialog.interfaces';\nimport {TuiDialogService} from './dialog.service';\n\ntype SingleUnionOrNever<T, U = T> = [T] extends [never]\n ? never\n : T extends U\n ? [U] extends [T]\n ? T\n : never\n : never;\n\ntype ReplaceAny<T> = 0 extends T & 1 ? void : T;\n\ntype ContextKeys<T> = {\n [K in keyof T]: ReplaceAny<T[K]> extends TuiDialogContext<any, any> | null\n ? K\n : never;\n}[keyof T];\n\ntype AssertNotMultipleContexts<T, K extends keyof T> = [K] extends [never]\n ? new (...args: any[]) => T\n : [SingleUnionOrNever<K>] extends [never]\n ? 'Component has multiple context. Cannot determine the type...'\n : new (...args: any[]) => T;\n\ntype ExtractDialogData<T, K extends keyof T = ContextKeys<T>> = [K] extends [never]\n ? void\n : [SingleUnionOrNever<K>] extends [never]\n ? never\n : T[K] extends TuiDialogContext<any, infer D> | null\n ? D\n : void;\n\ntype ExtractDialogResult<T, K extends keyof T = ContextKeys<T>> = [K] extends [never]\n ? void\n : [SingleUnionOrNever<K>] extends [never]\n ? never\n : T[K] extends TuiDialogContext<infer R, any> | null\n ? R\n : void;\n\ntype Options<T> = Omit<TuiDialogOptions<T>, 'data'> & {injector: Injector};\n\nexport function tuiDialog<\n T,\n K extends ContextKeys<T>,\n D extends ExtractDialogData<T, K>,\n R extends ExtractDialogResult<T, K>,\n>(\n component: AssertNotMultipleContexts<T, K>,\n {injector, ...options}: Partial<Options<D>> = {},\n): (data: D) => Observable<R> {\n if (!injector) {\n assertInInjectionContext(tuiDialog);\n injector = inject(INJECTOR);\n }\n\n const dialogService = injector.get(TuiDialogService);\n\n return (data) =>\n dialogService.open(\n new PolymorpheusComponent(component as new () => T, injector),\n {\n ...options,\n data,\n },\n );\n}\n","import {ChangeDetectionStrategy, Component, inject, type Signal} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {TuiAnimatedParent} from '@taiga-ui/cdk/directives/animated';\nimport {TuiFocusTrap} from '@taiga-ui/cdk/directives/focus-trap';\nimport {type TuiPopover} from '@taiga-ui/cdk/services';\nimport {TuiScrollControls, TuiScrollRef} from '@taiga-ui/core/components/scrollbar';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\nimport {TUI_DIALOGS} from './dialog.tokens';\n\n@Component({\n selector: 'tui-dialogs',\n imports: [\n PolymorpheusOutlet,\n TuiAnimatedParent,\n TuiFocusTrap,\n TuiScrollControls,\n TuiScrollRef,\n ],\n templateUrl: './dialogs.template.html',\n styleUrls: ['./dialogs.style.less'],\n // So that we do not force OnPush on custom dialogs\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class TuiDialogs {\n protected readonly dialogs: Signal<ReadonlyArray<TuiPopover<any, any>>> = toSignal(\n inject(TUI_DIALOGS),\n {initialValue: []},\n );\n}\n","<div\n class=\"t-overlay\"\n [class.t-overlay_visible]=\"dialogs().length\"\n></div>\n<!--TODO: Rename to <article> in v5-->\n@for (item of dialogs(); track item) {\n <section\n aria-modal=\"true\"\n role=\"dialog\"\n tuiAnimatedParent\n tuiFocusTrap\n tuiScrollRef\n class=\"t-dialog\"\n [attr.aria-labelledby]=\"item.id\"\n >\n <ng-container *polymorpheusOutlet=\"item.component; context: item\" />\n <tui-scroll-controls class=\"t-scrollbars\" />\n </section>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -18,10 +18,10 @@ class TuiError {
|
|
|
18
18
|
set errorSetter(error) {
|
|
19
19
|
this.error = tuiIsString(error) ? new TuiValidationError(error) : error;
|
|
20
20
|
}
|
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
22
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiError, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiError, isStandalone: true, selector: "tui-error", inputs: { errorSetter: ["error", "errorSetter"] }, host: { properties: { "class._error": "error" } }, ngImport: i0, template: "@if (error) {\n <div\n automation-id=\"tui-error__text\"\n tuiAnimated\n class=\"t-message-text\"\n >\n <ng-container *polymorpheusOutlet=\"error.message || default() as text; context: error.context || {}\">\n {{ text }}\n </ng-container>\n </div>\n}\n", styles: [":host{transition-property:grid-template-rows;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:grid;font:var(--tui-font-text-s);color:var(--tui-text-negative);overflow-wrap:break-word;grid-template-rows:0fr}:host._error{grid-template-rows:1fr}.t-message-text{white-space:pre-line;grid-row:1 / span 2;overflow:hidden}.t-message-text.tui-enter,.t-message-text.tui-leave{animation-name:tuiFade}.t-message-text:before{content:\"\";line-height:1.5rem;vertical-align:bottom}\n"], dependencies: [{ kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: TuiAnimated, selector: "[tuiAnimated]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23
23
|
}
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiError, decorators: [{
|
|
25
25
|
type: Component,
|
|
26
26
|
args: [{ selector: 'tui-error', imports: [PolymorpheusOutlet, TuiAnimated], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
27
27
|
'[class._error]': 'error',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-error.mjs","sources":["../../../projects/core/components/error/error.component.ts","../../../projects/core/components/error/error.template.html","../../../projects/core/components/error/taiga-ui-core-components-error.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {TuiValidationError} from '@taiga-ui/cdk/classes';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_ANIMATIONS_SPEED, TUI_DEFAULT_ERROR_MESSAGE} from '@taiga-ui/core/tokens';\nimport {tuiToAnimationOptions} from '@taiga-ui/core/utils';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\n@Component({\n selector: 'tui-error',\n imports: [PolymorpheusOutlet, TuiAnimated],\n templateUrl: './error.template.html',\n styleUrls: ['./error.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._error]': 'error',\n },\n})\nexport class TuiError {\n protected readonly options = tuiToAnimationOptions(inject(TUI_ANIMATIONS_SPEED));\n protected error: TuiValidationError | null = null;\n protected visible = true;\n protected readonly default = toSignal(inject(TUI_DEFAULT_ERROR_MESSAGE));\n\n @Input('error')\n public set errorSetter(error: TuiValidationError | string | null) {\n this.error = tuiIsString(error) ? new TuiValidationError(error) : error;\n }\n}\n","@if (error) {\n <div\n automation-id=\"tui-error__text\"\n tuiAnimated\n class=\"t-message-text\"\n >\n <ng-container *polymorpheusOutlet=\"error.message || default() as text; context: error.context || {}\">\n {{ text }}\n </ng-container>\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;MAmBa,QAAQ,CAAA;AAVrB,IAAA,WAAA,GAAA;QAWuB,
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-components-error.mjs","sources":["../../../projects/core/components/error/error.component.ts","../../../projects/core/components/error/error.template.html","../../../projects/core/components/error/taiga-ui-core-components-error.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {TuiValidationError} from '@taiga-ui/cdk/classes';\nimport {TuiAnimated} from '@taiga-ui/cdk/directives/animated';\nimport {tuiIsString} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TUI_ANIMATIONS_SPEED, TUI_DEFAULT_ERROR_MESSAGE} from '@taiga-ui/core/tokens';\nimport {tuiToAnimationOptions} from '@taiga-ui/core/utils';\nimport {PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\n\n@Component({\n selector: 'tui-error',\n imports: [PolymorpheusOutlet, TuiAnimated],\n templateUrl: './error.template.html',\n styleUrls: ['./error.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class._error]': 'error',\n },\n})\nexport class TuiError {\n protected readonly options = tuiToAnimationOptions(inject(TUI_ANIMATIONS_SPEED));\n protected error: TuiValidationError | null = null;\n protected visible = true;\n protected readonly default = toSignal(inject(TUI_DEFAULT_ERROR_MESSAGE));\n\n @Input('error')\n public set errorSetter(error: TuiValidationError | string | null) {\n this.error = tuiIsString(error) ? new TuiValidationError(error) : error;\n }\n}\n","@if (error) {\n <div\n automation-id=\"tui-error__text\"\n tuiAnimated\n class=\"t-message-text\"\n >\n <ng-container *polymorpheusOutlet=\"error.message || default() as text; context: error.context || {}\">\n {{ text }}\n </ng-container>\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;MAmBa,QAAQ,CAAA;AAVrB,IAAA,WAAA,GAAA;QAWuB,IAAO,CAAA,OAAA,GAAG,qBAAqB,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACtE,IAAK,CAAA,KAAA,GAA8B,IAAI;QACvC,IAAO,CAAA,OAAA,GAAG,IAAI;QACL,IAAO,CAAA,OAAA,GAAG,QAAQ,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAM3E;IAJG,IACW,WAAW,CAAC,KAAyC,EAAA;AAC5D,QAAA,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,kBAAkB,CAAC,KAAK,CAAC,GAAG,KAAK;;+GARlE,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,QAAQ,ECnBrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,CAAA,OAAA,EAAA,aAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,qTAWA,EDAc,MAAA,EAAA,CAAA,kgBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,8HAAE,WAAW,EAAA,QAAA,EAAA,eAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAQhC,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAVpB,SAAS;+BACI,WAAW,EAAA,OAAA,EACZ,CAAC,kBAAkB,EAAE,WAAW,CAAC,EAGzB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,gBAAgB,EAAE,OAAO;AAC5B,qBAAA,EAAA,QAAA,EAAA,qTAAA,EAAA,MAAA,EAAA,CAAA,kgBAAA,CAAA,EAAA;8BASU,WAAW,EAAA,CAAA;sBADrB,KAAK;uBAAC,OAAO;;;AEzBlB;;AAEG;;;;"}
|
|
@@ -10,10 +10,10 @@ import { timer } from 'rxjs';
|
|
|
10
10
|
* @deprecated use {@link TuiExpand} from @taiga-ui/experimental
|
|
11
11
|
*/
|
|
12
12
|
class TuiExpandContent {
|
|
13
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
14
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiExpandContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
14
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.15", type: TuiExpandContent, isStandalone: true, selector: "[tuiExpandContent]", ngImport: i0 }); }
|
|
15
15
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiExpandContent, decorators: [{
|
|
17
17
|
type: Directive,
|
|
18
18
|
args: [{
|
|
19
19
|
standalone: true,
|
|
@@ -109,10 +109,10 @@ class TuiExpandComponent {
|
|
|
109
109
|
this.cdr.markForCheck();
|
|
110
110
|
});
|
|
111
111
|
}
|
|
112
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
113
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
112
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiExpandComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
113
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.15", type: TuiExpandComponent, isStandalone: true, selector: "tui-expand", inputs: { async: "async", expandedSetter: ["expanded", "expandedSetter"] }, host: { listeners: { "transitionend.self": "onTransitionEnd($event)", "tui-expand-loaded": "onExpandLoaded($event)" }, properties: { "style.height.px": "height", "class._loading": "loading", "class._overflow": "overflow", "class._expanded": "expanded", "attr.aria-expanded": "expanded" } }, queries: [{ propertyName: "content", first: true, predicate: TuiExpandContent, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "contentWrapper", first: true, predicate: ["wrapper"], descendants: true }], ngImport: i0, template: "<div\n #wrapper\n class=\"t-wrapper\"\n @tuiParentAnimation\n [@.disabled]=\"overflow\"\n>\n @if (contentVisible) {\n <ng-content />\n @if (async) {\n <tui-loader\n size=\"l\"\n [overlay]=\"true\"\n [showLoader]=\"loading\"\n >\n <ng-container [ngTemplateOutlet]=\"content\" />\n </tui-loader>\n } @else {\n <ng-template [ngTemplateOutlet]=\"content\" />\n }\n }\n</div>\n", styles: [":host{transition-property:opacity,height,visibility;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;display:block;opacity:0;transition-delay:1ms}:host._overflow{overflow:hidden}:host._expanded{opacity:1}:host._loading{opacity:.99}.t-wrapper:before,.t-wrapper:after{content:\"\";display:table}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: TuiLoader, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }], animations: [tuiParentAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
114
114
|
}
|
|
115
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiExpandComponent, decorators: [{
|
|
116
116
|
type: Component,
|
|
117
117
|
args: [{ selector: 'tui-expand', imports: [NgTemplateOutlet, TuiLoader], changeDetection: ChangeDetectionStrategy.OnPush, animations: [tuiParentAnimation], host: {
|
|
118
118
|
'[style.height.px]': 'height',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-components-expand.mjs","sources":["../../../projects/core/components/expand/expand-content.directive.ts","../../../projects/core/components/expand/expand.component.ts","../../../projects/core/components/expand/expand.template.html","../../../projects/core/components/expand/expand.ts","../../../projects/core/components/expand/taiga-ui-core-components-expand.ts"],"sourcesContent":["import {Directive} from '@angular/core';\n\n/**\n * @deprecated use {@link TuiExpand} from @taiga-ui/experimental\n */\n@Directive({\n standalone: true,\n selector: '[tuiExpandContent]',\n})\nexport class TuiExpandContent {}\n","import {type NgIfContext, NgTemplateOutlet} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n DestroyRef,\n type ElementRef,\n inject,\n Input,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {type TuiValuesOf} from '@taiga-ui/cdk/types';\nimport {tuiParentAnimation} from '@taiga-ui/core/animations';\nimport {TuiLoader} from '@taiga-ui/core/components/loader';\nimport {timer} from 'rxjs';\n\nimport {TuiExpandContent} from './expand-content.directive';\n\nconst State = {\n Idle: 0,\n Loading: 1,\n Prepared: 2,\n Animated: 3,\n} as const;\n\nconst LOADER_HEIGHT = 48;\n\n/**\n * An event indicating that async data for expand has finished loading.\n * Dispatch to finish loading states for {@link TuiExpandComponent}.\n */\nexport const TUI_EXPAND_LOADED = 'tui-expand-loaded';\n\n/**\n * @deprecated use {@link TuiExpand} from @taiga-ui/experimental\n */\n@Component({\n selector: 'tui-expand',\n imports: [NgTemplateOutlet, TuiLoader],\n templateUrl: './expand.template.html',\n styleUrls: ['./expand.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiParentAnimation],\n host: {\n '[style.height.px]': 'height',\n '[class._loading]': 'loading',\n '[class._overflow]': 'overflow',\n '[class._expanded]': 'expanded',\n '[attr.aria-expanded]': 'expanded',\n '(transitionend.self)': 'onTransitionEnd($event)',\n [`(${TUI_EXPAND_LOADED})`]: 'onExpandLoaded($event)',\n },\n})\nexport class TuiExpandComponent {\n @ViewChild('wrapper')\n private readonly contentWrapper?: ElementRef<HTMLDivElement>;\n\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly destroyRef = inject(DestroyRef);\n private state: TuiValuesOf<typeof State> = State.Idle;\n\n @ContentChild(TuiExpandContent, {read: TemplateRef})\n protected content: TemplateRef<NgIfContext<boolean>> | null = null;\n\n protected expanded: boolean | null = null;\n\n @Input()\n public async = false;\n\n @Input('expanded')\n public set expandedSetter(expanded: boolean | null) {\n if (this.expanded === null) {\n this.expanded = expanded;\n\n return;\n }\n\n if (this.state !== State.Idle) {\n this.expanded = expanded;\n this.state = State.Animated;\n\n return;\n }\n\n this.expanded = expanded;\n this.retrigger(this.async && expanded ? State.Loading : State.Animated);\n }\n\n public get contentVisible(): boolean {\n return this.expanded || this.state !== State.Idle;\n }\n\n protected get overflow(): boolean {\n return this.state !== State.Idle;\n }\n\n protected get loading(): boolean {\n return !!this.expanded && this.async && this.state === State.Loading;\n }\n\n protected get height(): number | null {\n const {expanded, state, contentWrapper} = this;\n\n if (\n (expanded && state === State.Prepared) ||\n (!expanded && state === State.Animated)\n ) {\n return 0;\n }\n\n if (\n contentWrapper &&\n ((!expanded && state === State.Prepared) ||\n (expanded && state === State.Animated))\n ) {\n return contentWrapper.nativeElement.offsetHeight;\n }\n\n if (contentWrapper && expanded && state === State.Loading) {\n return Math.max(contentWrapper.nativeElement.offsetHeight, LOADER_HEIGHT);\n }\n\n return null;\n }\n\n protected onTransitionEnd({propertyName, pseudoElement}: TransitionEvent): void {\n if (\n propertyName === 'opacity' &&\n !pseudoElement &&\n this.state === State.Animated\n ) {\n this.state = State.Idle;\n }\n }\n\n protected onExpandLoaded(event: Event): void {\n event.stopPropagation();\n\n if (this.state === State.Loading) {\n this.retrigger(State.Animated);\n }\n }\n\n private retrigger(state: TuiValuesOf<typeof State>): void {\n this.state = State.Prepared;\n\n timer(0)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n // We need delay to re-trigger CSS height transition from the correct number\n if (this.state !== State.Prepared) {\n return;\n }\n\n this.state = state;\n this.cdr.markForCheck();\n });\n }\n}\n","<div\n #wrapper\n class=\"t-wrapper\"\n @tuiParentAnimation\n [@.disabled]=\"overflow\"\n>\n @if (contentVisible) {\n <ng-content />\n @if (async) {\n <tui-loader\n size=\"l\"\n [overlay]=\"true\"\n [showLoader]=\"loading\"\n >\n <ng-container [ngTemplateOutlet]=\"content\" />\n </tui-loader>\n } @else {\n <ng-template [ngTemplateOutlet]=\"content\" />\n }\n }\n</div>\n","import {TuiExpandComponent} from './expand.component';\nimport {TuiExpandContent} from './expand-content.directive';\n\n/**\n * @deprecated use {@link TuiExpand} from @taiga-ui/experimental\n */\nexport const TuiExpand = [TuiExpandComponent, TuiExpandContent] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-components-expand.mjs","sources":["../../../projects/core/components/expand/expand-content.directive.ts","../../../projects/core/components/expand/expand.component.ts","../../../projects/core/components/expand/expand.template.html","../../../projects/core/components/expand/expand.ts","../../../projects/core/components/expand/taiga-ui-core-components-expand.ts"],"sourcesContent":["import {Directive} from '@angular/core';\n\n/**\n * @deprecated use {@link TuiExpand} from @taiga-ui/experimental\n */\n@Directive({\n standalone: true,\n selector: '[tuiExpandContent]',\n})\nexport class TuiExpandContent {}\n","import {type NgIfContext, NgTemplateOutlet} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n DestroyRef,\n type ElementRef,\n inject,\n Input,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {type TuiValuesOf} from '@taiga-ui/cdk/types';\nimport {tuiParentAnimation} from '@taiga-ui/core/animations';\nimport {TuiLoader} from '@taiga-ui/core/components/loader';\nimport {timer} from 'rxjs';\n\nimport {TuiExpandContent} from './expand-content.directive';\n\nconst State = {\n Idle: 0,\n Loading: 1,\n Prepared: 2,\n Animated: 3,\n} as const;\n\nconst LOADER_HEIGHT = 48;\n\n/**\n * An event indicating that async data for expand has finished loading.\n * Dispatch to finish loading states for {@link TuiExpandComponent}.\n */\nexport const TUI_EXPAND_LOADED = 'tui-expand-loaded';\n\n/**\n * @deprecated use {@link TuiExpand} from @taiga-ui/experimental\n */\n@Component({\n selector: 'tui-expand',\n imports: [NgTemplateOutlet, TuiLoader],\n templateUrl: './expand.template.html',\n styleUrls: ['./expand.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [tuiParentAnimation],\n host: {\n '[style.height.px]': 'height',\n '[class._loading]': 'loading',\n '[class._overflow]': 'overflow',\n '[class._expanded]': 'expanded',\n '[attr.aria-expanded]': 'expanded',\n '(transitionend.self)': 'onTransitionEnd($event)',\n [`(${TUI_EXPAND_LOADED})`]: 'onExpandLoaded($event)',\n },\n})\nexport class TuiExpandComponent {\n @ViewChild('wrapper')\n private readonly contentWrapper?: ElementRef<HTMLDivElement>;\n\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly destroyRef = inject(DestroyRef);\n private state: TuiValuesOf<typeof State> = State.Idle;\n\n @ContentChild(TuiExpandContent, {read: TemplateRef})\n protected content: TemplateRef<NgIfContext<boolean>> | null = null;\n\n protected expanded: boolean | null = null;\n\n @Input()\n public async = false;\n\n @Input('expanded')\n public set expandedSetter(expanded: boolean | null) {\n if (this.expanded === null) {\n this.expanded = expanded;\n\n return;\n }\n\n if (this.state !== State.Idle) {\n this.expanded = expanded;\n this.state = State.Animated;\n\n return;\n }\n\n this.expanded = expanded;\n this.retrigger(this.async && expanded ? State.Loading : State.Animated);\n }\n\n public get contentVisible(): boolean {\n return this.expanded || this.state !== State.Idle;\n }\n\n protected get overflow(): boolean {\n return this.state !== State.Idle;\n }\n\n protected get loading(): boolean {\n return !!this.expanded && this.async && this.state === State.Loading;\n }\n\n protected get height(): number | null {\n const {expanded, state, contentWrapper} = this;\n\n if (\n (expanded && state === State.Prepared) ||\n (!expanded && state === State.Animated)\n ) {\n return 0;\n }\n\n if (\n contentWrapper &&\n ((!expanded && state === State.Prepared) ||\n (expanded && state === State.Animated))\n ) {\n return contentWrapper.nativeElement.offsetHeight;\n }\n\n if (contentWrapper && expanded && state === State.Loading) {\n return Math.max(contentWrapper.nativeElement.offsetHeight, LOADER_HEIGHT);\n }\n\n return null;\n }\n\n protected onTransitionEnd({propertyName, pseudoElement}: TransitionEvent): void {\n if (\n propertyName === 'opacity' &&\n !pseudoElement &&\n this.state === State.Animated\n ) {\n this.state = State.Idle;\n }\n }\n\n protected onExpandLoaded(event: Event): void {\n event.stopPropagation();\n\n if (this.state === State.Loading) {\n this.retrigger(State.Animated);\n }\n }\n\n private retrigger(state: TuiValuesOf<typeof State>): void {\n this.state = State.Prepared;\n\n timer(0)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n // We need delay to re-trigger CSS height transition from the correct number\n if (this.state !== State.Prepared) {\n return;\n }\n\n this.state = state;\n this.cdr.markForCheck();\n });\n }\n}\n","<div\n #wrapper\n class=\"t-wrapper\"\n @tuiParentAnimation\n [@.disabled]=\"overflow\"\n>\n @if (contentVisible) {\n <ng-content />\n @if (async) {\n <tui-loader\n size=\"l\"\n [overlay]=\"true\"\n [showLoader]=\"loading\"\n >\n <ng-container [ngTemplateOutlet]=\"content\" />\n </tui-loader>\n } @else {\n <ng-template [ngTemplateOutlet]=\"content\" />\n }\n }\n</div>\n","import {TuiExpandComponent} from './expand.component';\nimport {TuiExpandContent} from './expand-content.directive';\n\n/**\n * @deprecated use {@link TuiExpand} from @taiga-ui/experimental\n */\nexport const TuiExpand = [TuiExpandComponent, TuiExpandContent] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAEA;;AAEG;MAKU,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,oBAAoB;AACjC,iBAAA;;;ACaD,MAAM,KAAK,GAAG;AACV,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,OAAO,EAAE,CAAC;AACV,IAAA,QAAQ,EAAE,CAAC;AACX,IAAA,QAAQ,EAAE,CAAC;CACL;AAEV,MAAM,aAAa,GAAG,EAAE;AAExB;;;AAGG;AACI,MAAM,iBAAiB,GAAG;AAEjC;;AAEG;MAkBU,kBAAkB,CAAA;AAjB/B,IAAA,WAAA,GAAA;AAqBqB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC/B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACxC,QAAA,IAAA,CAAA,KAAK,GAA8B,KAAK,CAAC,IAAI;QAG3C,IAAO,CAAA,OAAA,GAA6C,IAAI;QAExD,IAAQ,CAAA,QAAA,GAAmB,IAAI;QAGlC,IAAK,CAAA,KAAA,GAAG,KAAK;AA2FvB;IAzFG,IACW,cAAc,CAAC,QAAwB,EAAA;AAC9C,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AACxB,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;YAExB;;QAGJ,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE;AAC3B,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ;YAE3B;;AAGJ,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;QACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC;;AAG3E,IAAA,IAAW,cAAc,GAAA;QACrB,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI;;AAGrD,IAAA,IAAc,QAAQ,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI;;AAGpC,IAAA,IAAc,OAAO,GAAA;AACjB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO;;AAGxE,IAAA,IAAc,MAAM,GAAA;QAChB,MAAM,EAAC,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAC,GAAG,IAAI;QAE9C,IACI,CAAC,QAAQ,IAAI,KAAK,KAAK,KAAK,CAAC,QAAQ;aACpC,CAAC,QAAQ,IAAI,KAAK,KAAK,KAAK,CAAC,QAAQ,CAAC,EACzC;AACE,YAAA,OAAO,CAAC;;AAGZ,QAAA,IACI,cAAc;aACb,CAAC,CAAC,QAAQ,IAAI,KAAK,KAAK,KAAK,CAAC,QAAQ;iBAClC,QAAQ,IAAI,KAAK,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,EAC7C;AACE,YAAA,OAAO,cAAc,CAAC,aAAa,CAAC,YAAY;;QAGpD,IAAI,cAAc,IAAI,QAAQ,IAAI,KAAK,KAAK,KAAK,CAAC,OAAO,EAAE;AACvD,YAAA,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC;;AAG7E,QAAA,OAAO,IAAI;;AAGL,IAAA,eAAe,CAAC,EAAC,YAAY,EAAE,aAAa,EAAkB,EAAA;QACpE,IACI,YAAY,KAAK,SAAS;AAC1B,YAAA,CAAC,aAAa;AACd,YAAA,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,EAC/B;AACE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI;;;AAIrB,IAAA,cAAc,CAAC,KAAY,EAAA;QACjC,KAAK,CAAC,eAAe,EAAE;QAEvB,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,EAAE;AAC9B,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;;;AAI9B,IAAA,SAAS,CAAC,KAAgC,EAAA;AAC9C,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ;QAE3B,KAAK,CAAC,CAAC;AACF,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aACxC,SAAS,CAAC,MAAK;;YAEZ,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,EAAE;gBAC/B;;AAGJ,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AAC3B,SAAC,CAAC;;+GAvGD,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAQb,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,cAAA,EAAA,CAAA,UAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,mBAAA,EAAA,wBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,gBAAgB,EAAS,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAW,EChEtD,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,4gBAqBA,EDoBc,MAAA,EAAA,CAAA,4UAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,EAAE,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,SAAS,EAIzB,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,cAAA,EAAA,SAAA,EAAA,aAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAC,kBAAkB,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAWvB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAjB9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EACb,OAAA,EAAA,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAAA,eAAA,EAGrB,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,CAAC,kBAAkB,CAAC,EAC1B,IAAA,EAAA;AACF,wBAAA,mBAAmB,EAAE,QAAQ;AAC7B,wBAAA,kBAAkB,EAAE,SAAS;AAC7B,wBAAA,mBAAmB,EAAE,UAAU;AAC/B,wBAAA,mBAAmB,EAAE,UAAU;AAC/B,wBAAA,sBAAsB,EAAE,UAAU;AAClC,wBAAA,sBAAsB,EAAE,yBAAyB;AACjD,wBAAA,CAAC,CAAI,CAAA,EAAA,iBAAiB,CAAG,CAAA,CAAA,GAAG,wBAAwB;AACvD,qBAAA,EAAA,QAAA,EAAA,4gBAAA,EAAA,MAAA,EAAA,CAAA,4UAAA,CAAA,EAAA;8BAIgB,cAAc,EAAA,CAAA;sBAD9B,SAAS;uBAAC,SAAS;gBAQV,OAAO,EAAA,CAAA;sBADhB,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC;gBAM5C,KAAK,EAAA,CAAA;sBADX;gBAIU,cAAc,EAAA,CAAA;sBADxB,KAAK;uBAAC,UAAU;;;AErErB;;AAEG;MACU,SAAS,GAAG,CAAC,kBAAkB,EAAE,gBAAgB;;ACN9D;;AAEG;;;;"}
|
|
@@ -36,10 +36,10 @@ class TuiFullscreen {
|
|
|
36
36
|
this.open.set(open);
|
|
37
37
|
this.opened.emit(open);
|
|
38
38
|
}
|
|
39
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
40
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiFullscreen, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
40
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: TuiFullscreen, isStandalone: true, selector: "[tuiFullscreen]", inputs: { options: ["tuiFullscreenOptions", "options"], fullscreen: ["tuiFullscreen", "fullscreen"] }, outputs: { opened: "tuiFullscreenChange" }, host: { listeners: { "document:fullscreenchange": "closedByEscape($event)" } }, viewQueries: [{ propertyName: "root", first: true, predicate: TuiRoot, descendants: true, read: ElementRef }], ngImport: i0, template: '<tui-root><ng-content /></tui-root>', isInline: true, styles: ["tui-root{scrollbar-width:none;-ms-overflow-style:none;overflow:auto}tui-root::-webkit-scrollbar,tui-root::-webkit-scrollbar-thumb{display:none}\n"], dependencies: [{ kind: "component", type: TuiRoot, selector: "tui-root" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
41
41
|
}
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: TuiFullscreen, decorators: [{
|
|
43
43
|
type: Component,
|
|
44
44
|
args: [{ selector: '[tuiFullscreen]', imports: [TuiRoot], template: '<tui-root><ng-content /></tui-root>', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
45
45
|
'(document:fullscreenchange)': 'closedByEscape($event)',
|