@taiga-ui/cdk 3.51.0-canary.6291033 → 3.51.0-canary.8873fad
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/abstract/control.d.ts +6 -0
- package/abstract/interactive.d.ts +9 -0
- package/abstract/portal-host.d.ts +4 -0
- package/abstract/portal-service.d.ts +3 -0
- package/abstract/taiga-ui-cdk-abstract.d.ts +3 -0
- package/abstract/theme-switcher.d.ts +6 -0
- package/bundles/taiga-ui-cdk-abstract.umd.js +34 -0
- package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-classes.umd.js +9 -0
- package/bundles/taiga-ui-cdk-classes.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-coercion.umd.js +10 -0
- package/bundles/taiga-ui-cdk-coercion.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-alert-host.umd.js +8 -0
- package/bundles/taiga-ui-cdk-components-alert-host.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-dialog-host.umd.js +11 -0
- package/bundles/taiga-ui-cdk-components-dialog-host.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js +12 -0
- package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-scroll-controls.umd.js +4 -0
- package/bundles/taiga-ui-cdk-components-scroll-controls.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-components.umd.js +4 -0
- package/bundles/taiga-ui-cdk-components.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-constants.umd.js +108 -0
- package/bundles/taiga-ui-cdk-constants.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-date-time.umd.js +284 -0
- package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-decorators.umd.js +26 -0
- package/bundles/taiga-ui-cdk-decorators.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-active-zone.umd.js +4 -0
- package/bundles/taiga-ui-cdk-directives-active-zone.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js +44 -1
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-autofilled.umd.js +4 -0
- package/bundles/taiga-ui-cdk-directives-autofilled.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-checked.umd.js +4 -0
- package/bundles/taiga-ui-cdk-directives-checked.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-click-outside.umd.js +4 -0
- package/bundles/taiga-ui-cdk-directives-click-outside.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-control.umd.js +4 -0
- package/bundles/taiga-ui-cdk-directives-control.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js +4 -0
- package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-drag.umd.js +10 -0
- package/bundles/taiga-ui-cdk-directives-drag.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-droppable.umd.js +5 -0
- package/bundles/taiga-ui-cdk-directives-droppable.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-element.umd.js +18 -0
- package/bundles/taiga-ui-cdk-directives-element.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js +17 -0
- package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focus-visible.umd.js +9 -0
- package/bundles/taiga-ui-cdk-directives-focus-visible.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focusable.umd.js +10 -0
- package/bundles/taiga-ui-cdk-directives-focusable.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focused.umd.js +9 -0
- package/bundles/taiga-ui-cdk-directives-focused.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-for-async.umd.js +7 -0
- package/bundles/taiga-ui-cdk-directives-for-async.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-for.umd.js +4 -0
- package/bundles/taiga-ui-cdk-directives-for.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-high-dpi.umd.js +7 -0
- package/bundles/taiga-ui-cdk-directives-high-dpi.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-hovered.umd.js +7 -1
- package/bundles/taiga-ui-cdk-directives-hovered.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-item.umd.js +7 -0
- package/bundles/taiga-ui-cdk-directives-item.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-let.umd.js +17 -0
- package/bundles/taiga-ui-cdk-directives-let.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-media.umd.js +7 -0
- package/bundles/taiga-ui-cdk-directives-media.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-obscured.umd.js +7 -0
- package/bundles/taiga-ui-cdk-directives-obscured.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-overscroll.umd.js +10 -0
- package/bundles/taiga-ui-cdk-directives-overscroll.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-pan.umd.js +7 -0
- package/bundles/taiga-ui-cdk-directives-pan.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-platform.umd.js +4 -0
- package/bundles/taiga-ui-cdk-directives-platform.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-portal.umd.js +4 -0
- package/bundles/taiga-ui-cdk-directives-portal.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-pressed.umd.js +4 -0
- package/bundles/taiga-ui-cdk-directives-pressed.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-prevent-default.umd.js +12 -0
- package/bundles/taiga-ui-cdk-directives-prevent-default.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-repeat-times.umd.js +11 -0
- package/bundles/taiga-ui-cdk-directives-repeat-times.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-resize.umd.js +7 -0
- package/bundles/taiga-ui-cdk-directives-resize.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-resizer.umd.js +5 -0
- package/bundles/taiga-ui-cdk-directives-resizer.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-swipe.umd.js +7 -0
- package/bundles/taiga-ui-cdk-directives-swipe.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-validator.umd.js +4 -0
- package/bundles/taiga-ui-cdk-directives-validator.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-value-changes.umd.js +4 -0
- package/bundles/taiga-ui-cdk-directives-value-changes.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-zoom.umd.js +7 -0
- package/bundles/taiga-ui-cdk-directives-zoom.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives.umd.js +4 -0
- package/bundles/taiga-ui-cdk-directives.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-enums.umd.js +8 -0
- package/bundles/taiga-ui-cdk-enums.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-exceptions.umd.js +4 -0
- package/bundles/taiga-ui-cdk-exceptions.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-interfaces.umd.js +3 -1
- package/bundles/taiga-ui-cdk-interfaces.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-observables.umd.js +34 -1
- package/bundles/taiga-ui-cdk-observables.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes-filter.umd.js +4 -0
- package/bundles/taiga-ui-cdk-pipes-filter.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes-is-present.umd.js +4 -0
- package/bundles/taiga-ui-cdk-pipes-is-present.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes-keys.umd.js +4 -0
- package/bundles/taiga-ui-cdk-pipes-keys.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes-mapper.umd.js +4 -0
- package/bundles/taiga-ui-cdk-pipes-mapper.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes-replace.umd.js +7 -1
- package/bundles/taiga-ui-cdk-pipes-replace.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes.umd.js +4 -0
- package/bundles/taiga-ui-cdk-pipes.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-services.umd.js +53 -5
- package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-tokens.umd.js +109 -5
- package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-types.umd.js +3 -1
- package/bundles/taiga-ui-cdk-types.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-browser.umd.js +4 -0
- package/bundles/taiga-ui-cdk-utils-browser.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-color.umd.js +10 -0
- package/bundles/taiga-ui-cdk-utils-color.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-dom.umd.js +59 -3
- package/bundles/taiga-ui-cdk-utils-dom.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-focus.umd.js +51 -0
- package/bundles/taiga-ui-cdk-utils-focus.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-format.umd.js +7 -0
- package/bundles/taiga-ui-cdk-utils-format.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-math.umd.js +38 -0
- package/bundles/taiga-ui-cdk-utils-math.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js +42 -6
- package/bundles/taiga-ui-cdk-utils-miscellaneous.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-os.umd.js +14 -0
- package/bundles/taiga-ui-cdk-utils-os.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-svg.umd.js +19 -1
- package/bundles/taiga-ui-cdk-utils-svg.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils.umd.js +4 -0
- package/bundles/taiga-ui-cdk-utils.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk.umd.js +4 -0
- package/bundles/taiga-ui-cdk.umd.js.map +1 -1
- package/classes/assert.d.ts +5 -0
- package/classes/taiga-ui-cdk-classes.d.ts +3 -0
- package/coercion/coerce-boolean-property.d.ts +4 -0
- package/coercion/taiga-ui-cdk-coercion.d.ts +3 -0
- package/components/alert-host/taiga-ui-cdk-components-alert-host.d.ts +3 -0
- package/components/dialog-host/dialog-host.component.d.ts +3 -0
- package/components/dialog-host/taiga-ui-cdk-components-dialog-host.d.ts +3 -0
- package/components/dropdown-host/dropdown-host.component.d.ts +3 -0
- package/components/dropdown-host/dropdown-portal.service.d.ts +3 -0
- package/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.d.ts +3 -0
- package/components/scroll-controls/taiga-ui-cdk-components-scroll-controls.d.ts +3 -0
- package/components/taiga-ui-cdk-components.d.ts +3 -0
- package/constants/always-false-handler.d.ts +3 -0
- package/constants/always-true-handler.d.ts +3 -0
- package/constants/browser.d.ts +4 -0
- package/constants/empty.d.ts +5 -0
- package/constants/matcher.d.ts +19 -0
- package/constants/parent-animation.d.ts +6 -0
- package/constants/stringify.d.ts +3 -0
- package/constants/taiga-ui-cdk-constants.d.ts +3 -0
- package/constants/unicode-chars.d.ts +51 -0
- package/constants/used-icons.d.ts +6 -0
- package/date-time/date-fillers.d.ts +11 -0
- package/date-time/date-format.d.ts +3 -0
- package/date-time/date-separator.d.ts +3 -0
- package/date-time/day-range.d.ts +33 -0
- package/date-time/day.d.ts +91 -0
- package/date-time/month-range.d.ts +3 -0
- package/date-time/month.d.ts +56 -0
- package/date-time/taiga-ui-cdk-date-time.d.ts +3 -0
- package/date-time/time.d.ts +36 -0
- package/date-time/year.d.ts +42 -0
- package/decorators/debounce.d.ts +4 -0
- package/decorators/default-prop.d.ts +9 -0
- package/decorators/pure.d.ts +18 -0
- package/decorators/required-setter.d.ts +9 -0
- package/decorators/taiga-ui-cdk-decorators.d.ts +3 -0
- package/directives/active-zone/taiga-ui-cdk-directives-active-zone.d.ts +3 -0
- package/directives/auto-focus/handlers/ios.handler.d.ts +39 -0
- package/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.d.ts +3 -0
- package/directives/autofilled/taiga-ui-cdk-directives-autofilled.d.ts +3 -0
- package/directives/checked/taiga-ui-cdk-directives-checked.d.ts +3 -0
- package/directives/click-outside/taiga-ui-cdk-directives-click-outside.d.ts +3 -0
- package/directives/control/taiga-ui-cdk-directives-control.d.ts +3 -0
- package/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.d.ts +3 -0
- package/directives/drag/drag.directive.d.ts +3 -0
- package/directives/drag/drag.module.d.ts +3 -0
- package/directives/drag/taiga-ui-cdk-directives-drag.d.ts +3 -0
- package/directives/droppable/taiga-ui-cdk-directives-droppable.d.ts +3 -0
- package/directives/element/taiga-ui-cdk-directives-element.d.ts +3 -0
- package/directives/focus-trap/taiga-ui-cdk-directives-focus-trap.d.ts +3 -0
- package/directives/focus-visible/focus-visible.directive.d.ts +5 -0
- package/directives/focus-visible/taiga-ui-cdk-directives-focus-visible.d.ts +3 -0
- package/directives/focusable/focusable.directive.d.ts +6 -0
- package/directives/focusable/taiga-ui-cdk-directives-focusable.d.ts +3 -0
- package/directives/focused/focused.directive.d.ts +5 -0
- package/directives/focused/taiga-ui-cdk-directives-focused.d.ts +3 -0
- package/directives/for/taiga-ui-cdk-directives-for.d.ts +3 -0
- package/directives/for-async/for-async.module.d.ts +3 -0
- package/directives/for-async/taiga-ui-cdk-directives-for-async.d.ts +3 -0
- package/directives/high-dpi/high-dpi.directive.d.ts +3 -0
- package/directives/high-dpi/taiga-ui-cdk-directives-high-dpi.d.ts +3 -0
- package/directives/hovered/taiga-ui-cdk-directives-hovered.d.ts +3 -0
- package/directives/item/item.directive.d.ts +3 -0
- package/directives/item/taiga-ui-cdk-directives-item.d.ts +3 -0
- package/directives/let/let-context.d.ts +3 -0
- package/directives/let/let.directive.d.ts +10 -0
- package/directives/let/taiga-ui-cdk-directives-let.d.ts +3 -0
- package/directives/media/taiga-ui-cdk-directives-media.d.ts +3 -0
- package/directives/obscured/obscured.directive.d.ts +3 -0
- package/directives/obscured/taiga-ui-cdk-directives-obscured.d.ts +3 -0
- package/directives/overscroll/overscroll.directive.d.ts +3 -0
- package/directives/overscroll/taiga-ui-cdk-directives-overscroll.d.ts +3 -0
- package/directives/pan/pan.module.d.ts +3 -0
- package/directives/pan/taiga-ui-cdk-directives-pan.d.ts +3 -0
- package/directives/platform/taiga-ui-cdk-directives-platform.d.ts +3 -0
- package/directives/portal/taiga-ui-cdk-directives-portal.d.ts +3 -0
- package/directives/pressed/taiga-ui-cdk-directives-pressed.d.ts +3 -0
- package/directives/prevent-default/prevent-default.directive.d.ts +5 -0
- package/directives/prevent-default/prevent-default.module.d.ts +3 -0
- package/directives/prevent-default/taiga-ui-cdk-directives-prevent-default.d.ts +3 -0
- package/directives/repeat-times/repeat-times.directive.d.ts +7 -0
- package/directives/repeat-times/taiga-ui-cdk-directives-repeat-times.d.ts +3 -0
- package/directives/resize/resize.module.d.ts +3 -0
- package/directives/resize/taiga-ui-cdk-directives-resize.d.ts +3 -0
- package/directives/resizer/taiga-ui-cdk-directives-resizer.d.ts +3 -0
- package/directives/swipe/swipe.module.d.ts +3 -0
- package/directives/swipe/taiga-ui-cdk-directives-swipe.d.ts +3 -0
- package/directives/taiga-ui-cdk-directives.d.ts +3 -0
- package/directives/validator/taiga-ui-cdk-directives-validator.d.ts +3 -0
- package/directives/value-changes/taiga-ui-cdk-directives-value-changes.d.ts +3 -0
- package/directives/zoom/taiga-ui-cdk-directives-zoom.d.ts +3 -0
- package/directives/zoom/zoom.module.d.ts +3 -0
- package/enums/taiga-ui-cdk-enums.d.ts +3 -0
- package/esm2015/abstract/control.js +7 -1
- package/esm2015/abstract/interactive.js +11 -1
- package/esm2015/abstract/portal-host.js +6 -1
- package/esm2015/abstract/portal-service.js +4 -1
- package/esm2015/abstract/taiga-ui-cdk-abstract.js +4 -1
- package/esm2015/abstract/theme-switcher.js +7 -1
- package/esm2015/classes/assert.js +6 -1
- package/esm2015/classes/taiga-ui-cdk-classes.js +4 -1
- package/esm2015/coercion/coerce-boolean-property.js +7 -1
- package/esm2015/coercion/taiga-ui-cdk-coercion.js +4 -1
- package/esm2015/components/alert-host/alert-host.component.js +5 -1
- package/esm2015/components/alert-host/taiga-ui-cdk-components-alert-host.js +4 -1
- package/esm2015/components/dialog-host/dialog-host.component.js +8 -1
- package/esm2015/components/dialog-host/taiga-ui-cdk-components-dialog-host.js +4 -1
- package/esm2015/components/dropdown-host/dropdown-host.component.js +6 -1
- package/esm2015/components/dropdown-host/dropdown-portal.service.js +4 -1
- package/esm2015/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.js +4 -1
- package/esm2015/components/scroll-controls/taiga-ui-cdk-components-scroll-controls.js +4 -1
- package/esm2015/components/taiga-ui-cdk-components.js +4 -1
- package/esm2015/constants/always-false-handler.js +5 -1
- package/esm2015/constants/always-true-handler.js +5 -1
- package/esm2015/constants/browser.js +5 -1
- package/esm2015/constants/empty.js +6 -1
- package/esm2015/constants/matcher.js +20 -1
- package/esm2015/constants/parent-animation.js +7 -1
- package/esm2015/constants/stringify.js +4 -1
- package/esm2015/constants/svg-node-filter.js +3 -1
- package/esm2015/constants/taiga-ui-cdk-constants.js +4 -1
- package/esm2015/constants/unicode-chars.js +52 -1
- package/esm2015/constants/used-icons.js +7 -1
- package/esm2015/date-time/date-fillers.js +12 -1
- package/esm2015/date-time/date-format.js +4 -1
- package/esm2015/date-time/date-separator.js +4 -1
- package/esm2015/date-time/day-range.js +34 -1
- package/esm2015/date-time/day.js +94 -1
- package/esm2015/date-time/month-range.js +4 -1
- package/esm2015/date-time/month.js +57 -1
- package/esm2015/date-time/taiga-ui-cdk-date-time.js +4 -1
- package/esm2015/date-time/time.js +37 -1
- package/esm2015/date-time/year.js +43 -1
- package/esm2015/decorators/debounce.js +5 -1
- package/esm2015/decorators/default-prop.js +10 -1
- package/esm2015/decorators/required-setter.js +10 -1
- package/esm2015/decorators/taiga-ui-cdk-decorators.js +4 -1
- package/esm2015/directives/active-zone/taiga-ui-cdk-directives-active-zone.js +4 -1
- package/esm2015/directives/auto-focus/autofocus.options.js +3 -2
- package/esm2015/directives/auto-focus/handlers/ios.handler.js +40 -1
- package/esm2015/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.js +4 -1
- package/esm2015/directives/autofilled/taiga-ui-cdk-directives-autofilled.js +4 -1
- package/esm2015/directives/checked/taiga-ui-cdk-directives-checked.js +4 -1
- package/esm2015/directives/click-outside/taiga-ui-cdk-directives-click-outside.js +4 -1
- package/esm2015/directives/control/taiga-ui-cdk-directives-control.js +4 -1
- package/esm2015/directives/copy-processor/taiga-ui-cdk-directives-copy-processor.js +4 -1
- package/esm2015/directives/drag/drag.directive.js +4 -1
- package/esm2015/directives/drag/drag.module.js +4 -1
- package/esm2015/directives/drag/taiga-ui-cdk-directives-drag.js +4 -1
- package/esm2015/directives/droppable/droppable.directive.js +2 -1
- package/esm2015/directives/droppable/taiga-ui-cdk-directives-droppable.js +4 -1
- package/esm2015/directives/element/element.directive.js +15 -1
- package/esm2015/directives/element/taiga-ui-cdk-directives-element.js +4 -1
- package/esm2015/directives/focus-trap/focus-trap.directive.js +14 -1
- package/esm2015/directives/focus-trap/taiga-ui-cdk-directives-focus-trap.js +4 -1
- package/esm2015/directives/focus-visible/focus-visible.directive.js +6 -1
- package/esm2015/directives/focus-visible/taiga-ui-cdk-directives-focus-visible.js +4 -1
- package/esm2015/directives/focusable/focusable.directive.js +7 -1
- package/esm2015/directives/focusable/taiga-ui-cdk-directives-focusable.js +4 -1
- package/esm2015/directives/focused/focused.directive.js +6 -1
- package/esm2015/directives/focused/taiga-ui-cdk-directives-focused.js +4 -1
- package/esm2015/directives/for/taiga-ui-cdk-directives-for.js +4 -1
- package/esm2015/directives/for-async/for-async.module.js +4 -1
- package/esm2015/directives/for-async/taiga-ui-cdk-directives-for-async.js +4 -1
- package/esm2015/directives/high-dpi/high-dpi.directive.js +4 -1
- package/esm2015/directives/high-dpi/taiga-ui-cdk-directives-high-dpi.js +4 -1
- package/esm2015/directives/hovered/hovered.service.js +4 -2
- package/esm2015/directives/hovered/taiga-ui-cdk-directives-hovered.js +4 -1
- package/esm2015/directives/item/item.directive.js +4 -1
- package/esm2015/directives/item/taiga-ui-cdk-directives-item.js +4 -1
- package/esm2015/directives/let/let-context.js +4 -1
- package/esm2015/directives/let/let.directive.js +11 -1
- package/esm2015/directives/let/taiga-ui-cdk-directives-let.js +4 -1
- package/esm2015/directives/media/media.directive.js +4 -1
- package/esm2015/directives/media/taiga-ui-cdk-directives-media.js +4 -1
- package/esm2015/directives/obscured/obscured.directive.js +4 -1
- package/esm2015/directives/obscured/taiga-ui-cdk-directives-obscured.js +4 -1
- package/esm2015/directives/overscroll/overscroll.directive.js +7 -1
- package/esm2015/directives/overscroll/taiga-ui-cdk-directives-overscroll.js +4 -1
- package/esm2015/directives/pan/pan.module.js +4 -1
- package/esm2015/directives/pan/taiga-ui-cdk-directives-pan.js +4 -1
- package/esm2015/directives/platform/taiga-ui-cdk-directives-platform.js +4 -1
- package/esm2015/directives/portal/taiga-ui-cdk-directives-portal.js +4 -1
- package/esm2015/directives/pressed/taiga-ui-cdk-directives-pressed.js +4 -1
- package/esm2015/directives/prevent-default/prevent-default.directive.js +6 -1
- package/esm2015/directives/prevent-default/prevent-default.module.js +4 -1
- package/esm2015/directives/prevent-default/taiga-ui-cdk-directives-prevent-default.js +4 -1
- package/esm2015/directives/repeat-times/repeat-times.directive.js +8 -1
- package/esm2015/directives/repeat-times/taiga-ui-cdk-directives-repeat-times.js +4 -1
- package/esm2015/directives/resize/resize.module.js +4 -1
- package/esm2015/directives/resize/taiga-ui-cdk-directives-resize.js +4 -1
- package/esm2015/directives/resizer/resizer.directive.js +2 -1
- package/esm2015/directives/resizer/taiga-ui-cdk-directives-resizer.js +4 -1
- package/esm2015/directives/swipe/swipe.module.js +4 -1
- package/esm2015/directives/swipe/taiga-ui-cdk-directives-swipe.js +4 -1
- package/esm2015/directives/taiga-ui-cdk-directives.js +4 -1
- package/esm2015/directives/validator/taiga-ui-cdk-directives-validator.js +4 -1
- package/esm2015/directives/value-changes/taiga-ui-cdk-directives-value-changes.js +4 -1
- package/esm2015/directives/zoom/taiga-ui-cdk-directives-zoom.js +4 -1
- package/esm2015/directives/zoom/zoom.module.js +4 -1
- package/esm2015/enums/day-of-week.js +3 -1
- package/esm2015/enums/month-number.js +3 -1
- package/esm2015/enums/taiga-ui-cdk-enums.js +4 -1
- package/esm2015/exceptions/taiga-ui-cdk-exceptions.js +4 -1
- package/esm2015/interfaces/taiga-ui-cdk-interfaces.js +4 -1
- package/esm2015/observables/control-value.js +4 -1
- package/esm2015/observables/drag-and-drop-from.js +3 -1
- package/esm2015/observables/focus-visible-observable.js +6 -2
- package/esm2015/observables/is-alive.js +4 -1
- package/esm2015/observables/items-query-list-observable.js +7 -1
- package/esm2015/observables/mouse-drag-finish-from.js +5 -1
- package/esm2015/observables/scroll-from.js +4 -1
- package/esm2015/observables/taiga-ui-cdk-observables.js +4 -1
- package/esm2015/observables/typed-from-event.js +5 -1
- package/esm2015/pipes/filter/taiga-ui-cdk-pipes-filter.js +4 -1
- package/esm2015/pipes/is-present/taiga-ui-cdk-pipes-is-present.js +4 -1
- package/esm2015/pipes/keys/taiga-ui-cdk-pipes-keys.js +4 -1
- package/esm2015/pipes/mapper/taiga-ui-cdk-pipes-mapper.js +4 -1
- package/esm2015/pipes/replace/replace.pipe.js +4 -2
- package/esm2015/pipes/replace/taiga-ui-cdk-pipes-replace.js +4 -1
- package/esm2015/pipes/taiga-ui-cdk-pipes.js +4 -1
- package/esm2015/services/destroy.service.js +9 -1
- package/esm2015/services/directive-styles.service.js +4 -1
- package/esm2015/services/focus-visible.service.js +6 -1
- package/esm2015/services/id.service.js +4 -1
- package/esm2015/services/obscured.service.js +10 -2
- package/esm2015/services/pan.service.js +4 -2
- package/esm2015/services/parents-scroll.service.js +7 -2
- package/esm2015/services/resize.service.js +8 -2
- package/esm2015/services/static-request.service.js +5 -2
- package/esm2015/services/taiga-ui-cdk-services.js +4 -1
- package/esm2015/taiga-ui-cdk.js +4 -1
- package/esm2015/tokens/active-element.js +26 -4
- package/esm2015/tokens/alerts.js +4 -1
- package/esm2015/tokens/default-renderer.js +10 -2
- package/esm2015/tokens/dialogs.js +5 -1
- package/esm2015/tokens/ensure-base-href.js +4 -1
- package/esm2015/tokens/focusable-item-accessor.js +4 -1
- package/esm2015/tokens/is-android.js +4 -1
- package/esm2015/tokens/is-apple.js +4 -1
- package/esm2015/tokens/is-chromium.js +4 -1
- package/esm2015/tokens/is-cypress.js +5 -1
- package/esm2015/tokens/is-e2e.js +4 -1
- package/esm2015/tokens/is-firefox.js +4 -1
- package/esm2015/tokens/is-ios.js +4 -1
- package/esm2015/tokens/is-mobile.js +5 -1
- package/esm2015/tokens/is-playwright.js +4 -1
- package/esm2015/tokens/is-webkit.js +4 -1
- package/esm2015/tokens/platform.js +2 -1
- package/esm2015/tokens/range.js +4 -1
- package/esm2015/tokens/removed-element.js +4 -1
- package/esm2015/tokens/scroll-ref.js +4 -1
- package/esm2015/tokens/swipe-options.js +4 -1
- package/esm2015/tokens/taiga-ui-cdk-tokens.js +4 -1
- package/esm2015/tokens/take-only-trusted-events.js +7 -1
- package/esm2015/tokens/window-height.js +4 -1
- package/esm2015/tokens/zoom-options.js +4 -1
- package/esm2015/types/taiga-ui-cdk-types.js +4 -1
- package/esm2015/utils/browser/taiga-ui-cdk-utils-browser.js +4 -1
- package/esm2015/utils/color/hex-to-rgba.js +2 -1
- package/esm2015/utils/color/hsv-to-rgb.js +4 -1
- package/esm2015/utils/color/rgb-to-hsv.js +2 -1
- package/esm2015/utils/color/rgba-to-hex.js +2 -1
- package/esm2015/utils/color/taiga-ui-cdk-utils-color.js +4 -1
- package/esm2015/utils/dom/element-checks.js +2 -1
- package/esm2015/utils/dom/get-actual-target.js +4 -1
- package/esm2015/utils/dom/get-clipboard-data-text.js +4 -1
- package/esm2015/utils/dom/get-element-obscurers.js +10 -1
- package/esm2015/utils/dom/get-element-offset.js +8 -1
- package/esm2015/utils/dom/get-scroll-parent.js +7 -1
- package/esm2015/utils/dom/get-selected-text.js +9 -1
- package/esm2015/utils/dom/is-inside-iframe.js +4 -1
- package/esm2015/utils/dom/is-node-in.js +8 -1
- package/esm2015/utils/dom/retarget-boundary-crossing.js +9 -4
- package/esm2015/utils/dom/taiga-ui-cdk-utils-dom.js +4 -1
- package/esm2015/utils/focus/blur-native-focused.js +4 -1
- package/esm2015/utils/focus/get-closest-focusable.js +5 -1
- package/esm2015/utils/focus/get-native-focused.js +6 -1
- package/esm2015/utils/focus/is-native-focused-in.js +8 -1
- package/esm2015/utils/focus/is-native-focused.js +9 -1
- package/esm2015/utils/focus/is-native-keyboard-focusable.js +7 -1
- package/esm2015/utils/focus/move-focus.js +8 -1
- package/esm2015/utils/focus/set-native-mouse-focused.js +8 -1
- package/esm2015/utils/focus/taiga-ui-cdk-utils-focus.js +4 -1
- package/esm2015/utils/format/px.js +4 -1
- package/esm2015/utils/format/taiga-ui-cdk-utils-format.js +4 -1
- package/esm2015/utils/math/clamp.js +8 -1
- package/esm2015/utils/math/normalize-to-int-number.js +9 -1
- package/esm2015/utils/math/quantize.js +7 -1
- package/esm2015/utils/math/round.js +8 -1
- package/esm2015/utils/math/sum.js +4 -1
- package/esm2015/utils/math/taiga-ui-cdk-utils-math.js +4 -1
- package/esm2015/utils/math/to-radians.js +4 -1
- package/esm2015/utils/miscellaneous/create-options.js +2 -1
- package/esm2015/utils/miscellaneous/flat-length.js +6 -1
- package/esm2015/utils/miscellaneous/get-original-array-from-query-list.js +7 -1
- package/esm2015/utils/miscellaneous/is-number.js +2 -1
- package/esm2015/utils/miscellaneous/is-object.js +2 -1
- package/esm2015/utils/miscellaneous/is-string.js +2 -1
- package/esm2015/utils/miscellaneous/is-valid-url.js +8 -7
- package/esm2015/utils/miscellaneous/nullable-same.js +9 -1
- package/esm2015/utils/miscellaneous/object-from-entries.js +9 -1
- package/esm2015/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.js +4 -1
- package/esm2015/utils/os/is-apple-platform.js +11 -1
- package/esm2015/utils/os/taiga-ui-cdk-utils-os.js +4 -1
- package/esm2015/utils/svg/svg-linear-gradient-processor.js +16 -2
- package/esm2015/utils/svg/taiga-ui-cdk-utils-svg.js +4 -1
- package/esm2015/utils/taiga-ui-cdk-utils.js +4 -1
- package/exceptions/taiga-ui-cdk-exceptions.d.ts +3 -0
- package/fesm2015/taiga-ui-cdk-abstract.js +34 -0
- package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-classes.js +9 -0
- package/fesm2015/taiga-ui-cdk-classes.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-coercion.js +10 -0
- package/fesm2015/taiga-ui-cdk-coercion.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-components-alert-host.js +8 -0
- package/fesm2015/taiga-ui-cdk-components-alert-host.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-components-dialog-host.js +11 -0
- package/fesm2015/taiga-ui-cdk-components-dialog-host.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-components-dropdown-host.js +12 -0
- package/fesm2015/taiga-ui-cdk-components-dropdown-host.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-components-scroll-controls.js +4 -0
- package/fesm2015/taiga-ui-cdk-components-scroll-controls.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-components.js +4 -0
- package/fesm2015/taiga-ui-cdk-components.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-constants.js +108 -0
- package/fesm2015/taiga-ui-cdk-constants.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-date-time.js +284 -0
- package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-decorators.js +26 -0
- package/fesm2015/taiga-ui-cdk-decorators.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-active-zone.js +4 -0
- package/fesm2015/taiga-ui-cdk-directives-active-zone.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-auto-focus.js +44 -1
- package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-autofilled.js +4 -0
- package/fesm2015/taiga-ui-cdk-directives-autofilled.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-checked.js +4 -0
- package/fesm2015/taiga-ui-cdk-directives-checked.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-click-outside.js +4 -0
- package/fesm2015/taiga-ui-cdk-directives-click-outside.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-control.js +4 -0
- package/fesm2015/taiga-ui-cdk-directives-control.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-copy-processor.js +4 -0
- package/fesm2015/taiga-ui-cdk-directives-copy-processor.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-drag.js +10 -0
- package/fesm2015/taiga-ui-cdk-directives-drag.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-droppable.js +5 -0
- package/fesm2015/taiga-ui-cdk-directives-droppable.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-element.js +18 -0
- package/fesm2015/taiga-ui-cdk-directives-element.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-focus-trap.js +17 -0
- package/fesm2015/taiga-ui-cdk-directives-focus-trap.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-focus-visible.js +9 -0
- package/fesm2015/taiga-ui-cdk-directives-focus-visible.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-focusable.js +10 -0
- package/fesm2015/taiga-ui-cdk-directives-focusable.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-focused.js +9 -0
- package/fesm2015/taiga-ui-cdk-directives-focused.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-for-async.js +7 -0
- package/fesm2015/taiga-ui-cdk-directives-for-async.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-for.js +4 -0
- package/fesm2015/taiga-ui-cdk-directives-for.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-high-dpi.js +7 -0
- package/fesm2015/taiga-ui-cdk-directives-high-dpi.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-hovered.js +7 -1
- package/fesm2015/taiga-ui-cdk-directives-hovered.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-item.js +7 -0
- package/fesm2015/taiga-ui-cdk-directives-item.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-let.js +17 -0
- package/fesm2015/taiga-ui-cdk-directives-let.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-media.js +7 -0
- package/fesm2015/taiga-ui-cdk-directives-media.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-obscured.js +7 -0
- package/fesm2015/taiga-ui-cdk-directives-obscured.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-overscroll.js +10 -0
- package/fesm2015/taiga-ui-cdk-directives-overscroll.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-pan.js +7 -0
- package/fesm2015/taiga-ui-cdk-directives-pan.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-platform.js +4 -0
- package/fesm2015/taiga-ui-cdk-directives-platform.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-portal.js +4 -0
- package/fesm2015/taiga-ui-cdk-directives-portal.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-pressed.js +4 -0
- package/fesm2015/taiga-ui-cdk-directives-pressed.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-prevent-default.js +12 -0
- package/fesm2015/taiga-ui-cdk-directives-prevent-default.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-repeat-times.js +11 -0
- package/fesm2015/taiga-ui-cdk-directives-repeat-times.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-resize.js +7 -0
- package/fesm2015/taiga-ui-cdk-directives-resize.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-resizer.js +5 -0
- package/fesm2015/taiga-ui-cdk-directives-resizer.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-swipe.js +7 -0
- package/fesm2015/taiga-ui-cdk-directives-swipe.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-validator.js +4 -0
- package/fesm2015/taiga-ui-cdk-directives-validator.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-value-changes.js +4 -0
- package/fesm2015/taiga-ui-cdk-directives-value-changes.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-zoom.js +7 -0
- package/fesm2015/taiga-ui-cdk-directives-zoom.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives.js +4 -0
- package/fesm2015/taiga-ui-cdk-directives.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-enums.js +8 -0
- package/fesm2015/taiga-ui-cdk-enums.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-exceptions.js +4 -0
- package/fesm2015/taiga-ui-cdk-exceptions.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-interfaces.js +3 -1
- package/fesm2015/taiga-ui-cdk-interfaces.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-observables.js +34 -1
- package/fesm2015/taiga-ui-cdk-observables.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-pipes-filter.js +4 -0
- package/fesm2015/taiga-ui-cdk-pipes-filter.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-pipes-is-present.js +4 -0
- package/fesm2015/taiga-ui-cdk-pipes-is-present.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-pipes-keys.js +4 -0
- package/fesm2015/taiga-ui-cdk-pipes-keys.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-pipes-mapper.js +4 -0
- package/fesm2015/taiga-ui-cdk-pipes-mapper.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-pipes-replace.js +7 -1
- package/fesm2015/taiga-ui-cdk-pipes-replace.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-pipes.js +4 -0
- package/fesm2015/taiga-ui-cdk-pipes.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-services.js +52 -5
- package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-tokens.js +108 -4
- package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-types.js +3 -1
- package/fesm2015/taiga-ui-cdk-types.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-browser.js +4 -0
- package/fesm2015/taiga-ui-cdk-utils-browser.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-color.js +10 -0
- package/fesm2015/taiga-ui-cdk-utils-color.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-dom.js +59 -3
- package/fesm2015/taiga-ui-cdk-utils-dom.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-focus.js +51 -0
- package/fesm2015/taiga-ui-cdk-utils-focus.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-format.js +7 -0
- package/fesm2015/taiga-ui-cdk-utils-format.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-math.js +38 -0
- package/fesm2015/taiga-ui-cdk-utils-math.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js +42 -6
- package/fesm2015/taiga-ui-cdk-utils-miscellaneous.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-os.js +14 -0
- package/fesm2015/taiga-ui-cdk-utils-os.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-svg.js +19 -1
- package/fesm2015/taiga-ui-cdk-utils-svg.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils.js +4 -0
- package/fesm2015/taiga-ui-cdk-utils.js.map +1 -1
- package/fesm2015/taiga-ui-cdk.js +4 -0
- package/fesm2015/taiga-ui-cdk.js.map +1 -1
- package/interfaces/control-value-transformer.d.ts +3 -0
- package/interfaces/day-like.d.ts +3 -0
- package/interfaces/focusable-element-accessor.d.ts +4 -0
- package/interfaces/month-like.d.ts +3 -0
- package/interfaces/taiga-ui-cdk-interfaces.d.ts +3 -0
- package/interfaces/year-like.d.ts +3 -0
- package/observables/control-value.d.ts +3 -0
- package/observables/is-alive.d.ts +3 -0
- package/observables/items-query-list-observable.d.ts +6 -0
- package/observables/mouse-drag-finish-from.d.ts +4 -0
- package/observables/scroll-from.d.ts +3 -0
- package/observables/taiga-ui-cdk-observables.d.ts +3 -0
- package/package.json +1 -1
- package/pipes/filter/filter.pipe.d.ts +7 -0
- package/pipes/filter/taiga-ui-cdk-pipes-filter.d.ts +3 -0
- package/pipes/is-present/taiga-ui-cdk-pipes-is-present.d.ts +3 -0
- package/pipes/keys/taiga-ui-cdk-pipes-keys.d.ts +3 -0
- package/pipes/mapper/mapper.pipe.d.ts +7 -0
- package/pipes/mapper/taiga-ui-cdk-pipes-mapper.d.ts +3 -0
- package/pipes/replace/taiga-ui-cdk-pipes-replace.d.ts +3 -0
- package/pipes/taiga-ui-cdk-pipes.d.ts +3 -0
- package/schematics/constants/file-globs.js +3 -1
- package/schematics/ng-add/index.js +1 -0
- package/schematics/ng-add/schema.d.ts +12 -0
- package/schematics/ng-update/steps/show-warnings.js +5 -0
- package/schematics/ng-update/v3/constants/breakpoints.js +2 -0
- package/schematics/ng-update/v3/constants/enums.js +4 -0
- package/schematics/ng-update/v3/constants/templates.d.ts +5 -0
- package/schematics/ng-update/v3/constants/templates.js +5 -0
- package/schematics/ng-update/v3/index.js +4 -1
- package/schematics/ng-update/v3/steps/migrate-date-time.js +18 -0
- package/schematics/ng-update/v3/steps/migrate-progress.js +3 -1
- package/schematics/ng-update/v3/steps/migrate-sliders/migrate-input-range.js +6 -0
- package/schematics/ng-update/v3/steps/migrate-sliders/migrate-input-slider.js +5 -0
- package/schematics/ng-update/v3/steps/migrate-taiga-proprietary-icons.js +1 -0
- package/schematics/ng-update/v3/steps/migrate-templates.js +1 -0
- package/schematics/ng-update/v3/steps/miscellaneous.js +4 -0
- package/schematics/ng-update/v3/steps/replace-functions.js +1 -1
- package/schematics/ng-update/v3-30/index.js +1 -0
- package/schematics/ng-update/v3-35/index.js +1 -0
- package/schematics/ng-update/v3-36/index.js +1 -0
- package/schematics/ng-update/v3-40/index.js +1 -0
- package/schematics/ng-update/v3-5/index.js +1 -0
- package/schematics/utils/add-import-to-component.js +1 -0
- package/schematics/utils/angular/ng-module.d.ts +3 -0
- package/schematics/utils/angular/ng-module.js +3 -0
- package/schematics/utils/angular-json-manipulations.js +7 -0
- package/schematics/utils/colored-log.js +1 -1
- package/schematics/utils/get-projects.js +3 -1
- package/schematics/utils/is-ci.js +13 -11
- package/schematics/utils/progress.js +1 -0
- package/schematics/utils/push-to-array-property.js +1 -0
- package/schematics/utils/templates/elements.d.ts +19 -0
- package/schematics/utils/templates/elements.js +26 -2
- package/schematics/utils/templates/ng-component-input-manipulations.d.ts +44 -0
- package/schematics/utils/templates/ng-component-input-manipulations.js +47 -1
- package/services/destroy.service.d.ts +8 -0
- package/services/directive-styles.service.d.ts +3 -0
- package/services/focus-visible.service.d.ts +5 -0
- package/services/id.service.d.ts +3 -0
- package/services/obscured.service.d.ts +5 -0
- package/services/parents-scroll.service.d.ts +3 -0
- package/services/taiga-ui-cdk-services.d.ts +3 -0
- package/taiga-ui-cdk.d.ts +3 -0
- package/tokens/active-element.d.ts +3 -0
- package/tokens/alerts.d.ts +3 -0
- package/tokens/default-renderer.d.ts +6 -0
- package/tokens/dialogs.d.ts +3 -0
- package/tokens/ensure-base-href.d.ts +3 -0
- package/tokens/focusable-item-accessor.d.ts +3 -0
- package/tokens/is-android.d.ts +3 -0
- package/tokens/is-apple.d.ts +3 -0
- package/tokens/is-chromium.d.ts +3 -0
- package/tokens/is-cypress.d.ts +4 -0
- package/tokens/is-e2e.d.ts +3 -0
- package/tokens/is-firefox.d.ts +3 -0
- package/tokens/is-ios.d.ts +3 -0
- package/tokens/is-mobile.d.ts +3 -0
- package/tokens/is-playwright.d.ts +3 -0
- package/tokens/is-webkit.d.ts +3 -0
- package/tokens/range.d.ts +3 -0
- package/tokens/removed-element.d.ts +3 -0
- package/tokens/scroll-ref.d.ts +3 -0
- package/tokens/swipe-options.d.ts +3 -0
- package/tokens/taiga-ui-cdk-tokens.d.ts +3 -0
- package/tokens/take-only-trusted-events.d.ts +6 -0
- package/tokens/window-height.d.ts +3 -0
- package/tokens/zoom-options.d.ts +3 -0
- package/types/autocomplete.d.ts +1 -0
- package/types/date-mode.d.ts +5 -0
- package/types/event-with.d.ts +3 -0
- package/types/mapper.d.ts +9 -0
- package/types/matcher.d.ts +8 -0
- package/types/taiga-ui-cdk-types.d.ts +3 -0
- package/utils/browser/taiga-ui-cdk-utils-browser.d.ts +3 -0
- package/utils/color/hsv-to-rgb.d.ts +3 -0
- package/utils/color/taiga-ui-cdk-utils-color.d.ts +3 -0
- package/utils/dom/get-actual-target.d.ts +3 -0
- package/utils/dom/get-clipboard-data-text.d.ts +3 -0
- package/utils/dom/get-element-obscurers.d.ts +9 -0
- package/utils/dom/get-element-offset.d.ts +7 -0
- package/utils/dom/get-scroll-parent.d.ts +6 -0
- package/utils/dom/get-selected-text.d.ts +8 -0
- package/utils/dom/is-inside-iframe.d.ts +3 -0
- package/utils/dom/is-node-in.d.ts +7 -0
- package/utils/dom/taiga-ui-cdk-utils-dom.d.ts +3 -0
- package/utils/focus/blur-native-focused.d.ts +3 -0
- package/utils/focus/get-closest-focusable.d.ts +20 -0
- package/utils/focus/get-native-focused.d.ts +5 -0
- package/utils/focus/is-native-focused-in.d.ts +6 -0
- package/utils/focus/is-native-focused.d.ts +8 -0
- package/utils/focus/is-native-keyboard-focusable.d.ts +6 -0
- package/utils/focus/move-focus.d.ts +7 -0
- package/utils/focus/set-native-mouse-focused.d.ts +7 -0
- package/utils/focus/taiga-ui-cdk-utils-focus.d.ts +3 -0
- package/utils/format/px.d.ts +3 -0
- package/utils/format/taiga-ui-cdk-utils-format.d.ts +3 -0
- package/utils/math/clamp.d.ts +7 -0
- package/utils/math/normalize-to-int-number.d.ts +8 -0
- package/utils/math/quantize.d.ts +6 -0
- package/utils/math/sum.d.ts +3 -0
- package/utils/math/taiga-ui-cdk-utils-math.d.ts +3 -0
- package/utils/math/to-radians.d.ts +3 -0
- package/utils/miscellaneous/create-options.d.ts +1 -0
- package/utils/miscellaneous/flat-length.d.ts +5 -0
- package/utils/miscellaneous/get-original-array-from-query-list.d.ts +6 -0
- package/utils/miscellaneous/is-string.js +1 -0
- package/utils/miscellaneous/nullable-same.d.ts +8 -0
- package/utils/miscellaneous/object-from-entries.d.ts +8 -0
- package/utils/miscellaneous/taiga-ui-cdk-utils-miscellaneous.d.ts +3 -0
- package/utils/os/is-apple-platform.d.ts +10 -0
- package/utils/os/taiga-ui-cdk-utils-os.d.ts +3 -0
- package/utils/svg/svg-linear-gradient-processor.d.ts +14 -0
- package/utils/svg/taiga-ui-cdk-utils-svg.d.ts +3 -0
- package/utils/taiga-ui-cdk-utils.d.ts +3 -0
@@ -67,17 +67,24 @@ function tuiIsElement(node) {
|
|
67
67
|
return !!node && `nodeType` in node && node.nodeType === Node.ELEMENT_NODE;
|
68
68
|
}
|
69
69
|
function tuiIsHTMLElement(node) {
|
70
|
+
// TODO: iframe warning
|
70
71
|
return node instanceof HTMLElement;
|
71
72
|
}
|
72
73
|
function tuiIsTextNode(node) {
|
73
74
|
return node.nodeType === Node.TEXT_NODE;
|
74
75
|
}
|
75
76
|
|
77
|
+
/**
|
78
|
+
* Gets actual target from open Shadow DOM if event happened within it
|
79
|
+
*/
|
76
80
|
function tuiGetActualTarget(event) {
|
77
81
|
return event.composedPath()[0];
|
78
82
|
}
|
79
83
|
|
80
84
|
const DEFAULT_FORMAT = `text/plain`;
|
85
|
+
/**
|
86
|
+
* Gets text from data of clipboardEvent, it also works in IE and Edge browsers
|
87
|
+
*/
|
81
88
|
function tuiGetClipboardDataText(event, format = DEFAULT_FORMAT) {
|
82
89
|
return `clipboardData` in event && event.clipboardData !== null
|
83
90
|
? event.clipboardData.getData(format) ||
|
@@ -91,6 +98,15 @@ function tuiGetDocumentOrShadowRoot(node) {
|
|
91
98
|
: node.ownerDocument;
|
92
99
|
}
|
93
100
|
|
101
|
+
/**
|
102
|
+
* Returns array of Elements covering edges of given element or null if at least one edge middle point is visible
|
103
|
+
*
|
104
|
+
* CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered
|
105
|
+
* TODO: v4.0 change function signature to
|
106
|
+
* ```ts
|
107
|
+
* function tuiGetElementObscures(element: Element): readonly [Element, Element, Element, Element] | [] | null
|
108
|
+
* ```
|
109
|
+
*/
|
94
110
|
function tuiGetElementObscures(element) {
|
95
111
|
const { ownerDocument } = element;
|
96
112
|
if (!(ownerDocument === null || ownerDocument === void 0 ? void 0 : ownerDocument.defaultView) || !element.getBoundingClientRect) {
|
@@ -122,6 +138,13 @@ function tuiGetElementObscures(element) {
|
|
122
138
|
return filtered.length === 4 ? filtered : null;
|
123
139
|
}
|
124
140
|
|
141
|
+
/**
|
142
|
+
* Calculates offset for an element relative to it's parent several levels above
|
143
|
+
*
|
144
|
+
* @param host parent element
|
145
|
+
* @param element
|
146
|
+
* @return object with offsetTop and offsetLeft number properties
|
147
|
+
*/
|
125
148
|
function tuiGetElementOffset(host, element) {
|
126
149
|
ngDevMode && tuiAssert.assert(host.contains(element), `Host must contain element`);
|
127
150
|
let { offsetTop, offsetLeft, offsetParent } = element;
|
@@ -133,6 +156,12 @@ function tuiGetElementOffset(host, element) {
|
|
133
156
|
return { offsetTop, offsetLeft };
|
134
157
|
}
|
135
158
|
|
159
|
+
/**
|
160
|
+
* Finds the nearest parent with scroll in it
|
161
|
+
*
|
162
|
+
* @param element initial element
|
163
|
+
* @param vertical flag for orientation of scroll
|
164
|
+
*/
|
136
165
|
function tuiGetScrollParent(element, vertical = true) {
|
137
166
|
if (element === null) {
|
138
167
|
return null;
|
@@ -146,6 +175,14 @@ function tuiGetScrollParent(element, vertical = true) {
|
|
146
175
|
return tuiGetScrollParent(element.parentElement, vertical);
|
147
176
|
}
|
148
177
|
|
178
|
+
/**
|
179
|
+
* @description:
|
180
|
+
* cross browser way to get selected text
|
181
|
+
*
|
182
|
+
* History:
|
183
|
+
* BUG - window.getSelection() fails when text selected in a form field
|
184
|
+
* https://bugzilla.mozilla.org/show_bug.cgi?id=85686
|
185
|
+
*/
|
149
186
|
function tuiGetSelectedText({ getSelection, document }) {
|
150
187
|
var _a;
|
151
188
|
return document.activeElement && tuiIsTextfield(document.activeElement)
|
@@ -161,10 +198,20 @@ function tuiIsElementEditable(element) {
|
|
161
198
|
return (tuiIsTextfield(element) && !element.readOnly) || !!element.isContentEditable;
|
162
199
|
}
|
163
200
|
|
201
|
+
/**
|
202
|
+
* Checks if an app is running inside <iframe /> tag
|
203
|
+
*/
|
164
204
|
function tuiIsInsideIframe(win) {
|
165
205
|
return win.parent !== win;
|
166
206
|
}
|
167
207
|
|
208
|
+
/**
|
209
|
+
* Checks if node is inside a specific selector
|
210
|
+
*
|
211
|
+
* @param node
|
212
|
+
* @param selector
|
213
|
+
* @return true if node is inside a particular selector
|
214
|
+
*/
|
168
215
|
function tuiIsNodeIn(node, selector) {
|
169
216
|
var _a;
|
170
217
|
return tuiIsTextNode(node)
|
@@ -189,15 +236,24 @@ function tuiPointToClientRect(x = 0, y = 0) {
|
|
189
236
|
}
|
190
237
|
|
191
238
|
function tuiRetargetedBoundaryCrossing(event) {
|
192
|
-
|
239
|
+
// firefox
|
193
240
|
if (`explicitOriginalTarget` in event) {
|
194
241
|
return (event === null || event === void 0 ? void 0 : event.explicitOriginalTarget) !== event.target;
|
195
242
|
}
|
196
|
-
|
197
|
-
|
243
|
+
// chrome
|
244
|
+
if (`pointerId` in event) {
|
245
|
+
return event.pointerId === -1;
|
246
|
+
}
|
247
|
+
// safari
|
248
|
+
if (`detail` in event && `webkitForce` in event) {
|
249
|
+
return (event === null || event === void 0 ? void 0 : event.detail) === 0;
|
198
250
|
}
|
199
251
|
return false;
|
200
252
|
}
|
201
253
|
|
254
|
+
/**
|
255
|
+
* Generated bundle index. Do not edit.
|
256
|
+
*/
|
257
|
+
|
202
258
|
export { tuiCanScroll, tuiContainsOrAfter, tuiGetActualTarget, tuiGetClipboardDataText, tuiGetDocumentOrShadowRoot, tuiGetElementObscures, tuiGetElementOffset, tuiGetScrollParent, tuiGetSelectedText, tuiIsCurrentTarget, tuiIsElement, tuiIsElementEditable, tuiIsHTMLElement, tuiIsInput, tuiIsInsideIframe, tuiIsNodeIn, tuiIsTextNode, tuiIsTextarea, tuiIsTextfield, tuiPointToClientRect, tuiRetargetedBoundaryCrossing };
|
203
259
|
//# sourceMappingURL=taiga-ui-cdk-utils-dom.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-utils-dom.js","sources":["../../../projects/cdk/utils/dom/can-scroll.ts","../../../projects/cdk/utils/dom/contains-or-after.ts","../../../projects/cdk/utils/dom/element-checks.ts","../../../projects/cdk/utils/dom/get-actual-target.ts","../../../projects/cdk/utils/dom/get-clipboard-data-text.ts","../../../projects/cdk/utils/dom/get-document-or-shadow-root.ts","../../../projects/cdk/utils/dom/get-element-obscurers.ts","../../../projects/cdk/utils/dom/get-element-offset.ts","../../../projects/cdk/utils/dom/get-scroll-parent.ts","../../../projects/cdk/utils/dom/get-selected-text.ts","../../../projects/cdk/utils/dom/is-current-target.ts","../../../projects/cdk/utils/dom/is-element-editable.ts","../../../projects/cdk/utils/dom/is-inside-iframe.ts","../../../projects/cdk/utils/dom/is-node-in.ts","../../../projects/cdk/utils/dom/point-to-client-rect.ts","../../../projects/cdk/utils/dom/retarget-boundary-crossing.ts"],"sourcesContent":["export function tuiCanScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","export function tuiContainsOrAfter(current: Node, node: Node): boolean {\n try {\n return (\n current.contains(node) ||\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n );\n } catch {\n return false;\n }\n}\n","export function tuiIsInput(element: Element): element is HTMLInputElement {\n return element.matches(`input`);\n}\n\nexport function tuiIsTextarea(element: Element): element is HTMLTextAreaElement {\n return element.matches(`textarea`);\n}\n\nexport function tuiIsTextfield(\n element: Element,\n): element is HTMLInputElement | HTMLTextAreaElement {\n return tuiIsInput(element) || tuiIsTextarea(element);\n}\n\nexport function tuiIsElement(\n node?: Element | EventTarget | Node | null,\n): node is Element {\n return !!node && `nodeType` in node && node.nodeType === Node.ELEMENT_NODE;\n}\n\nexport function tuiIsHTMLElement(node: unknown): node is HTMLElement {\n // TODO: iframe warning\n return node instanceof HTMLElement;\n}\n\nexport function tuiIsTextNode(node: Node): node is Text {\n return node.nodeType === Node.TEXT_NODE;\n}\n","/**\n * Gets actual target from open Shadow DOM if event happened within it\n */\nexport function tuiGetActualTarget(event: Event): Node {\n return event.composedPath()[0] as Node;\n}\n","const DEFAULT_FORMAT = `text/plain`;\n\n/**\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\nexport function tuiGetClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return `clipboardData` in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData(`text`);\n}\n","export function tuiGetDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return `getRootNode` in node && node.isConnected\n ? (node.getRootNode() as Document)\n : (node.ownerDocument as DocumentOrShadowRoot);\n}\n","import {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {tuiGetDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n * TODO: v4.0 change function signature to\n * ```ts\n * function tuiGetElementObscures(element: Element): readonly [Element, Element, Element, Element] | [] | null\n * ```\n */\nexport function tuiGetElementObscures(element: Element): readonly Element[] | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument?.defaultView || !element.getBoundingClientRect) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const doc = tuiGetDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n\n if (rect.width === 0 && rect.height === 0) {\n return null;\n }\n\n const left = tuiClamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = tuiClamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = tuiClamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = tuiClamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = tuiClamp(\n Math.round(rect.left + rect.width / 2),\n 0,\n innerWidth,\n );\n const verticalMiddle = tuiClamp(\n Math.round(rect.top + rect.height / 2),\n 0,\n innerHeight,\n );\n const elements = [\n doc.elementFromPoint(horizontalMiddle, top),\n doc.elementFromPoint(horizontalMiddle, bottom),\n doc.elementFromPoint(left, verticalMiddle),\n doc.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(tuiIsPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nimport {tuiIsHTMLElement} from './element-checks';\n\n/**\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\nexport function tuiGetElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetLeft: number; offsetTop: number} {\n ngDevMode && tuiAssert.assert(host.contains(element), `Host must contain element`);\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n while (tuiIsHTMLElement(offsetParent) && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n","/**\n * Finds the nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\nexport function tuiGetScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return tuiGetScrollParent(element.parentElement, vertical);\n}\n","import {tuiIsTextfield} from './element-checks';\n\n/**\n * @description:\n * cross browser way to get selected text\n *\n * History:\n * BUG - window.getSelection() fails when text selected in a form field\n * https://bugzilla.mozilla.org/show_bug.cgi?id=85686\n */\nexport function tuiGetSelectedText({getSelection, document}: Window): string | null {\n return document.activeElement && tuiIsTextfield(document.activeElement)\n ? document.activeElement.value.slice(\n document.activeElement.selectionStart || 0,\n document.activeElement.selectionEnd || 0,\n )\n : getSelection()?.toString() || null;\n}\n","export function tuiIsCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n","import {tuiIsTextfield} from './element-checks';\n\nexport function tuiIsElementEditable(element: HTMLElement): boolean {\n return (tuiIsTextfield(element) && !element.readOnly) || !!element.isContentEditable;\n}\n","/**\n * Checks if an app is running inside <iframe /> tag\n */\nexport function tuiIsInsideIframe(win: Window): boolean {\n return win.parent !== win;\n}\n","import {tuiIsElement, tuiIsTextNode} from './element-checks';\n\n/**\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\nexport function tuiIsNodeIn(node: Node, selector: string): boolean {\n return tuiIsTextNode(node)\n ? !!node.parentElement?.closest(selector)\n : tuiIsElement(node) && !!node.closest(selector);\n}\n","export function tuiPointToClientRect(x: number = 0, y: number = 0): DOMRect {\n const rect = {\n x,\n y,\n left: x,\n right: x,\n top: y,\n bottom: y,\n width: 0,\n height: 0,\n } as const;\n\n return {\n ...rect,\n toJSON() {\n return rect;\n },\n };\n}\n","export function tuiRetargetedBoundaryCrossing(event: any): boolean {\n if (`explicitOriginalTarget` in event) {\n return event?.explicitOriginalTarget !== event.target; // firefox\n }\n\n if (`layerX` in event && `layerY` in event) {\n return (event?.layerX ?? 0) < 0 || (event?.layerY ?? 0) < 0; // chrome/safari/etc\n }\n\n return false;\n}\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-utils-dom.js","sources":["../../../projects/cdk/utils/dom/can-scroll.ts","../../../projects/cdk/utils/dom/contains-or-after.ts","../../../projects/cdk/utils/dom/element-checks.ts","../../../projects/cdk/utils/dom/get-actual-target.ts","../../../projects/cdk/utils/dom/get-clipboard-data-text.ts","../../../projects/cdk/utils/dom/get-document-or-shadow-root.ts","../../../projects/cdk/utils/dom/get-element-obscurers.ts","../../../projects/cdk/utils/dom/get-element-offset.ts","../../../projects/cdk/utils/dom/get-scroll-parent.ts","../../../projects/cdk/utils/dom/get-selected-text.ts","../../../projects/cdk/utils/dom/is-current-target.ts","../../../projects/cdk/utils/dom/is-element-editable.ts","../../../projects/cdk/utils/dom/is-inside-iframe.ts","../../../projects/cdk/utils/dom/is-node-in.ts","../../../projects/cdk/utils/dom/point-to-client-rect.ts","../../../projects/cdk/utils/dom/retarget-boundary-crossing.ts","../../../projects/cdk/utils/dom/taiga-ui-cdk-utils-dom.ts"],"sourcesContent":["export function tuiCanScroll(\n element: Element,\n rootElement: Element,\n vertical: boolean,\n scrollEnd: boolean,\n): boolean {\n return vertical\n ? canScrollVertical(element, rootElement, scrollEnd)\n : canScrollHorizontal(element, rootElement, scrollEnd);\n}\n\nfunction canScrollVertical(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollTop) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollTop + currentElement.clientHeight) <\n currentElement.scrollHeight &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n\nfunction canScrollHorizontal(\n element: Element,\n rootElement: Element,\n scrollEnd: boolean,\n): boolean {\n let currentElement = element;\n\n while (currentElement !== rootElement.parentElement) {\n if (\n (Math.floor(currentElement.scrollLeft) > 0 && !scrollEnd) ||\n (Math.ceil(currentElement.scrollLeft + currentElement.clientWidth) <\n currentElement.scrollWidth &&\n scrollEnd)\n ) {\n return true;\n }\n\n if (currentElement.parentElement) {\n currentElement = currentElement.parentElement;\n } else {\n return false;\n }\n }\n\n return false;\n}\n","export function tuiContainsOrAfter(current: Node, node: Node): boolean {\n try {\n return (\n current.contains(node) ||\n !!(node.compareDocumentPosition(current) & Node.DOCUMENT_POSITION_PRECEDING)\n );\n } catch {\n return false;\n }\n}\n","export function tuiIsInput(element: Element): element is HTMLInputElement {\n return element.matches(`input`);\n}\n\nexport function tuiIsTextarea(element: Element): element is HTMLTextAreaElement {\n return element.matches(`textarea`);\n}\n\nexport function tuiIsTextfield(\n element: Element,\n): element is HTMLInputElement | HTMLTextAreaElement {\n return tuiIsInput(element) || tuiIsTextarea(element);\n}\n\nexport function tuiIsElement(\n node?: Element | EventTarget | Node | null,\n): node is Element {\n return !!node && `nodeType` in node && node.nodeType === Node.ELEMENT_NODE;\n}\n\nexport function tuiIsHTMLElement(node: unknown): node is HTMLElement {\n // TODO: iframe warning\n return node instanceof HTMLElement;\n}\n\nexport function tuiIsTextNode(node: Node): node is Text {\n return node.nodeType === Node.TEXT_NODE;\n}\n","/**\n * Gets actual target from open Shadow DOM if event happened within it\n */\nexport function tuiGetActualTarget(event: Event): Node {\n return event.composedPath()[0] as Node;\n}\n","const DEFAULT_FORMAT = `text/plain`;\n\n/**\n * Gets text from data of clipboardEvent, it also works in IE and Edge browsers\n */\nexport function tuiGetClipboardDataText(\n event: ClipboardEvent,\n format: string = DEFAULT_FORMAT,\n): string {\n return `clipboardData` in event && event.clipboardData !== null\n ? event.clipboardData.getData(format) ||\n event.clipboardData.getData(DEFAULT_FORMAT)\n : (event as any).target.ownerDocument.defaultView.clipboardData.getData(`text`);\n}\n","export function tuiGetDocumentOrShadowRoot(node: Node): DocumentOrShadowRoot {\n return `getRootNode` in node && node.isConnected\n ? (node.getRootNode() as Document)\n : (node.ownerDocument as DocumentOrShadowRoot);\n}\n","import {tuiClamp} from '@taiga-ui/cdk/utils/math';\nimport {tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\n\nimport {tuiGetDocumentOrShadowRoot} from './get-document-or-shadow-root';\n\n/**\n * Returns array of Elements covering edges of given element or null if at least one edge middle point is visible\n *\n * CAUTION: Empty array means element if offscreen i.e. covered by no elements, rather than not covered\n * TODO: v4.0 change function signature to\n * ```ts\n * function tuiGetElementObscures(element: Element): readonly [Element, Element, Element, Element] | [] | null\n * ```\n */\nexport function tuiGetElementObscures(element: Element): readonly Element[] | null {\n const {ownerDocument} = element;\n\n if (!ownerDocument?.defaultView || !element.getBoundingClientRect) {\n return null;\n }\n\n const {innerWidth, innerHeight} = ownerDocument.defaultView;\n const doc = tuiGetDocumentOrShadowRoot(element);\n const rect = element.getBoundingClientRect();\n\n if (rect.width === 0 && rect.height === 0) {\n return null;\n }\n\n const left = tuiClamp(Math.round(rect.left) + 2, 0, innerWidth);\n const top = tuiClamp(Math.round(rect.top) + 2, 0, innerHeight);\n const right = tuiClamp(Math.round(rect.right) - 2, 0, innerWidth);\n const bottom = tuiClamp(Math.round(rect.bottom) - 2, 0, innerHeight);\n const horizontalMiddle = tuiClamp(\n Math.round(rect.left + rect.width / 2),\n 0,\n innerWidth,\n );\n const verticalMiddle = tuiClamp(\n Math.round(rect.top + rect.height / 2),\n 0,\n innerHeight,\n );\n const elements = [\n doc.elementFromPoint(horizontalMiddle, top),\n doc.elementFromPoint(horizontalMiddle, bottom),\n doc.elementFromPoint(left, verticalMiddle),\n doc.elementFromPoint(right, verticalMiddle),\n ];\n const nonNull = elements.filter(tuiIsPresent);\n\n if (!nonNull.length) {\n return nonNull;\n }\n\n const filtered = nonNull.filter(el => !element.contains(el));\n\n return filtered.length === 4 ? filtered : null;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nimport {tuiIsHTMLElement} from './element-checks';\n\n/**\n * Calculates offset for an element relative to it's parent several levels above\n *\n * @param host parent element\n * @param element\n * @return object with offsetTop and offsetLeft number properties\n */\nexport function tuiGetElementOffset(\n host: Element,\n element: HTMLElement,\n): {offsetLeft: number; offsetTop: number} {\n ngDevMode && tuiAssert.assert(host.contains(element), `Host must contain element`);\n\n let {offsetTop, offsetLeft, offsetParent} = element;\n\n while (tuiIsHTMLElement(offsetParent) && offsetParent !== host) {\n offsetTop += offsetParent.offsetTop;\n offsetLeft += offsetParent.offsetLeft;\n offsetParent = offsetParent.offsetParent;\n }\n\n return {offsetTop, offsetLeft};\n}\n","/**\n * Finds the nearest parent with scroll in it\n *\n * @param element initial element\n * @param vertical flag for orientation of scroll\n */\nexport function tuiGetScrollParent(\n element: Element | null,\n vertical: boolean = true,\n): Element | null {\n if (element === null) {\n return null;\n }\n\n if (vertical && element.scrollHeight > element.clientHeight) {\n return element;\n }\n\n if (!vertical && element.scrollWidth > element.clientWidth) {\n return element;\n }\n\n return tuiGetScrollParent(element.parentElement, vertical);\n}\n","import {tuiIsTextfield} from './element-checks';\n\n/**\n * @description:\n * cross browser way to get selected text\n *\n * History:\n * BUG - window.getSelection() fails when text selected in a form field\n * https://bugzilla.mozilla.org/show_bug.cgi?id=85686\n */\nexport function tuiGetSelectedText({getSelection, document}: Window): string | null {\n return document.activeElement && tuiIsTextfield(document.activeElement)\n ? document.activeElement.value.slice(\n document.activeElement.selectionStart || 0,\n document.activeElement.selectionEnd || 0,\n )\n : getSelection()?.toString() || null;\n}\n","export function tuiIsCurrentTarget({target, currentTarget}: Event): boolean {\n return target === currentTarget;\n}\n","import {tuiIsTextfield} from './element-checks';\n\nexport function tuiIsElementEditable(element: HTMLElement): boolean {\n return (tuiIsTextfield(element) && !element.readOnly) || !!element.isContentEditable;\n}\n","/**\n * Checks if an app is running inside <iframe /> tag\n */\nexport function tuiIsInsideIframe(win: Window): boolean {\n return win.parent !== win;\n}\n","import {tuiIsElement, tuiIsTextNode} from './element-checks';\n\n/**\n * Checks if node is inside a specific selector\n *\n * @param node\n * @param selector\n * @return true if node is inside a particular selector\n */\nexport function tuiIsNodeIn(node: Node, selector: string): boolean {\n return tuiIsTextNode(node)\n ? !!node.parentElement?.closest(selector)\n : tuiIsElement(node) && !!node.closest(selector);\n}\n","export function tuiPointToClientRect(x: number = 0, y: number = 0): DOMRect {\n const rect = {\n x,\n y,\n left: x,\n right: x,\n top: y,\n bottom: y,\n width: 0,\n height: 0,\n } as const;\n\n return {\n ...rect,\n toJSON() {\n return rect;\n },\n };\n}\n","export function tuiRetargetedBoundaryCrossing(event: any): boolean {\n // firefox\n if (`explicitOriginalTarget` in event) {\n return event?.explicitOriginalTarget !== event.target;\n }\n\n // chrome\n if (`pointerId` in event) {\n return event.pointerId === -1;\n }\n\n // safari\n if (`detail` in event && `webkitForce` in event) {\n return event?.detail === 0;\n }\n\n return false;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -1,6 +1,11 @@
|
|
1
1
|
import { tuiIsHTMLElement } from '@taiga-ui/cdk/utils/dom';
|
2
2
|
import { svgNodeFilter } from '@taiga-ui/cdk/constants';
|
3
3
|
|
4
|
+
/**
|
5
|
+
* Returns current active element, including shadow dom
|
6
|
+
*
|
7
|
+
* @return element or null
|
8
|
+
*/
|
4
9
|
function tuiGetNativeFocused({ activeElement }) {
|
5
10
|
if (!(activeElement === null || activeElement === void 0 ? void 0 : activeElement.shadowRoot)) {
|
6
11
|
return activeElement;
|
@@ -12,6 +17,9 @@ function tuiGetNativeFocused({ activeElement }) {
|
|
12
17
|
return element;
|
13
18
|
}
|
14
19
|
|
20
|
+
/**
|
21
|
+
* Finds and blurs current active element, including shadow DOM
|
22
|
+
*/
|
15
23
|
function tuiBlurNativeFocused(doc) {
|
16
24
|
const activeElement = tuiGetNativeFocused(doc);
|
17
25
|
if (tuiIsHTMLElement(activeElement)) {
|
@@ -19,6 +27,12 @@ function tuiBlurNativeFocused(doc) {
|
|
19
27
|
}
|
20
28
|
}
|
21
29
|
|
30
|
+
/**
|
31
|
+
* Checks for signs that element can be focused with keyboard. tabIndex above 0 is ignored to
|
32
|
+
* only target natural focus order. Not checking the possibility of an element to
|
33
|
+
* be focused, for example element can have display: none applied to it or any other
|
34
|
+
* circumstances could prevent actual focus.
|
35
|
+
*/
|
22
36
|
function tuiIsNativeKeyboardFocusable(element) {
|
23
37
|
if (element.hasAttribute(`disabled`) || element.getAttribute(`tabIndex`) === `-1`) {
|
24
38
|
return false;
|
@@ -51,6 +65,10 @@ function tuiIsNativeMouseFocusable(element) {
|
|
51
65
|
tuiIsNativeKeyboardFocusable(element)));
|
52
66
|
}
|
53
67
|
|
68
|
+
/**
|
69
|
+
* @description:
|
70
|
+
* Finds the closest element that can be focused with a keyboard or mouse in theory
|
71
|
+
*/
|
54
72
|
function tuiGetClosestFocusable({ initial, root, previous = false, keyboard = true, }) {
|
55
73
|
if (!root.ownerDocument) {
|
56
74
|
return null;
|
@@ -69,11 +87,26 @@ function tuiGetClosestFocusable({ initial, root, previous = false, keyboard = tr
|
|
69
87
|
return null;
|
70
88
|
}
|
71
89
|
|
90
|
+
/**
|
91
|
+
* Checks if element is focused.
|
92
|
+
*
|
93
|
+
* Could return true even after blur since element remains focused if you switch away from a browser tab.
|
94
|
+
*
|
95
|
+
* @param node or null (as a common return value of DOM nodes walking)
|
96
|
+
* @return true if focused
|
97
|
+
*/
|
72
98
|
function tuiIsNativeFocused(node) {
|
73
99
|
return !!(node === null || node === void 0 ? void 0 : node.ownerDocument) && tuiGetNativeFocused(node.ownerDocument) === node;
|
74
100
|
}
|
75
101
|
|
102
|
+
/**
|
103
|
+
* Checks if focused element is within given element.
|
104
|
+
*
|
105
|
+
* @param node
|
106
|
+
* @return true if focused node is contained within element
|
107
|
+
*/
|
76
108
|
function tuiIsNativeFocusedIn(node) {
|
109
|
+
// !node.contains - check for IE11
|
77
110
|
if (!node.ownerDocument || !node.contains) {
|
78
111
|
return false;
|
79
112
|
}
|
@@ -81,6 +114,13 @@ function tuiIsNativeFocusedIn(node) {
|
|
81
114
|
return nativeFocused !== null && node.contains(nativeFocused);
|
82
115
|
}
|
83
116
|
|
117
|
+
/**
|
118
|
+
* Utility method for moving focus in a list of elements
|
119
|
+
*
|
120
|
+
* @param currentIndex currently focused index
|
121
|
+
* @param elements array of focusable elements
|
122
|
+
* @param step a step to move focus by, typically -1 or 1
|
123
|
+
*/
|
84
124
|
function tuiMoveFocus(currentIndex, elements, step) {
|
85
125
|
currentIndex += step;
|
86
126
|
while (currentIndex >= 0 && currentIndex < elements.length) {
|
@@ -92,6 +132,13 @@ function tuiMoveFocus(currentIndex, elements, step) {
|
|
92
132
|
}
|
93
133
|
}
|
94
134
|
|
135
|
+
/**
|
136
|
+
* Focuses or blurs element with mouse action imitation (to spoof {@link TuiFocusVisibleService})
|
137
|
+
*
|
138
|
+
* @param element
|
139
|
+
* @param focused desired focused state
|
140
|
+
* @param preventScroll optionally prevent native browser scroll after focus
|
141
|
+
*/
|
95
142
|
function tuiSetNativeMouseFocused(element, focused = true, preventScroll = false) {
|
96
143
|
if (!element.ownerDocument) {
|
97
144
|
return;
|
@@ -112,5 +159,9 @@ function tuiSetNativeMouseFocused(element, focused = true, preventScroll = false
|
|
112
159
|
}
|
113
160
|
}
|
114
161
|
|
162
|
+
/**
|
163
|
+
* Generated bundle index. Do not edit.
|
164
|
+
*/
|
165
|
+
|
115
166
|
export { tuiBlurNativeFocused, tuiGetClosestFocusable, tuiGetNativeFocused, tuiIsNativeFocused, tuiIsNativeFocusedIn, tuiIsNativeKeyboardFocusable, tuiIsNativeMouseFocusable, tuiMoveFocus, tuiSetNativeMouseFocused };
|
116
167
|
//# sourceMappingURL=taiga-ui-cdk-utils-focus.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-utils-focus.js","sources":["../../../projects/cdk/utils/focus/get-native-focused.ts","../../../projects/cdk/utils/focus/blur-native-focused.ts","../../../projects/cdk/utils/focus/is-native-keyboard-focusable.ts","../../../projects/cdk/utils/focus/is-native-mouse-focusable.ts","../../../projects/cdk/utils/focus/get-closest-focusable.ts","../../../projects/cdk/utils/focus/is-native-focused.ts","../../../projects/cdk/utils/focus/is-native-focused-in.ts","../../../projects/cdk/utils/focus/move-focus.ts","../../../projects/cdk/utils/focus/set-native-mouse-focused.ts"],"sourcesContent":["/**\n * Returns current active element, including shadow dom\n *\n * @return element or null\n */\nexport function tuiGetNativeFocused({activeElement}: Document): Element | null {\n if (!activeElement?.shadowRoot) {\n return activeElement;\n }\n\n let element = activeElement.shadowRoot.activeElement;\n\n while (element?.shadowRoot) {\n element = element.shadowRoot.activeElement;\n }\n\n return element;\n}\n","import {tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {tuiGetNativeFocused} from './get-native-focused';\n\n/**\n * Finds and blurs current active element, including shadow DOM\n */\nexport function tuiBlurNativeFocused(doc: Document): void {\n const activeElement = tuiGetNativeFocused(doc);\n\n if (tuiIsHTMLElement(activeElement)) {\n activeElement.blur();\n }\n}\n","import {tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\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 tuiIsNativeKeyboardFocusable(element: Element): boolean {\n if (element.hasAttribute(`disabled`) || element.getAttribute(`tabIndex`) === `-1`) {\n return false;\n }\n\n if (\n (tuiIsHTMLElement(element) && 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 {tuiIsNativeKeyboardFocusable} from './is-native-keyboard-focusable';\n\nexport function tuiIsNativeMouseFocusable(element: Element): boolean {\n return (\n !element.hasAttribute(`disabled`) &&\n (element.getAttribute(`tabIndex`) === `-1` ||\n tuiIsNativeKeyboardFocusable(element))\n );\n}\n","import {svgNodeFilter} from '@taiga-ui/cdk/constants';\nimport {tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {tuiIsNativeKeyboardFocusable} from './is-native-keyboard-focusable';\nimport {tuiIsNativeMouseFocusable} from './is-native-mouse-focusable';\n\nexport interface TuiGetClosestFocusableOptions {\n /**\n * @description:\n * current HTML element\n */\n initial: Element;\n\n /**\n * @description:\n * determine if only keyboard focus is of interest\n */\n keyboard?: boolean;\n\n /**\n * @description:\n * should it look backwards instead (find item that will be focused with Shift + Tab)\n */\n previous?: boolean;\n\n /**\n * @description:\n * top Node limiting the search area\n */\n root: Node;\n}\n\n/**\n * @description:\n * Finds the closest element that can be focused with a keyboard or mouse in theory\n */\nexport function tuiGetClosestFocusable({\n initial,\n root,\n previous = false,\n keyboard = true,\n}: TuiGetClosestFocusableOptions): HTMLElement | null {\n if (!root.ownerDocument) {\n return null;\n }\n\n const check = keyboard ? tuiIsNativeKeyboardFocusable : tuiIsNativeMouseFocusable;\n const treeWalker = root.ownerDocument.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n svgNodeFilter,\n );\n\n treeWalker.currentNode = initial;\n\n while (previous ? treeWalker.previousNode() : treeWalker.nextNode()) {\n if (tuiIsHTMLElement(treeWalker.currentNode)) {\n initial = treeWalker.currentNode;\n }\n\n if (tuiIsHTMLElement(initial) && check(initial)) {\n return initial;\n }\n }\n\n return null;\n}\n","import {tuiGetNativeFocused} 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 tuiIsNativeFocused(node: Node | null): boolean {\n return !!node?.ownerDocument && tuiGetNativeFocused(node.ownerDocument) === node;\n}\n","import {tuiGetNativeFocused} 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 tuiIsNativeFocusedIn(node: Node): boolean {\n // !node.contains - check for IE11\n if (!node.ownerDocument || !node.contains) {\n return false;\n }\n\n const nativeFocused = tuiGetNativeFocused(node.ownerDocument);\n\n return nativeFocused !== null && node.contains(nativeFocused);\n}\n","import {tuiIsNativeFocused} from './is-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 tuiMoveFocus(\n currentIndex: number,\n elements: readonly HTMLElement[],\n step: number,\n): void {\n currentIndex += step;\n\n while (currentIndex >= 0 && currentIndex < elements.length) {\n elements[currentIndex].focus();\n\n if (tuiIsNativeFocused(elements[currentIndex])) {\n return;\n }\n\n currentIndex += step;\n }\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 tuiSetNativeMouseFocused(\n element: Element & HTMLOrSVGElement,\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 if (focused) {\n element.focus({preventScroll});\n } else {\n element.blur();\n }\n}\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-utils-focus.js","sources":["../../../projects/cdk/utils/focus/get-native-focused.ts","../../../projects/cdk/utils/focus/blur-native-focused.ts","../../../projects/cdk/utils/focus/is-native-keyboard-focusable.ts","../../../projects/cdk/utils/focus/is-native-mouse-focusable.ts","../../../projects/cdk/utils/focus/get-closest-focusable.ts","../../../projects/cdk/utils/focus/is-native-focused.ts","../../../projects/cdk/utils/focus/is-native-focused-in.ts","../../../projects/cdk/utils/focus/move-focus.ts","../../../projects/cdk/utils/focus/set-native-mouse-focused.ts","../../../projects/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 tuiGetNativeFocused({activeElement}: Document): Element | null {\n if (!activeElement?.shadowRoot) {\n return activeElement;\n }\n\n let element = activeElement.shadowRoot.activeElement;\n\n while (element?.shadowRoot) {\n element = element.shadowRoot.activeElement;\n }\n\n return element;\n}\n","import {tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {tuiGetNativeFocused} from './get-native-focused';\n\n/**\n * Finds and blurs current active element, including shadow DOM\n */\nexport function tuiBlurNativeFocused(doc: Document): void {\n const activeElement = tuiGetNativeFocused(doc);\n\n if (tuiIsHTMLElement(activeElement)) {\n activeElement.blur();\n }\n}\n","import {tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\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 tuiIsNativeKeyboardFocusable(element: Element): boolean {\n if (element.hasAttribute(`disabled`) || element.getAttribute(`tabIndex`) === `-1`) {\n return false;\n }\n\n if (\n (tuiIsHTMLElement(element) && 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 {tuiIsNativeKeyboardFocusable} from './is-native-keyboard-focusable';\n\nexport function tuiIsNativeMouseFocusable(element: Element): boolean {\n return (\n !element.hasAttribute(`disabled`) &&\n (element.getAttribute(`tabIndex`) === `-1` ||\n tuiIsNativeKeyboardFocusable(element))\n );\n}\n","import {svgNodeFilter} from '@taiga-ui/cdk/constants';\nimport {tuiIsHTMLElement} from '@taiga-ui/cdk/utils/dom';\n\nimport {tuiIsNativeKeyboardFocusable} from './is-native-keyboard-focusable';\nimport {tuiIsNativeMouseFocusable} from './is-native-mouse-focusable';\n\nexport interface TuiGetClosestFocusableOptions {\n /**\n * @description:\n * current HTML element\n */\n initial: Element;\n\n /**\n * @description:\n * determine if only keyboard focus is of interest\n */\n keyboard?: boolean;\n\n /**\n * @description:\n * should it look backwards instead (find item that will be focused with Shift + Tab)\n */\n previous?: boolean;\n\n /**\n * @description:\n * top Node limiting the search area\n */\n root: Node;\n}\n\n/**\n * @description:\n * Finds the closest element that can be focused with a keyboard or mouse in theory\n */\nexport function tuiGetClosestFocusable({\n initial,\n root,\n previous = false,\n keyboard = true,\n}: TuiGetClosestFocusableOptions): HTMLElement | null {\n if (!root.ownerDocument) {\n return null;\n }\n\n const check = keyboard ? tuiIsNativeKeyboardFocusable : tuiIsNativeMouseFocusable;\n const treeWalker = root.ownerDocument.createTreeWalker(\n root,\n NodeFilter.SHOW_ELEMENT,\n svgNodeFilter,\n );\n\n treeWalker.currentNode = initial;\n\n while (previous ? treeWalker.previousNode() : treeWalker.nextNode()) {\n if (tuiIsHTMLElement(treeWalker.currentNode)) {\n initial = treeWalker.currentNode;\n }\n\n if (tuiIsHTMLElement(initial) && check(initial)) {\n return initial;\n }\n }\n\n return null;\n}\n","import {tuiGetNativeFocused} 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 tuiIsNativeFocused(node: Node | null): boolean {\n return !!node?.ownerDocument && tuiGetNativeFocused(node.ownerDocument) === node;\n}\n","import {tuiGetNativeFocused} 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 tuiIsNativeFocusedIn(node: Node): boolean {\n // !node.contains - check for IE11\n if (!node.ownerDocument || !node.contains) {\n return false;\n }\n\n const nativeFocused = tuiGetNativeFocused(node.ownerDocument);\n\n return nativeFocused !== null && node.contains(nativeFocused);\n}\n","import {tuiIsNativeFocused} from './is-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 tuiMoveFocus(\n currentIndex: number,\n elements: readonly HTMLElement[],\n step: number,\n): void {\n currentIndex += step;\n\n while (currentIndex >= 0 && currentIndex < elements.length) {\n elements[currentIndex].focus();\n\n if (tuiIsNativeFocused(elements[currentIndex])) {\n return;\n }\n\n currentIndex += step;\n }\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 tuiSetNativeMouseFocused(\n element: Element & HTMLOrSVGElement,\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 if (focused) {\n element.focus({preventScroll});\n } else {\n element.blur();\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,16 @@
|
|
1
1
|
import { tuiAssert } from '@taiga-ui/cdk/classes';
|
2
2
|
|
3
|
+
/**
|
4
|
+
* Adds 'px' to the number and turns it into a string
|
5
|
+
*/
|
3
6
|
function tuiPx(value) {
|
4
7
|
ngDevMode && tuiAssert.assert(Number.isFinite(value), `Value must be finite number`);
|
5
8
|
return `${value}px`;
|
6
9
|
}
|
7
10
|
|
11
|
+
/**
|
12
|
+
* Generated bundle index. Do not edit.
|
13
|
+
*/
|
14
|
+
|
8
15
|
export { tuiPx };
|
9
16
|
//# sourceMappingURL=taiga-ui-cdk-utils-format.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-utils-format.js","sources":["../../../projects/cdk/utils/format/px.ts"],"sourcesContent":["import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Adds 'px' to the number and turns it into a string\n */\nexport function tuiPx(value: number): string {\n ngDevMode && tuiAssert.assert(Number.isFinite(value), `Value must be finite number`);\n\n return `${value}px`;\n}\n"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-utils-format.js","sources":["../../../projects/cdk/utils/format/px.ts","../../../projects/cdk/utils/format/taiga-ui-cdk-utils-format.ts"],"sourcesContent":["import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Adds 'px' to the number and turns it into a string\n */\nexport function tuiPx(value: number): string {\n ngDevMode && tuiAssert.assert(Number.isFinite(value), `Value must be finite number`);\n\n return `${value}px`;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAEA;;AAEG;AACG,SAAU,KAAK,CAAC,KAAa,EAAA;AAC/B,IAAA,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAA,2BAAA,CAA6B,CAAC,CAAC;IAErF,OAAO,CAAA,EAAG,KAAK,CAAA,EAAA,CAAI,CAAC;AACxB;;ACTA;;AAEG;;;;"}
|
@@ -1,5 +1,12 @@
|
|
1
1
|
import { tuiAssert } from '@taiga-ui/cdk/classes';
|
2
2
|
|
3
|
+
/**
|
4
|
+
* Clamps a value between two inclusive limits
|
5
|
+
*
|
6
|
+
* @param value
|
7
|
+
* @param min lower limit
|
8
|
+
* @param max upper limit
|
9
|
+
*/
|
3
10
|
function tuiClamp(value, min, max) {
|
4
11
|
ngDevMode && tuiAssert.assert(!Number.isNaN(value));
|
5
12
|
ngDevMode && tuiAssert.assert(!Number.isNaN(min));
|
@@ -16,6 +23,14 @@ function tuiInRange(value, fromInclude, toExclude) {
|
|
16
23
|
return value >= fromInclude && value < toExclude;
|
17
24
|
}
|
18
25
|
|
26
|
+
/**
|
27
|
+
* Normalizes any number to an integer within inclusive range
|
28
|
+
*
|
29
|
+
* @param value
|
30
|
+
* @param min lower inclusive integer
|
31
|
+
* @param max upper inclusive integer
|
32
|
+
* @return an integer between min and max inclusive
|
33
|
+
*/
|
19
34
|
function tuiNormalizeToIntNumber(value, min, max) {
|
20
35
|
ngDevMode && tuiAssert.assert(Number.isInteger(min));
|
21
36
|
ngDevMode && tuiAssert.assert(Number.isInteger(max));
|
@@ -29,6 +44,12 @@ function tuiNormalizeToIntNumber(value, min, max) {
|
|
29
44
|
return Math.round(value);
|
30
45
|
}
|
31
46
|
|
47
|
+
/**
|
48
|
+
* Rounds a number to the closest value in a fixed discrete series
|
49
|
+
*
|
50
|
+
* @param value
|
51
|
+
* @param quantum series step
|
52
|
+
*/
|
32
53
|
function tuiQuantize(value, quantum) {
|
33
54
|
ngDevMode && tuiAssert.assert(Number.isFinite(value));
|
34
55
|
ngDevMode && tuiAssert.assert(Number.isFinite(quantum));
|
@@ -50,6 +71,13 @@ function tuiFloor(value, precision = 0) {
|
|
50
71
|
function tuiTrunc(value, precision = 0) {
|
51
72
|
return calculate(value, precision, Math.trunc);
|
52
73
|
}
|
74
|
+
/**
|
75
|
+
* Rounding number to the set precision
|
76
|
+
*
|
77
|
+
* @param value
|
78
|
+
* @param precision number of digits in a float part
|
79
|
+
* @param func rounding function (round, floor, ceil)
|
80
|
+
*/
|
53
81
|
function calculate(value, precision, func) {
|
54
82
|
if (value === Infinity) {
|
55
83
|
return value;
|
@@ -77,6 +105,9 @@ function tuiRoundWith({ value, precision, method, }) {
|
|
77
105
|
}
|
78
106
|
}
|
79
107
|
|
108
|
+
/**
|
109
|
+
* Calculates sum of any number of passed arguments
|
110
|
+
*/
|
80
111
|
function tuiSum(...args) {
|
81
112
|
return args.reduce((a, b) => a + b, 0);
|
82
113
|
}
|
@@ -89,9 +120,16 @@ function tuiToInteger(value) {
|
|
89
120
|
return parseInt(value, 10);
|
90
121
|
}
|
91
122
|
|
123
|
+
/**
|
124
|
+
* Converts angle in degrees to radians
|
125
|
+
*/
|
92
126
|
function tuiToRadians(deg) {
|
93
127
|
return (deg * Math.PI) / 180;
|
94
128
|
}
|
95
129
|
|
130
|
+
/**
|
131
|
+
* Generated bundle index. Do not edit.
|
132
|
+
*/
|
133
|
+
|
96
134
|
export { tuiCeil, tuiClamp, tuiFloor, tuiInRange, tuiNormalizeToIntNumber, tuiQuantize, tuiRound, tuiRoundWith, tuiSum, tuiToInt, tuiToInteger, tuiToRadians, tuiTrunc };
|
97
135
|
//# sourceMappingURL=taiga-ui-cdk-utils-math.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-utils-math.js","sources":["../../../projects/cdk/utils/math/clamp.ts","../../../projects/cdk/utils/math/in-range.ts","../../../projects/cdk/utils/math/normalize-to-int-number.ts","../../../projects/cdk/utils/math/quantize.ts","../../../projects/cdk/utils/math/round.ts","../../../projects/cdk/utils/math/round-with.ts","../../../projects/cdk/utils/math/sum.ts","../../../projects/cdk/utils/math/to-int.ts","../../../projects/cdk/utils/math/to-integer.ts","../../../projects/cdk/utils/math/to-radians.ts"],"sourcesContent":["import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Clamps a value between two inclusive limits\n *\n * @param value\n * @param min lower limit\n * @param max upper limit\n */\nexport function tuiClamp(value: number, min: number, max: number): number {\n ngDevMode && tuiAssert.assert(!Number.isNaN(value));\n ngDevMode && tuiAssert.assert(!Number.isNaN(min));\n ngDevMode && tuiAssert.assert(!Number.isNaN(max));\n ngDevMode && tuiAssert.assert(max >= min);\n\n return Math.min(max, Math.max(min, value));\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nexport function tuiInRange(\n value: number,\n fromInclude: number,\n toExclude: number,\n): boolean {\n ngDevMode && tuiAssert.assert(!Number.isNaN(value));\n ngDevMode && tuiAssert.assert(!Number.isNaN(fromInclude));\n ngDevMode && tuiAssert.assert(!Number.isNaN(toExclude));\n ngDevMode && tuiAssert.assert(fromInclude < toExclude);\n\n return value >= fromInclude && value < toExclude;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Normalizes any number to an integer within inclusive range\n *\n * @param value\n * @param min lower inclusive integer\n * @param max upper inclusive integer\n * @return an integer between min and max inclusive\n */\nexport function tuiNormalizeToIntNumber(value: number, min: number, max: number): number {\n ngDevMode && tuiAssert.assert(Number.isInteger(min));\n ngDevMode && tuiAssert.assert(Number.isInteger(max));\n ngDevMode && tuiAssert.assert(min <= max);\n\n if (Number.isNaN(value) || value <= min) {\n return min;\n }\n\n if (value >= max) {\n return max;\n }\n\n return Math.round(value);\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Rounds a number to the closest value in a fixed discrete series\n *\n * @param value\n * @param quantum series step\n */\nexport function tuiQuantize(value: number, quantum: number): number {\n ngDevMode && tuiAssert.assert(Number.isFinite(value));\n ngDevMode && tuiAssert.assert(Number.isFinite(quantum));\n ngDevMode && tuiAssert.assert(quantum > 0);\n\n const remainder = value % quantum;\n\n return remainder < quantum / 2 ? value - remainder : value + quantum - remainder;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nconst MAX_PRECISION = 292;\n\nexport function tuiRound(value: number, precision: number = 0): number {\n return calculate(value, precision, Math.round);\n}\n\nexport function tuiCeil(value: number, precision: number = 0): number {\n return calculate(value, precision, Math.ceil);\n}\n\nexport function tuiFloor(value: number, precision: number = 0): number {\n return calculate(value, precision, Math.floor);\n}\n\nexport function tuiTrunc(value: number, precision: number = 0): number {\n return calculate(value, precision, Math.trunc);\n}\n\n/**\n * Rounding number to the set precision\n *\n * @param value\n * @param precision number of digits in a float part\n * @param func rounding function (round, floor, ceil)\n */\nfunction calculate(\n value: number,\n precision: number,\n func: (x: number) => number,\n): number {\n if (value === Infinity) {\n return value;\n }\n\n ngDevMode && tuiAssert.assert(!Number.isNaN(value), `Value must be number`);\n ngDevMode &&\n tuiAssert.assert(Number.isInteger(precision), `Precision must be integer`);\n\n precision = Math.min(precision, MAX_PRECISION);\n\n const pair = `${value}e`.split(`e`);\n const tempValue = func(Number(`${pair[0]}e${Number(pair[1]) + precision}`));\n const processedPair = `${tempValue}e`.split(`e`);\n\n return Number(`${processedPair[0]}e${Number(processedPair[1]) - precision}`);\n}\n","import {TuiRounding} from '@taiga-ui/cdk/types';\n\nimport {tuiCeil, tuiFloor, tuiRound, tuiTrunc} from './round';\n\nexport function tuiRoundWith({\n value,\n precision,\n method,\n}: {\n method: TuiRounding;\n precision: number;\n value: number;\n}): number {\n switch (method) {\n case `round`:\n return tuiRound(value, precision);\n case `ceil`:\n return tuiCeil(value, precision);\n case `floor`:\n return tuiFloor(value, precision);\n default:\n return tuiTrunc(value, precision);\n }\n}\n","/**\n * Calculates sum of any number of passed arguments\n */\nexport function tuiSum(...args: number[]): number {\n return args.reduce((a, b) => a + b, 0);\n}\n","export function tuiToInt(bool: boolean): 0 | 1 {\n return bool ? 1 : 0;\n}\n","export function tuiToInteger(value: number | string): number {\n return parseInt(value as unknown as string, 10);\n}\n","/**\n * Converts angle in degrees to radians\n */\nexport function tuiToRadians(deg: number): number {\n return (deg * Math.PI) / 180;\n}\n"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-utils-math.js","sources":["../../../projects/cdk/utils/math/clamp.ts","../../../projects/cdk/utils/math/in-range.ts","../../../projects/cdk/utils/math/normalize-to-int-number.ts","../../../projects/cdk/utils/math/quantize.ts","../../../projects/cdk/utils/math/round.ts","../../../projects/cdk/utils/math/round-with.ts","../../../projects/cdk/utils/math/sum.ts","../../../projects/cdk/utils/math/to-int.ts","../../../projects/cdk/utils/math/to-integer.ts","../../../projects/cdk/utils/math/to-radians.ts","../../../projects/cdk/utils/math/taiga-ui-cdk-utils-math.ts"],"sourcesContent":["import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Clamps a value between two inclusive limits\n *\n * @param value\n * @param min lower limit\n * @param max upper limit\n */\nexport function tuiClamp(value: number, min: number, max: number): number {\n ngDevMode && tuiAssert.assert(!Number.isNaN(value));\n ngDevMode && tuiAssert.assert(!Number.isNaN(min));\n ngDevMode && tuiAssert.assert(!Number.isNaN(max));\n ngDevMode && tuiAssert.assert(max >= min);\n\n return Math.min(max, Math.max(min, value));\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nexport function tuiInRange(\n value: number,\n fromInclude: number,\n toExclude: number,\n): boolean {\n ngDevMode && tuiAssert.assert(!Number.isNaN(value));\n ngDevMode && tuiAssert.assert(!Number.isNaN(fromInclude));\n ngDevMode && tuiAssert.assert(!Number.isNaN(toExclude));\n ngDevMode && tuiAssert.assert(fromInclude < toExclude);\n\n return value >= fromInclude && value < toExclude;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Normalizes any number to an integer within inclusive range\n *\n * @param value\n * @param min lower inclusive integer\n * @param max upper inclusive integer\n * @return an integer between min and max inclusive\n */\nexport function tuiNormalizeToIntNumber(value: number, min: number, max: number): number {\n ngDevMode && tuiAssert.assert(Number.isInteger(min));\n ngDevMode && tuiAssert.assert(Number.isInteger(max));\n ngDevMode && tuiAssert.assert(min <= max);\n\n if (Number.isNaN(value) || value <= min) {\n return min;\n }\n\n if (value >= max) {\n return max;\n }\n\n return Math.round(value);\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\n/**\n * Rounds a number to the closest value in a fixed discrete series\n *\n * @param value\n * @param quantum series step\n */\nexport function tuiQuantize(value: number, quantum: number): number {\n ngDevMode && tuiAssert.assert(Number.isFinite(value));\n ngDevMode && tuiAssert.assert(Number.isFinite(quantum));\n ngDevMode && tuiAssert.assert(quantum > 0);\n\n const remainder = value % quantum;\n\n return remainder < quantum / 2 ? value - remainder : value + quantum - remainder;\n}\n","import {tuiAssert} from '@taiga-ui/cdk/classes';\n\nconst MAX_PRECISION = 292;\n\nexport function tuiRound(value: number, precision: number = 0): number {\n return calculate(value, precision, Math.round);\n}\n\nexport function tuiCeil(value: number, precision: number = 0): number {\n return calculate(value, precision, Math.ceil);\n}\n\nexport function tuiFloor(value: number, precision: number = 0): number {\n return calculate(value, precision, Math.floor);\n}\n\nexport function tuiTrunc(value: number, precision: number = 0): number {\n return calculate(value, precision, Math.trunc);\n}\n\n/**\n * Rounding number to the set precision\n *\n * @param value\n * @param precision number of digits in a float part\n * @param func rounding function (round, floor, ceil)\n */\nfunction calculate(\n value: number,\n precision: number,\n func: (x: number) => number,\n): number {\n if (value === Infinity) {\n return value;\n }\n\n ngDevMode && tuiAssert.assert(!Number.isNaN(value), `Value must be number`);\n ngDevMode &&\n tuiAssert.assert(Number.isInteger(precision), `Precision must be integer`);\n\n precision = Math.min(precision, MAX_PRECISION);\n\n const pair = `${value}e`.split(`e`);\n const tempValue = func(Number(`${pair[0]}e${Number(pair[1]) + precision}`));\n const processedPair = `${tempValue}e`.split(`e`);\n\n return Number(`${processedPair[0]}e${Number(processedPair[1]) - precision}`);\n}\n","import {TuiRounding} from '@taiga-ui/cdk/types';\n\nimport {tuiCeil, tuiFloor, tuiRound, tuiTrunc} from './round';\n\nexport function tuiRoundWith({\n value,\n precision,\n method,\n}: {\n method: TuiRounding;\n precision: number;\n value: number;\n}): number {\n switch (method) {\n case `round`:\n return tuiRound(value, precision);\n case `ceil`:\n return tuiCeil(value, precision);\n case `floor`:\n return tuiFloor(value, precision);\n default:\n return tuiTrunc(value, precision);\n }\n}\n","/**\n * Calculates sum of any number of passed arguments\n */\nexport function tuiSum(...args: number[]): number {\n return args.reduce((a, b) => a + b, 0);\n}\n","export function tuiToInt(bool: boolean): 0 | 1 {\n return bool ? 1 : 0;\n}\n","export function tuiToInteger(value: number | string): number {\n return parseInt(value as unknown as string, 10);\n}\n","/**\n * Converts angle in degrees to radians\n */\nexport function tuiToRadians(deg: number): number {\n return (deg * Math.PI) / 180;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -16,6 +16,7 @@ function tuiArrayToggle(array, item) {
|
|
16
16
|
}
|
17
17
|
|
18
18
|
function tuiIsString(value) {
|
19
|
+
// eslint-disable-next-line @taiga-ui/experience/no-typeof
|
19
20
|
return typeof value === `string`;
|
20
21
|
}
|
21
22
|
|
@@ -34,6 +35,7 @@ function tuiCreateTokenFromFactory(factory) {
|
|
34
35
|
return new InjectionToken(``, { factory });
|
35
36
|
}
|
36
37
|
|
38
|
+
/** @deprecated use {@link tuiCreateToken} instead */
|
37
39
|
function tuiCreateOptions(defaults) {
|
38
40
|
return tuiCreateTokenFromFactory(() => defaults);
|
39
41
|
}
|
@@ -58,10 +60,21 @@ function tuiEaseInOutQuad(t) {
|
|
58
60
|
return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;
|
59
61
|
}
|
60
62
|
|
63
|
+
/**
|
64
|
+
* Flattens two-dimensional array and calculates resulting length
|
65
|
+
*
|
66
|
+
* @param array twi dimensional array
|
67
|
+
*/
|
61
68
|
function tuiFlatLength(array) {
|
62
69
|
return array.reduce((count, section) => count + section.length, 0);
|
63
70
|
}
|
64
71
|
|
72
|
+
/**
|
73
|
+
* Extracts original array from {@link QueryList} rather than
|
74
|
+
* creating a copy like {@link QueryList.toArray} does.
|
75
|
+
* @param queryList
|
76
|
+
* @returns original array from {@link QueryList}.
|
77
|
+
*/
|
65
78
|
function tuiGetOriginalArrayFromQueryList(queryList) {
|
66
79
|
let array = [];
|
67
80
|
queryList.find((_item, _index, originalArray) => {
|
@@ -83,10 +96,12 @@ function tuiIsFalsy(value) {
|
|
83
96
|
}
|
84
97
|
|
85
98
|
function tuiIsNumber(value) {
|
99
|
+
// eslint-disable-next-line @taiga-ui/experience/no-typeof
|
86
100
|
return typeof value === `number`;
|
87
101
|
}
|
88
102
|
|
89
103
|
function tuiIsObject(value) {
|
104
|
+
// eslint-disable-next-line @taiga-ui/experience/no-typeof
|
90
105
|
return typeof value === `object` && !!value;
|
91
106
|
}
|
92
107
|
|
@@ -95,12 +110,13 @@ function tuiIsPresent(value) {
|
|
95
110
|
}
|
96
111
|
|
97
112
|
function tuiIsValidUrl(url) {
|
98
|
-
const pattern = new RegExp(`^([a-zA-Z]+:\\/\\/)?` +
|
99
|
-
`((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|localhost|` +
|
100
|
-
`((\\d{1,3}\\.){3}\\d{1,3}))` +
|
101
|
-
`(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*` +
|
102
|
-
`(\\?[;&a-z\\d%_.~+=-]*)?` +
|
103
|
-
`(\\#[-a-z\\d_]*)?$`,
|
113
|
+
const pattern = new RegExp(`^([a-zA-Z]+:\\/\\/)?` + // protocol
|
114
|
+
`((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|localhost|` + // domain name
|
115
|
+
`((\\d{1,3}\\.){3}\\d{1,3}))` + // OR IP (v4) address
|
116
|
+
`(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*` + // port and path
|
117
|
+
`(\\?[;&a-z\\d%_.~+=-]*)?` + // query string
|
118
|
+
`(\\#[-a-z\\d_]*)?$`, // fragment locator
|
119
|
+
`i`);
|
104
120
|
return pattern.test(url);
|
105
121
|
}
|
106
122
|
|
@@ -119,6 +135,14 @@ function tuiMarkControlAsTouchedAndValidate(control) {
|
|
119
135
|
control.updateValueAndValidity();
|
120
136
|
}
|
121
137
|
|
138
|
+
/**
|
139
|
+
* Checks identity for nullable elements.
|
140
|
+
*
|
141
|
+
* @param a element a
|
142
|
+
* @param b element b
|
143
|
+
* @param handler called if both elements are not null
|
144
|
+
* @return true if either both are null or they pass identity handler
|
145
|
+
*/
|
122
146
|
function tuiNullableSame(a, b, handler) {
|
123
147
|
if (a === null) {
|
124
148
|
return b === null;
|
@@ -129,6 +153,14 @@ function tuiNullableSame(a, b, handler) {
|
|
129
153
|
return handler(a, b);
|
130
154
|
}
|
131
155
|
|
156
|
+
/**
|
157
|
+
* @deprecated use `Object.fromEntries` instead
|
158
|
+
* (check browser support first https://caniuse.com/mdn-javascript_builtins_object_fromentries)
|
159
|
+
* ___
|
160
|
+
* TODO: after we bump Firefox to 63+ replace this function with `Object.fromEntries`.
|
161
|
+
* TODO: Add `es2019.object` to `tsconfig.json` => `compilerOptions.lib`.
|
162
|
+
*
|
163
|
+
*/
|
132
164
|
function tuiObjectFromEntries(keyValuePairs) {
|
133
165
|
return keyValuePairs.reduce((obj, [key, val]) => (Object.assign(Object.assign({}, obj), { [key]: val })), {});
|
134
166
|
}
|
@@ -147,5 +179,9 @@ function tuiUniqBy(array, key) {
|
|
147
179
|
.values());
|
148
180
|
}
|
149
181
|
|
182
|
+
/**
|
183
|
+
* Generated bundle index. Do not edit.
|
184
|
+
*/
|
185
|
+
|
150
186
|
export { tuiArrayRemove, tuiArrayShallowEquals, tuiArrayToggle, tuiCleanObject, tuiCreateOptions, tuiCreateToken, tuiCreateTokenFromFactory, tuiDefaultSort, tuiDistanceBetweenTouches, tuiEaseInOutQuad, tuiFlatLength, tuiGetOriginalArrayFromQueryList, tuiGetSwipeDirection, tuiIsFalsy, tuiIsNumber, tuiIsObject, tuiIsPresent, tuiIsString, tuiIsValidUrl, tuiMarkControlAsTouchedAndValidate, tuiNullableSame, tuiObjectFromEntries, tuiProvideOptions, tuiUniqBy };
|
151
187
|
//# sourceMappingURL=taiga-ui-cdk-utils-miscellaneous.js.map
|