@taiga-ui/cdk 3.54.0 → 3.55.0-canary.17e839c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/bundles/taiga-ui-cdk-abstract.umd.js +6 -2
  2. package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
  3. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js +2 -2
  4. package/bundles/taiga-ui-cdk-components-dialog-host.umd.js.map +1 -1
  5. package/bundles/taiga-ui-cdk-components-scroll-controls.umd.js +10 -10
  6. package/bundles/taiga-ui-cdk-components-scroll-controls.umd.js.map +1 -1
  7. package/bundles/taiga-ui-cdk-constants.umd.js +14 -14
  8. package/bundles/taiga-ui-cdk-constants.umd.js.map +1 -1
  9. package/bundles/taiga-ui-cdk-date-time.umd.js +2 -4
  10. package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
  11. package/bundles/taiga-ui-cdk-decorators.umd.js +12 -12
  12. package/bundles/taiga-ui-cdk-decorators.umd.js.map +1 -1
  13. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js +4 -16
  14. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
  15. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js +1 -4
  16. package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js.map +1 -1
  17. package/bundles/taiga-ui-cdk-directives-media.umd.js +1 -2
  18. package/bundles/taiga-ui-cdk-directives-media.umd.js.map +1 -1
  19. package/bundles/taiga-ui-cdk-directives-platform.umd.js +4 -1
  20. package/bundles/taiga-ui-cdk-directives-platform.umd.js.map +1 -1
  21. package/bundles/taiga-ui-cdk-services.umd.js +10 -10
  22. package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
  23. package/bundles/taiga-ui-cdk-tokens.umd.js +23 -23
  24. package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
  25. package/bundles/taiga-ui-cdk-utils-color.umd.js +12 -12
  26. package/bundles/taiga-ui-cdk-utils-color.umd.js.map +1 -1
  27. package/bundles/taiga-ui-cdk-utils-dom.umd.js +5 -5
  28. package/bundles/taiga-ui-cdk-utils-dom.umd.js.map +1 -1
  29. package/bundles/taiga-ui-cdk-utils-math.umd.js +16 -16
  30. package/bundles/taiga-ui-cdk-utils-math.umd.js.map +1 -1
  31. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js +3 -3
  32. package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js.map +1 -1
  33. package/bundles/taiga-ui-cdk-utils-svg.umd.js +33 -24
  34. package/bundles/taiga-ui-cdk-utils-svg.umd.js.map +1 -1
  35. package/constants/used-icons.d.ts +1 -1
  36. package/constants/version.d.ts +1 -1
  37. package/constants/version.js +1 -1
  38. package/esm2015/abstract/portal-service.js +7 -3
  39. package/esm2015/components/dialog-host/dialog-host.component.js +3 -3
  40. package/esm2015/components/scroll-controls/scrollbar.directive.js +7 -7
  41. package/esm2015/constants/empty.js +9 -9
  42. package/esm2015/constants/matcher.js +4 -4
  43. package/esm2015/constants/used-icons.js +3 -3
  44. package/esm2015/constants/version.js +2 -2
  45. package/esm2015/date-time/day-range.js +2 -4
  46. package/esm2015/date-time/day.js +2 -2
  47. package/esm2015/decorators/default-prop.js +10 -10
  48. package/esm2015/decorators/required-setter.js +4 -4
  49. package/esm2015/directives/auto-focus/autofocus.options.js +1 -2
  50. package/esm2015/directives/auto-focus/handlers/ios.handler.js +3 -4
  51. package/esm2015/directives/focus-trap/focus-trap.directive.js +2 -5
  52. package/esm2015/directives/media/media.directive.js +2 -3
  53. package/esm2015/directives/platform/platform.directive.js +6 -3
  54. package/esm2015/services/scroll.service.js +11 -11
  55. package/esm2015/tokens/active-element.js +14 -14
  56. package/esm2015/utils/color/hex-to-rgba.js +9 -9
  57. package/esm2015/utils/color/hsv-to-rgb.js +5 -5
  58. package/esm2015/utils/dom/can-scroll.js +6 -6
  59. package/esm2015/utils/math/round.js +13 -13
  60. package/esm2015/utils/miscellaneous/clean-object.js +4 -4
  61. package/esm2015/utils/svg/svg-linear-gradient-processor.js +34 -25
  62. package/fesm2015/taiga-ui-cdk-abstract.js +6 -2
  63. package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
  64. package/fesm2015/taiga-ui-cdk-components-dialog-host.js +2 -2
  65. package/fesm2015/taiga-ui-cdk-components-dialog-host.js.map +1 -1
  66. package/fesm2015/taiga-ui-cdk-components-scroll-controls.js +6 -6
  67. package/fesm2015/taiga-ui-cdk-components-scroll-controls.js.map +1 -1
  68. package/fesm2015/taiga-ui-cdk-constants.js +14 -14
  69. package/fesm2015/taiga-ui-cdk-constants.js.map +1 -1
  70. package/fesm2015/taiga-ui-cdk-date-time.js +2 -4
  71. package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
  72. package/fesm2015/taiga-ui-cdk-decorators.js +12 -12
  73. package/fesm2015/taiga-ui-cdk-decorators.js.map +1 -1
  74. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js +2 -3
  75. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  76. package/fesm2015/taiga-ui-cdk-directives-focus-trap.js +1 -4
  77. package/fesm2015/taiga-ui-cdk-directives-focus-trap.js.map +1 -1
  78. package/fesm2015/taiga-ui-cdk-directives-media.js +1 -2
  79. package/fesm2015/taiga-ui-cdk-directives-media.js.map +1 -1
  80. package/fesm2015/taiga-ui-cdk-directives-platform.js +5 -2
  81. package/fesm2015/taiga-ui-cdk-directives-platform.js.map +1 -1
  82. package/fesm2015/taiga-ui-cdk-services.js +10 -10
  83. package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
  84. package/fesm2015/taiga-ui-cdk-tokens.js +15 -15
  85. package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
  86. package/fesm2015/taiga-ui-cdk-utils-color.js +12 -12
  87. package/fesm2015/taiga-ui-cdk-utils-color.js.map +1 -1
  88. package/fesm2015/taiga-ui-cdk-utils-dom.js +5 -5
  89. package/fesm2015/taiga-ui-cdk-utils-dom.js.map +1 -1
  90. package/fesm2015/taiga-ui-cdk-utils-math.js +12 -12
  91. package/fesm2015/taiga-ui-cdk-utils-math.js.map +1 -1
  92. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js +3 -3
  93. package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
  94. package/fesm2015/taiga-ui-cdk-utils-svg.js +33 -24
  95. package/fesm2015/taiga-ui-cdk-utils-svg.js.map +1 -1
  96. package/package.json +69 -68
  97. package/schematics/ng-add/index.js +10 -10
  98. package/schematics/ng-add/steps/add-taiga-modules.js +36 -36
  99. package/schematics/ng-add/steps/wrap-with-tui-root.js +21 -21
  100. package/schematics/ng-update/steps/rename-types.js +8 -8
  101. package/schematics/ng-update/steps/replace-enums.js +8 -8
  102. package/schematics/ng-update/steps/replace-services.js +8 -8
  103. package/schematics/ng-update/steps/show-warnings.js +4 -4
  104. package/schematics/ng-update/utils/templates/template-comments.d.ts +1 -2
  105. package/schematics/ng-update/v3/constants/warnings.js +1 -1
  106. package/schematics/ng-update/v3/index.js +17 -17
  107. package/schematics/ng-update/v3/steps/migrate-date-time.js +92 -92
  108. package/schematics/ng-update/v3/steps/migrate-polymorpheus.js +35 -35
  109. package/schematics/ng-update/v3/steps/migrate-progress.d.ts +4 -0
  110. package/schematics/ng-update/v3/steps/migrate-progress.js +20 -20
  111. package/schematics/ng-update/v3/steps/migrate-sliders/migrate-input-range.js +44 -46
  112. package/schematics/ng-update/v3/steps/migrate-sliders/migrate-input-slider.js +28 -29
  113. package/schematics/ng-update/v3/steps/migrate-templates.js +37 -36
  114. package/schematics/ng-update/v3/steps/migrate-textfield-controller.js +21 -21
  115. package/schematics/ng-update/v3/steps/miscellaneous.js +32 -32
  116. package/schematics/ng-update/v3/steps/replace-functions.js +18 -18
  117. package/schematics/ng-update/v3-30/index.js +3 -4
  118. package/schematics/ng-update/v3-35/index.js +3 -4
  119. package/schematics/ng-update/v3-36/index.js +0 -1
  120. package/schematics/ng-update/v3-40/index.js +11 -13
  121. package/schematics/ng-update/v3-5/index.js +0 -1
  122. package/schematics/ng-update/v3-5/steps/migrate-expand-templates.js +17 -17
  123. package/schematics/ng-update/v4/index.js +12 -12
  124. package/schematics/ng-update/v4/steps/migrate-templates.js +3 -3
  125. package/schematics/ng-update/v4/steps/restore-tui-mapper.js +6 -6
  126. package/schematics/ng-update/v4/steps/restore-tui-matcher.js +6 -6
  127. package/schematics/ng-update/v4/steps/templates/migrate-avatar.js +24 -24
  128. package/schematics/ng-update/v4/steps/utils/replace-substrings.js +2 -2
  129. package/schematics/utils/angular-json-manipulations.js +8 -9
  130. package/schematics/utils/templates/get-component-templates.js +8 -8
  131. package/utils/svg/svg-linear-gradient-processor.d.ts +6 -1
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-auto-focus.js","sources":["../../../projects/cdk/directives/auto-focus/handlers/abstract.handler.ts","../../../projects/cdk/directives/auto-focus/handlers/default.handler.ts","../../../projects/cdk/directives/auto-focus/handlers/ios.handler.ts","../../../projects/cdk/directives/auto-focus/autofocus.options.ts","../../../projects/cdk/directives/auto-focus/autofocus.directive.ts","../../../projects/cdk/directives/auto-focus/autofocus.module.ts","../../../projects/cdk/directives/auto-focus/handlers/sync.handler.ts","../../../projects/cdk/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.ts"],"sourcesContent":["import {Directive, ElementRef} from '@angular/core';\nimport {\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk/interfaces';\n\nimport type {TuiAutofocusHandler} from '../autofocus.options';\n\n@Directive()\nexport abstract class AbstractTuiAutofocusHandler implements TuiAutofocusHandler {\n protected constructor(\n protected readonly focusable: TuiFocusableElementAccessor | null,\n protected readonly el: ElementRef<HTMLElement>,\n ) {}\n\n protected get element(): TuiNativeFocusableElement {\n return this.focusable?.nativeFocusableElement || this.el.nativeElement;\n }\n\n protected get isTextFieldElement(): boolean {\n return this.element.matches(`input, textarea, [contenteditable]`);\n }\n\n abstract setFocus(): void;\n}\n","import {Directive, ElementRef, Inject, Optional, Self} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk/tokens';\nimport {Observable, race, timer} from 'rxjs';\nimport {map, skipWhile, take, throttleTime} from 'rxjs/operators';\n\nimport {AbstractTuiAutofocusHandler} from './abstract.handler';\n\nconst TIMEOUT = 1000;\nconst NG_ANIMATION_SELECTOR = `.ng-animating`;\n\n@Directive()\nexport class TuiDefaultAutofocusHandler extends AbstractTuiAutofocusHandler {\n constructor(\n @Optional()\n @Self()\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n focusable: TuiFocusableElementAccessor | null,\n @Inject(ElementRef) el: ElementRef<HTMLElement>,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n ) {\n super(focusable, el);\n }\n\n setFocus(): void {\n if (this.isTextFieldElement) {\n race(\n timer(TIMEOUT),\n this.animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(() => this.element.closest(NG_ANIMATION_SELECTOR)),\n skipWhile(Boolean),\n take(1),\n ),\n ).subscribe(() => this.element.focus({preventScroll: true}));\n } else {\n this.element.focus({preventScroll: true});\n }\n }\n}\n","import {\n Directive,\n ElementRef,\n Inject,\n NgZone,\n Optional,\n Renderer2,\n Self,\n} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk/tokens';\nimport {tuiIsPresent, tuiPx} from '@taiga-ui/cdk/utils';\n\nimport {AbstractTuiAutofocusHandler} from './abstract.handler';\n\nconst TEXTFIELD_ATTRS = [\n `type`,\n `inputMode`,\n `autocomplete`,\n `accept`,\n `min`,\n `max`,\n `step`,\n `pattern`,\n `size`,\n `maxlength`,\n] as const;\n\n@Directive()\nexport class TuiIosAutofocusHandler extends AbstractTuiAutofocusHandler {\n constructor(\n @Optional()\n @Self()\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n focusable: TuiFocusableElementAccessor | null,\n @Inject(ElementRef) el: ElementRef<HTMLElement>,\n @Inject(Renderer2) private readonly renderer: Renderer2,\n @Inject(NgZone) private readonly zone: NgZone,\n @Inject(WINDOW) private readonly win: Window,\n ) {\n super(focusable, el);\n this.patchCssStyles();\n }\n\n setFocus(): void {\n if (this.isTextFieldElement) {\n this.zone.runOutsideAngular(() => this.iosWebkitAutofocus());\n } else {\n this.element.focus({preventScroll: true});\n }\n }\n\n private iosWebkitAutofocus(): void {\n const fakeInput: HTMLInputElement = this.makeFakeInput();\n const duration = this.getDurationTimeBeforeFocus();\n let fakeFocusTimeoutId = 0;\n let elementFocusTimeoutId = 0;\n\n const blurHandler = (): void => fakeInput.focus({preventScroll: true});\n const focusHandler = (): void => {\n clearTimeout(fakeFocusTimeoutId);\n\n fakeFocusTimeoutId = this.win.setTimeout(() => {\n clearTimeout(elementFocusTimeoutId);\n\n fakeInput.removeEventListener(`blur`, blurHandler);\n fakeInput.removeEventListener(`focus`, focusHandler);\n\n elementFocusTimeoutId = this.win.setTimeout(() => {\n this.element.focus({preventScroll: false});\n fakeInput.remove();\n }, duration);\n });\n };\n\n fakeInput.addEventListener(`blur`, blurHandler, {once: true});\n fakeInput.addEventListener(`focus`, focusHandler);\n\n if (this.insideDialog()) {\n this.win.document.body.appendChild(fakeInput);\n } else {\n this.element.parentElement?.appendChild(fakeInput);\n }\n\n fakeInput.focus({preventScroll: true});\n }\n\n /**\n * @note:\n * emulate textfield position in layout with cursor\n * before focus to real textfield element\n *\n * required note:\n * [fakeInput.readOnly = true] ~\n * don't use {readOnly: true} value, it's doesn't work for emulate autofill\n *\n * [fakeInput.style.opacity = 0] ~\n * don't use {opacity: 0}, sometimes it's doesn't work for emulate real input\n *\n * [fakeInput.style.fontSize = 16px] ~\n * disable possible auto zoom\n *\n * [fakeInput.style.top/left] ~\n * emulate position cursor before focus to real textfield element\n */\n private makeFakeInput(): HTMLInputElement {\n const fakeInput: HTMLInputElement = this.renderer.createElement(`input`);\n const rect: DOMRect = this.element.getBoundingClientRect();\n\n this.patchFakeInputFromFocusableElement(fakeInput);\n\n fakeInput.style.height = tuiPx(rect.height);\n fakeInput.style.width = tuiPx(rect.width / 2);\n fakeInput.style.position = `fixed`;\n fakeInput.style.zIndex = `-99999999`;\n fakeInput.style.caretColor = `transparent`;\n fakeInput.style.border = `none`;\n fakeInput.style.outline = `none`;\n fakeInput.style.color = `transparent`;\n fakeInput.style.background = `transparent`;\n fakeInput.style.cursor = `none`;\n fakeInput.style.fontSize = tuiPx(16);\n fakeInput.style.top = tuiPx(rect.top);\n fakeInput.style.left = tuiPx(rect.left);\n\n return fakeInput;\n }\n\n private getDurationTimeBeforeFocus(): number {\n return (\n parseFloat(\n this.win\n .getComputedStyle(this.element)\n .getPropertyValue(`--tui-duration`),\n ) || 0\n );\n }\n\n /**\n * @note:\n * unfortunately, in older versions of iOS\n * there is a bug that the fake input cursor\n * will move along with the dialog animation\n * and then that dialog will be shaking\n */\n private insideDialog(): boolean {\n return !!this.element.closest(`tui-dialog`);\n }\n\n /**\n * @note:\n * This is necessary so that the viewport isn't recalculated\n * and then the dialogs don't shake.\n *\n * Also, we need to fixed height viewport,\n * so that when focusing the dialogs don't shake\n */\n private patchCssStyles(): void {\n const doc = this.win.document;\n\n for (const element of [doc.documentElement, doc.body]) {\n element.style.setProperty(`overflow`, `auto`);\n element.style.setProperty(`height`, `100%`);\n }\n }\n\n /**\n * @note:\n * inherit basic attributes values from real input\n * for help iOS detect what do you want see on keyboard,\n * for example [inputMode=numeric, autocomplete=cc-number]\n */\n private patchFakeInputFromFocusableElement(fakeInput: HTMLInputElement): void {\n TEXTFIELD_ATTRS.forEach(attr => {\n const value = this.element.getAttribute(attr);\n\n if (tuiIsPresent(value)) {\n fakeInput.setAttribute(attr, value);\n }\n });\n }\n}\n","import {\n ElementRef,\n InjectionToken,\n NgZone,\n Optional,\n Provider,\n Renderer2,\n Self,\n} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\nimport {TuiDestroyService} from '@taiga-ui/cdk/services';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {Observable} from 'rxjs';\n\nimport {TuiDefaultAutofocusHandler} from './handlers/default.handler';\n// eslint-disable-next-line import/no-cycle\nimport {TuiIosAutofocusHandler} from './handlers/ios.handler';\n\nexport interface TuiAutofocusHandler {\n setFocus(): void;\n}\n\nexport interface TuiAutofocusOptions {\n readonly delay: number;\n}\n\nexport const TUI_AUTOFOCUS_DEFAULT_OPTIONS: TuiAutofocusOptions = {\n delay: NaN, // NaN = no delay/sync\n};\n\nexport const TUI_AUTOFOCUS_OPTIONS = tuiCreateToken(TUI_AUTOFOCUS_DEFAULT_OPTIONS);\n\nexport function tuiAutoFocusOptionsProvider(\n options: Partial<TuiAutofocusOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_AUTOFOCUS_OPTIONS,\n options,\n TUI_AUTOFOCUS_DEFAULT_OPTIONS,\n );\n}\n\nexport const TUI_AUTOFOCUS_HANDLER = new InjectionToken<TuiAutofocusHandler>(\n `[TUI_AUTOFOCUS_HANDLER]`,\n);\n\nexport const TUI_AUTOFOCUS_PROVIDERS = [\n {\n provide: TUI_AUTOFOCUS_HANDLER,\n useFactory: (\n focusable: TuiFocusableElementAccessor | null,\n el: ElementRef<HTMLElement>,\n animationFrame$: Observable<number>,\n renderer: Renderer2,\n zone: NgZone,\n win: Window,\n isIos: boolean,\n ) =>\n isIos\n ? new TuiIosAutofocusHandler(focusable, el, renderer, zone, win)\n : new TuiDefaultAutofocusHandler(focusable, el, animationFrame$),\n deps: [\n [new Optional(), new Self(), TUI_FOCUSABLE_ITEM_ACCESSOR],\n ElementRef,\n ANIMATION_FRAME,\n Renderer2,\n NgZone,\n WINDOW,\n TUI_IS_IOS,\n ],\n },\n TuiDestroyService,\n];\n","import {AfterViewInit, Directive, Inject, Input, Self} from '@angular/core';\nimport {tuiCoerceBooleanProperty} from '@taiga-ui/cdk/coercion';\nimport {TuiDestroyService} from '@taiga-ui/cdk/services';\nimport {timer} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {\n TUI_AUTOFOCUS_HANDLER,\n TUI_AUTOFOCUS_OPTIONS,\n TUI_AUTOFOCUS_PROVIDERS,\n TuiAutofocusHandler,\n TuiAutofocusOptions,\n} from './autofocus.options';\n\n@Directive({\n selector: '[tuiAutoFocus]',\n providers: TUI_AUTOFOCUS_PROVIDERS,\n})\nexport class TuiAutoFocusDirective implements AfterViewInit {\n @Input('tuiAutoFocus')\n autoFocus: boolean | '' = true;\n\n constructor(\n @Inject(TUI_AUTOFOCUS_HANDLER)\n private readonly handler: TuiAutofocusHandler,\n @Inject(TUI_AUTOFOCUS_OPTIONS)\n private readonly options: TuiAutofocusOptions,\n @Self()\n @Inject(TuiDestroyService)\n private readonly destroy$: TuiDestroyService,\n ) {}\n\n ngAfterViewInit(): void {\n if (tuiCoerceBooleanProperty(this.autoFocus)) {\n this.focus();\n }\n }\n\n focus(): void {\n if (Number.isNaN(this.options.delay)) {\n void Promise.resolve().then(() => this.handler.setFocus());\n } else {\n timer(this.options.delay)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.handler.setFocus());\n }\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiAutoFocusDirective} from './autofocus.directive';\n\n@NgModule({\n declarations: [TuiAutoFocusDirective],\n exports: [TuiAutoFocusDirective],\n})\nexport class TuiAutoFocusModule {}\n","import {Directive, ElementRef, Inject, Optional, Self} from '@angular/core';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk/tokens';\n\nimport {AbstractTuiAutofocusHandler} from './abstract.handler';\n\n@Directive()\nexport class TuiSynchronousAutofocusHandler extends AbstractTuiAutofocusHandler {\n constructor(\n @Optional()\n @Self()\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n focusable: TuiFocusableElementAccessor | null,\n @Inject(ElementRef) el: ElementRef<HTMLElement>,\n ) {\n super(focusable, el);\n }\n\n setFocus(): void {\n this.element.focus({preventScroll: true});\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-auto-focus.js","sources":["../../../projects/cdk/directives/auto-focus/handlers/abstract.handler.ts","../../../projects/cdk/directives/auto-focus/handlers/default.handler.ts","../../../projects/cdk/directives/auto-focus/handlers/ios.handler.ts","../../../projects/cdk/directives/auto-focus/autofocus.options.ts","../../../projects/cdk/directives/auto-focus/autofocus.directive.ts","../../../projects/cdk/directives/auto-focus/autofocus.module.ts","../../../projects/cdk/directives/auto-focus/handlers/sync.handler.ts","../../../projects/cdk/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.ts"],"sourcesContent":["import {Directive, ElementRef} from '@angular/core';\nimport {\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk/interfaces';\n\nimport type {TuiAutofocusHandler} from '../autofocus.options';\n\n@Directive()\nexport abstract class AbstractTuiAutofocusHandler implements TuiAutofocusHandler {\n protected constructor(\n protected readonly focusable: TuiFocusableElementAccessor | null,\n protected readonly el: ElementRef<HTMLElement>,\n ) {}\n\n protected get element(): TuiNativeFocusableElement {\n return this.focusable?.nativeFocusableElement || this.el.nativeElement;\n }\n\n protected get isTextFieldElement(): boolean {\n return this.element.matches(`input, textarea, [contenteditable]`);\n }\n\n abstract setFocus(): void;\n}\n","import {Directive, ElementRef, Inject, Optional, Self} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk/tokens';\nimport {Observable, race, timer} from 'rxjs';\nimport {map, skipWhile, take, throttleTime} from 'rxjs/operators';\n\nimport {AbstractTuiAutofocusHandler} from './abstract.handler';\n\nconst TIMEOUT = 1000;\nconst NG_ANIMATION_SELECTOR = `.ng-animating`;\n\n@Directive()\nexport class TuiDefaultAutofocusHandler extends AbstractTuiAutofocusHandler {\n constructor(\n @Optional()\n @Self()\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n focusable: TuiFocusableElementAccessor | null,\n @Inject(ElementRef) el: ElementRef<HTMLElement>,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n ) {\n super(focusable, el);\n }\n\n setFocus(): void {\n if (this.isTextFieldElement) {\n race(\n timer(TIMEOUT),\n this.animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(() => this.element.closest(NG_ANIMATION_SELECTOR)),\n skipWhile(Boolean),\n take(1),\n ),\n ).subscribe(() => this.element.focus({preventScroll: true}));\n } else {\n this.element.focus({preventScroll: true});\n }\n }\n}\n","import {\n Directive,\n ElementRef,\n Inject,\n NgZone,\n Optional,\n Renderer2,\n Self,\n} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk/tokens';\nimport {tuiIsPresent, tuiPx} from '@taiga-ui/cdk/utils';\n\nimport {AbstractTuiAutofocusHandler} from './abstract.handler';\n\nconst TEXTFIELD_ATTRS = [\n `type`,\n `inputMode`,\n `autocomplete`,\n `accept`,\n `min`,\n `max`,\n `step`,\n `pattern`,\n `size`,\n `maxlength`,\n] as const;\n\n@Directive()\nexport class TuiIosAutofocusHandler extends AbstractTuiAutofocusHandler {\n constructor(\n @Optional()\n @Self()\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n focusable: TuiFocusableElementAccessor | null,\n @Inject(ElementRef) el: ElementRef<HTMLElement>,\n @Inject(Renderer2) private readonly renderer: Renderer2,\n @Inject(NgZone) private readonly zone: NgZone,\n @Inject(WINDOW) private readonly win: Window,\n ) {\n super(focusable, el);\n this.patchCssStyles();\n }\n\n setFocus(): void {\n if (this.isTextFieldElement) {\n this.zone.runOutsideAngular(() => this.iosWebkitAutofocus());\n } else {\n this.element.focus({preventScroll: true});\n }\n }\n\n private iosWebkitAutofocus(): void {\n const fakeInput: HTMLInputElement = this.makeFakeInput();\n const duration = this.getDurationTimeBeforeFocus();\n let fakeFocusTimeoutId = 0;\n let elementFocusTimeoutId = 0;\n\n const blurHandler = (): void => fakeInput.focus({preventScroll: true});\n const focusHandler = (): void => {\n clearTimeout(fakeFocusTimeoutId);\n\n fakeFocusTimeoutId = this.win.setTimeout(() => {\n clearTimeout(elementFocusTimeoutId);\n\n fakeInput.removeEventListener(`blur`, blurHandler);\n fakeInput.removeEventListener(`focus`, focusHandler);\n\n elementFocusTimeoutId = this.win.setTimeout(() => {\n this.element.focus({preventScroll: false});\n fakeInput.remove();\n }, duration);\n });\n };\n\n fakeInput.addEventListener(`blur`, blurHandler, {once: true});\n fakeInput.addEventListener(`focus`, focusHandler);\n\n if (this.insideDialog()) {\n this.win.document.body.appendChild(fakeInput);\n } else {\n this.element.parentElement?.appendChild(fakeInput);\n }\n\n fakeInput.focus({preventScroll: true});\n }\n\n /**\n * @note:\n * emulate textfield position in layout with cursor\n * before focus to real textfield element\n *\n * required note:\n * [fakeInput.readOnly = true] ~\n * don't use {readOnly: true} value, it's doesn't work for emulate autofill\n *\n * [fakeInput.style.opacity = 0] ~\n * don't use {opacity: 0}, sometimes it's doesn't work for emulate real input\n *\n * [fakeInput.style.fontSize = 16px] ~\n * disable possible auto zoom\n *\n * [fakeInput.style.top/left] ~\n * emulate position cursor before focus to real textfield element\n */\n private makeFakeInput(): HTMLInputElement {\n const fakeInput: HTMLInputElement = this.renderer.createElement(`input`);\n const rect: DOMRect = this.element.getBoundingClientRect();\n\n this.patchFakeInputFromFocusableElement(fakeInput);\n\n fakeInput.style.height = tuiPx(rect.height);\n fakeInput.style.width = tuiPx(rect.width / 2);\n fakeInput.style.position = `fixed`;\n fakeInput.style.zIndex = `-99999999`;\n fakeInput.style.caretColor = `transparent`;\n fakeInput.style.border = `none`;\n fakeInput.style.outline = `none`;\n fakeInput.style.color = `transparent`;\n fakeInput.style.background = `transparent`;\n fakeInput.style.cursor = `none`;\n fakeInput.style.fontSize = tuiPx(16);\n fakeInput.style.top = tuiPx(rect.top);\n fakeInput.style.left = tuiPx(rect.left);\n\n return fakeInput;\n }\n\n private getDurationTimeBeforeFocus(): number {\n return (\n parseFloat(\n this.win\n .getComputedStyle(this.element)\n .getPropertyValue(`--tui-duration`),\n ) || 0\n );\n }\n\n /**\n * @note:\n * unfortunately, in older versions of iOS\n * there is a bug that the fake input cursor\n * will move along with the dialog animation\n * and then that dialog will be shaking\n */\n private insideDialog(): boolean {\n return !!this.element.closest(`tui-dialog`);\n }\n\n /**\n * @note:\n * This is necessary so that the viewport isn't recalculated\n * and then the dialogs don't shake.\n *\n * Also, we need to fixed height viewport,\n * so that when focusing the dialogs don't shake\n */\n private patchCssStyles(): void {\n [this.win.document.documentElement, this.win.document.body].forEach(element => {\n element.style.setProperty(`overflow`, `auto`);\n element.style.setProperty(`height`, `100%`);\n });\n }\n\n /**\n * @note:\n * inherit basic attributes values from real input\n * for help iOS detect what do you want see on keyboard,\n * for example [inputMode=numeric, autocomplete=cc-number]\n */\n private patchFakeInputFromFocusableElement(fakeInput: HTMLInputElement): void {\n TEXTFIELD_ATTRS.forEach(attr => {\n const value = this.element.getAttribute(attr);\n\n if (tuiIsPresent(value)) {\n fakeInput.setAttribute(attr, value);\n }\n });\n }\n}\n","import {\n ElementRef,\n InjectionToken,\n NgZone,\n Optional,\n Provider,\n Renderer2,\n Self,\n} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\nimport {TuiDestroyService} from '@taiga-ui/cdk/services';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {tuiCreateToken, tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {Observable} from 'rxjs';\n\nimport {TuiDefaultAutofocusHandler} from './handlers/default.handler';\nimport {TuiIosAutofocusHandler} from './handlers/ios.handler';\n\nexport interface TuiAutofocusHandler {\n setFocus(): void;\n}\n\nexport interface TuiAutofocusOptions {\n readonly delay: number;\n}\n\nexport const TUI_AUTOFOCUS_DEFAULT_OPTIONS: TuiAutofocusOptions = {\n delay: NaN, // NaN = no delay/sync\n};\n\nexport const TUI_AUTOFOCUS_OPTIONS = tuiCreateToken(TUI_AUTOFOCUS_DEFAULT_OPTIONS);\n\nexport function tuiAutoFocusOptionsProvider(\n options: Partial<TuiAutofocusOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_AUTOFOCUS_OPTIONS,\n options,\n TUI_AUTOFOCUS_DEFAULT_OPTIONS,\n );\n}\n\nexport const TUI_AUTOFOCUS_HANDLER = new InjectionToken<TuiAutofocusHandler>(\n `[TUI_AUTOFOCUS_HANDLER]`,\n);\n\nexport const TUI_AUTOFOCUS_PROVIDERS = [\n {\n provide: TUI_AUTOFOCUS_HANDLER,\n useFactory: (\n focusable: TuiFocusableElementAccessor | null,\n el: ElementRef<HTMLElement>,\n animationFrame$: Observable<number>,\n renderer: Renderer2,\n zone: NgZone,\n win: Window,\n isIos: boolean,\n ) =>\n isIos\n ? new TuiIosAutofocusHandler(focusable, el, renderer, zone, win)\n : new TuiDefaultAutofocusHandler(focusable, el, animationFrame$),\n deps: [\n [new Optional(), new Self(), TUI_FOCUSABLE_ITEM_ACCESSOR],\n ElementRef,\n ANIMATION_FRAME,\n Renderer2,\n NgZone,\n WINDOW,\n TUI_IS_IOS,\n ],\n },\n TuiDestroyService,\n];\n","import {AfterViewInit, Directive, Inject, Input, Self} from '@angular/core';\nimport {tuiCoerceBooleanProperty} from '@taiga-ui/cdk/coercion';\nimport {TuiDestroyService} from '@taiga-ui/cdk/services';\nimport {timer} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {\n TUI_AUTOFOCUS_HANDLER,\n TUI_AUTOFOCUS_OPTIONS,\n TUI_AUTOFOCUS_PROVIDERS,\n TuiAutofocusHandler,\n TuiAutofocusOptions,\n} from './autofocus.options';\n\n@Directive({\n selector: '[tuiAutoFocus]',\n providers: TUI_AUTOFOCUS_PROVIDERS,\n})\nexport class TuiAutoFocusDirective implements AfterViewInit {\n @Input('tuiAutoFocus')\n autoFocus: boolean | '' = true;\n\n constructor(\n @Inject(TUI_AUTOFOCUS_HANDLER)\n private readonly handler: TuiAutofocusHandler,\n @Inject(TUI_AUTOFOCUS_OPTIONS)\n private readonly options: TuiAutofocusOptions,\n @Self()\n @Inject(TuiDestroyService)\n private readonly destroy$: TuiDestroyService,\n ) {}\n\n ngAfterViewInit(): void {\n if (tuiCoerceBooleanProperty(this.autoFocus)) {\n this.focus();\n }\n }\n\n focus(): void {\n if (Number.isNaN(this.options.delay)) {\n void Promise.resolve().then(() => this.handler.setFocus());\n } else {\n timer(this.options.delay)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.handler.setFocus());\n }\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiAutoFocusDirective} from './autofocus.directive';\n\n@NgModule({\n declarations: [TuiAutoFocusDirective],\n exports: [TuiAutoFocusDirective],\n})\nexport class TuiAutoFocusModule {}\n","import {Directive, ElementRef, Inject, Optional, Self} from '@angular/core';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk/tokens';\n\nimport {AbstractTuiAutofocusHandler} from './abstract.handler';\n\n@Directive()\nexport class TuiSynchronousAutofocusHandler extends AbstractTuiAutofocusHandler {\n constructor(\n @Optional()\n @Self()\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n focusable: TuiFocusableElementAccessor | null,\n @Inject(ElementRef) el: ElementRef<HTMLElement>,\n ) {\n super(focusable, el);\n }\n\n setFocus(): void {\n this.element.focus({preventScroll: true});\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;MASsB,2BAA2B,CAAA;IAC7C,WACuB,CAAA,SAA6C,EAC7C,EAA2B,EAAA;QAD3B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAoC;QAC7C,IAAE,CAAA,EAAA,GAAF,EAAE,CAAyB;KAC9C;AAEJ,IAAA,IAAc,OAAO,GAAA;;AACjB,QAAA,OAAO,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,sBAAsB,KAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;KAC1E;AAED,IAAA,IAAc,kBAAkB,GAAA;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA,kCAAA,CAAoC,CAAC,CAAC;KACrE;;yHAZiB,2BAA2B,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;6GAA3B,2BAA2B,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADhD,SAAS;;;ACEV,MAAM,OAAO,GAAG,IAAI,CAAC;AACrB,MAAM,qBAAqB,GAAG,CAAA,aAAA,CAAe,CAAC;AAGxC,MAAO,0BAA2B,SAAQ,2BAA2B,CAAA;AACvE,IAAA,WAAA,CAII,SAA6C,EACzB,EAA2B,EACL,eAAmC,EAAA;AAE7E,QAAA,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAFqB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAoB;KAGhF;IAED,QAAQ,GAAA;QACJ,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CACA,KAAK,CAAC,OAAO,CAAC,EACd,IAAI,CAAC,eAAe,CAAC,IAAI,CACrB,YAAY,CAAC,YAAY,CAAC,EAC1B,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,EACtD,SAAS,CAAC,OAAO,CAAC,EAClB,IAAI,CAAC,CAAC,CAAC,CACV,CACJ,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;AAChE,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC;AAC7C,SAAA;KACJ;;AA1BQ,0BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,EAIvB,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,2BAA2B,EAE3B,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,UAAU,aACV,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4GAPlB,0BAA0B,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,SAAS;;0BAGD,QAAQ;;0BACR,IAAI;;0BACJ,MAAM;2BAAC,2BAA2B,CAAA;;0BAElC,MAAM;2BAAC,UAAU,CAAA;;0BACjB,MAAM;2BAAC,eAAe,CAAA;;;ACL/B,MAAM,eAAe,GAAG;IACpB,CAAM,IAAA,CAAA;IACN,CAAW,SAAA,CAAA;IACX,CAAc,YAAA,CAAA;IACd,CAAQ,MAAA,CAAA;IACR,CAAK,GAAA,CAAA;IACL,CAAK,GAAA,CAAA;IACL,CAAM,IAAA,CAAA;IACN,CAAS,OAAA,CAAA;IACT,CAAM,IAAA,CAAA;IACN,CAAW,SAAA,CAAA;CACL,CAAC;AAGL,MAAO,sBAAuB,SAAQ,2BAA2B,CAAA;IACnE,WAII,CAAA,SAA6C,EACzB,EAA2B,EACX,QAAmB,EACtB,IAAY,EACZ,GAAW,EAAA;AAE5C,QAAA,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAJe,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACtB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QACZ,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QAG5C,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;IAED,QAAQ,GAAA;QACJ,IAAI,IAAI,CAAC,kBAAkB,EAAE;AACzB,YAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;AAChE,SAAA;AAAM,aAAA;YACH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC;AAC7C,SAAA;KACJ;IAEO,kBAAkB,GAAA;;AACtB,QAAA,MAAM,SAAS,GAAqB,IAAI,CAAC,aAAa,EAAE,CAAC;AACzD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACnD,IAAI,kBAAkB,GAAG,CAAC,CAAC;QAC3B,IAAI,qBAAqB,GAAG,CAAC,CAAC;AAE9B,QAAA,MAAM,WAAW,GAAG,MAAY,SAAS,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC;QACvE,MAAM,YAAY,GAAG,MAAW;YAC5B,YAAY,CAAC,kBAAkB,CAAC,CAAC;YAEjC,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAK;gBAC1C,YAAY,CAAC,qBAAqB,CAAC,CAAC;AAEpC,gBAAA,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACnD,gBAAA,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBAErD,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAK;oBAC7C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,KAAK,EAAC,CAAC,CAAC;oBAC3C,SAAS,CAAC,MAAM,EAAE,CAAC;iBACtB,EAAE,QAAQ,CAAC,CAAC;AACjB,aAAC,CAAC,CAAC;AACP,SAAC,CAAC;AAEF,QAAA,SAAS,CAAC,gBAAgB,CAAC,CAAA,IAAA,CAAM,EAAE,WAAW,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;AAC9D,QAAA,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAElD,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACrB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AACjD,SAAA;AAAM,aAAA;YACH,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,aAAa,0CAAE,WAAW,CAAC,SAAS,CAAC,CAAC;AACtD,SAAA;QAED,SAAS,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC;KAC1C;AAED;;;;;;;;;;;;;;;;;AAiBG;IACK,aAAa,GAAA;QACjB,MAAM,SAAS,GAAqB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAO,KAAA,CAAA,CAAC,CAAC;QACzE,MAAM,IAAI,GAAY,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;AAE3D,QAAA,IAAI,CAAC,kCAAkC,CAAC,SAAS,CAAC,CAAC;QAEnD,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5C,QAAA,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAC9C,QAAA,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;AACnC,QAAA,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC;AACrC,QAAA,SAAS,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,CAAC;AAC3C,QAAA,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AAChC,QAAA,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;AACjC,QAAA,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC;AACtC,QAAA,SAAS,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,CAAC;AAC3C,QAAA,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAChC,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;QACrC,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAExC,QAAA,OAAO,SAAS,CAAC;KACpB;IAEO,0BAA0B,GAAA;AAC9B,QAAA,QACI,UAAU,CACN,IAAI,CAAC,GAAG;AACH,aAAA,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC9B,aAAA,gBAAgB,CAAC,CAAgB,cAAA,CAAA,CAAC,CAC1C,IAAI,CAAC,EACR;KACL;AAED;;;;;;AAMG;IACK,YAAY,GAAA;QAChB,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAY,UAAA,CAAA,CAAC,CAAC;KAC/C;AAED;;;;;;;AAOG;IACK,cAAc,GAAA;QAClB,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,IAAG;YAC1E,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAU,QAAA,CAAA,EAAE,CAAM,IAAA,CAAA,CAAC,CAAC;YAC9C,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAQ,MAAA,CAAA,EAAE,CAAM,IAAA,CAAA,CAAC,CAAC;AAChD,SAAC,CAAC,CAAC;KACN;AAED;;;;;AAKG;AACK,IAAA,kCAAkC,CAAC,SAA2B,EAAA;AAClE,QAAA,eAAe,CAAC,OAAO,CAAC,IAAI,IAAG;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AAE9C,YAAA,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;AACrB,gBAAA,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACvC,aAAA;AACL,SAAC,CAAC,CAAC;KACN;;oHArJQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAInB,2BAA2B,EAE3B,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,UAAU,aACV,SAAS,EAAA,EAAA,EAAA,KAAA,EACT,MAAM,EAAA,EAAA,EAAA,KAAA,EACN,MAAM,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;wGATT,sBAAsB,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,SAAS;;0BAGD,QAAQ;;0BACR,IAAI;;0BACJ,MAAM;2BAAC,2BAA2B,CAAA;;0BAElC,MAAM;2BAAC,UAAU,CAAA;;0BACjB,MAAM;2BAAC,SAAS,CAAA;;0BAChB,MAAM;2BAAC,MAAM,CAAA;8BACwB,MAAM,EAAA,UAAA,EAAA,CAAA;0BAA3C,MAAM;2BAAC,MAAM,CAAA;;;ACZT,MAAA,6BAA6B,GAAwB;IAC9D,KAAK,EAAE,GAAG;EACZ;MAEW,qBAAqB,GAAG,cAAc,CAAC,6BAA6B,EAAE;AAE7E,SAAU,2BAA2B,CACvC,OAAqC,EAAA;IAErC,OAAO,iBAAiB,CACpB,qBAAqB,EACrB,OAAO,EACP,6BAA6B,CAChC,CAAC;AACN,CAAC;MAEY,qBAAqB,GAAG,IAAI,cAAc,CACnD,CAAyB,uBAAA,CAAA,EAC3B;AAEW,MAAA,uBAAuB,GAAG;AACnC,IAAA;AACI,QAAA,OAAO,EAAE,qBAAqB;AAC9B,QAAA,UAAU,EAAE,CACR,SAA6C,EAC7C,EAA2B,EAC3B,eAAmC,EACnC,QAAmB,EACnB,IAAY,EACZ,GAAW,EACX,KAAc,KAEd,KAAK;AACD,cAAE,IAAI,sBAAsB,CAAC,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC;cAC9D,IAAI,0BAA0B,CAAC,SAAS,EAAE,EAAE,EAAE,eAAe,CAAC;AACxE,QAAA,IAAI,EAAE;YACF,CAAC,IAAI,QAAQ,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,2BAA2B,CAAC;YACzD,UAAU;YACV,eAAe;YACf,SAAS;YACT,MAAM;YACN,MAAM;YACN,UAAU;AACb,SAAA;AACJ,KAAA;IACD,iBAAiB;;;MCtDR,qBAAqB,CAAA;AAI9B,IAAA,WAAA,CAEqB,OAA4B,EAE5B,OAA4B,EAG5B,QAA2B,EAAA;QAL3B,IAAO,CAAA,OAAA,GAAP,OAAO,CAAqB;QAE5B,IAAO,CAAA,OAAA,GAAP,OAAO,CAAqB;QAG5B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAmB;QAThD,IAAS,CAAA,SAAA,GAAiB,IAAI,CAAC;KAU3B;IAEJ,eAAe,GAAA;AACX,QAAA,IAAI,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;AAChB,SAAA;KACJ;IAED,KAAK,GAAA;QACD,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAClC,YAAA,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9D,SAAA;AAAM,aAAA;AACH,YAAA,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACpB,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC9B,SAAS,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AACjD,SAAA;KACJ;;AA5BQ,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EAKlB,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,qBAAqB,EAErB,EAAA,EAAA,KAAA,EAAA,qBAAqB,aAGrB,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAVpB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,+FAFnB,uBAAuB,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAEzB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,SAAS,EAAE,uBAAuB;AACrC,iBAAA,CAAA;;0BAMQ,MAAM;2BAAC,qBAAqB,CAAA;;0BAE5B,MAAM;2BAAC,qBAAqB,CAAA;;0BAE5B,IAAI;;0BACJ,MAAM;2BAAC,iBAAiB,CAAA;4CAR7B,SAAS,EAAA,CAAA;sBADR,KAAK;uBAAC,cAAc,CAAA;;;MCXZ,kBAAkB,CAAA;;gHAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;iHAAlB,kBAAkB,EAAA,YAAA,EAAA,CAHZ,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAC1B,qBAAqB,CAAA,EAAA,CAAA,CAAA;iHAEtB,kBAAkB,EAAA,CAAA,CAAA;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,qBAAqB,CAAC;oBACrC,OAAO,EAAE,CAAC,qBAAqB,CAAC;AACnC,iBAAA,CAAA;;;ACAK,MAAO,8BAA+B,SAAQ,2BAA2B,CAAA;IAC3E,WAII,CAAA,SAA6C,EACzB,EAA2B,EAAA;AAE/C,QAAA,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;KACxB;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAC,aAAa,EAAE,IAAI,EAAC,CAAC,CAAC;KAC7C;;4HAbQ,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAI3B,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAE3B,UAAU,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gHANb,8BAA8B,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAD1C,SAAS;;0BAGD,QAAQ;;0BACR,IAAI;;0BACJ,MAAM;2BAAC,2BAA2B,CAAA;;0BAElC,MAAM;2BAAC,UAAU,CAAA;;;ACb1B;;AAEG;;;;"}
@@ -15,10 +15,7 @@ class TuiFocusTrapDirective {
15
15
  * but it might cause ExpressionChanged error due to potential HostBinding.
16
16
  * Microtask keeps it in the same frame but allows change detection to run
17
17
  */
18
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
19
- Promise.resolve().then(() => {
20
- this.el.nativeElement.focus();
21
- });
18
+ void Promise.resolve().then(() => this.el.nativeElement.focus());
22
19
  }
