@taiga-ui/core 3.21.0 → 3.22.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.
- package/bundles/taiga-ui-core-components-data-list.umd.js +7 -0
- package/bundles/taiga-ui-core-components-data-list.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-dialog.umd.js +1 -1
- package/bundles/taiga-ui-core-components-dialog.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js +4 -4
- package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js.map +1 -1
- package/bundles/taiga-ui-core-components-root.umd.js +1 -1
- package/bundles/taiga-ui-core-directives-dropdown.umd.js +15 -7
- package/bundles/taiga-ui-core-directives-dropdown.umd.js.map +1 -1
- package/bundles/taiga-ui-core-directives-hint.umd.js +14 -6
- package/bundles/taiga-ui-core-directives-hint.umd.js.map +1 -1
- package/bundles/taiga-ui-core-services.umd.js +35 -0
- package/bundles/taiga-ui-core-services.umd.js.map +1 -1
- package/bundles/taiga-ui-core-utils-format.umd.js +20 -9
- package/bundles/taiga-ui-core-utils-format.umd.js.map +1 -1
- package/bundles/taiga-ui-core-utils-mask.umd.js +1 -1
- package/bundles/taiga-ui-core-utils-mask.umd.js.map +1 -1
- package/bundles/taiga-ui-core-utils-miscellaneous.umd.js +1 -1
- package/bundles/taiga-ui-core-utils-miscellaneous.umd.js.map +1 -1
- package/components/data-list/data-list.directive.d.ts +2 -0
- package/directives/dropdown/dropdown.component.d.ts +3 -2
- package/directives/hint/hint.component.d.ts +4 -2
- package/esm2015/components/data-list/data-list.directive.js +7 -1
- package/esm2015/components/dialog/dialog.component.js +2 -2
- package/esm2015/components/hosted-dropdown/hosted-dropdown.component.js +5 -4
- package/esm2015/components/root/root.component.js +1 -1
- package/esm2015/directives/dropdown/dropdown.component.js +14 -6
- package/esm2015/directives/hint/hint-manual.directive.js +3 -3
- package/esm2015/directives/hint/hint.component.js +17 -8
- package/esm2015/services/index.js +2 -1
- package/esm2015/services/visual-viewport.service.js +35 -0
- package/esm2015/utils/format/format-phone.js +4 -4
- package/esm2015/utils/mask/create-number-mask.js +2 -2
- package/esm2015/utils/miscellaneous/icons-path-factory.js +2 -2
- package/fesm2015/taiga-ui-core-components-data-list.js +7 -1
- package/fesm2015/taiga-ui-core-components-data-list.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-dialog.js +1 -1
- package/fesm2015/taiga-ui-core-components-dialog.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-hosted-dropdown.js +4 -3
- package/fesm2015/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
- package/fesm2015/taiga-ui-core-components-root.js +1 -1
- package/fesm2015/taiga-ui-core-directives-dropdown.js +13 -5
- package/fesm2015/taiga-ui-core-directives-dropdown.js.map +1 -1
- package/fesm2015/taiga-ui-core-directives-hint.js +16 -8
- package/fesm2015/taiga-ui-core-directives-hint.js.map +1 -1
- package/fesm2015/taiga-ui-core-services.js +33 -2
- package/fesm2015/taiga-ui-core-services.js.map +1 -1
- package/fesm2015/taiga-ui-core-utils-format.js +3 -3
- package/fesm2015/taiga-ui-core-utils-format.js.map +1 -1
- package/fesm2015/taiga-ui-core-utils-mask.js +1 -1
- package/fesm2015/taiga-ui-core-utils-mask.js.map +1 -1
- package/fesm2015/taiga-ui-core-utils-miscellaneous.js +1 -1
- package/fesm2015/taiga-ui-core-utils-miscellaneous.js.map +1 -1
- package/package.json +4 -4
- package/services/index.d.ts +1 -0
- package/services/visual-viewport.service.d.ts +10 -0
- package/styles/theme/variables.less +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-directives-hint.js","sources":["../../../projects/core/directives/hint/hint.providers.ts","../../../projects/core/directives/hint/hint-options.directive.ts","../../../projects/core/directives/hint/hint.directive.ts","../../../projects/core/directives/hint/hint-hover.directive.ts","../../../projects/core/directives/hint/hint-pointer.directive.ts","../../../projects/core/directives/hint/hint.component.ts","../../../projects/core/directives/hint/hint-describe.directive.ts","../../../projects/core/directives/hint/hint-driver.directive.ts","../../../projects/core/directives/hint/hint-host.directive.ts","../../../projects/core/directives/hint/hint-manual.directive.ts","../../../projects/core/directives/hint/hint-position.directive.ts","../../../projects/core/directives/hint/hint.module.ts","../../../projects/core/directives/hint/taiga-ui-core-directives-hint.ts"],"sourcesContent":["import {InjectionToken, Type} from '@angular/core';\n\n// eslint-disable-next-line import/no-cycle\nimport {TuiHintComponent} from './hint.component';\n\n/**\n * A component to display a hint\n */\nexport const TUI_HINT_COMPONENT = new InjectionToken<Type<unknown>>(\n `[TUI_HINT_COMPONENT]`,\n {\n factory: () => TuiHintComponent,\n },\n);\n","import {\n Directive,\n FactoryProvider,\n forwardRef,\n Inject,\n InjectionToken,\n Input,\n Optional,\n SkipSelf,\n} from '@angular/core';\nimport {AbstractTuiController, tuiDefaultProp} from '@taiga-ui/cdk';\nimport {TuiHintDirection} from '@taiga-ui/core/types';\nimport {tuiOverrideOptions} from '@taiga-ui/core/utils';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface TuiHintOptions {\n readonly direction: TuiHintDirection;\n readonly showDelay: number;\n readonly hideDelay: number;\n readonly appearance: string;\n readonly icon: PolymorpheusContent;\n}\n\n/** Default values for hint options */\nexport const TUI_HINT_DEFAULT_OPTIONS: TuiHintOptions = {\n direction: 'bottom-left',\n showDelay: 500,\n hideDelay: 200,\n appearance: '',\n icon: 'tuiIconHelpCircle',\n};\n\n/**\n * Default parameters for hint directive\n */\nexport const TUI_HINT_OPTIONS = new InjectionToken<TuiHintOptions>('[TUI_HINT_OPTIONS]', {\n factory: () => TUI_HINT_DEFAULT_OPTIONS,\n});\n\nexport const tuiHintOptionsProvider: (\n options: Partial<TuiHintOptions>,\n) => FactoryProvider = (override: Partial<TuiHintOptions>) => ({\n provide: TUI_HINT_OPTIONS,\n deps: [\n [new Optional(), TuiHintOptionsDirective],\n [new SkipSelf(), TUI_HINT_OPTIONS],\n ],\n useFactory: tuiOverrideOptions(override),\n});\n\n@Directive({\n selector: '[tuiHintContent]',\n providers: [\n {\n provide: TUI_HINT_OPTIONS,\n useExisting: forwardRef(() => TuiHintOptionsDirective),\n },\n ],\n})\nexport class TuiHintOptionsDirective\n extends AbstractTuiController\n implements TuiHintOptions\n{\n @Input('tuiHintContent')\n @tuiDefaultProp()\n content: PolymorpheusContent = '';\n\n @Input('tuiHintDirection')\n @tuiDefaultProp()\n direction = this.options.direction;\n\n @Input('tuiHintAppearance')\n @tuiDefaultProp()\n appearance = this.options.appearance;\n\n @Input('tuiHintShowDelay')\n @tuiDefaultProp()\n showDelay = this.options.showDelay;\n\n @Input('tuiHintHideDelay')\n @tuiDefaultProp()\n hideDelay = this.options.hideDelay;\n\n icon = this.options.icon;\n\n constructor(\n @SkipSelf() @Inject(TUI_HINT_OPTIONS) protected readonly options: TuiHintOptions,\n ) {\n super();\n }\n}\n","import {\n Directive,\n ElementRef,\n Inject,\n INJECTOR,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n} from '@angular/core';\nimport {TuiActiveZoneDirective, tuiDefaultProp} from '@taiga-ui/cdk';\nimport {\n tuiAsRectAccessor,\n tuiAsVehicle,\n TuiRectAccessor,\n TuiVehicle,\n} from '@taiga-ui/core/abstract';\nimport {TuiPortalItem} from '@taiga-ui/core/interfaces';\nimport {TuiHintService} from '@taiga-ui/core/services';\nimport {PolymorpheusComponent, PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\n// eslint-disable-next-line import/no-cycle\nimport {TUI_HINT_COMPONENT} from './hint.providers';\nimport {TUI_HINT_OPTIONS, TuiHintOptions} from './hint-options.directive';\n\n@Directive({\n selector: '[tuiHint]:not(ng-container)',\n providers: [\n tuiAsRectAccessor(TuiHintDirective),\n tuiAsVehicle(TuiHintDirective),\n {\n provide: PolymorpheusComponent,\n deps: [TUI_HINT_COMPONENT, INJECTOR],\n useClass: PolymorpheusComponent,\n },\n ],\n})\nexport class TuiHintDirective<C>\n implements OnDestroy, OnChanges, TuiPortalItem<C>, TuiRectAccessor, TuiVehicle\n{\n @Input('tuiHint')\n @tuiDefaultProp()\n content: PolymorpheusContent<C> = '';\n\n @Input('tuiHintContext')\n context?: C;\n\n @Input()\n @tuiDefaultProp()\n tuiHintAppearance: string | null = null;\n\n readonly type = 'hint';\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(PolymorpheusComponent)\n readonly component: PolymorpheusComponent<unknown, any>,\n @Inject(TuiHintService) private readonly hintService: TuiHintService,\n @Inject(TUI_HINT_OPTIONS) private readonly options: TuiHintOptions,\n @Optional()\n @Inject(TuiActiveZoneDirective)\n readonly activeZone?: TuiActiveZoneDirective | null,\n ) {}\n\n get appearance(): string {\n return this.tuiHintAppearance ?? this.options.appearance;\n }\n\n ngOnChanges(): void {\n if (!this.content) {\n this.toggle(false);\n }\n }\n\n ngOnDestroy(): void {\n this.toggle(false);\n }\n\n getClientRect(): ClientRect {\n return this.elementRef.nativeElement.getBoundingClientRect();\n }\n\n toggle(show: boolean): void {\n if (show && this.content) {\n this.hintService.add(this);\n } else {\n this.hintService.remove(this);\n }\n }\n}\n","/* eslint-disable rxjs/no-unsafe-takeuntil */\nimport {Directive, ElementRef, Inject, Input} from '@angular/core';\nimport {tuiDefaultProp, TuiHoveredService} from '@taiga-ui/cdk';\nimport {tuiAsDriver, TuiDriver} from '@taiga-ui/core/abstract';\nimport {merge, Observable, of, Subject} from 'rxjs';\nimport {delay, filter, repeat, switchMap, takeUntil} from 'rxjs/operators';\n\nimport {TUI_HINT_OPTIONS, TuiHintOptions} from './hint-options.directive';\n\n@Directive({\n selector: '[tuiHint]:not(ng-container)',\n exportAs: 'tuiHintHover',\n providers: [tuiAsDriver(TuiHintHoverDirective), TuiHoveredService],\n})\nexport class TuiHintHoverDirective extends TuiDriver {\n private readonly toggle$ = new Subject<boolean>();\n private readonly stream$ = merge(\n this.toggle$.pipe(\n switchMap(visible => of(visible).pipe(delay(visible ? 0 : this.hideDelay))),\n takeUntil(this.hovered$),\n repeat(),\n ),\n this.hovered$.pipe(\n switchMap(visible =>\n of(visible).pipe(delay(visible ? this.showDelay : this.hideDelay)),\n ),\n takeUntil(this.toggle$),\n repeat(),\n ),\n ).pipe(filter(() => this.enabled));\n\n @Input('tuiHintShowDelay')\n @tuiDefaultProp()\n showDelay: TuiHintOptions['showDelay'] = this.options.showDelay;\n\n @Input('tuiHintHideDelay')\n @tuiDefaultProp()\n hideDelay: TuiHintOptions['hideDelay'] = this.options.hideDelay;\n\n readonly type = 'hint';\n\n enabled = true;\n\n constructor(\n @Inject(TuiHoveredService) private readonly hovered$: Observable<boolean>,\n @Inject(TUI_HINT_OPTIONS) private readonly options: TuiHintOptions,\n @Inject(ElementRef) readonly elementRef: ElementRef<HTMLElement>,\n ) {\n super(subscriber => this.stream$.subscribe(subscriber));\n }\n\n toggle(visible: boolean): void {\n this.toggle$.next(visible);\n }\n}\n","import {Directive, HostListener} from '@angular/core';\nimport {EMPTY_CLIENT_RECT, tuiPointToClientRect} from '@taiga-ui/cdk';\nimport {tuiAsDriver, tuiAsRectAccessor, TuiRectAccessor} from '@taiga-ui/core/abstract';\n\nimport {TuiHintHoverDirective} from './hint-hover.directive';\n\n@Directive({\n selector: '[tuiHint][tuiHintPointer]',\n providers: [\n tuiAsRectAccessor(TuiHintPointerDirective),\n tuiAsDriver(TuiHintPointerDirective),\n ],\n})\nexport class TuiHintPointerDirective\n extends TuiHintHoverDirective\n implements TuiRectAccessor\n{\n private currentRect = EMPTY_CLIENT_RECT;\n\n @HostListener('mousemove.silent', ['$event'])\n onMove({clientX, clientY}: MouseEvent): void {\n this.currentRect = tuiPointToClientRect(clientX, clientY);\n }\n\n getClientRect(): ClientRect {\n return this.currentRect;\n }\n}\n","import {AnimationOptions} from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n Optional,\n Self,\n} from '@angular/core';\nimport {\n tuiClamp,\n TuiContextWithImplicit,\n TuiDestroyService,\n TuiHoveredService,\n tuiPure,\n tuiPx,\n} from '@taiga-ui/cdk';\nimport {\n tuiPositionAccessorFor,\n TuiRectAccessor,\n tuiRectAccessorFor,\n} from '@taiga-ui/core/abstract';\nimport {tuiFadeIn} from '@taiga-ui/core/animations';\nimport {TuiModeDirective} from '@taiga-ui/core/directives/mode';\nimport {TuiPortalItem} from '@taiga-ui/core/interfaces';\nimport {TuiPositionService} from '@taiga-ui/core/services';\nimport {TUI_ANIMATION_OPTIONS} from '@taiga-ui/core/tokens';\nimport {TuiPoint} from '@taiga-ui/core/types';\nimport {POLYMORPHEUS_CONTEXT, PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\n// eslint-disable-next-line import/no-cycle\nimport {TuiHintDirective} from './hint.directive';\nimport {TuiHintHoverDirective} from './hint-hover.directive';\nimport {TuiHintPointerDirective} from './hint-pointer.directive';\n\n@Component({\n selector: 'tui-hint',\n template: `\n <ng-container *polymorpheusOutlet=\"content as text; context: context\">\n {{ text }}\n </ng-container>\n `,\n styleUrls: ['./hint.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n TuiDestroyService,\n TuiPositionService,\n TuiHoveredService,\n tuiPositionAccessorFor('hint'),\n tuiRectAccessorFor('hint', TuiHintDirective),\n ],\n animations: [tuiFadeIn],\n})\nexport class TuiHintComponent<C = any> {\n @HostBinding('@tuiFadeIn')\n readonly animation = {value: '', ...this.options} as const;\n\n @HostBinding('attr.data-appearance')\n readonly appearance = this.polymorpheus.$implicit.appearance || this.mode?.mode;\n\n @HostBinding('class._untouchable')\n readonly untouchable = !!this.pointer;\n\n constructor(\n @Inject(TuiHoveredService) hovered$: Observable<boolean>,\n @Inject(TuiPositionService) position$: Observable<TuiPoint>,\n @Self() @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(TuiRectAccessor) protected readonly accessor: TuiRectAccessor,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TUI_ANIMATION_OPTIONS) private readonly options: AnimationOptions,\n @Inject(POLYMORPHEUS_CONTEXT)\n private readonly polymorpheus: TuiContextWithImplicit<TuiPortalItem<C>>,\n @Inject(TuiHintHoverDirective) private readonly hover: TuiHintHoverDirective,\n @Optional() @Inject(TuiHintPointerDirective) private readonly pointer: unknown,\n @Optional()\n @Inject(TuiModeDirective)\n private readonly mode: TuiModeDirective | null,\n ) {\n position$.pipe(takeUntil(destroy$)).subscribe(([top, left]) => {\n this.update(top, left);\n });\n\n hovered$.pipe(takeUntil(destroy$)).subscribe(hover => this.hover.toggle(hover));\n }\n\n get content(): PolymorpheusContent<C> {\n return this.polymorpheus.$implicit.content;\n }\n\n get context(): C | undefined {\n return this.polymorpheus.$implicit.context;\n }\n\n @HostListener('document:click', ['$event.target'])\n onClick(target: HTMLElement): void {\n if (\n !this.elementRef.nativeElement.contains(target) &&\n !this.hover.elementRef.nativeElement.contains(target)\n ) {\n this.hover.toggle(false);\n }\n }\n\n @tuiPure\n private update(top: number, left: number): void {\n const {nativeElement} = this.elementRef;\n const {height, width} = nativeElement.getBoundingClientRect();\n const {style} = nativeElement;\n const rect = this.accessor.getClientRect();\n const safeLeft = Math.max(left, 4);\n const beakTop = rect.top + rect.height / 2 - top;\n const beakLeft = rect.left + rect.width / 2 - safeLeft;\n\n style.top = tuiPx(top);\n style.left = tuiPx(safeLeft);\n style.setProperty('--top', tuiPx(tuiClamp(beakTop, 0.5, height - 1)));\n style.setProperty('--left', tuiPx(tuiClamp(beakLeft, 0.5, width - 1)));\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Directive, ElementRef, Inject, Input, NgZone} from '@angular/core';\nimport {\n tuiIsNativeFocused,\n tuiPure,\n tuiTypedFromEvent,\n tuiZoneOptimized,\n} from '@taiga-ui/cdk';\nimport {tuiAsDriver, TuiDriver} from '@taiga-ui/core/abstract';\nimport {merge, of, timer} from 'rxjs';\nimport {\n debounce,\n distinctUntilChanged,\n map,\n skip,\n startWith,\n switchMap,\n} from 'rxjs/operators';\n\n@Directive({\n selector: '[tuiHintDescribe]',\n providers: [tuiAsDriver(TuiHintDescribeDirective)],\n})\nexport class TuiHintDescribeDirective extends TuiDriver {\n private readonly stream$ = tuiTypedFromEvent(this.documentRef, 'keydown', {\n capture: true,\n }).pipe(\n switchMap(() =>\n this.focused\n ? of(false)\n : merge(\n tuiTypedFromEvent(this.documentRef, 'keyup'),\n tuiTypedFromEvent(this.element, 'blur'),\n ).pipe(map(() => this.focused)),\n ),\n debounce(visible => (visible ? timer(1000) : of(null))),\n startWith(false),\n distinctUntilChanged(),\n skip(1),\n tuiZoneOptimized(this.ngZone),\n );\n\n @Input()\n tuiHintDescribe: string | '' = '';\n\n readonly type = 'hint';\n\n constructor(\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n ) {\n super(subscriber => this.stream$.subscribe(subscriber));\n }\n\n private get focused(): boolean {\n return tuiIsNativeFocused(this.element);\n }\n\n @tuiPure\n private get element(): HTMLElement {\n return (\n this.documentRef.getElementById(this.tuiHintDescribe) ||\n this.elementRef.nativeElement\n );\n }\n}\n","import {Directive, Inject, Self} from '@angular/core';\nimport {TuiDestroyService} from '@taiga-ui/cdk';\nimport {AbstractTuiDriverDirective, TuiDriver, TuiVehicle} from '@taiga-ui/core/abstract';\nimport {Observable} from 'rxjs';\n\n@Directive({\n selector: '[tuiHint]',\n providers: [TuiDestroyService],\n})\nexport class TuiHintDriverDirective extends AbstractTuiDriverDirective {\n readonly type = 'hint';\n\n // TODO: Figure out why this is necessary under nx test runner\n constructor(\n @Self() @Inject(TuiDestroyService) destroy$: Observable<unknown>,\n @Inject(TuiDriver) drivers: TuiDriver[],\n @Inject(TuiVehicle) vehicles: TuiVehicle[],\n ) {\n super(destroy$, drivers, vehicles);\n }\n}\n","import {Directive, Input} from '@angular/core';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk';\nimport {tuiAsRectAccessor, TuiRectAccessor} from '@taiga-ui/core/abstract';\n\n@Directive({\n selector: '[tuiHint][tuiHintHost]',\n providers: [tuiAsRectAccessor(TuiHintHostDirective)],\n})\nexport class TuiHintHostDirective extends TuiRectAccessor {\n @Input()\n tuiHintHost?: HTMLElement;\n\n readonly type = 'hint';\n\n getClientRect(): ClientRect {\n return this.tuiHintHost?.getBoundingClientRect() || EMPTY_CLIENT_RECT;\n }\n}\n","import {Directive, Inject, Input, OnChanges} from '@angular/core';\nimport {tuiAsDriver, TuiDriver} from '@taiga-ui/core/abstract';\nimport {Subject} from 'rxjs';\n\nimport {TuiHintHoverDirective} from './hint-hover.directive';\n\n@Directive({\n selector: '[tuiHint][tuiHintManual]',\n providers: [tuiAsDriver(TuiHintManualDirective)],\n})\nexport class TuiHintManualDirective extends TuiDriver implements OnChanges {\n private readonly stream$ = new Subject<boolean>();\n\n @Input()\n tuiHintManual = false;\n\n readonly type = 'hint';\n\n constructor(@Inject(TuiHintHoverDirective) hover: TuiHintHoverDirective) {\n super(subscriber => this.stream$.subscribe(subscriber));\n hover.enabled = false;\n }\n\n ngOnChanges(): void {\n this.stream$.next(this.tuiHintManual);\n }\n}\n","import {Directive, Inject, Input} from '@angular/core';\nimport {EMPTY_CLIENT_RECT, tuiDefaultProp, tuiPure} from '@taiga-ui/cdk';\nimport {\n tuiAsPositionAccessor,\n tuiFallbackRectAccessor,\n TuiPositionAccessor,\n TuiRectAccessor,\n} from '@taiga-ui/core/abstract';\nimport {TUI_HINT_DIRECTIONS} from '@taiga-ui/core/constants';\nimport {TUI_VIEWPORT} from '@taiga-ui/core/tokens';\nimport {TuiHintDirection, TuiPoint} from '@taiga-ui/core/types';\n\nimport {TuiHintDirective} from './hint.directive';\nimport {TUI_HINT_OPTIONS, TuiHintOptions} from './hint-options.directive';\n\nconst OFFSET = 8;\nconst ARROW_OFFSET = 22;\nconst TOP = 0;\nconst LEFT = 1;\n\n@Directive({\n selector: '[tuiHint]:not([tuiHintCustomPosition])',\n providers: [tuiAsPositionAccessor(TuiHintPositionDirective)],\n})\nexport class TuiHintPositionDirective extends TuiPositionAccessor {\n private readonly points: Record<TuiHintDirection, [number, number]> =\n TUI_HINT_DIRECTIONS.reduce(\n (acc, direction) => ({...acc, [direction]: [0, 0]}),\n {} as any,\n );\n\n @Input('tuiHintDirection')\n @tuiDefaultProp()\n direction: TuiHintOptions['direction'] = this.options.direction;\n\n readonly type = 'hint';\n\n constructor(\n @Inject(TUI_HINT_OPTIONS) private readonly options: TuiHintOptions,\n @Inject(TUI_VIEWPORT) private readonly viewport: TuiRectAccessor,\n @Inject(TuiHintDirective) private readonly directive: TuiRectAccessor,\n @Inject(TuiRectAccessor) private readonly accessors: readonly TuiRectAccessor[],\n ) {\n super();\n }\n\n // eslint-disable-next-line max-statements\n getPosition({width, height}: ClientRect): TuiPoint {\n const hostRect = this.accessor?.getClientRect() ?? EMPTY_CLIENT_RECT;\n const leftCenter = hostRect.left + hostRect.width / 2;\n const topCenter = hostRect.top + hostRect.height / 2;\n\n this.points['top-left'][TOP] = hostRect.top - height - OFFSET;\n this.points['top-left'][LEFT] = leftCenter - width + ARROW_OFFSET;\n this.points.top[TOP] = this.points['top-left'][TOP];\n this.points.top[LEFT] = leftCenter - width / 2;\n this.points['top-right'][TOP] = this.points['top-left'][TOP];\n this.points['top-right'][LEFT] = leftCenter - ARROW_OFFSET;\n\n this.points['bottom-left'][TOP] = hostRect.bottom + OFFSET;\n this.points['bottom-left'][LEFT] = this.points['top-left'][LEFT];\n this.points.bottom[TOP] = this.points['bottom-left'][TOP];\n this.points.bottom[LEFT] = this.points.top[LEFT];\n this.points['bottom-right'][TOP] = this.points['bottom-left'][TOP];\n this.points['bottom-right'][LEFT] = this.points['top-right'][LEFT];\n\n this.points['left-top'][TOP] = topCenter - height + ARROW_OFFSET;\n this.points['left-top'][LEFT] = hostRect.left - width - OFFSET;\n this.points.left[TOP] = topCenter - height / 2;\n this.points.left[LEFT] = this.points['left-top'][LEFT];\n this.points['left-bottom'][TOP] = topCenter - ARROW_OFFSET;\n this.points['left-bottom'][LEFT] = this.points['left-top'][LEFT];\n\n this.points['right-top'][TOP] = this.points['left-top'][TOP];\n this.points['right-top'][LEFT] = hostRect.right + OFFSET;\n this.points.right[TOP] = this.points.left[TOP];\n this.points.right[LEFT] = this.points['right-top'][LEFT];\n this.points['right-bottom'][TOP] = this.points['left-bottom'][TOP];\n this.points['right-bottom'][LEFT] = this.points['right-top'][LEFT];\n\n if (this.checkPosition(this.points[this.direction], width, height)) {\n return this.points[this.direction];\n }\n\n const direction = TUI_HINT_DIRECTIONS.find(direction =>\n this.checkPosition(this.points[direction], width, height),\n );\n\n return this.points[direction || this.fallback];\n }\n\n @tuiPure\n private get accessor(): TuiRectAccessor | undefined {\n return tuiFallbackRectAccessor('hint')(this.accessors, this.directive);\n }\n\n private get fallback(): TuiHintDirection {\n return this.points.top[TOP] >\n this.viewport.getClientRect().bottom - this.points.bottom[TOP]\n ? 'top'\n : 'bottom';\n }\n\n private checkPosition([top, left]: TuiPoint, width: number, height: number): boolean {\n const viewport = this.viewport.getClientRect();\n\n return (\n top > OFFSET &&\n left > OFFSET &&\n top + height < viewport.bottom - OFFSET &&\n left + width < viewport.right - OFFSET\n );\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiHintComponent} from './hint.component';\nimport {TuiHintDirective} from './hint.directive';\nimport {TuiHintDescribeDirective} from './hint-describe.directive';\nimport {TuiHintDriverDirective} from './hint-driver.directive';\nimport {TuiHintHostDirective} from './hint-host.directive';\nimport {TuiHintHoverDirective} from './hint-hover.directive';\nimport {TuiHintManualDirective} from './hint-manual.directive';\nimport {TuiHintOptionsDirective} from './hint-options.directive';\nimport {TuiHintPointerDirective} from './hint-pointer.directive';\nimport {TuiHintPositionDirective} from './hint-position.directive';\n\n@NgModule({\n imports: [CommonModule, PolymorpheusModule],\n declarations: [\n TuiHintComponent,\n TuiHintDirective,\n TuiHintDriverDirective,\n TuiHintHostDirective,\n TuiHintHoverDirective,\n TuiHintManualDirective,\n TuiHintPointerDirective,\n TuiHintDescribeDirective,\n TuiHintPositionDirective,\n TuiHintOptionsDirective,\n ],\n exports: [\n TuiHintComponent,\n TuiHintDirective,\n TuiHintDriverDirective,\n TuiHintHostDirective,\n TuiHintHoverDirective,\n TuiHintManualDirective,\n TuiHintPointerDirective,\n TuiHintDescribeDirective,\n TuiHintPositionDirective,\n TuiHintOptionsDirective,\n ],\n})\nexport class TuiHintModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-directives-hint.js","sources":["../../../projects/core/directives/hint/hint.providers.ts","../../../projects/core/directives/hint/hint-options.directive.ts","../../../projects/core/directives/hint/hint.directive.ts","../../../projects/core/directives/hint/hint-hover.directive.ts","../../../projects/core/directives/hint/hint-pointer.directive.ts","../../../projects/core/directives/hint/hint.component.ts","../../../projects/core/directives/hint/hint-describe.directive.ts","../../../projects/core/directives/hint/hint-driver.directive.ts","../../../projects/core/directives/hint/hint-host.directive.ts","../../../projects/core/directives/hint/hint-manual.directive.ts","../../../projects/core/directives/hint/hint-position.directive.ts","../../../projects/core/directives/hint/hint.module.ts","../../../projects/core/directives/hint/taiga-ui-core-directives-hint.ts"],"sourcesContent":["import {InjectionToken, Type} from '@angular/core';\n\n// eslint-disable-next-line import/no-cycle\nimport {TuiHintComponent} from './hint.component';\n\n/**\n * A component to display a hint\n */\nexport const TUI_HINT_COMPONENT = new InjectionToken<Type<unknown>>(\n `[TUI_HINT_COMPONENT]`,\n {\n factory: () => TuiHintComponent,\n },\n);\n","import {\n Directive,\n FactoryProvider,\n forwardRef,\n Inject,\n InjectionToken,\n Input,\n Optional,\n SkipSelf,\n} from '@angular/core';\nimport {AbstractTuiController, tuiDefaultProp} from '@taiga-ui/cdk';\nimport {TuiHintDirection} from '@taiga-ui/core/types';\nimport {tuiOverrideOptions} from '@taiga-ui/core/utils';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport interface TuiHintOptions {\n readonly direction: TuiHintDirection;\n readonly showDelay: number;\n readonly hideDelay: number;\n readonly appearance: string;\n readonly icon: PolymorpheusContent;\n}\n\n/** Default values for hint options */\nexport const TUI_HINT_DEFAULT_OPTIONS: TuiHintOptions = {\n direction: 'bottom-left',\n showDelay: 500,\n hideDelay: 200,\n appearance: '',\n icon: 'tuiIconHelpCircle',\n};\n\n/**\n * Default parameters for hint directive\n */\nexport const TUI_HINT_OPTIONS = new InjectionToken<TuiHintOptions>('[TUI_HINT_OPTIONS]', {\n factory: () => TUI_HINT_DEFAULT_OPTIONS,\n});\n\nexport const tuiHintOptionsProvider: (\n options: Partial<TuiHintOptions>,\n) => FactoryProvider = (override: Partial<TuiHintOptions>) => ({\n provide: TUI_HINT_OPTIONS,\n deps: [\n [new Optional(), TuiHintOptionsDirective],\n [new SkipSelf(), TUI_HINT_OPTIONS],\n ],\n useFactory: tuiOverrideOptions(override),\n});\n\n@Directive({\n selector: '[tuiHintContent]',\n providers: [\n {\n provide: TUI_HINT_OPTIONS,\n useExisting: forwardRef(() => TuiHintOptionsDirective),\n },\n ],\n})\nexport class TuiHintOptionsDirective\n extends AbstractTuiController\n implements TuiHintOptions\n{\n @Input('tuiHintContent')\n @tuiDefaultProp()\n content: PolymorpheusContent = '';\n\n @Input('tuiHintDirection')\n @tuiDefaultProp()\n direction = this.options.direction;\n\n @Input('tuiHintAppearance')\n @tuiDefaultProp()\n appearance = this.options.appearance;\n\n @Input('tuiHintShowDelay')\n @tuiDefaultProp()\n showDelay = this.options.showDelay;\n\n @Input('tuiHintHideDelay')\n @tuiDefaultProp()\n hideDelay = this.options.hideDelay;\n\n icon = this.options.icon;\n\n constructor(\n @SkipSelf() @Inject(TUI_HINT_OPTIONS) protected readonly options: TuiHintOptions,\n ) {\n super();\n }\n}\n","import {\n Directive,\n ElementRef,\n Inject,\n INJECTOR,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n} from '@angular/core';\nimport {TuiActiveZoneDirective, tuiDefaultProp} from '@taiga-ui/cdk';\nimport {\n tuiAsRectAccessor,\n tuiAsVehicle,\n TuiRectAccessor,\n TuiVehicle,\n} from '@taiga-ui/core/abstract';\nimport {TuiPortalItem} from '@taiga-ui/core/interfaces';\nimport {TuiHintService} from '@taiga-ui/core/services';\nimport {PolymorpheusComponent, PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\n// eslint-disable-next-line import/no-cycle\nimport {TUI_HINT_COMPONENT} from './hint.providers';\nimport {TUI_HINT_OPTIONS, TuiHintOptions} from './hint-options.directive';\n\n@Directive({\n selector: '[tuiHint]:not(ng-container)',\n providers: [\n tuiAsRectAccessor(TuiHintDirective),\n tuiAsVehicle(TuiHintDirective),\n {\n provide: PolymorpheusComponent,\n deps: [TUI_HINT_COMPONENT, INJECTOR],\n useClass: PolymorpheusComponent,\n },\n ],\n})\nexport class TuiHintDirective<C>\n implements OnDestroy, OnChanges, TuiPortalItem<C>, TuiRectAccessor, TuiVehicle\n{\n @Input('tuiHint')\n @tuiDefaultProp()\n content: PolymorpheusContent<C> = '';\n\n @Input('tuiHintContext')\n context?: C;\n\n @Input()\n @tuiDefaultProp()\n tuiHintAppearance: string | null = null;\n\n readonly type = 'hint';\n\n constructor(\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(PolymorpheusComponent)\n readonly component: PolymorpheusComponent<unknown, any>,\n @Inject(TuiHintService) private readonly hintService: TuiHintService,\n @Inject(TUI_HINT_OPTIONS) private readonly options: TuiHintOptions,\n @Optional()\n @Inject(TuiActiveZoneDirective)\n readonly activeZone?: TuiActiveZoneDirective | null,\n ) {}\n\n get appearance(): string {\n return this.tuiHintAppearance ?? this.options.appearance;\n }\n\n ngOnChanges(): void {\n if (!this.content) {\n this.toggle(false);\n }\n }\n\n ngOnDestroy(): void {\n this.toggle(false);\n }\n\n getClientRect(): ClientRect {\n return this.elementRef.nativeElement.getBoundingClientRect();\n }\n\n toggle(show: boolean): void {\n if (show && this.content) {\n this.hintService.add(this);\n } else {\n this.hintService.remove(this);\n }\n }\n}\n","/* eslint-disable rxjs/no-unsafe-takeuntil */\nimport {Directive, ElementRef, Inject, Input} from '@angular/core';\nimport {tuiDefaultProp, TuiHoveredService} from '@taiga-ui/cdk';\nimport {tuiAsDriver, TuiDriver} from '@taiga-ui/core/abstract';\nimport {merge, Observable, of, Subject} from 'rxjs';\nimport {delay, filter, repeat, switchMap, takeUntil} from 'rxjs/operators';\n\nimport {TUI_HINT_OPTIONS, TuiHintOptions} from './hint-options.directive';\n\n@Directive({\n selector: '[tuiHint]:not(ng-container)',\n exportAs: 'tuiHintHover',\n providers: [tuiAsDriver(TuiHintHoverDirective), TuiHoveredService],\n})\nexport class TuiHintHoverDirective extends TuiDriver {\n private readonly toggle$ = new Subject<boolean>();\n private readonly stream$ = merge(\n this.toggle$.pipe(\n switchMap(visible => of(visible).pipe(delay(visible ? 0 : this.hideDelay))),\n takeUntil(this.hovered$),\n repeat(),\n ),\n this.hovered$.pipe(\n switchMap(visible =>\n of(visible).pipe(delay(visible ? this.showDelay : this.hideDelay)),\n ),\n takeUntil(this.toggle$),\n repeat(),\n ),\n ).pipe(filter(() => this.enabled));\n\n @Input('tuiHintShowDelay')\n @tuiDefaultProp()\n showDelay: TuiHintOptions['showDelay'] = this.options.showDelay;\n\n @Input('tuiHintHideDelay')\n @tuiDefaultProp()\n hideDelay: TuiHintOptions['hideDelay'] = this.options.hideDelay;\n\n readonly type = 'hint';\n\n enabled = true;\n\n constructor(\n @Inject(TuiHoveredService) private readonly hovered$: Observable<boolean>,\n @Inject(TUI_HINT_OPTIONS) private readonly options: TuiHintOptions,\n @Inject(ElementRef) readonly elementRef: ElementRef<HTMLElement>,\n ) {\n super(subscriber => this.stream$.subscribe(subscriber));\n }\n\n toggle(visible: boolean): void {\n this.toggle$.next(visible);\n }\n}\n","import {Directive, HostListener} from '@angular/core';\nimport {EMPTY_CLIENT_RECT, tuiPointToClientRect} from '@taiga-ui/cdk';\nimport {tuiAsDriver, tuiAsRectAccessor, TuiRectAccessor} from '@taiga-ui/core/abstract';\n\nimport {TuiHintHoverDirective} from './hint-hover.directive';\n\n@Directive({\n selector: '[tuiHint][tuiHintPointer]',\n providers: [\n tuiAsRectAccessor(TuiHintPointerDirective),\n tuiAsDriver(TuiHintPointerDirective),\n ],\n})\nexport class TuiHintPointerDirective\n extends TuiHintHoverDirective\n implements TuiRectAccessor\n{\n private currentRect = EMPTY_CLIENT_RECT;\n\n @HostListener('mousemove.silent', ['$event'])\n onMove({clientX, clientY}: MouseEvent): void {\n this.currentRect = tuiPointToClientRect(clientX, clientY);\n }\n\n getClientRect(): ClientRect {\n return this.currentRect;\n }\n}\n","import {AnimationOptions} from '@angular/animations';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Inject,\n Optional,\n Self,\n} from '@angular/core';\nimport {\n tuiClamp,\n TuiContextWithImplicit,\n TuiDestroyService,\n TuiHoveredService,\n tuiPure,\n tuiPx,\n} from '@taiga-ui/cdk';\nimport {\n tuiPositionAccessorFor,\n TuiRectAccessor,\n tuiRectAccessorFor,\n} from '@taiga-ui/core/abstract';\nimport {tuiFadeIn} from '@taiga-ui/core/animations';\nimport {TuiModeDirective} from '@taiga-ui/core/directives/mode';\nimport {TuiPortalItem} from '@taiga-ui/core/interfaces';\nimport {TuiPositionService, TuiVisualViewportService} from '@taiga-ui/core/services';\nimport {TUI_ANIMATION_OPTIONS} from '@taiga-ui/core/tokens';\nimport {TuiPoint} from '@taiga-ui/core/types';\nimport {POLYMORPHEUS_CONTEXT, PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\nimport {map, takeUntil} from 'rxjs/operators';\n\n// eslint-disable-next-line import/no-cycle\nimport {TuiHintDirective} from './hint.directive';\nimport {TuiHintHoverDirective} from './hint-hover.directive';\nimport {TuiHintPointerDirective} from './hint-pointer.directive';\n\n@Component({\n selector: 'tui-hint',\n template: `\n <ng-container *polymorpheusOutlet=\"content as text; context: context\">\n {{ text }}\n </ng-container>\n `,\n styleUrls: ['./hint.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n TuiDestroyService,\n TuiPositionService,\n TuiHoveredService,\n tuiPositionAccessorFor('hint'),\n tuiRectAccessorFor('hint', TuiHintDirective),\n ],\n animations: [tuiFadeIn],\n})\nexport class TuiHintComponent<C = any> {\n @HostBinding('@tuiFadeIn')\n readonly animation = {value: '', ...this.options} as const;\n\n @HostBinding('attr.data-appearance')\n readonly appearance = this.polymorpheus.$implicit.appearance || this.mode?.mode;\n\n @HostBinding('class._untouchable')\n readonly untouchable = !!this.pointer;\n\n constructor(\n @Inject(TuiHoveredService) hovered$: Observable<boolean>,\n @Inject(TuiPositionService) position$: Observable<TuiPoint>,\n @Self() @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(TuiRectAccessor) protected readonly accessor: TuiRectAccessor,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(TUI_ANIMATION_OPTIONS) private readonly options: AnimationOptions,\n @Inject(POLYMORPHEUS_CONTEXT)\n private readonly polymorpheus: TuiContextWithImplicit<TuiPortalItem<C>>,\n @Inject(TuiHintHoverDirective) private readonly hover: TuiHintHoverDirective,\n @Optional() @Inject(TuiHintPointerDirective) private readonly pointer: unknown,\n @Optional()\n @Inject(TuiModeDirective)\n private readonly mode: TuiModeDirective | null,\n @Inject(TuiVisualViewportService)\n private readonly visualViewportService: TuiVisualViewportService,\n ) {\n position$\n .pipe(\n map(point => this.visualViewportService.correct(point)),\n takeUntil(destroy$),\n )\n .subscribe(([top, left]) => {\n this.update(top, left);\n });\n\n hovered$.pipe(takeUntil(destroy$)).subscribe(hover => this.hover.toggle(hover));\n }\n\n get content(): PolymorpheusContent<C> {\n return this.polymorpheus.$implicit.content;\n }\n\n get context(): C | undefined {\n return this.polymorpheus.$implicit.context;\n }\n\n @HostListener('document:click', ['$event.target'])\n onClick(target: HTMLElement): void {\n if (\n !this.elementRef.nativeElement.contains(target) &&\n !this.hover.elementRef.nativeElement.contains(target)\n ) {\n this.hover.toggle(false);\n }\n }\n\n @tuiPure\n private update(top: number, left: number): void {\n const {nativeElement} = this.elementRef;\n const {height, width} = nativeElement.getBoundingClientRect();\n const {style} = nativeElement;\n const rect = this.accessor.getClientRect();\n const safeLeft = Math.max(left, 4);\n const [beakTop, beakLeft] = this.visualViewportService.correct([\n rect.top + rect.height / 2 - top,\n rect.left + rect.width / 2 - safeLeft,\n ]);\n\n style.top = tuiPx(top);\n style.left = tuiPx(safeLeft);\n style.setProperty('--top', tuiPx(tuiClamp(beakTop, 0.5, height - 1)));\n style.setProperty('--left', tuiPx(tuiClamp(beakLeft, 0.5, width - 1)));\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Directive, ElementRef, Inject, Input, NgZone} from '@angular/core';\nimport {\n tuiIsNativeFocused,\n tuiPure,\n tuiTypedFromEvent,\n tuiZoneOptimized,\n} from '@taiga-ui/cdk';\nimport {tuiAsDriver, TuiDriver} from '@taiga-ui/core/abstract';\nimport {merge, of, timer} from 'rxjs';\nimport {\n debounce,\n distinctUntilChanged,\n map,\n skip,\n startWith,\n switchMap,\n} from 'rxjs/operators';\n\n@Directive({\n selector: '[tuiHintDescribe]',\n providers: [tuiAsDriver(TuiHintDescribeDirective)],\n})\nexport class TuiHintDescribeDirective extends TuiDriver {\n private readonly stream$ = tuiTypedFromEvent(this.documentRef, 'keydown', {\n capture: true,\n }).pipe(\n switchMap(() =>\n this.focused\n ? of(false)\n : merge(\n tuiTypedFromEvent(this.documentRef, 'keyup'),\n tuiTypedFromEvent(this.element, 'blur'),\n ).pipe(map(() => this.focused)),\n ),\n debounce(visible => (visible ? timer(1000) : of(null))),\n startWith(false),\n distinctUntilChanged(),\n skip(1),\n tuiZoneOptimized(this.ngZone),\n );\n\n @Input()\n tuiHintDescribe: string | '' = '';\n\n readonly type = 'hint';\n\n constructor(\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(ElementRef) private readonly elementRef: ElementRef<HTMLElement>,\n ) {\n super(subscriber => this.stream$.subscribe(subscriber));\n }\n\n private get focused(): boolean {\n return tuiIsNativeFocused(this.element);\n }\n\n @tuiPure\n private get element(): HTMLElement {\n return (\n this.documentRef.getElementById(this.tuiHintDescribe) ||\n this.elementRef.nativeElement\n );\n }\n}\n","import {Directive, Inject, Self} from '@angular/core';\nimport {TuiDestroyService} from '@taiga-ui/cdk';\nimport {AbstractTuiDriverDirective, TuiDriver, TuiVehicle} from '@taiga-ui/core/abstract';\nimport {Observable} from 'rxjs';\n\n@Directive({\n selector: '[tuiHint]',\n providers: [TuiDestroyService],\n})\nexport class TuiHintDriverDirective extends AbstractTuiDriverDirective {\n readonly type = 'hint';\n\n // TODO: Figure out why this is necessary under nx test runner\n constructor(\n @Self() @Inject(TuiDestroyService) destroy$: Observable<unknown>,\n @Inject(TuiDriver) drivers: TuiDriver[],\n @Inject(TuiVehicle) vehicles: TuiVehicle[],\n ) {\n super(destroy$, drivers, vehicles);\n }\n}\n","import {Directive, Input} from '@angular/core';\nimport {EMPTY_CLIENT_RECT} from '@taiga-ui/cdk';\nimport {tuiAsRectAccessor, TuiRectAccessor} from '@taiga-ui/core/abstract';\n\n@Directive({\n selector: '[tuiHint][tuiHintHost]',\n providers: [tuiAsRectAccessor(TuiHintHostDirective)],\n})\nexport class TuiHintHostDirective extends TuiRectAccessor {\n @Input()\n tuiHintHost?: HTMLElement;\n\n readonly type = 'hint';\n\n getClientRect(): ClientRect {\n return this.tuiHintHost?.getBoundingClientRect() || EMPTY_CLIENT_RECT;\n }\n}\n","import {Directive, Inject, Input, OnChanges} from '@angular/core';\nimport {tuiAsDriver, TuiDriver} from '@taiga-ui/core/abstract';\nimport {BehaviorSubject} from 'rxjs';\n\nimport {TuiHintHoverDirective} from './hint-hover.directive';\n\n@Directive({\n selector: '[tuiHint][tuiHintManual]',\n providers: [tuiAsDriver(TuiHintManualDirective)],\n})\nexport class TuiHintManualDirective extends TuiDriver implements OnChanges {\n private readonly stream$ = new BehaviorSubject(false);\n\n @Input()\n tuiHintManual = false;\n\n readonly type = 'hint';\n\n constructor(@Inject(TuiHintHoverDirective) hover: TuiHintHoverDirective) {\n super(subscriber => this.stream$.subscribe(subscriber));\n hover.enabled = false;\n }\n\n ngOnChanges(): void {\n this.stream$.next(this.tuiHintManual);\n }\n}\n","import {Directive, Inject, Input} from '@angular/core';\nimport {EMPTY_CLIENT_RECT, tuiDefaultProp, tuiPure} from '@taiga-ui/cdk';\nimport {\n tuiAsPositionAccessor,\n tuiFallbackRectAccessor,\n TuiPositionAccessor,\n TuiRectAccessor,\n} from '@taiga-ui/core/abstract';\nimport {TUI_HINT_DIRECTIONS} from '@taiga-ui/core/constants';\nimport {TUI_VIEWPORT} from '@taiga-ui/core/tokens';\nimport {TuiHintDirection, TuiPoint} from '@taiga-ui/core/types';\n\nimport {TuiHintDirective} from './hint.directive';\nimport {TUI_HINT_OPTIONS, TuiHintOptions} from './hint-options.directive';\n\nconst OFFSET = 8;\nconst ARROW_OFFSET = 22;\nconst TOP = 0;\nconst LEFT = 1;\n\n@Directive({\n selector: '[tuiHint]:not([tuiHintCustomPosition])',\n providers: [tuiAsPositionAccessor(TuiHintPositionDirective)],\n})\nexport class TuiHintPositionDirective extends TuiPositionAccessor {\n private readonly points: Record<TuiHintDirection, [number, number]> =\n TUI_HINT_DIRECTIONS.reduce(\n (acc, direction) => ({...acc, [direction]: [0, 0]}),\n {} as any,\n );\n\n @Input('tuiHintDirection')\n @tuiDefaultProp()\n direction: TuiHintOptions['direction'] = this.options.direction;\n\n readonly type = 'hint';\n\n constructor(\n @Inject(TUI_HINT_OPTIONS) private readonly options: TuiHintOptions,\n @Inject(TUI_VIEWPORT) private readonly viewport: TuiRectAccessor,\n @Inject(TuiHintDirective) private readonly directive: TuiRectAccessor,\n @Inject(TuiRectAccessor) private readonly accessors: readonly TuiRectAccessor[],\n ) {\n super();\n }\n\n // eslint-disable-next-line max-statements\n getPosition({width, height}: ClientRect): TuiPoint {\n const hostRect = this.accessor?.getClientRect() ?? EMPTY_CLIENT_RECT;\n const leftCenter = hostRect.left + hostRect.width / 2;\n const topCenter = hostRect.top + hostRect.height / 2;\n\n this.points['top-left'][TOP] = hostRect.top - height - OFFSET;\n this.points['top-left'][LEFT] = leftCenter - width + ARROW_OFFSET;\n this.points.top[TOP] = this.points['top-left'][TOP];\n this.points.top[LEFT] = leftCenter - width / 2;\n this.points['top-right'][TOP] = this.points['top-left'][TOP];\n this.points['top-right'][LEFT] = leftCenter - ARROW_OFFSET;\n\n this.points['bottom-left'][TOP] = hostRect.bottom + OFFSET;\n this.points['bottom-left'][LEFT] = this.points['top-left'][LEFT];\n this.points.bottom[TOP] = this.points['bottom-left'][TOP];\n this.points.bottom[LEFT] = this.points.top[LEFT];\n this.points['bottom-right'][TOP] = this.points['bottom-left'][TOP];\n this.points['bottom-right'][LEFT] = this.points['top-right'][LEFT];\n\n this.points['left-top'][TOP] = topCenter - height + ARROW_OFFSET;\n this.points['left-top'][LEFT] = hostRect.left - width - OFFSET;\n this.points.left[TOP] = topCenter - height / 2;\n this.points.left[LEFT] = this.points['left-top'][LEFT];\n this.points['left-bottom'][TOP] = topCenter - ARROW_OFFSET;\n this.points['left-bottom'][LEFT] = this.points['left-top'][LEFT];\n\n this.points['right-top'][TOP] = this.points['left-top'][TOP];\n this.points['right-top'][LEFT] = hostRect.right + OFFSET;\n this.points.right[TOP] = this.points.left[TOP];\n this.points.right[LEFT] = this.points['right-top'][LEFT];\n this.points['right-bottom'][TOP] = this.points['left-bottom'][TOP];\n this.points['right-bottom'][LEFT] = this.points['right-top'][LEFT];\n\n if (this.checkPosition(this.points[this.direction], width, height)) {\n return this.points[this.direction];\n }\n\n const direction = TUI_HINT_DIRECTIONS.find(direction =>\n this.checkPosition(this.points[direction], width, height),\n );\n\n return this.points[direction || this.fallback];\n }\n\n @tuiPure\n private get accessor(): TuiRectAccessor | undefined {\n return tuiFallbackRectAccessor('hint')(this.accessors, this.directive);\n }\n\n private get fallback(): TuiHintDirection {\n return this.points.top[TOP] >\n this.viewport.getClientRect().bottom - this.points.bottom[TOP]\n ? 'top'\n : 'bottom';\n }\n\n private checkPosition([top, left]: TuiPoint, width: number, height: number): boolean {\n const viewport = this.viewport.getClientRect();\n\n return (\n top > OFFSET &&\n left > OFFSET &&\n top + height < viewport.bottom - OFFSET &&\n left + width < viewport.right - OFFSET\n );\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiHintComponent} from './hint.component';\nimport {TuiHintDirective} from './hint.directive';\nimport {TuiHintDescribeDirective} from './hint-describe.directive';\nimport {TuiHintDriverDirective} from './hint-driver.directive';\nimport {TuiHintHostDirective} from './hint-host.directive';\nimport {TuiHintHoverDirective} from './hint-hover.directive';\nimport {TuiHintManualDirective} from './hint-manual.directive';\nimport {TuiHintOptionsDirective} from './hint-options.directive';\nimport {TuiHintPointerDirective} from './hint-pointer.directive';\nimport {TuiHintPositionDirective} from './hint-position.directive';\n\n@NgModule({\n imports: [CommonModule, PolymorpheusModule],\n declarations: [\n TuiHintComponent,\n TuiHintDirective,\n TuiHintDriverDirective,\n TuiHintHostDirective,\n TuiHintHoverDirective,\n TuiHintManualDirective,\n TuiHintPointerDirective,\n TuiHintDescribeDirective,\n TuiHintPositionDirective,\n TuiHintOptionsDirective,\n ],\n exports: [\n TuiHintComponent,\n TuiHintDirective,\n TuiHintDriverDirective,\n TuiHintHostDirective,\n TuiHintHoverDirective,\n TuiHintManualDirective,\n TuiHintPointerDirective,\n TuiHintDescribeDirective,\n TuiHintPositionDirective,\n TuiHintOptionsDirective,\n ],\n})\nexport class TuiHintModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { of, BehaviorSubject, Observable, fromEvent, merge, timer, EMPTY } from
|
|
|
5
5
|
import { WINDOW, ANIMATION_FRAME } from '@ng-web-apis/common';
|
|
6
6
|
import { startWith, map, share, distinctUntilChanged, takeUntil } from 'rxjs/operators';
|
|
7
7
|
import * as i3 from '@taiga-ui/cdk';
|
|
8
|
-
import { tuiZonefree, tuiZoneOptimized, TuiDestroyService, tuiAssert } from '@taiga-ui/cdk';
|
|
8
|
+
import { tuiZonefree, tuiZoneOptimized, TuiDestroyService, tuiAssert, TUI_IS_WEBKIT } from '@taiga-ui/cdk';
|
|
9
9
|
import * as i2 from '@taiga-ui/core/abstract';
|
|
10
10
|
import { TuiPositionAccessor } from '@taiga-ui/core/abstract';
|
|
11
11
|
import * as i1$1 from '@angular/router';
|
|
@@ -200,9 +200,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
200
200
|
args: [TUI_ICONS]
|
|
201
201
|
}] }]; } });
|
|
202
202
|
|
|
203
|
+
class TuiVisualViewportService {
|
|
204
|
+
constructor(windowRef, isWebkit) {
|
|
205
|
+
this.windowRef = windowRef;
|
|
206
|
+
this.isWebkit = isWebkit;
|
|
207
|
+
}
|
|
208
|
+
// https://bugs.webkit.org/show_bug.cgi?id=207089
|
|
209
|
+
correct(point) {
|
|
210
|
+
var _a, _b, _c, _d;
|
|
211
|
+
return this.isWebkit
|
|
212
|
+
? [
|
|
213
|
+
point[0] + ((_b = (_a = this.windowRef.visualViewport) === null || _a === void 0 ? void 0 : _a.offsetTop) !== null && _b !== void 0 ? _b : 0),
|
|
214
|
+
point[1] + ((_d = (_c = this.windowRef.visualViewport) === null || _c === void 0 ? void 0 : _c.offsetLeft) !== null && _d !== void 0 ? _d : 0),
|
|
215
|
+
]
|
|
216
|
+
: point;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
TuiVisualViewportService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiVisualViewportService, deps: [{ token: WINDOW }, { token: TUI_IS_WEBKIT }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
220
|
+
TuiVisualViewportService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiVisualViewportService, providedIn: `root` });
|
|
221
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiVisualViewportService, decorators: [{
|
|
222
|
+
type: Injectable,
|
|
223
|
+
args: [{
|
|
224
|
+
providedIn: `root`,
|
|
225
|
+
}]
|
|
226
|
+
}], ctorParameters: function () { return [{ type: Window, decorators: [{
|
|
227
|
+
type: Inject,
|
|
228
|
+
args: [WINDOW]
|
|
229
|
+
}] }, { type: undefined, decorators: [{
|
|
230
|
+
type: Inject,
|
|
231
|
+
args: [TUI_IS_WEBKIT]
|
|
232
|
+
}] }]; } });
|
|
233
|
+
|
|
203
234
|
/**
|
|
204
235
|
* Generated bundle index. Do not edit.
|
|
205
236
|
*/
|
|
206
237
|
|
|
207
|
-
export { TuiFormatDateService, TuiHintService, TuiNightThemeService, TuiPositionService, TuiRouterLinkActiveService, TuiSvgService };
|
|
238
|
+
export { TuiFormatDateService, TuiHintService, TuiNightThemeService, TuiPositionService, TuiRouterLinkActiveService, TuiSvgService, TuiVisualViewportService };
|
|
208
239
|
//# sourceMappingURL=taiga-ui-core-services.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-services.js","sources":["../../../projects/core/services/format-date.service.ts","../../../projects/core/services/hint.service.ts","../../../projects/core/services/night-theme.service.ts","../../../projects/core/services/position.service.ts","../../../projects/core/services/router-link-active.service.ts","../../../projects/core/services/svg.service.ts","../../../projects/core/services/taiga-ui-core-services.ts"],"sourcesContent":["import {Inject, Injectable, LOCALE_ID} from '@angular/core';\nimport {Observable, of} from 'rxjs';\n\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiFormatDateService {\n constructor(@Inject(LOCALE_ID) protected readonly locale: string) {}\n\n format(timestamp: number): Observable<string> {\n return of(\n new Date(timestamp).toLocaleTimeString(this.locale, {\n hour: `numeric`,\n minute: `2-digit`,\n }),\n );\n }\n}\n","import {Injectable} from '@angular/core';\nimport {TuiPortalItem} from '@taiga-ui/core/interfaces';\nimport {BehaviorSubject} from 'rxjs';\n\n/**\n * Service for displaying hints/tooltips\n */\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiHintService extends BehaviorSubject<readonly TuiPortalItem[]> {\n constructor() {\n super([]);\n }\n\n add(directive: TuiPortalItem): void {\n this.next(this.value.concat(directive));\n }\n\n remove(directive: TuiPortalItem): void {\n if (this.value.includes(directive)) {\n this.next(this.value.filter(hint => hint !== directive));\n }\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {fromEvent, Observable} from 'rxjs';\nimport {map, share, startWith} from 'rxjs/operators';\n\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiNightThemeService extends Observable<boolean> {\n constructor(@Inject(WINDOW) windowRef: Window) {\n const media = windowRef.matchMedia(`(prefers-color-scheme: dark)`);\n const media$ = fromEvent(media, `change`).pipe(\n startWith(null),\n map(() => media.matches),\n share(),\n );\n\n super(subscriber => media$.subscribe(subscriber));\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {tuiZonefree} from '@taiga-ui/cdk';\nimport {TuiPositionAccessor} from '@taiga-ui/core/abstract';\nimport {TuiPoint} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n@Injectable()\nexport class TuiPositionService extends Observable<TuiPoint> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(ANIMATION_FRAME) animationFrame: Observable<unknown>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TuiPositionAccessor) accessor: TuiPositionAccessor,\n ) {\n super(subscriber =>\n animationFrame\n .pipe(\n map(() => nativeElement.getBoundingClientRect()),\n map(rect => accessor.getPosition(rect)),\n tuiZonefree(ngZone),\n )\n .subscribe(subscriber),\n );\n }\n}\n","import {Inject, Injectable, NgZone, Optional, Self} from '@angular/core';\nimport {RouterLinkActive} from '@angular/router';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {TuiDestroyService, tuiZoneOptimized} from '@taiga-ui/cdk';\nimport {EMPTY, merge, Observable, timer} from 'rxjs';\nimport {distinctUntilChanged, map, takeUntil} from 'rxjs/operators';\n\n@Injectable()\nexport class TuiRouterLinkActiveService extends Observable<boolean> {\n constructor(\n @Optional()\n @Inject(RouterLinkActive)\n routerLinkActive: RouterLinkActive | null,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n @Self() @Inject(TuiDestroyService) destroy$: TuiDestroyService,\n ) {\n const stream$ = routerLinkActive\n ? merge(\n timer(0), // SSR (animationFrame$ never emits value during SSR)\n animationFrame$,\n ).pipe(\n map(() => routerLinkActive.isActive),\n distinctUntilChanged(),\n tuiZoneOptimized(ngZone),\n takeUntil(destroy$),\n )\n : EMPTY;\n\n super(subscriber => stream$.subscribe(subscriber));\n }\n}\n","import {Inject, Injectable, Optional, Sanitizer, SecurityContext} from '@angular/core';\nimport {DomSanitizer, SafeHtml} from '@angular/platform-browser';\nimport {tuiAssert} from '@taiga-ui/cdk';\nimport {TUI_ICONS, TUI_SANITIZER} from '@taiga-ui/core/tokens';\nimport {tuiProcessIcon} from '@taiga-ui/core/utils/dom';\nimport {BehaviorSubject} from 'rxjs';\n\n/**\n * Service for reusing SVGs without inlining each instance\n */\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiSvgService {\n private originals: Record<string, string> = {};\n\n readonly items$ = new BehaviorSubject<Map<string, SafeHtml>>(new Map());\n\n constructor(\n @Optional()\n @Inject(TUI_SANITIZER)\n private readonly tuiSanitizer: Sanitizer | null,\n @Inject(DomSanitizer) private readonly sanitizer: DomSanitizer,\n @Inject(TUI_ICONS) icons: Record<string, string>,\n ) {\n this.define(icons);\n }\n\n define(icons: Record<string, string>): void {\n const {value} = this.items$;\n\n Object.keys(icons).forEach(key => {\n this.defineIcon(key, icons[key], value);\n });\n\n this.items$.next(value);\n }\n\n getOriginal(name: string): string | null {\n return this.originals[name] || null;\n }\n\n private defineIcon(name: string, src: string, map: Map<string, SafeHtml>): void {\n if (map.has(name)) {\n return;\n }\n\n const parsed = this.parseSrc(name, src);\n\n if (!parsed) {\n tuiAssert.assert(false, `Unable to parse given SVG src`);\n\n return;\n }\n\n map.set(name, parsed);\n this.originals = {\n ...this.originals,\n [name]: src,\n };\n }\n\n private parseSrc(name: string, src: string): SafeHtml {\n return this.sanitize(tuiProcessIcon(src, name));\n }\n\n private sanitize(src: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(\n (this.tuiSanitizer\n ? this.tuiSanitizer.sanitize(SecurityContext.HTML, src)\n : this.sanitizer.sanitize(SecurityContext.HTML, src)) || ``,\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-core-services.js","sources":["../../../projects/core/services/format-date.service.ts","../../../projects/core/services/hint.service.ts","../../../projects/core/services/night-theme.service.ts","../../../projects/core/services/position.service.ts","../../../projects/core/services/router-link-active.service.ts","../../../projects/core/services/svg.service.ts","../../../projects/core/services/visual-viewport.service.ts","../../../projects/core/services/taiga-ui-core-services.ts"],"sourcesContent":["import {Inject, Injectable, LOCALE_ID} from '@angular/core';\nimport {Observable, of} from 'rxjs';\n\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiFormatDateService {\n constructor(@Inject(LOCALE_ID) protected readonly locale: string) {}\n\n format(timestamp: number): Observable<string> {\n return of(\n new Date(timestamp).toLocaleTimeString(this.locale, {\n hour: `numeric`,\n minute: `2-digit`,\n }),\n );\n }\n}\n","import {Injectable} from '@angular/core';\nimport {TuiPortalItem} from '@taiga-ui/core/interfaces';\nimport {BehaviorSubject} from 'rxjs';\n\n/**\n * Service for displaying hints/tooltips\n */\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiHintService extends BehaviorSubject<readonly TuiPortalItem[]> {\n constructor() {\n super([]);\n }\n\n add(directive: TuiPortalItem): void {\n this.next(this.value.concat(directive));\n }\n\n remove(directive: TuiPortalItem): void {\n if (this.value.includes(directive)) {\n this.next(this.value.filter(hint => hint !== directive));\n }\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {fromEvent, Observable} from 'rxjs';\nimport {map, share, startWith} from 'rxjs/operators';\n\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiNightThemeService extends Observable<boolean> {\n constructor(@Inject(WINDOW) windowRef: Window) {\n const media = windowRef.matchMedia(`(prefers-color-scheme: dark)`);\n const media$ = fromEvent(media, `change`).pipe(\n startWith(null),\n map(() => media.matches),\n share(),\n );\n\n super(subscriber => media$.subscribe(subscriber));\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {tuiZonefree} from '@taiga-ui/cdk';\nimport {TuiPositionAccessor} from '@taiga-ui/core/abstract';\nimport {TuiPoint} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\n@Injectable()\nexport class TuiPositionService extends Observable<TuiPoint> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(ANIMATION_FRAME) animationFrame: Observable<unknown>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TuiPositionAccessor) accessor: TuiPositionAccessor,\n ) {\n super(subscriber =>\n animationFrame\n .pipe(\n map(() => nativeElement.getBoundingClientRect()),\n map(rect => accessor.getPosition(rect)),\n tuiZonefree(ngZone),\n )\n .subscribe(subscriber),\n );\n }\n}\n","import {Inject, Injectable, NgZone, Optional, Self} from '@angular/core';\nimport {RouterLinkActive} from '@angular/router';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {TuiDestroyService, tuiZoneOptimized} from '@taiga-ui/cdk';\nimport {EMPTY, merge, Observable, timer} from 'rxjs';\nimport {distinctUntilChanged, map, takeUntil} from 'rxjs/operators';\n\n@Injectable()\nexport class TuiRouterLinkActiveService extends Observable<boolean> {\n constructor(\n @Optional()\n @Inject(RouterLinkActive)\n routerLinkActive: RouterLinkActive | null,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n @Self() @Inject(TuiDestroyService) destroy$: TuiDestroyService,\n ) {\n const stream$ = routerLinkActive\n ? merge(\n timer(0), // SSR (animationFrame$ never emits value during SSR)\n animationFrame$,\n ).pipe(\n map(() => routerLinkActive.isActive),\n distinctUntilChanged(),\n tuiZoneOptimized(ngZone),\n takeUntil(destroy$),\n )\n : EMPTY;\n\n super(subscriber => stream$.subscribe(subscriber));\n }\n}\n","import {Inject, Injectable, Optional, Sanitizer, SecurityContext} from '@angular/core';\nimport {DomSanitizer, SafeHtml} from '@angular/platform-browser';\nimport {tuiAssert} from '@taiga-ui/cdk';\nimport {TUI_ICONS, TUI_SANITIZER} from '@taiga-ui/core/tokens';\nimport {tuiProcessIcon} from '@taiga-ui/core/utils/dom';\nimport {BehaviorSubject} from 'rxjs';\n\n/**\n * Service for reusing SVGs without inlining each instance\n */\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiSvgService {\n private originals: Record<string, string> = {};\n\n readonly items$ = new BehaviorSubject<Map<string, SafeHtml>>(new Map());\n\n constructor(\n @Optional()\n @Inject(TUI_SANITIZER)\n private readonly tuiSanitizer: Sanitizer | null,\n @Inject(DomSanitizer) private readonly sanitizer: DomSanitizer,\n @Inject(TUI_ICONS) icons: Record<string, string>,\n ) {\n this.define(icons);\n }\n\n define(icons: Record<string, string>): void {\n const {value} = this.items$;\n\n Object.keys(icons).forEach(key => {\n this.defineIcon(key, icons[key], value);\n });\n\n this.items$.next(value);\n }\n\n getOriginal(name: string): string | null {\n return this.originals[name] || null;\n }\n\n private defineIcon(name: string, src: string, map: Map<string, SafeHtml>): void {\n if (map.has(name)) {\n return;\n }\n\n const parsed = this.parseSrc(name, src);\n\n if (!parsed) {\n tuiAssert.assert(false, `Unable to parse given SVG src`);\n\n return;\n }\n\n map.set(name, parsed);\n this.originals = {\n ...this.originals,\n [name]: src,\n };\n }\n\n private parseSrc(name: string, src: string): SafeHtml {\n return this.sanitize(tuiProcessIcon(src, name));\n }\n\n private sanitize(src: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(\n (this.tuiSanitizer\n ? this.tuiSanitizer.sanitize(SecurityContext.HTML, src)\n : this.sanitizer.sanitize(SecurityContext.HTML, src)) || ``,\n );\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {TUI_IS_WEBKIT} from '@taiga-ui/cdk';\nimport {TuiPoint} from '@taiga-ui/core/types';\n\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiVisualViewportService {\n constructor(\n @Inject(WINDOW) private readonly windowRef: Window,\n @Inject(TUI_IS_WEBKIT) private readonly isWebkit: boolean,\n ) {}\n\n // https://bugs.webkit.org/show_bug.cgi?id=207089\n correct(point: TuiPoint): TuiPoint {\n return this.isWebkit\n ? [\n point[0] + (this.windowRef.visualViewport?.offsetTop ?? 0),\n point[1] + (this.windowRef.visualViewport?.offsetLeft ?? 0),\n ]\n : point;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -106,16 +106,16 @@ function tuiFormatPhone(value, countryCode, phoneMask) {
|
|
|
106
106
|
if (splitValue.length === 0) {
|
|
107
107
|
return result;
|
|
108
108
|
}
|
|
109
|
-
for (
|
|
109
|
+
for (const mask of splitPhoneMask) {
|
|
110
110
|
if (splitValue.length === 0) {
|
|
111
111
|
break;
|
|
112
112
|
}
|
|
113
|
-
if (
|
|
113
|
+
if (mask === `#`) {
|
|
114
114
|
result += splitValue[0] || ``;
|
|
115
115
|
splitValue.splice(0, 1);
|
|
116
116
|
}
|
|
117
117
|
else {
|
|
118
|
-
result +=
|
|
118
|
+
result += mask;
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-utils-format.js","sources":["../../../projects/core/utils/format/capitalize.ts","../../../projects/core/utils/format/capitalize-first-letter.ts","../../../projects/core/utils/format/number-to-string-without-exp.ts","../../../projects/core/utils/format/get-fractional-part-padded.ts","../../../projects/core/utils/format/format-number.ts","../../../projects/core/utils/format/format-phone.ts","../../../projects/core/utils/format/other-decimal-symbol.ts","../../../projects/core/utils/format/taiga-ui-core-utils-format.ts"],"sourcesContent":["/**\n * Capitalizes a given string, replacing it with a lowercase string and making\n * the first letter of each word uppercase.\n *\n * @param value the input string\n * @return the capitalized string\n */\nexport function tuiCapitalize(value: string): string {\n return value.toLowerCase().replace(/(?:^|\\s)\\S/g, char => char.toUpperCase());\n}\n","export function tuiCapitalizeFirstLetter(value: string): string {\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n}\n","/**\n * Convert number to string with replacing exponent part on decimals\n *\n * @param value the number\n * @return string representation of a number\n */\nexport function tuiNumberToStringWithoutExp(value: number): string {\n const valueAsString = String(value);\n const [numberPart, expPart] = valueAsString.split(`e-`);\n\n let valueWithoutExp = valueAsString;\n\n if (expPart) {\n const [, fractionalPart] = numberPart.split(`.`);\n const decimalDigits = Number(expPart) + (fractionalPart?.length || 0);\n\n valueWithoutExp = value.toFixed(decimalDigits);\n }\n\n return valueWithoutExp;\n}\n","import {tuiIsNumber} from '@taiga-ui/cdk';\n\nimport {tuiNumberToStringWithoutExp} from './number-to-string-without-exp';\n\n/**\n * Return fractional part of number\n *\n * @param value the number\n * @param precision number of digits of decimal part, null to keep untouched\n * @return the fractional part of number\n */\nexport function tuiGetFractionPartPadded(\n value: number,\n precision?: number | null,\n): string {\n const [, fractionPartPadded = ``] = tuiNumberToStringWithoutExp(value).split(`.`);\n\n return tuiIsNumber(precision)\n ? fractionPartPadded.slice(0, Math.max(0, precision))\n : fractionPartPadded;\n}\n","import {CHAR_HYPHEN} from '@taiga-ui/cdk';\nimport {TUI_DEFAULT_NUMBER_FORMAT} from '@taiga-ui/core/constants';\nimport {TuiNumberFormatSettings} from '@taiga-ui/core/interfaces';\n\nimport {tuiGetFractionPartPadded} from './get-fractional-part-padded';\n\n/**\n * Formats number adding a thousand separators and correct decimal separator\n * padding decimal part with zeroes to given length\n *\n * @param value the input number\n * @param settings See {@link TuiNumberFormatSettings}\n * @return the formatted string\n */\nexport function tuiFormatNumber(\n value: number,\n settings: Partial<TuiNumberFormatSettings> = {},\n): string {\n const {decimalLimit, decimalSeparator, thousandSeparator, zeroPadding} = {\n ...TUI_DEFAULT_NUMBER_FORMAT,\n ...settings,\n };\n const integerPartString = String(Math.floor(Math.abs(value)));\n\n let fractionPartPadded = tuiGetFractionPartPadded(value, decimalLimit);\n\n if (Number.isFinite(decimalLimit)) {\n if (zeroPadding) {\n const zeroPaddingSize: number = Math.max(\n decimalLimit - fractionPartPadded.length,\n 0,\n );\n const zeroPartString = `0`.repeat(zeroPaddingSize);\n\n fractionPartPadded = `${fractionPartPadded}${zeroPartString}`;\n } else {\n fractionPartPadded = fractionPartPadded.replace(/0*$/, ``);\n }\n }\n\n const remainder = integerPartString.length % 3;\n const sign = value < 0 ? CHAR_HYPHEN : ``;\n let result = sign + integerPartString.charAt(0);\n\n for (let i = 1; i < integerPartString.length; i++) {\n if (i % 3 === remainder && integerPartString.length > 3) {\n result += thousandSeparator;\n }\n\n result += integerPartString.charAt(i);\n }\n\n return fractionPartPadded ? result + decimalSeparator + fractionPartPadded : result;\n}\n","import {CHAR_PLUS} from '@taiga-ui/cdk';\n\n/**\n * Formats a string with the phone format +7XXXXXXXXXXXX or XXXXXXXXXXXX,\n * adding parentheses and hyphens.\n *\n * @param value the input string\n * @param countryCode a country code\n * @param phoneMask a phone number mask\n * @return the formatted phone string of the form +7 XXX XXX-XX-XX\n */\nexport function tuiFormatPhone(\n value: string,\n countryCode: string,\n phoneMask: string,\n): string {\n if (!value) {\n return ``;\n }\n\n let result = countryCode;\n\n countryCode = countryCode.replace(/[()]/g, ``);\n\n if (!value.startsWith(countryCode)) {\n value = countryCode + value.replace(CHAR_PLUS, ``);\n }\n\n const splitPhoneMask = phoneMask.split(``);\n const splitValue = value.slice(countryCode.length).split(``);\n\n result += ` `;\n\n if (splitValue.length === 0) {\n return result;\n }\n\n for (
|
|
1
|
+
{"version":3,"file":"taiga-ui-core-utils-format.js","sources":["../../../projects/core/utils/format/capitalize.ts","../../../projects/core/utils/format/capitalize-first-letter.ts","../../../projects/core/utils/format/number-to-string-without-exp.ts","../../../projects/core/utils/format/get-fractional-part-padded.ts","../../../projects/core/utils/format/format-number.ts","../../../projects/core/utils/format/format-phone.ts","../../../projects/core/utils/format/other-decimal-symbol.ts","../../../projects/core/utils/format/taiga-ui-core-utils-format.ts"],"sourcesContent":["/**\n * Capitalizes a given string, replacing it with a lowercase string and making\n * the first letter of each word uppercase.\n *\n * @param value the input string\n * @return the capitalized string\n */\nexport function tuiCapitalize(value: string): string {\n return value.toLowerCase().replace(/(?:^|\\s)\\S/g, char => char.toUpperCase());\n}\n","export function tuiCapitalizeFirstLetter(value: string): string {\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n}\n","/**\n * Convert number to string with replacing exponent part on decimals\n *\n * @param value the number\n * @return string representation of a number\n */\nexport function tuiNumberToStringWithoutExp(value: number): string {\n const valueAsString = String(value);\n const [numberPart, expPart] = valueAsString.split(`e-`);\n\n let valueWithoutExp = valueAsString;\n\n if (expPart) {\n const [, fractionalPart] = numberPart.split(`.`);\n const decimalDigits = Number(expPart) + (fractionalPart?.length || 0);\n\n valueWithoutExp = value.toFixed(decimalDigits);\n }\n\n return valueWithoutExp;\n}\n","import {tuiIsNumber} from '@taiga-ui/cdk';\n\nimport {tuiNumberToStringWithoutExp} from './number-to-string-without-exp';\n\n/**\n * Return fractional part of number\n *\n * @param value the number\n * @param precision number of digits of decimal part, null to keep untouched\n * @return the fractional part of number\n */\nexport function tuiGetFractionPartPadded(\n value: number,\n precision?: number | null,\n): string {\n const [, fractionPartPadded = ``] = tuiNumberToStringWithoutExp(value).split(`.`);\n\n return tuiIsNumber(precision)\n ? fractionPartPadded.slice(0, Math.max(0, precision))\n : fractionPartPadded;\n}\n","import {CHAR_HYPHEN} from '@taiga-ui/cdk';\nimport {TUI_DEFAULT_NUMBER_FORMAT} from '@taiga-ui/core/constants';\nimport {TuiNumberFormatSettings} from '@taiga-ui/core/interfaces';\n\nimport {tuiGetFractionPartPadded} from './get-fractional-part-padded';\n\n/**\n * Formats number adding a thousand separators and correct decimal separator\n * padding decimal part with zeroes to given length\n *\n * @param value the input number\n * @param settings See {@link TuiNumberFormatSettings}\n * @return the formatted string\n */\nexport function tuiFormatNumber(\n value: number,\n settings: Partial<TuiNumberFormatSettings> = {},\n): string {\n const {decimalLimit, decimalSeparator, thousandSeparator, zeroPadding} = {\n ...TUI_DEFAULT_NUMBER_FORMAT,\n ...settings,\n };\n const integerPartString = String(Math.floor(Math.abs(value)));\n\n let fractionPartPadded = tuiGetFractionPartPadded(value, decimalLimit);\n\n if (Number.isFinite(decimalLimit)) {\n if (zeroPadding) {\n const zeroPaddingSize: number = Math.max(\n decimalLimit - fractionPartPadded.length,\n 0,\n );\n const zeroPartString = `0`.repeat(zeroPaddingSize);\n\n fractionPartPadded = `${fractionPartPadded}${zeroPartString}`;\n } else {\n fractionPartPadded = fractionPartPadded.replace(/0*$/, ``);\n }\n }\n\n const remainder = integerPartString.length % 3;\n const sign = value < 0 ? CHAR_HYPHEN : ``;\n let result = sign + integerPartString.charAt(0);\n\n for (let i = 1; i < integerPartString.length; i++) {\n if (i % 3 === remainder && integerPartString.length > 3) {\n result += thousandSeparator;\n }\n\n result += integerPartString.charAt(i);\n }\n\n return fractionPartPadded ? result + decimalSeparator + fractionPartPadded : result;\n}\n","import {CHAR_PLUS} from '@taiga-ui/cdk';\n\n/**\n * Formats a string with the phone format +7XXXXXXXXXXXX or XXXXXXXXXXXX,\n * adding parentheses and hyphens.\n *\n * @param value the input string\n * @param countryCode a country code\n * @param phoneMask a phone number mask\n * @return the formatted phone string of the form +7 XXX XXX-XX-XX\n */\nexport function tuiFormatPhone(\n value: string,\n countryCode: string,\n phoneMask: string,\n): string {\n if (!value) {\n return ``;\n }\n\n let result = countryCode;\n\n countryCode = countryCode.replace(/[()]/g, ``);\n\n if (!value.startsWith(countryCode)) {\n value = countryCode + value.replace(CHAR_PLUS, ``);\n }\n\n const splitPhoneMask = phoneMask.split(``);\n const splitValue = value.slice(countryCode.length).split(``);\n\n result += ` `;\n\n if (splitValue.length === 0) {\n return result;\n }\n\n for (const mask of splitPhoneMask) {\n if (splitValue.length === 0) {\n break;\n }\n\n if (mask === `#`) {\n result += splitValue[0] || ``;\n splitValue.splice(0, 1);\n } else {\n result += mask;\n }\n }\n\n return result;\n}\n","import {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\nexport function tuiOtherDecimalSymbol(symbol: TuiDecimalSymbol): TuiDecimalSymbol {\n return symbol === `.` ? `,` : `.`;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -141,7 +141,7 @@ function tuiCreateNumberMask({ allowDecimal = false, decimalSymbol = `,`, thousa
|
|
|
141
141
|
rawValue = previousConformedValue;
|
|
142
142
|
}
|
|
143
143
|
}
|
|
144
|
-
const isNegative = (rawValue
|
|
144
|
+
const isNegative = ((rawValue === null || rawValue === void 0 ? void 0 : rawValue.startsWith(CHAR_HYPHEN)) || (rawValue === null || rawValue === void 0 ? void 0 : rawValue.startsWith(CHAR_EN_DASH))) &&
|
|
145
145
|
allowNegative;
|
|
146
146
|
if (isDecimalSymbol(rawValue, decimalSymbol, autoCorrectDecimalSymbol) &&
|
|
147
147
|
allowDecimal) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-core-utils-mask.js","sources":["../../../projects/core/utils/mask/create-auto-corrected-money-pipe.ts","../../../projects/core/utils/mask/create-correction-mask.ts","../../../projects/core/utils/mask/create-number-mask.ts","../../../projects/core/utils/mask/enable-auto-correct-decimal-symbol.ts","../../../projects/core/utils/mask/masked-money-value-is-empty.ts","../../../projects/core/utils/mask/masked-number-string-to-number.ts","../../../projects/core/utils/mask/taiga-ui-core-utils-mask.ts"],"sourcesContent":["import {\n CHAR_HYPHEN,\n CHAR_NO_BREAK_SPACE,\n tuiAssert,\n tuiGetDocumentOrShadowRoot,\n tuiIsNativeFocused,\n tuiIsSafari,\n} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler} from '@taiga-ui/core/mask';\nimport {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\n/**\n * Used to finish a number with zeros to a given precision\n */\nexport function tuiCreateAutoCorrectedNumberPipe(\n decimalLimit: number = 0,\n decimalSymbol: TuiDecimalSymbol = `,`,\n thousandSymbol: string = CHAR_NO_BREAK_SPACE,\n nativeInput?: HTMLInputElement | null,\n allowNegative?: boolean,\n isIOS = false,\n): TuiTextMaskPipeHandler {\n tuiAssert.assert(Number.isInteger(decimalLimit));\n tuiAssert.assert(decimalLimit >= 0);\n\n // Guess for which browser I need this :)\n let previousCaret = -1;\n const unlucky = (!!nativeInput && tuiIsSafari(nativeInput)) || isIOS;\n\n if (nativeInput && unlucky) {\n nativeInput.addEventListener(`beforeinput`, () => {\n previousCaret = nativeInput.selectionStart || 0;\n });\n }\n\n return (conformedValue, config) => {\n // Removing everything by selecting and pressing '-'\n if (!conformedValue && config.rawValue === CHAR_HYPHEN && allowNegative) {\n return CHAR_HYPHEN;\n }\n\n // remove these hacks after text mask library has changed\n if (nativeInput && unlucky && tuiIsNativeFocused(nativeInput)) {\n const caret = calculateSafariCaret(\n config.previousConformedValue,\n conformedValue,\n previousCaret,\n );\n\n setTimeout(() => {\n nativeInput.setSelectionRange(caret, caret);\n });\n }\n\n if (\n nativeInput &&\n nativeInput.ownerDocument !== tuiGetDocumentOrShadowRoot(nativeInput) &&\n tuiIsNativeFocused(nativeInput) &&\n config.currentCaretPosition\n ) {\n const realCaretPosition =\n config.currentCaretPosition +\n calculateCaretGap(\n config.previousConformedValue,\n conformedValue,\n thousandSymbol,\n );\n\n setTimeout(() => {\n nativeInput.setSelectionRange(realCaretPosition, realCaretPosition);\n });\n }\n\n if (conformedValue === `` || !decimalLimit) {\n return {value: conformedValue};\n }\n\n const withDecimalSymbol = addDecimalSymbolIfNeeded(conformedValue, decimalSymbol);\n const decimalPart = withDecimalSymbol.split(decimalSymbol)[1];\n const zeroPaddingSize = decimalLimit - decimalPart.length;\n\n return {\n value: withDecimalSymbol + `0`.repeat(zeroPaddingSize),\n };\n };\n}\n\nfunction addDecimalSymbolIfNeeded(\n value: string,\n decimalSymbol: TuiDecimalSymbol = `,`,\n): string {\n return !value.includes(decimalSymbol) ? value + decimalSymbol : value;\n}\n\nfunction calculateSafariCaret(\n previousValue: string = ``,\n current: string,\n previousCaret: number,\n decimalSymbol: string = `,`,\n): number {\n const tailRegex = new RegExp(`${decimalSymbol}.+`);\n const previousWithoutTail = previousValue.replace(tailRegex, ``);\n const currentWithoutTail = current.replace(tailRegex, ``);\n\n const pasteOrCutOperation =\n Math.abs(previousWithoutTail.length - currentWithoutTail.length) > 2;\n\n if (pasteOrCutOperation) {\n return current.length;\n }\n\n if (previousValue.length === current.length) {\n if (previousValue.indexOf(decimalSymbol) <= previousCaret) {\n return calculateChangedTailIndex(previousValue, current);\n }\n\n return previousWithoutTail === currentWithoutTail\n ? previousCaret - 1\n : previousCaret + 1;\n }\n\n if (previousValue.length === 0) {\n return 1;\n }\n\n const changeLength = current.length - previousValue.length;\n\n return previousCaret + changeLength;\n}\n\nfunction calculateChangedTailIndex(previous: string, current: string): number {\n for (let i = 0; i < current.length; i++) {\n if (previous[i] !== current[i]) {\n return current[i] === `0` ? i : i + 1;\n }\n }\n\n return current.length;\n}\n\nfunction calculateCaretGap(\n previousValue: string = ``,\n current: string,\n thousandSymbol: string,\n): number {\n const pasteOrCutOperation = Math.abs(previousValue.length - current.length) > 2;\n\n if (pasteOrCutOperation) {\n return 0;\n }\n\n const wereSpaces = previousValue.split(thousandSymbol).length;\n const nowSpaces = current.split(thousandSymbol).length;\n\n return nowSpaces - wereSpaces;\n}\n","import {tuiAssert} from '@taiga-ui/cdk';\nimport {MASK_CARET_TRAP} from '@taiga-ui/core/constants';\nimport {\n TuiTextMaskCorrectionHandler,\n TuiTextMaskList,\n TuiTextMaskListHandler,\n} from '@taiga-ui/core/mask';\n\nconst ASSERTION = `Correction function must return single char or null`;\n\nexport function tuiCreateCorrectionMask(\n allowed: RegExp,\n correctionHandler: TuiTextMaskCorrectionHandler,\n): TuiTextMaskListHandler {\n return rawValue => {\n const mask = rawValue.split(``).reduce<TuiTextMaskList>((result, char, index) => {\n const corrected = correctionHandler(char, index);\n\n tuiAssert.assert(corrected === null || corrected.length === 1, ASSERTION);\n\n if (!allowed.test(char) && !corrected) {\n return result;\n }\n\n if (allowed.test(char)) {\n return [...result, allowed];\n }\n\n if (corrected) {\n return [...result, corrected, MASK_CARET_TRAP];\n }\n\n return result;\n }, []);\n const lastIndex = mask.lastIndexOf(MASK_CARET_TRAP);\n const filtered = mask.filter(\n (item, index) => item !== MASK_CARET_TRAP || index === lastIndex,\n );\n\n return filtered.some(item => item !== allowed)\n ? [...filtered, allowed]\n : filtered;\n };\n}\n","import {CHAR_EN_DASH, CHAR_HYPHEN, CHAR_NO_BREAK_SPACE, tuiAssert} from '@taiga-ui/cdk';\nimport {\n MASK_CARET_TRAP,\n TUI_DIGIT_REGEXP,\n TUI_LEADING_ZEROES_REGEXP,\n TUI_NON_DIGITS_REGEXP,\n} from '@taiga-ui/core/constants';\nimport {TuiNumberMaskOptions, TuiTextMaskListHandler} from '@taiga-ui/core/mask';\nimport {TuiDecimalSymbol} from '@taiga-ui/core/types';\nimport {tuiOtherDecimalSymbol} from '@taiga-ui/core/utils/format';\n\nconst NON_ZERO_DIGIT = /[1-9]/;\n\n/**\n * Adaptation for {@link https://github.com/text-mask/text-mask/tree/master/addons#createnumbermask `createNumberMask`}\n */\nexport function tuiCreateNumberMask({\n allowDecimal = false,\n decimalSymbol = `,`,\n thousandSymbol = CHAR_NO_BREAK_SPACE,\n autoCorrectDecimalSymbol = true,\n decimalLimit = 2,\n requireDecimal = false,\n allowNegative = false,\n integerLimit = 0,\n}: TuiNumberMaskOptions = {}): TuiTextMaskListHandler {\n tuiAssert.assert(Number.isInteger(decimalLimit));\n tuiAssert.assert(decimalLimit >= 0);\n tuiAssert.assert(Number.isInteger(integerLimit));\n tuiAssert.assert(integerLimit >= 0);\n\n // eslint-disable-next-line max-statements\n return (rawValue, {previousConformedValue}) => {\n if (previousConformedValue && requireDecimal) {\n const conformedWithoutSeparator = rawValue.split(thousandSymbol).join(``);\n const previousConformedValueWithoutDecimalSymbolAndSeparator =\n previousConformedValue\n .split(thousandSymbol)\n .join(``)\n .split(decimalSymbol)\n .join(``);\n\n // Forbid removal of decimal separator if decimal part is required\n if (\n conformedWithoutSeparator ===\n previousConformedValueWithoutDecimalSymbolAndSeparator\n ) {\n rawValue = previousConformedValue;\n }\n }\n\n const isNegative =\n (rawValue[0] === CHAR_HYPHEN || rawValue[0] === CHAR_EN_DASH) &&\n allowNegative;\n\n if (\n isDecimalSymbol(rawValue, decimalSymbol, autoCorrectDecimalSymbol) &&\n allowDecimal\n ) {\n return [`0`, decimalSymbol, TUI_DIGIT_REGEXP];\n }\n\n if (isNegative) {\n rawValue = rawValue.slice(1);\n }\n\n const decimalIndex = getDecimalSymbolIndex(\n rawValue,\n decimalSymbol,\n autoCorrectDecimalSymbol,\n );\n const hasDecimal = decimalIndex !== -1;\n const integer = hasDecimal ? rawValue.slice(0, decimalIndex) : rawValue;\n const thousandSeparators = integer.match(new RegExp(thousandSymbol, `g`)) || [];\n const integerCapped = integerLimit\n ? integer.slice(0, integerLimit + thousandSeparators.length)\n : integer;\n const integerCappedClean = integerCapped.replace(TUI_NON_DIGITS_REGEXP, ``);\n const [leadingZerosMatch] = integerCappedClean.match(\n TUI_LEADING_ZEROES_REGEXP,\n ) || [``];\n const leadingZerosAmount = leadingZerosMatch.length;\n const integerCappedZerosClean = integerCappedClean\n .replace(/^0+(?!\\.|$)/, ``)\n .trim();\n const withSeparator = addThousandsSeparator(\n integerCappedZerosClean,\n thousandSymbol,\n );\n const mask = convertToMask(withSeparator);\n\n if ((hasDecimal && allowDecimal) || requireDecimal) {\n const fraction = hasDecimal\n ? convertToMask(\n rawValue.slice(decimalIndex + 1).replace(TUI_NON_DIGITS_REGEXP, ``),\n )\n : [];\n const fractionCapped = decimalLimit\n ? fraction.slice(0, decimalLimit)\n : fraction;\n\n if (rawValue[decimalIndex] !== tuiOtherDecimalSymbol(decimalSymbol)) {\n mask.push(MASK_CARET_TRAP);\n }\n\n mask.push(decimalSymbol, MASK_CARET_TRAP, ...fractionCapped);\n\n for (let i = 0; i < decimalLimit - fractionCapped.length; i++) {\n mask.push(TUI_DIGIT_REGEXP);\n }\n }\n\n const isOnlyZeroDigit = mask.length === 1 && integerCappedZerosClean === `0`;\n\n if (isNegative) {\n if (mask.length === 0) {\n mask.push(TUI_DIGIT_REGEXP);\n }\n\n mask.unshift(CHAR_HYPHEN);\n }\n\n return preventLeadingZeroes(mask, isOnlyZeroDigit, leadingZerosAmount);\n };\n}\n\nfunction preventLeadingZeroes(\n mask: Array<RegExp | string>,\n isOnlyZeroDigit: boolean = false,\n leadingZerosAmount: number = 0,\n): Array<RegExp | string> {\n if (isOnlyZeroDigit || leadingZerosAmount === 0) {\n return mask;\n }\n\n const firstDigitIndex = mask.indexOf(TUI_DIGIT_REGEXP);\n\n if (firstDigitIndex === -1) {\n return mask;\n }\n\n const secondMaskDigit = mask[firstDigitIndex + 1];\n const isCaretTrap = secondMaskDigit === MASK_CARET_TRAP;\n\n if (isCaretTrap && leadingZerosAmount === 1) {\n return mask;\n }\n\n if (isCaretTrap) {\n mask.unshift(NON_ZERO_DIGIT);\n\n return mask;\n }\n\n mask[firstDigitIndex] = NON_ZERO_DIGIT;\n\n return mask;\n}\n\nfunction getDecimalSymbolIndex(\n str: string,\n decimalSymbol: TuiDecimalSymbol,\n autoCorrectDecimalSymbol: boolean,\n): number {\n if (!autoCorrectDecimalSymbol) {\n return str.lastIndexOf(decimalSymbol);\n }\n\n return Math.max(\n str.lastIndexOf(decimalSymbol),\n str.lastIndexOf(tuiOtherDecimalSymbol(decimalSymbol)),\n );\n}\n\nfunction isDecimalSymbol(\n str: string,\n decimalSymbol: TuiDecimalSymbol,\n autoCorrectDecimalSymbol: boolean,\n): boolean {\n if (autoCorrectDecimalSymbol) {\n return /^[,.]$/.test(str);\n }\n\n return str === decimalSymbol;\n}\n\nfunction convertToMask(strNumber: string): Array<RegExp | string> {\n return strNumber\n .split(``)\n .map(char => (TUI_DIGIT_REGEXP.test(char) ? TUI_DIGIT_REGEXP : char));\n}\n\nfunction addThousandsSeparator(strNumber: string, thousandSymbol: string): string {\n return strNumber.length > 3\n ? // TODO: investigate to disallow potentially catastrophic exponential-time regular expressions.\n // eslint-disable-next-line unicorn/no-unsafe-regex\n strNumber.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSymbol)\n : strNumber;\n}\n","import {TUI_DECIMAL_SYMBOLS} from '@taiga-ui/core/constants';\nimport {TuiNumberFormatSettings} from '@taiga-ui/core/interfaces';\n\nexport function tuiEnableAutoCorrectDecimalSymbol({\n thousandSeparator,\n}: TuiNumberFormatSettings): boolean {\n return !TUI_DECIMAL_SYMBOLS.includes(thousandSeparator);\n}\n","import {CHAR_HYPHEN} from '@taiga-ui/cdk';\n\nexport function tuiMaskedMoneyValueIsEmpty(value: string): boolean {\n switch (value) {\n case ``:\n case CHAR_HYPHEN:\n case `,`:\n case `${CHAR_HYPHEN},`:\n return true;\n default:\n return false;\n }\n}\n","import {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\nexport function tuiMaskedNumberStringToNumber(\n value: string,\n decimalsSymbol: TuiDecimalSymbol,\n thousandSymbol: string,\n): number {\n return parseFloat(\n value.split(thousandSymbol).join(``).split(decimalsSymbol).join(`.`),\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-core-utils-mask.js","sources":["../../../projects/core/utils/mask/create-auto-corrected-money-pipe.ts","../../../projects/core/utils/mask/create-correction-mask.ts","../../../projects/core/utils/mask/create-number-mask.ts","../../../projects/core/utils/mask/enable-auto-correct-decimal-symbol.ts","../../../projects/core/utils/mask/masked-money-value-is-empty.ts","../../../projects/core/utils/mask/masked-number-string-to-number.ts","../../../projects/core/utils/mask/taiga-ui-core-utils-mask.ts"],"sourcesContent":["import {\n CHAR_HYPHEN,\n CHAR_NO_BREAK_SPACE,\n tuiAssert,\n tuiGetDocumentOrShadowRoot,\n tuiIsNativeFocused,\n tuiIsSafari,\n} from '@taiga-ui/cdk';\nimport {TuiTextMaskPipeHandler} from '@taiga-ui/core/mask';\nimport {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\n/**\n * Used to finish a number with zeros to a given precision\n */\nexport function tuiCreateAutoCorrectedNumberPipe(\n decimalLimit: number = 0,\n decimalSymbol: TuiDecimalSymbol = `,`,\n thousandSymbol: string = CHAR_NO_BREAK_SPACE,\n nativeInput?: HTMLInputElement | null,\n allowNegative?: boolean,\n isIOS = false,\n): TuiTextMaskPipeHandler {\n tuiAssert.assert(Number.isInteger(decimalLimit));\n tuiAssert.assert(decimalLimit >= 0);\n\n // Guess for which browser I need this :)\n let previousCaret = -1;\n const unlucky = (!!nativeInput && tuiIsSafari(nativeInput)) || isIOS;\n\n if (nativeInput && unlucky) {\n nativeInput.addEventListener(`beforeinput`, () => {\n previousCaret = nativeInput.selectionStart || 0;\n });\n }\n\n return (conformedValue, config) => {\n // Removing everything by selecting and pressing '-'\n if (!conformedValue && config.rawValue === CHAR_HYPHEN && allowNegative) {\n return CHAR_HYPHEN;\n }\n\n // remove these hacks after text mask library has changed\n if (nativeInput && unlucky && tuiIsNativeFocused(nativeInput)) {\n const caret = calculateSafariCaret(\n config.previousConformedValue,\n conformedValue,\n previousCaret,\n );\n\n setTimeout(() => {\n nativeInput.setSelectionRange(caret, caret);\n });\n }\n\n if (\n nativeInput &&\n nativeInput.ownerDocument !== tuiGetDocumentOrShadowRoot(nativeInput) &&\n tuiIsNativeFocused(nativeInput) &&\n config.currentCaretPosition\n ) {\n const realCaretPosition =\n config.currentCaretPosition +\n calculateCaretGap(\n config.previousConformedValue,\n conformedValue,\n thousandSymbol,\n );\n\n setTimeout(() => {\n nativeInput.setSelectionRange(realCaretPosition, realCaretPosition);\n });\n }\n\n if (conformedValue === `` || !decimalLimit) {\n return {value: conformedValue};\n }\n\n const withDecimalSymbol = addDecimalSymbolIfNeeded(conformedValue, decimalSymbol);\n const decimalPart = withDecimalSymbol.split(decimalSymbol)[1];\n const zeroPaddingSize = decimalLimit - decimalPart.length;\n\n return {\n value: withDecimalSymbol + `0`.repeat(zeroPaddingSize),\n };\n };\n}\n\nfunction addDecimalSymbolIfNeeded(\n value: string,\n decimalSymbol: TuiDecimalSymbol = `,`,\n): string {\n return !value.includes(decimalSymbol) ? value + decimalSymbol : value;\n}\n\nfunction calculateSafariCaret(\n previousValue: string = ``,\n current: string,\n previousCaret: number,\n decimalSymbol: string = `,`,\n): number {\n const tailRegex = new RegExp(`${decimalSymbol}.+`);\n const previousWithoutTail = previousValue.replace(tailRegex, ``);\n const currentWithoutTail = current.replace(tailRegex, ``);\n\n const pasteOrCutOperation =\n Math.abs(previousWithoutTail.length - currentWithoutTail.length) > 2;\n\n if (pasteOrCutOperation) {\n return current.length;\n }\n\n if (previousValue.length === current.length) {\n if (previousValue.indexOf(decimalSymbol) <= previousCaret) {\n return calculateChangedTailIndex(previousValue, current);\n }\n\n return previousWithoutTail === currentWithoutTail\n ? previousCaret - 1\n : previousCaret + 1;\n }\n\n if (previousValue.length === 0) {\n return 1;\n }\n\n const changeLength = current.length - previousValue.length;\n\n return previousCaret + changeLength;\n}\n\nfunction calculateChangedTailIndex(previous: string, current: string): number {\n for (let i = 0; i < current.length; i++) {\n if (previous[i] !== current[i]) {\n return current[i] === `0` ? i : i + 1;\n }\n }\n\n return current.length;\n}\n\nfunction calculateCaretGap(\n previousValue: string = ``,\n current: string,\n thousandSymbol: string,\n): number {\n const pasteOrCutOperation = Math.abs(previousValue.length - current.length) > 2;\n\n if (pasteOrCutOperation) {\n return 0;\n }\n\n const wereSpaces = previousValue.split(thousandSymbol).length;\n const nowSpaces = current.split(thousandSymbol).length;\n\n return nowSpaces - wereSpaces;\n}\n","import {tuiAssert} from '@taiga-ui/cdk';\nimport {MASK_CARET_TRAP} from '@taiga-ui/core/constants';\nimport {\n TuiTextMaskCorrectionHandler,\n TuiTextMaskList,\n TuiTextMaskListHandler,\n} from '@taiga-ui/core/mask';\n\nconst ASSERTION = `Correction function must return single char or null`;\n\nexport function tuiCreateCorrectionMask(\n allowed: RegExp,\n correctionHandler: TuiTextMaskCorrectionHandler,\n): TuiTextMaskListHandler {\n return rawValue => {\n const mask = rawValue.split(``).reduce<TuiTextMaskList>((result, char, index) => {\n const corrected = correctionHandler(char, index);\n\n tuiAssert.assert(corrected === null || corrected.length === 1, ASSERTION);\n\n if (!allowed.test(char) && !corrected) {\n return result;\n }\n\n if (allowed.test(char)) {\n return [...result, allowed];\n }\n\n if (corrected) {\n return [...result, corrected, MASK_CARET_TRAP];\n }\n\n return result;\n }, []);\n const lastIndex = mask.lastIndexOf(MASK_CARET_TRAP);\n const filtered = mask.filter(\n (item, index) => item !== MASK_CARET_TRAP || index === lastIndex,\n );\n\n return filtered.some(item => item !== allowed)\n ? [...filtered, allowed]\n : filtered;\n };\n}\n","import {CHAR_EN_DASH, CHAR_HYPHEN, CHAR_NO_BREAK_SPACE, tuiAssert} from '@taiga-ui/cdk';\nimport {\n MASK_CARET_TRAP,\n TUI_DIGIT_REGEXP,\n TUI_LEADING_ZEROES_REGEXP,\n TUI_NON_DIGITS_REGEXP,\n} from '@taiga-ui/core/constants';\nimport {TuiNumberMaskOptions, TuiTextMaskListHandler} from '@taiga-ui/core/mask';\nimport {TuiDecimalSymbol} from '@taiga-ui/core/types';\nimport {tuiOtherDecimalSymbol} from '@taiga-ui/core/utils/format';\n\nconst NON_ZERO_DIGIT = /[1-9]/;\n\n/**\n * Adaptation for {@link https://github.com/text-mask/text-mask/tree/master/addons#createnumbermask `createNumberMask`}\n */\nexport function tuiCreateNumberMask({\n allowDecimal = false,\n decimalSymbol = `,`,\n thousandSymbol = CHAR_NO_BREAK_SPACE,\n autoCorrectDecimalSymbol = true,\n decimalLimit = 2,\n requireDecimal = false,\n allowNegative = false,\n integerLimit = 0,\n}: TuiNumberMaskOptions = {}): TuiTextMaskListHandler {\n tuiAssert.assert(Number.isInteger(decimalLimit));\n tuiAssert.assert(decimalLimit >= 0);\n tuiAssert.assert(Number.isInteger(integerLimit));\n tuiAssert.assert(integerLimit >= 0);\n\n // eslint-disable-next-line max-statements\n return (rawValue, {previousConformedValue}) => {\n if (previousConformedValue && requireDecimal) {\n const conformedWithoutSeparator = rawValue.split(thousandSymbol).join(``);\n const previousConformedValueWithoutDecimalSymbolAndSeparator =\n previousConformedValue\n .split(thousandSymbol)\n .join(``)\n .split(decimalSymbol)\n .join(``);\n\n // Forbid removal of decimal separator if decimal part is required\n if (\n conformedWithoutSeparator ===\n previousConformedValueWithoutDecimalSymbolAndSeparator\n ) {\n rawValue = previousConformedValue;\n }\n }\n\n const isNegative =\n (rawValue?.startsWith(CHAR_HYPHEN) || rawValue?.startsWith(CHAR_EN_DASH)) &&\n allowNegative;\n\n if (\n isDecimalSymbol(rawValue, decimalSymbol, autoCorrectDecimalSymbol) &&\n allowDecimal\n ) {\n return [`0`, decimalSymbol, TUI_DIGIT_REGEXP];\n }\n\n if (isNegative) {\n rawValue = rawValue.slice(1);\n }\n\n const decimalIndex = getDecimalSymbolIndex(\n rawValue,\n decimalSymbol,\n autoCorrectDecimalSymbol,\n );\n const hasDecimal = decimalIndex !== -1;\n const integer = hasDecimal ? rawValue.slice(0, decimalIndex) : rawValue;\n const thousandSeparators = integer.match(new RegExp(thousandSymbol, `g`)) || [];\n const integerCapped = integerLimit\n ? integer.slice(0, integerLimit + thousandSeparators.length)\n : integer;\n const integerCappedClean = integerCapped.replace(TUI_NON_DIGITS_REGEXP, ``);\n const [leadingZerosMatch] = integerCappedClean.match(\n TUI_LEADING_ZEROES_REGEXP,\n ) || [``];\n const leadingZerosAmount = leadingZerosMatch.length;\n const integerCappedZerosClean = integerCappedClean\n .replace(/^0+(?!\\.|$)/, ``)\n .trim();\n const withSeparator = addThousandsSeparator(\n integerCappedZerosClean,\n thousandSymbol,\n );\n const mask = convertToMask(withSeparator);\n\n if ((hasDecimal && allowDecimal) || requireDecimal) {\n const fraction = hasDecimal\n ? convertToMask(\n rawValue.slice(decimalIndex + 1).replace(TUI_NON_DIGITS_REGEXP, ``),\n )\n : [];\n const fractionCapped = decimalLimit\n ? fraction.slice(0, decimalLimit)\n : fraction;\n\n if (rawValue[decimalIndex] !== tuiOtherDecimalSymbol(decimalSymbol)) {\n mask.push(MASK_CARET_TRAP);\n }\n\n mask.push(decimalSymbol, MASK_CARET_TRAP, ...fractionCapped);\n\n for (let i = 0; i < decimalLimit - fractionCapped.length; i++) {\n mask.push(TUI_DIGIT_REGEXP);\n }\n }\n\n const isOnlyZeroDigit = mask.length === 1 && integerCappedZerosClean === `0`;\n\n if (isNegative) {\n if (mask.length === 0) {\n mask.push(TUI_DIGIT_REGEXP);\n }\n\n mask.unshift(CHAR_HYPHEN);\n }\n\n return preventLeadingZeroes(mask, isOnlyZeroDigit, leadingZerosAmount);\n };\n}\n\nfunction preventLeadingZeroes(\n mask: Array<RegExp | string>,\n isOnlyZeroDigit: boolean = false,\n leadingZerosAmount: number = 0,\n): Array<RegExp | string> {\n if (isOnlyZeroDigit || leadingZerosAmount === 0) {\n return mask;\n }\n\n const firstDigitIndex = mask.indexOf(TUI_DIGIT_REGEXP);\n\n if (firstDigitIndex === -1) {\n return mask;\n }\n\n const secondMaskDigit = mask[firstDigitIndex + 1];\n const isCaretTrap = secondMaskDigit === MASK_CARET_TRAP;\n\n if (isCaretTrap && leadingZerosAmount === 1) {\n return mask;\n }\n\n if (isCaretTrap) {\n mask.unshift(NON_ZERO_DIGIT);\n\n return mask;\n }\n\n mask[firstDigitIndex] = NON_ZERO_DIGIT;\n\n return mask;\n}\n\nfunction getDecimalSymbolIndex(\n str: string,\n decimalSymbol: TuiDecimalSymbol,\n autoCorrectDecimalSymbol: boolean,\n): number {\n if (!autoCorrectDecimalSymbol) {\n return str.lastIndexOf(decimalSymbol);\n }\n\n return Math.max(\n str.lastIndexOf(decimalSymbol),\n str.lastIndexOf(tuiOtherDecimalSymbol(decimalSymbol)),\n );\n}\n\nfunction isDecimalSymbol(\n str: string,\n decimalSymbol: TuiDecimalSymbol,\n autoCorrectDecimalSymbol: boolean,\n): boolean {\n if (autoCorrectDecimalSymbol) {\n return /^[,.]$/.test(str);\n }\n\n return str === decimalSymbol;\n}\n\nfunction convertToMask(strNumber: string): Array<RegExp | string> {\n return strNumber\n .split(``)\n .map(char => (TUI_DIGIT_REGEXP.test(char) ? TUI_DIGIT_REGEXP : char));\n}\n\nfunction addThousandsSeparator(strNumber: string, thousandSymbol: string): string {\n return strNumber.length > 3\n ? // TODO: investigate to disallow potentially catastrophic exponential-time regular expressions.\n // eslint-disable-next-line unicorn/no-unsafe-regex\n strNumber.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSymbol)\n : strNumber;\n}\n","import {TUI_DECIMAL_SYMBOLS} from '@taiga-ui/core/constants';\nimport {TuiNumberFormatSettings} from '@taiga-ui/core/interfaces';\n\nexport function tuiEnableAutoCorrectDecimalSymbol({\n thousandSeparator,\n}: TuiNumberFormatSettings): boolean {\n return !TUI_DECIMAL_SYMBOLS.includes(thousandSeparator);\n}\n","import {CHAR_HYPHEN} from '@taiga-ui/cdk';\n\nexport function tuiMaskedMoneyValueIsEmpty(value: string): boolean {\n switch (value) {\n case ``:\n case CHAR_HYPHEN:\n case `,`:\n case `${CHAR_HYPHEN},`:\n return true;\n default:\n return false;\n }\n}\n","import {TuiDecimalSymbol} from '@taiga-ui/core/types';\n\nexport function tuiMaskedNumberStringToNumber(\n value: string,\n decimalsSymbol: TuiDecimalSymbol,\n thousandSymbol: string,\n): number {\n return parseFloat(\n value.split(thousandSymbol).join(``).split(decimalsSymbol).join(`.`),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ function tuiGetBorder(hasIcon, hasCleaner = false, hasTooltip = false, hasConten
|
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
function tuiIconsPathFactory(staticPath) {
|
|
23
|
-
const base = staticPath
|
|
23
|
+
const base = staticPath.endsWith(`/`) ? staticPath : `${staticPath}/`;
|
|
24
24
|
return name => {
|
|
25
25
|
if (name.startsWith(`tuiIcon`)) {
|
|
26
26
|
return `${base}${name}.svg#${name}`;
|