@taiga-ui/cdk 2.45.0 → 2.48.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/abstract/controller.d.ts +6 -0
- package/abstract/taiga-ui-cdk-abstract.metadata.json +1 -1
- package/bundles/taiga-ui-cdk-abstract.umd.js +63 -21
- package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-abstract.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-abstract.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-alert-host.umd.js +50 -20
- package/bundles/taiga-ui-cdk-components-alert-host.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-alert-host.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-components-alert-host.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-dialog-host.umd.js +54 -24
- package/bundles/taiga-ui-cdk-components-dialog-host.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-components-dialog-host.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js +50 -20
- package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-portal-host.umd.js +51 -21
- package/bundles/taiga-ui-cdk-components-portal-host.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-date-time.umd.js +54 -29
- package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-date-time.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-date-time.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-decorators.umd.js +50 -20
- package/bundles/taiga-ui-cdk-decorators.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-decorators.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-decorators.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-active-zone.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-active-zone.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-active-zone.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-active-zone.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js +265 -92
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-autofilled.umd.js +91 -42
- package/bundles/taiga-ui-cdk-directives-autofilled.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-autofilled.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-autofilled.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-checked.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-checked.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-checked.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-checked.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-copy-processor.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-copy-processor.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-copy-processor.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-drag.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-drag.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-drag.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-drag.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-droppable.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-droppable.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-droppable.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-droppable.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-element.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-element.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-element.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-element.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-focus-trap.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focus-trap.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-focus-trap.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focus-visible.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-focus-visible.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focus-visible.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-focus-visible.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focusable.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-focusable.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focusable.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-focusable.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focused.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-focused.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-focused.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-focused.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-for-async.umd.js +324 -0
- package/bundles/taiga-ui-cdk-directives-for-async.umd.js.map +1 -0
- package/bundles/taiga-ui-cdk-directives-for-async.umd.min.js +2 -0
- package/bundles/taiga-ui-cdk-directives-for-async.umd.min.js.map +1 -0
- package/bundles/taiga-ui-cdk-directives-for.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-for.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-for.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-for.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-high-dpi.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-high-dpi.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-high-dpi.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-high-dpi.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-hovered.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-hovered.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-hovered.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-hovered.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-input-mode.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-input-mode.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-input-mode.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-input-mode.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-item.umd.js +51 -21
- package/bundles/taiga-ui-cdk-directives-item.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-item.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-item.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-let.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-let.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-let.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-let.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-media.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-media.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-media.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-media.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-obscured.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-obscured.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-obscured.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-obscured.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-overscroll.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-overscroll.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-overscroll.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-overscroll.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-pan.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-pan.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-pan.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-pan.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-portal.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-portal.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-portal.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-portal.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-pressed.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-pressed.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-pressed.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-pressed.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-prevent-default.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-prevent-default.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-prevent-default.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-prevent-default.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-repeat-times.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-repeat-times.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-repeat-times.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-repeat-times.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-resize.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-resize.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-resize.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-resize.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-swipe.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-swipe.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-swipe.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-swipe.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-validator.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-validator.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-validator.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-validator.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-zoom.umd.js +50 -20
- package/bundles/taiga-ui-cdk-directives-zoom.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-directives-zoom.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives.umd.js +12 -4
- package/bundles/taiga-ui-cdk-directives.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-enums.umd.js +12 -0
- package/bundles/taiga-ui-cdk-enums.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-enums.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-enums.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-exceptions.umd.js +50 -20
- package/bundles/taiga-ui-cdk-exceptions.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-exceptions.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-exceptions.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-observables.umd.js +1 -1
- package/bundles/taiga-ui-cdk-observables.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-observables.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes-filter.umd.js +50 -20
- package/bundles/taiga-ui-cdk-pipes-filter.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes-filter.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-pipes-filter.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes-mapper.umd.js +50 -20
- package/bundles/taiga-ui-cdk-pipes-mapper.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-pipes-mapper.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-pipes-mapper.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-services.umd.js +50 -20
- package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-services.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-tokens.umd.js +54 -26
- package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-tokens.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-tokens.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-browser.umd.js +2 -2
- package/bundles/taiga-ui-cdk-utils-browser.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-browser.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-utils-browser.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-focus.umd.js +3 -1
- package/bundles/taiga-ui-cdk-utils-focus.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-focus.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-utils-focus.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-os.umd.js +39 -0
- package/bundles/taiga-ui-cdk-utils-os.umd.js.map +1 -0
- package/bundles/taiga-ui-cdk-utils-os.umd.min.js +2 -0
- package/bundles/taiga-ui-cdk-utils-os.umd.min.js.map +1 -0
- package/bundles/taiga-ui-cdk-utils-svg.umd.js +50 -20
- package/bundles/taiga-ui-cdk-utils-svg.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-svg.umd.min.js +1 -15
- package/bundles/taiga-ui-cdk-utils-svg.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils.umd.js +12 -4
- package/bundles/taiga-ui-cdk-utils.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils.umd.min.js +1 -1
- package/components/dialog-host/taiga-ui-cdk-components-dialog-host.metadata.json +1 -1
- package/components/portal-host/portal.service.d.ts +1 -1
- package/date-time/date-fillers.d.ts +0 -2
- package/date-time/day-range.d.ts +1 -2
- package/date-time/day.d.ts +0 -1
- package/date-time/month-range.d.ts +0 -1
- package/date-time/month.d.ts +0 -1
- package/date-time/taiga-ui-cdk-date-time.metadata.json +1 -1
- package/directives/auto-focus/autofocus.directive.d.ts +4 -13
- package/directives/auto-focus/autofocus.options.d.ts +13 -0
- package/directives/auto-focus/handlers/abstract.handler.d.ts +11 -0
- package/directives/auto-focus/handlers/default.handler.d.ts +9 -0
- package/directives/auto-focus/handlers/ios.handler.d.ts +35 -0
- package/directives/auto-focus/index.d.ts +4 -0
- package/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.metadata.json +1 -1
- package/directives/autofilled/autofilled-style.component.d.ts +2 -0
- package/directives/autofilled/autofilled.directive.d.ts +5 -4
- package/directives/autofilled/index.d.ts +1 -0
- package/directives/autofilled/taiga-ui-cdk-directives-autofilled.metadata.json +1 -1
- package/directives/for-async/for-async.directive.d.ts +13 -0
- package/directives/for-async/for-async.module.d.ts +5 -0
- package/directives/for-async/index.d.ts +2 -0
- package/directives/for-async/package.json +13 -0
- package/directives/for-async/taiga-ui-cdk-directives-for-async.d.ts +4 -0
- package/directives/for-async/taiga-ui-cdk-directives-for-async.metadata.json +1 -0
- package/directives/index.d.ts +1 -0
- package/directives/item/item.directive.d.ts +1 -1
- package/directives/taiga-ui-cdk-directives.metadata.json +1 -1
- package/enums/autocomplete.d.ts +10 -0
- package/enums/taiga-ui-cdk-enums.metadata.json +1 -1
- package/esm2015/abstract/controller.js +7 -1
- package/esm2015/abstract/interactive.js +2 -2
- package/esm2015/components/dialog-host/dialog-host.component.js +5 -5
- package/esm2015/components/portal-host/portal.service.js +2 -2
- package/esm2015/date-time/date-fillers.js +1 -3
- package/esm2015/date-time/day-range.js +2 -2
- package/esm2015/date-time/day.js +2 -3
- package/esm2015/date-time/month-range.js +1 -2
- package/esm2015/date-time/month.js +2 -3
- package/esm2015/date-time/year.js +2 -2
- package/esm2015/directives/auto-focus/autofocus.directive.js +11 -87
- package/esm2015/directives/auto-focus/autofocus.options.js +28 -0
- package/esm2015/directives/auto-focus/handlers/abstract.handler.js +25 -0
- package/esm2015/directives/auto-focus/handlers/default.handler.js +39 -0
- package/esm2015/directives/auto-focus/handlers/ios.handler.js +121 -0
- package/esm2015/directives/auto-focus/index.js +5 -1
- package/esm2015/directives/autofilled/autofilled-style.component.js +13 -0
- package/esm2015/directives/autofilled/autofilled.directive.js +23 -37
- package/esm2015/directives/autofilled/autofilled.module.js +4 -2
- package/esm2015/directives/autofilled/index.js +2 -1
- package/esm2015/directives/for-async/for-async.directive.js +48 -0
- package/esm2015/directives/for-async/for-async.module.js +16 -0
- package/esm2015/directives/for-async/index.js +3 -0
- package/esm2015/directives/for-async/taiga-ui-cdk-directives-for-async.js +5 -0
- package/esm2015/directives/index.js +2 -1
- package/esm2015/directives/item/item.directive.js +2 -2
- package/esm2015/enums/autocomplete.js +12 -1
- package/esm2015/observables/replay-control-value-changes.js +2 -2
- package/esm2015/tokens/index.js +2 -1
- package/esm2015/tokens/is-apple.js +5 -0
- package/esm2015/tokens/is-ios.js +4 -6
- package/esm2015/utils/browser/index.js +2 -2
- package/esm2015/utils/browser/is-edge-older-than.js +2 -2
- package/esm2015/utils/browser/{is-IE.js → is-ie.js} +1 -1
- package/esm2015/utils/browser/is-safari.js +2 -2
- package/esm2015/utils/focus/get-native-focused.js +2 -2
- package/esm2015/utils/focus/set-native-focused.js +3 -1
- package/esm2015/utils/index.js +2 -1
- package/esm2015/utils/os/index.js +4 -0
- package/esm2015/utils/os/is-apple-platform.js +14 -0
- package/esm2015/utils/os/is-apple.js +6 -0
- package/esm2015/utils/os/is-ios.js +7 -0
- package/esm2015/utils/os/taiga-ui-cdk-utils-os.js +5 -0
- package/esm5/abstract/controller.js +14 -1
- package/esm5/abstract/interactive.js +2 -2
- package/esm5/components/dialog-host/dialog-host.component.js +5 -5
- package/esm5/components/portal-host/portal.service.js +2 -2
- package/esm5/date-time/date-fillers.js +1 -3
- package/esm5/date-time/day-range.js +2 -2
- package/esm5/date-time/day.js +2 -3
- package/esm5/date-time/month-range.js +1 -2
- package/esm5/date-time/month.js +2 -3
- package/esm5/date-time/year.js +2 -2
- package/esm5/directives/auto-focus/autofocus.directive.js +11 -97
- package/esm5/directives/auto-focus/autofocus.options.js +28 -0
- package/esm5/directives/auto-focus/handlers/abstract.handler.js +34 -0
- package/esm5/directives/auto-focus/handlers/default.handler.js +43 -0
- package/esm5/directives/auto-focus/handlers/ios.handler.js +137 -0
- package/esm5/directives/auto-focus/index.js +5 -1
- package/esm5/directives/autofilled/autofilled-style.component.js +16 -0
- package/esm5/directives/autofilled/autofilled.directive.js +24 -21
- package/esm5/directives/autofilled/autofilled.module.js +4 -2
- package/esm5/directives/autofilled/index.js +2 -1
- package/esm5/directives/for-async/for-async.directive.js +52 -0
- package/esm5/directives/for-async/for-async.module.js +19 -0
- package/esm5/directives/for-async/index.js +3 -0
- package/esm5/directives/for-async/taiga-ui-cdk-directives-for-async.js +5 -0
- package/esm5/directives/index.js +2 -1
- package/esm5/directives/item/item.directive.js +2 -2
- package/esm5/enums/autocomplete.js +12 -1
- package/esm5/observables/replay-control-value-changes.js +2 -2
- package/esm5/tokens/index.js +2 -1
- package/esm5/tokens/is-apple.js +5 -0
- package/esm5/tokens/is-ios.js +4 -8
- package/esm5/utils/browser/index.js +2 -2
- package/esm5/utils/browser/is-edge-older-than.js +2 -2
- package/esm5/utils/browser/{is-IE.js → is-ie.js} +1 -1
- package/esm5/utils/browser/is-safari.js +2 -2
- package/esm5/utils/focus/get-native-focused.js +2 -2
- package/esm5/utils/focus/set-native-focused.js +3 -1
- package/esm5/utils/index.js +2 -1
- package/esm5/utils/os/index.js +4 -0
- package/esm5/utils/os/is-apple-platform.js +14 -0
- package/esm5/utils/os/is-apple.js +6 -0
- package/esm5/utils/os/is-ios.js +7 -0
- package/esm5/utils/os/taiga-ui-cdk-utils-os.js +5 -0
- package/fesm2015/taiga-ui-cdk-abstract.js +8 -2
- package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-components-dialog-host.js +4 -4
- package/fesm2015/taiga-ui-cdk-components-dialog-host.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-components-portal-host.js +1 -1
- package/fesm2015/taiga-ui-cdk-components-portal-host.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-date-time.js +4 -9
- package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-auto-focus.js +187 -69
- package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-autofilled.js +33 -37
- package/fesm2015/taiga-ui-cdk-directives-autofilled.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-for-async.js +66 -0
- package/fesm2015/taiga-ui-cdk-directives-for-async.js.map +1 -0
- package/fesm2015/taiga-ui-cdk-directives-item.js +1 -1
- package/fesm2015/taiga-ui-cdk-directives-item.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives.js +1 -0
- package/fesm2015/taiga-ui-cdk-directives.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-enums.js +11 -0
- package/fesm2015/taiga-ui-cdk-enums.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-observables.js +1 -1
- package/fesm2015/taiga-ui-cdk-observables.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-tokens.js +6 -7
- package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-browser.js +2 -2
- package/fesm2015/taiga-ui-cdk-utils-browser.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-focus.js +3 -1
- package/fesm2015/taiga-ui-cdk-utils-focus.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-os.js +31 -0
- package/fesm2015/taiga-ui-cdk-utils-os.js.map +1 -0
- package/fesm2015/taiga-ui-cdk-utils.js +1 -0
- package/fesm2015/taiga-ui-cdk-utils.js.map +1 -1
- package/fesm5/taiga-ui-cdk-abstract.js +13 -2
- package/fesm5/taiga-ui-cdk-abstract.js.map +1 -1
- package/fesm5/taiga-ui-cdk-components-dialog-host.js +4 -4
- package/fesm5/taiga-ui-cdk-components-dialog-host.js.map +1 -1
- package/fesm5/taiga-ui-cdk-components-portal-host.js +1 -1
- package/fesm5/taiga-ui-cdk-components-portal-host.js.map +1 -1
- package/fesm5/taiga-ui-cdk-date-time.js +4 -9
- package/fesm5/taiga-ui-cdk-date-time.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-auto-focus.js +211 -74
- package/fesm5/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-autofilled.js +38 -22
- package/fesm5/taiga-ui-cdk-directives-autofilled.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-for-async.js +73 -0
- package/fesm5/taiga-ui-cdk-directives-for-async.js.map +1 -0
- package/fesm5/taiga-ui-cdk-directives-item.js +1 -1
- package/fesm5/taiga-ui-cdk-directives-item.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives.js +1 -0
- package/fesm5/taiga-ui-cdk-directives.js.map +1 -1
- package/fesm5/taiga-ui-cdk-enums.js +11 -0
- package/fesm5/taiga-ui-cdk-enums.js.map +1 -1
- package/fesm5/taiga-ui-cdk-observables.js +1 -1
- package/fesm5/taiga-ui-cdk-observables.js.map +1 -1
- package/fesm5/taiga-ui-cdk-tokens.js +6 -9
- package/fesm5/taiga-ui-cdk-tokens.js.map +1 -1
- package/fesm5/taiga-ui-cdk-utils-browser.js +2 -2
- package/fesm5/taiga-ui-cdk-utils-browser.js.map +1 -1
- package/fesm5/taiga-ui-cdk-utils-focus.js +3 -1
- package/fesm5/taiga-ui-cdk-utils-focus.js.map +1 -1
- package/fesm5/taiga-ui-cdk-utils-os.js +31 -0
- package/fesm5/taiga-ui-cdk-utils-os.js.map +1 -0
- package/fesm5/taiga-ui-cdk-utils.js +1 -0
- package/fesm5/taiga-ui-cdk-utils.js.map +1 -1
- package/observables/replay-control-value-changes.d.ts +1 -1
- package/package.json +1 -1
- package/schematics/ng-add/constants/modules.d.ts +1 -1
- package/schematics/ng-add/constants/modules.js +2 -2
- package/schematics/ng-add/schema.d.ts +1 -1
- package/schematics/ng-add/schema.json +3 -3
- package/schematics/ng-add/steps/add-taiga-modules.js +1 -1
- package/schematics/ng-update/constants/consts.d.ts +7 -7
- package/schematics/ng-update/constants/consts.js +28 -0
- package/schematics/ng-update/constants/enums.d.ts +3 -3
- package/schematics/ng-update/constants/enums.js +22 -0
- package/schematics/ng-update/constants/services.d.ts +8 -0
- package/schematics/ng-update/constants/services.js +43 -0
- package/schematics/ng-update/constants/types.d.ts +4 -3
- package/schematics/ng-update/constants/types.js +55 -0
- package/schematics/ng-update/constants/warnings.d.ts +6 -0
- package/schematics/ng-update/constants/warnings.js +30 -0
- package/schematics/ng-update/index.js +4 -0
- package/schematics/ng-update/steps/rename-types.js +27 -11
- package/schematics/ng-update/steps/replace-const.js +2 -2
- package/schematics/ng-update/steps/replace-enums.js +2 -2
- package/schematics/ng-update/steps/replace-services.d.ts +1 -0
- package/schematics/ng-update/steps/replace-services.js +51 -0
- package/schematics/ng-update/steps/show-warnings.d.ts +2 -0
- package/schematics/ng-update/steps/show-warnings.js +35 -0
- package/schematics/utils/{remove-import.d.ts → import-manipulations.d.ts} +1 -0
- package/schematics/utils/import-manipulations.js +19 -0
- package/tokens/index.d.ts +1 -0
- package/tokens/is-apple.d.ts +2 -0
- package/tokens/taiga-ui-cdk-tokens.metadata.json +1 -1
- package/utils/browser/index.d.ts +1 -1
- package/utils/browser/{is-IE.d.ts → is-ie.d.ts} +0 -0
- package/utils/browser/taiga-ui-cdk-utils-browser.metadata.json +1 -1
- package/utils/focus/set-native-focused.d.ts +2 -0
- package/utils/index.d.ts +1 -0
- package/utils/os/index.d.ts +3 -0
- package/utils/os/is-apple-platform.d.ts +11 -0
- package/utils/os/is-apple.d.ts +1 -0
- package/utils/os/is-ios.d.ts +1 -0
- package/utils/os/package.json +13 -0
- package/utils/os/taiga-ui-cdk-utils-os.d.ts +4 -0
- package/utils/os/taiga-ui-cdk-utils-os.metadata.json +1 -0
- package/utils/taiga-ui-cdk-utils.metadata.json +1 -1
- package/schematics/utils/remove-import.js +0 -11
|
@@ -1,43 +1,18 @@
|
|
|
1
|
-
import { __decorate, __param } from 'tslib';
|
|
2
|
-
import { Optional, Self, Inject, NgZone,
|
|
3
|
-
import { ANIMATION_FRAME } from '@ng-web-apis/common';
|
|
4
|
-
import { POLLING_TIME } from '@taiga-ui/cdk/constants';
|
|
1
|
+
import { __decorate, __extends, __param, __values } from 'tslib';
|
|
2
|
+
import { ElementRef, Directive, Optional, Self, Inject, Renderer2, NgZone, InjectionToken, inject, Input, NgModule } from '@angular/core';
|
|
3
|
+
import { ANIMATION_FRAME, WINDOW } from '@ng-web-apis/common';
|
|
5
4
|
import { TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_IOS } from '@taiga-ui/cdk/tokens';
|
|
6
|
-
import {
|
|
5
|
+
import { POLLING_TIME } from '@taiga-ui/cdk/constants';
|
|
7
6
|
import { race, timer, Observable } from 'rxjs';
|
|
8
7
|
import { throttleTime, map, skipWhile, take } from 'rxjs/operators';
|
|
8
|
+
import { px } from '@taiga-ui/cdk/utils';
|
|
9
9
|
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
// TODO: in 3.0 change input name to tuiAutoFocus and handle empty string
|
|
13
|
-
// TODO: refactor on this whole thing in 3.0
|
|
14
|
-
var TuiAutoFocusDirective = /** @class */ (function () {
|
|
15
|
-
function TuiAutoFocusDirective(tuiFocusableComponent, isIos, animationFrame$, ngZone, elementRef, renderer) {
|
|
10
|
+
var AbstractTuiAutofocusHandler = /** @class */ (function () {
|
|
11
|
+
function AbstractTuiAutofocusHandler(tuiFocusableComponent, elementRef) {
|
|
16
12
|
this.tuiFocusableComponent = tuiFocusableComponent;
|
|
17
|
-
this.isIos = isIos;
|
|
18
|
-
this.animationFrame$ = animationFrame$;
|
|
19
|
-
this.ngZone = ngZone;
|
|
20
13
|
this.elementRef = elementRef;
|
|
21
|
-
this.renderer = renderer;
|
|
22
|
-
this.autoFocus = true;
|
|
23
14
|
}
|
|
24
|
-
|
|
25
|
-
var _this = this;
|
|
26
|
-
if (!this.autoFocus) {
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
if (this.isTextFieldElement) {
|
|
30
|
-
if (this.isIos) {
|
|
31
|
-
this.ngZone.runOutsideAngular(function () { return _this.iosWebkitAutofocus(); });
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
race(timer(TIMEOUT), this.animationFrame$.pipe(throttleTime(POLLING_TIME), map(function () { return _this.element.closest(NG_ANIMATION_SELECTOR); }), skipWhile(Boolean), take(1))).subscribe(function () { return setNativeFocused(_this.element); });
|
|
35
|
-
}
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
setNativeFocused(this.element);
|
|
39
|
-
};
|
|
40
|
-
Object.defineProperty(TuiAutoFocusDirective.prototype, "element", {
|
|
15
|
+
Object.defineProperty(AbstractTuiAutofocusHandler.prototype, "element", {
|
|
41
16
|
get: function () {
|
|
42
17
|
var _a;
|
|
43
18
|
return (((_a = this.tuiFocusableComponent) === null || _a === void 0 ? void 0 : _a.nativeFocusableElement) ||
|
|
@@ -46,55 +21,223 @@ var TuiAutoFocusDirective = /** @class */ (function () {
|
|
|
46
21
|
enumerable: true,
|
|
47
22
|
configurable: true
|
|
48
23
|
});
|
|
49
|
-
Object.defineProperty(
|
|
24
|
+
Object.defineProperty(AbstractTuiAutofocusHandler.prototype, "isTextFieldElement", {
|
|
50
25
|
get: function () {
|
|
51
26
|
return this.element.matches('input, textarea');
|
|
52
27
|
},
|
|
53
28
|
enumerable: true,
|
|
54
29
|
configurable: true
|
|
55
30
|
});
|
|
56
|
-
|
|
31
|
+
AbstractTuiAutofocusHandler.ctorParameters = function () { return [
|
|
32
|
+
{ type: undefined },
|
|
33
|
+
{ type: ElementRef }
|
|
34
|
+
]; };
|
|
35
|
+
AbstractTuiAutofocusHandler = __decorate([
|
|
36
|
+
Directive()
|
|
37
|
+
], AbstractTuiAutofocusHandler);
|
|
38
|
+
return AbstractTuiAutofocusHandler;
|
|
39
|
+
}());
|
|
40
|
+
|
|
41
|
+
var TIMEOUT = 1000;
|
|
42
|
+
var NG_ANIMATION_SELECTOR = '.ng-animating';
|
|
43
|
+
var TuiDefaultAutofocusHandler = /** @class */ (function (_super) {
|
|
44
|
+
__extends(TuiDefaultAutofocusHandler, _super);
|
|
45
|
+
function TuiDefaultAutofocusHandler(tuiFocusableComponent, elementRef, animationFrame$) {
|
|
46
|
+
var _this = _super.call(this, tuiFocusableComponent, elementRef) || this;
|
|
47
|
+
_this.animationFrame$ = animationFrame$;
|
|
48
|
+
return _this;
|
|
49
|
+
}
|
|
50
|
+
TuiDefaultAutofocusHandler.prototype.setFocus = function () {
|
|
51
|
+
var _this = this;
|
|
52
|
+
if (this.isTextFieldElement) {
|
|
53
|
+
race(timer(TIMEOUT), this.animationFrame$.pipe(throttleTime(POLLING_TIME), map(function () { return _this.element.closest(NG_ANIMATION_SELECTOR); }), skipWhile(Boolean), take(1))).subscribe(function () { return _this.element.focus(); });
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
this.element.focus();
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
TuiDefaultAutofocusHandler.ctorParameters = function () { return [
|
|
60
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [TUI_FOCUSABLE_ITEM_ACCESSOR,] }] },
|
|
61
|
+
{ type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
|
|
62
|
+
{ type: Observable, decorators: [{ type: Inject, args: [ANIMATION_FRAME,] }] }
|
|
63
|
+
]; };
|
|
64
|
+
TuiDefaultAutofocusHandler = __decorate([
|
|
65
|
+
Directive(),
|
|
66
|
+
__param(0, Optional()),
|
|
67
|
+
__param(0, Self()),
|
|
68
|
+
__param(0, Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)),
|
|
69
|
+
__param(1, Inject(ElementRef)),
|
|
70
|
+
__param(2, Inject(ANIMATION_FRAME))
|
|
71
|
+
], TuiDefaultAutofocusHandler);
|
|
72
|
+
return TuiDefaultAutofocusHandler;
|
|
73
|
+
}(AbstractTuiAutofocusHandler));
|
|
74
|
+
|
|
75
|
+
// @dynamic
|
|
76
|
+
var TuiIosAutofocusHandler = /** @class */ (function (_super) {
|
|
77
|
+
__extends(TuiIosAutofocusHandler, _super);
|
|
78
|
+
function TuiIosAutofocusHandler(tuiFocusableComponent, elementRef, renderer, ngZone, windowRef) {
|
|
79
|
+
var _this = _super.call(this, tuiFocusableComponent, elementRef) || this;
|
|
80
|
+
_this.renderer = renderer;
|
|
81
|
+
_this.ngZone = ngZone;
|
|
82
|
+
_this.windowRef = windowRef;
|
|
83
|
+
_this.patchCssStyles();
|
|
84
|
+
return _this;
|
|
85
|
+
}
|
|
86
|
+
TuiIosAutofocusHandler.prototype.setFocus = function () {
|
|
87
|
+
var _this = this;
|
|
88
|
+
if (this.isTextFieldElement) {
|
|
89
|
+
this.ngZone.runOutsideAngular(function () { return _this.iosWebkitAutofocus(); });
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
this.element.focus();
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
TuiIosAutofocusHandler.prototype.iosWebkitAutofocus = function () {
|
|
57
96
|
var _this = this;
|
|
58
97
|
var _a;
|
|
59
|
-
var fakeInput = this.
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
var blurHandler = function () { return
|
|
98
|
+
var fakeInput = this.makeFakeInput();
|
|
99
|
+
var duration = this.getDurationTimeBeforeFocus();
|
|
100
|
+
var fakeFocusTimeoutId = 0;
|
|
101
|
+
var elementFocusTimeoutId = 0;
|
|
102
|
+
var blurHandler = function () { return fakeInput.focus({ preventScroll: true }); };
|
|
64
103
|
var focusHandler = function () {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
fakeInput.removeEventListener('blur', blurHandler);
|
|
73
|
-
fakeInput.removeEventListener('focus', focusHandler);
|
|
104
|
+
clearTimeout(fakeFocusTimeoutId);
|
|
105
|
+
fakeFocusTimeoutId = _this.windowRef.setTimeout(function () {
|
|
106
|
+
clearTimeout(elementFocusTimeoutId);
|
|
107
|
+
fakeInput.removeEventListener('blur', blurHandler);
|
|
108
|
+
fakeInput.removeEventListener('focus', focusHandler);
|
|
109
|
+
elementFocusTimeoutId = _this.windowRef.setTimeout(function () {
|
|
110
|
+
_this.element.focus({ preventScroll: false });
|
|
74
111
|
fakeInput.remove();
|
|
75
|
-
});
|
|
112
|
+
}, duration);
|
|
76
113
|
});
|
|
77
114
|
};
|
|
78
|
-
/**
|
|
79
|
-
* @note: ping-pong eager strategy hack
|
|
80
|
-
* After creating an element and bringing it into DOM,
|
|
81
|
-
* the browser automatically focuses on the invisible element.
|
|
82
|
-
* And then, after focus is triggered, we try to focus on target element, and if we managed to refocus,
|
|
83
|
-
* then we try to focus again on an invisible element, so that the keyboard slowly appears.
|
|
84
|
-
* This ping pong allows the keyboard to not overlap the modal window.
|
|
85
|
-
*/
|
|
86
115
|
fakeInput.addEventListener('blur', blurHandler, { once: true });
|
|
87
116
|
fakeInput.addEventListener('focus', focusHandler);
|
|
88
|
-
(
|
|
89
|
-
|
|
117
|
+
if (this.insideDialog()) {
|
|
118
|
+
this.windowRef.document.body.appendChild(fakeInput);
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
(_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.appendChild(fakeInput);
|
|
122
|
+
}
|
|
123
|
+
fakeInput.focus({ preventScroll: true });
|
|
90
124
|
};
|
|
91
|
-
|
|
125
|
+
/**
|
|
126
|
+
* @note:
|
|
127
|
+
* emulate textfield position in layout with cursor
|
|
128
|
+
* before focus to real textfield element
|
|
129
|
+
*/
|
|
130
|
+
TuiIosAutofocusHandler.prototype.makeFakeInput = function () {
|
|
131
|
+
var fakeInput = this.renderer.createElement('input');
|
|
132
|
+
var rect = this.element.getBoundingClientRect();
|
|
133
|
+
fakeInput.style.height = px(rect.height);
|
|
134
|
+
fakeInput.style.width = px(rect.width / 2);
|
|
135
|
+
fakeInput.style.position = 'fixed';
|
|
136
|
+
fakeInput.style.opacity = '0';
|
|
137
|
+
fakeInput.style.fontSize = px(16); // disable possible auto zoom
|
|
138
|
+
fakeInput.readOnly = true; // prevent keyboard for fake input
|
|
139
|
+
// @note: emulate position cursor before focus to real textfield element
|
|
140
|
+
fakeInput.style.top = px(rect.top);
|
|
141
|
+
fakeInput.style.left = px(rect.left);
|
|
142
|
+
return fakeInput;
|
|
143
|
+
};
|
|
144
|
+
TuiIosAutofocusHandler.prototype.getDurationTimeBeforeFocus = function () {
|
|
145
|
+
return (parseFloat(this.windowRef
|
|
146
|
+
.getComputedStyle(this.element)
|
|
147
|
+
.getPropertyValue('--tui-duration')) || 0);
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* @note:
|
|
151
|
+
* unfortunately, in older versions of iOS
|
|
152
|
+
* there is a bug that the fake input cursor
|
|
153
|
+
* will move along with the dialog animation
|
|
154
|
+
* and then that dialog will be shaking
|
|
155
|
+
*/
|
|
156
|
+
TuiIosAutofocusHandler.prototype.insideDialog = function () {
|
|
157
|
+
return !!this.element.closest('tui-dialog');
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* @note:
|
|
161
|
+
* This is necessary so that the viewport isn't recalculated
|
|
162
|
+
* and then the dialogs don't shake.
|
|
163
|
+
*
|
|
164
|
+
* Also, we need to fixed height viewport,
|
|
165
|
+
* so that when focusing the dialogs don't shake
|
|
166
|
+
*/
|
|
167
|
+
TuiIosAutofocusHandler.prototype.patchCssStyles = function () {
|
|
168
|
+
var e_1, _a;
|
|
169
|
+
var documentRef = this.windowRef.document;
|
|
170
|
+
try {
|
|
171
|
+
for (var _b = __values([documentRef.documentElement, documentRef.body]), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
172
|
+
var element = _c.value;
|
|
173
|
+
element.style.setProperty('overflow', 'auto');
|
|
174
|
+
element.style.setProperty('height', '100%');
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
178
|
+
finally {
|
|
179
|
+
try {
|
|
180
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
181
|
+
}
|
|
182
|
+
finally { if (e_1) throw e_1.error; }
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
TuiIosAutofocusHandler.ctorParameters = function () { return [
|
|
92
186
|
{ type: undefined, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [TUI_FOCUSABLE_ITEM_ACCESSOR,] }] },
|
|
93
|
-
{ type: Boolean, decorators: [{ type: Inject, args: [TUI_IS_IOS,] }] },
|
|
94
|
-
{ type: Observable, decorators: [{ type: Inject, args: [ANIMATION_FRAME,] }] },
|
|
95
|
-
{ type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
|
|
96
187
|
{ type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
|
|
97
|
-
{ type: Renderer2, decorators: [{ type: Inject, args: [Renderer2,] }] }
|
|
188
|
+
{ type: Renderer2, decorators: [{ type: Inject, args: [Renderer2,] }] },
|
|
189
|
+
{ type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
|
|
190
|
+
{ type: Window, decorators: [{ type: Inject, args: [WINDOW,] }] }
|
|
191
|
+
]; };
|
|
192
|
+
TuiIosAutofocusHandler = __decorate([
|
|
193
|
+
Directive(),
|
|
194
|
+
__param(0, Optional()),
|
|
195
|
+
__param(0, Self()),
|
|
196
|
+
__param(0, Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)),
|
|
197
|
+
__param(1, Inject(ElementRef)),
|
|
198
|
+
__param(2, Inject(Renderer2)),
|
|
199
|
+
__param(3, Inject(NgZone)),
|
|
200
|
+
__param(4, Inject(WINDOW))
|
|
201
|
+
], TuiIosAutofocusHandler);
|
|
202
|
+
return TuiIosAutofocusHandler;
|
|
203
|
+
}(AbstractTuiAutofocusHandler));
|
|
204
|
+
|
|
205
|
+
var TUI_AUTOFOCUS_HANDLER = new InjectionToken('Autofocusing handler');
|
|
206
|
+
// TODO: 3.0 remove in ivy compilation
|
|
207
|
+
function tuiAutofocusHandlerFactory(tuiFocusableComponent, elementRef, animationFrame$, renderer, ngZone, windowRef) {
|
|
208
|
+
return inject(TUI_IS_IOS)
|
|
209
|
+
? new TuiIosAutofocusHandler(tuiFocusableComponent, elementRef, renderer, ngZone, windowRef)
|
|
210
|
+
: new TuiDefaultAutofocusHandler(tuiFocusableComponent, elementRef, animationFrame$);
|
|
211
|
+
}
|
|
212
|
+
var TUI_AUTOFOCUS_PROVIDERS = [
|
|
213
|
+
{
|
|
214
|
+
provide: TUI_AUTOFOCUS_HANDLER,
|
|
215
|
+
// TODO: replace to useClass in v3.0
|
|
216
|
+
useFactory: tuiAutofocusHandlerFactory,
|
|
217
|
+
deps: [
|
|
218
|
+
[new Optional(), new Self(), TUI_FOCUSABLE_ITEM_ACCESSOR],
|
|
219
|
+
ElementRef,
|
|
220
|
+
ANIMATION_FRAME,
|
|
221
|
+
Renderer2,
|
|
222
|
+
NgZone,
|
|
223
|
+
WINDOW,
|
|
224
|
+
],
|
|
225
|
+
},
|
|
226
|
+
];
|
|
227
|
+
|
|
228
|
+
// TODO: 3.0 change input name to tuiAutoFocus and handle empty string
|
|
229
|
+
var TuiAutoFocusDirective = /** @class */ (function () {
|
|
230
|
+
function TuiAutoFocusDirective(handler) {
|
|
231
|
+
this.handler = handler;
|
|
232
|
+
this.autoFocus = true;
|
|
233
|
+
}
|
|
234
|
+
TuiAutoFocusDirective.prototype.ngAfterViewInit = function () {
|
|
235
|
+
if (this.autoFocus) {
|
|
236
|
+
this.handler.setFocus();
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
TuiAutoFocusDirective.ctorParameters = function () { return [
|
|
240
|
+
{ type: undefined, decorators: [{ type: Inject, args: [TUI_AUTOFOCUS_HANDLER,] }] }
|
|
98
241
|
]; };
|
|
99
242
|
__decorate([
|
|
100
243
|
Input()
|
|
@@ -102,15 +245,9 @@ var TuiAutoFocusDirective = /** @class */ (function () {
|
|
|
102
245
|
TuiAutoFocusDirective = __decorate([
|
|
103
246
|
Directive({
|
|
104
247
|
selector: '[tuiAutoFocus]',
|
|
248
|
+
providers: TUI_AUTOFOCUS_PROVIDERS,
|
|
105
249
|
}),
|
|
106
|
-
__param(0,
|
|
107
|
-
__param(0, Self()),
|
|
108
|
-
__param(0, Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)),
|
|
109
|
-
__param(1, Inject(TUI_IS_IOS)),
|
|
110
|
-
__param(2, Inject(ANIMATION_FRAME)),
|
|
111
|
-
__param(3, Inject(NgZone)),
|
|
112
|
-
__param(4, Inject(ElementRef)),
|
|
113
|
-
__param(5, Inject(Renderer2))
|
|
250
|
+
__param(0, Inject(TUI_AUTOFOCUS_HANDLER))
|
|
114
251
|
], TuiAutoFocusDirective);
|
|
115
252
|
return TuiAutoFocusDirective;
|
|
116
253
|
}());
|
|
@@ -131,5 +268,5 @@ var TuiAutoFocusModule = /** @class */ (function () {
|
|
|
131
268
|
* Generated bundle index. Do not edit.
|
|
132
269
|
*/
|
|
133
270
|
|
|
134
|
-
export { TuiAutoFocusDirective, TuiAutoFocusModule };
|
|
271
|
+
export { AbstractTuiAutofocusHandler, TUI_AUTOFOCUS_HANDLER, TUI_AUTOFOCUS_PROVIDERS, TuiAutoFocusDirective, TuiAutoFocusModule, TuiDefaultAutofocusHandler, TuiIosAutofocusHandler, tuiAutofocusHandlerFactory };
|
|
135
272
|
//# sourceMappingURL=taiga-ui-cdk-directives-auto-focus.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives-auto-focus.js","sources":["ng://@taiga-ui/cdk/directives/auto-focus/autofocus.directive.ts","ng://@taiga-ui/cdk/directives/auto-focus/autofocus.module.ts","ng://@taiga-ui/cdk/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.ts"],"sourcesContent":["import {\n AfterViewInit,\n Directive,\n ElementRef,\n Inject,\n Input,\n NgZone,\n Optional,\n Renderer2,\n Self,\n} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk/interfaces';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {setNativeFocused} from '@taiga-ui/cdk/utils/focus';\nimport {Observable, race, timer} from 'rxjs';\nimport {map, skipWhile, take, throttleTime} from 'rxjs/operators';\n\nconst TIMEOUT = 1000;\nconst NG_ANIMATION_SELECTOR = '.ng-animating';\n\n// TODO: in 3.0 change input name to tuiAutoFocus and handle empty string\n// TODO: refactor on this whole thing in 3.0\n@Directive({\n selector: '[tuiAutoFocus]',\n})\nexport class TuiAutoFocusDirective implements AfterViewInit {\n @Input()\n autoFocus = true;\n\n constructor(\n @Optional()\n @Self()\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n private readonly tuiFocusableComponent: TuiFocusableElementAccessor | null,\n @Inject(TUI_IS_IOS) private readonly isIos: boolean,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n @Inject(NgZone)\n private readonly ngZone: NgZone,\n @Inject(ElementRef)\n private readonly elementRef: ElementRef<HTMLElement>,\n @Inject(Renderer2)\n private readonly renderer: Renderer2,\n ) {}\n\n ngAfterViewInit(): void {\n if (!this.autoFocus) {\n return;\n }\n\n if (this.isTextFieldElement) {\n if (this.isIos) {\n this.ngZone.runOutsideAngular(() => this.iosWebkitAutofocus());\n } else {\n race(\n timer(TIMEOUT),\n this.animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(() => this.element.closest(NG_ANIMATION_SELECTOR)),\n skipWhile(Boolean),\n take(1),\n ),\n ).subscribe(() => setNativeFocused(this.element));\n }\n\n return;\n }\n\n setNativeFocused(this.element);\n }\n\n private get element(): TuiNativeFocusableElement {\n return (\n this.tuiFocusableComponent?.nativeFocusableElement ||\n this.elementRef.nativeElement\n );\n }\n\n private get isTextFieldElement(): boolean {\n return this.element.matches('input, textarea');\n }\n\n private iosWebkitAutofocus(): void {\n const fakeInput: HTMLElement = this.renderer.createElement('input');\n\n fakeInput.style.position = 'absolute';\n fakeInput.style.opacity = '0';\n fakeInput.style.height = '0';\n\n const blurHandler = (): void => setNativeFocused(fakeInput);\n const focusHandler = (): void => {\n setTimeout(() => {\n setNativeFocused(this.element);\n\n /**\n * @note:\n * We can't remove the element immediately, because it breaks flow\n */\n setTimeout(() => {\n fakeInput.removeEventListener('blur', blurHandler);\n fakeInput.removeEventListener('focus', focusHandler);\n fakeInput.remove();\n });\n });\n };\n\n /**\n * @note: ping-pong eager strategy hack\n * After creating an element and bringing it into DOM,\n * the browser automatically focuses on the invisible element.\n * And then, after focus is triggered, we try to focus on target element, and if we managed to refocus,\n * then we try to focus again on an invisible element, so that the keyboard slowly appears.\n * This ping pong allows the keyboard to not overlap the modal window.\n */\n fakeInput.addEventListener('blur', blurHandler, {once: true});\n fakeInput.addEventListener('focus', focusHandler);\n\n this.element.parentElement?.appendChild(fakeInput);\n\n setNativeFocused(fakeInput);\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiAutoFocusDirective} from './autofocus.directive';\n\n@NgModule({\n declarations: [TuiAutoFocusDirective],\n exports: [TuiAutoFocusDirective],\n})\nexport class TuiAutoFocusModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-auto-focus.js","sources":["ng://@taiga-ui/cdk/directives/auto-focus/handlers/abstract.handler.ts","ng://@taiga-ui/cdk/directives/auto-focus/handlers/default.handler.ts","ng://@taiga-ui/cdk/directives/auto-focus/handlers/ios.handler.ts","ng://@taiga-ui/cdk/directives/auto-focus/autofocus.options.ts","ng://@taiga-ui/cdk/directives/auto-focus/autofocus.directive.ts","ng://@taiga-ui/cdk/directives/auto-focus/autofocus.module.ts","ng://@taiga-ui/cdk/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.ts"],"sourcesContent":["import {Directive, ElementRef} from '@angular/core';\nimport {\n TuiFocusableElementAccessor,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk/interfaces';\n\nimport {TuiAutofocusHandler} from '../autofocus.options';\n\n@Directive()\nexport abstract class AbstractTuiAutofocusHandler implements TuiAutofocusHandler {\n protected constructor(\n protected readonly tuiFocusableComponent: TuiFocusableElementAccessor | null,\n protected readonly elementRef: ElementRef<HTMLElement>,\n ) {}\n\n protected get element(): TuiNativeFocusableElement {\n return (\n this.tuiFocusableComponent?.nativeFocusableElement ||\n this.elementRef.nativeElement\n );\n }\n\n protected get isTextFieldElement(): boolean {\n return this.element.matches('input, textarea');\n }\n\n abstract setFocus(): void;\n}\n","import {Directive, ElementRef, Inject, Optional, Self} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {POLLING_TIME} from '@taiga-ui/cdk/constants';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk/tokens';\nimport {Observable, race, timer} from 'rxjs';\nimport {map, skipWhile, take, throttleTime} from 'rxjs/operators';\n\nimport {AbstractTuiAutofocusHandler} from './abstract.handler';\n\nconst TIMEOUT = 1000;\nconst NG_ANIMATION_SELECTOR = '.ng-animating';\n\n@Directive()\nexport class TuiDefaultAutofocusHandler extends AbstractTuiAutofocusHandler {\n constructor(\n @Optional()\n @Self()\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n tuiFocusableComponent: TuiFocusableElementAccessor | null,\n @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(ANIMATION_FRAME) private readonly animationFrame$: Observable<number>,\n ) {\n super(tuiFocusableComponent, elementRef);\n }\n\n setFocus(): void {\n if (this.isTextFieldElement) {\n race(\n timer(TIMEOUT),\n this.animationFrame$.pipe(\n throttleTime(POLLING_TIME),\n map(() => this.element.closest(NG_ANIMATION_SELECTOR)),\n skipWhile(Boolean),\n take(1),\n ),\n ).subscribe(() => this.element.focus());\n } else {\n this.element.focus();\n }\n }\n}\n","import {\n Directive,\n ElementRef,\n Inject,\n NgZone,\n Optional,\n Renderer2,\n Self,\n} from '@angular/core';\nimport {WINDOW} from '@ng-web-apis/common';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk/tokens';\nimport {px} from '@taiga-ui/cdk/utils';\n\nimport {AbstractTuiAutofocusHandler} from './abstract.handler';\n\n// @dynamic\n@Directive()\nexport class TuiIosAutofocusHandler extends AbstractTuiAutofocusHandler {\n constructor(\n @Optional()\n @Self()\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n tuiFocusableComponent: TuiFocusableElementAccessor | null,\n @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n @Inject(Renderer2) private readonly renderer: Renderer2,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(WINDOW) private readonly windowRef: Window,\n ) {\n super(tuiFocusableComponent, elementRef);\n this.patchCssStyles();\n }\n\n setFocus(): void {\n if (this.isTextFieldElement) {\n this.ngZone.runOutsideAngular(() => this.iosWebkitAutofocus());\n } else {\n this.element.focus();\n }\n }\n\n private iosWebkitAutofocus(): void {\n const fakeInput: HTMLInputElement = this.makeFakeInput();\n const duration = this.getDurationTimeBeforeFocus();\n let fakeFocusTimeoutId = 0;\n let elementFocusTimeoutId = 0;\n\n const blurHandler = (): void => fakeInput.focus({preventScroll: true});\n const focusHandler = (): void => {\n clearTimeout(fakeFocusTimeoutId);\n\n fakeFocusTimeoutId = this.windowRef.setTimeout(() => {\n clearTimeout(elementFocusTimeoutId);\n\n fakeInput.removeEventListener('blur', blurHandler);\n fakeInput.removeEventListener('focus', focusHandler);\n\n elementFocusTimeoutId = this.windowRef.setTimeout(() => {\n this.element.focus({preventScroll: false});\n fakeInput.remove();\n }, duration);\n });\n };\n\n fakeInput.addEventListener('blur', blurHandler, {once: true});\n fakeInput.addEventListener('focus', focusHandler);\n\n if (this.insideDialog()) {\n this.windowRef.document.body.appendChild(fakeInput);\n } else {\n this.element.parentElement?.appendChild(fakeInput);\n }\n\n fakeInput.focus({preventScroll: true});\n }\n\n /**\n * @note:\n * emulate textfield position in layout with cursor\n * before focus to real textfield element\n */\n private makeFakeInput(): HTMLInputElement {\n const fakeInput: HTMLInputElement = this.renderer.createElement('input');\n const rect: DOMRect = this.element.getBoundingClientRect();\n\n fakeInput.style.height = px(rect.height);\n fakeInput.style.width = px(rect.width / 2);\n fakeInput.style.position = 'fixed';\n fakeInput.style.opacity = '0';\n fakeInput.style.fontSize = px(16); // disable possible auto zoom\n fakeInput.readOnly = true; // prevent keyboard for fake input\n\n // @note: emulate position cursor before focus to real textfield element\n fakeInput.style.top = px(rect.top);\n fakeInput.style.left = px(rect.left);\n\n return fakeInput;\n }\n\n private getDurationTimeBeforeFocus(): number {\n return (\n parseFloat(\n this.windowRef\n .getComputedStyle(this.element)\n .getPropertyValue('--tui-duration'),\n ) || 0\n );\n }\n\n /**\n * @note:\n * unfortunately, in older versions of iOS\n * there is a bug that the fake input cursor\n * will move along with the dialog animation\n * and then that dialog will be shaking\n */\n private insideDialog(): boolean {\n return !!this.element.closest('tui-dialog');\n }\n\n /**\n * @note:\n * This is necessary so that the viewport isn't recalculated\n * and then the dialogs don't shake.\n *\n * Also, we need to fixed height viewport,\n * so that when focusing the dialogs don't shake\n */\n private patchCssStyles(): void {\n const documentRef = this.windowRef.document;\n\n for (const element of [documentRef.documentElement, documentRef.body]) {\n element.style.setProperty('overflow', 'auto');\n element.style.setProperty('height', '100%');\n }\n }\n}\n","import {\n ElementRef,\n inject,\n InjectionToken,\n NgZone,\n Optional,\n Renderer2,\n Self,\n} from '@angular/core';\nimport {ANIMATION_FRAME, WINDOW} from '@ng-web-apis/common';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_IOS} from '@taiga-ui/cdk/tokens';\nimport {Observable} from 'rxjs';\n\nimport {TuiDefaultAutofocusHandler} from './handlers/default.handler';\nimport {TuiIosAutofocusHandler} from './handlers/ios.handler';\n\nexport interface TuiAutofocusHandler {\n setFocus(): void;\n}\n\nexport const TUI_AUTOFOCUS_HANDLER = new InjectionToken<TuiAutofocusHandler>(\n 'Autofocusing handler',\n);\n\n// TODO: 3.0 remove in ivy compilation\nexport function tuiAutofocusHandlerFactory(\n tuiFocusableComponent: TuiFocusableElementAccessor | null,\n elementRef: ElementRef<HTMLElement>,\n animationFrame$: Observable<number>,\n renderer: Renderer2,\n ngZone: NgZone,\n windowRef: Window,\n): TuiAutofocusHandler {\n return inject(TUI_IS_IOS)\n ? new TuiIosAutofocusHandler(\n tuiFocusableComponent,\n elementRef,\n renderer,\n ngZone,\n windowRef,\n )\n : new TuiDefaultAutofocusHandler(\n tuiFocusableComponent,\n elementRef,\n animationFrame$,\n );\n}\n\nexport const TUI_AUTOFOCUS_PROVIDERS = [\n {\n provide: TUI_AUTOFOCUS_HANDLER,\n // TODO: replace to useClass in v3.0\n useFactory: tuiAutofocusHandlerFactory,\n deps: [\n [new Optional(), new Self(), TUI_FOCUSABLE_ITEM_ACCESSOR],\n ElementRef,\n ANIMATION_FRAME,\n Renderer2,\n NgZone,\n WINDOW,\n ],\n },\n];\n","import {AfterViewInit, Directive, Inject, Input} from '@angular/core';\n\nimport {\n TUI_AUTOFOCUS_HANDLER,\n TUI_AUTOFOCUS_PROVIDERS,\n TuiAutofocusHandler,\n} from './autofocus.options';\n\n// TODO: 3.0 change input name to tuiAutoFocus and handle empty string\n@Directive({\n selector: '[tuiAutoFocus]',\n providers: TUI_AUTOFOCUS_PROVIDERS,\n})\nexport class TuiAutoFocusDirective implements AfterViewInit {\n @Input()\n autoFocus = true;\n\n constructor(\n @Inject(TUI_AUTOFOCUS_HANDLER) private readonly handler: TuiAutofocusHandler,\n ) {}\n\n ngAfterViewInit(): void {\n if (this.autoFocus) {\n this.handler.setFocus();\n }\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiAutoFocusDirective} from './autofocus.directive';\n\n@NgModule({\n declarations: [TuiAutoFocusDirective],\n exports: [TuiAutoFocusDirective],\n})\nexport class TuiAutoFocusModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,38 +1,53 @@
|
|
|
1
1
|
import { __decorate, __param } from 'tslib';
|
|
2
|
-
import {
|
|
3
|
-
import { typedFromEvent } from '@taiga-ui/cdk/observables';
|
|
2
|
+
import { Component, ViewEncapsulation, EventEmitter, Inject, HostBinding, Output, HostListener, Directive, NgModule } from '@angular/core';
|
|
4
3
|
import { TuiDirectiveStylesService } from '@taiga-ui/cdk/services';
|
|
5
|
-
import { map, skip } from 'rxjs/operators';
|
|
6
4
|
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
var TuiAutofilledStyleComponent = /** @class */ (function () {
|
|
6
|
+
function TuiAutofilledStyleComponent() {
|
|
7
|
+
}
|
|
8
|
+
TuiAutofilledStyleComponent = __decorate([
|
|
9
|
+
Component({
|
|
10
|
+
template: '',
|
|
11
|
+
encapsulation: ViewEncapsulation.None,
|
|
12
|
+
styles: [".tui-autofill,.tui-autofill input{transition:box-shadow 10ms}.tui-autofill input::-webkit-credit-card-auto-fill-button,.tui-autofill::-webkit-credit-card-auto-fill-button{pointer-events:none;background-color:transparent!important;-webkit-mask-image:none!important}"]
|
|
13
|
+
})
|
|
14
|
+
], TuiAutofilledStyleComponent);
|
|
15
|
+
return TuiAutofilledStyleComponent;
|
|
16
|
+
}());
|
|
17
|
+
|
|
11
18
|
var TuiAutofilledDirective = /** @class */ (function () {
|
|
12
|
-
function TuiAutofilledDirective(
|
|
13
|
-
this.
|
|
14
|
-
this.tuiAutofilledChange =
|
|
15
|
-
|
|
16
|
-
return animationName === ON;
|
|
17
|
-
}), skip(1));
|
|
18
|
-
directiveStyles.addStyle(STYLE, 'TuiAutofilledDirective');
|
|
19
|
+
function TuiAutofilledDirective(directiveStyles) {
|
|
20
|
+
this.autofilled = false;
|
|
21
|
+
this.tuiAutofilledChange = new EventEmitter();
|
|
22
|
+
directiveStyles.addComponent(TuiAutofilledStyleComponent);
|
|
19
23
|
}
|
|
24
|
+
TuiAutofilledDirective.prototype.transitionStartHandler = function (_a) {
|
|
25
|
+
var propertyName = _a.propertyName, target = _a.target;
|
|
26
|
+
var _b;
|
|
27
|
+
var matchedAutofill = propertyName.includes('box-shadow') && ((_b = target) === null || _b === void 0 ? void 0 : _b.matches('input'));
|
|
28
|
+
if (matchedAutofill) {
|
|
29
|
+
this.autofilled = !this.autofilled;
|
|
30
|
+
this.tuiAutofilledChange.emit(this.autofilled);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
20
33
|
TuiAutofilledDirective.ctorParameters = function () { return [
|
|
21
|
-
{ type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
|
|
22
34
|
{ type: TuiDirectiveStylesService, decorators: [{ type: Inject, args: [TuiDirectiveStylesService,] }] }
|
|
23
35
|
]; };
|
|
36
|
+
__decorate([
|
|
37
|
+
HostBinding('class._autofilled')
|
|
38
|
+
], TuiAutofilledDirective.prototype, "autofilled", void 0);
|
|
24
39
|
__decorate([
|
|
25
40
|
Output()
|
|
26
41
|
], TuiAutofilledDirective.prototype, "tuiAutofilledChange", void 0);
|
|
42
|
+
__decorate([
|
|
43
|
+
HostListener('transitionstart', ['$event'])
|
|
44
|
+
], TuiAutofilledDirective.prototype, "transitionStartHandler", null);
|
|
27
45
|
TuiAutofilledDirective = __decorate([
|
|
28
46
|
Directive({
|
|
29
47
|
selector: '[tuiAutofilledChange]',
|
|
30
|
-
host: {
|
|
31
|
-
class: 'tui-autofill',
|
|
32
|
-
},
|
|
48
|
+
host: { class: 'tui-autofill' },
|
|
33
49
|
}),
|
|
34
|
-
__param(0, Inject(
|
|
35
|
-
__param(1, Inject(TuiDirectiveStylesService))
|
|
50
|
+
__param(0, Inject(TuiDirectiveStylesService))
|
|
36
51
|
], TuiAutofilledDirective);
|
|
37
52
|
return TuiAutofilledDirective;
|
|
38
53
|
}());
|
|
@@ -42,8 +57,9 @@ var TuiAutofilledModule = /** @class */ (function () {
|
|
|
42
57
|
}
|
|
43
58
|
TuiAutofilledModule = __decorate([
|
|
44
59
|
NgModule({
|
|
45
|
-
declarations: [TuiAutofilledDirective],
|
|
46
60
|
exports: [TuiAutofilledDirective],
|
|
61
|
+
entryComponents: [TuiAutofilledStyleComponent],
|
|
62
|
+
declarations: [TuiAutofilledDirective, TuiAutofilledStyleComponent],
|
|
47
63
|
})
|
|
48
64
|
], TuiAutofilledModule);
|
|
49
65
|
return TuiAutofilledModule;
|
|
@@ -53,5 +69,5 @@ var TuiAutofilledModule = /** @class */ (function () {
|
|
|
53
69
|
* Generated bundle index. Do not edit.
|
|
54
70
|
*/
|
|
55
71
|
|
|
56
|
-
export { TuiAutofilledDirective, TuiAutofilledModule };
|
|
72
|
+
export { TuiAutofilledDirective, TuiAutofilledModule, TuiAutofilledStyleComponent };
|
|
57
73
|
//# sourceMappingURL=taiga-ui-cdk-directives-autofilled.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives-autofilled.js","sources":["ng://@taiga-ui/cdk/directives/autofilled/autofilled.directive.ts","ng://@taiga-ui/cdk/directives/autofilled/autofilled.module.ts","ng://@taiga-ui/cdk/directives/autofilled/taiga-ui-cdk-directives-autofilled.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-autofilled.js","sources":["ng://@taiga-ui/cdk/directives/autofilled/autofilled-style.component.ts","ng://@taiga-ui/cdk/directives/autofilled/autofilled.directive.ts","ng://@taiga-ui/cdk/directives/autofilled/autofilled.module.ts","ng://@taiga-ui/cdk/directives/autofilled/taiga-ui-cdk-directives-autofilled.ts"],"sourcesContent":["import {Component, ViewEncapsulation} from '@angular/core';\n\n@Component({\n template: '',\n styleUrls: ['./autofilled.style.less'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TuiAutofilledStyleComponent {}\n","import {\n Directive,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Output,\n} from '@angular/core';\nimport {TuiDirectiveStylesService} from '@taiga-ui/cdk/services';\n\nimport {TuiAutofilledStyleComponent} from './autofilled-style.component';\n\n@Directive({\n selector: '[tuiAutofilledChange]',\n host: {class: 'tui-autofill'},\n})\nexport class TuiAutofilledDirective {\n @HostBinding('class._autofilled')\n autofilled = false;\n\n @Output()\n readonly tuiAutofilledChange = new EventEmitter<boolean>();\n\n constructor(\n @Inject(TuiDirectiveStylesService) directiveStyles: TuiDirectiveStylesService,\n ) {\n directiveStyles.addComponent(TuiAutofilledStyleComponent);\n }\n\n @HostListener('transitionstart', ['$event'])\n transitionStartHandler({propertyName, target}: TransitionEvent): void {\n const matchedAutofill =\n propertyName.includes('box-shadow') && (target as Element)?.matches('input');\n\n if (matchedAutofill) {\n this.autofilled = !this.autofilled;\n this.tuiAutofilledChange.emit(this.autofilled);\n }\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiAutofilledDirective} from './autofilled.directive';\nimport {TuiAutofilledStyleComponent} from './autofilled-style.component';\n\n@NgModule({\n exports: [TuiAutofilledDirective],\n entryComponents: [TuiAutofilledStyleComponent],\n declarations: [TuiAutofilledDirective, TuiAutofilledStyleComponent],\n})\nexport class TuiAutofilledModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;IAOA;KAA2C;IAA9B,2BAA2B;QALvC,SAAS,CAAC;YACP,QAAQ,EAAE,EAAE;YAEZ,aAAa,EAAE,iBAAiB,CAAC,IAAI;;SACxC,CAAC;OACW,2BAA2B,CAAG;IAAD,kCAAC;CAA3C;;;ICgBI,gCACuC,eAA0C;QANjF,eAAU,GAAG,KAAK,CAAC;QAGV,wBAAmB,GAAG,IAAI,YAAY,EAAW,CAAC;QAKvD,eAAe,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAC;KAC7D;IAGD,uDAAsB,GAAtB,UAAuB,EAAuC;YAAtC,8BAAY,EAAE,kBAAM;;QACxC,IAAM,eAAe,GACjB,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAK,MAAkB,0CAAE,OAAO,CAAC,OAAO,EAAC,CAAC;QAEjF,IAAI,eAAe,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;YACnC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAClD;KACJ;;gBAduD,yBAAyB,uBAA5E,MAAM,SAAC,yBAAyB;;IANrC;QADC,WAAW,CAAC,mBAAmB,CAAC;8DACd;IAGnB;QADC,MAAM,EAAE;uEACkD;IAS3D;QADC,YAAY,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,CAAC;wEAS3C;IAtBQ,sBAAsB;QAJlC,SAAS,CAAC;YACP,QAAQ,EAAE,uBAAuB;YACjC,IAAI,EAAE,EAAC,KAAK,EAAE,cAAc,EAAC;SAChC,CAAC;QASO,WAAA,MAAM,CAAC,yBAAyB,CAAC,CAAA;OAR7B,sBAAsB,CAuBlC;IAAD,6BAAC;CAvBD;;;ICNA;KAAmC;IAAtB,mBAAmB;QAL/B,QAAQ,CAAC;YACN,OAAO,EAAE,CAAC,sBAAsB,CAAC;YACjC,eAAe,EAAE,CAAC,2BAA2B,CAAC;YAC9C,YAAY,EAAE,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;SACtE,CAAC;OACW,mBAAmB,CAAG;IAAD,0BAAC;CAAnC;;ACVA;;;;;;"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { __decorate, __param } from 'tslib';
|
|
2
|
+
import { ViewContainerRef, Inject, TemplateRef, Input, Directive, NgModule } from '@angular/core';
|
|
3
|
+
import { Subject, from, of } from 'rxjs';
|
|
4
|
+
import { concatMap, delay, takeUntil } from 'rxjs/operators';
|
|
5
|
+
|
|
6
|
+
var TuiForAsyncDirective = /** @class */ (function () {
|
|
7
|
+
function TuiForAsyncDirective(view, template) {
|
|
8
|
+
this.view = view;
|
|
9
|
+
this.template = template;
|
|
10
|
+
this.destroy$ = new Subject();
|
|
11
|
+
this.tuiForAsyncTimeout = 10;
|
|
12
|
+
}
|
|
13
|
+
TuiForAsyncDirective.prototype.ngOnChanges = function () {
|
|
14
|
+
this.clearViewForOldNodes();
|
|
15
|
+
this.createAsyncViewForNewNodes();
|
|
16
|
+
};
|
|
17
|
+
TuiForAsyncDirective.prototype.ngOnDestroy = function () {
|
|
18
|
+
this.clearViewForOldNodes();
|
|
19
|
+
this.destroy$.complete();
|
|
20
|
+
};
|
|
21
|
+
TuiForAsyncDirective.prototype.createAsyncViewForNewNodes = function () {
|
|
22
|
+
var _this = this;
|
|
23
|
+
from(this.tuiForAsyncOf || [])
|
|
24
|
+
.pipe(concatMap(function (item) { return of(item).pipe(delay(_this.tuiForAsyncTimeout)); }), takeUntil(this.destroy$))
|
|
25
|
+
.subscribe(function (item) {
|
|
26
|
+
return _this.view
|
|
27
|
+
.createEmbeddedView(_this.template, { $implicit: item })
|
|
28
|
+
.detectChanges();
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
TuiForAsyncDirective.prototype.clearViewForOldNodes = function () {
|
|
32
|
+
this.destroy$.next();
|
|
33
|
+
this.view.clear();
|
|
34
|
+
};
|
|
35
|
+
TuiForAsyncDirective.ctorParameters = function () { return [
|
|
36
|
+
{ type: ViewContainerRef, decorators: [{ type: Inject, args: [ViewContainerRef,] }] },
|
|
37
|
+
{ type: TemplateRef, decorators: [{ type: Inject, args: [TemplateRef,] }] }
|
|
38
|
+
]; };
|
|
39
|
+
__decorate([
|
|
40
|
+
Input()
|
|
41
|
+
], TuiForAsyncDirective.prototype, "tuiForAsyncOf", void 0);
|
|
42
|
+
__decorate([
|
|
43
|
+
Input()
|
|
44
|
+
], TuiForAsyncDirective.prototype, "tuiForAsyncTimeout", void 0);
|
|
45
|
+
TuiForAsyncDirective = __decorate([
|
|
46
|
+
Directive({ selector: '[tuiForAsync][tuiForAsyncOf]' }),
|
|
47
|
+
__param(0, Inject(ViewContainerRef)),
|
|
48
|
+
__param(1, Inject(TemplateRef))
|
|
49
|
+
], TuiForAsyncDirective);
|
|
50
|
+
return TuiForAsyncDirective;
|
|
51
|
+
}());
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* @experimental
|
|
55
|
+
*/
|
|
56
|
+
var TuiForAsyncModule = /** @class */ (function () {
|
|
57
|
+
function TuiForAsyncModule() {
|
|
58
|
+
}
|
|
59
|
+
TuiForAsyncModule = __decorate([
|
|
60
|
+
NgModule({
|
|
61
|
+
declarations: [TuiForAsyncDirective],
|
|
62
|
+
exports: [TuiForAsyncDirective],
|
|
63
|
+
})
|
|
64
|
+
], TuiForAsyncModule);
|
|
65
|
+
return TuiForAsyncModule;
|
|
66
|
+
}());
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Generated bundle index. Do not edit.
|
|
70
|
+
*/
|
|
71
|
+
|
|
72
|
+
export { TuiForAsyncDirective, TuiForAsyncModule };
|
|
73
|
+
//# sourceMappingURL=taiga-ui-cdk-directives-for-async.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-for-async.js","sources":["ng://@taiga-ui/cdk/directives/for-async/for-async.directive.ts","ng://@taiga-ui/cdk/directives/for-async/for-async.module.ts","ng://@taiga-ui/cdk/directives/for-async/taiga-ui-cdk-directives-for-async.ts"],"sourcesContent":["import {\n Directive,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport {from, of, Subject} from 'rxjs';\nimport {concatMap, delay, takeUntil} from 'rxjs/operators';\n\n@Directive({selector: '[tuiForAsync][tuiForAsyncOf]'})\nexport class TuiForAsyncDirective<T> implements OnChanges, OnDestroy {\n private readonly destroy$ = new Subject<void>();\n\n @Input()\n tuiForAsyncOf: readonly T[] | undefined | null;\n\n @Input()\n tuiForAsyncTimeout = 10;\n\n constructor(\n @Inject(ViewContainerRef) private readonly view: ViewContainerRef,\n @Inject(TemplateRef) private readonly template: TemplateRef<unknown>,\n ) {}\n\n ngOnChanges(): void {\n this.clearViewForOldNodes();\n this.createAsyncViewForNewNodes();\n }\n\n ngOnDestroy(): void {\n this.clearViewForOldNodes();\n this.destroy$.complete();\n }\n\n private createAsyncViewForNewNodes(): void {\n from(this.tuiForAsyncOf || [])\n .pipe(\n concatMap(item => of(item).pipe(delay(this.tuiForAsyncTimeout))),\n takeUntil(this.destroy$),\n )\n .subscribe(item =>\n this.view\n .createEmbeddedView(this.template, {$implicit: item})\n .detectChanges(),\n );\n }\n\n private clearViewForOldNodes(): void {\n this.destroy$.next();\n this.view.clear();\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiForAsyncDirective} from './for-async.directive';\n\n/**\n * @experimental\n */\n@NgModule({\n declarations: [TuiForAsyncDirective],\n exports: [TuiForAsyncDirective],\n})\nexport class TuiForAsyncModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;IAsBI,8BAC+C,IAAsB,EAC3B,QAA8B;QADzB,SAAI,GAAJ,IAAI,CAAkB;QAC3B,aAAQ,GAAR,QAAQ,CAAsB;QAVvD,aAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QAMhD,uBAAkB,GAAG,EAAE,CAAC;KAKpB;IAEJ,0CAAW,GAAX;QACI,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,0BAA0B,EAAE,CAAC;KACrC;IAED,0CAAW,GAAX;QACI,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC5B;IAEO,yDAA0B,GAAlC;QAAA,iBAWC;QAVG,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;aACzB,IAAI,CACD,SAAS,CAAC,UAAA,IAAI,IAAI,OAAA,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAI,CAAC,kBAAkB,CAAC,CAAC,GAAA,CAAC,EAChE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC3B;aACA,SAAS,CAAC,UAAA,IAAI;YACX,OAAA,KAAI,CAAC,IAAI;iBACJ,kBAAkB,CAAC,KAAI,CAAC,QAAQ,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC;iBACpD,aAAa,EAAE;SAAA,CACvB,CAAC;KACT;IAEO,mDAAoB,GAA5B;QACI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;KACrB;;gBA9BoD,gBAAgB,uBAAhE,MAAM,SAAC,gBAAgB;gBACwB,WAAW,uBAA1D,MAAM,SAAC,WAAW;;IAPvB;QADC,KAAK,EAAE;+DACuC;IAG/C;QADC,KAAK,EAAE;oEACgB;IAPf,oBAAoB;QADhC,SAAS,CAAC,EAAC,QAAQ,EAAE,8BAA8B,EAAC,CAAC;QAW7C,WAAA,MAAM,CAAC,gBAAgB,CAAC,CAAA;QACxB,WAAA,MAAM,CAAC,WAAW,CAAC,CAAA;OAXf,oBAAoB,CAyChC;IAAD,2BAAC;CAzCD;;ACTA;;;;IAOA;KAAiC;IAApB,iBAAiB;QAJ7B,QAAQ,CAAC;YACN,YAAY,EAAE,CAAC,oBAAoB,CAAC;YACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;SAClC,CAAC;OACW,iBAAiB,CAAG;IAAD,wBAAC;CAAjC;;ACXA;;;;;;"}
|
|
@@ -3,7 +3,7 @@ import { Directive, NgModule } from '@angular/core';
|
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Blank directive to query for {@link TemplateRef}
|
|
6
|
-
* TODO: Migrate everything to this directive
|
|
6
|
+
* TODO: 3.0 Migrate everything to this directive
|
|
7
7
|
*/
|
|
8
8
|
var TuiItemDirective = /** @class */ (function () {
|
|
9
9
|
function TuiItemDirective() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives-item.js","sources":["ng://@taiga-ui/cdk/directives/item/item.directive.ts","ng://@taiga-ui/cdk/directives/item/item.module.ts","ng://@taiga-ui/cdk/directives/item/taiga-ui-cdk-directives-item.ts"],"sourcesContent":["import {Directive} from '@angular/core';\n\n/**\n * Blank directive to query for {@link TemplateRef}\n * TODO: Migrate everything to this directive\n */\n@Directive({\n selector: 'ng-template[tuiItem]',\n})\nexport class TuiItemDirective {}\n","import {NgModule} from '@angular/core';\n\nimport {TuiItemDirective} from './item.directive';\n\n@NgModule({\n declarations: [TuiItemDirective],\n exports: [TuiItemDirective],\n})\nexport class TuiItemModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAEA;;;;;IAOA;KAAgC;IAAnB,gBAAgB;QAH5B,SAAS,CAAC;YACP,QAAQ,EAAE,sBAAsB;SACnC,CAAC;OACW,gBAAgB,CAAG;IAAD,uBAAC;CAAhC;;;ICDA;KAA6B;IAAhB,aAAa;QAJzB,QAAQ,CAAC;YACN,YAAY,EAAE,CAAC,gBAAgB,CAAC;YAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;SAC9B,CAAC;OACW,aAAa,CAAG;IAAD,oBAAC;CAA7B;;ACRA;;;;;;"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives-item.js","sources":["ng://@taiga-ui/cdk/directives/item/item.directive.ts","ng://@taiga-ui/cdk/directives/item/item.module.ts","ng://@taiga-ui/cdk/directives/item/taiga-ui-cdk-directives-item.ts"],"sourcesContent":["import {Directive} from '@angular/core';\n\n/**\n * Blank directive to query for {@link TemplateRef}\n * TODO: 3.0 Migrate everything to this directive\n */\n@Directive({\n selector: 'ng-template[tuiItem]',\n})\nexport class TuiItemDirective {}\n","import {NgModule} from '@angular/core';\n\nimport {TuiItemDirective} from './item.directive';\n\n@NgModule({\n declarations: [TuiItemDirective],\n exports: [TuiItemDirective],\n})\nexport class TuiItemModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAEA;;;;;IAOA;KAAgC;IAAnB,gBAAgB;QAH5B,SAAS,CAAC;YACP,QAAQ,EAAE,sBAAsB;SACnC,CAAC;OACW,gBAAgB,CAAG;IAAD,uBAAC;CAAhC;;;ICDA;KAA6B;IAAhB,aAAa;QAJzB,QAAQ,CAAC;YACN,YAAY,EAAE,CAAC,gBAAgB,CAAC;YAChC,OAAO,EAAE,CAAC,gBAAgB,CAAC;SAC9B,CAAC;OACW,aAAa,CAAG;IAAD,oBAAC;CAA7B;;ACRA;;;;;;"}
|
|
@@ -10,6 +10,7 @@ export * from '@taiga-ui/cdk/directives/focus-visible';
|
|
|
10
10
|
export * from '@taiga-ui/cdk/directives/focusable';
|
|
11
11
|
export * from '@taiga-ui/cdk/directives/focused';
|
|
12
12
|
export * from '@taiga-ui/cdk/directives/for';
|
|
13
|
+
export * from '@taiga-ui/cdk/directives/for-async';
|
|
13
14
|
export * from '@taiga-ui/cdk/directives/high-dpi';
|
|
14
15
|
export * from '@taiga-ui/cdk/directives/hovered';
|
|
15
16
|
export * from '@taiga-ui/cdk/directives/input-mode';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-directives.js","sources":["ng://@taiga-ui/cdk/directives/taiga-ui-cdk-directives.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-directives.js","sources":["ng://@taiga-ui/cdk/directives/taiga-ui-cdk-directives.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;"}
|