23
20
  onBlur() {
24
21
  this.renderer.removeAttribute(this.el.nativeElement, 'tabIndex');
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-focus-trap.js","sources":["../../../projects/cdk/directives/focus-trap/focus-trap.directive.ts","../../../projects/cdk/directives/focus-trap/focus-trap.module.ts","../../../projects/cdk/directives/focus-trap/taiga-ui-cdk-directives-focus-trap.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n Directive,\n ElementRef,\n HostListener,\n Inject,\n OnDestroy,\n Renderer2,\n} from '@angular/core';\nimport {tuiContainsOrAfter, tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n tuiBlurNativeFocused,\n tuiGetClosestFocusable,\n tuiGetNativeFocused,\n} from '@taiga-ui/cdk/utils/focus';\n\n@Directive({\n selector: '[tuiFocusTrap]',\n host: {\n tabIndex: '0',\n },\n})\nexport class TuiFocusTrapDirective implements OnDestroy {\n private readonly activeElement = tuiGetNativeFocused(this.doc);\n\n constructor(\n @Inject(DOCUMENT) private readonly doc: Document,\n @Inject(ElementRef)\n private readonly el: ElementRef<HTMLElement>,\n @Inject(Renderer2) private readonly renderer: Renderer2,\n ) {\n /**\n * This would cause currently focused element to lose focus,\n * but it might cause ExpressionChanged error due to potential HostBinding.\n * Microtask keeps it in the same frame but allows change detection to run\n */\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n Promise.resolve().then(() => {\n this.el.nativeElement.focus();\n });\n }\n\n @HostListener('blur')\n onBlur(): void {\n this.renderer.removeAttribute(this.el.nativeElement, 'tabIndex');\n }\n\n @HostListener('window:focusin.silent', ['$event.target'])\n onFocusIn(node: Node): void {\n const {nativeElement} = this.el;\n\n if (tuiContainsOrAfter(nativeElement, node)) {\n return;\n }\n\n const focusable = tuiGetClosestFocusable({\n initial: nativeElement,\n root: nativeElement,\n });\n\n if (focusable) {\n focusable.focus();\n }\n }\n\n ngOnDestroy(): void {\n tuiBlurNativeFocused(this.doc);\n\n /**\n * HostListeners are triggered even after ngOnDestroy\n * {@link https://github.com/angular/angular/issues/38100}\n * so we need to delay it but stay in the same sync cycle,\n * therefore using Promise instead of setTimeout\n */\n // eslint-disable-next-line\n Promise.resolve().then(() => {\n if (tuiIsHTMLElement(this.activeElement)) {\n this.activeElement.focus();\n }\n });\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiFocusTrapDirective} from './focus-trap.directive';\n\n@NgModule({\n declarations: [TuiFocusTrapDirective],\n exports: [TuiFocusTrapDirective],\n})\nexport class TuiFocusTrapModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-focus-trap.js","sources":["../../../projects/cdk/directives/focus-trap/focus-trap.directive.ts","../../../projects/cdk/directives/focus-trap/focus-trap.module.ts","../../../projects/cdk/directives/focus-trap/taiga-ui-cdk-directives-focus-trap.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n Directive,\n ElementRef,\n HostListener,\n Inject,\n OnDestroy,\n Renderer2,\n} from '@angular/core';\nimport {tuiContainsOrAfter, tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\nimport {\n tuiBlurNativeFocused,\n tuiGetClosestFocusable,\n tuiGetNativeFocused,\n} from '@taiga-ui/cdk/utils/focus';\n\n@Directive({\n selector: '[tuiFocusTrap]',\n host: {\n tabIndex: '0',\n },\n})\nexport class TuiFocusTrapDirective implements OnDestroy {\n private readonly activeElement = tuiGetNativeFocused(this.doc);\n\n constructor(\n @Inject(DOCUMENT) private readonly doc: Document,\n @Inject(ElementRef)\n private readonly el: ElementRef<HTMLElement>,\n @Inject(Renderer2) private readonly renderer: Renderer2,\n ) {\n /**\n * This would cause currently focused element to lose focus,\n * but it might cause ExpressionChanged error due to potential HostBinding.\n * Microtask keeps it in the same frame but allows change detection to run\n */\n void Promise.resolve().then(() => this.el.nativeElement.focus());\n }\n\n @HostListener('blur')\n onBlur(): void {\n this.renderer.removeAttribute(this.el.nativeElement, 'tabIndex');\n }\n\n @HostListener('window:focusin.silent', ['$event.target'])\n onFocusIn(node: Node): void {\n const {nativeElement} = this.el;\n\n if (tuiContainsOrAfter(nativeElement, node)) {\n return;\n }\n\n const focusable = tuiGetClosestFocusable({\n initial: nativeElement,\n root: nativeElement,\n });\n\n if (focusable) {\n focusable.focus();\n }\n }\n\n ngOnDestroy(): void {\n tuiBlurNativeFocused(this.doc);\n\n /**\n * HostListeners are triggered even after ngOnDestroy\n * {@link https://github.com/angular/angular/issues/38100}\n * so we need to delay it but stay in the same sync cycle,\n * therefore using Promise instead of setTimeout\n */\n // eslint-disable-next-line\n Promise.resolve().then(() => {\n if (tuiIsHTMLElement(this.activeElement)) {\n this.activeElement.focus();\n }\n });\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiFocusTrapDirective} from './focus-trap.directive';\n\n@NgModule({\n declarations: [TuiFocusTrapDirective],\n exports: [TuiFocusTrapDirective],\n})\nexport class TuiFocusTrapModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -26,8 +26,7 @@ class TuiMediaDirective {
26
26
  this.el.nativeElement.pause();
27
27
  }
28
28
  else {
29
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
30
- this.el.nativeElement.play();
29
+ void this.el.nativeElement.play();
31
30
  this.updatePlaybackRate(this.playbackRate);
32
31
  }
33
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-media.js","sources":["../../../projects/cdk/directives/media/media.directive.ts","../../../projects/cdk/directives/media/media.module.ts","../../../projects/cdk/directives/media/taiga-ui-cdk-directives-media.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Output,\n} from '@angular/core';\n\n@Directive({\n selector: 'video[tuiMedia], audio[tuiMedia]',\n exportAs: 'tuiMedia',\n})\nexport class TuiMediaDirective {\n private playbackRate = 1;\n\n @Input()\n @HostBinding('volume')\n volume = 1;\n\n @Input('playbackRate')\n set playbackRateSetter(playbackRate: number) {\n this.updatePlaybackRate(playbackRate);\n }\n\n @Output()\n readonly currentTimeChange = new EventEmitter<number>();\n\n @Output()\n readonly pausedChange = new EventEmitter<boolean>();\n\n @Output()\n readonly volumeChange = new EventEmitter<number>();\n\n constructor(\n @Inject(ElementRef)\n private readonly el: ElementRef<HTMLMediaElement>,\n ) {}\n\n @Input()\n set currentTime(currentTime: number) {\n if (Math.abs(currentTime - this.currentTime) > 0.05) {\n this.el.nativeElement.currentTime = currentTime;\n }\n }\n\n get currentTime(): number {\n return this.el.nativeElement.currentTime;\n }\n\n @Input()\n set paused(paused: boolean) {\n if (paused) {\n this.el.nativeElement.pause();\n } else {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this.el.nativeElement.play();\n this.updatePlaybackRate(this.playbackRate);\n }\n }\n\n get paused(): boolean {\n return this.el.nativeElement.paused;\n }\n\n // @bad TODO: Make sure no other events can affect this like network issues etc.\n @HostListener('ended', ['true'])\n @HostListener('pause', ['true'])\n @HostListener('play', ['false'])\n onPausedChange(paused: boolean): void {\n this.pausedChange.emit(paused);\n this.updatePlaybackRate(this.playbackRate);\n }\n\n @HostListener('volumechange')\n onVolumeChange(): void {\n this.volume = this.el.nativeElement.volume;\n this.volumeChange.emit(this.volume);\n }\n\n @HostListener('timeupdate')\n @HostListener('seeking')\n @HostListener('seeked')\n onCurrentTimeChange(): void {\n this.currentTimeChange.emit(this.currentTime);\n }\n\n @HostListener('durationchange')\n changeDetectionTrigger(): void {\n // @bad TODO: consider if other events need to trigger CD\n }\n\n private updatePlaybackRate(playbackRate: number): void {\n this.playbackRate = playbackRate;\n this.el.nativeElement.playbackRate = this.playbackRate;\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiMediaDirective} from './media.directive';\n\n@NgModule({\n declarations: [TuiMediaDirective],\n exports: [TuiMediaDirective],\n})\nexport class TuiMediaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-media.js","sources":["../../../projects/cdk/directives/media/media.directive.ts","../../../projects/cdk/directives/media/media.module.ts","../../../projects/cdk/directives/media/taiga-ui-cdk-directives-media.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Output,\n} from '@angular/core';\n\n@Directive({\n selector: 'video[tuiMedia], audio[tuiMedia]',\n exportAs: 'tuiMedia',\n})\nexport class TuiMediaDirective {\n private playbackRate = 1;\n\n @Input()\n @HostBinding('volume')\n volume = 1;\n\n @Input('playbackRate')\n set playbackRateSetter(playbackRate: number) {\n this.updatePlaybackRate(playbackRate);\n }\n\n @Output()\n readonly currentTimeChange = new EventEmitter<number>();\n\n @Output()\n readonly pausedChange = new EventEmitter<boolean>();\n\n @Output()\n readonly volumeChange = new EventEmitter<number>();\n\n constructor(\n @Inject(ElementRef)\n private readonly el: ElementRef<HTMLMediaElement>,\n ) {}\n\n @Input()\n set currentTime(currentTime: number) {\n if (Math.abs(currentTime - this.currentTime) > 0.05) {\n this.el.nativeElement.currentTime = currentTime;\n }\n }\n\n get currentTime(): number {\n return this.el.nativeElement.currentTime;\n }\n\n @Input()\n set paused(paused: boolean) {\n if (paused) {\n this.el.nativeElement.pause();\n } else {\n void this.el.nativeElement.play();\n this.updatePlaybackRate(this.playbackRate);\n }\n }\n\n get paused(): boolean {\n return this.el.nativeElement.paused;\n }\n\n // @bad TODO: Make sure no other events can affect this like network issues etc.\n @HostListener('ended', ['true'])\n @HostListener('pause', ['true'])\n @HostListener('play', ['false'])\n onPausedChange(paused: boolean): void {\n this.pausedChange.emit(paused);\n this.updatePlaybackRate(this.playbackRate);\n }\n\n @HostListener('volumechange')\n onVolumeChange(): void {\n this.volume = this.el.nativeElement.volume;\n this.volumeChange.emit(this.volume);\n }\n\n @HostListener('timeupdate')\n @HostListener('seeking')\n @HostListener('seeked')\n onCurrentTimeChange(): void {\n this.currentTimeChange.emit(this.currentTime);\n }\n\n @HostListener('durationchange')\n changeDetectionTrigger(): void {\n // @bad TODO: consider if other events need to trigger CD\n }\n\n private updatePlaybackRate(playbackRate: number): void {\n this.playbackRate = playbackRate;\n this.el.nativeElement.playbackRate = this.playbackRate;\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiMediaDirective} from './media.directive';\n\n@NgModule({\n declarations: [TuiMediaDirective],\n exports: [TuiMediaDirective],\n})\nexport class TuiMediaModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAea,iBAAiB,CAAA;AAqB1B,IAAA,WAAA,CAEqB,EAAgC,EAAA;QAAhC,IAAE,CAAA,EAAA,GAAF,EAAE,CAA8B;QAtB7C,IAAY,CAAA,YAAA,GAAG,CAAC,CAAC;QAIzB,IAAM,CAAA,MAAA,GAAG,CAAC,CAAC;AAQF,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAU,CAAC;AAG/C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAW,CAAC;AAG3C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAU,CAAC;KAK/C;IAjBJ,IACI,kBAAkB,CAAC,YAAoB,EAAA;AACvC,QAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;KACzC;IAgBD,IACI,WAAW,CAAC,WAAmB,EAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE;YACjD,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,GAAG,WAAW,CAAC;AACnD,SAAA;KACJ;AAED,IAAA,IAAI,WAAW,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC;KAC5C;IAED,IACI,MAAM,CAAC,MAAe,EAAA;AACtB,QAAA,IAAI,MAAM,EAAE;AACR,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACjC,SAAA;AAAM,aAAA;YACH,KAAK,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAClC,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC9C,SAAA;KACJ;AAED,IAAA,IAAI,MAAM,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC;KACvC;;AAMD,IAAA,cAAc,CAAC,MAAe,EAAA;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC9C;IAGD,cAAc,GAAA;QACV,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC;QAC3C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACvC;IAKD,mBAAmB,GAAA;QACf,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACjD;IAGD,sBAAsB,GAAA;;KAErB;AAEO,IAAA,kBAAkB,CAAC,YAAoB,EAAA;AAC3C,QAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;KAC1D;;AAjFQ,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAsBd,UAAU,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAtBb,iBAAiB,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,CAAA,cAAA,EAAA,oBAAA,CAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,sBAAA,EAAA,OAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,0BAAA,EAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kCAAkC;AAC5C,oBAAA,QAAQ,EAAE,UAAU;AACvB,iBAAA,CAAA;;0BAuBQ,MAAM;2BAAC,UAAU,CAAA;4CAjBtB,MAAM,EAAA,CAAA;sBAFL,KAAK;;sBACL,WAAW;uBAAC,QAAQ,CAAA;gBAIjB,kBAAkB,EAAA,CAAA;sBADrB,KAAK;uBAAC,cAAc,CAAA;gBAMZ,iBAAiB,EAAA,CAAA;sBADzB,MAAM;gBAIE,YAAY,EAAA,CAAA;sBADpB,MAAM;gBAIE,YAAY,EAAA,CAAA;sBADpB,MAAM;gBASH,WAAW,EAAA,CAAA;sBADd,KAAK;gBAYF,MAAM,EAAA,CAAA;sBADT,KAAK;gBAkBN,cAAc,EAAA,CAAA;sBAHb,YAAY;uBAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAA;;sBAC9B,YAAY;uBAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAA;;sBAC9B,YAAY;uBAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAA;gBAO/B,cAAc,EAAA,CAAA;sBADb,YAAY;uBAAC,cAAc,CAAA;gBAS5B,mBAAmB,EAAA,CAAA;sBAHlB,YAAY;uBAAC,YAAY,CAAA;;sBACzB,YAAY;uBAAC,SAAS,CAAA;;sBACtB,YAAY;uBAAC,QAAQ,CAAA;gBAMtB,sBAAsB,EAAA,CAAA;sBADrB,YAAY;uBAAC,gBAAgB,CAAA;;;MChFrB,cAAc,CAAA;;4GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;6GAAd,cAAc,EAAA,YAAA,EAAA,CAHR,iBAAiB,CAAA,EAAA,OAAA,EAAA,CACtB,iBAAiB,CAAA,EAAA,CAAA,CAAA;6GAElB,cAAc,EAAA,CAAA,CAAA;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,iBAAiB,CAAC;oBACjC,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC/B,iBAAA,CAAA;;;ACPD;;AAEG;;;;"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, Input, NgModule } from '@angular/core';
2
+ import { Directive, Input, HostBinding, NgModule } from '@angular/core';
3
3
  import { TUI_PLATFORM, tuiPlatformFactory } from '@taiga-ui/cdk/tokens';
4
4
 
5
5
  class TuiPlatformDirective {
@@ -8,7 +8,7 @@ class TuiPlatformDirective {
8
8
  }
9
9
  }
10
10
  TuiPlatformDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPlatformDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
11
- TuiPlatformDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiPlatformDirective, selector: "[tuiPlatform]", inputs: { tuiPlatform: "tuiPlatform" }, providers: [
11
+ TuiPlatformDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiPlatformDirective, selector: "[tuiPlatform]", inputs: { tuiPlatform: "tuiPlatform" }, host: { properties: { "attr.data-platform": "this.tuiPlatform" } }, providers: [
12
12
  {
13
13
  provide: TUI_PLATFORM,
14
14
  deps: [TuiPlatformDirective],
@@ -29,6 +29,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
29
29
  }]
30
30
  }], propDecorators: { tuiPlatform: [{
31
31
  type: Input
32
+ }, {
33
+ type: HostBinding,
34
+ args: ['attr.data-platform']
32
35
  }] } });
