@taiga-ui/cdk 3.20.0-dev.main-8c5d259 → 3.21.0

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.
Files changed (40) hide show
  1. package/bundles/taiga-ui-cdk-abstract.umd.js +5 -9
  2. package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
  3. package/bundles/taiga-ui-cdk-constants.umd.js +1 -1
  4. package/bundles/taiga-ui-cdk-constants.umd.js.map +1 -1
  5. package/bundles/taiga-ui-cdk-directives-obscured.umd.js +5 -5
  6. package/bundles/taiga-ui-cdk-directives-obscured.umd.js.map +1 -1
  7. package/bundles/taiga-ui-cdk-directives-resizer.umd.js.map +1 -1
  8. package/bundles/taiga-ui-cdk-observables.umd.js +11 -5
  9. package/bundles/taiga-ui-cdk-observables.umd.js.map +1 -1
  10. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js +5 -0
  11. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js.map +1 -1
  12. package/constants/version.d.ts +1 -1
  13. package/constants/version.js +1 -1
  14. package/directives/resizer/resizeable.directive.d.ts +1 -1
  15. package/esm2015/abstract/dialog.directive.js +5 -8
  16. package/esm2015/abstract/theme-switcher.js +1 -1
  17. package/esm2015/constants/version.js +2 -2
  18. package/esm2015/directives/obscured/obscured.directive.js +5 -4
  19. package/esm2015/directives/resizer/resizeable.directive.js +1 -1
  20. package/esm2015/observables/focus-visible-observable.js +3 -2
  21. package/esm2015/observables/if-map.js +6 -0
  22. package/esm2015/observables/index.js +2 -1
  23. package/esm2015/utils/miscellaneous/index.js +2 -1
  24. package/esm2015/utils/miscellaneous/is-falsy.js +4 -0
  25. package/fesm2015/taiga-ui-cdk-abstract.js +4 -7
  26. package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
  27. package/fesm2015/taiga-ui-cdk-constants.js +1 -1
  28. package/fesm2015/taiga-ui-cdk-constants.js.map +1 -1
  29. package/fesm2015/taiga-ui-cdk-directives-obscured.js +4 -3
  30. package/fesm2015/taiga-ui-cdk-directives-obscured.js.map +1 -1
  31. package/fesm2015/taiga-ui-cdk-directives-resizer.js.map +1 -1
  32. package/fesm2015/taiga-ui-cdk-observables.js +8 -3
  33. package/fesm2015/taiga-ui-cdk-observables.js.map +1 -1
  34. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js +5 -1
  35. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  36. package/observables/if-map.d.ts +3 -0
  37. package/observables/index.d.ts +1 -0
  38. package/package.json +1 -1
  39. package/utils/miscellaneous/index.d.ts +1 -0
  40. package/utils/miscellaneous/is-falsy.d.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-abstract.js","sources":["../../../projects/cdk/abstract/interactive.ts","../../../projects/cdk/abstract/control.ts","../../../projects/cdk/abstract/controller.ts","../../../projects/cdk/abstract/dialog.service.ts","../../../projects/cdk/abstract/dialog.directive.ts","../../../projects/cdk/abstract/multiple-control.ts","../../../projects/cdk/abstract/nullable-control.ts","../../../projects/cdk/abstract/portal-service.ts","../../../projects/cdk/abstract/portal-host.ts","../../../projects/cdk/abstract/theme-switcher.ts","../../../projects/cdk/abstract/taiga-ui-cdk-abstract.ts"],"sourcesContent":["import {Directive, EventEmitter, HostBinding, Input, Output} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\n\nconst TUI = `tui_interactive_`;\n\n/**\n * The most basic class for interactive components\n */\n@Directive()\nexport abstract class AbstractTuiInteractive {\n private static autoId = 0;\n\n abstract disabled: boolean;\n\n abstract focused: boolean;\n\n private readonly autoIdString: string;\n\n @Input()\n @tuiDefaultProp()\n pseudoHover: boolean | null = null;\n\n @Input()\n @tuiDefaultProp()\n pseudoActive: boolean | null = null;\n\n @Input()\n @tuiDefaultProp()\n pseudoFocus: boolean | null = null;\n\n /**\n * Determines if component is focusable with keyboard.\n */\n @Input()\n @tuiDefaultProp()\n focusable = true;\n\n @Input()\n @tuiDefaultProp()\n nativeId = ``;\n\n /**\n * Emits 'true' on focus and 'false' on blur.\n */\n @Output()\n readonly focusedChange = new EventEmitter<boolean>();\n\n @Output()\n readonly focusVisibleChange = new EventEmitter<boolean>();\n\n focusVisible = false;\n\n protected constructor() {\n this.autoIdString = `${TUI}${AbstractTuiInteractive.autoId++}${Date.now()}`;\n }\n\n @HostBinding(`class._disabled`)\n get computedDisabled(): boolean {\n return this.disabled;\n }\n\n get computedFocusable(): boolean {\n return !this.computedDisabled && (this.focusable || this.focused);\n }\n\n @HostBinding(`class._focused`)\n get computedFocused(): boolean {\n return !this.computedDisabled && (this.pseudoFocus ?? this.focused);\n }\n\n @HostBinding(`class._focus-visible`)\n get computedFocusVisible(): boolean {\n return !this.computedDisabled && (this.pseudoFocus ?? this.focusVisible);\n }\n\n // TODO: 3.0 Consider removing since native input is exposed\n get id(): string {\n return this.nativeId ? this.nativeId : this.autoIdString;\n }\n\n protected updateFocused(focused: boolean): void {\n this.focusedChange.emit(focused);\n }\n\n protected updateFocusVisible(focusVisible: boolean): void {\n if (this.focusVisible === focusVisible) {\n return;\n }\n\n this.focusVisible = focusVisible;\n this.focusVisibleChange.emit(focusVisible);\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Provider,\n Type,\n} from '@angular/core';\nimport {AbstractControl, ControlValueAccessor, NgControl, NgModel} from '@angular/forms';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {EMPTY_FUNCTION} from '@taiga-ui/cdk/constants';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\nimport {TuiControlValueTransformer} from '@taiga-ui/cdk/interfaces';\nimport {merge, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {AbstractTuiInteractive} from './interactive';\n\n/**\n * Basic ControlValueAccessor class to build form components upon\n */\n@Directive()\nexport abstract class AbstractTuiControl<T>\n extends AbstractTuiInteractive\n implements OnDestroy, OnInit, ControlValueAccessor\n{\n private previousInternalValue?: T | null;\n\n private onTouched = EMPTY_FUNCTION;\n\n private onChange = EMPTY_FUNCTION;\n\n protected readonly fallbackValue = this.getFallbackValue();\n\n protected readonly destroy$ = new Subject<void>();\n\n @Input()\n @HostBinding(`class._readonly`)\n @tuiDefaultProp()\n readOnly = false;\n\n @Input()\n @tuiDefaultProp()\n pseudoInvalid: boolean | null = null;\n\n protected constructor(\n private readonly ngControl: NgControl | null,\n protected readonly changeDetectorRef: ChangeDetectorRef,\n protected readonly valueTransformer?: TuiControlValueTransformer<T> | null,\n ) {\n super();\n\n if (this.ngControl === null) {\n tuiAssert.assert(\n false,\n `NgControl not injected in ${this.constructor.name}!\\n`,\n `Use [(ngModel)] or [formControl] or formControlName for correct work.`,\n );\n } else {\n this.ngControl.valueAccessor = this;\n }\n }\n\n protected abstract getFallbackValue(): T;\n\n @HostBinding(`class._invalid`)\n get computedInvalid(): boolean {\n return (\n this.interactive &&\n (this.pseudoInvalid !== null\n ? this.pseudoInvalid\n : this.touched && this.invalid)\n );\n }\n\n get value(): T {\n return this.previousInternalValue ?? this.fallbackValue;\n }\n\n get safeCurrentValue(): T {\n return this.rawValue ?? this.fallbackValue;\n }\n\n get invalid(): boolean {\n return this.safeNgControlData<boolean>(({invalid}) => invalid, false);\n }\n\n get valid(): boolean {\n return this.safeNgControlData<boolean>(({valid}) => valid, false);\n }\n\n get touched(): boolean {\n return this.safeNgControlData<boolean>(({touched}) => touched, false);\n }\n\n get disabled(): boolean {\n return this.safeNgControlData<boolean>(({disabled}) => disabled, false);\n }\n\n get interactive(): boolean {\n return !this.readOnly && !this.computedDisabled;\n }\n\n get control(): AbstractControl | null {\n return this.safeNgControlData<AbstractControl | null>(\n ({control}) => control,\n null,\n );\n }\n\n get computedName(): string | null {\n return this.controlName?.toString() ?? null;\n }\n\n protected get controlName(): string | null {\n return this.ngControl?.name?.toString() ?? null;\n }\n\n private get rawValue(): T | undefined {\n const {ngControl} = this;\n\n if (ngControl === null) {\n return undefined;\n }\n\n const controlValue =\n ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? ngControl.viewModel\n : ngControl.value;\n\n return this.fromControlValue(controlValue);\n }\n\n ngOnInit(): void {\n if (!this.ngControl?.valueChanges || !this.ngControl?.statusChanges) {\n return;\n }\n\n merge(this.ngControl.valueChanges, this.ngControl.statusChanges)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.refreshLocalValue(this.safeCurrentValue));\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n checkControlUpdate(): void {\n this.changeDetectorRef.markForCheck();\n }\n\n registerOnChange(onChange: (value: T | unknown) => void): void {\n this.onChange = (componentValue: T) => {\n onChange(this.toControlValue(componentValue));\n };\n }\n\n registerOnTouched(onTouched: () => void): void {\n this.onTouched = onTouched;\n }\n\n setDisabledState(): void {\n this.checkControlUpdate();\n }\n\n writeValue(value: T | null): void {\n const controlValue =\n this.ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? this.ngControl.model\n : value;\n\n this.refreshLocalValue(this.fromControlValue(controlValue));\n }\n\n protected override updateFocused(focused: boolean): void {\n if (!focused) {\n this.controlMarkAsTouched();\n }\n\n super.updateFocused(focused);\n }\n\n protected updateValue(value: T): void {\n if (this.disabled || this.valueIdenticalComparator(this.value, value)) {\n return;\n }\n\n this.previousInternalValue = value;\n this.controlSetValue(value);\n }\n\n protected valueIdenticalComparator(oldValue: T, newValue: T): boolean {\n return oldValue === newValue;\n }\n\n private safeNgControlData<T>(\n extractor: (ngControl: NgControl) => T | null | undefined,\n defaultFieldValue: T,\n ): T {\n return (this.ngControl && extractor(this.ngControl)) ?? defaultFieldValue;\n }\n\n private controlMarkAsTouched(): void {\n this.onTouched();\n this.checkControlUpdate();\n }\n\n private controlSetValue(value: T): void {\n this.onChange(value);\n this.checkControlUpdate();\n }\n\n private refreshLocalValue(value: T | null): void {\n this.previousInternalValue = value;\n this.checkControlUpdate();\n }\n\n private fromControlValue(controlValue: unknown): T {\n return this.valueTransformer\n ? this.valueTransformer.fromControlValue(controlValue)\n : (controlValue as T);\n }\n\n private toControlValue(componentValue: T): unknown {\n return this.valueTransformer\n ? this.valueTransformer.toControlValue(componentValue)\n : componentValue;\n }\n}\n\nexport function tuiAsControl<T>(useExisting: Type<AbstractTuiControl<T>>): Provider {\n return {\n provide: AbstractTuiControl,\n useExisting,\n };\n}\n","import {Directive, OnChanges} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n@Directive()\nexport abstract class AbstractTuiController implements OnChanges {\n readonly change$ = new Subject<void>();\n\n ngOnChanges(): void {\n this.change$.next();\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {TuiBaseDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {TuiIdService} from '@taiga-ui/cdk/services';\nimport {TuiDialog} from '@taiga-ui/cdk/types';\nimport {PolymorpheusComponent, PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {BehaviorSubject, Observable} from 'rxjs';\n\n@Injectable()\nexport abstract class AbstractTuiDialogService<T, K = void> extends Observable<\n ReadonlyArray<TuiDialog<T, any>>\n> {\n protected abstract readonly component: PolymorpheusComponent<any, TuiDialog<T, any>>;\n\n protected abstract readonly defaultOptions: T;\n\n protected readonly dialogs$ = new BehaviorSubject<ReadonlyArray<TuiDialog<T, any>>>(\n [],\n );\n\n constructor(@Inject(TuiIdService) private readonly idService: TuiIdService) {\n super(observer => this.dialogs$.subscribe(observer));\n }\n\n open<G = void>(\n content: PolymorpheusContent<T & TuiBaseDialogContext<K extends void ? G : K>>,\n options: Partial<T> = {},\n ): Observable<K extends void ? G : K> {\n return new Observable(observer => {\n const completeWith = (result: K extends void ? G : K): void => {\n observer.next(result);\n observer.complete();\n };\n const dialog = {\n ...this.defaultOptions,\n ...options,\n content,\n completeWith,\n $implicit: observer,\n component: this.component,\n createdAt: Date.now(),\n id: this.idService.generate(),\n };\n\n this.dialogs$.next([...this.dialogs$.value, dialog]);\n\n return () => {\n this.dialogs$.next(this.dialogs$.value.filter(item => item !== dialog));\n };\n });\n }\n}\n","import {ChangeDetectorRef, Directive, Inject, TemplateRef} from '@angular/core';\nimport {TuiDialog} from '@taiga-ui/cdk/types';\nimport {PolymorpheusTemplate} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, Subject} from 'rxjs';\nimport {endWith, ignoreElements, share, switchMap} from 'rxjs/operators';\n\nimport {AbstractTuiDialogService} from './dialog.service';\n\n@Directive()\nexport abstract class AbstractTuiDialogDirective<T> extends PolymorpheusTemplate<\n TuiDialog<T, void>\n> {\n private readonly open$ = new Subject<boolean>();\n\n options: Partial<T> = {};\n\n set open(open: boolean) {\n this.open$.next(open);\n }\n\n openChange = this.open$.pipe(\n switchMap(open =>\n open\n ? this.service\n .open(this, this.options)\n .pipe(ignoreElements(), endWith(false))\n : EMPTY,\n ),\n share(),\n );\n\n constructor(\n @Inject(TemplateRef)\n templateRef: TemplateRef<TuiDialog<T, void>>,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(AbstractTuiDialogService)\n private readonly service: AbstractTuiDialogService<T>,\n ) {\n super(templateRef, changeDetectorRef);\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {AbstractTuiControl} from './control';\n\n@Directive()\nexport abstract class AbstractTuiMultipleControl<T> extends AbstractTuiControl<\n readonly T[]\n> {\n clear(): void {\n this.updateValue([]);\n }\n\n protected getFallbackValue(): readonly T[] {\n return [];\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {AbstractTuiControl} from './control';\n\n@Directive()\nexport abstract class AbstractTuiNullableControl<T> extends AbstractTuiControl<T | null> {\n protected getFallbackValue(): T | null {\n return null;\n }\n}\n","import {ComponentRef, EmbeddedViewRef, Injectable, TemplateRef} from '@angular/core';\nimport {TuiNoHostException} from '@taiga-ui/cdk/exceptions';\nimport {PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {AbstractTuiPortalHostComponent} from './portal-host';\n\n/**\n * Abstract service for displaying portals\n */\n@Injectable()\nexport abstract class AbstractTuiPortalService {\n protected host?: AbstractTuiPortalHostComponent;\n\n protected get safeHost(): AbstractTuiPortalHostComponent {\n if (!this.host) {\n throw new TuiNoHostException();\n }\n\n return this.host;\n }\n\n attach(host: AbstractTuiPortalHostComponent): void {\n this.host = host;\n }\n\n add<C>(component: PolymorpheusComponent<C, any>): ComponentRef<C> {\n return this.safeHost.addComponentChild(component);\n }\n\n remove<C>({hostView}: ComponentRef<C>): void {\n hostView.destroy();\n }\n\n addTemplate<C>(templateRef: TemplateRef<C>, context?: C): EmbeddedViewRef<C> {\n return this.safeHost.addTemplateChild(templateRef, context);\n }\n\n removeTemplate<C>(viewRef: EmbeddedViewRef<C>): void {\n viewRef.destroy();\n }\n}\n","import {\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Inject,\n INJECTOR,\n Injector,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {AbstractTuiPortalService} from './portal-service';\n\n/**\n * Abstract class for host element for dynamically created portals.\n */\n@Directive()\nexport abstract class AbstractTuiPortalHostComponent {\n @ViewChild(`viewContainer`, {read: ViewContainerRef})\n viewContainerRef!: ViewContainerRef;\n\n constructor(\n @Inject(INJECTOR) private readonly injector: Injector,\n @Inject(ElementRef)\n readonly elementRef: ElementRef<HTMLElement>,\n @Inject(AbstractTuiPortalService) portalService: AbstractTuiPortalService,\n ) {\n portalService.attach(this);\n }\n\n get clientRect(): ClientRect {\n return this.elementRef.nativeElement.getBoundingClientRect();\n }\n\n addComponentChild<C>(component: PolymorpheusComponent<C, any>): ComponentRef<C> {\n const parent = component.createInjector(this.injector);\n const resolver = parent.get(ComponentFactoryResolver);\n const factory = resolver.resolveComponentFactory(component.component);\n const providers = [{provide: AbstractTuiPortalHostComponent, useValue: this}];\n const injector = Injector.create({parent, providers});\n const ref = this.viewContainerRef.createComponent(factory, undefined, injector);\n\n ref.changeDetectorRef.detectChanges();\n\n return ref;\n }\n\n addTemplateChild<C>(templateRef: TemplateRef<C>, context?: C): EmbeddedViewRef<C> {\n return this.viewContainerRef.createEmbeddedView(templateRef, context);\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Directive, Inject, OnDestroy} from '@angular/core';\n\n/**\n * Use this abstract class to create your own toggleable themes.\n * A component extending this class must have CSS variables definitions\n * and have ViewEncapsulation set to NONE. A boolean input allows to\n * switch theme on or off.\n */\n@Directive()\nexport abstract class AbstractTuiThemeSwitcher implements OnDestroy {\n static style: HTMLStyleElement | null = null;\n\n constructor(@Inject(DOCUMENT) private readonly documentRef: Document) {\n if (this.style !== null) {\n this.addTheme();\n\n return;\n }\n\n const styles = this.documentRef.head.querySelectorAll(`style`);\n\n (<typeof AbstractTuiThemeSwitcher>this.constructor).style =\n styles[styles.length - 1];\n }\n\n get style(): HTMLStyleElement | null {\n return (<typeof AbstractTuiThemeSwitcher>this.constructor).style;\n }\n\n ngOnDestroy(): void {\n this.removeTheme();\n }\n\n private addTheme(): void {\n if (this.style) {\n this.documentRef.head.appendChild(this.style);\n }\n }\n\n private removeTheme(): void {\n if (this.style && this.documentRef.head.contains(this.style)) {\n this.documentRef.head.removeChild(this.style);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-abstract.js","sources":["../../../projects/cdk/abstract/interactive.ts","../../../projects/cdk/abstract/control.ts","../../../projects/cdk/abstract/controller.ts","../../../projects/cdk/abstract/dialog.service.ts","../../../projects/cdk/abstract/dialog.directive.ts","../../../projects/cdk/abstract/multiple-control.ts","../../../projects/cdk/abstract/nullable-control.ts","../../../projects/cdk/abstract/portal-service.ts","../../../projects/cdk/abstract/portal-host.ts","../../../projects/cdk/abstract/theme-switcher.ts","../../../projects/cdk/abstract/taiga-ui-cdk-abstract.ts"],"sourcesContent":["import {Directive, EventEmitter, HostBinding, Input, Output} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\n\nconst TUI = `tui_interactive_`;\n\n/**\n * The most basic class for interactive components\n */\n@Directive()\nexport abstract class AbstractTuiInteractive {\n private static autoId = 0;\n\n abstract disabled: boolean;\n\n abstract focused: boolean;\n\n private readonly autoIdString: string;\n\n @Input()\n @tuiDefaultProp()\n pseudoHover: boolean | null = null;\n\n @Input()\n @tuiDefaultProp()\n pseudoActive: boolean | null = null;\n\n @Input()\n @tuiDefaultProp()\n pseudoFocus: boolean | null = null;\n\n /**\n * Determines if component is focusable with keyboard.\n */\n @Input()\n @tuiDefaultProp()\n focusable = true;\n\n @Input()\n @tuiDefaultProp()\n nativeId = ``;\n\n /**\n * Emits 'true' on focus and 'false' on blur.\n */\n @Output()\n readonly focusedChange = new EventEmitter<boolean>();\n\n @Output()\n readonly focusVisibleChange = new EventEmitter<boolean>();\n\n focusVisible = false;\n\n protected constructor() {\n this.autoIdString = `${TUI}${AbstractTuiInteractive.autoId++}${Date.now()}`;\n }\n\n @HostBinding(`class._disabled`)\n get computedDisabled(): boolean {\n return this.disabled;\n }\n\n get computedFocusable(): boolean {\n return !this.computedDisabled && (this.focusable || this.focused);\n }\n\n @HostBinding(`class._focused`)\n get computedFocused(): boolean {\n return !this.computedDisabled && (this.pseudoFocus ?? this.focused);\n }\n\n @HostBinding(`class._focus-visible`)\n get computedFocusVisible(): boolean {\n return !this.computedDisabled && (this.pseudoFocus ?? this.focusVisible);\n }\n\n // TODO: 3.0 Consider removing since native input is exposed\n get id(): string {\n return this.nativeId ? this.nativeId : this.autoIdString;\n }\n\n protected updateFocused(focused: boolean): void {\n this.focusedChange.emit(focused);\n }\n\n protected updateFocusVisible(focusVisible: boolean): void {\n if (this.focusVisible === focusVisible) {\n return;\n }\n\n this.focusVisible = focusVisible;\n this.focusVisibleChange.emit(focusVisible);\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Provider,\n Type,\n} from '@angular/core';\nimport {AbstractControl, ControlValueAccessor, NgControl, NgModel} from '@angular/forms';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {EMPTY_FUNCTION} from '@taiga-ui/cdk/constants';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\nimport {TuiControlValueTransformer} from '@taiga-ui/cdk/interfaces';\nimport {merge, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {AbstractTuiInteractive} from './interactive';\n\n/**\n * Basic ControlValueAccessor class to build form components upon\n */\n@Directive()\nexport abstract class AbstractTuiControl<T>\n extends AbstractTuiInteractive\n implements OnDestroy, OnInit, ControlValueAccessor\n{\n private previousInternalValue?: T | null;\n\n private onTouched = EMPTY_FUNCTION;\n\n private onChange = EMPTY_FUNCTION;\n\n protected readonly fallbackValue = this.getFallbackValue();\n\n protected readonly destroy$ = new Subject<void>();\n\n @Input()\n @HostBinding(`class._readonly`)\n @tuiDefaultProp()\n readOnly = false;\n\n @Input()\n @tuiDefaultProp()\n pseudoInvalid: boolean | null = null;\n\n protected constructor(\n private readonly ngControl: NgControl | null,\n protected readonly changeDetectorRef: ChangeDetectorRef,\n protected readonly valueTransformer?: TuiControlValueTransformer<T> | null,\n ) {\n super();\n\n if (this.ngControl === null) {\n tuiAssert.assert(\n false,\n `NgControl not injected in ${this.constructor.name}!\\n`,\n `Use [(ngModel)] or [formControl] or formControlName for correct work.`,\n );\n } else {\n this.ngControl.valueAccessor = this;\n }\n }\n\n protected abstract getFallbackValue(): T;\n\n @HostBinding(`class._invalid`)\n get computedInvalid(): boolean {\n return (\n this.interactive &&\n (this.pseudoInvalid !== null\n ? this.pseudoInvalid\n : this.touched && this.invalid)\n );\n }\n\n get value(): T {\n return this.previousInternalValue ?? this.fallbackValue;\n }\n\n get safeCurrentValue(): T {\n return this.rawValue ?? this.fallbackValue;\n }\n\n get invalid(): boolean {\n return this.safeNgControlData<boolean>(({invalid}) => invalid, false);\n }\n\n get valid(): boolean {\n return this.safeNgControlData<boolean>(({valid}) => valid, false);\n }\n\n get touched(): boolean {\n return this.safeNgControlData<boolean>(({touched}) => touched, false);\n }\n\n get disabled(): boolean {\n return this.safeNgControlData<boolean>(({disabled}) => disabled, false);\n }\n\n get interactive(): boolean {\n return !this.readOnly && !this.computedDisabled;\n }\n\n get control(): AbstractControl | null {\n return this.safeNgControlData<AbstractControl | null>(\n ({control}) => control,\n null,\n );\n }\n\n get computedName(): string | null {\n return this.controlName?.toString() ?? null;\n }\n\n protected get controlName(): string | null {\n return this.ngControl?.name?.toString() ?? null;\n }\n\n private get rawValue(): T | undefined {\n const {ngControl} = this;\n\n if (ngControl === null) {\n return undefined;\n }\n\n const controlValue =\n ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? ngControl.viewModel\n : ngControl.value;\n\n return this.fromControlValue(controlValue);\n }\n\n ngOnInit(): void {\n if (!this.ngControl?.valueChanges || !this.ngControl?.statusChanges) {\n return;\n }\n\n merge(this.ngControl.valueChanges, this.ngControl.statusChanges)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.refreshLocalValue(this.safeCurrentValue));\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n checkControlUpdate(): void {\n this.changeDetectorRef.markForCheck();\n }\n\n registerOnChange(onChange: (value: T | unknown) => void): void {\n this.onChange = (componentValue: T) => {\n onChange(this.toControlValue(componentValue));\n };\n }\n\n registerOnTouched(onTouched: () => void): void {\n this.onTouched = onTouched;\n }\n\n setDisabledState(): void {\n this.checkControlUpdate();\n }\n\n writeValue(value: T | null): void {\n const controlValue =\n this.ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? this.ngControl.model\n : value;\n\n this.refreshLocalValue(this.fromControlValue(controlValue));\n }\n\n protected override updateFocused(focused: boolean): void {\n if (!focused) {\n this.controlMarkAsTouched();\n }\n\n super.updateFocused(focused);\n }\n\n protected updateValue(value: T): void {\n if (this.disabled || this.valueIdenticalComparator(this.value, value)) {\n return;\n }\n\n this.previousInternalValue = value;\n this.controlSetValue(value);\n }\n\n protected valueIdenticalComparator(oldValue: T, newValue: T): boolean {\n return oldValue === newValue;\n }\n\n private safeNgControlData<T>(\n extractor: (ngControl: NgControl) => T | null | undefined,\n defaultFieldValue: T,\n ): T {\n return (this.ngControl && extractor(this.ngControl)) ?? defaultFieldValue;\n }\n\n private controlMarkAsTouched(): void {\n this.onTouched();\n this.checkControlUpdate();\n }\n\n private controlSetValue(value: T): void {\n this.onChange(value);\n this.checkControlUpdate();\n }\n\n private refreshLocalValue(value: T | null): void {\n this.previousInternalValue = value;\n this.checkControlUpdate();\n }\n\n private fromControlValue(controlValue: unknown): T {\n return this.valueTransformer\n ? this.valueTransformer.fromControlValue(controlValue)\n : (controlValue as T);\n }\n\n private toControlValue(componentValue: T): unknown {\n return this.valueTransformer\n ? this.valueTransformer.toControlValue(componentValue)\n : componentValue;\n }\n}\n\nexport function tuiAsControl<T>(useExisting: Type<AbstractTuiControl<T>>): Provider {\n return {\n provide: AbstractTuiControl,\n useExisting,\n };\n}\n","import {Directive, OnChanges} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n@Directive()\nexport abstract class AbstractTuiController implements OnChanges {\n readonly change$ = new Subject<void>();\n\n ngOnChanges(): void {\n this.change$.next();\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {TuiBaseDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {TuiIdService} from '@taiga-ui/cdk/services';\nimport {TuiDialog} from '@taiga-ui/cdk/types';\nimport {PolymorpheusComponent, PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {BehaviorSubject, Observable} from 'rxjs';\n\n@Injectable()\nexport abstract class AbstractTuiDialogService<T, K = void> extends Observable<\n ReadonlyArray<TuiDialog<T, any>>\n> {\n protected abstract readonly component: PolymorpheusComponent<any, TuiDialog<T, any>>;\n\n protected abstract readonly defaultOptions: T;\n\n protected readonly dialogs$ = new BehaviorSubject<ReadonlyArray<TuiDialog<T, any>>>(\n [],\n );\n\n constructor(@Inject(TuiIdService) private readonly idService: TuiIdService) {\n super(observer => this.dialogs$.subscribe(observer));\n }\n\n open<G = void>(\n content: PolymorpheusContent<T & TuiBaseDialogContext<K extends void ? G : K>>,\n options: Partial<T> = {},\n ): Observable<K extends void ? G : K> {\n return new Observable(observer => {\n const completeWith = (result: K extends void ? G : K): void => {\n observer.next(result);\n observer.complete();\n };\n const dialog = {\n ...this.defaultOptions,\n ...options,\n content,\n completeWith,\n $implicit: observer,\n component: this.component,\n createdAt: Date.now(),\n id: this.idService.generate(),\n };\n\n this.dialogs$.next([...this.dialogs$.value, dialog]);\n\n return () => {\n this.dialogs$.next(this.dialogs$.value.filter(item => item !== dialog));\n };\n });\n }\n}\n","import {ChangeDetectorRef, Directive, Inject, TemplateRef} from '@angular/core';\nimport {tuiIfMap} from '@taiga-ui/cdk/observables';\nimport {TuiDialog} from '@taiga-ui/cdk/types';\nimport {PolymorpheusTemplate} from '@tinkoff/ng-polymorpheus';\nimport {Subject} from 'rxjs';\nimport {endWith, ignoreElements, share} from 'rxjs/operators';\n\nimport {AbstractTuiDialogService} from './dialog.service';\n\n@Directive()\nexport abstract class AbstractTuiDialogDirective<T> extends PolymorpheusTemplate<\n TuiDialog<T, void>\n> {\n private readonly open$ = new Subject<boolean>();\n\n options: Partial<T> = {};\n\n set open(open: boolean) {\n this.open$.next(open);\n }\n\n openChange = this.open$.pipe(\n tuiIfMap(() =>\n this.service.open(this, this.options).pipe(ignoreElements(), endWith(false)),\n ),\n share(),\n );\n\n constructor(\n @Inject(TemplateRef)\n templateRef: TemplateRef<TuiDialog<T, void>>,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(AbstractTuiDialogService)\n private readonly service: AbstractTuiDialogService<T>,\n ) {\n super(templateRef, changeDetectorRef);\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {AbstractTuiControl} from './control';\n\n@Directive()\nexport abstract class AbstractTuiMultipleControl<T> extends AbstractTuiControl<\n readonly T[]\n> {\n clear(): void {\n this.updateValue([]);\n }\n\n protected getFallbackValue(): readonly T[] {\n return [];\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {AbstractTuiControl} from './control';\n\n@Directive()\nexport abstract class AbstractTuiNullableControl<T> extends AbstractTuiControl<T | null> {\n protected getFallbackValue(): T | null {\n return null;\n }\n}\n","import {ComponentRef, EmbeddedViewRef, Injectable, TemplateRef} from '@angular/core';\nimport {TuiNoHostException} from '@taiga-ui/cdk/exceptions';\nimport {PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {AbstractTuiPortalHostComponent} from './portal-host';\n\n/**\n * Abstract service for displaying portals\n */\n@Injectable()\nexport abstract class AbstractTuiPortalService {\n protected host?: AbstractTuiPortalHostComponent;\n\n protected get safeHost(): AbstractTuiPortalHostComponent {\n if (!this.host) {\n throw new TuiNoHostException();\n }\n\n return this.host;\n }\n\n attach(host: AbstractTuiPortalHostComponent): void {\n this.host = host;\n }\n\n add<C>(component: PolymorpheusComponent<C, any>): ComponentRef<C> {\n return this.safeHost.addComponentChild(component);\n }\n\n remove<C>({hostView}: ComponentRef<C>): void {\n hostView.destroy();\n }\n\n addTemplate<C>(templateRef: TemplateRef<C>, context?: C): EmbeddedViewRef<C> {\n return this.safeHost.addTemplateChild(templateRef, context);\n }\n\n removeTemplate<C>(viewRef: EmbeddedViewRef<C>): void {\n viewRef.destroy();\n }\n}\n","import {\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Inject,\n INJECTOR,\n Injector,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {PolymorpheusComponent} from '@tinkoff/ng-polymorpheus';\n\n// TODO: find the best way for prevent cycle\n// eslint-disable-next-line import/no-cycle\nimport {AbstractTuiPortalService} from './portal-service';\n\n/**\n * Abstract class for host element for dynamically created portals.\n */\n@Directive()\nexport abstract class AbstractTuiPortalHostComponent {\n @ViewChild(`viewContainer`, {read: ViewContainerRef})\n viewContainerRef!: ViewContainerRef;\n\n constructor(\n @Inject(INJECTOR) private readonly injector: Injector,\n @Inject(ElementRef)\n readonly elementRef: ElementRef<HTMLElement>,\n @Inject(AbstractTuiPortalService) portalService: AbstractTuiPortalService,\n ) {\n portalService.attach(this);\n }\n\n get clientRect(): ClientRect {\n return this.elementRef.nativeElement.getBoundingClientRect();\n }\n\n addComponentChild<C>(component: PolymorpheusComponent<C, any>): ComponentRef<C> {\n const parent = component.createInjector(this.injector);\n const resolver = parent.get(ComponentFactoryResolver);\n const factory = resolver.resolveComponentFactory(component.component);\n const providers = [{provide: AbstractTuiPortalHostComponent, useValue: this}];\n const injector = Injector.create({parent, providers});\n const ref = this.viewContainerRef.createComponent(factory, undefined, injector);\n\n ref.changeDetectorRef.detectChanges();\n\n return ref;\n }\n\n addTemplateChild<C>(templateRef: TemplateRef<C>, context?: C): EmbeddedViewRef<C> {\n return this.viewContainerRef.createEmbeddedView(templateRef, context);\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Directive, Inject, OnDestroy} from '@angular/core';\n\n/**\n * Use this abstract class to create your own toggleable themes.\n * A component extending this class must have CSS variables definitions\n * and have ViewEncapsulation set to NONE. A boolean input allows to\n * switch theme on or off.\n */\n@Directive()\nexport abstract class AbstractTuiThemeSwitcher implements OnDestroy {\n static style: HTMLStyleElement | null = null;\n\n constructor(@Inject(DOCUMENT) private readonly documentRef: Document) {\n if (this.style !== null) {\n this.addTheme();\n\n return;\n }\n\n const styles = this.documentRef.head.querySelectorAll(`style`);\n\n (this.constructor as typeof AbstractTuiThemeSwitcher).style =\n styles[styles.length - 1];\n }\n\n get style(): HTMLStyleElement | null {\n return (this.constructor as typeof AbstractTuiThemeSwitcher).style;\n }\n\n ngOnDestroy(): void {\n this.removeTheme();\n }\n\n private addTheme(): void {\n if (this.style) {\n this.documentRef.head.appendChild(this.style);\n }\n }\n\n private removeTheme(): void {\n if (this.style && this.documentRef.head.contains(this.style)) {\n this.documentRef.head.removeChild(this.style);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -151,7 +151,7 @@ const CHAR_CURRENCY_SIGN = `\u00A4`;
151
151
  */
152
152
  const CHAR_ZERO_WIDTH_SPACE = `\u200B`;
153
153
 
154
- const TUI_VERSION = `3.20.0`;
154
+ const TUI_VERSION = `3.21.0`;
155
155
 
156
156
  /**
157
157
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-constants.js","sources":["../../../projects/cdk/constants/always-false-handler.ts","../../../projects/cdk/constants/always-true-handler.ts","../../../projects/cdk/constants/browser.ts","../../../projects/cdk/constants/empty.ts","../../../projects/cdk/constants/stringify.ts","../../../projects/cdk/constants/matcher.ts","../../../projects/cdk/constants/parent-animation.ts","../../../projects/cdk/constants/polling-time.ts","../../../projects/cdk/constants/svg-node-filter.ts","../../../projects/cdk/constants/unicode-chars.ts","../../../projects/cdk/constants/version.ts","../../../projects/cdk/constants/taiga-ui-cdk-constants.ts"],"sourcesContent":["/**\n * Handler that always returns `false`.\n */\n// eslint-disable-next-line no-restricted-syntax\nexport const ALWAYS_FALSE_HANDLER = (): false => false;\n","/**\n * Handler that always returns `true`.\n */\n// eslint-disable-next-line no-restricted-syntax\nexport const ALWAYS_TRUE_HANDLER = (): true => true;\n","/**\n * @deprecated\n * TODO: drop support of legacy Edge (EdgeHTML) in v4.x\n */\nexport const CHROMIUM_EDGE_START_VERSION = 79;\n","import {QueryList} from '@angular/core';\n\n/**\n * For type safety when using @ContentChildren and @ViewChildren\n *\n * NOTE: Be careful subscribing to 'changes'\n */\nexport const EMPTY_QUERY = new QueryList<any>();\nexport const EMPTY_ARRAY: [] = [];\nexport const EMPTY_FUNCTION: (...args: any[]) => void = () => {};\n\nconst rect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n x: 0,\n y: 0,\n} as const;\n\nexport const EMPTY_CLIENT_RECT: DOMRect = {\n ...rect,\n toJSON() {\n return rect;\n },\n};\n","import {TuiStringHandler} from '@taiga-ui/cdk/types';\n\n/**\n * Default method to turn arbitrary object into string\n */\nexport const TUI_DEFAULT_STRINGIFY: TuiStringHandler<unknown> = item => String(item);\n","import {TuiHandler, TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\nimport {TUI_DEFAULT_STRINGIFY} from './stringify';\n\n/**\n * Default handler for matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_DEFAULT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n): boolean => stringify(item).toLowerCase().includes(search.toLowerCase());\n\n/**\n * Default handler for strict matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_STRICT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n): boolean => stringify(item).toLowerCase() === search.toLowerCase();\n\n/**\n * Default handler to match equality of two elements\n * ATTENTION: considers two empty arrays equal\n *\n * @param item1 first element\n * @param item2 second element\n */\nexport const TUI_DEFAULT_IDENTITY_MATCHER: TuiIdentityMatcher<unknown> = (item1, item2) =>\n item1 === item2 || bothEmpty(item1, item2);\n\nfunction bothEmpty(item1: unknown, item2: unknown): boolean {\n return Array.isArray(item1) && Array.isArray(item2) && !item1.length && !item2.length;\n}\n","import {animateChild, query, style, transition, trigger} from '@angular/animations';\n\nexport const TUI_PARENT_ANIMATION = trigger(`tuiParentAnimation`, [\n transition(`* => void`, [\n style({overflow: `hidden`}),\n query(`:scope > *`, [animateChild()], {optional: true}),\n ]),\n]);\n","export const POLLING_TIME = 1000 / 15;\n","// Filtering SVGElements for TreeWalker\n// Filter must be a function in IE, other modern browsers are compliant to this format\nexport const svgNodeFilter: NodeFilter = ((node: Node) =>\n `ownerSVGElement` in node\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT) as any;\n","/**\n * {@link https://unicode-table.com/en/00A0/ Non-breaking space}.\n */\nexport const CHAR_NO_BREAK_SPACE = `\\u00A0`;\n\n/**\n * {@link https://unicode-table.com/en/2013/ EN dash}\n * is used to indicate a range of numbers or a span of time.\n * @example 2006–2022\n * ___\n * Don't confuse with {@link CHAR_EM_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EN_DASH = `\\u2013`;\n\n/**\n * {@link https://unicode-table.com/en/2014/ EM dash}\n * is used to mark a break in a sentence.\n * @example Taiga UI — powerful set of open source components for Angular\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EM_DASH = `\\u2014`;\n\n/**\n * {@link https://unicode-table.com/en/00AB/ Left-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_LAQUO = `\\u00AB`;\n\n/**\n * {@link https://unicode-table.com/en/00BB/ Right-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_RAQUO = `\\u00BB`;\n\n/**\n * {@link https://unicode-table.com/en/002D/ Hyphen (minus sign)}\n * is used to combine words.\n * @example well-behaved\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_EM_DASH}!\n */\nexport const CHAR_HYPHEN = `\\u002D`;\n\n/**\n * {@link https://unicode-table.com/en/2212/ Minus}\n * is used as math operator symbol or before negative digits.\n * ---\n * Can be used as `&minus;`. Don't confuse with {@link CHAR_HYPHEN}\n */\nexport const CHAR_MINUS = `\\u2212`;\n\n/**\n * {@link https://unicode-table.com/en/002B/ Plus}\n */\nexport const CHAR_PLUS = `\\u002B`;\n\n/**\n * {@link https://unicode-table.com/en/2022/ Bullet}.\n */\nexport const CHAR_BULLET = `\\u2022`;\n\n/**\n * {@link https://unicode-table.com/en/2026/ Suspension points}.\n */\nexport const CHAR_ELLIPSIS = `\\u2026`;\n\n/**\n * {@link https://unicode-table.com/en/00A4/ Suspension points}.\n */\nexport const CHAR_CURRENCY_SIGN = `\\u00A4`;\n\n/**\n * {@link https://unicode-table.com/en/200b/ Suspension points}.\n */\nexport const CHAR_ZERO_WIDTH_SPACE = `\\u200B`;\n","export const TUI_VERSION = `3.20.0`;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAAA;;AAEG;AACH;MACa,oBAAoB,GAAG,MAAa;;ACJjD;;AAEG;AACH;MACa,mBAAmB,GAAG,MAAY;;ACJ/C;;;AAGG;AACI,MAAM,2BAA2B,GAAG;;ACF3C;;;;AAIG;AACU,MAAA,WAAW,GAAG,IAAI,SAAS,GAAQ;AACzC,MAAM,WAAW,GAAO,GAAG;MACrB,cAAc,GAA6B,MAAK,IAAI;AAEjE,MAAM,IAAI,GAAG;AACT,IAAA,MAAM,EAAE,CAAC;AACT,IAAA,MAAM,EAAE,CAAC;AACT,IAAA,IAAI,EAAE,CAAC;AACP,IAAA,KAAK,EAAE,CAAC;AACR,IAAA,GAAG,EAAE,CAAC;AACN,IAAA,KAAK,EAAE,CAAC;AACR,IAAA,CAAC,EAAE,CAAC;AACJ,IAAA,CAAC,EAAE,CAAC;CACE,CAAC;AAEE,MAAA,iBAAiB,GACvB,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,KACP,MAAM,GAAA;AACF,QAAA,OAAO,IAAI,CAAC;AAChB,KAAC;;ACxBL;;AAEG;AACI,MAAM,qBAAqB,GAA8B,IAAI,IAAI,MAAM,CAAC,IAAI;;ACDnF;;;;;AAKG;AACI,MAAM,mBAAmB,GAAG,CAC/B,IAAO,EACP,MAAc,EACd,SAAA,GAAmC,qBAAqB,KAC9C,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE;AAE3E;;;;;AAKG;AACU,MAAA,kBAAkB,GAAG,CAC9B,IAAO,EACP,MAAc,EACd,SAAmC,GAAA,qBAAqB,KAC9C,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,GAAG;AAErE;;;;;;AAMG;MACU,4BAA4B,GAAgC,CAAC,KAAK,EAAE,KAAK,KAClF,KAAK,KAAK,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE;AAE/C,SAAS,SAAS,CAAC,KAAc,EAAE,KAAc,EAAA;IAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAC1F;;ACtCa,MAAA,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,EAAE;IAC9D,UAAU,CAAC,WAAW,EAAE;AACpB,QAAA,KAAK,CAAC,EAAC,QAAQ,EAAE,CAAA,MAAA,CAAQ,EAAC,CAAC;AAC3B,QAAA,KAAK,CAAC,CAAA,UAAA,CAAY,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;KAC1D,CAAC;AACL,CAAA;;ACPY,MAAA,YAAY,GAAG,IAAI,GAAG;;ACAnC;AACA;AACO,MAAM,aAAa,IAAgB,CAAC,IAAU,KACjD,CAAiB,eAAA,CAAA,IAAI,IAAI;MACnB,UAAU,CAAC,aAAa;AAC1B,MAAE,UAAU,CAAC,aAAa;;ACLlC;;AAEG;AACI,MAAM,mBAAmB,GAAG,SAAS;AAE5C;;;;;;AAMG;AACI,MAAM,YAAY,GAAG,SAAS;AAErC;;;;;;AAMG;AACI,MAAM,YAAY,GAAG,SAAS;AAErC;;AAEG;AACI,MAAM,UAAU,GAAG,SAAS;AAEnC;;AAEG;AACI,MAAM,UAAU,GAAG,SAAS;AAEnC;;;;;;AAMG;AACI,MAAM,WAAW,GAAG,SAAS;AAEpC;;;;;AAKG;AACI,MAAM,UAAU,GAAG,SAAS;AAEnC;;AAEG;AACI,MAAM,SAAS,GAAG,SAAS;AAElC;;AAEG;AACI,MAAM,WAAW,GAAG,SAAS;AAEpC;;AAEG;AACI,MAAM,aAAa,GAAG,SAAS;AAEtC;;AAEG;AACI,MAAM,kBAAkB,GAAG,SAAS;AAE3C;;AAEG;AACI,MAAM,qBAAqB,GAAG;;ACzE9B,MAAM,WAAW,GAAG;;ACA3B;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-constants.js","sources":["../../../projects/cdk/constants/always-false-handler.ts","../../../projects/cdk/constants/always-true-handler.ts","../../../projects/cdk/constants/browser.ts","../../../projects/cdk/constants/empty.ts","../../../projects/cdk/constants/stringify.ts","../../../projects/cdk/constants/matcher.ts","../../../projects/cdk/constants/parent-animation.ts","../../../projects/cdk/constants/polling-time.ts","../../../projects/cdk/constants/svg-node-filter.ts","../../../projects/cdk/constants/unicode-chars.ts","../../../projects/cdk/constants/version.ts","../../../projects/cdk/constants/taiga-ui-cdk-constants.ts"],"sourcesContent":["/**\n * Handler that always returns `false`.\n */\n// eslint-disable-next-line no-restricted-syntax\nexport const ALWAYS_FALSE_HANDLER = (): false => false;\n","/**\n * Handler that always returns `true`.\n */\n// eslint-disable-next-line no-restricted-syntax\nexport const ALWAYS_TRUE_HANDLER = (): true => true;\n","/**\n * @deprecated\n * TODO: drop support of legacy Edge (EdgeHTML) in v4.x\n */\nexport const CHROMIUM_EDGE_START_VERSION = 79;\n","import {QueryList} from '@angular/core';\n\n/**\n * For type safety when using @ContentChildren and @ViewChildren\n *\n * NOTE: Be careful subscribing to 'changes'\n */\nexport const EMPTY_QUERY = new QueryList<any>();\nexport const EMPTY_ARRAY: [] = [];\nexport const EMPTY_FUNCTION: (...args: any[]) => void = () => {};\n\nconst rect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n x: 0,\n y: 0,\n} as const;\n\nexport const EMPTY_CLIENT_RECT: DOMRect = {\n ...rect,\n toJSON() {\n return rect;\n },\n};\n","import {TuiStringHandler} from '@taiga-ui/cdk/types';\n\n/**\n * Default method to turn arbitrary object into string\n */\nexport const TUI_DEFAULT_STRINGIFY: TuiStringHandler<unknown> = item => String(item);\n","import {TuiHandler, TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\nimport {TUI_DEFAULT_STRINGIFY} from './stringify';\n\n/**\n * Default handler for matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_DEFAULT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n): boolean => stringify(item).toLowerCase().includes(search.toLowerCase());\n\n/**\n * Default handler for strict matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_STRICT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n): boolean => stringify(item).toLowerCase() === search.toLowerCase();\n\n/**\n * Default handler to match equality of two elements\n * ATTENTION: considers two empty arrays equal\n *\n * @param item1 first element\n * @param item2 second element\n */\nexport const TUI_DEFAULT_IDENTITY_MATCHER: TuiIdentityMatcher<unknown> = (item1, item2) =>\n item1 === item2 || bothEmpty(item1, item2);\n\nfunction bothEmpty(item1: unknown, item2: unknown): boolean {\n return Array.isArray(item1) && Array.isArray(item2) && !item1.length && !item2.length;\n}\n","import {animateChild, query, style, transition, trigger} from '@angular/animations';\n\nexport const TUI_PARENT_ANIMATION = trigger(`tuiParentAnimation`, [\n transition(`* => void`, [\n style({overflow: `hidden`}),\n query(`:scope > *`, [animateChild()], {optional: true}),\n ]),\n]);\n","export const POLLING_TIME = 1000 / 15;\n","// Filtering SVGElements for TreeWalker\n// Filter must be a function in IE, other modern browsers are compliant to this format\nexport const svgNodeFilter: NodeFilter = ((node: Node) =>\n `ownerSVGElement` in node\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT) as any;\n","/**\n * {@link https://unicode-table.com/en/00A0/ Non-breaking space}.\n */\nexport const CHAR_NO_BREAK_SPACE = `\\u00A0`;\n\n/**\n * {@link https://unicode-table.com/en/2013/ EN dash}\n * is used to indicate a range of numbers or a span of time.\n * @example 2006–2022\n * ___\n * Don't confuse with {@link CHAR_EM_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EN_DASH = `\\u2013`;\n\n/**\n * {@link https://unicode-table.com/en/2014/ EM dash}\n * is used to mark a break in a sentence.\n * @example Taiga UI — powerful set of open source components for Angular\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EM_DASH = `\\u2014`;\n\n/**\n * {@link https://unicode-table.com/en/00AB/ Left-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_LAQUO = `\\u00AB`;\n\n/**\n * {@link https://unicode-table.com/en/00BB/ Right-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_RAQUO = `\\u00BB`;\n\n/**\n * {@link https://unicode-table.com/en/002D/ Hyphen (minus sign)}\n * is used to combine words.\n * @example well-behaved\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_EM_DASH}!\n */\nexport const CHAR_HYPHEN = `\\u002D`;\n\n/**\n * {@link https://unicode-table.com/en/2212/ Minus}\n * is used as math operator symbol or before negative digits.\n * ---\n * Can be used as `&minus;`. Don't confuse with {@link CHAR_HYPHEN}\n */\nexport const CHAR_MINUS = `\\u2212`;\n\n/**\n * {@link https://unicode-table.com/en/002B/ Plus}\n */\nexport const CHAR_PLUS = `\\u002B`;\n\n/**\n * {@link https://unicode-table.com/en/2022/ Bullet}.\n */\nexport const CHAR_BULLET = `\\u2022`;\n\n/**\n * {@link https://unicode-table.com/en/2026/ Suspension points}.\n */\nexport const CHAR_ELLIPSIS = `\\u2026`;\n\n/**\n * {@link https://unicode-table.com/en/00A4/ Suspension points}.\n */\nexport const CHAR_CURRENCY_SIGN = `\\u00A4`;\n\n/**\n * {@link https://unicode-table.com/en/200b/ Suspension points}.\n */\nexport const CHAR_ZERO_WIDTH_SPACE = `\\u200B`;\n","export const TUI_VERSION = `3.21.0`;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -4,10 +4,11 @@ import { Directive, Optional, Inject, Self, Input, Output, NgModule } from '@ang
4
4
  import { tuiRequiredSetter } from '@taiga-ui/cdk/decorators';
5
5
  import * as i1 from '@taiga-ui/cdk/directives/active-zone';
6
6
  import { TuiActiveZoneDirective } from '@taiga-ui/cdk/directives/active-zone';
7
+ import { tuiIfMap } from '@taiga-ui/cdk/observables';
7
8
  import * as i2 from '@taiga-ui/cdk/services';
8
9
  import { TuiObscuredService, TuiParentsScrollService, TuiDestroyService } from '@taiga-ui/cdk/services';
9
- import { Subject, EMPTY } from 'rxjs';
10
- import { map, switchMap } from 'rxjs/operators';
10
+ import { Subject } from 'rxjs';
11
+ import { map } from 'rxjs/operators';
11
12
 
12
13
  /**
13
14
  * Directive that monitors element visibility
@@ -19,7 +20,7 @@ class TuiObscuredDirective {
19
20
  (!activeZone ||
20
21
  !obscuredBy.length ||
21
22
  obscuredBy.every(element => !activeZone.contains(element)))));
22
- this.tuiObscured = this.enabled$.pipe(switchMap(enabled => (enabled ? mapped$ : EMPTY)));
23
+ this.tuiObscured = this.enabled$.pipe(tuiIfMap(() => mapped$));
23
24
  }
24
25
  set tuiObscuredEnabled(enabled) {
25
26
  this.enabled$.next(enabled);
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-obscured.js","sources":["../../../projects/cdk/directives/obscured/obscured.directive.ts","../../../projects/cdk/directives/obscured/obscured.module.ts","../../../projects/cdk/directives/obscured/taiga-ui-cdk-directives-obscured.ts"],"sourcesContent":["import {Directive, Inject, Input, Optional, Output, Self} from '@angular/core';\nimport {tuiRequiredSetter} from '@taiga-ui/cdk/decorators';\nimport {TuiActiveZoneDirective} from '@taiga-ui/cdk/directives/active-zone';\nimport {\n TuiDestroyService,\n TuiObscuredService,\n TuiParentsScrollService,\n} from '@taiga-ui/cdk/services';\nimport {EMPTY, Observable, Subject} from 'rxjs';\nimport {map, switchMap} from 'rxjs/operators';\n\n/**\n * Directive that monitors element visibility\n */\n@Directive({\n selector: '[tuiObscured]',\n providers: [TuiObscuredService, TuiParentsScrollService, TuiDestroyService],\n})\nexport class TuiObscuredDirective {\n private readonly enabled$ = new Subject<boolean>();\n\n @Input()\n @tuiRequiredSetter()\n set tuiObscuredEnabled(enabled: boolean) {\n this.enabled$.next(enabled);\n }\n\n @Output()\n readonly tuiObscured: Observable<boolean>;\n\n constructor(\n @Optional()\n @Inject(TuiActiveZoneDirective)\n activeZone: TuiActiveZoneDirective | null,\n @Self()\n @Inject(TuiObscuredService)\n obscured$: TuiObscuredService,\n ) {\n const mapped$ = obscured$.pipe(\n map(\n obscuredBy =>\n !!obscuredBy &&\n (!activeZone ||\n !obscuredBy.length ||\n obscuredBy.every(element => !activeZone.contains(element))),\n ),\n );\n\n this.tuiObscured = this.enabled$.pipe(\n switchMap(enabled => (enabled ? mapped$ : EMPTY)),\n );\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiObscuredDirective} from './obscured.directive';\n\n@NgModule({\n declarations: [TuiObscuredDirective],\n exports: [TuiObscuredDirective],\n})\nexport class TuiObscuredModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAWA;;AAEG;MAKU,oBAAoB,CAAA;IAY7B,WAGI,CAAA,UAAyC,EAGzC,SAA6B,EAAA;AAjBhB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAW,CAAC;AAmB/C,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAC1B,GAAG,CACC,UAAU,IACN,CAAC,CAAC,UAAU;AACZ,aAAC,CAAC,UAAU;gBACR,CAAC,UAAU,CAAC,MAAM;AAClB,gBAAA,UAAU,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CACtE,CACJ,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CACjC,SAAS,CAAC,OAAO,KAAK,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC,CAAC,CACpD,CAAC;KACL;IA5BD,IAAI,kBAAkB,CAAC,OAAgB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC/B;;kHAPQ,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAcjB,sBAAsB,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAGtB,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAjBrB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,uIAFlB,CAAC,kBAAkB,EAAE,uBAAuB,EAAE,iBAAiB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAO3E,UAAA,CAAA;AADC,IAAA,iBAAiB,EAAE;AAGnB,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,IAAA,CAAA,CAAA;4FAPQ,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,SAAS,EAAE,CAAC,kBAAkB,EAAE,uBAAuB,EAAE,iBAAiB,CAAC;AAC9E,iBAAA,CAAA;;0BAcQ,QAAQ;;0BACR,MAAM;2BAAC,sBAAsB,CAAA;;0BAE7B,IAAI;;0BACJ,MAAM;2BAAC,kBAAkB,CAAA;4CAZ1B,kBAAkB,EAAA,CAAA;sBAFrB,KAAK;gBAOG,WAAW,EAAA,CAAA;sBADnB,MAAM;;;MCnBE,iBAAiB,CAAA;;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAjB,iBAAiB,EAAA,YAAA,EAAA,CAHX,oBAAoB,CAAA,EAAA,OAAA,EAAA,CACzB,oBAAoB,CAAA,EAAA,CAAA,CAAA;gHAErB,iBAAiB,EAAA,CAAA,CAAA;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,oBAAoB,CAAC;oBACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAClC,iBAAA,CAAA;;;ACPD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-obscured.js","sources":["../../../projects/cdk/directives/obscured/obscured.directive.ts","../../../projects/cdk/directives/obscured/obscured.module.ts","../../../projects/cdk/directives/obscured/taiga-ui-cdk-directives-obscured.ts"],"sourcesContent":["import {Directive, Inject, Input, Optional, Output, Self} from '@angular/core';\nimport {tuiRequiredSetter} from '@taiga-ui/cdk/decorators';\nimport {TuiActiveZoneDirective} from '@taiga-ui/cdk/directives/active-zone';\nimport {tuiIfMap} from '@taiga-ui/cdk/observables';\nimport {\n TuiDestroyService,\n TuiObscuredService,\n TuiParentsScrollService,\n} from '@taiga-ui/cdk/services';\nimport {Observable, Subject} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n/**\n * Directive that monitors element visibility\n */\n@Directive({\n selector: '[tuiObscured]',\n providers: [TuiObscuredService, TuiParentsScrollService, TuiDestroyService],\n})\nexport class TuiObscuredDirective {\n private readonly enabled$ = new Subject<boolean>();\n\n @Input()\n @tuiRequiredSetter()\n set tuiObscuredEnabled(enabled: boolean) {\n this.enabled$.next(enabled);\n }\n\n @Output()\n readonly tuiObscured: Observable<boolean>;\n\n constructor(\n @Optional()\n @Inject(TuiActiveZoneDirective)\n activeZone: TuiActiveZoneDirective | null,\n @Self()\n @Inject(TuiObscuredService)\n obscured$: TuiObscuredService,\n ) {\n const mapped$ = obscured$.pipe(\n map(\n obscuredBy =>\n !!obscuredBy &&\n (!activeZone ||\n !obscuredBy.length ||\n obscuredBy.every(element => !activeZone.contains(element))),\n ),\n );\n\n this.tuiObscured = this.enabled$.pipe(tuiIfMap(() => mapped$));\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiObscuredDirective} from './obscured.directive';\n\n@NgModule({\n declarations: [TuiObscuredDirective],\n exports: [TuiObscuredDirective],\n})\nexport class TuiObscuredModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;AAYA;;AAEG;MAKU,oBAAoB,CAAA;IAY7B,WAGI,CAAA,UAAyC,EAGzC,SAA6B,EAAA;AAjBhB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAW,CAAC;AAmB/C,QAAA,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAC1B,GAAG,CACC,UAAU,IACN,CAAC,CAAC,UAAU;AACZ,aAAC,CAAC,UAAU;gBACR,CAAC,UAAU,CAAC,MAAM;AAClB,gBAAA,UAAU,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CACtE,CACJ,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC;KAClE;IA1BD,IAAI,kBAAkB,CAAC,OAAgB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC/B;;kHAPQ,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAcjB,sBAAsB,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAGtB,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAjBrB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,uIAFlB,CAAC,kBAAkB,EAAE,uBAAuB,EAAE,iBAAiB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AAO3E,UAAA,CAAA;AADC,IAAA,iBAAiB,EAAE;AAGnB,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,IAAA,CAAA,CAAA;4FAPQ,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,SAAS,EAAE,CAAC,kBAAkB,EAAE,uBAAuB,EAAE,iBAAiB,CAAC;AAC9E,iBAAA,CAAA;;0BAcQ,QAAQ;;0BACR,MAAM;2BAAC,sBAAsB,CAAA;;0BAE7B,IAAI;;0BACJ,MAAM;2BAAC,kBAAkB,CAAA;4CAZ1B,kBAAkB,EAAA,CAAA;sBAFrB,KAAK;gBAOG,WAAW,EAAA,CAAA;sBADnB,MAAM;;;MCpBE,iBAAiB,CAAA;;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAjB,iBAAiB,EAAA,YAAA,EAAA,CAHX,oBAAoB,CAAA,EAAA,OAAA,EAAA,CACzB,oBAAoB,CAAA,EAAA,CAAA,CAAA;gHAErB,iBAAiB,EAAA,CAAA,CAAA;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,oBAAoB,CAAC;oBACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAClC,iBAAA,CAAA;;;ACPD;;AAEG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-resizer.js","sources":["../../../projects/cdk/directives/resizer/resizeable.directive.ts","../../../projects/cdk/directives/resizer/resizer.directive.ts","../../../projects/cdk/directives/resizer/resizer.module.ts","../../../projects/cdk/directives/resizer/taiga-ui-cdk-directives-resizer.ts"],"sourcesContent":["import {Directive} from '@angular/core';\nimport {TuiElementDirective} from '@taiga-ui/cdk/directives/element';\n\n@Directive({\n selector: '[tuiResizeable]',\n})\nexport class TuiResizeableDirective extends TuiElementDirective<HTMLElement> {}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\nimport {tuiPx} from '@taiga-ui/cdk/utils/format';\n\nimport {TuiResizeableDirective} from './resizeable.directive';\n\n// TODO: Migrate to PointerEvent in 4.0\n@Directive({\n selector: '[tuiResizer]',\n host: {'[style.touchAction]': '\"none\"'},\n})\nexport class TuiResizerDirective {\n @Input()\n @tuiDefaultProp()\n tuiResizer: readonly [x: number, y: number] = [0, 0];\n\n @Output()\n readonly tuiSizeChange = new EventEmitter<readonly [x: number, y: number]>();\n\n x = NaN;\n y = NaN;\n width = 0;\n height = 0;\n\n constructor(\n @Inject(TuiResizeableDirective)\n private readonly resizeable: ElementRef<HTMLElement>,\n ) {}\n\n @HostBinding('style.cursor')\n get cursor(): string {\n if (!this.tuiResizer[0]) {\n return 'ns-resize';\n }\n\n if (!this.tuiResizer[1]) {\n return 'ew-resize';\n }\n\n if (this.tuiResizer[0] * this.tuiResizer[1] > 0) {\n return 'nwse-resize';\n }\n\n return 'nesw-resize';\n }\n\n @HostListener('touchstart.silent.passive', ['$event'])\n onTouchStart({touches}: TouchEvent): void {\n this.onMouseDown(touches[0].clientX, touches[0].clientY);\n }\n\n @HostListener('mousedown.silent.prevent', ['$event.x', '$event.y'])\n onMouseDown(x: number, y: number): void {\n this.x = x;\n this.y = y;\n this.width = this.resizeable.nativeElement.clientWidth;\n this.height = this.resizeable.nativeElement.clientHeight;\n }\n\n @HostListener('document:mousemove.silent', ['$event'])\n onMouseMove({x, y, buttons}: MouseEvent): void {\n if (!buttons) {\n this.onMouseUp();\n } else {\n this.onMove(x, y);\n }\n }\n\n @HostListener('document:touchmove.silent', ['$event'])\n onTouchMove({touches}: TouchEvent): void {\n this.onMove(touches[0].clientX, touches[0].clientY);\n }\n\n @HostListener('document:mouseup.silent')\n @HostListener('document:touchend.silent')\n onMouseUp(): void {\n this.x = NaN;\n }\n\n onMove(x: number, y: number): void {\n if (Number.isNaN(this.x)) {\n return;\n }\n\n const {style} = this.resizeable.nativeElement;\n const size = [\n this.width + this.tuiResizer[0] * (x - this.x),\n this.height + this.tuiResizer[1] * (y - this.y),\n ] as const;\n\n style.width = tuiPx(size[0]);\n style.height = tuiPx(size[1]);\n this.tuiSizeChange.emit(size);\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiResizeableDirective} from './resizeable.directive';\nimport {TuiResizerDirective} from './resizer.directive';\n\n@NgModule({\n declarations: [TuiResizeableDirective, TuiResizerDirective],\n exports: [TuiResizeableDirective, TuiResizerDirective],\n})\nexport class TuiResizerModule {}\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-cdk-directives-resizer.js","sources":["../../../projects/cdk/directives/resizer/resizeable.directive.ts","../../../projects/cdk/directives/resizer/resizer.directive.ts","../../../projects/cdk/directives/resizer/resizer.module.ts","../../../projects/cdk/directives/resizer/taiga-ui-cdk-directives-resizer.ts"],"sourcesContent":["import {Directive} from '@angular/core';\nimport {TuiElementDirective} from '@taiga-ui/cdk/directives/element';\n\n@Directive({\n selector: '[tuiResizeable]',\n})\nexport class TuiResizeableDirective extends TuiElementDirective {}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\nimport {tuiPx} from '@taiga-ui/cdk/utils/format';\n\nimport {TuiResizeableDirective} from './resizeable.directive';\n\n// TODO: Migrate to PointerEvent in 4.0\n@Directive({\n selector: '[tuiResizer]',\n host: {'[style.touchAction]': '\"none\"'},\n})\nexport class TuiResizerDirective {\n @Input()\n @tuiDefaultProp()\n tuiResizer: readonly [x: number, y: number] = [0, 0];\n\n @Output()\n readonly tuiSizeChange = new EventEmitter<readonly [x: number, y: number]>();\n\n x = NaN;\n y = NaN;\n width = 0;\n height = 0;\n\n constructor(\n @Inject(TuiResizeableDirective)\n private readonly resizeable: ElementRef<HTMLElement>,\n ) {}\n\n @HostBinding('style.cursor')\n get cursor(): string {\n if (!this.tuiResizer[0]) {\n return 'ns-resize';\n }\n\n if (!this.tuiResizer[1]) {\n return 'ew-resize';\n }\n\n if (this.tuiResizer[0] * this.tuiResizer[1] > 0) {\n return 'nwse-resize';\n }\n\n return 'nesw-resize';\n }\n\n @HostListener('touchstart.silent.passive', ['$event'])\n onTouchStart({touches}: TouchEvent): void {\n this.onMouseDown(touches[0].clientX, touches[0].clientY);\n }\n\n @HostListener('mousedown.silent.prevent', ['$event.x', '$event.y'])\n onMouseDown(x: number, y: number): void {\n this.x = x;\n this.y = y;\n this.width = this.resizeable.nativeElement.clientWidth;\n this.height = this.resizeable.nativeElement.clientHeight;\n }\n\n @HostListener('document:mousemove.silent', ['$event'])\n onMouseMove({x, y, buttons}: MouseEvent): void {\n if (!buttons) {\n this.onMouseUp();\n } else {\n this.onMove(x, y);\n }\n }\n\n @HostListener('document:touchmove.silent', ['$event'])\n onTouchMove({touches}: TouchEvent): void {\n this.onMove(touches[0].clientX, touches[0].clientY);\n }\n\n @HostListener('document:mouseup.silent')\n @HostListener('document:touchend.silent')\n onMouseUp(): void {\n this.x = NaN;\n }\n\n onMove(x: number, y: number): void {\n if (Number.isNaN(this.x)) {\n return;\n }\n\n const {style} = this.resizeable.nativeElement;\n const size = [\n this.width + this.tuiResizer[0] * (x - this.x),\n this.height + this.tuiResizer[1] * (y - this.y),\n ] as const;\n\n style.width = tuiPx(size[0]);\n style.height = tuiPx(size[1]);\n this.tuiSizeChange.emit(size);\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiResizeableDirective} from './resizeable.directive';\nimport {TuiResizerDirective} from './resizer.directive';\n\n@NgModule({\n declarations: [TuiResizeableDirective, TuiResizerDirective],\n exports: [TuiResizeableDirective, TuiResizerDirective],\n})\nexport class TuiResizerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import { TuiValueChangesException, TuiOwnerDocumentException, TuiValuePresentException } from '@taiga-ui/cdk/exceptions';
2
- import { Observable, fromEvent, merge, concat, pipe, timer } from 'rxjs';
2
+ import { Observable, fromEvent, merge, concat, pipe, timer, EMPTY } from 'rxjs';
3
3
  import { startWith, take, map, endWith, takeWhile, repeat, switchMap, distinctUntilChanged, shareReplay, filter, ignoreElements, withLatestFrom, tap } from 'rxjs/operators';
4
4
  import { tuiIsPresent, tuiGetOriginalArrayFromQueryList } from '@taiga-ui/cdk/utils/miscellaneous';
5
5
  import { ALWAYS_FALSE_HANDLER } from '@taiga-ui/cdk/constants';
6
+ import { tuiIsFalsy } from '@taiga-ui/cdk/utils';
6
7
  import { tuiIsNativeFocused } from '@taiga-ui/cdk/utils/focus';
7
8
 
8
9
  /**
@@ -80,7 +81,11 @@ function tuiFocusVisibleObservable(element) {
80
81
  // focus events excluding ones that came right after mouse action
81
82
  concat(tuiTypedFromEvent(element, `focus`).pipe(take(1)),
82
83
  // filtering out blur events when element remains focused so that we ignore browser tab focus loss
83
- elementBlur$.pipe(filter(() => !tuiIsNativeFocused(element)), take(1), ignoreElements())).pipe(repeat(), withLatestFrom(documentMouseDownIsAlive$, documentMouseUpIsAlive$, (_event, elementActual, documentActual) => elementActual || documentActual), filter(isUserFocus => !isUserFocus))).pipe(switchMap(() => elementBlur$.pipe(map(ALWAYS_FALSE_HANDLER), take(1), startWith(true))), distinctUntilChanged());
84
+ elementBlur$.pipe(filter(() => !tuiIsNativeFocused(element)), take(1), ignoreElements())).pipe(repeat(), withLatestFrom(documentMouseDownIsAlive$, documentMouseUpIsAlive$, (_event, elementActual, documentActual) => elementActual || documentActual), filter(tuiIsFalsy))).pipe(switchMap(() => elementBlur$.pipe(map(ALWAYS_FALSE_HANDLER), take(1), startWith(true))), distinctUntilChanged());
85
+ }
86
+
87
+ function tuiIfMap(project, predicate = Boolean) {
88
+ return pipe(switchMap(value => (predicate(value) ? project(value) : EMPTY)));
84
89
  }
85
90
 
86
91
  function tuiIsObserved(observable) {
@@ -152,5 +157,5 @@ function tuiZoneOptimized(ngZone) {
152
157
  * Generated bundle index. Do not edit.
153
158
  */
154
159
 
155
- export { TuiDragStage, TuiDragState, tuiControlValue, tuiDragAndDropFrom, tuiFocusVisibleObservable, tuiIsAlive, tuiIsObserved, tuiItemsQueryListObservable, tuiMouseDragFinishFrom, tuiMustBePresent, tuiPressedObservable, tuiPreventDefault, tuiQueryListChanges, tuiStopPropagation, tuiTypedFromEvent, tuiWatch, tuiZoneOptimized, tuiZonefree, tuiZonefull };
160
+ export { TuiDragStage, TuiDragState, tuiControlValue, tuiDragAndDropFrom, tuiFocusVisibleObservable, tuiIfMap, tuiIsAlive, tuiIsObserved, tuiItemsQueryListObservable, tuiMouseDragFinishFrom, tuiMustBePresent, tuiPressedObservable, tuiPreventDefault, tuiQueryListChanges, tuiStopPropagation, tuiTypedFromEvent, tuiWatch, tuiZoneOptimized, tuiZonefree, tuiZonefull };
156
161
  //# sourceMappingURL=taiga-ui-cdk-observables.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-observables.js","sources":["../../../projects/cdk/observables/control-value.ts","../../../projects/cdk/observables/typed-from-event.ts","../../../projects/cdk/observables/mouse-drag-finish-from.ts","../../../projects/cdk/observables/drag-and-drop-from.ts","../../../projects/cdk/observables/is-alive.ts","../../../projects/cdk/observables/focus-visible-observable.ts","../../../projects/cdk/observables/is-observed.ts","../../../projects/cdk/observables/items-query-list-observable.ts","../../../projects/cdk/observables/must-be-present.ts","../../../projects/cdk/observables/pressed-observable.ts","../../../projects/cdk/observables/prevent-default.ts","../../../projects/cdk/observables/stop-propagation.ts","../../../projects/cdk/observables/watch.ts","../../../projects/cdk/observables/zone-free.ts","../../../projects/cdk/observables/taiga-ui-cdk-observables.ts"],"sourcesContent":["import {AbstractControl, AbstractControlDirective} from '@angular/forms';\nimport {TuiValueChangesException} from '@taiga-ui/cdk/exceptions';\nimport {Observable} from 'rxjs';\nimport {startWith} from 'rxjs/operators';\n\n/**\n * Turns AbstractControl/Abstract-control-directive valueChanges into ReplaySubject(1)\n */\nexport function tuiControlValue<T>(\n control: AbstractControl | AbstractControlDirective,\n): Observable<T> {\n return new Observable(subscriber => {\n if (!control.valueChanges) {\n throw new TuiValueChangesException();\n }\n\n control.valueChanges.pipe(startWith(control.value)).subscribe(subscriber);\n });\n}\n","import {TuiEventWith, TuiTypedEventTarget} from '@taiga-ui/cdk/types';\nimport {fromEvent, Observable} from 'rxjs';\n\nexport function tuiTypedFromEvent<E extends keyof WindowEventMap>(\n target: Window,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<WindowEventMap[E], typeof target>>;\n\nexport function tuiTypedFromEvent<E extends keyof DocumentEventMap>(\n target: Document,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<DocumentEventMap[E], typeof target>>;\n\nexport function tuiTypedFromEvent<T extends Element, E extends keyof HTMLElementEventMap>(\n target: T,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<HTMLElementEventMap[E], typeof target>>;\n\nexport function tuiTypedFromEvent<\n E extends Event,\n T extends TuiTypedEventTarget<TuiEventWith<E, T>>,\n>(\n target: T,\n event: string,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<E, T>>;\n\nexport function tuiTypedFromEvent<E extends Event>(\n target: TuiTypedEventTarget<E>,\n event: string,\n options?: AddEventListenerOptions,\n): Observable<E>;\n\nexport function tuiTypedFromEvent<E extends Event>(\n target: TuiTypedEventTarget<E>,\n event: string,\n options: AddEventListenerOptions = {},\n): Observable<E> {\n /**\n * @note:\n * in RxJS 7 type signature `TuiTypedEventTarget<E>` !== `HasEventTargetAddRemove<E>`\n */\n return fromEvent<E>(target as any, event, options) as unknown as Observable<E>;\n}\n","import {TuiEventWith, TuiTypedEventTarget} from '@taiga-ui/cdk/types';\nimport {merge, Observable} from 'rxjs';\n\nimport {tuiTypedFromEvent} from './typed-from-event';\n\n/**\n * Letting go of the mouse after it was pressed\n * @param target\n */\nexport function tuiMouseDragFinishFrom<\n T extends TuiTypedEventTarget<TuiEventWith<DragEvent, T>>,\n>(target: Exclude<T, null>): Observable<TuiEventWith<MouseEvent, T>> {\n return merge(\n tuiTypedFromEvent(target, `mouseup`),\n tuiTypedFromEvent(target, `dragend`),\n );\n}\n","import {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {concat, merge, Observable} from 'rxjs';\nimport {endWith, map, repeat, take, takeWhile} from 'rxjs/operators';\n\nimport {tuiMouseDragFinishFrom} from './mouse-drag-finish-from';\nimport {tuiTypedFromEvent} from './typed-from-event';\n\nexport const enum TuiDragStage {\n Start,\n Continues,\n End,\n}\n\nexport class TuiDragState {\n constructor(readonly stage: TuiDragStage, readonly event: MouseEvent) {}\n}\n\nexport function tuiDragAndDropFrom(element: Element): Observable<TuiDragState> {\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n return concat(\n tuiTypedFromEvent(element, `mousedown`).pipe(\n take(1),\n map(event => new TuiDragState(TuiDragStage.Start, event)),\n ),\n merge(\n tuiTypedFromEvent(ownerDocument, `mousemove`).pipe(\n map(event => new TuiDragState(TuiDragStage.Continues, event)),\n ),\n tuiMouseDragFinishFrom(ownerDocument).pipe(\n take(1),\n map(event => new TuiDragState(TuiDragStage.End, event)),\n endWith(null),\n ),\n ).pipe(takeWhile(tuiIsPresent)),\n ).pipe(repeat());\n}\n","import {ALWAYS_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {OperatorFunction, pipe, timer} from 'rxjs';\nimport {distinctUntilChanged, map, startWith, switchMap} from 'rxjs/operators';\n\n/**\n * Operator to set lifespan after which current value is considered obsolete\n */\nexport function tuiIsAlive(lifespan: number = 0): OperatorFunction<unknown, boolean> {\n return pipe(\n switchMap(() => timer(lifespan).pipe(map(ALWAYS_FALSE_HANDLER), startWith(true))),\n distinctUntilChanged(),\n );\n}\n","import {ALWAYS_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {tuiIsNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {concat, merge, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n ignoreElements,\n map,\n repeat,\n shareReplay,\n startWith,\n switchMap,\n take,\n withLatestFrom,\n} from 'rxjs/operators';\n\nimport {tuiIsAlive} from './is-alive';\nimport {tuiTypedFromEvent} from './typed-from-event';\n\nlet documentMouseUpIsAlive$: Observable<boolean>;\nlet documentMouseDownIsAlive$: Observable<boolean>;\n\nexport function tuiFocusVisibleObservable(element: Element): Observable<boolean> {\n const elementBlur$ = tuiTypedFromEvent(element, `blur`);\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n if (!documentMouseDownIsAlive$ || !documentMouseUpIsAlive$) {\n documentMouseUpIsAlive$ = tuiTypedFromEvent(ownerDocument, `mouseup`, {\n capture: true,\n }).pipe(\n tuiIsAlive(),\n startWith(false),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n documentMouseDownIsAlive$ = tuiTypedFromEvent(ownerDocument, `mousedown`, {\n capture: true,\n }).pipe(\n tuiIsAlive(),\n startWith(false),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n }\n\n return merge(\n // focus events excluding ones that came right after mouse action\n concat(\n tuiTypedFromEvent(element, `focus`).pipe(take(1)),\n // filtering out blur events when element remains focused so that we ignore browser tab focus loss\n elementBlur$.pipe(\n filter(() => !tuiIsNativeFocused(element)),\n take(1),\n ignoreElements(),\n ),\n ).pipe(\n repeat(),\n withLatestFrom(\n documentMouseDownIsAlive$,\n documentMouseUpIsAlive$,\n (_event, elementActual, documentActual) =>\n elementActual || documentActual,\n ),\n filter(isUserFocus => !isUserFocus),\n ),\n ).pipe(\n switchMap(() =>\n elementBlur$.pipe(map(ALWAYS_FALSE_HANDLER), take(1), startWith(true)),\n ),\n distinctUntilChanged(),\n );\n}\n","import {Observer, Subject} from 'rxjs';\n\n/* In RxJS 7 All subjects now have an observed property */\ntype SubjectRxJS7plus<T> = Subject<T> & {observed: boolean};\n\n/* In RxJS 8 `observers` will be removed */\ntype SubjectRxJS6<T> = Subject<T> & {observers: Array<Observer<T>>};\n\nexport function tuiIsObserved<T>(observable: Subject<T>): boolean {\n return `observed` in observable\n ? (observable as SubjectRxJS7plus<T>).observed\n : !!(observable as SubjectRxJS6<T>)?.observers?.length;\n}\n","import {QueryList} from '@angular/core';\nimport {tuiGetOriginalArrayFromQueryList} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {Observable} from 'rxjs';\nimport {map, startWith} from 'rxjs/operators';\n\n/**\n * Converts changes observable of a QueryList to an Observable of arrays\n */\nexport function tuiQueryListChanges<T>(\n queryList: QueryList<T>,\n): Observable<readonly T[]> {\n return queryList.changes.pipe(\n startWith(null),\n map(() => tuiGetOriginalArrayFromQueryList(queryList)),\n );\n}\n\n/**\n * @deprecated An alias, use {@link tuiQueryListChanges} instead\n */\nexport const tuiItemsQueryListObservable = tuiQueryListChanges;\n","import {TuiValuePresentException} from '@taiga-ui/cdk/exceptions';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {OperatorFunction} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nexport function tuiMustBePresent<T>(): OperatorFunction<T | null | undefined, T> {\n return map(value => {\n if (!tuiIsPresent(value)) {\n throw new TuiValuePresentException();\n }\n\n return value;\n });\n}\n","import {ALWAYS_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {Observable} from 'rxjs';\nimport {filter, map, startWith, switchMap, take} from 'rxjs/operators';\n\nimport {tuiMouseDragFinishFrom} from './mouse-drag-finish-from';\nimport {tuiTypedFromEvent} from './typed-from-event';\n\nexport interface TuiPressedObservableOptions {\n onlyTrusted: boolean;\n}\n\nexport function tuiPressedObservable(\n element: Element,\n {onlyTrusted}: TuiPressedObservableOptions = {onlyTrusted: true},\n): Observable<boolean> {\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n return tuiTypedFromEvent(element, `mousedown`).pipe(\n filter(({isTrusted}) => isTrusted || !onlyTrusted),\n switchMap(() =>\n tuiMouseDragFinishFrom(ownerDocument).pipe(\n map(ALWAYS_FALSE_HANDLER),\n take(1),\n startWith(true),\n ),\n ),\n );\n}\n","import {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function tuiPreventDefault<T extends Event>(): MonoTypeOperatorFunction<T> {\n return tap(event => event.preventDefault());\n}\n","import {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function tuiStopPropagation<T extends Event>(): MonoTypeOperatorFunction<T> {\n return tap(e => {\n e.stopPropagation();\n });\n}\n","import {ChangeDetectorRef} from '@angular/core';\nimport {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function tuiWatch<T>(\n changeDetectorRef: ChangeDetectorRef,\n): MonoTypeOperatorFunction<T> {\n return tap(() => {\n changeDetectorRef.markForCheck();\n });\n}\n","import {NgZone} from '@angular/core';\nimport {MonoTypeOperatorFunction, Observable, pipe} from 'rxjs';\n\nexport function tuiZonefull<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return source =>\n new Observable(subscriber =>\n source.subscribe({\n next: value => ngZone.run(() => subscriber.next(value)),\n error: (error: unknown) => ngZone.run(() => subscriber.error(error)),\n complete: () => ngZone.run(() => subscriber.complete()),\n }),\n );\n}\n\nexport function tuiZonefree<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return source =>\n new Observable(subscriber =>\n ngZone.runOutsideAngular(() => source.subscribe(subscriber)),\n );\n}\n\nexport function tuiZoneOptimized<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return pipe(tuiZonefree(ngZone), tuiZonefull(ngZone));\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-cdk-observables.js","sources":["../../../projects/cdk/observables/control-value.ts","../../../projects/cdk/observables/typed-from-event.ts","../../../projects/cdk/observables/mouse-drag-finish-from.ts","../../../projects/cdk/observables/drag-and-drop-from.ts","../../../projects/cdk/observables/is-alive.ts","../../../projects/cdk/observables/focus-visible-observable.ts","../../../projects/cdk/observables/if-map.ts","../../../projects/cdk/observables/is-observed.ts","../../../projects/cdk/observables/items-query-list-observable.ts","../../../projects/cdk/observables/must-be-present.ts","../../../projects/cdk/observables/pressed-observable.ts","../../../projects/cdk/observables/prevent-default.ts","../../../projects/cdk/observables/stop-propagation.ts","../../../projects/cdk/observables/watch.ts","../../../projects/cdk/observables/zone-free.ts","../../../projects/cdk/observables/taiga-ui-cdk-observables.ts"],"sourcesContent":["import {AbstractControl, AbstractControlDirective} from '@angular/forms';\nimport {TuiValueChangesException} from '@taiga-ui/cdk/exceptions';\nimport {Observable} from 'rxjs';\nimport {startWith} from 'rxjs/operators';\n\n/**\n * Turns AbstractControl/Abstract-control-directive valueChanges into ReplaySubject(1)\n */\nexport function tuiControlValue<T>(\n control: AbstractControl | AbstractControlDirective,\n): Observable<T> {\n return new Observable(subscriber => {\n if (!control.valueChanges) {\n throw new TuiValueChangesException();\n }\n\n control.valueChanges.pipe(startWith(control.value)).subscribe(subscriber);\n });\n}\n","import {TuiEventWith, TuiTypedEventTarget} from '@taiga-ui/cdk/types';\nimport {fromEvent, Observable} from 'rxjs';\n\nexport function tuiTypedFromEvent<E extends keyof WindowEventMap>(\n target: Window,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<WindowEventMap[E], typeof target>>;\n\nexport function tuiTypedFromEvent<E extends keyof DocumentEventMap>(\n target: Document,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<DocumentEventMap[E], typeof target>>;\n\nexport function tuiTypedFromEvent<T extends Element, E extends keyof HTMLElementEventMap>(\n target: T,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<HTMLElementEventMap[E], typeof target>>;\n\nexport function tuiTypedFromEvent<\n E extends Event,\n T extends TuiTypedEventTarget<TuiEventWith<E, T>>,\n>(\n target: T,\n event: string,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<E, T>>;\n\nexport function tuiTypedFromEvent<E extends Event>(\n target: TuiTypedEventTarget<E>,\n event: string,\n options?: AddEventListenerOptions,\n): Observable<E>;\n\nexport function tuiTypedFromEvent<E extends Event>(\n target: TuiTypedEventTarget<E>,\n event: string,\n options: AddEventListenerOptions = {},\n): Observable<E> {\n /**\n * @note:\n * in RxJS 7 type signature `TuiTypedEventTarget<E>` !== `HasEventTargetAddRemove<E>`\n */\n return fromEvent<E>(target as any, event, options) as unknown as Observable<E>;\n}\n","import {TuiEventWith, TuiTypedEventTarget} from '@taiga-ui/cdk/types';\nimport {merge, Observable} from 'rxjs';\n\nimport {tuiTypedFromEvent} from './typed-from-event';\n\n/**\n * Letting go of the mouse after it was pressed\n * @param target\n */\nexport function tuiMouseDragFinishFrom<\n T extends TuiTypedEventTarget<TuiEventWith<DragEvent, T>>,\n>(target: Exclude<T, null>): Observable<TuiEventWith<MouseEvent, T>> {\n return merge(\n tuiTypedFromEvent(target, `mouseup`),\n tuiTypedFromEvent(target, `dragend`),\n );\n}\n","import {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {concat, merge, Observable} from 'rxjs';\nimport {endWith, map, repeat, take, takeWhile} from 'rxjs/operators';\n\nimport {tuiMouseDragFinishFrom} from './mouse-drag-finish-from';\nimport {tuiTypedFromEvent} from './typed-from-event';\n\nexport const enum TuiDragStage {\n Start,\n Continues,\n End,\n}\n\nexport class TuiDragState {\n constructor(readonly stage: TuiDragStage, readonly event: MouseEvent) {}\n}\n\nexport function tuiDragAndDropFrom(element: Element): Observable<TuiDragState> {\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n return concat(\n tuiTypedFromEvent(element, `mousedown`).pipe(\n take(1),\n map(event => new TuiDragState(TuiDragStage.Start, event)),\n ),\n merge(\n tuiTypedFromEvent(ownerDocument, `mousemove`).pipe(\n map(event => new TuiDragState(TuiDragStage.Continues, event)),\n ),\n tuiMouseDragFinishFrom(ownerDocument).pipe(\n take(1),\n map(event => new TuiDragState(TuiDragStage.End, event)),\n endWith(null),\n ),\n ).pipe(takeWhile(tuiIsPresent)),\n ).pipe(repeat());\n}\n","import {ALWAYS_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {OperatorFunction, pipe, timer} from 'rxjs';\nimport {distinctUntilChanged, map, startWith, switchMap} from 'rxjs/operators';\n\n/**\n * Operator to set lifespan after which current value is considered obsolete\n */\nexport function tuiIsAlive(lifespan: number = 0): OperatorFunction<unknown, boolean> {\n return pipe(\n switchMap(() => timer(lifespan).pipe(map(ALWAYS_FALSE_HANDLER), startWith(true))),\n distinctUntilChanged(),\n );\n}\n","import {ALWAYS_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {tuiIsFalsy} from '@taiga-ui/cdk/utils';\nimport {tuiIsNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {concat, merge, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n ignoreElements,\n map,\n repeat,\n shareReplay,\n startWith,\n switchMap,\n take,\n withLatestFrom,\n} from 'rxjs/operators';\n\nimport {tuiIsAlive} from './is-alive';\nimport {tuiTypedFromEvent} from './typed-from-event';\n\nlet documentMouseUpIsAlive$: Observable<boolean>;\nlet documentMouseDownIsAlive$: Observable<boolean>;\n\nexport function tuiFocusVisibleObservable(element: Element): Observable<boolean> {\n const elementBlur$ = tuiTypedFromEvent(element, `blur`);\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n if (!documentMouseDownIsAlive$ || !documentMouseUpIsAlive$) {\n documentMouseUpIsAlive$ = tuiTypedFromEvent(ownerDocument, `mouseup`, {\n capture: true,\n }).pipe(\n tuiIsAlive(),\n startWith(false),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n documentMouseDownIsAlive$ = tuiTypedFromEvent(ownerDocument, `mousedown`, {\n capture: true,\n }).pipe(\n tuiIsAlive(),\n startWith(false),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n }\n\n return merge(\n // focus events excluding ones that came right after mouse action\n concat(\n tuiTypedFromEvent(element, `focus`).pipe(take(1)),\n // filtering out blur events when element remains focused so that we ignore browser tab focus loss\n elementBlur$.pipe(\n filter(() => !tuiIsNativeFocused(element)),\n take(1),\n ignoreElements(),\n ),\n ).pipe(\n repeat(),\n withLatestFrom(\n documentMouseDownIsAlive$,\n documentMouseUpIsAlive$,\n (_event, elementActual, documentActual) =>\n elementActual || documentActual,\n ),\n filter(tuiIsFalsy),\n ),\n ).pipe(\n switchMap(() =>\n elementBlur$.pipe(map(ALWAYS_FALSE_HANDLER), take(1), startWith(true)),\n ),\n distinctUntilChanged(),\n );\n}\n","import {TuiBooleanHandler} from '@taiga-ui/cdk/types';\nimport {EMPTY, Observable, OperatorFunction, pipe} from 'rxjs';\nimport {switchMap} from 'rxjs/operators';\n\nexport function tuiIfMap<T, G>(\n project: (value: T) => Observable<G>,\n predicate: TuiBooleanHandler<T> = Boolean,\n): OperatorFunction<T, G> {\n return pipe(switchMap(value => (predicate(value) ? project(value) : EMPTY)));\n}\n","import {Observer, Subject} from 'rxjs';\n\n/* In RxJS 7 All subjects now have an observed property */\ntype SubjectRxJS7plus<T> = Subject<T> & {observed: boolean};\n\n/* In RxJS 8 `observers` will be removed */\ntype SubjectRxJS6<T> = Subject<T> & {observers: Array<Observer<T>>};\n\nexport function tuiIsObserved<T>(observable: Subject<T>): boolean {\n return `observed` in observable\n ? (observable as SubjectRxJS7plus<T>).observed\n : !!(observable as SubjectRxJS6<T>)?.observers?.length;\n}\n","import {QueryList} from '@angular/core';\nimport {tuiGetOriginalArrayFromQueryList} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {Observable} from 'rxjs';\nimport {map, startWith} from 'rxjs/operators';\n\n/**\n * Converts changes observable of a QueryList to an Observable of arrays\n */\nexport function tuiQueryListChanges<T>(\n queryList: QueryList<T>,\n): Observable<readonly T[]> {\n return queryList.changes.pipe(\n startWith(null),\n map(() => tuiGetOriginalArrayFromQueryList(queryList)),\n );\n}\n\n/**\n * @deprecated An alias, use {@link tuiQueryListChanges} instead\n */\nexport const tuiItemsQueryListObservable = tuiQueryListChanges;\n","import {TuiValuePresentException} from '@taiga-ui/cdk/exceptions';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {OperatorFunction} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nexport function tuiMustBePresent<T>(): OperatorFunction<T | null | undefined, T> {\n return map(value => {\n if (!tuiIsPresent(value)) {\n throw new TuiValuePresentException();\n }\n\n return value;\n });\n}\n","import {ALWAYS_FALSE_HANDLER} from '@taiga-ui/cdk/constants';\nimport {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {Observable} from 'rxjs';\nimport {filter, map, startWith, switchMap, take} from 'rxjs/operators';\n\nimport {tuiMouseDragFinishFrom} from './mouse-drag-finish-from';\nimport {tuiTypedFromEvent} from './typed-from-event';\n\nexport interface TuiPressedObservableOptions {\n onlyTrusted: boolean;\n}\n\nexport function tuiPressedObservable(\n element: Element,\n {onlyTrusted}: TuiPressedObservableOptions = {onlyTrusted: true},\n): Observable<boolean> {\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n return tuiTypedFromEvent(element, `mousedown`).pipe(\n filter(({isTrusted}) => isTrusted || !onlyTrusted),\n switchMap(() =>\n tuiMouseDragFinishFrom(ownerDocument).pipe(\n map(ALWAYS_FALSE_HANDLER),\n take(1),\n startWith(true),\n ),\n ),\n );\n}\n","import {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function tuiPreventDefault<T extends Event>(): MonoTypeOperatorFunction<T> {\n return tap(event => event.preventDefault());\n}\n","import {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function tuiStopPropagation<T extends Event>(): MonoTypeOperatorFunction<T> {\n return tap(e => {\n e.stopPropagation();\n });\n}\n","import {ChangeDetectorRef} from '@angular/core';\nimport {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function tuiWatch<T>(\n changeDetectorRef: ChangeDetectorRef,\n): MonoTypeOperatorFunction<T> {\n return tap(() => {\n changeDetectorRef.markForCheck();\n });\n}\n","import {NgZone} from '@angular/core';\nimport {MonoTypeOperatorFunction, Observable, pipe} from 'rxjs';\n\nexport function tuiZonefull<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return source =>\n new Observable(subscriber =>\n source.subscribe({\n next: value => ngZone.run(() => subscriber.next(value)),\n error: (error: unknown) => ngZone.run(() => subscriber.error(error)),\n complete: () => ngZone.run(() => subscriber.complete()),\n }),\n );\n}\n\nexport function tuiZonefree<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return source =>\n new Observable(subscriber =>\n ngZone.runOutsideAngular(() => source.subscribe(subscriber)),\n );\n}\n\nexport function tuiZoneOptimized<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return pipe(tuiZonefree(ngZone), tuiZonefull(ngZone));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -54,6 +54,10 @@ function tuiGetSwipeDirection(deltaX, deltaY) {
54
54
  return deltaX > 0 ? `left` : `right`;
55
55
  }
56
56
 
57
+ function tuiIsFalsy(value) {
58
+ return !value;
59
+ }
60
+
57
61
  function tuiIsNumber(value) {
58
62
  // eslint-disable-next-line @taiga-ui/no-typeof
59
63
  return typeof value === `number`;
@@ -128,5 +132,5 @@ function tuiUniqBy(array, key) {
128
132
  * Generated bundle index. Do not edit.
129
133
  */
130
134
 
131
- export { tuiArrayRemove, tuiArrayShallowEquals, tuiArrayToggle, tuiDistanceBetweenTouches, tuiEaseInOutQuad, tuiFlatLength, tuiGetOriginalArrayFromQueryList, tuiGetSwipeDirection, tuiIsNumber, tuiIsObject, tuiIsPresent, tuiIsString, tuiMarkControlAsTouchedAndValidate, tuiNullableSame, tuiObjectFromEntries, tuiUniqBy };
135
+ export { tuiArrayRemove, tuiArrayShallowEquals, tuiArrayToggle, tuiDistanceBetweenTouches, tuiEaseInOutQuad, tuiFlatLength, tuiGetOriginalArrayFromQueryList, tuiGetSwipeDirection, tuiIsFalsy, tuiIsNumber, tuiIsObject, tuiIsPresent, tuiIsString, tuiMarkControlAsTouchedAndValidate, tuiNullableSame, tuiObjectFromEntries, tuiUniqBy };
132
136
  //# sourceMappingURL=taiga-ui-cdk-utils-miscellaneous.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-utils-miscellaneous.js","sources":["../../../projects/cdk/utils/miscellaneous/array-remove.ts","../../../projects/cdk/utils/miscellaneous/array-shallow-equals.ts","../../../projects/cdk/utils/miscellaneous/array-toggle.ts","../../../projects/cdk/utils/miscellaneous/distance-between-touches.ts","../../../projects/cdk/utils/miscellaneous/ease-in-out-quad.ts","../../../projects/cdk/utils/miscellaneous/flat-length.ts","../../../projects/cdk/utils/miscellaneous/get-original-array-from-query-list.ts","../../../projects/cdk/utils/miscellaneous/get-swipe-direction.ts","../../../projects/cdk/utils/miscellaneous/is-number.ts","../../../projects/cdk/utils/miscellaneous/is-object.ts","../../../projects/cdk/utils/miscellaneous/is-present.ts","../../../projects/cdk/utils/miscellaneous/is-string.ts","../../../projects/cdk/utils/miscellaneous/mark-control-as-touched-and-validate.ts","../../../projects/cdk/utils/miscellaneous/nullable-same.ts","../../../projects/cdk/utils/miscellaneous/object-from-entries.ts","../../../projects/cdk/utils/miscellaneous/uniq-by.ts","../../../projects/cdk/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.ts"],"sourcesContent":["export function tuiArrayRemove<T>(array: readonly T[], index: number): T[] {\n return array.slice(0, Math.max(index, 0)).concat(array.slice(Math.max(index + 1, 0)));\n}\n","export function tuiArrayShallowEquals<T>(a: readonly T[], b: readonly T[]): boolean {\n return a.length === b.length && a.every((item, index) => item === b[index]);\n}\n","import {tuiArrayRemove} from './array-remove';\n\nexport function tuiArrayToggle<T>(array: readonly T[], item: T): T[] {\n const index = array.indexOf(item);\n\n return index === -1 ? [...array, item] : tuiArrayRemove(array, index);\n}\n","export function tuiDistanceBetweenTouches({touches}: TouchEvent): number {\n return Math.hypot(\n touches[0].clientX - touches[1].clientX,\n touches[0].clientY - touches[1].clientY,\n );\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nexport function tuiEaseInOutQuad(t: number): number {\n tuiAssert.assert(\n t >= 0 && t <= 1,\n `Input must be between 0 and 1 inclusive but received `,\n t,\n );\n\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n","/**\n * Flattens two-dimensional array and calculates resulting length\n *\n * @param array twi dimensional array\n */\nexport function tuiFlatLength(array: ReadonlyArray<readonly unknown[]>): number {\n return array.reduce((count, section) => count + section.length, 0);\n}\n","import {QueryList} from '@angular/core';\n\n/**\n * Extracts original array from {@link QueryList} rather than\n * creating a copy like {@link QueryList.toArray} does.\n * @param queryList\n * @returns original array from {@link QueryList}.\n */\nexport function tuiGetOriginalArrayFromQueryList<T>(\n queryList: QueryList<T>,\n): readonly T[] {\n let array: readonly T[] = [];\n\n queryList.find((_item, _index, originalArray) => {\n array = originalArray;\n\n return true;\n });\n\n return array;\n}\n","import {TuiSwipeDirection} from '@taiga-ui/cdk/interfaces';\n\nexport function tuiGetSwipeDirection(deltaX: number, deltaY: number): TuiSwipeDirection {\n if (Math.abs(deltaY) > Math.abs(deltaX)) {\n return deltaY > 0 ? `top` : `bottom`;\n }\n\n return deltaX > 0 ? `left` : `right`;\n}\n","export function tuiIsNumber(value: unknown): value is number {\n // eslint-disable-next-line @taiga-ui/no-typeof\n return typeof value === `number`;\n}\n","export function tuiIsObject<T extends Record<string, any>>(\n value: unknown,\n): value is NonNullable<T> {\n // eslint-disable-next-line @taiga-ui/no-typeof\n return typeof value === `object` && !!value;\n}\n","export function tuiIsPresent<T>(value?: T | null): value is T {\n return value !== null && value !== undefined;\n}\n","export function tuiIsString(value: unknown): value is string {\n // eslint-disable-next-line @taiga-ui/no-typeof\n return typeof value === `string`;\n}\n","import {AbstractControl, FormArray, FormGroup} from '@angular/forms';\n\nexport function tuiMarkControlAsTouchedAndValidate(control: AbstractControl): void {\n if (control instanceof FormArray) {\n control.controls.forEach(nestedControl => {\n tuiMarkControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n if (control instanceof FormGroup) {\n Object.values(control.controls).forEach(nestedControl => {\n tuiMarkControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n control.markAsTouched();\n control.updateValueAndValidity();\n}\n","import {TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\n/**\n * Checks identity for nullable elements.\n *\n * @param a element a\n * @param b element b\n * @param handler called if both elements are not null\n * @return true if either both are null or they pass identity handler\n */\nexport function tuiNullableSame<T>(\n a: T | null,\n b: T | null,\n handler: TuiIdentityMatcher<T>,\n): boolean {\n if (a === null) {\n return b === null;\n }\n\n if (b === null) {\n return false;\n }\n\n return handler(a, b);\n}\n","/**\n * @deprecated use `Object.fromEntries` instead\n * (check browser support first https://caniuse.com/mdn-javascript_builtins_object_fromentries)\n * ___\n * TODO: after we bump Firefox to 63+ replace this function with `Object.fromEntries`.\n * TODO: Add `es2019.object` to `tsconfig.json` => `compilerOptions.lib`.\n *\n */\nexport function tuiObjectFromEntries<K extends number | string, V>(\n keyValuePairs: Array<[K, V]>,\n): Record<K, V> {\n return keyValuePairs.reduce(\n (obj, [key, val]) => ({...obj, [key]: val}),\n {} as Record<K, V>,\n );\n}\n","export function tuiUniqBy<T extends Record<string, any>>(\n array: readonly T[],\n key: keyof T,\n): readonly T[] {\n return Array.from(\n array\n .reduce(\n (map, item) => (map.has(item[key]) ? map : map.set(item[key], item)),\n new Map<T[keyof T], T>(),\n )\n .values(),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-utils-miscellaneous.js","sources":["../../../projects/cdk/utils/miscellaneous/array-remove.ts","../../../projects/cdk/utils/miscellaneous/array-shallow-equals.ts","../../../projects/cdk/utils/miscellaneous/array-toggle.ts","../../../projects/cdk/utils/miscellaneous/distance-between-touches.ts","../../../projects/cdk/utils/miscellaneous/ease-in-out-quad.ts","../../../projects/cdk/utils/miscellaneous/flat-length.ts","../../../projects/cdk/utils/miscellaneous/get-original-array-from-query-list.ts","../../../projects/cdk/utils/miscellaneous/get-swipe-direction.ts","../../../projects/cdk/utils/miscellaneous/is-falsy.ts","../../../projects/cdk/utils/miscellaneous/is-number.ts","../../../projects/cdk/utils/miscellaneous/is-object.ts","../../../projects/cdk/utils/miscellaneous/is-present.ts","../../../projects/cdk/utils/miscellaneous/is-string.ts","../../../projects/cdk/utils/miscellaneous/mark-control-as-touched-and-validate.ts","../../../projects/cdk/utils/miscellaneous/nullable-same.ts","../../../projects/cdk/utils/miscellaneous/object-from-entries.ts","../../../projects/cdk/utils/miscellaneous/uniq-by.ts","../../../projects/cdk/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.ts"],"sourcesContent":["export function tuiArrayRemove<T>(array: readonly T[], index: number): T[] {\n return array.slice(0, Math.max(index, 0)).concat(array.slice(Math.max(index + 1, 0)));\n}\n","export function tuiArrayShallowEquals<T>(a: readonly T[], b: readonly T[]): boolean {\n return a.length === b.length && a.every((item, index) => item === b[index]);\n}\n","import {tuiArrayRemove} from './array-remove';\n\nexport function tuiArrayToggle<T>(array: readonly T[], item: T): T[] {\n const index = array.indexOf(item);\n\n return index === -1 ? [...array, item] : tuiArrayRemove(array, index);\n}\n","export function tuiDistanceBetweenTouches({touches}: TouchEvent): number {\n return Math.hypot(\n touches[0].clientX - touches[1].clientX,\n touches[0].clientY - touches[1].clientY,\n );\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nexport function tuiEaseInOutQuad(t: number): number {\n tuiAssert.assert(\n t >= 0 && t <= 1,\n `Input must be between 0 and 1 inclusive but received `,\n t,\n );\n\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n}\n","/**\n * Flattens two-dimensional array and calculates resulting length\n *\n * @param array twi dimensional array\n */\nexport function tuiFlatLength(array: ReadonlyArray<readonly unknown[]>): number {\n return array.reduce((count, section) => count + section.length, 0);\n}\n","import {QueryList} from '@angular/core';\n\n/**\n * Extracts original array from {@link QueryList} rather than\n * creating a copy like {@link QueryList.toArray} does.\n * @param queryList\n * @returns original array from {@link QueryList}.\n */\nexport function tuiGetOriginalArrayFromQueryList<T>(\n queryList: QueryList<T>,\n): readonly T[] {\n let array: readonly T[] = [];\n\n queryList.find((_item, _index, originalArray) => {\n array = originalArray;\n\n return true;\n });\n\n return array;\n}\n","import {TuiSwipeDirection} from '@taiga-ui/cdk/interfaces';\n\nexport function tuiGetSwipeDirection(deltaX: number, deltaY: number): TuiSwipeDirection {\n if (Math.abs(deltaY) > Math.abs(deltaX)) {\n return deltaY > 0 ? `top` : `bottom`;\n }\n\n return deltaX > 0 ? `left` : `right`;\n}\n","export function tuiIsFalsy(value: unknown): boolean {\n return !value;\n}\n","export function tuiIsNumber(value: unknown): value is number {\n // eslint-disable-next-line @taiga-ui/no-typeof\n return typeof value === `number`;\n}\n","export function tuiIsObject<T extends Record<string, any>>(\n value: unknown,\n): value is NonNullable<T> {\n // eslint-disable-next-line @taiga-ui/no-typeof\n return typeof value === `object` && !!value;\n}\n","export function tuiIsPresent<T>(value?: T | null): value is T {\n return value !== null && value !== undefined;\n}\n","export function tuiIsString(value: unknown): value is string {\n // eslint-disable-next-line @taiga-ui/no-typeof\n return typeof value === `string`;\n}\n","import {AbstractControl, FormArray, FormGroup} from '@angular/forms';\n\nexport function tuiMarkControlAsTouchedAndValidate(control: AbstractControl): void {\n if (control instanceof FormArray) {\n control.controls.forEach(nestedControl => {\n tuiMarkControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n if (control instanceof FormGroup) {\n Object.values(control.controls).forEach(nestedControl => {\n tuiMarkControlAsTouchedAndValidate(nestedControl);\n });\n }\n\n control.markAsTouched();\n control.updateValueAndValidity();\n}\n","import {TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\n/**\n * Checks identity for nullable elements.\n *\n * @param a element a\n * @param b element b\n * @param handler called if both elements are not null\n * @return true if either both are null or they pass identity handler\n */\nexport function tuiNullableSame<T>(\n a: T | null,\n b: T | null,\n handler: TuiIdentityMatcher<T>,\n): boolean {\n if (a === null) {\n return b === null;\n }\n\n if (b === null) {\n return false;\n }\n\n return handler(a, b);\n}\n","/**\n * @deprecated use `Object.fromEntries` instead\n * (check browser support first https://caniuse.com/mdn-javascript_builtins_object_fromentries)\n * ___\n * TODO: after we bump Firefox to 63+ replace this function with `Object.fromEntries`.\n * TODO: Add `es2019.object` to `tsconfig.json` => `compilerOptions.lib`.\n *\n */\nexport function tuiObjectFromEntries<K extends number | string, V>(\n keyValuePairs: Array<[K, V]>,\n): Record<K, V> {\n return keyValuePairs.reduce(\n (obj, [key, val]) => ({...obj, [key]: val}),\n {} as Record<K, V>,\n );\n}\n","export function tuiUniqBy<T extends Record<string, any>>(\n array: readonly T[],\n key: keyof T,\n): readonly T[] {\n return Array.from(\n array\n .reduce(\n (map, item) => (map.has(item[key]) ? map : map.set(item[key], item)),\n new Map<T[keyof T], T>(),\n )\n .values(),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { TuiBooleanHandler } from '@taiga-ui/cdk/types';
2
+ import { Observable, OperatorFunction } from 'rxjs';
3
+ export declare function tuiIfMap<T, G>(project: (value: T) => Observable<G>, predicate?: TuiBooleanHandler<T>): OperatorFunction<T, G>;
@@ -1,6 +1,7 @@
1
1
  export * from './control-value';
2
2
  export * from './drag-and-drop-from';
3
3
  export * from './focus-visible-observable';
4
+ export * from './if-map';
4
5
  export * from './is-alive';
5
6
  export * from './is-observed';
6
7
  export * from './items-query-list-observable';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/cdk",
3
- "version": "3.20.0-dev.main-8c5d259",
3
+ "version": "3.21.0",
4
4
  "description": "Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance",
5
5
  "keywords": [
6
6
  "angular",
@@ -6,6 +6,7 @@ export * from './ease-in-out-quad';
6
6
  export * from './flat-length';
7
7
  export * from './get-original-array-from-query-list';
8
8
  export * from './get-swipe-direction';
9
+ export * from './is-falsy';
9
10
  export * from './is-number';
10
11
  export * from './is-object';
11
12
  export * from './is-present';
@@ -0,0 +1 @@
1
+ export declare function tuiIsFalsy(value: unknown): boolean;