@taiga-ui/cdk 2.44.0 → 2.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/taiga-ui-cdk-abstract.umd.js +51 -21
- package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-abstract.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-abstract.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-coercion.umd.js +1 -1
- package/bundles/taiga-ui-cdk-coercion.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-coercion.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-alert-host.umd.js +50 -20
- package/bundles/taiga-ui-cdk-components-alert-host.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-alert-host.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-components-alert-host.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-dialog-host.umd.js +54 -24
- package/bundles/taiga-ui-cdk-components-dialog-host.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js +50 -20
- package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-portal-host.umd.js +51 -21
- package/bundles/taiga-ui-cdk-components-portal-host.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-date-time.umd.js +79 -29
- package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-date-time.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-date-time.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-decorators.umd.js +50 -20
- package/bundles/taiga-ui-cdk-decorators.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-decorators.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-decorators.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-active-zone.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-active-zone.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-active-zone.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-active-zone.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js +182 -70
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-autofilled.umd.js +91 -42
- package/bundles/taiga-ui-cdk-directives-autofilled.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-autofilled.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-autofilled.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-checked.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-checked.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-checked.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-checked.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-copy-processor.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-copy-processor.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-drag.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-drag.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-drag.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-drag.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-droppable.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-droppable.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-droppable.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-droppable.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-element.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-element.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-element.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-element.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js +53 -21
- package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focus-trap.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-focus-trap.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focus-visible.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-focus-visible.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focus-visible.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-focus-visible.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focusable.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-focusable.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focusable.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-focusable.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focused.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-focused.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focused.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-focused.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-for-async.umd.js +324 -0
- package/bundles/taiga-ui-cdk-directives-for-async.umd.js.map +1 -0
- package/bundles/taiga-ui-cdk-directives-for-async.umd.min.js +2 -0
- package/bundles/taiga-ui-cdk-directives-for-async.umd.min.js.map +1 -0
- package/bundles/taiga-ui-cdk-directives-for.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-for.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-for.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-for.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-high-dpi.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-high-dpi.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-high-dpi.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-high-dpi.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-hovered.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-hovered.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-hovered.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-hovered.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-input-mode.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-input-mode.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-input-mode.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-input-mode.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-item.umd.js +51 -21
- package/bundles/taiga-ui-cdk-directives-item.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-item.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-item.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-let.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-let.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-let.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-let.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-media.umd.js +51 -20
- package/bundles/taiga-ui-cdk-directives-media.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-media.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-media.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-obscured.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-obscured.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-obscured.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-obscured.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-overscroll.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-overscroll.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-overscroll.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-overscroll.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-pan.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-pan.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-pan.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-pan.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-portal.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-portal.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-portal.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-portal.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-pressed.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-pressed.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-pressed.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-pressed.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-prevent-default.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-prevent-default.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-prevent-default.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-prevent-default.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-repeat-times.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-repeat-times.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-repeat-times.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-repeat-times.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-resize.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-resize.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-resize.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-resize.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-swipe.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-swipe.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-swipe.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-swipe.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-validator.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-validator.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-validator.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-validator.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-zoom.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-zoom.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives.umd.js +12 -4
- package/bundles/taiga-ui-cdk-directives.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-exceptions.umd.js +50 -20
- package/bundles/taiga-ui-cdk-exceptions.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-exceptions.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-exceptions.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-observables.umd.js +1 -1
- package/bundles/taiga-ui-cdk-observables.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-observables.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes-filter.umd.js +50 -20
- package/bundles/taiga-ui-cdk-pipes-filter.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes-filter.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-pipes-filter.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes-mapper.umd.js +50 -20
- package/bundles/taiga-ui-cdk-pipes-mapper.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes-mapper.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-pipes-mapper.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-services.umd.js +50 -20
- package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-services.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-tokens.umd.js +55 -27
- package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-tokens.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-tokens.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-browser.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-browser.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-focus.umd.js +2 -0
- package/bundles/taiga-ui-cdk-utils-focus.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-focus.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-os.umd.js +39 -0
- package/bundles/taiga-ui-cdk-utils-os.umd.js.map +1 -0
- package/bundles/taiga-ui-cdk-utils-os.umd.min.js +2 -0
- package/bundles/taiga-ui-cdk-utils-os.umd.min.js.map +1 -0
- package/bundles/taiga-ui-cdk-utils-svg.umd.js +289 -0
- package/bundles/taiga-ui-cdk-utils-svg.umd.js.map +1 -0
- package/bundles/taiga-ui-cdk-utils-svg.umd.min.js +2 -0
- package/bundles/taiga-ui-cdk-utils-svg.umd.min.js.map +1 -0
- package/bundles/taiga-ui-cdk-utils.umd.js +20 -4
- package/bundles/taiga-ui-cdk-utils.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils.umd.min.js +1 -1
- package/coercion/taiga-ui-cdk-coercion.metadata.json +1 -1
- package/components/alert-host/alert-host.component.d.ts +2 -2
- package/components/alert-host/taiga-ui-cdk-components-alert-host.metadata.json +1 -1
- package/components/dialog-host/dialog-host.component.d.ts +1 -1
- package/components/dialog-host/taiga-ui-cdk-components-dialog-host.metadata.json +1 -1
- package/components/portal-host/portal.service.d.ts +1 -1
- package/date-time/date-fillers.d.ts +0 -2
- package/date-time/day-range.d.ts +1 -2
- package/date-time/day.d.ts +0 -1
- package/date-time/month-range.d.ts +0 -1
- package/date-time/month.d.ts +1 -1
- package/date-time/taiga-ui-cdk-date-time.metadata.json +1 -1
- package/date-time/time.d.ts +7 -0
- package/date-time/year.d.ts +7 -0
- package/directives/auto-focus/autofocus.directive.d.ts +4 -13
- package/directives/auto-focus/autofocus.options.d.ts +13 -0
- package/directives/auto-focus/handlers/abstract.handler.d.ts +11 -0
- package/directives/auto-focus/handlers/default.handler.d.ts +9 -0
- package/directives/auto-focus/handlers/ios.handler.d.ts +10 -0
- package/directives/auto-focus/index.d.ts +4 -0
- package/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.metadata.json +1 -1
- package/directives/autofilled/autofilled-style.component.d.ts +2 -0
- package/directives/autofilled/autofilled.directive.d.ts +5 -4
- package/directives/autofilled/index.d.ts +1 -0
- package/directives/autofilled/taiga-ui-cdk-directives-autofilled.metadata.json +1 -1
- package/directives/focus-trap/taiga-ui-cdk-directives-focus-trap.metadata.json +1 -1
- package/directives/for-async/for-async.directive.d.ts +13 -0
- package/directives/for-async/for-async.module.d.ts +5 -0
- package/directives/for-async/index.d.ts +2 -0
- package/directives/for-async/package.json +13 -0
- package/directives/for-async/taiga-ui-cdk-directives-for-async.d.ts +4 -0
- package/directives/for-async/taiga-ui-cdk-directives-for-async.metadata.json +1 -0
- package/directives/index.d.ts +1 -0
- package/directives/item/item.directive.d.ts +1 -1
- package/directives/media/taiga-ui-cdk-directives-media.metadata.json +1 -1
- package/directives/taiga-ui-cdk-directives.metadata.json +1 -1
- package/esm2015/abstract/interactive.js +2 -2
- package/esm2015/coercion/coerce-boolean-property.js +2 -2
- package/esm2015/components/alert-host/alert-host.component.js +1 -1
- package/esm2015/components/dialog-host/dialog-host.component.js +5 -5
- package/esm2015/components/portal-host/portal.service.js +2 -2
- package/esm2015/date-time/date-fillers.js +1 -3
- package/esm2015/date-time/day-range.js +2 -2
- package/esm2015/date-time/day.js +2 -3
- package/esm2015/date-time/month-range.js +1 -2
- package/esm2015/date-time/month.js +5 -3
- package/esm2015/date-time/time.js +12 -1
- package/esm2015/date-time/year.js +13 -2
- package/esm2015/directives/auto-focus/autofocus.directive.js +11 -87
- package/esm2015/directives/auto-focus/autofocus.options.js +27 -0
- package/esm2015/directives/auto-focus/handlers/abstract.handler.js +25 -0
- package/esm2015/directives/auto-focus/handlers/default.handler.js +39 -0
- package/esm2015/directives/auto-focus/handlers/ios.handler.js +70 -0
- package/esm2015/directives/auto-focus/index.js +5 -1
- package/esm2015/directives/autofilled/autofilled-style.component.js +13 -0
- package/esm2015/directives/autofilled/autofilled.directive.js +23 -37
- package/esm2015/directives/autofilled/autofilled.module.js +4 -2
- package/esm2015/directives/autofilled/index.js +2 -1
- package/esm2015/directives/focus-trap/focus-trap.directive.js +4 -2
- package/esm2015/directives/for-async/for-async.directive.js +48 -0
- package/esm2015/directives/for-async/for-async.module.js +16 -0
- package/esm2015/directives/for-async/index.js +3 -0
- package/esm2015/directives/for-async/taiga-ui-cdk-directives-for-async.js +5 -0
- package/esm2015/directives/index.js +2 -1
- package/esm2015/directives/item/item.directive.js +2 -2
- package/esm2015/directives/media/media.directive.js +2 -1
- package/esm2015/observables/replay-control-value-changes.js +2 -2
- package/esm2015/services/parents-scroll.service.js +1 -1
- package/esm2015/tokens/index.js +2 -1
- package/esm2015/tokens/is-apple.js +5 -0
- package/esm2015/tokens/is-ios.js +4 -6
- package/esm2015/tokens/is-mobile.js +2 -2
- package/esm2015/utils/browser/index.js +2 -2
- package/esm2015/utils/browser/{is-IE.js → is-ie.js} +1 -1
- package/esm2015/utils/focus/set-native-focused.js +3 -1
- package/esm2015/utils/index.js +3 -1
- package/esm2015/utils/os/index.js +4 -0
- package/esm2015/utils/os/is-apple-platform.js +14 -0
- package/esm2015/utils/os/is-apple.js +6 -0
- package/esm2015/utils/os/is-ios.js +7 -0
- package/esm2015/utils/os/taiga-ui-cdk-utils-os.js +5 -0
- package/esm2015/utils/svg/index.js +2 -0
- package/esm2015/utils/svg/svg-linear-gradient-processor.js +26 -0
- package/esm2015/utils/svg/taiga-ui-cdk-utils-svg.js +5 -0
- package/esm5/abstract/interactive.js +2 -2
- package/esm5/coercion/coerce-boolean-property.js +2 -2
- package/esm5/components/alert-host/alert-host.component.js +1 -1
- package/esm5/components/dialog-host/dialog-host.component.js +5 -5
- package/esm5/components/portal-host/portal.service.js +2 -2
- package/esm5/date-time/date-fillers.js +1 -3
- package/esm5/date-time/day-range.js +2 -2
- package/esm5/date-time/day.js +2 -3
- package/esm5/date-time/month-range.js +1 -2
- package/esm5/date-time/month.js +5 -3
- package/esm5/date-time/time.js +12 -1
- package/esm5/date-time/year.js +13 -2
- package/esm5/directives/auto-focus/autofocus.directive.js +11 -97
- package/esm5/directives/auto-focus/autofocus.options.js +27 -0
- package/esm5/directives/auto-focus/handlers/abstract.handler.js +34 -0
- package/esm5/directives/auto-focus/handlers/default.handler.js +43 -0
- package/esm5/directives/auto-focus/handlers/ios.handler.js +75 -0
- package/esm5/directives/auto-focus/index.js +5 -1
- package/esm5/directives/autofilled/autofilled-style.component.js +16 -0
- package/esm5/directives/autofilled/autofilled.directive.js +24 -21
- package/esm5/directives/autofilled/autofilled.module.js +4 -2
- package/esm5/directives/autofilled/index.js +2 -1
- package/esm5/directives/focus-trap/focus-trap.directive.js +4 -2
- package/esm5/directives/for-async/for-async.directive.js +52 -0
- package/esm5/directives/for-async/for-async.module.js +19 -0
- package/esm5/directives/for-async/index.js +3 -0
- package/esm5/directives/for-async/taiga-ui-cdk-directives-for-async.js +5 -0
- package/esm5/directives/index.js +2 -1
- package/esm5/directives/item/item.directive.js +2 -2
- package/esm5/directives/media/media.directive.js +2 -1
- package/esm5/observables/replay-control-value-changes.js +2 -2
- package/esm5/services/parents-scroll.service.js +1 -1
- package/esm5/tokens/index.js +2 -1
- package/esm5/tokens/is-apple.js +5 -0
- package/esm5/tokens/is-ios.js +4 -8
- package/esm5/tokens/is-mobile.js +2 -2
- package/esm5/utils/browser/index.js +2 -2
- package/esm5/utils/browser/{is-IE.js → is-ie.js} +1 -1
- package/esm5/utils/focus/set-native-focused.js +3 -1
- package/esm5/utils/index.js +3 -1
- package/esm5/utils/os/index.js +4 -0
- package/esm5/utils/os/is-apple-platform.js +14 -0
- package/esm5/utils/os/is-apple.js +6 -0
- package/esm5/utils/os/is-ios.js +7 -0
- package/esm5/utils/os/taiga-ui-cdk-utils-os.js +5 -0
- package/esm5/utils/svg/index.js +2 -0
- package/esm5/utils/svg/svg-linear-gradient-processor.js +29 -0
- package/esm5/utils/svg/taiga-ui-cdk-utils-svg.js +5 -0
- package/fesm2015/taiga-ui-cdk-abstract.js +1 -1
- package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-coercion.js +1 -1
- package/fesm2015/taiga-ui-cdk-coercion.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-components-alert-host.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-components-dialog-host.js +4 -4
- package/fesm2015/taiga-ui-cdk-components-dialog-host.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-components-portal-host.js +1 -1
- package/fesm2015/taiga-ui-cdk-components-portal-host.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-date-time.js +29 -9
- package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-auto-focus.js +113 -46
- package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-autofilled.js +33 -37
- package/fesm2015/taiga-ui-cdk-directives-autofilled.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-focus-trap.js +3 -1
- package/fesm2015/taiga-ui-cdk-directives-focus-trap.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-for-async.js +66 -0
- package/fesm2015/taiga-ui-cdk-directives-for-async.js.map +1 -0
- package/fesm2015/taiga-ui-cdk-directives-item.js +1 -1
- package/fesm2015/taiga-ui-cdk-directives-item.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-media.js +1 -0
- package/fesm2015/taiga-ui-cdk-directives-media.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives.js +1 -0
- package/fesm2015/taiga-ui-cdk-directives.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-observables.js +1 -1
- package/fesm2015/taiga-ui-cdk-observables.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-tokens.js +7 -8
- package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-browser.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-focus.js +2 -0
- package/fesm2015/taiga-ui-cdk-utils-focus.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-os.js +31 -0
- package/fesm2015/taiga-ui-cdk-utils-os.js.map +1 -0
- package/fesm2015/taiga-ui-cdk-utils-svg.js +32 -0
- package/fesm2015/taiga-ui-cdk-utils-svg.js.map +1 -0
- package/fesm2015/taiga-ui-cdk-utils.js +2 -0
- package/fesm2015/taiga-ui-cdk-utils.js.map +1 -1
- package/fesm5/taiga-ui-cdk-abstract.js +1 -1
- package/fesm5/taiga-ui-cdk-abstract.js.map +1 -1
- package/fesm5/taiga-ui-cdk-coercion.js +1 -1
- package/fesm5/taiga-ui-cdk-coercion.js.map +1 -1
- package/fesm5/taiga-ui-cdk-components-alert-host.js.map +1 -1
- package/fesm5/taiga-ui-cdk-components-dialog-host.js +4 -4
- package/fesm5/taiga-ui-cdk-components-dialog-host.js.map +1 -1
- package/fesm5/taiga-ui-cdk-components-portal-host.js +1 -1
- package/fesm5/taiga-ui-cdk-components-portal-host.js.map +1 -1
- package/fesm5/taiga-ui-cdk-date-time.js +29 -9
- package/fesm5/taiga-ui-cdk-date-time.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-auto-focus.js +126 -51
- package/fesm5/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-autofilled.js +38 -22
- package/fesm5/taiga-ui-cdk-directives-autofilled.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-focus-trap.js +3 -1
- package/fesm5/taiga-ui-cdk-directives-focus-trap.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-for-async.js +73 -0
- package/fesm5/taiga-ui-cdk-directives-for-async.js.map +1 -0
- package/fesm5/taiga-ui-cdk-directives-item.js +1 -1
- package/fesm5/taiga-ui-cdk-directives-item.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-media.js +1 -0
- package/fesm5/taiga-ui-cdk-directives-media.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives.js +1 -0
- package/fesm5/taiga-ui-cdk-directives.js.map +1 -1
- package/fesm5/taiga-ui-cdk-observables.js +1 -1
- package/fesm5/taiga-ui-cdk-observables.js.map +1 -1
- package/fesm5/taiga-ui-cdk-services.js.map +1 -1
- package/fesm5/taiga-ui-cdk-tokens.js +7 -10
- package/fesm5/taiga-ui-cdk-tokens.js.map +1 -1
- package/fesm5/taiga-ui-cdk-utils-browser.js.map +1 -1
- package/fesm5/taiga-ui-cdk-utils-focus.js +2 -0
- package/fesm5/taiga-ui-cdk-utils-focus.js.map +1 -1
- package/fesm5/taiga-ui-cdk-utils-os.js +31 -0
- package/fesm5/taiga-ui-cdk-utils-os.js.map +1 -0
- package/fesm5/taiga-ui-cdk-utils-svg.js +36 -0
- package/fesm5/taiga-ui-cdk-utils-svg.js.map +1 -0
- package/fesm5/taiga-ui-cdk-utils.js +2 -0
- package/fesm5/taiga-ui-cdk-utils.js.map +1 -1
- package/observables/replay-control-value-changes.d.ts +1 -1
- package/package.json +1 -1
- package/schematics/ng-add/constants/modules.d.ts +1 -1
- package/schematics/ng-add/constants/modules.js +2 -2
- package/schematics/ng-add/schema.d.ts +1 -1
- package/schematics/ng-add/schema.json +3 -3
- package/schematics/ng-add/steps/add-taiga-modules.js +1 -1
- package/schematics/ng-update/constants/consts.d.ts +7 -7
- package/schematics/ng-update/constants/enums.d.ts +3 -3
- package/schematics/ng-update/constants/types.d.ts +3 -3
- package/schematics/ng-update/constants/types.js +26 -0
- package/schematics/ng-update/constants/warnings.d.ts +6 -0
- package/schematics/ng-update/constants/warnings.js +8 -0
- package/schematics/ng-update/index.js +2 -0
- package/schematics/ng-update/steps/rename-types.js +16 -9
- package/schematics/ng-update/steps/show-warnings.d.ts +2 -0
- package/schematics/ng-update/steps/show-warnings.js +18 -0
- package/tokens/index.d.ts +1 -0
- package/tokens/is-apple.d.ts +2 -0
- package/tokens/taiga-ui-cdk-tokens.metadata.json +1 -1
- package/utils/browser/index.d.ts +1 -1
- package/utils/browser/{is-IE.d.ts → is-ie.d.ts} +0 -0
- package/utils/browser/taiga-ui-cdk-utils-browser.metadata.json +1 -1
- package/utils/focus/set-native-focused.d.ts +2 -0
- package/utils/index.d.ts +2 -0
- package/utils/os/index.d.ts +3 -0
- package/utils/os/is-apple-platform.d.ts +11 -0
- package/utils/os/is-apple.d.ts +1 -0
- package/utils/os/is-ios.d.ts +1 -0
- package/utils/os/package.json +13 -0
- package/utils/os/taiga-ui-cdk-utils-os.d.ts +4 -0
- package/utils/os/taiga-ui-cdk-utils-os.metadata.json +1 -0
- package/utils/svg/index.d.ts +1 -0
- package/utils/svg/package.json +13 -0
- package/utils/svg/svg-linear-gradient-processor.d.ts +15 -0
- package/utils/svg/taiga-ui-cdk-utils-svg.d.ts +4 -0
- package/utils/svg/taiga-ui-cdk-utils-svg.metadata.json +1 -0
- package/utils/taiga-ui-cdk-utils.metadata.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-observables.js","sources":["ng://@taiga-ui/cdk/observables/typed-from-event.ts","ng://@taiga-ui/cdk/observables/mouse-drag-finish-from.ts","ng://@taiga-ui/cdk/observables/drag-and-drop-from.ts","ng://@taiga-ui/cdk/observables/is-alive.ts","ng://@taiga-ui/cdk/observables/focus-visible-observable.ts","ng://@taiga-ui/cdk/observables/items-query-list-observable.ts","ng://@taiga-ui/cdk/observables/must-be-present.ts","ng://@taiga-ui/cdk/observables/pressed-observable.ts","ng://@taiga-ui/cdk/observables/prevent-default.ts","ng://@taiga-ui/cdk/observables/replay-control-value-changes.ts","ng://@taiga-ui/cdk/observables/stop-propagation.ts","ng://@taiga-ui/cdk/observables/watch.ts","ng://@taiga-ui/cdk/observables/zone-free.ts","ng://@taiga-ui/cdk/observables/taiga-ui-cdk-observables.ts"],"sourcesContent":["import {TuiEventWith, TuiTypedEventTarget} from '@taiga-ui/cdk/types';\nimport {fromEvent, Observable} from 'rxjs';\n\nexport function typedFromEvent<E extends keyof WindowEventMap>(\n target: Window,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<WindowEventMap[E], typeof target>>;\nexport function typedFromEvent<E extends keyof DocumentEventMap>(\n target: Document,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<DocumentEventMap[E], typeof target>>;\nexport function typedFromEvent<T extends Element, E extends keyof HTMLElementEventMap>(\n target: T,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<HTMLElementEventMap[E], typeof target>>;\nexport function typedFromEvent<\n E extends Event,\n T extends TuiTypedEventTarget<TuiEventWith<E, T>>,\n>(\n target: T,\n event: string,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<E, T>>;\nexport function typedFromEvent<E extends Event>(\n target: TuiTypedEventTarget<E>,\n event: string,\n options?: AddEventListenerOptions,\n): Observable<E>;\nexport function typedFromEvent<E extends Event>(\n target: TuiTypedEventTarget<E>,\n event: string,\n options: AddEventListenerOptions = {},\n): Observable<E> {\n return fromEvent(target, event, options);\n}\n","import {TuiEventWith, TuiTypedEventTarget} from '@taiga-ui/cdk/types';\nimport {merge, Observable} from 'rxjs';\n\nimport {typedFromEvent} from './typed-from-event';\n\n/**\n * Letting go of the mouse after it was pressed\n * @param target\n */\nexport function mouseDragFinishFrom<\n T extends TuiTypedEventTarget<TuiEventWith<DragEvent, T>>,\n>(target: Exclude<T, null>): Observable<TuiEventWith<MouseEvent, T>> {\n return merge(typedFromEvent(target, 'mouseup'), typedFromEvent(target, 'dragend'));\n}\n","import {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {concat, merge, Observable} from 'rxjs';\nimport {endWith, map, repeat, take, takeWhile} from 'rxjs/operators';\n\nimport {mouseDragFinishFrom} from './mouse-drag-finish-from';\nimport {typedFromEvent} from './typed-from-event';\n\nexport const enum TuiDragStage {\n Start,\n Continues,\n End,\n}\n\nexport class TuiDragState {\n constructor(readonly stage: TuiDragStage, readonly event: MouseEvent) {}\n}\n\nexport function dragAndDropFrom(element: Element): Observable<TuiDragState> {\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n return concat(\n typedFromEvent(element, 'mousedown').pipe(\n take(1),\n map(event => new TuiDragState(TuiDragStage.Start, event)),\n ),\n merge(\n typedFromEvent(ownerDocument, 'mousemove').pipe(\n map(event => new TuiDragState(TuiDragStage.Continues, event)),\n ),\n mouseDragFinishFrom(ownerDocument).pipe(\n take(1),\n map(event => new TuiDragState(TuiDragStage.End, event)),\n endWith(null),\n ),\n ).pipe(takeWhile(isPresent)),\n ).pipe(repeat());\n}\n","import {OperatorFunction, pipe, timer} from 'rxjs';\nimport {distinctUntilChanged, mapTo, startWith, switchMapTo} from 'rxjs/operators';\n\n/**\n * Operator to set lifespan after which current value is considered obsolete\n */\nexport function tuiIsAlive(lifespan: number = 0): OperatorFunction<any, boolean> {\n return pipe(\n switchMapTo(timer(lifespan).pipe(mapTo(false), startWith(true))),\n distinctUntilChanged(),\n );\n}\n","import {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {isNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {concat, merge, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n ignoreElements,\n mapTo,\n repeat,\n shareReplay,\n startWith,\n switchMapTo,\n take,\n withLatestFrom,\n} from 'rxjs/operators';\n\nimport {tuiIsAlive} from './is-alive';\nimport {typedFromEvent} from './typed-from-event';\n\nlet documentMouseUpIsAlive$: Observable<boolean>;\nlet documentMouseDownIsAlive$: Observable<boolean>;\n\nexport function focusVisibleObservable(element: Element): Observable<boolean> {\n const elementBlur$ = typedFromEvent(element, 'blur');\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n if (!documentMouseDownIsAlive$ || !documentMouseUpIsAlive$) {\n documentMouseUpIsAlive$ = typedFromEvent(ownerDocument, 'mouseup', {\n capture: true,\n }).pipe(\n tuiIsAlive(),\n startWith(false),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n documentMouseDownIsAlive$ = typedFromEvent(ownerDocument, 'mousedown', {\n capture: true,\n }).pipe(\n tuiIsAlive(),\n startWith(false),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n }\n\n return merge(\n // focus events excluding ones that came right after mouse action\n concat(\n typedFromEvent(element, 'focus').pipe(take(1)),\n // filtering out blur events when element remains focused so that we ignore browser tab focus loss\n elementBlur$.pipe(\n filter(() => !isNativeFocused(element)),\n take(1),\n ignoreElements(),\n ),\n ).pipe(\n repeat(),\n withLatestFrom(\n documentMouseDownIsAlive$,\n documentMouseUpIsAlive$,\n (_event, elementActual, documentActual) =>\n elementActual || documentActual,\n ),\n filter(isUserFocus => !isUserFocus),\n ),\n ).pipe(\n switchMapTo(elementBlur$.pipe(mapTo(false), take(1), startWith(true))),\n distinctUntilChanged(),\n );\n}\n","import {QueryList} from '@angular/core';\nimport {getOriginalArrayFromQueryList} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {Observable} from 'rxjs';\nimport {map, startWith} from 'rxjs/operators';\n\n/**\n * Converts changes observable of a QueryList to an Observable of arrays\n */\nexport function itemsQueryListObservable<T>(\n queryList: QueryList<T>,\n): Observable<readonly T[]> {\n return queryList.changes.pipe(\n map(() => getOriginalArrayFromQueryList(queryList)),\n startWith(getOriginalArrayFromQueryList(queryList)),\n );\n}\n","import {TuiValuePresentException} from '@taiga-ui/cdk/exceptions';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {OperatorFunction} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nexport function mustBePresent<T>(): OperatorFunction<T | undefined | null, T> {\n return map(value => {\n if (!isPresent(value)) {\n throw new TuiValuePresentException();\n }\n\n return value;\n });\n}\n","import {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {Observable} from 'rxjs';\nimport {filter, mapTo, startWith, switchMapTo, take} from 'rxjs/operators';\n\nimport {mouseDragFinishFrom} from './mouse-drag-finish-from';\nimport {typedFromEvent} from './typed-from-event';\n\nexport interface TuiPressedObservableOptions {\n onlyTrusted: boolean;\n}\n\nexport function pressedObservable(\n element: Element,\n {onlyTrusted}: TuiPressedObservableOptions = {onlyTrusted: true},\n): Observable<boolean> {\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n return typedFromEvent(element, 'mousedown').pipe(\n filter(({isTrusted}) => isTrusted || !onlyTrusted),\n switchMapTo(\n mouseDragFinishFrom(ownerDocument).pipe(\n mapTo(false),\n take(1),\n startWith(true),\n ),\n ),\n );\n}\n","import {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function preventDefault<T extends Event>(): MonoTypeOperatorFunction<T> {\n return tap(event => event.preventDefault());\n}\n","import {AbstractControl, AbstractControlDirective} from '@angular/forms';\nimport {TuiValueChangesException} from '@taiga-ui/cdk/exceptions';\nimport {Observable} from 'rxjs';\nimport {startWith} from 'rxjs/operators';\n\n/**\n * Turns AbstractControl/Abstract-control-directive valueChanges into ReplaySubject(1)\n * TODO: rename function in 3.0. The name should be shorter.\n */\nexport function tuiReplayedValueChangesFrom<T>(\n control: AbstractControl | AbstractControlDirective,\n): Observable<T> {\n return new Observable(subscriber => {\n if (!control.valueChanges) {\n throw new TuiValueChangesException();\n }\n\n control.valueChanges.pipe(startWith(control.value)).subscribe(subscriber);\n });\n}\n","import {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function stopPropagation<T extends Event>(): MonoTypeOperatorFunction<T> {\n return tap(e => {\n e.stopPropagation();\n });\n}\n","import {ChangeDetectorRef} from '@angular/core';\nimport {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function watch<T>(\n changeDetectorRef: ChangeDetectorRef,\n): MonoTypeOperatorFunction<T> {\n return tap(() => {\n changeDetectorRef.markForCheck();\n });\n}\n","import {NgZone} from '@angular/core';\nimport {MonoTypeOperatorFunction, Observable, pipe} from 'rxjs';\n\nexport function tuiZonefull<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return source =>\n new Observable(subscriber =>\n source.subscribe({\n next: value => ngZone.run(() => subscriber.next(value)),\n error: (error: unknown) => ngZone.run(() => subscriber.error(error)),\n complete: () => ngZone.run(() => subscriber.complete()),\n }),\n );\n}\n\nexport function tuiZonefree<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return source =>\n new Observable(subscriber =>\n ngZone.runOutsideAngular(() => source.subscribe(subscriber)),\n );\n}\n\nexport function tuiZoneOptimized<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return pipe(tuiZonefree(ngZone), tuiZonefull(ngZone));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-observables.js","sources":["ng://@taiga-ui/cdk/observables/typed-from-event.ts","ng://@taiga-ui/cdk/observables/mouse-drag-finish-from.ts","ng://@taiga-ui/cdk/observables/drag-and-drop-from.ts","ng://@taiga-ui/cdk/observables/is-alive.ts","ng://@taiga-ui/cdk/observables/focus-visible-observable.ts","ng://@taiga-ui/cdk/observables/items-query-list-observable.ts","ng://@taiga-ui/cdk/observables/must-be-present.ts","ng://@taiga-ui/cdk/observables/pressed-observable.ts","ng://@taiga-ui/cdk/observables/prevent-default.ts","ng://@taiga-ui/cdk/observables/replay-control-value-changes.ts","ng://@taiga-ui/cdk/observables/stop-propagation.ts","ng://@taiga-ui/cdk/observables/watch.ts","ng://@taiga-ui/cdk/observables/zone-free.ts","ng://@taiga-ui/cdk/observables/taiga-ui-cdk-observables.ts"],"sourcesContent":["import {TuiEventWith, TuiTypedEventTarget} from '@taiga-ui/cdk/types';\nimport {fromEvent, Observable} from 'rxjs';\n\nexport function typedFromEvent<E extends keyof WindowEventMap>(\n target: Window,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<WindowEventMap[E], typeof target>>;\nexport function typedFromEvent<E extends keyof DocumentEventMap>(\n target: Document,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<DocumentEventMap[E], typeof target>>;\nexport function typedFromEvent<T extends Element, E extends keyof HTMLElementEventMap>(\n target: T,\n event: E,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<HTMLElementEventMap[E], typeof target>>;\nexport function typedFromEvent<\n E extends Event,\n T extends TuiTypedEventTarget<TuiEventWith<E, T>>,\n>(\n target: T,\n event: string,\n options?: AddEventListenerOptions,\n): Observable<TuiEventWith<E, T>>;\nexport function typedFromEvent<E extends Event>(\n target: TuiTypedEventTarget<E>,\n event: string,\n options?: AddEventListenerOptions,\n): Observable<E>;\nexport function typedFromEvent<E extends Event>(\n target: TuiTypedEventTarget<E>,\n event: string,\n options: AddEventListenerOptions = {},\n): Observable<E> {\n return fromEvent(target, event, options);\n}\n","import {TuiEventWith, TuiTypedEventTarget} from '@taiga-ui/cdk/types';\nimport {merge, Observable} from 'rxjs';\n\nimport {typedFromEvent} from './typed-from-event';\n\n/**\n * Letting go of the mouse after it was pressed\n * @param target\n */\nexport function mouseDragFinishFrom<\n T extends TuiTypedEventTarget<TuiEventWith<DragEvent, T>>,\n>(target: Exclude<T, null>): Observable<TuiEventWith<MouseEvent, T>> {\n return merge(typedFromEvent(target, 'mouseup'), typedFromEvent(target, 'dragend'));\n}\n","import {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {concat, merge, Observable} from 'rxjs';\nimport {endWith, map, repeat, take, takeWhile} from 'rxjs/operators';\n\nimport {mouseDragFinishFrom} from './mouse-drag-finish-from';\nimport {typedFromEvent} from './typed-from-event';\n\nexport const enum TuiDragStage {\n Start,\n Continues,\n End,\n}\n\nexport class TuiDragState {\n constructor(readonly stage: TuiDragStage, readonly event: MouseEvent) {}\n}\n\nexport function dragAndDropFrom(element: Element): Observable<TuiDragState> {\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n return concat(\n typedFromEvent(element, 'mousedown').pipe(\n take(1),\n map(event => new TuiDragState(TuiDragStage.Start, event)),\n ),\n merge(\n typedFromEvent(ownerDocument, 'mousemove').pipe(\n map(event => new TuiDragState(TuiDragStage.Continues, event)),\n ),\n mouseDragFinishFrom(ownerDocument).pipe(\n take(1),\n map(event => new TuiDragState(TuiDragStage.End, event)),\n endWith(null),\n ),\n ).pipe(takeWhile(isPresent)),\n ).pipe(repeat());\n}\n","import {OperatorFunction, pipe, timer} from 'rxjs';\nimport {distinctUntilChanged, mapTo, startWith, switchMapTo} from 'rxjs/operators';\n\n/**\n * Operator to set lifespan after which current value is considered obsolete\n */\nexport function tuiIsAlive(lifespan: number = 0): OperatorFunction<any, boolean> {\n return pipe(\n switchMapTo(timer(lifespan).pipe(mapTo(false), startWith(true))),\n distinctUntilChanged(),\n );\n}\n","import {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {isNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {concat, merge, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n ignoreElements,\n mapTo,\n repeat,\n shareReplay,\n startWith,\n switchMapTo,\n take,\n withLatestFrom,\n} from 'rxjs/operators';\n\nimport {tuiIsAlive} from './is-alive';\nimport {typedFromEvent} from './typed-from-event';\n\nlet documentMouseUpIsAlive$: Observable<boolean>;\nlet documentMouseDownIsAlive$: Observable<boolean>;\n\nexport function focusVisibleObservable(element: Element): Observable<boolean> {\n const elementBlur$ = typedFromEvent(element, 'blur');\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n if (!documentMouseDownIsAlive$ || !documentMouseUpIsAlive$) {\n documentMouseUpIsAlive$ = typedFromEvent(ownerDocument, 'mouseup', {\n capture: true,\n }).pipe(\n tuiIsAlive(),\n startWith(false),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n documentMouseDownIsAlive$ = typedFromEvent(ownerDocument, 'mousedown', {\n capture: true,\n }).pipe(\n tuiIsAlive(),\n startWith(false),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n }\n\n return merge(\n // focus events excluding ones that came right after mouse action\n concat(\n typedFromEvent(element, 'focus').pipe(take(1)),\n // filtering out blur events when element remains focused so that we ignore browser tab focus loss\n elementBlur$.pipe(\n filter(() => !isNativeFocused(element)),\n take(1),\n ignoreElements(),\n ),\n ).pipe(\n repeat(),\n withLatestFrom(\n documentMouseDownIsAlive$,\n documentMouseUpIsAlive$,\n (_event, elementActual, documentActual) =>\n elementActual || documentActual,\n ),\n filter(isUserFocus => !isUserFocus),\n ),\n ).pipe(\n switchMapTo(elementBlur$.pipe(mapTo(false), take(1), startWith(true))),\n distinctUntilChanged(),\n );\n}\n","import {QueryList} from '@angular/core';\nimport {getOriginalArrayFromQueryList} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {Observable} from 'rxjs';\nimport {map, startWith} from 'rxjs/operators';\n\n/**\n * Converts changes observable of a QueryList to an Observable of arrays\n */\nexport function itemsQueryListObservable<T>(\n queryList: QueryList<T>,\n): Observable<readonly T[]> {\n return queryList.changes.pipe(\n map(() => getOriginalArrayFromQueryList(queryList)),\n startWith(getOriginalArrayFromQueryList(queryList)),\n );\n}\n","import {TuiValuePresentException} from '@taiga-ui/cdk/exceptions';\nimport {isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {OperatorFunction} from 'rxjs';\nimport {map} from 'rxjs/operators';\n\nexport function mustBePresent<T>(): OperatorFunction<T | undefined | null, T> {\n return map(value => {\n if (!isPresent(value)) {\n throw new TuiValuePresentException();\n }\n\n return value;\n });\n}\n","import {TuiOwnerDocumentException} from '@taiga-ui/cdk/exceptions';\nimport {Observable} from 'rxjs';\nimport {filter, mapTo, startWith, switchMapTo, take} from 'rxjs/operators';\n\nimport {mouseDragFinishFrom} from './mouse-drag-finish-from';\nimport {typedFromEvent} from './typed-from-event';\n\nexport interface TuiPressedObservableOptions {\n onlyTrusted: boolean;\n}\n\nexport function pressedObservable(\n element: Element,\n {onlyTrusted}: TuiPressedObservableOptions = {onlyTrusted: true},\n): Observable<boolean> {\n const {ownerDocument} = element;\n\n if (!ownerDocument) {\n throw new TuiOwnerDocumentException();\n }\n\n return typedFromEvent(element, 'mousedown').pipe(\n filter(({isTrusted}) => isTrusted || !onlyTrusted),\n switchMapTo(\n mouseDragFinishFrom(ownerDocument).pipe(\n mapTo(false),\n take(1),\n startWith(true),\n ),\n ),\n );\n}\n","import {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function preventDefault<T extends Event>(): MonoTypeOperatorFunction<T> {\n return tap(event => event.preventDefault());\n}\n","import {AbstractControl, AbstractControlDirective} from '@angular/forms';\nimport {TuiValueChangesException} from '@taiga-ui/cdk/exceptions';\nimport {Observable} from 'rxjs';\nimport {startWith} from 'rxjs/operators';\n\n/**\n * Turns AbstractControl/Abstract-control-directive valueChanges into ReplaySubject(1)\n * TODO: 3.0 name should be shorter.\n */\nexport function tuiReplayedValueChangesFrom<T>(\n control: AbstractControl | AbstractControlDirective,\n): Observable<T> {\n return new Observable(subscriber => {\n if (!control.valueChanges) {\n throw new TuiValueChangesException();\n }\n\n control.valueChanges.pipe(startWith(control.value)).subscribe(subscriber);\n });\n}\n","import {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function stopPropagation<T extends Event>(): MonoTypeOperatorFunction<T> {\n return tap(e => {\n e.stopPropagation();\n });\n}\n","import {ChangeDetectorRef} from '@angular/core';\nimport {MonoTypeOperatorFunction} from 'rxjs';\nimport {tap} from 'rxjs/operators';\n\nexport function watch<T>(\n changeDetectorRef: ChangeDetectorRef,\n): MonoTypeOperatorFunction<T> {\n return tap(() => {\n changeDetectorRef.markForCheck();\n });\n}\n","import {NgZone} from '@angular/core';\nimport {MonoTypeOperatorFunction, Observable, pipe} from 'rxjs';\n\nexport function tuiZonefull<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return source =>\n new Observable(subscriber =>\n source.subscribe({\n next: value => ngZone.run(() => subscriber.next(value)),\n error: (error: unknown) => ngZone.run(() => subscriber.error(error)),\n complete: () => ngZone.run(() => subscriber.complete()),\n }),\n );\n}\n\nexport function tuiZonefree<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return source =>\n new Observable(subscriber =>\n ngZone.runOutsideAngular(() => source.subscribe(subscriber)),\n );\n}\n\nexport function tuiZoneOptimized<T>(ngZone: NgZone): MonoTypeOperatorFunction<T> {\n return pipe(tuiZonefree(ngZone), tuiZonefull(ngZone));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-services.js","sources":["ng://@taiga-ui/cdk/services/destroy.service.ts","ng://@taiga-ui/cdk/services/directive-styles.service.ts","ng://@taiga-ui/cdk/services/focus-visible.service.ts","ng://@taiga-ui/cdk/services/hovered.service.ts","ng://@taiga-ui/cdk/services/id.service.ts","ng://@taiga-ui/cdk/services/parents-scroll.service.ts","ng://@taiga-ui/cdk/services/obscured.service.ts","ng://@taiga-ui/cdk/services/pan.service.ts","ng://@taiga-ui/cdk/services/resize.service.ts","ng://@taiga-ui/cdk/services/scroll.service.ts","ng://@taiga-ui/cdk/services/static-request.service.ts","ng://@taiga-ui/cdk/services/swipe.service.ts","ng://@taiga-ui/cdk/services/zoom.service.ts","ng://@taiga-ui/cdk/services/taiga-ui-cdk-services.ts"],"sourcesContent":["import {Injectable, OnDestroy} from '@angular/core';\nimport {ReplaySubject} from 'rxjs';\n\n/**\n * Observable abstraction over ngOnDestroy to use with takeUntil\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 {DOCUMENT} from '@angular/common';\nimport {\n ComponentFactoryResolver,\n Inject,\n Injectable,\n INJECTOR,\n Injector,\n Renderer2,\n Type,\n} from '@angular/core';\nimport {TUI_DEFAULT_RENDERER} from '@taiga-ui/cdk/tokens';\n\n/**\n * Service to use styles with directives\n * @dynamic\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 @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TUI_DEFAULT_RENDERER) private readonly renderer: Renderer2,\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 /** @deprecated use components approach */\n addStyle(styles: string, attribute: string): void {\n if (this.documentRef.head.querySelector(`style[${attribute}]`)) {\n return;\n }\n\n const style = this.renderer.createElement('style');\n\n this.renderer.setProperty(style, 'textContent', styles);\n this.renderer.setAttribute(style, attribute, '');\n this.documentRef.head.appendChild(style);\n }\n}\n","import {ChangeDetectorRef, ElementRef, Inject, Injectable} from '@angular/core';\nimport {focusVisibleObservable, watch} 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 * @dynamic\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) changeDetectorRef: ChangeDetectorRef,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n super(subscriber => this.focusVisible$.subscribe(subscriber));\n\n this.focusVisible$ = focusVisibleObservable(nativeElement).pipe(\n watch(changeDetectorRef),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, NgZone} from '@angular/core';\nimport {tuiZoneOptimized, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget} from '@taiga-ui/cdk/utils/dom';\nimport {merge, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n mapTo,\n startWith,\n switchMap,\n take,\n} from 'rxjs/operators';\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiHoveredService {\n private readonly documentEvents$: Observable<Event>;\n\n constructor(\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(NgZone) private readonly ngZone: NgZone,\n ) {\n this.documentEvents$ = merge(\n typedFromEvent(documentRef, 'mousemove'),\n typedFromEvent(documentRef, 'touchstart', {capture: true}),\n );\n }\n\n createHovered$(\n target: Element,\n options: AddEventListenerOptions = {passive: true},\n ): Observable<boolean> {\n return merge(\n typedFromEvent(target, 'mouseenter', options),\n typedFromEvent(target, 'touchstart', options),\n ).pipe(\n switchMap(() =>\n merge(\n typedFromEvent(target, 'mouseleave', options),\n this.documentEvents$.pipe(\n filter(event => !target.contains(getActualTarget(event))),\n tuiZoneOptimized(this.ngZone),\n take(1),\n ),\n ).pipe(mapTo(false), startWith(true)),\n ),\n distinctUntilChanged(),\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 {typedFromEvent} 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// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiParentsScrollService extends Observable<Event> {\n private readonly callback$: Observable<Event>;\n\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<Element>,\n @Inject(WINDOW) windowRef: Window,\n ) {\n super(subscriber => this.callback$.subscribe(subscriber));\n\n this.callback$ = defer(() => {\n let {nativeElement} = elementRef;\n const eventTargets: (Element | Window)[] = [windowRef, nativeElement];\n\n while (nativeElement.parentElement) {\n nativeElement = nativeElement.parentElement;\n eventTargets.push(nativeElement);\n }\n\n return merge<Event>(\n ...eventTargets.map<Observable<Event>>(element =>\n typedFromEvent(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 {getElementObscurers} 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// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiObscuredService extends Observable<null | readonly Element[]> {\n private readonly obscured$: Observable<null | readonly Element[]>;\n\n constructor(\n @Inject(TuiParentsScrollService)\n @Self()\n parentsScroll$: TuiParentsScrollService,\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(WINDOW) windowRef: Window,\n @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(windowRef, 'resize')).pipe(delay(0)),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n ).pipe(\n map(() => getElementObscurers(nativeElement)),\n startWith(null),\n distinctUntilChanged(),\n tuiZoneOptimized(ngZone),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise, repeat, switchMapTo, takeUntil} from 'rxjs/operators';\n\n/**\n * @dynamic\n */\n@Injectable()\nexport class TuiPanService extends Observable<readonly [number, number]> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(DOCUMENT) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(nativeElement, 'mousedown'),\n )\n .pipe(\n switchMapTo(\n merge(\n typedFromEvent(documentRef, 'touchmove', {\n passive: true,\n }).pipe(\n filter(({touches}) => touches.length < 2),\n map(({touches}) => touches[0]),\n ),\n typedFromEvent(documentRef, '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 typedFromEvent(documentRef, 'touchend'),\n typedFromEvent(documentRef, 'mouseup'),\n ),\n ),\n repeat(),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone} 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 mapTo,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n// @dynamic\n@Injectable()\nexport class TuiResizeService extends ResizeObserverService {\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(RESIZE_OBSERVER_SUPPORT) support: boolean,\n @Inject(RESIZE_OPTION_BOX) box: ResizeObserverOptions['box'],\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(elementRef, ngZone, support, box);\n\n return this.pipe(\n catchError(() =>\n animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(\n () =>\n `${elementRef.nativeElement.clientWidth} ${elementRef.nativeElement.clientHeight}`,\n ),\n distinctUntilChanged(),\n mapTo(EMPTY_ARRAY),\n ),\n ),\n debounceTime(0),\n tuiZonefree(ngZone),\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 {clamp} from '@taiga-ui/cdk/utils/math';\nimport {easeInOutQuad} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {defer, Observable, of, timer} from 'rxjs';\nimport {map, switchMap, takeUntil, tap} from 'rxjs/operators';\n\nconst SCROLL_TIME = 300;\n\n// @dynamic\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 element: Element,\n scrollTop: number,\n scrollLeft: number = element.scrollLeft,\n duration: number = SCROLL_TIME,\n ): Observable<[number, number]> {\n tuiAssert.assert(duration >= 0, 'Duration cannot be negative');\n tuiAssert.assert(scrollTop >= 0, 'scrollTop cannot be negative');\n tuiAssert.assert(scrollLeft >= 0, 'scrollLeft cannot be negative');\n\n const initialTop = element.scrollTop;\n const initialLeft = element.scrollLeft;\n const deltaTop = scrollTop - initialTop;\n const deltaLeft = scrollLeft - initialLeft;\n const observable = !duration\n ? of([scrollTop, scrollLeft] as [number, number])\n : defer(() => of(this.performanceRef.now())).pipe(\n switchMap(start => this.animationFrame$.pipe(map(now => now - start))),\n map(elapsed => easeInOutQuad(clamp(elapsed / duration, 0, 1))),\n map(\n percent =>\n [\n initialTop + deltaTop * percent,\n initialLeft + deltaLeft * percent,\n ] as [number, number],\n ),\n takeUntil(timer(duration)),\n );\n\n return observable.pipe(\n tap(([scrollTop, scrollLeft]) => {\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }),\n );\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Observer} from 'rxjs';\nimport {shareReplay} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiStaticRequestService {\n private readonly cache = new Map<string, Observable<string>>();\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 observable = new Observable((observer: Observer<string>) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n const response = xhr.responseType ? xhr.response : xhr.responseText;\n\n if (xhr.status === 200) {\n observer.next(response);\n observer.complete();\n } else {\n observer.error(response);\n }\n }\n };\n\n xhr.open('GET', url);\n xhr.send();\n\n return () => {\n xhr.abort();\n };\n });\n const piped = observable.pipe(shareReplay({bufferSize: 1, refCount: false}));\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 {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_SWIPE_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {getSwipeDirection, isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise} from 'rxjs/operators';\n\n/**\n * @dynamic\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) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(documentRef, '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: getSwipeDirection(distanceX, distanceY),\n events: [start, end] as [TouchEvent, TouchEvent],\n };\n }\n\n return null;\n }),\n filter(isPresent),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiZoom, TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\nimport {preventDefault, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_ZOOM_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {distanceBetweenTouches} 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// @dynamic\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 typedFromEvent(nativeElement, 'touchstart', {passive: true}).pipe(\n filter(({touches}) => touches.length > 1),\n switchMap(startEvent =>\n typedFromEvent(nativeElement, 'touchmove', {\n passive: true,\n }).pipe(\n preventDefault(),\n scan(\n (prev, event) => {\n const distance = distanceBetweenTouches(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: distanceBetweenTouches(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(typedFromEvent(nativeElement, 'touchend')),\n ),\n ),\n ),\n typedFromEvent(nativeElement, 'wheel', {passive: false}).pipe(\n preventDefault(),\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":["ng://@taiga-ui/cdk/services/destroy.service.ts","ng://@taiga-ui/cdk/services/directive-styles.service.ts","ng://@taiga-ui/cdk/services/focus-visible.service.ts","ng://@taiga-ui/cdk/services/hovered.service.ts","ng://@taiga-ui/cdk/services/id.service.ts","ng://@taiga-ui/cdk/services/parents-scroll.service.ts","ng://@taiga-ui/cdk/services/obscured.service.ts","ng://@taiga-ui/cdk/services/pan.service.ts","ng://@taiga-ui/cdk/services/resize.service.ts","ng://@taiga-ui/cdk/services/scroll.service.ts","ng://@taiga-ui/cdk/services/static-request.service.ts","ng://@taiga-ui/cdk/services/swipe.service.ts","ng://@taiga-ui/cdk/services/zoom.service.ts","ng://@taiga-ui/cdk/services/taiga-ui-cdk-services.ts"],"sourcesContent":["import {Injectable, OnDestroy} from '@angular/core';\nimport {ReplaySubject} from 'rxjs';\n\n/**\n * Observable abstraction over ngOnDestroy to use with takeUntil\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 {DOCUMENT} from '@angular/common';\nimport {\n ComponentFactoryResolver,\n Inject,\n Injectable,\n INJECTOR,\n Injector,\n Renderer2,\n Type,\n} from '@angular/core';\nimport {TUI_DEFAULT_RENDERER} from '@taiga-ui/cdk/tokens';\n\n/**\n * Service to use styles with directives\n * @dynamic\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 @Inject(DOCUMENT) private readonly documentRef: Document,\n @Inject(TUI_DEFAULT_RENDERER) private readonly renderer: Renderer2,\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 /** @deprecated use components approach */\n addStyle(styles: string, attribute: string): void {\n if (this.documentRef.head.querySelector(`style[${attribute}]`)) {\n return;\n }\n\n const style = this.renderer.createElement('style');\n\n this.renderer.setProperty(style, 'textContent', styles);\n this.renderer.setAttribute(style, attribute, '');\n this.documentRef.head.appendChild(style);\n }\n}\n","import {ChangeDetectorRef, ElementRef, Inject, Injectable} from '@angular/core';\nimport {focusVisibleObservable, watch} 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 * @dynamic\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) changeDetectorRef: ChangeDetectorRef,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n ) {\n super(subscriber => this.focusVisible$.subscribe(subscriber));\n\n this.focusVisible$ = focusVisibleObservable(nativeElement).pipe(\n watch(changeDetectorRef),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Inject, Injectable, NgZone} from '@angular/core';\nimport {tuiZoneOptimized, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget} from '@taiga-ui/cdk/utils/dom';\nimport {merge, Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n mapTo,\n startWith,\n switchMap,\n take,\n} from 'rxjs/operators';\n\n// @dynamic\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiHoveredService {\n private readonly documentEvents$: Observable<Event>;\n\n constructor(\n @Inject(DOCUMENT) documentRef: Document,\n @Inject(NgZone) private readonly ngZone: NgZone,\n ) {\n this.documentEvents$ = merge(\n typedFromEvent(documentRef, 'mousemove'),\n typedFromEvent(documentRef, 'touchstart', {capture: true}),\n );\n }\n\n createHovered$(\n target: Element,\n options: AddEventListenerOptions = {passive: true},\n ): Observable<boolean> {\n return merge(\n typedFromEvent(target, 'mouseenter', options),\n typedFromEvent(target, 'touchstart', options),\n ).pipe(\n switchMap(() =>\n merge(\n typedFromEvent(target, 'mouseleave', options),\n this.documentEvents$.pipe(\n filter(event => !target.contains(getActualTarget(event))),\n tuiZoneOptimized(this.ngZone),\n take(1),\n ),\n ).pipe(mapTo(false), startWith(true)),\n ),\n distinctUntilChanged(),\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 {typedFromEvent} 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// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiParentsScrollService extends Observable<Event> {\n private readonly callback$: Observable<Event>;\n\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<Element>,\n @Inject(WINDOW) windowRef: Window,\n ) {\n super(subscriber => this.callback$.subscribe(subscriber));\n\n this.callback$ = defer(() => {\n let {nativeElement} = elementRef;\n const eventTargets: Array<Element | Window> = [windowRef, nativeElement];\n\n while (nativeElement.parentElement) {\n nativeElement = nativeElement.parentElement;\n eventTargets.push(nativeElement);\n }\n\n return merge<Event>(\n ...eventTargets.map<Observable<Event>>(element =>\n typedFromEvent(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 {getElementObscurers} 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// Ambient type cannot be used without dynamic https://github.com/angular/angular/issues/23395\n// @dynamic\n@Injectable()\nexport class TuiObscuredService extends Observable<null | readonly Element[]> {\n private readonly obscured$: Observable<null | readonly Element[]>;\n\n constructor(\n @Inject(TuiParentsScrollService)\n @Self()\n parentsScroll$: TuiParentsScrollService,\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(WINDOW) windowRef: Window,\n @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(windowRef, 'resize')).pipe(delay(0)),\n animationFrame$.pipe(throttleTime(POLLING_TIME)),\n ).pipe(\n map(() => getElementObscurers(nativeElement)),\n startWith(null),\n distinctUntilChanged(),\n tuiZoneOptimized(ngZone),\n takeUntil(destroy$),\n );\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {ElementRef, Inject, Injectable} from '@angular/core';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise, repeat, switchMapTo, takeUntil} from 'rxjs/operators';\n\n/**\n * @dynamic\n */\n@Injectable()\nexport class TuiPanService extends Observable<readonly [number, number]> {\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<Element>,\n @Inject(DOCUMENT) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(nativeElement, 'mousedown'),\n )\n .pipe(\n switchMapTo(\n merge(\n typedFromEvent(documentRef, 'touchmove', {\n passive: true,\n }).pipe(\n filter(({touches}) => touches.length < 2),\n map(({touches}) => touches[0]),\n ),\n typedFromEvent(documentRef, '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 typedFromEvent(documentRef, 'touchend'),\n typedFromEvent(documentRef, 'mouseup'),\n ),\n ),\n repeat(),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable, NgZone} 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 mapTo,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiDestroyService} from './destroy.service';\n\n// @dynamic\n@Injectable()\nexport class TuiResizeService extends ResizeObserverService {\n constructor(\n @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(TuiDestroyService) destroy$: Observable<void>,\n @Inject(RESIZE_OBSERVER_SUPPORT) support: boolean,\n @Inject(RESIZE_OPTION_BOX) box: ResizeObserverOptions['box'],\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n super(elementRef, ngZone, support, box);\n\n return this.pipe(\n catchError(() =>\n animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(\n () =>\n `${elementRef.nativeElement.clientWidth} ${elementRef.nativeElement.clientHeight}`,\n ),\n distinctUntilChanged(),\n mapTo(EMPTY_ARRAY),\n ),\n ),\n debounceTime(0),\n tuiZonefree(ngZone),\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 {clamp} from '@taiga-ui/cdk/utils/math';\nimport {easeInOutQuad} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {defer, Observable, of, timer} from 'rxjs';\nimport {map, switchMap, takeUntil, tap} from 'rxjs/operators';\n\nconst SCROLL_TIME = 300;\n\n// @dynamic\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 element: Element,\n scrollTop: number,\n scrollLeft: number = element.scrollLeft,\n duration: number = SCROLL_TIME,\n ): Observable<[number, number]> {\n tuiAssert.assert(duration >= 0, 'Duration cannot be negative');\n tuiAssert.assert(scrollTop >= 0, 'scrollTop cannot be negative');\n tuiAssert.assert(scrollLeft >= 0, 'scrollLeft cannot be negative');\n\n const initialTop = element.scrollTop;\n const initialLeft = element.scrollLeft;\n const deltaTop = scrollTop - initialTop;\n const deltaLeft = scrollLeft - initialLeft;\n const observable = !duration\n ? of([scrollTop, scrollLeft] as [number, number])\n : defer(() => of(this.performanceRef.now())).pipe(\n switchMap(start => this.animationFrame$.pipe(map(now => now - start))),\n map(elapsed => easeInOutQuad(clamp(elapsed / duration, 0, 1))),\n map(\n percent =>\n [\n initialTop + deltaTop * percent,\n initialLeft + deltaLeft * percent,\n ] as [number, number],\n ),\n takeUntil(timer(duration)),\n );\n\n return observable.pipe(\n tap(([scrollTop, scrollLeft]) => {\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }),\n );\n }\n}\n","import {Injectable} from '@angular/core';\nimport {Observable, Observer} from 'rxjs';\nimport {shareReplay} from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiStaticRequestService {\n private readonly cache = new Map<string, Observable<string>>();\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 observable = new Observable((observer: Observer<string>) => {\n const xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4) {\n const response = xhr.responseType ? xhr.response : xhr.responseText;\n\n if (xhr.status === 200) {\n observer.next(response);\n observer.complete();\n } else {\n observer.error(response);\n }\n }\n };\n\n xhr.open('GET', url);\n xhr.send();\n\n return () => {\n xhr.abort();\n };\n });\n const piped = observable.pipe(shareReplay({bufferSize: 1, refCount: false}));\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 {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_SWIPE_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {getSwipeDirection, isPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {merge, Observable} from 'rxjs';\nimport {filter, map, pairwise} from 'rxjs/operators';\n\n/**\n * @dynamic\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) documentRef: Document,\n ) {\n super(subscriber => {\n merge(\n typedFromEvent(nativeElement, 'touchstart', {passive: true}),\n typedFromEvent(documentRef, '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: getSwipeDirection(distanceX, distanceY),\n events: [start, end] as [TouchEvent, TouchEvent],\n };\n }\n\n return null;\n }),\n filter(isPresent),\n )\n .subscribe(subscriber);\n });\n }\n}\n","import {ElementRef, Inject, Injectable} from '@angular/core';\nimport {TuiZoom, TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\nimport {preventDefault, typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {TUI_ZOOM_OPTIONS} from '@taiga-ui/cdk/tokens';\nimport {distanceBetweenTouches} 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// @dynamic\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 typedFromEvent(nativeElement, 'touchstart', {passive: true}).pipe(\n filter(({touches}) => touches.length > 1),\n switchMap(startEvent =>\n typedFromEvent(nativeElement, 'touchmove', {\n passive: true,\n }).pipe(\n preventDefault(),\n scan(\n (prev, event) => {\n const distance = distanceBetweenTouches(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: distanceBetweenTouches(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(typedFromEvent(nativeElement, 'touchend')),\n ),\n ),\n ),\n typedFromEvent(nativeElement, 'wheel', {passive: false}).pipe(\n preventDefault(),\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,9 +1,9 @@
|
|
|
1
1
|
import { __read } from 'tslib';
|
|
2
2
|
import { DOCUMENT } from '@angular/common';
|
|
3
3
|
import { InjectionToken, inject, InjectFlags, RendererFactory2 } from '@angular/core';
|
|
4
|
-
import { WINDOW,
|
|
4
|
+
import { WINDOW, NAVIGATOR, USER_AGENT } from '@ng-web-apis/common';
|
|
5
5
|
import { typedFromEvent } from '@taiga-ui/cdk/observables';
|
|
6
|
-
import { getActualTarget, getDocumentOrShadowRoot } from '@taiga-ui/cdk/utils';
|
|
6
|
+
import { getActualTarget, getDocumentOrShadowRoot, isIos, isApple } from '@taiga-ui/cdk/utils';
|
|
7
7
|
import { BehaviorSubject, timer, merge, of } from 'rxjs';
|
|
8
8
|
import { switchMap, mapTo, startWith, share, takeUntil, repeatWhen, withLatestFrom, filter, map, take, distinctUntilChanged, shareReplay } from 'rxjs/operators';
|
|
9
9
|
import { ɵAnimationEngine } from '@angular/animations/browser';
|
|
@@ -97,13 +97,8 @@ var TUI_DIALOGS = new InjectionToken('A stream of dialogs', {
|
|
|
97
97
|
|
|
98
98
|
var TUI_FOCUSABLE_ITEM_ACCESSOR = new InjectionToken('A component that can be focused');
|
|
99
99
|
|
|
100
|
-
var IOS_REG_EXP = /ipad|iphone|ipod/;
|
|
101
100
|
var TUI_IS_IOS = new InjectionToken('iOS browser detection', {
|
|
102
|
-
factory: function () {
|
|
103
|
-
return IOS_REG_EXP.test(inject(USER_AGENT).toLowerCase()) ||
|
|
104
|
-
(inject(USER_AGENT).toLowerCase().includes('apple') &&
|
|
105
|
-
inject(NAVIGATOR).maxTouchPoints > 1);
|
|
106
|
-
},
|
|
101
|
+
factory: function () { return isIos(inject(NAVIGATOR)); },
|
|
107
102
|
});
|
|
108
103
|
|
|
109
104
|
// https://stackoverflow.com/a/11381730/2706426 http://detectmobilebrowsers.com/
|
|
@@ -112,7 +107,7 @@ var secondRegex = /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|o
|
|
|
112
107
|
var TUI_IS_MOBILE = new InjectionToken('Mobile browser detection', {
|
|
113
108
|
factory: function () {
|
|
114
109
|
return firstRegex.test(inject(USER_AGENT).toLowerCase()) ||
|
|
115
|
-
secondRegex.test(inject(USER_AGENT).
|
|
110
|
+
secondRegex.test(inject(USER_AGENT).slice(0, 4).toLowerCase());
|
|
116
111
|
},
|
|
117
112
|
});
|
|
118
113
|
|
|
@@ -120,6 +115,8 @@ var TUI_IS_ANDROID = new InjectionToken('Mobile browser that is not iOS (technic
|
|
|
120
115
|
factory: function () { return inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS); },
|
|
121
116
|
});
|
|
122
117
|
|
|
118
|
+
var TUI_IS_APPLE = new InjectionToken('Apple(safari/webkit) detection', { factory: function () { return isApple(inject(NAVIGATOR)); } });
|
|
119
|
+
|
|
123
120
|
/**
|
|
124
121
|
* {@link https://docs.cypress.io/faq/questions/using-cypress-faq#Is-there-any-way-to-detect-if-my-app-is-running-under-Cypress Cypress docs}
|
|
125
122
|
*/
|
|
@@ -165,5 +162,5 @@ var TUI_ZOOM_OPTIONS = new InjectionToken('Zoom options', {
|
|
|
165
162
|
* Generated bundle index. Do not edit.
|
|
166
163
|
*/
|
|
167
164
|
|
|
168
|
-
export { TUI_ACTIVE_ELEMENT, TUI_ALERTS, TUI_DEFAULT_RENDERER, TUI_DIALOGS, TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_ANDROID, TUI_IS_CYPRESS, TUI_IS_IOS, TUI_IS_MOBILE, TUI_REMOVED_ELEMENT, TUI_SANITIZER, TUI_SWIPE_OPTIONS, TUI_TAKE_ONLY_TRUSTED_EVENTS, TUI_TOUCH_SUPPORTED, TUI_WINDOW_HEIGHT, TUI_ZOOM_OPTIONS };
|
|
165
|
+
export { TUI_ACTIVE_ELEMENT, TUI_ALERTS, TUI_DEFAULT_RENDERER, TUI_DIALOGS, TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_ANDROID, TUI_IS_APPLE, TUI_IS_CYPRESS, TUI_IS_IOS, TUI_IS_MOBILE, TUI_REMOVED_ELEMENT, TUI_SANITIZER, TUI_SWIPE_OPTIONS, TUI_TAKE_ONLY_TRUSTED_EVENTS, TUI_TOUCH_SUPPORTED, TUI_WINDOW_HEIGHT, TUI_ZOOM_OPTIONS };
|
|
169
166
|
//# sourceMappingURL=taiga-ui-cdk-tokens.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-tokens.js","sources":["ng://@taiga-ui/cdk/tokens/removed-element.ts","ng://@taiga-ui/cdk/tokens/active-element.ts","ng://@taiga-ui/cdk/tokens/alerts.ts","ng://@taiga-ui/cdk/tokens/default-renderer.ts","ng://@taiga-ui/cdk/tokens/dialogs.ts","ng://@taiga-ui/cdk/tokens/focusable-item-accessor.ts","ng://@taiga-ui/cdk/tokens/is-ios.ts","ng://@taiga-ui/cdk/tokens/is-mobile.ts","ng://@taiga-ui/cdk/tokens/is-android.ts","ng://@taiga-ui/cdk/tokens/is-cypress.ts","ng://@taiga-ui/cdk/tokens/sanitizer.ts","ng://@taiga-ui/cdk/tokens/swipe-options.ts","ng://@taiga-ui/cdk/tokens/take-only-trusted-events.ts","ng://@taiga-ui/cdk/tokens/touch-supported.ts","ng://@taiga-ui/cdk/tokens/window-height.ts","ng://@taiga-ui/cdk/tokens/zoom-options.ts","ng://@taiga-ui/cdk/tokens/taiga-ui-cdk-tokens.ts"],"sourcesContent":["import {ɵAnimationEngine} from '@angular/animations/browser';\nimport {inject, InjectFlags, InjectionToken} from '@angular/core';\nimport {BehaviorSubject, Observable, timer} from 'rxjs';\nimport {mapTo, share, startWith, switchMap} from 'rxjs/operators';\n\nexport const TUI_REMOVED_ELEMENT = new InjectionToken<Observable<Element | null>>(\n 'Element currently being removed by AnimationEngine',\n {\n factory: () => {\n const stub = {onRemovalComplete: () => {}};\n const element$ = new BehaviorSubject<Element | null>(null);\n const engine = inject(ɵAnimationEngine, InjectFlags.Optional) ?? stub;\n const {onRemovalComplete = stub.onRemovalComplete} = engine;\n\n engine.onRemovalComplete = (element, context) => {\n element$.next(element);\n onRemovalComplete(element, context);\n };\n\n return element$.pipe(\n switchMap(element => timer(0).pipe(mapTo(null), startWith(element))),\n share(),\n );\n },\n },\n);\n","import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget, getDocumentOrShadowRoot} from '@taiga-ui/cdk/utils';\nimport {merge, Observable, of, timer} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n mapTo,\n repeatWhen,\n share,\n startWith,\n switchMap,\n take,\n takeUntil,\n withLatestFrom,\n} from 'rxjs/operators';\n\nimport {TUI_REMOVED_ELEMENT} from './removed-element';\n\nexport const TUI_ACTIVE_ELEMENT = new InjectionToken<Observable<EventTarget | null>>(\n 'Active element on the document for ActiveZone',\n {\n factory: () => {\n const removedElement$ = inject(TUI_REMOVED_ELEMENT);\n const windowRef = inject(WINDOW);\n const documentRef = inject(DOCUMENT);\n const focusout$ = typedFromEvent(windowRef, 'focusout');\n const focusin$ = typedFromEvent(windowRef, 'focusin');\n const blur$ = typedFromEvent(windowRef, 'blur');\n const mousedown$ = typedFromEvent(windowRef, 'mousedown');\n const mouseup$ = typedFromEvent(windowRef, 'mouseup');\n\n return merge(\n focusout$.pipe(\n // eslint-disable-next-line rxjs/no-unsafe-takeuntil\n takeUntil(mousedown$),\n // eslint-disable-next-line rxjs/no-ignored-notifier\n repeatWhen(() => mouseup$),\n withLatestFrom(removedElement$),\n filter(([event, removedElement]) =>\n isValidFocusout(getActualTarget(event), removedElement),\n ),\n map(([{relatedTarget}]) => relatedTarget),\n ),\n blur$.pipe(\n map(() => documentRef.activeElement),\n filter(element => !!element && element.matches('iframe')),\n ),\n focusin$.pipe(\n switchMap(event => {\n const target = getActualTarget(event);\n const root = getDocumentOrShadowRoot(target) as Document;\n\n return root === documentRef\n ? of(target)\n : shadowRootActiveElement(root).pipe(startWith(target));\n }),\n ),\n mousedown$.pipe(\n switchMap(event =>\n !documentRef.activeElement ||\n documentRef.activeElement === documentRef.body\n ? of(getActualTarget(event))\n : focusout$.pipe(\n take(1),\n mapTo(getActualTarget(event)),\n takeUntil(timer(0)),\n ),\n ),\n ),\n ).pipe(distinctUntilChanged(), share());\n },\n },\n);\n\n// Checks if focusout event should be considered leaving active zone\nfunction isValidFocusout(target: any, removedElement: Element | null = null): boolean {\n return (\n // Not due to switching tabs/going to DevTools\n getDocumentOrShadowRoot(target).activeElement !== target &&\n // Not due to button/input becoming disabled\n !target.disabled &&\n // Not due to element being removed from DOM\n (!removedElement || !removedElement.contains(target))\n );\n}\n\nfunction shadowRootActiveElement(root: Document): Observable<EventTarget | null> {\n return merge(\n typedFromEvent(root, 'focusin').pipe(map(({target}) => target)),\n typedFromEvent(root, 'focusout').pipe(\n filter(\n ({target, relatedTarget}) => !!relatedTarget && isValidFocusout(target),\n ),\n map(({relatedTarget}) => relatedTarget),\n ),\n );\n}\n","import {InjectionToken} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {Observable} from 'rxjs';\n\nexport const TUI_ALERTS = new InjectionToken<\n ReadonlyArray<Observable<readonly TuiAriaDialogContext[]>>\n>('A stream of alerts', {\n factory: () => [],\n});\n","import {inject, InjectionToken, Renderer2, RendererFactory2} from '@angular/core';\n\n// https://github.com/angular/angular/issues/17824#issuecomment-353239017\nexport const TUI_DEFAULT_RENDERER = new InjectionToken<Renderer2>(\n 'A Renderer2 for global services',\n {\n // @ts-ignore\n factory: () => inject(RendererFactory2).createRenderer(null, null),\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {Observable} from 'rxjs';\n\nexport const TUI_DIALOGS = new InjectionToken<\n ReadonlyArray<Observable<readonly TuiAriaDialogContext[]>>\n>('A stream of dialogs', {\n factory: () => [],\n});\n","import {InjectionToken} from '@angular/core';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_FOCUSABLE_ITEM_ACCESSOR =\n new InjectionToken<TuiFocusableElementAccessor>('A component that can be focused');\n","import {inject, InjectionToken} from '@angular/core';\nimport {NAVIGATOR, USER_AGENT} from '@ng-web-apis/common';\n\nconst IOS_REG_EXP = /ipad|iphone|ipod/;\n\nexport const TUI_IS_IOS = new InjectionToken<boolean>('iOS browser detection', {\n factory: () =>\n IOS_REG_EXP.test(inject(USER_AGENT).toLowerCase()) ||\n (inject(USER_AGENT).toLowerCase().includes('apple') &&\n inject(NAVIGATOR).maxTouchPoints > 1),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {USER_AGENT} from '@ng-web-apis/common';\n\n// https://stackoverflow.com/a/11381730/2706426 http://detectmobilebrowsers.com/\nconst firstRegex =\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/;\nconst secondRegex =\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/;\n\nexport const TUI_IS_MOBILE = new InjectionToken<boolean>('Mobile browser detection', {\n factory: () =>\n firstRegex.test(inject(USER_AGENT).toLowerCase()) ||\n secondRegex.test(inject(USER_AGENT).substr(0, 4).toLowerCase()),\n});\n","import {inject, InjectionToken} from '@angular/core';\n\nimport {TUI_IS_IOS} from './is-ios';\nimport {TUI_IS_MOBILE} from './is-mobile';\n\nexport const TUI_IS_ANDROID = new InjectionToken<boolean>(\n 'Mobile browser that is not iOS (technically includes Windows Phone, Blackberry etc.)',\n {\n factory: () => inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS),\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport interface WindowWithCypress extends Window {\n Cypress?: unknown;\n}\n\n/**\n * {@link https://docs.cypress.io/faq/questions/using-cypress-faq#Is-there-any-way-to-detect-if-my-app-is-running-under-Cypress Cypress docs}\n */\nexport const TUI_IS_CYPRESS = new InjectionToken<boolean>(\n 'Detect if app is running under Cypress',\n {\n factory: () => !!inject<WindowWithCypress>(WINDOW).Cypress,\n },\n);\n","import {InjectionToken, Sanitizer} from '@angular/core';\n\n/* @deprecated export token from @taiga-ui/core package **/\nexport const TUI_SANITIZER = new InjectionToken<Sanitizer>(\n 'A custom Sanitizer to sanitize source before inlining',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_SWIPE_OPTIONS = new InjectionToken<TuiSwipeOptions>('Swipe options', {\n factory: () => ({timeout: 500, threshold: 30}),\n});\n","import {InjectionToken} from '@angular/core';\n\n/**\n * @description:\n * The isTrusted read-only property of the Event interface is a boolean value that is true\n * when the event was generated by a user action, and false when the event was created or\n * modified by a script or dispatched via EventTarget.dispatchEvent().\n */\nexport const TUI_TAKE_ONLY_TRUSTED_EVENTS: InjectionToken<boolean> =\n new InjectionToken<boolean>(\n 'This token need for override behavior the `pressedObservable` function',\n {\n factory: () => true,\n },\n );\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_TOUCH_SUPPORTED = new InjectionToken('Touch support detection', {\n factory: () => inject(WINDOW).matchMedia('(any-pointer: coarse)').matches,\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {map, shareReplay, startWith} from 'rxjs/operators';\n\nexport const TUI_WINDOW_HEIGHT = new InjectionToken<Observable<number>>(\n 'Window height accounting for disappearing address bar',\n {\n factory: () => {\n const windowRef = inject(WINDOW);\n\n return typedFromEvent(windowRef, 'resize').pipe(\n startWith(null),\n map(() => windowRef.innerHeight),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n },\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_ZOOM_OPTIONS = new InjectionToken<TuiZoomOptions>('Zoom options', {\n factory: () => ({\n wheelSensitivity: 0.01,\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-tokens.js","sources":["ng://@taiga-ui/cdk/tokens/removed-element.ts","ng://@taiga-ui/cdk/tokens/active-element.ts","ng://@taiga-ui/cdk/tokens/alerts.ts","ng://@taiga-ui/cdk/tokens/default-renderer.ts","ng://@taiga-ui/cdk/tokens/dialogs.ts","ng://@taiga-ui/cdk/tokens/focusable-item-accessor.ts","ng://@taiga-ui/cdk/tokens/is-ios.ts","ng://@taiga-ui/cdk/tokens/is-mobile.ts","ng://@taiga-ui/cdk/tokens/is-android.ts","ng://@taiga-ui/cdk/tokens/is-apple.ts","ng://@taiga-ui/cdk/tokens/is-cypress.ts","ng://@taiga-ui/cdk/tokens/sanitizer.ts","ng://@taiga-ui/cdk/tokens/swipe-options.ts","ng://@taiga-ui/cdk/tokens/take-only-trusted-events.ts","ng://@taiga-ui/cdk/tokens/touch-supported.ts","ng://@taiga-ui/cdk/tokens/window-height.ts","ng://@taiga-ui/cdk/tokens/zoom-options.ts","ng://@taiga-ui/cdk/tokens/taiga-ui-cdk-tokens.ts"],"sourcesContent":["import {ɵAnimationEngine} from '@angular/animations/browser';\nimport {inject, InjectFlags, InjectionToken} from '@angular/core';\nimport {BehaviorSubject, Observable, timer} from 'rxjs';\nimport {mapTo, share, startWith, switchMap} from 'rxjs/operators';\n\nexport const TUI_REMOVED_ELEMENT = new InjectionToken<Observable<Element | null>>(\n 'Element currently being removed by AnimationEngine',\n {\n factory: () => {\n const stub = {onRemovalComplete: () => {}};\n const element$ = new BehaviorSubject<Element | null>(null);\n const engine = inject(ɵAnimationEngine, InjectFlags.Optional) ?? stub;\n const {onRemovalComplete = stub.onRemovalComplete} = engine;\n\n engine.onRemovalComplete = (element, context) => {\n element$.next(element);\n onRemovalComplete(element, context);\n };\n\n return element$.pipe(\n switchMap(element => timer(0).pipe(mapTo(null), startWith(element))),\n share(),\n );\n },\n },\n);\n","import {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {getActualTarget, getDocumentOrShadowRoot} from '@taiga-ui/cdk/utils';\nimport {merge, Observable, of, timer} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n mapTo,\n repeatWhen,\n share,\n startWith,\n switchMap,\n take,\n takeUntil,\n withLatestFrom,\n} from 'rxjs/operators';\n\nimport {TUI_REMOVED_ELEMENT} from './removed-element';\n\nexport const TUI_ACTIVE_ELEMENT = new InjectionToken<Observable<EventTarget | null>>(\n 'Active element on the document for ActiveZone',\n {\n factory: () => {\n const removedElement$ = inject(TUI_REMOVED_ELEMENT);\n const windowRef = inject(WINDOW);\n const documentRef = inject(DOCUMENT);\n const focusout$ = typedFromEvent(windowRef, 'focusout');\n const focusin$ = typedFromEvent(windowRef, 'focusin');\n const blur$ = typedFromEvent(windowRef, 'blur');\n const mousedown$ = typedFromEvent(windowRef, 'mousedown');\n const mouseup$ = typedFromEvent(windowRef, 'mouseup');\n\n return merge(\n focusout$.pipe(\n // eslint-disable-next-line rxjs/no-unsafe-takeuntil\n takeUntil(mousedown$),\n // eslint-disable-next-line rxjs/no-ignored-notifier\n repeatWhen(() => mouseup$),\n withLatestFrom(removedElement$),\n filter(([event, removedElement]) =>\n isValidFocusout(getActualTarget(event), removedElement),\n ),\n map(([{relatedTarget}]) => relatedTarget),\n ),\n blur$.pipe(\n map(() => documentRef.activeElement),\n filter(element => !!element && element.matches('iframe')),\n ),\n focusin$.pipe(\n switchMap(event => {\n const target = getActualTarget(event);\n const root = getDocumentOrShadowRoot(target) as Document;\n\n return root === documentRef\n ? of(target)\n : shadowRootActiveElement(root).pipe(startWith(target));\n }),\n ),\n mousedown$.pipe(\n switchMap(event =>\n !documentRef.activeElement ||\n documentRef.activeElement === documentRef.body\n ? of(getActualTarget(event))\n : focusout$.pipe(\n take(1),\n mapTo(getActualTarget(event)),\n takeUntil(timer(0)),\n ),\n ),\n ),\n ).pipe(distinctUntilChanged(), share());\n },\n },\n);\n\n// Checks if focusout event should be considered leaving active zone\nfunction isValidFocusout(target: any, removedElement: Element | null = null): boolean {\n return (\n // Not due to switching tabs/going to DevTools\n getDocumentOrShadowRoot(target).activeElement !== target &&\n // Not due to button/input becoming disabled\n !target.disabled &&\n // Not due to element being removed from DOM\n (!removedElement || !removedElement.contains(target))\n );\n}\n\nfunction shadowRootActiveElement(root: Document): Observable<EventTarget | null> {\n return merge(\n typedFromEvent(root, 'focusin').pipe(map(({target}) => target)),\n typedFromEvent(root, 'focusout').pipe(\n filter(\n ({target, relatedTarget}) => !!relatedTarget && isValidFocusout(target),\n ),\n map(({relatedTarget}) => relatedTarget),\n ),\n );\n}\n","import {InjectionToken} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {Observable} from 'rxjs';\n\nexport const TUI_ALERTS = new InjectionToken<\n ReadonlyArray<Observable<readonly TuiAriaDialogContext[]>>\n>('A stream of alerts', {\n factory: () => [],\n});\n","import {inject, InjectionToken, Renderer2, RendererFactory2} from '@angular/core';\n\n// https://github.com/angular/angular/issues/17824#issuecomment-353239017\nexport const TUI_DEFAULT_RENDERER = new InjectionToken<Renderer2>(\n 'A Renderer2 for global services',\n {\n // @ts-ignore\n factory: () => inject(RendererFactory2).createRenderer(null, null),\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiAriaDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {Observable} from 'rxjs';\n\nexport const TUI_DIALOGS = new InjectionToken<\n ReadonlyArray<Observable<readonly TuiAriaDialogContext[]>>\n>('A stream of dialogs', {\n factory: () => [],\n});\n","import {InjectionToken} from '@angular/core';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_FOCUSABLE_ITEM_ACCESSOR =\n new InjectionToken<TuiFocusableElementAccessor>('A component that can be focused');\n","import {inject, InjectionToken} from '@angular/core';\nimport {NAVIGATOR} from '@ng-web-apis/common';\nimport {isIos} from '@taiga-ui/cdk/utils';\n\nexport const TUI_IS_IOS = new InjectionToken<boolean>('iOS browser detection', {\n factory: () => isIos(inject(NAVIGATOR)),\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {USER_AGENT} from '@ng-web-apis/common';\n\n// https://stackoverflow.com/a/11381730/2706426 http://detectmobilebrowsers.com/\nconst firstRegex =\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/;\nconst secondRegex =\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/;\n\nexport const TUI_IS_MOBILE = new InjectionToken<boolean>('Mobile browser detection', {\n factory: () =>\n firstRegex.test(inject(USER_AGENT).toLowerCase()) ||\n secondRegex.test(inject(USER_AGENT).slice(0, 4).toLowerCase()),\n});\n","import {inject, InjectionToken} from '@angular/core';\n\nimport {TUI_IS_IOS} from './is-ios';\nimport {TUI_IS_MOBILE} from './is-mobile';\n\nexport const TUI_IS_ANDROID = new InjectionToken<boolean>(\n 'Mobile browser that is not iOS (technically includes Windows Phone, Blackberry etc.)',\n {\n factory: () => inject(TUI_IS_MOBILE) && !inject(TUI_IS_IOS),\n },\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {NAVIGATOR} from '@ng-web-apis/common';\nimport {isApple} from '@taiga-ui/cdk/utils';\n\nexport const TUI_IS_APPLE = new InjectionToken<boolean>(\n 'Apple(safari/webkit) detection',\n {factory: () => isApple(inject(NAVIGATOR))},\n);\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport interface WindowWithCypress extends Window {\n Cypress?: unknown;\n}\n\n/**\n * {@link https://docs.cypress.io/faq/questions/using-cypress-faq#Is-there-any-way-to-detect-if-my-app-is-running-under-Cypress Cypress docs}\n */\nexport const TUI_IS_CYPRESS = new InjectionToken<boolean>(\n 'Detect if app is running under Cypress',\n {\n factory: () => !!inject<WindowWithCypress>(WINDOW).Cypress,\n },\n);\n","import {InjectionToken, Sanitizer} from '@angular/core';\n\n/* @deprecated export token from @taiga-ui/core package **/\nexport const TUI_SANITIZER = new InjectionToken<Sanitizer>(\n 'A custom Sanitizer to sanitize source before inlining',\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiSwipeOptions} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_SWIPE_OPTIONS = new InjectionToken<TuiSwipeOptions>('Swipe options', {\n factory: () => ({timeout: 500, threshold: 30}),\n});\n","import {InjectionToken} from '@angular/core';\n\n/**\n * @description:\n * The isTrusted read-only property of the Event interface is a boolean value that is true\n * when the event was generated by a user action, and false when the event was created or\n * modified by a script or dispatched via EventTarget.dispatchEvent().\n */\nexport const TUI_TAKE_ONLY_TRUSTED_EVENTS: InjectionToken<boolean> =\n new InjectionToken<boolean>(\n 'This token need for override behavior the `pressedObservable` function',\n {\n factory: () => true,\n },\n );\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\n\nexport const TUI_TOUCH_SUPPORTED = new InjectionToken('Touch support detection', {\n factory: () => inject(WINDOW).matchMedia('(any-pointer: coarse)').matches,\n});\n","import {inject, InjectionToken} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {typedFromEvent} from '@taiga-ui/cdk/observables';\nimport {Observable} from 'rxjs';\nimport {map, shareReplay, startWith} from 'rxjs/operators';\n\nexport const TUI_WINDOW_HEIGHT = new InjectionToken<Observable<number>>(\n 'Window height accounting for disappearing address bar',\n {\n factory: () => {\n const windowRef = inject(WINDOW);\n\n return typedFromEvent(windowRef, 'resize').pipe(\n startWith(null),\n map(() => windowRef.innerHeight),\n shareReplay({bufferSize: 1, refCount: true}),\n );\n },\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {TuiZoomOptions} from '@taiga-ui/cdk/interfaces';\n\nexport const TUI_ZOOM_OPTIONS = new InjectionToken<TuiZoomOptions>('Zoom options', {\n factory: () => ({\n wheelSensitivity: 0.01,\n }),\n});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-utils-browser.js","sources":["ng://@taiga-ui/cdk/utils/browser/is-edge.ts","ng://@taiga-ui/cdk/utils/browser/is-edge-older-than.ts","ng://@taiga-ui/cdk/utils/browser/is-firefox.ts","ng://@taiga-ui/cdk/utils/browser/is-
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-utils-browser.js","sources":["ng://@taiga-ui/cdk/utils/browser/is-edge.ts","ng://@taiga-ui/cdk/utils/browser/is-edge-older-than.ts","ng://@taiga-ui/cdk/utils/browser/is-firefox.ts","ng://@taiga-ui/cdk/utils/browser/is-ie.ts","ng://@taiga-ui/cdk/utils/browser/is-safari.ts","ng://@taiga-ui/cdk/utils/browser/taiga-ui-cdk-utils-browser.ts"],"sourcesContent":["export function isEdge(userAgent: string): boolean {\n return userAgent.toLowerCase().includes('edge');\n}\n","export function isEdgeOlderThan(version: number, userAgent: string): boolean {\n const EDGE = 'edge/';\n const currentVersion = parseInt(\n userAgent.slice(userAgent.toLowerCase().indexOf(EDGE) + EDGE.length),\n 10,\n );\n\n return currentVersion < version;\n}\n","export function isFirefox(userAgent: string): boolean {\n return userAgent.toLowerCase().includes('firefox');\n}\n","export function isIE(userAgent: string): boolean {\n return userAgent.toLowerCase().includes('trident');\n}\n","export function isSafari(element: Element): boolean {\n const documentRef = element.ownerDocument;\n const windowRef = documentRef && documentRef.defaultView;\n\n return !!windowRef && 'safari' in windowRef;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"SAAgB,MAAM,CAAC,SAAiB;IACpC,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACpD;;SCFgB,eAAe,CAAC,OAAe,EAAE,SAAiB;IAC9D,IAAM,IAAI,GAAG,OAAO,CAAC;IACrB,IAAM,cAAc,GAAG,QAAQ,CAC3B,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EACpE,EAAE,CACL,CAAC;IAEF,OAAO,cAAc,GAAG,OAAO,CAAC;AACpC;;SCRgB,SAAS,CAAC,SAAiB;IACvC,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACvD;;SCFgB,IAAI,CAAC,SAAiB;IAClC,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACvD;;SCFgB,QAAQ,CAAC,OAAgB;IACrC,IAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAC1C,IAAM,SAAS,GAAG,WAAW,IAAI,WAAW,CAAC,WAAW,CAAC;IAEzD,OAAO,CAAC,CAAC,SAAS,IAAI,QAAQ,IAAI,SAAS,CAAC;AAChD;;ACLA;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-utils-focus.js","sources":["ng://@taiga-ui/cdk/utils/focus/get-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/set-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/blur-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-mouse-focusable.ts","ng://@taiga-ui/cdk/utils/focus/get-closest-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused-in.ts","ng://@taiga-ui/cdk/utils/focus/move-focus.ts","ng://@taiga-ui/cdk/utils/focus/set-native-mouse-focused.ts","ng://@taiga-ui/cdk/utils/focus/taiga-ui-cdk-utils-focus.ts"],"sourcesContent":["/**\n * Returns current active element, including shadow dom\n *\n * @return element or null\n */\nexport function getNativeFocused(documentRef: Document): Element | null {\n if (!documentRef.activeElement || !documentRef.activeElement.shadowRoot) {\n return documentRef.activeElement;\n }\n\n let element = documentRef.activeElement.shadowRoot.activeElement;\n\n while (element && element.shadowRoot) {\n element = element.shadowRoot.activeElement;\n }\n\n return element;\n}\n","/**\n * Focuses or blurs and element\n *\n * @param element native element\n * @param focused boolean focused state\n * @param preventScroll optional flag to prevent native scroll to the element\n */\nexport function setNativeFocused(\n element: HTMLOrSVGElement,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (focused) {\n element.focus({preventScroll});\n } else {\n element.blur();\n }\n}\n","import {getNativeFocused} from './get-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Finds and blurs current active element, including shadow DOM\n */\nexport function blurNativeFocused(documentRef: Document): void {\n const activeElement = getNativeFocused(documentRef);\n\n // TODO: iframe warning\n if (activeElement instanceof HTMLElement) {\n setNativeFocused(activeElement, false);\n }\n}\n","/**\n * Checks for signs that element can be focused with keyboard. tabIndex above 0 is ignored to\n * only target natural focus order. Not checking the possibility of an element to\n * be focused, for example element can have display: none applied to it or any other\n * circumstances could prevent actual focus.\n */\nexport function isNativeKeyboardFocusable(element: Element): boolean {\n if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {\n return false;\n }\n\n // TODO: iframe warning\n if (\n (element instanceof HTMLElement && element.isContentEditable) ||\n element.getAttribute('tabIndex') === '0'\n ) {\n return true;\n }\n\n switch (element.tagName) {\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n case 'VIDEO':\n case 'AUDIO':\n return element.hasAttribute('controls');\n case 'INPUT':\n return element.getAttribute('type') !== 'hidden';\n case 'A':\n case 'LINK':\n return element.hasAttribute('href');\n default:\n return false;\n }\n}\n","import {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\n\nexport function isNativeMouseFocusable(element: Element): boolean {\n return (\n !element.hasAttribute('disabled') &&\n (element.getAttribute('tabIndex') === '-1' || isNativeKeyboardFocusable(element))\n );\n}\n","import {svgNodeFilter} from '@taiga-ui/cdk/constants';\n\nimport {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\nimport {isNativeMouseFocusable} from './is-native-mouse-focusable';\n\n/**\n * Finds the closest element that can be focused with a keyboard or mouse in theory\n *\n * @param initial current HTML element\n * @param prev should it look backwards instead (find item that will be focused with Shift + Tab)\n * @param root top Node limiting the search area\n * @param keyboard determine if only keyboard focus is of interest\n *\n */\nexport function getClosestFocusable(\n initial: HTMLElement,\n prev: boolean = false,\n root: Node,\n keyboard: boolean = true,\n): HTMLElement | null {\n if (!root.ownerDocument) {\n return null;\n }\n\n const check = keyboard ? isNativeKeyboardFocusable : isNativeMouseFocusable;\n\n // Deprecated but ony this overload works in IE\n // Filter must be a function in IE, other modern browsers are compliant to this format\n const treeWalker = root.ownerDocument.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n svgNodeFilter,\n false,\n );\n\n treeWalker.currentNode = initial;\n\n while (prev ? treeWalker.previousNode() : treeWalker.nextNode()) {\n // TODO: iframe warning\n if (treeWalker.currentNode instanceof HTMLElement) {\n initial = treeWalker.currentNode;\n }\n\n if (check(initial)) {\n return initial;\n }\n }\n\n return null;\n}\n\n/** @deprecated use getClosestFocusable */\nexport const getClosestKeyboardFocusable = getClosestFocusable;\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if element is focused.\n *\n * Could return true even after blur since element remains focused if you switch away from a browser tab.\n *\n * @param node or null (as a common return value of DOM nodes walking)\n * @return true if focused\n */\nexport function isNativeFocused(node: Node | null): boolean {\n return (\n !!node && !!node.ownerDocument && getNativeFocused(node.ownerDocument) === node\n );\n}\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if focused element is within given element.\n *\n * @param node\n * @return true if focused node is contained within element\n */\nexport function isNativeFocusedIn(node: Node): boolean {\n // !node.contains - check for IE11\n if (!node.ownerDocument || !node.contains) {\n return false;\n }\n\n const nativeFocused = getNativeFocused(node.ownerDocument);\n\n return nativeFocused !== null && node.contains(nativeFocused);\n}\n","import {isNativeFocused} from './is-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Utility method for moving focus in a list of elements\n *\n * @param currentIndex currently focused index\n * @param elements array of focusable elements\n * @param step a step to move focus by, typically -1 or 1\n */\nexport function moveFocus(\n currentIndex: number,\n elements: readonly HTMLElement[],\n step: number,\n): void {\n currentIndex += step;\n\n while (currentIndex >= 0 && currentIndex < elements.length) {\n setNativeFocused(elements[currentIndex]);\n\n if (isNativeFocused(elements[currentIndex])) {\n return;\n }\n\n currentIndex += step;\n }\n}\n","import {setNativeFocused} from './set-native-focused';\n\n/**\n * Focuses or blurs element with mouse action imitation (to spoof {@link TuiFocusVisibleService})\n *\n * @param element\n * @param focused desired focused state\n * @param preventScroll optionally prevent native browser scroll after focus\n */\nexport function setNativeMouseFocused(\n element: HTMLOrSVGElement & Element,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (!element.ownerDocument) {\n return;\n }\n\n if (typeof Event === 'function') {\n element.dispatchEvent(new Event('mousedown', {bubbles: true, cancelable: true}));\n } else {\n const event = element.ownerDocument.createEvent('Event');\n\n event.initEvent('mousedown', true, true);\n element.dispatchEvent(event);\n }\n\n setNativeFocused(element, focused, preventScroll);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-utils-focus.js","sources":["ng://@taiga-ui/cdk/utils/focus/get-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/set-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/blur-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-mouse-focusable.ts","ng://@taiga-ui/cdk/utils/focus/get-closest-keyboard-focusable.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused.ts","ng://@taiga-ui/cdk/utils/focus/is-native-focused-in.ts","ng://@taiga-ui/cdk/utils/focus/move-focus.ts","ng://@taiga-ui/cdk/utils/focus/set-native-mouse-focused.ts","ng://@taiga-ui/cdk/utils/focus/taiga-ui-cdk-utils-focus.ts"],"sourcesContent":["/**\n * Returns current active element, including shadow dom\n *\n * @return element or null\n */\nexport function getNativeFocused(documentRef: Document): Element | null {\n if (!documentRef.activeElement || !documentRef.activeElement.shadowRoot) {\n return documentRef.activeElement;\n }\n\n let element = documentRef.activeElement.shadowRoot.activeElement;\n\n while (element && element.shadowRoot) {\n element = element.shadowRoot.activeElement;\n }\n\n return element;\n}\n","/**\n * @deprecated: use native element.focus()\n * TODO: remove in v3.0\n * Focuses or blurs and element\n *\n * @param element native element\n * @param focused boolean focused state\n * @param preventScroll optional flag to prevent native scroll to the element\n */\nexport function setNativeFocused(\n element: HTMLOrSVGElement,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (focused) {\n element.focus({preventScroll});\n } else {\n element.blur();\n }\n}\n","import {getNativeFocused} from './get-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Finds and blurs current active element, including shadow DOM\n */\nexport function blurNativeFocused(documentRef: Document): void {\n const activeElement = getNativeFocused(documentRef);\n\n // TODO: iframe warning\n if (activeElement instanceof HTMLElement) {\n setNativeFocused(activeElement, false);\n }\n}\n","/**\n * Checks for signs that element can be focused with keyboard. tabIndex above 0 is ignored to\n * only target natural focus order. Not checking the possibility of an element to\n * be focused, for example element can have display: none applied to it or any other\n * circumstances could prevent actual focus.\n */\nexport function isNativeKeyboardFocusable(element: Element): boolean {\n if (element.hasAttribute('disabled') || element.getAttribute('tabIndex') === '-1') {\n return false;\n }\n\n // TODO: iframe warning\n if (\n (element instanceof HTMLElement && element.isContentEditable) ||\n element.getAttribute('tabIndex') === '0'\n ) {\n return true;\n }\n\n switch (element.tagName) {\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n case 'VIDEO':\n case 'AUDIO':\n return element.hasAttribute('controls');\n case 'INPUT':\n return element.getAttribute('type') !== 'hidden';\n case 'A':\n case 'LINK':\n return element.hasAttribute('href');\n default:\n return false;\n }\n}\n","import {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\n\nexport function isNativeMouseFocusable(element: Element): boolean {\n return (\n !element.hasAttribute('disabled') &&\n (element.getAttribute('tabIndex') === '-1' || isNativeKeyboardFocusable(element))\n );\n}\n","import {svgNodeFilter} from '@taiga-ui/cdk/constants';\n\nimport {isNativeKeyboardFocusable} from './is-native-keyboard-focusable';\nimport {isNativeMouseFocusable} from './is-native-mouse-focusable';\n\n/**\n * Finds the closest element that can be focused with a keyboard or mouse in theory\n *\n * @param initial current HTML element\n * @param prev should it look backwards instead (find item that will be focused with Shift + Tab)\n * @param root top Node limiting the search area\n * @param keyboard determine if only keyboard focus is of interest\n *\n */\nexport function getClosestFocusable(\n initial: HTMLElement,\n prev: boolean = false,\n root: Node,\n keyboard: boolean = true,\n): HTMLElement | null {\n if (!root.ownerDocument) {\n return null;\n }\n\n const check = keyboard ? isNativeKeyboardFocusable : isNativeMouseFocusable;\n\n // Deprecated but ony this overload works in IE\n // Filter must be a function in IE, other modern browsers are compliant to this format\n const treeWalker = root.ownerDocument.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n svgNodeFilter,\n false,\n );\n\n treeWalker.currentNode = initial;\n\n while (prev ? treeWalker.previousNode() : treeWalker.nextNode()) {\n // TODO: iframe warning\n if (treeWalker.currentNode instanceof HTMLElement) {\n initial = treeWalker.currentNode;\n }\n\n if (check(initial)) {\n return initial;\n }\n }\n\n return null;\n}\n\n/** @deprecated use getClosestFocusable */\nexport const getClosestKeyboardFocusable = getClosestFocusable;\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if element is focused.\n *\n * Could return true even after blur since element remains focused if you switch away from a browser tab.\n *\n * @param node or null (as a common return value of DOM nodes walking)\n * @return true if focused\n */\nexport function isNativeFocused(node: Node | null): boolean {\n return (\n !!node && !!node.ownerDocument && getNativeFocused(node.ownerDocument) === node\n );\n}\n","import {getNativeFocused} from './get-native-focused';\n\n/**\n * Checks if focused element is within given element.\n *\n * @param node\n * @return true if focused node is contained within element\n */\nexport function isNativeFocusedIn(node: Node): boolean {\n // !node.contains - check for IE11\n if (!node.ownerDocument || !node.contains) {\n return false;\n }\n\n const nativeFocused = getNativeFocused(node.ownerDocument);\n\n return nativeFocused !== null && node.contains(nativeFocused);\n}\n","import {isNativeFocused} from './is-native-focused';\nimport {setNativeFocused} from './set-native-focused';\n\n/**\n * Utility method for moving focus in a list of elements\n *\n * @param currentIndex currently focused index\n * @param elements array of focusable elements\n * @param step a step to move focus by, typically -1 or 1\n */\nexport function moveFocus(\n currentIndex: number,\n elements: readonly HTMLElement[],\n step: number,\n): void {\n currentIndex += step;\n\n while (currentIndex >= 0 && currentIndex < elements.length) {\n setNativeFocused(elements[currentIndex]);\n\n if (isNativeFocused(elements[currentIndex])) {\n return;\n }\n\n currentIndex += step;\n }\n}\n","import {setNativeFocused} from './set-native-focused';\n\n/**\n * Focuses or blurs element with mouse action imitation (to spoof {@link TuiFocusVisibleService})\n *\n * @param element\n * @param focused desired focused state\n * @param preventScroll optionally prevent native browser scroll after focus\n */\nexport function setNativeMouseFocused(\n element: HTMLOrSVGElement & Element,\n focused: boolean = true,\n preventScroll: boolean = false,\n): void {\n if (!element.ownerDocument) {\n return;\n }\n\n if (typeof Event === 'function') {\n element.dispatchEvent(new Event('mousedown', {bubbles: true, cancelable: true}));\n } else {\n const event = element.ownerDocument.createEvent('Event');\n\n event.initEvent('mousedown', true, true);\n element.dispatchEvent(event);\n }\n\n setNativeFocused(element, focused, preventScroll);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @note:
|
|
3
|
+
* All Chrome / Chromium-based browsers will return MacIntel on macOS,
|
|
4
|
+
* no matter what the hardware architecture is. See the source code here:
|
|
5
|
+
* https://source.chromium.org/chromium/chromium/src/+/master:third_party/blink/renderer/core/frame/navigator_id.cc;l=64;drc=703d3c472cf27470dad21a3f2c8972aca3732cd6
|
|
6
|
+
* But maybe in future years, it will be changed to MacM1
|
|
7
|
+
*
|
|
8
|
+
* Documentation:
|
|
9
|
+
* https://developer.mozilla.org/en-US/docs/Web/API/Navigator/platform
|
|
10
|
+
*/
|
|
11
|
+
function isApplePlatform(navigator) {
|
|
12
|
+
return navigator.platform.indexOf('Mac') === 0 || navigator.platform === 'iPhone';
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
var IOS_REG_EXP = /ipad|iphone|ipod/;
|
|
16
|
+
function isIos(navigator) {
|
|
17
|
+
return (IOS_REG_EXP.test(navigator.userAgent.toLowerCase()) ||
|
|
18
|
+
(isApplePlatform(navigator) && navigator.maxTouchPoints > 1));
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
var SAFARI_REG_EXP = /^((?!chrome|android).)*safari/i;
|
|
22
|
+
function isApple(navigator) {
|
|
23
|
+
return isIos(navigator) || SAFARI_REG_EXP.test(navigator.userAgent.toLowerCase());
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Generated bundle index. Do not edit.
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
export { isApple, isApplePlatform, isIos };
|
|
31
|
+
//# sourceMappingURL=taiga-ui-cdk-utils-os.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-utils-os.js","sources":["ng://@taiga-ui/cdk/utils/os/is-apple-platform.ts","ng://@taiga-ui/cdk/utils/os/is-ios.ts","ng://@taiga-ui/cdk/utils/os/is-apple.ts","ng://@taiga-ui/cdk/utils/os/taiga-ui-cdk-utils-os.ts"],"sourcesContent":["/**\n * @note:\n * All Chrome / Chromium-based browsers will return MacIntel on macOS,\n * no matter what the hardware architecture is. See the source code here:\n * https://source.chromium.org/chromium/chromium/src/+/master:third_party/blink/renderer/core/frame/navigator_id.cc;l=64;drc=703d3c472cf27470dad21a3f2c8972aca3732cd6\n * But maybe in future years, it will be changed to MacM1\n *\n * Documentation:\n * https://developer.mozilla.org/en-US/docs/Web/API/Navigator/platform\n */\nexport function isApplePlatform(navigator: Navigator): boolean {\n return navigator.platform.indexOf('Mac') === 0 || navigator.platform === 'iPhone';\n}\n","import {isApplePlatform} from './is-apple-platform';\n\nconst IOS_REG_EXP = /ipad|iphone|ipod/;\n\nexport function isIos(navigator: Navigator): boolean {\n return (\n IOS_REG_EXP.test(navigator.userAgent.toLowerCase()) ||\n (isApplePlatform(navigator) && navigator.maxTouchPoints > 1)\n );\n}\n","import {isIos} from './is-ios';\n\nconst SAFARI_REG_EXP = /^((?!chrome|android).)*safari/i;\n\nexport function isApple(navigator: Navigator): boolean {\n return isIos(navigator) || SAFARI_REG_EXP.test(navigator.userAgent.toLowerCase());\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAA;;;;;;;;;;SAUgB,eAAe,CAAC,SAAoB;IAChD,OAAO,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC;AACtF;;ACVA,IAAM,WAAW,GAAG,kBAAkB,CAAC;SAEvB,KAAK,CAAC,SAAoB;IACtC,QACI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;SAClD,eAAe,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,cAAc,GAAG,CAAC,CAAC,EAC9D;AACN;;ACPA,IAAM,cAAc,GAAG,gCAAgC,CAAC;SAExC,OAAO,CAAC,SAAoB;IACxC,OAAO,KAAK,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;AACtF;;ACNA;;;;;;"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { __spread } from 'tslib';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @note(splincode):
|
|
5
|
+
* Any ‘linearGradient’ attributes which are defined on the referenced
|
|
6
|
+
* element which are not defined on this element are inherited by this element.
|
|
7
|
+
* If this element has no defined gradient stops, and the referenced element does
|
|
8
|
+
* (possibly due to its own ‘xlink:href’ attribute), then this element inherits
|
|
9
|
+
* the gradient stop from the referenced element. Inheritance can be indirect
|
|
10
|
+
* to an arbitrary level; thus, if the referenced element inherits attribute
|
|
11
|
+
* or gradient stops due to its own ‘xlink:href’ attribute, then the current
|
|
12
|
+
* element can inherit those attributes or gradient stops.
|
|
13
|
+
*
|
|
14
|
+
* Documentation: https://www.w3.org/TR/SVG11/pservers.html
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
17
|
+
function svgLinearGradientProcessor(svg, salt) {
|
|
18
|
+
var uniqueIds = extractLinearGradientIdsFromSvg(svg);
|
|
19
|
+
return uniqueIds.reduce(function (processed, previousId) {
|
|
20
|
+
return processed.replace(new RegExp(previousId, 'g'), previousId + "_" + (salt || makeRandomSalt()));
|
|
21
|
+
}, svg);
|
|
22
|
+
}
|
|
23
|
+
function makeRandomSalt() {
|
|
24
|
+
return Math.floor(Math.random() * Date.now());
|
|
25
|
+
}
|
|
26
|
+
function extractLinearGradientIdsFromSvg(svg) {
|
|
27
|
+
var matchedIdsWithPrefix = svg.match(/url\(#(\w\w+)/g) || [];
|
|
28
|
+
return __spread(new Set(matchedIdsWithPrefix)).map(function (matched) { return matched.slice(5); });
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Generated bundle index. Do not edit.
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
export { svgLinearGradientProcessor };
|
|
36
|
+
//# sourceMappingURL=taiga-ui-cdk-utils-svg.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-utils-svg.js","sources":["ng://@taiga-ui/cdk/utils/svg/svg-linear-gradient-processor.ts","ng://@taiga-ui/cdk/utils/svg/taiga-ui-cdk-utils-svg.ts"],"sourcesContent":["/**\n * @note(splincode):\n * Any ‘linearGradient’ attributes which are defined on the referenced\n * element which are not defined on this element are inherited by this element.\n * If this element has no defined gradient stops, and the referenced element does\n * (possibly due to its own ‘xlink:href’ attribute), then this element inherits\n * the gradient stop from the referenced element. Inheritance can be indirect\n * to an arbitrary level; thus, if the referenced element inherits attribute\n * or gradient stops due to its own ‘xlink:href’ attribute, then the current\n * element can inherit those attributes or gradient stops.\n *\n * Documentation: https://www.w3.org/TR/SVG11/pservers.html\n *\n */\nexport function svgLinearGradientProcessor(svg: string, salt?: number | string): string {\n const uniqueIds = extractLinearGradientIdsFromSvg(svg);\n\n return uniqueIds.reduce(\n (processed, previousId) =>\n processed.replace(\n new RegExp(previousId, 'g'),\n `${previousId}_${salt || makeRandomSalt()}`,\n ),\n svg,\n );\n}\n\nfunction makeRandomSalt(): number {\n return Math.floor(Math.random() * Date.now());\n}\n\nfunction extractLinearGradientIdsFromSvg(svg: string): string[] {\n const matchedIdsWithPrefix = svg.match(/url\\(#(\\w\\w+)/g) || [];\n\n return [...new Set(matchedIdsWithPrefix)].map(\n matched => matched.slice(5), // remove prefix `url(#`\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAAA;;;;;;;;;;;;;;SAcgB,0BAA0B,CAAC,GAAW,EAAE,IAAsB;IAC1E,IAAM,SAAS,GAAG,+BAA+B,CAAC,GAAG,CAAC,CAAC;IAEvD,OAAO,SAAS,CAAC,MAAM,CACnB,UAAC,SAAS,EAAE,UAAU;QAClB,OAAA,SAAS,CAAC,OAAO,CACb,IAAI,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,EACxB,UAAU,UAAI,IAAI,IAAI,cAAc,EAAE,CAAE,CAC9C;KAAA,EACL,GAAG,CACN,CAAC;AACN,CAAC;AAED,SAAS,cAAc;IACnB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,+BAA+B,CAAC,GAAW;IAChD,IAAM,oBAAoB,GAAG,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IAE/D,OAAO,SAAI,IAAI,GAAG,CAAC,oBAAoB,CAAC,EAAE,GAAG,CACzC,UAAA,OAAO,IAAI,OAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAA,CAC9B,CAAC;AACN;;ACrCA;;;;;;"}
|
|
@@ -4,6 +4,8 @@ export * from '@taiga-ui/cdk/utils/focus';
|
|
|
4
4
|
export * from '@taiga-ui/cdk/utils/format';
|
|
5
5
|
export * from '@taiga-ui/cdk/utils/math';
|
|
6
6
|
export * from '@taiga-ui/cdk/utils/miscellaneous';
|
|
7
|
+
export * from '@taiga-ui/cdk/utils/os';
|
|
8
|
+
export * from '@taiga-ui/cdk/utils/svg';
|
|
7
9
|
|
|
8
10
|
/**
|
|
9
11
|
* Generated bundle index. Do not edit.
|