33
36
 
34
37
  class TuiPlatformModule {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-platform.js","sources":["../../../projects/cdk/directives/platform/platform.directive.ts","../../../projects/cdk/directives/platform/platform.module.ts","../../../projects/cdk/directives/platform/taiga-ui-cdk-directives-platform.ts"],"sourcesContent":["import {Directive, Input} from '@angular/core';\nimport {TUI_PLATFORM, tuiPlatformFactory} from '@taiga-ui/cdk/tokens';\nimport {TuiPlatform} from '@taiga-ui/cdk/types';\n\n@Directive({\n selector: '[tuiPlatform]',\n providers: [\n {\n provide: TUI_PLATFORM,\n deps: [TuiPlatformDirective],\n useFactory: ({tuiPlatform}: TuiPlatformDirective) =>\n tuiPlatform || tuiPlatformFactory(),\n },\n ],\n})\nexport class TuiPlatformDirective {\n @Input()\n tuiPlatform: TuiPlatform | '' = '';\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiPlatformDirective} from './platform.directive';\n\n@NgModule({\n declarations: [TuiPlatformDirective],\n exports: [TuiPlatformDirective],\n})\nexport class TuiPlatformModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAea,oBAAoB,CAAA;AAXjC,IAAA,WAAA,GAAA;QAaI,IAAW,CAAA,WAAA,GAAqB,EAAE,CAAC;AACtC,KAAA;;kHAHY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EATlB,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE,CAAC,oBAAoB,CAAC;YAC5B,UAAU,EAAE,CAAC,EAAC,WAAW,EAAuB,KAC5C,WAAW,IAAI,kBAAkB,EAAE;AAC1C,SAAA;AACJ,KAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAEQ,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAXhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,YAAY;AACrB,4BAAA,IAAI,EAAE,CAAsB,oBAAA,CAAA;4BAC5B,UAAU,EAAE,CAAC,EAAC,WAAW,EAAuB,KAC5C,WAAW,IAAI,kBAAkB,EAAE;AAC1C,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;8BAGG,WAAW,EAAA,CAAA;sBADV,KAAK;;;MCRG,iBAAiB,CAAA;;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAjB,iBAAiB,EAAA,YAAA,EAAA,CAHX,oBAAoB,CAAA,EAAA,OAAA,EAAA,CACzB,oBAAoB,CAAA,EAAA,CAAA,CAAA;gHAErB,iBAAiB,EAAA,CAAA,CAAA;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,oBAAoB,CAAC;oBACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAClC,iBAAA,CAAA;;;ACPD;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-platform.js","sources":["../../../projects/cdk/directives/platform/platform.directive.ts","../../../projects/cdk/directives/platform/platform.module.ts","../../../projects/cdk/directives/platform/taiga-ui-cdk-directives-platform.ts"],"sourcesContent":["import {Directive, HostBinding, Input} from '@angular/core';\nimport {TUI_PLATFORM, tuiPlatformFactory} from '@taiga-ui/cdk/tokens';\nimport {TuiPlatform} from '@taiga-ui/cdk/types';\n\n@Directive({\n selector: '[tuiPlatform]',\n providers: [\n {\n provide: TUI_PLATFORM,\n deps: [TuiPlatformDirective],\n useFactory: ({tuiPlatform}: TuiPlatformDirective) =>\n tuiPlatform || tuiPlatformFactory(),\n },\n ],\n})\nexport class TuiPlatformDirective {\n @Input()\n @HostBinding('attr.data-platform')\n tuiPlatform: TuiPlatform | '' = '';\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiPlatformDirective} from './platform.directive';\n\n@NgModule({\n declarations: [TuiPlatformDirective],\n exports: [TuiPlatformDirective],\n})\nexport class TuiPlatformModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAea,oBAAoB,CAAA;AAXjC,IAAA,WAAA,GAAA;QAcI,IAAW,CAAA,WAAA,GAAqB,EAAE,CAAC;AACtC,KAAA;;kHAJY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EATlB,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACP,QAAA;AACI,YAAA,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE,CAAC,oBAAoB,CAAC;YAC5B,UAAU,EAAE,CAAC,EAAC,WAAW,EAAuB,KAC5C,WAAW,IAAI,kBAAkB,EAAE;AAC1C,SAAA;AACJ,KAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;4FAEQ,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAXhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,SAAS,EAAE;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,YAAY;AACrB,4BAAA,IAAI,EAAE,CAAsB,oBAAA,CAAA;4BAC5B,UAAU,EAAE,CAAC,EAAC,WAAW,EAAuB,KAC5C,WAAW,IAAI,kBAAkB,EAAE;AAC1C,yBAAA;AACJ,qBAAA;AACJ,iBAAA,CAAA;8BAIG,WAAW,EAAA,CAAA;sBAFV,KAAK;;sBACL,WAAW;uBAAC,oBAAoB,CAAA;;;MCTxB,iBAAiB,CAAA;;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAjB,iBAAiB,EAAA,YAAA,EAAA,CAHX,oBAAoB,CAAA,EAAA,OAAA,EAAA,CACzB,oBAAoB,CAAA,EAAA,CAAA,CAAA;gHAErB,iBAAiB,EAAA,CAAA,CAAA;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,oBAAoB,CAAC;oBACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAClC,iBAAA,CAAA;;;ACPD;;AAEG;;;;"}
@@ -258,6 +258,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
258
258
  }] }]; } });
259
259
 
260
260
  const SCROLL_TIME = 300;
261
+ function getX(elementOrWindow) {
262
+ return `scrollX` in elementOrWindow
263
+ ? elementOrWindow.scrollX
264
+ : elementOrWindow.scrollLeft;
265
+ }
266
+ function getY(elementOrWindow) {
267
+ return `scrollY` in elementOrWindow
268
+ ? elementOrWindow.scrollY
269
+ : elementOrWindow.scrollTop;
270
+ }
261
271
  class TuiScrollService {
262
272
  constructor(performanceRef, animationFrame$) {
263
273
  this.performanceRef = performanceRef;
@@ -297,16 +307,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
297
307
  type: Inject,
298
308
  args: [ANIMATION_FRAME]
299
309
  }] }]; } });
300
- function getX(elementOrWindow) {
301
- return `scrollX` in elementOrWindow
302
- ? elementOrWindow.scrollX
303
- : elementOrWindow.scrollLeft;
304
- }
305
- function getY(elementOrWindow) {
306
- return `scrollY` in elementOrWindow
307
- ? elementOrWindow.scrollY
308
- : elementOrWindow.scrollTop;
309
- }
310
310
 
311
311
  class TuiStaticRequestService {
312
312
  constructor(win, platformId) {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-services.js","sources":["../../../projects/cdk/services/destroy.service.ts","../../../projects/cdk/services/directive-styles.service.ts","../../../projects/cdk/services/focus-visible.service.ts","../../../projects/cdk/services/id.service.ts","../../../projects/cdk/services/parents-scroll.service.ts","../../../projects/cdk/services/obscured.service.ts","../../../projects/cdk/services/pan.service.ts","../../../projects/cdk/services/resize.service.ts","../../../projects/cdk/services/scroll.service.ts","../../../projects/cdk/services/static-request.service.ts","../../../projects/cdk/services/swipe.service.ts","../../../projects/cdk/services/zoom.service.ts","../../../projects/cdk/services/taiga-ui-cdk-services.ts"],"sourcesContent":["import {Injectable, OnDestroy} from '@angular/core';\nimport {ReplaySubject} from 'rxjs';\n\n/**\n * @note:\n * Observable abstraction over ngOnDestroy to use with takeUntil\n *\n * Why we use `ReplaySubject` instead of `Subject`?\n * Well, we’ll use ReplaySubject to emit the last message in case\n * the subscription is ended after the component is destroyed.\n */\n@Injectable()\nexport class TuiDestroyService extends ReplaySubject<void> implements OnDestroy {\n constructor() {\n super(1);\n }\n\n ngOnDestroy(): void {\n this.next();\n this.complete();\n }\n}\n","import {\n ComponentFactoryResolver,\n Inject,\n Injectable,\n INJECTOR,\n Injector,\n Type,\n} from '@angular/core';\n\n/**\n * Service to use styles with directives\n */\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiDirectiveStylesService {\n private readonly map = new Map<Type<unknown>, unknown>();\n\n constructor(\n @Inject(ComponentFactoryResolver)\n private readonly resolver: ComponentFactoryResolver,\n @Inject(INJECTOR) private readonly injector: Injector,\n ) {}\n\n addComponent(component: Type<unknown>): void {\n if (!this.map.has(component)) {\n this.map.set(\n component,\n this.resolver.resolveComponentFactory(component).create(this.injector),\n );\n }\n }\n}\n","import {ChangeDetectorRef, ElementRef, Inject, Injectable, Self} from '@angular/core';\nimport {tuiFocusVisibleObservable, tuiWatch} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n/**\n * Service to imitate :focus-visible\n * (https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible)\n * in browsers that do not support it\n */\n@Injectable()\nexport class TuiFocusVisibleService extends Observable<boolean> {\n private readonly focusVisible$: Observable<boolean>;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(ChangeDetectorRef) cdr: ChangeDetectorRef,\n @Self() @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n super(subscriber => this.focusVisible$.subscribe(subscriber));\n\n this.focusVisible$ = tuiFocusVisibleObservable(nativeElement).pipe(\n tuiWatch(cdr),\n takeUntil(destroy$),\n );\n }\n}\n","import {Injectable} from '@angular/core';\n\nconst TUI = `tui_`;\n\n/**\n * Generates unique ids\n */\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiIdService {\n private static autoId = 0;\n\n generate(): string {\n return `${TUI}${TuiIdService.autoId++}${Date.now()}`;\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {defer, merge, Observable} from 'rxjs';\n\n/**\n * Service that subscribes to scroll events of all parent elements\n */\n@Injectable()\nexport class TuiParentsScrollService extends Observable<Event> {\n private readonly callback$: Observable<Event>;\n\n constructor(\n // Destructuring here causes memory leak\n @Inject(ElementRef) el: ElementRef<Element>,\n @Inject(WINDOW) win: Window,\n ) {\n super(subscriber => this.callback$.subscribe(subscriber));\n\n this.callback$ = defer(() => {\n let {nativeElement} = el;\n const eventTargets: Array<Element | Window> = [win, nativeElement];\n\n while (nativeElement.parentElement) {\n nativeElement = nativeElement.parentElement;\n eventTargets.push(nativeElement);\n }\n\n return merge(\n ...eventTargets.map<Observable<Event>>(element =>\n tuiTypedFromEvent(element, `scroll`),\n ),\n );\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone, Self} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {tuiGetElementObscures} from '@taiga-ui/cdk/utils/dom';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {\n delay,\n distinctUntilChanged,\n map,\n startWith,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\nimport {TuiParentsScrollService} from './parents-scroll.service';\n\n// @bad TODO: Consider Intersection Observer with fallback to current implementation\n/**\n * Service that monitors element visibility by subscribing to scrolls\n * and polling with set interval, returns either null or an array\n * of elements that overlap given element edges\n */\n@Injectable()\nexport class TuiObscuredService extends Observable<readonly Element[] | null> {\n private readonly obscured$: Observable<readonly Element[] | null>;\n\n constructor(\n @Inject(TuiParentsScrollService)\n @Self()\n parentsScroll$: TuiParentsScrollService,\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(NgZone) zone: NgZone,\n @Inject(WINDOW) win: Window,\n @Self() @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(subscriber => this.obscured$.subscribe(subscriber));\n\n this.obscured$ = merge(\n // delay is added so it will not interfere with other listeners\n merge(parentsScroll$, fromEvent(win, `resize`)).pipe(delay(0)),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n ).pipe(\n map(() => tuiGetElementObscures(nativeElement)),\n startWith(null),\n distinctUntilChanged(),\n tuiZoneOptimized(zone),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise, repeat, switchMap, takeUntil} from 'rxjs/operators';\n\n@Injectable()\nexport class TuiPanService extends Observable<readonly [number, number]> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(DOCUMENT) doc: Document,\n ) {\n super(subscriber => {\n merge(\n tuiTypedFromEvent(nativeElement, `touchstart`, {passive: true}),\n tuiTypedFromEvent(nativeElement, `mousedown`),\n )\n .pipe(\n switchMap(() =>\n merge(\n tuiTypedFromEvent(doc, `touchmove`, {\n passive: true,\n }).pipe(\n filter(({touches}) => touches.length < 2),\n map(({touches}) => touches[0]),\n ),\n tuiTypedFromEvent(doc, `mousemove`),\n ),\n ),\n pairwise(),\n map(([first, second]) => {\n const deltaX = second.clientX - first.clientX;\n const deltaY = second.clientY - first.clientY;\n\n return [deltaX, deltaY] as [number, number];\n }),\n // eslint-disable-next-line rxjs/no-unsafe-takeuntil\n takeUntil(\n merge(\n tuiTypedFromEvent(doc, `touchend`),\n tuiTypedFromEvent(doc, `mouseup`),\n ),\n ),\n repeat(),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone, Self} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n RESIZE_OBSERVER_SUPPORT,\n RESIZE_OPTION_BOX,\n ResizeObserverService,\n} from '@ng-web-apis/resize-observer';\nimport {EMPTY_ARRAY, POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n map,\n share,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n// TODO: Remove in 4.0 when Safari is bumped to 13\n@Injectable()\nexport class TuiResizeService extends ResizeObserverService {\n constructor(\n @Inject(ElementRef) el: ElementRef<HTMLElement>,\n @Inject(NgZone) zone: NgZone,\n @Self() @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(RESIZE_OBSERVER_SUPPORT) support: boolean,\n @Inject(RESIZE_OPTION_BOX) box: ResizeObserverBoxOptions,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(el, zone, support, box);\n\n return this.pipe(\n catchError(() =>\n /**\n * @note: if not supported ResizeObserver\n * remove `catchError` after supports modern browsers\n */\n animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(\n () =>\n `${el.nativeElement.clientWidth} ${el.nativeElement.clientHeight}`,\n ),\n distinctUntilChanged(),\n map(() => EMPTY_ARRAY),\n ),\n ),\n debounceTime(0),\n tuiZonefree(zone),\n share(),\n takeUntil(destroy$),\n );\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {ANIMATION_FRAME, PERFORMANCE} from '@ng-web-apis/common';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {tuiEaseInOutQuad} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {defer, Observable, of, timer} from 'rxjs';\nimport {endWith, map, switchMap, takeUntil, tap} from 'rxjs/operators';\n\nconst SCROLL_TIME = 300;\n\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiScrollService {\n constructor(\n @Inject(PERFORMANCE) private readonly performanceRef: Performance,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n ) {}\n\n scroll$(\n elementOrWindow: Element | Window,\n scrollTop: number,\n scrollLeft: number = getX(elementOrWindow),\n duration: number = SCROLL_TIME,\n ): Observable<[number, number]> {\n ngDevMode && tuiAssert.assert(duration >= 0, `Duration cannot be negative`);\n ngDevMode && tuiAssert.assert(scrollTop >= 0, `scrollTop cannot be negative`);\n ngDevMode && tuiAssert.assert(scrollLeft >= 0, `scrollLeft cannot be negative`);\n\n const initialTop = getY(elementOrWindow);\n const initialLeft = getX(elementOrWindow);\n const deltaTop = scrollTop - initialTop;\n const deltaLeft = scrollLeft - initialLeft;\n const observable = !duration\n ? of<[number, number]>([scrollTop, scrollLeft])\n : defer(() => of(this.performanceRef.now())).pipe(\n switchMap(start => this.animationFrame$.pipe(map(now => now - start))),\n map(elapsed => tuiEaseInOutQuad(tuiClamp(elapsed / duration, 0, 1))),\n map<number, [number, number]>(percent => [\n initialTop + deltaTop * percent,\n initialLeft + deltaLeft * percent,\n ]),\n endWith<[number, number]>([scrollTop, scrollLeft]),\n takeUntil(timer(duration)),\n );\n\n return observable.pipe(\n tap(([scrollTop, scrollLeft]) => {\n elementOrWindow.scrollTo?.(scrollLeft, scrollTop);\n }),\n );\n }\n}\n\nfunction getX(elementOrWindow: Element | Window): number {\n return `scrollX` in elementOrWindow\n ? elementOrWindow.scrollX\n : elementOrWindow.scrollLeft;\n}\n\nfunction getY(elementOrWindow: Element | Window): number {\n return `scrollY` in elementOrWindow\n ? elementOrWindow.scrollY\n : elementOrWindow.scrollTop;\n}\n","import {isPlatformServer} from '@angular/common';\nimport {Inject, Injectable, PLATFORM_ID} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {defer, from, Observable} from 'rxjs';\nimport {fromFetch} from 'rxjs/fetch';\nimport {shareReplay, switchMap} from 'rxjs/operators';\n\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiStaticRequestService {\n private readonly cache = new Map<string, Observable<string>>();\n\n constructor(\n @Inject(WINDOW) private readonly win: Window,\n @Inject(PLATFORM_ID) private readonly platformId: Record<string, unknown>,\n ) {}\n\n request(url: string): Observable<string> {\n const cache = this.cache.get(url);\n\n if (cache) {\n return cache;\n }\n\n const response$ =\n `AbortController` in this.win || isPlatformServer(this.platformId)\n ? fromFetch(url)\n : /**\n * Fallback for Firefox 55 and 56\n * TODO: drop after browser support bump\n */\n defer(() => from(fetch(url)));\n\n const piped = response$.pipe(\n switchMap(async response => {\n if (response.ok) {\n return response.text();\n }\n\n throw new Error(`Failed to load ${url} (${response.statusText})`);\n }),\n shareReplay({bufferSize: 1, refCount: false}),\n );\n\n this.cache.set(url, piped);\n\n return piped;\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiSwipe, TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_SWIPE_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {tuiGetSwipeDirection, tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise} from 'rxjs/operators';\n\n@Injectable()\nexport class TuiSwipeService extends Observable<TuiSwipe> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(TUI_SWIPE_OPTIONS) {timeout, threshold}: TuiSwipeOptions,\n @Inject(DOCUMENT) doc: Document,\n ) {\n super(subscriber => {\n merge(\n tuiTypedFromEvent(nativeElement, `touchstart`, {passive: true}),\n tuiTypedFromEvent(doc, `touchend`),\n )\n .pipe(\n pairwise(),\n filter(\n ([first, second]) =>\n !!first.touches.length &&\n first.touches[0].identifier ===\n second.changedTouches[0].identifier,\n ),\n map(([start, end]) => {\n const startX = start.touches[0].clientX;\n const startY = start.touches[0].clientY;\n const endX = end.changedTouches[0].clientX;\n const endY = end.changedTouches[0].clientY;\n\n const distanceX = startX - endX;\n const distanceY = startY - endY;\n const duration = end.timeStamp - start.timeStamp;\n\n if (\n (Math.abs(distanceX) > threshold ||\n Math.abs(distanceY) > threshold) &&\n duration < timeout\n ) {\n return {\n direction: tuiGetSwipeDirection(distanceX, distanceY),\n events: [start, end] as [TouchEvent, TouchEvent],\n };\n }\n\n return null;\n }),\n filter(tuiIsPresent),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiZoom, TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\nimport {tuiPreventDefault, tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_ZOOM_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {tuiDistanceBetweenTouches} from '@taiga-ui/cdk/utils';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, scan, switchMap, takeUntil} from 'rxjs/operators';\n\nconst TOUCH_SENSITIVITY = 0.01;\n\n@Injectable()\nexport class TuiZoomService extends Observable<TuiZoom> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(TUI_ZOOM_OPTIONS) {wheelSensitivity}: TuiZoomOptions,\n ) {\n super(subscriber => {\n merge(\n tuiTypedFromEvent(nativeElement, `touchstart`, {passive: true}).pipe(\n filter(({touches}) => touches.length > 1),\n switchMap(startEvent =>\n tuiTypedFromEvent(nativeElement, `touchmove`, {\n passive: true,\n }).pipe(\n tuiPreventDefault(),\n scan(\n (prev, event) => {\n const distance = tuiDistanceBetweenTouches(event);\n\n return {\n event,\n distance,\n delta:\n (distance - prev.distance) *\n TOUCH_SENSITIVITY,\n };\n },\n {\n event: startEvent,\n distance: tuiDistanceBetweenTouches(startEvent),\n delta: 0,\n },\n ),\n map(({event, delta}) => {\n const clientX =\n (event.touches[0].clientX +\n event.touches[1].clientX) /\n 2;\n const clientY =\n (event.touches[0].clientY +\n event.touches[1].clientY) /\n 2;\n\n return {clientX, clientY, delta, event};\n }),\n takeUntil(tuiTypedFromEvent(nativeElement, `touchend`)),\n ),\n ),\n ),\n tuiTypedFromEvent(nativeElement, `wheel`, {passive: false}).pipe(\n tuiPreventDefault(),\n map(wheel => ({\n clientX: wheel.clientX,\n clientY: wheel.clientY,\n delta: -wheel.deltaY * wheelSensitivity,\n event: wheel,\n })),\n ),\n ).subscribe(subscriber);\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-cdk-services.js","sources":["../../../projects/cdk/services/destroy.service.ts","../../../projects/cdk/services/directive-styles.service.ts","../../../projects/cdk/services/focus-visible.service.ts","../../../projects/cdk/services/id.service.ts","../../../projects/cdk/services/parents-scroll.service.ts","../../../projects/cdk/services/obscured.service.ts","../../../projects/cdk/services/pan.service.ts","../../../projects/cdk/services/resize.service.ts","../../../projects/cdk/services/scroll.service.ts","../../../projects/cdk/services/static-request.service.ts","../../../projects/cdk/services/swipe.service.ts","../../../projects/cdk/services/zoom.service.ts","../../../projects/cdk/services/taiga-ui-cdk-services.ts"],"sourcesContent":["import {Injectable, OnDestroy} from '@angular/core';\nimport {ReplaySubject} from 'rxjs';\n\n/**\n * @note:\n * Observable abstraction over ngOnDestroy to use with takeUntil\n *\n * Why we use `ReplaySubject` instead of `Subject`?\n * Well, we’ll use ReplaySubject to emit the last message in case\n * the subscription is ended after the component is destroyed.\n */\n@Injectable()\nexport class TuiDestroyService extends ReplaySubject<void> implements OnDestroy {\n constructor() {\n super(1);\n }\n\n ngOnDestroy(): void {\n this.next();\n this.complete();\n }\n}\n","import {\n ComponentFactoryResolver,\n Inject,\n Injectable,\n INJECTOR,\n Injector,\n Type,\n} from '@angular/core';\n\n/**\n * Service to use styles with directives\n */\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiDirectiveStylesService {\n private readonly map = new Map<Type<unknown>, unknown>();\n\n constructor(\n @Inject(ComponentFactoryResolver)\n private readonly resolver: ComponentFactoryResolver,\n @Inject(INJECTOR) private readonly injector: Injector,\n ) {}\n\n addComponent(component: Type<unknown>): void {\n if (!this.map.has(component)) {\n this.map.set(\n component,\n this.resolver.resolveComponentFactory(component).create(this.injector),\n );\n }\n }\n}\n","import {ChangeDetectorRef, ElementRef, Inject, Injectable, Self} from '@angular/core';\nimport {tuiFocusVisibleObservable, tuiWatch} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n/**\n * Service to imitate :focus-visible\n * (https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible)\n * in browsers that do not support it\n */\n@Injectable()\nexport class TuiFocusVisibleService extends Observable<boolean> {\n private readonly focusVisible$: Observable<boolean>;\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(ChangeDetectorRef) cdr: ChangeDetectorRef,\n @Self() @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n super(subscriber => this.focusVisible$.subscribe(subscriber));\n\n this.focusVisible$ = tuiFocusVisibleObservable(nativeElement).pipe(\n tuiWatch(cdr),\n takeUntil(destroy$),\n );\n }\n}\n","import {Injectable} from '@angular/core';\n\nconst TUI = `tui_`;\n\n/**\n * Generates unique ids\n */\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiIdService {\n private static autoId = 0;\n\n generate(): string {\n return `${TUI}${TuiIdService.autoId++}${Date.now()}`;\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {defer, merge, Observable} from 'rxjs';\n\n/**\n * Service that subscribes to scroll events of all parent elements\n */\n@Injectable()\nexport class TuiParentsScrollService extends Observable<Event> {\n private readonly callback$: Observable<Event>;\n\n constructor(\n // Destructuring here causes memory leak\n @Inject(ElementRef) el: ElementRef<Element>,\n @Inject(WINDOW) win: Window,\n ) {\n super(subscriber => this.callback$.subscribe(subscriber));\n\n this.callback$ = defer(() => {\n let {nativeElement} = el;\n const eventTargets: Array<Element | Window> = [win, nativeElement];\n\n while (nativeElement.parentElement) {\n nativeElement = nativeElement.parentElement;\n eventTargets.push(nativeElement);\n }\n\n return merge(\n ...eventTargets.map<Observable<Event>>(element =>\n tuiTypedFromEvent(element, `scroll`),\n ),\n );\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone, Self} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {tuiGetElementObscures} from '@taiga-ui/cdk/utils/dom';\nimport {fromEvent, merge, Observable} from 'rxjs';\nimport {\n delay,\n distinctUntilChanged,\n map,\n startWith,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\nimport {TuiParentsScrollService} from './parents-scroll.service';\n\n// @bad TODO: Consider Intersection Observer with fallback to current implementation\n/**\n * Service that monitors element visibility by subscribing to scrolls\n * and polling with set interval, returns either null or an array\n * of elements that overlap given element edges\n */\n@Injectable()\nexport class TuiObscuredService extends Observable<readonly Element[] | null> {\n private readonly obscured$: Observable<readonly Element[] | null>;\n\n constructor(\n @Inject(TuiParentsScrollService)\n @Self()\n parentsScroll$: TuiParentsScrollService,\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(NgZone) zone: NgZone,\n @Inject(WINDOW) win: Window,\n @Self() @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(subscriber => this.obscured$.subscribe(subscriber));\n\n this.obscured$ = merge(\n // delay is added so it will not interfere with other listeners\n merge(parentsScroll$, fromEvent(win, `resize`)).pipe(delay(0)),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n ).pipe(\n map(() => tuiGetElementObscures(nativeElement)),\n startWith(null),\n distinctUntilChanged(),\n tuiZoneOptimized(zone),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise, repeat, switchMap, takeUntil} from 'rxjs/operators';\n\n@Injectable()\nexport class TuiPanService extends Observable<readonly [number, number]> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(DOCUMENT) doc: Document,\n ) {\n super(subscriber => {\n merge(\n tuiTypedFromEvent(nativeElement, `touchstart`, {passive: true}),\n tuiTypedFromEvent(nativeElement, `mousedown`),\n )\n .pipe(\n switchMap(() =>\n merge(\n tuiTypedFromEvent(doc, `touchmove`, {\n passive: true,\n }).pipe(\n filter(({touches}) => touches.length < 2),\n map(({touches}) => touches[0]),\n ),\n tuiTypedFromEvent(doc, `mousemove`),\n ),\n ),\n pairwise(),\n map(([first, second]) => {\n const deltaX = second.clientX - first.clientX;\n const deltaY = second.clientY - first.clientY;\n\n return [deltaX, deltaY] as [number, number];\n }),\n // eslint-disable-next-line rxjs/no-unsafe-takeuntil\n takeUntil(\n merge(\n tuiTypedFromEvent(doc, `touchend`),\n tuiTypedFromEvent(doc, `mouseup`),\n ),\n ),\n repeat(),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone, Self} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n RESIZE_OBSERVER_SUPPORT,\n RESIZE_OPTION_BOX,\n ResizeObserverService,\n} from '@ng-web-apis/resize-observer';\nimport {EMPTY_ARRAY, POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {\n catchError,\n debounceTime,\n distinctUntilChanged,\n map,\n share,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n// TODO: Remove in 4.0 when Safari is bumped to 13\n@Injectable()\nexport class TuiResizeService extends ResizeObserverService {\n constructor(\n @Inject(ElementRef) el: ElementRef<HTMLElement>,\n @Inject(NgZone) zone: NgZone,\n @Self() @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(RESIZE_OBSERVER_SUPPORT) support: boolean,\n @Inject(RESIZE_OPTION_BOX) box: ResizeObserverBoxOptions,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(el, zone, support, box);\n\n return this.pipe(\n catchError(() =>\n /**\n * @note: if not supported ResizeObserver\n * remove `catchError` after supports modern browsers\n */\n animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(\n () =>\n `${el.nativeElement.clientWidth} ${el.nativeElement.clientHeight}`,\n ),\n distinctUntilChanged(),\n map(() => EMPTY_ARRAY),\n ),\n ),\n debounceTime(0),\n tuiZonefree(zone),\n share(),\n takeUntil(destroy$),\n );\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {ANIMATION_FRAME, PERFORMANCE} from '@ng-web-apis/common';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {tuiEaseInOutQuad} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {defer, Observable, of, timer} from 'rxjs';\nimport {endWith, map, switchMap, takeUntil, tap} from 'rxjs/operators';\n\nconst SCROLL_TIME = 300;\n\nfunction getX(elementOrWindow: Element | Window): number {\n return `scrollX` in elementOrWindow\n ? elementOrWindow.scrollX\n : elementOrWindow.scrollLeft;\n}\n\nfunction getY(elementOrWindow: Element | Window): number {\n return `scrollY` in elementOrWindow\n ? elementOrWindow.scrollY\n : elementOrWindow.scrollTop;\n}\n\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiScrollService {\n constructor(\n @Inject(PERFORMANCE) private readonly performanceRef: Performance,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n ) {}\n\n scroll$(\n elementOrWindow: Element | Window,\n scrollTop: number,\n scrollLeft: number = getX(elementOrWindow),\n duration: number = SCROLL_TIME,\n ): Observable<[number, number]> {\n ngDevMode && tuiAssert.assert(duration >= 0, `Duration cannot be negative`);\n ngDevMode && tuiAssert.assert(scrollTop >= 0, `scrollTop cannot be negative`);\n ngDevMode && tuiAssert.assert(scrollLeft >= 0, `scrollLeft cannot be negative`);\n\n const initialTop = getY(elementOrWindow);\n const initialLeft = getX(elementOrWindow);\n const deltaTop = scrollTop - initialTop;\n const deltaLeft = scrollLeft - initialLeft;\n const observable = !duration\n ? of<[number, number]>([scrollTop, scrollLeft])\n : defer(() => of(this.performanceRef.now())).pipe(\n switchMap(start => this.animationFrame$.pipe(map(now => now - start))),\n map(elapsed => tuiEaseInOutQuad(tuiClamp(elapsed / duration, 0, 1))),\n map<number, [number, number]>(percent => [\n initialTop + deltaTop * percent,\n initialLeft + deltaLeft * percent,\n ]),\n endWith<[number, number]>([scrollTop, scrollLeft]),\n takeUntil(timer(duration)),\n );\n\n return observable.pipe(\n tap(([scrollTop, scrollLeft]) => {\n elementOrWindow.scrollTo?.(scrollLeft, scrollTop);\n }),\n );\n }\n}\n","import {isPlatformServer} from '@angular/common';\nimport {Inject, Injectable, PLATFORM_ID} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {defer, from, Observable} from 'rxjs';\nimport {fromFetch} from 'rxjs/fetch';\nimport {shareReplay, switchMap} from 'rxjs/operators';\n\n@Injectable({\n providedIn: `root`,\n})\nexport class TuiStaticRequestService {\n private readonly cache = new Map<string, Observable<string>>();\n\n constructor(\n @Inject(WINDOW) private readonly win: Window,\n @Inject(PLATFORM_ID) private readonly platformId: Record<string, unknown>,\n ) {}\n\n request(url: string): Observable<string> {\n const cache = this.cache.get(url);\n\n if (cache) {\n return cache;\n }\n\n const response$ =\n `AbortController` in this.win || isPlatformServer(this.platformId)\n ? fromFetch(url)\n : /**\n * Fallback for Firefox 55 and 56\n * TODO: drop after browser support bump\n */\n defer(() => from(fetch(url)));\n\n const piped = response$.pipe(\n switchMap(async response => {\n if (response.ok) {\n return response.text();\n }\n\n throw new Error(`Failed to load ${url} (${response.statusText})`);\n }),\n shareReplay({bufferSize: 1, refCount: false}),\n );\n\n this.cache.set(url, piped);\n\n return piped;\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiSwipe, TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\nimport {tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_SWIPE_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {tuiGetSwipeDirection, tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise} from 'rxjs/operators';\n\n@Injectable()\nexport class TuiSwipeService extends Observable<TuiSwipe> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(TUI_SWIPE_OPTIONS) {timeout, threshold}: TuiSwipeOptions,\n @Inject(DOCUMENT) doc: Document,\n ) {\n super(subscriber => {\n merge(\n tuiTypedFromEvent(nativeElement, `touchstart`, {passive: true}),\n tuiTypedFromEvent(doc, `touchend`),\n )\n .pipe(\n pairwise(),\n filter(\n ([first, second]) =>\n !!first.touches.length &&\n first.touches[0].identifier ===\n second.changedTouches[0].identifier,\n ),\n map(([start, end]) => {\n const startX = start.touches[0].clientX;\n const startY = start.touches[0].clientY;\n const endX = end.changedTouches[0].clientX;\n const endY = end.changedTouches[0].clientY;\n\n const distanceX = startX - endX;\n const distanceY = startY - endY;\n const duration = end.timeStamp - start.timeStamp;\n\n if (\n (Math.abs(distanceX) > threshold ||\n Math.abs(distanceY) > threshold) &&\n duration < timeout\n ) {\n return {\n direction: tuiGetSwipeDirection(distanceX, distanceY),\n events: [start, end] as [TouchEvent, TouchEvent],\n };\n }\n\n return null;\n }),\n filter(tuiIsPresent),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiZoom, TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\nimport {tuiPreventDefault, tuiTypedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_ZOOM_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {tuiDistanceBetweenTouches} from '@taiga-ui/cdk/utils';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, scan, switchMap, takeUntil} from 'rxjs/operators';\n\nconst TOUCH_SENSITIVITY = 0.01;\n\n@Injectable()\nexport class TuiZoomService extends Observable<TuiZoom> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(TUI_ZOOM_OPTIONS) {wheelSensitivity}: TuiZoomOptions,\n ) {\n super(subscriber => {\n merge(\n tuiTypedFromEvent(nativeElement, `touchstart`, {passive: true}).pipe(\n filter(({touches}) => touches.length > 1),\n switchMap(startEvent =>\n tuiTypedFromEvent(nativeElement, `touchmove`, {\n passive: true,\n }).pipe(\n tuiPreventDefault(),\n scan(\n (prev, event) => {\n const distance = tuiDistanceBetweenTouches(event);\n\n return {\n event,\n distance,\n delta:\n (distance - prev.distance) *\n TOUCH_SENSITIVITY,\n };\n },\n {\n event: startEvent,\n distance: tuiDistanceBetweenTouches(startEvent),\n delta: 0,\n },\n ),\n map(({event, delta}) => {\n const clientX =\n (event.touches[0].clientX +\n event.touches[1].clientX) /\n 2;\n const clientY =\n (event.touches[0].clientY +\n event.touches[1].clientY) /\n 2;\n\n return {clientX, clientY, delta, event};\n }),\n takeUntil(tuiTypedFromEvent(nativeElement, `touchend`)),\n ),\n ),\n ),\n tuiTypedFromEvent(nativeElement, `wheel`, {passive: false}).pipe(\n tuiPreventDefault(),\n map(wheel => ({\n clientX: wheel.clientX,\n clientY: wheel.clientY,\n delta: -wheel.deltaY * wheelSensitivity,\n event: wheel,\n })),\n ),\n ).subscribe(subscriber);\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@ import { DOCUMENT, isPlatformBrowser } from '@angular/common';
2
2
  import { inject, InjectFlags, RendererFactory2, InjectionToken, PLATFORM_ID, ElementRef } from '@angular/core';
3
3
  import { WINDOW, NAVIGATOR, USER_AGENT } from '@ng-web-apis/common';
4
4
  import { tuiTypedFromEvent } from '@taiga-ui/cdk/observables';
5
- import { tuiCreateTokenFromFactory, tuiGetActualTarget, tuiGetDocumentOrShadowRoot, tuiCreateToken, tuiIsIos, tuiIsApple } from '@taiga-ui/cdk/utils';
5
+ import { tuiCreateTokenFromFactory, tuiGetDocumentOrShadowRoot, tuiGetActualTarget, tuiCreateToken, tuiIsIos, tuiIsApple } from '@taiga-ui/cdk/utils';
6
6
  import { BehaviorSubject, timer, merge, of, from, EMPTY } from 'rxjs';
7
- import { switchMap, map, startWith, share, takeUntil, repeatWhen, withLatestFrom, filter, take, distinctUntilChanged, shareReplay } from 'rxjs/operators';
7
+ import { switchMap, map, startWith, share, filter, takeUntil, repeatWhen, withLatestFrom, take, distinctUntilChanged, shareReplay } from 'rxjs/operators';
8
8
  import { ɵAnimationEngine } from '@angular/animations/browser';
9
9
  import { ALWAYS_FALSE_HANDLER, ALWAYS_TRUE_HANDLER } from '@taiga-ui/cdk/constants';
10
10
 
@@ -23,6 +23,19 @@ const TUI_REMOVED_ELEMENT = tuiCreateTokenFromFactory(() => {
23
23
  return element$.pipe(switchMap(element => timer(0).pipe(map(() => null), startWith(element))), share());
24
24
  });
25
25
 
26
+ // Checks if focusout event should be considered leaving active zone
27
+ function isValidFocusout(target, removedElement = null) {
28
+ return (
29
+ // Not due to switching tabs/going to DevTools
30
+ tuiGetDocumentOrShadowRoot(target).activeElement !== target &&
31
+ // Not due to button/input becoming disabled or under disabled fieldset
32
+ !target.matches(`:disabled`) &&
33
+ // Not due to element being removed from DOM
34
+ !(removedElement === null || removedElement === void 0 ? void 0 : removedElement.contains(target)));
35
+ }
36
+ function shadowRootActiveElement(root) {
37
+ return merge(tuiTypedFromEvent(root, `focusin`).pipe(map(({ target }) => target)), tuiTypedFromEvent(root, `focusout`).pipe(filter(({ target, relatedTarget }) => !!relatedTarget && isValidFocusout(target)), map(({ relatedTarget }) => relatedTarget)));
38
+ }
26
39
  /**
27
40
  * Active element on the document for ActiveZone
28
41
  */
@@ -62,19 +75,6 @@ const TUI_ACTIVE_ELEMENT = tuiCreateTokenFromFactory(() => {
62
75
  () => actualTargetInCurrentTime), takeUntil(timer(0)));
63
76
  }))).pipe(distinctUntilChanged(), share());
64
77
  });
65
- // Checks if focusout event should be considered leaving active zone
66
- function isValidFocusout(target, removedElement = null) {
67
- return (
68
- // Not due to switching tabs/going to DevTools
69
- tuiGetDocumentOrShadowRoot(target).activeElement !== target &&
70
- // Not due to button/input becoming disabled or under disabled fieldset
71
- !target.matches(`:disabled`) &&
72
- // Not due to element being removed from DOM
73
- !(removedElement === null || removedElement === void 0 ? void 0 : removedElement.contains(target)));
74
- }
75
- function shadowRootActiveElement(root) {
76
- return merge(tuiTypedFromEvent(root, `focusin`).pipe(map(({ target }) => target)), tuiTypedFromEvent(root, `focusout`).pipe(filter(({ target, relatedTarget }) => !!relatedTarget && isValidFocusout(target)), map(({ relatedTarget }) => relatedTarget)));
77
- }
78
78
 
79
79
  /**
80
80
  * A stream of alerts