@taiga-ui/cdk 2.82.0 → 2.84.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.
Files changed (58) hide show
  1. package/bundles/taiga-ui-cdk-constants.umd.js +1 -1
  2. package/bundles/taiga-ui-cdk-constants.umd.js.map +1 -1
  3. package/bundles/taiga-ui-cdk-constants.umd.min.js +1 -1
  4. package/bundles/taiga-ui-cdk-constants.umd.min.js.map +1 -1
  5. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js +40 -7
  6. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
  7. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js +1 -1
  8. package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js.map +1 -1
  9. package/bundles/taiga-ui-cdk-directives-element.umd.js +17 -4
  10. package/bundles/taiga-ui-cdk-directives-element.umd.js.map +1 -1
  11. package/bundles/taiga-ui-cdk-directives-element.umd.min.js +1 -1
  12. package/bundles/taiga-ui-cdk-directives-element.umd.min.js.map +1 -1
  13. package/bundles/taiga-ui-cdk-utils-dom.umd.js +1 -1
  14. package/bundles/taiga-ui-cdk-utils-dom.umd.js.map +1 -1
  15. package/bundles/taiga-ui-cdk-utils-dom.umd.min.js +1 -1
  16. package/bundles/taiga-ui-cdk-utils-dom.umd.min.js.map +1 -1
  17. package/constants/taiga-ui-cdk-constants.metadata.json +1 -1
  18. package/constants/version.d.ts +1 -1
  19. package/constants/version.js +1 -1
  20. package/directives/auto-focus/autofocus.directive.d.ts +1 -0
  21. package/directives/auto-focus/handlers/sync.handler.d.ts +7 -0
  22. package/directives/auto-focus/index.d.ts +1 -0
  23. package/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.metadata.json +1 -1
  24. package/directives/element/element.directive.d.ts +2 -1
  25. package/directives/element/taiga-ui-cdk-directives-element.metadata.json +1 -1
  26. package/esm2015/constants/version.js +2 -2
  27. package/esm2015/directives/auto-focus/autofocus.directive.js +5 -2
  28. package/esm2015/directives/auto-focus/handlers/ios.handler.js +14 -8
  29. package/esm2015/directives/auto-focus/handlers/sync.handler.js +25 -0
  30. package/esm2015/directives/auto-focus/index.js +2 -1
  31. package/esm2015/directives/element/element.directive.js +17 -3
  32. package/esm2015/utils/dom/is-element.js +2 -2
  33. package/esm5/constants/version.js +2 -2
  34. package/esm5/directives/auto-focus/autofocus.directive.js +6 -2
  35. package/esm5/directives/auto-focus/handlers/ios.handler.js +14 -8
  36. package/esm5/directives/auto-focus/handlers/sync.handler.js +27 -0
  37. package/esm5/directives/auto-focus/index.js +2 -1
  38. package/esm5/directives/element/element.directive.js +19 -6
  39. package/esm5/utils/dom/is-element.js +2 -2
  40. package/fesm2015/taiga-ui-cdk-constants.js +1 -1
  41. package/fesm2015/taiga-ui-cdk-constants.js.map +1 -1
  42. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js +38 -9
  43. package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  44. package/fesm2015/taiga-ui-cdk-directives-element.js +16 -2
  45. package/fesm2015/taiga-ui-cdk-directives-element.js.map +1 -1
  46. package/fesm2015/taiga-ui-cdk-utils-dom.js +1 -1
  47. package/fesm2015/taiga-ui-cdk-utils-dom.js.map +1 -1
  48. package/fesm5/taiga-ui-cdk-constants.js +1 -1
  49. package/fesm5/taiga-ui-cdk-constants.js.map +1 -1
  50. package/fesm5/taiga-ui-cdk-directives-auto-focus.js +41 -9
  51. package/fesm5/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
  52. package/fesm5/taiga-ui-cdk-directives-element.js +18 -5
  53. package/fesm5/taiga-ui-cdk-directives-element.js.map +1 -1
  54. package/fesm5/taiga-ui-cdk-utils-dom.js +1 -1
  55. package/fesm5/taiga-ui-cdk-utils-dom.js.map +1 -1
  56. package/package.json +1 -1
  57. package/utils/dom/is-element.d.ts +1 -1
  58. package/utils/dom/taiga-ui-cdk-utils-dom.metadata.json +1 -1
@@ -1,8 +1,22 @@
1
1
  import { __decorate, __param } from "tslib";
2
2
  import { Directive, ElementRef, Inject } from '@angular/core';
3
- let TuiElementDirective = class TuiElementDirective extends ElementRef {
3
+ let TuiElementDirective = class TuiElementDirective {
4
4
  constructor({ nativeElement }) {
5
- super(nativeElement);
5
+ /**
6
+ * @note:
7
+ * Typically, when your constructor is invoked with new,
8
+ * an object is created, its constructor is assigned to
9
+ * the invoked constructor and the object is then assigned
10
+ * to this before executing any operations specified
11
+ * in your constructor method.
12
+ *
13
+ * ERROR TypeError: Class constructor ElementRef cannot be invoked without 'new'
14
+ * https://github.com/Tinkoff/taiga-ui/issues/3072
15
+ *
16
+ * This way we can instantiate object creation
17
+ * without additional prototype chain for possible fix bug.
18
+ */
19
+ return new ElementRef(nativeElement);
6
20
  }
7
21
  };
8
22
  TuiElementDirective.ctorParameters = () => [
@@ -16,4 +30,4 @@ TuiElementDirective = __decorate([
16
30
  __param(0, Inject(ElementRef))
17
31
  ], TuiElementDirective);
18
32
  export { TuiElementDirective };
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvZWxlbWVudC8iLCJzb3VyY2VzIjpbImVsZW1lbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFNNUQsSUFBYSxtQkFBbUIsR0FBaEMsTUFBYSxtQkFBcUQsU0FBUSxVQUFhO0lBQ25GLFlBQWdDLEVBQUMsYUFBYSxFQUFnQjtRQUMxRCxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDekIsQ0FBQztDQUNKLENBQUE7O1lBSG9ELFVBQVUsdUJBQTlDLE1BQU0sU0FBQyxVQUFVOztBQURyQixtQkFBbUI7SUFKL0IsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLGNBQWM7UUFDeEIsUUFBUSxFQUFFLFlBQVk7S0FDekIsQ0FBQztJQUVlLFdBQUEsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0dBRHRCLG1CQUFtQixDQUkvQjtTQUpZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t0dWlFbGVtZW50XScsXG4gICAgZXhwb3J0QXM6ICdlbGVtZW50UmVmJyxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRWxlbWVudERpcmVjdGl2ZTxUIGV4dGVuZHMgRWxlbWVudCA9IEhUTUxFbGVtZW50PiBleHRlbmRzIEVsZW1lbnRSZWY8VD4ge1xuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoRWxlbWVudFJlZikge25hdGl2ZUVsZW1lbnR9OiBFbGVtZW50UmVmPFQ+KSB7XG4gICAgICAgIHN1cGVyKG5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbn1cbiJdfQ==
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvZWxlbWVudC8iLCJzb3VyY2VzIjpbImVsZW1lbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFNNUQsSUFBYSxtQkFBbUIsR0FBaEMsTUFBYSxtQkFBbUI7SUFLNUIsWUFBZ0MsRUFBQyxhQUFhLEVBQWdCO1FBQzFEOzs7Ozs7Ozs7Ozs7O1dBYUc7UUFDSCxPQUFPLElBQUksVUFBVSxDQUFJLGFBQWEsQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDSixDQUFBOztZQWpCb0QsVUFBVSx1QkFBOUMsTUFBTSxTQUFDLFVBQVU7O0FBTHJCLG1CQUFtQjtJQUovQixTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsY0FBYztRQUN4QixRQUFRLEVBQUUsWUFBWTtLQUN6QixDQUFDO0lBTWUsV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7R0FMdEIsbUJBQW1CLENBc0IvQjtTQXRCWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdHVpRWxlbWVudF0nLFxuICAgIGV4cG9ydEFzOiAnZWxlbWVudFJlZicsXG59KVxuZXhwb3J0IGNsYXNzIFR1aUVsZW1lbnREaXJlY3RpdmU8VCBleHRlbmRzIEVsZW1lbnQgPSBIVE1MRWxlbWVudD5cbiAgICBpbXBsZW1lbnRzIEVsZW1lbnRSZWY8VD5cbntcbiAgICBuYXRpdmVFbGVtZW50ITogVDtcblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoRWxlbWVudFJlZikge25hdGl2ZUVsZW1lbnR9OiBFbGVtZW50UmVmPFQ+KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAbm90ZTpcbiAgICAgICAgICogVHlwaWNhbGx5LCB3aGVuIHlvdXIgY29uc3RydWN0b3IgaXMgaW52b2tlZCB3aXRoIG5ldyxcbiAgICAgICAgICogYW4gb2JqZWN0IGlzIGNyZWF0ZWQsIGl0cyBjb25zdHJ1Y3RvciBpcyBhc3NpZ25lZCB0b1xuICAgICAgICAgKiB0aGUgaW52b2tlZCBjb25zdHJ1Y3RvciBhbmQgdGhlIG9iamVjdCBpcyB0aGVuIGFzc2lnbmVkXG4gICAgICAgICAqIHRvIHRoaXMgYmVmb3JlIGV4ZWN1dGluZyBhbnkgb3BlcmF0aW9ucyBzcGVjaWZpZWRcbiAgICAgICAgICogaW4geW91ciBjb25zdHJ1Y3RvciBtZXRob2QuXG4gICAgICAgICAqXG4gICAgICAgICAqIEVSUk9SIFR5cGVFcnJvcjogQ2xhc3MgY29uc3RydWN0b3IgRWxlbWVudFJlZiBjYW5ub3QgYmUgaW52b2tlZCB3aXRob3V0ICduZXcnXG4gICAgICAgICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9UaW5rb2ZmL3RhaWdhLXVpL2lzc3Vlcy8zMDcyXG4gICAgICAgICAqXG4gICAgICAgICAqIFRoaXMgd2F5IHdlIGNhbiBpbnN0YW50aWF0ZSBvYmplY3QgY3JlYXRpb25cbiAgICAgICAgICogd2l0aG91dCBhZGRpdGlvbmFsIHByb3RvdHlwZSBjaGFpbiBmb3IgcG9zc2libGUgZml4IGJ1Zy5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiBuZXcgRWxlbWVudFJlZjxUPihuYXRpdmVFbGVtZW50KTtcbiAgICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  // TODO: Refactor to use this check everywhere
2
2
  export function tuiIsElement(node) {
3
- return node.nodeType === Node.ELEMENT_NODE;
3
+ return !!node && `nodeType` in node && node.nodeType === Node.ELEMENT_NODE;
4
4
  }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tLyIsInNvdXJjZXMiOlsiaXMtZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4Q0FBOEM7QUFDOUMsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFVO0lBQ25DLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBSZWZhY3RvciB0byB1c2UgdGhpcyBjaGVjayBldmVyeXdoZXJlXG5leHBvcnQgZnVuY3Rpb24gdHVpSXNFbGVtZW50KG5vZGU6IE5vZGUpOiBub2RlIGlzIEVsZW1lbnQge1xuICAgIHJldHVybiBub2RlLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERTtcbn1cbiJdfQ==
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tLyIsInNvdXJjZXMiOlsiaXMtZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4Q0FBOEM7QUFDOUMsTUFBTSxVQUFVLFlBQVksQ0FDeEIsSUFBMEM7SUFFMUMsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDO0FBQy9FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBSZWZhY3RvciB0byB1c2UgdGhpcyBjaGVjayBldmVyeXdoZXJlXG5leHBvcnQgZnVuY3Rpb24gdHVpSXNFbGVtZW50KFxuICAgIG5vZGU/OiBFbGVtZW50IHwgRXZlbnRUYXJnZXQgfCBOb2RlIHwgbnVsbCxcbik6IG5vZGUgaXMgRWxlbWVudCB7XG4gICAgcmV0dXJuICEhbm9kZSAmJiBgbm9kZVR5cGVgIGluIG5vZGUgJiYgbm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREU7XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
- export var TUI_VERSION = "2.82.0";
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvY29uc3RhbnRzLyIsInNvdXJjZXMiOlsidmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFRVSV9WRVJTSU9OID0gYDIuODIuMGA7XG4iXX0=
1
+ export var TUI_VERSION = "2.84.0";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvY29uc3RhbnRzLyIsInNvdXJjZXMiOlsidmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFRVSV9WRVJTSU9OID0gYDIuODQuMGA7XG4iXX0=
@@ -9,9 +9,13 @@ var TuiAutoFocusDirective = /** @class */ (function () {
9
9
  }
10
10
  TuiAutoFocusDirective.prototype.ngAfterViewInit = function () {
11
11
  if (this.autoFocus) {
12
- this.handler.setFocus();
12
+ this.focus();
13
13
  }
14
14
  };
15
+ TuiAutoFocusDirective.prototype.focus = function () {
16
+ var _this = this;
17
+ void Promise.resolve().then(function () { return _this.handler.setFocus(); });
18
+ };
15
19
  TuiAutoFocusDirective.ctorParameters = function () { return [
16
20
  { type: undefined, decorators: [{ type: Inject, args: [TUI_AUTOFOCUS_HANDLER,] }] }
17
21
  ]; };
@@ -28,4 +32,4 @@ var TuiAutoFocusDirective = /** @class */ (function () {
28
32
  return TuiAutoFocusDirective;
29
33
  }());
30
34
  export { TuiAutoFocusDirective };
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9hdXRvLWZvY3VzLyIsInNvdXJjZXMiOlsiYXV0b2ZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV0RSxPQUFPLEVBQ0gscUJBQXFCLEVBQ3JCLHVCQUF1QixHQUUxQixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLHNFQUFzRTtBQUt0RTtJQUlJLCtCQUNvRCxPQUE0QjtRQUE1QixZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUhoRixjQUFTLEdBQUcsSUFBSSxDQUFDO0lBSWQsQ0FBQztJQUVKLCtDQUFlLEdBQWY7UUFDSSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUMzQjtJQUNMLENBQUM7O2dEQVBJLE1BQU0sU0FBQyxxQkFBcUI7O0lBSGpDO1FBREMsS0FBSyxFQUFFOzREQUNTO0lBRlIscUJBQXFCO1FBSmpDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsU0FBUyxFQUFFLHVCQUF1QjtTQUNyQyxDQUFDO1FBTU8sV0FBQSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQTtPQUx6QixxQkFBcUIsQ0FhakM7SUFBRCw0QkFBQztDQUFBLEFBYkQsSUFhQztTQWJZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBJbmplY3QsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgICBUVUlfQVVUT0ZPQ1VTX0hBTkRMRVIsXG4gICAgVFVJX0FVVE9GT0NVU19QUk9WSURFUlMsXG4gICAgVHVpQXV0b2ZvY3VzSGFuZGxlcixcbn0gZnJvbSAnLi9hdXRvZm9jdXMub3B0aW9ucyc7XG5cbi8vIFRPRE86IDMuMCBjaGFuZ2UgaW5wdXQgbmFtZSB0byB0dWlBdXRvRm9jdXMgYW5kIGhhbmRsZSBlbXB0eSBzdHJpbmdcbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3R1aUF1dG9Gb2N1c10nLFxuICAgIHByb3ZpZGVyczogVFVJX0FVVE9GT0NVU19QUk9WSURFUlMsXG59KVxuZXhwb3J0IGNsYXNzIFR1aUF1dG9Gb2N1c0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIEBJbnB1dCgpXG4gICAgYXV0b0ZvY3VzID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFRVSV9BVVRPRk9DVVNfSEFORExFUikgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVyOiBUdWlBdXRvZm9jdXNIYW5kbGVyLFxuICAgICkge31cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYXV0b0ZvY3VzKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZXIuc2V0Rm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvZGlyZWN0aXZlcy9hdXRvLWZvY3VzLyIsInNvdXJjZXMiOlsiYXV0b2ZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV0RSxPQUFPLEVBQ0gscUJBQXFCLEVBQ3JCLHVCQUF1QixHQUUxQixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLHNFQUFzRTtBQUt0RTtJQUlJLCtCQUVxQixPQUE0QjtRQUE1QixZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUpqRCxjQUFTLEdBQUcsSUFBSSxDQUFDO0lBS2QsQ0FBQztJQUVKLCtDQUFlLEdBQWY7UUFDSSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2hCO0lBQ0wsQ0FBQztJQUVELHFDQUFLLEdBQUw7UUFBQSxpQkFFQztRQURHLEtBQUssT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBdkIsQ0FBdUIsQ0FBQyxDQUFDO0lBQy9ELENBQUM7O2dEQVpJLE1BQU0sU0FBQyxxQkFBcUI7O0lBSGpDO1FBREMsS0FBSyxFQUFFOzREQUNTO0lBRlIscUJBQXFCO1FBSmpDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsU0FBUyxFQUFFLHVCQUF1QjtTQUNyQyxDQUFDO1FBTU8sV0FBQSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQTtPQUx6QixxQkFBcUIsQ0FrQmpDO0lBQUQsNEJBQUM7Q0FBQSxBQWxCRCxJQWtCQztTQWxCWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgSW5qZWN0LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gICAgVFVJX0FVVE9GT0NVU19IQU5ETEVSLFxuICAgIFRVSV9BVVRPRk9DVVNfUFJPVklERVJTLFxuICAgIFR1aUF1dG9mb2N1c0hhbmRsZXIsXG59IGZyb20gJy4vYXV0b2ZvY3VzLm9wdGlvbnMnO1xuXG4vLyBUT0RPOiAzLjAgY2hhbmdlIGlucHV0IG5hbWUgdG8gdHVpQXV0b0ZvY3VzIGFuZCBoYW5kbGUgZW1wdHkgc3RyaW5nXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t0dWlBdXRvRm9jdXNdJyxcbiAgICBwcm92aWRlcnM6IFRVSV9BVVRPRk9DVVNfUFJPVklERVJTLFxufSlcbmV4cG9ydCBjbGFzcyBUdWlBdXRvRm9jdXNEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBASW5wdXQoKVxuICAgIGF1dG9Gb2N1cyA9IHRydWU7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChUVUlfQVVUT0ZPQ1VTX0hBTkRMRVIpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlcjogVHVpQXV0b2ZvY3VzSGFuZGxlcixcbiAgICApIHt9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmF1dG9Gb2N1cykge1xuICAgICAgICAgICAgdGhpcy5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHZvaWQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB0aGlzLmhhbmRsZXIuc2V0Rm9jdXMoKSk7XG4gICAgfVxufVxuIl19
@@ -2,7 +2,7 @@ import { __decorate, __extends, __param, __values } from "tslib";
2
2
  import { Directive, ElementRef, Inject, NgZone, Optional, Renderer2, Self, } from '@angular/core';
3
3
  import { WINDOW } from '@ng-web-apis/common';
4
4
  import { TUI_FOCUSABLE_ITEM_ACCESSOR } from '@taiga-ui/cdk/tokens';
5
- import { px } from '@taiga-ui/cdk/utils';
5
+ import { tuiPx } from '@taiga-ui/cdk/utils';
6
6
  import { AbstractTuiAutofocusHandler } from './abstract.handler';
7
7
  // @dynamic
8
8
  var TuiIosAutofocusHandler = /** @class */ (function (_super) {
@@ -62,15 +62,21 @@ var TuiIosAutofocusHandler = /** @class */ (function (_super) {
62
62
  TuiIosAutofocusHandler.prototype.makeFakeInput = function () {
63
63
  var fakeInput = this.renderer.createElement("input");
64
64
  var rect = this.element.getBoundingClientRect();
65
- fakeInput.style.height = px(rect.height);
66
- fakeInput.style.width = px(rect.width / 2);
65
+ fakeInput.setAttribute("maxlength", "0");
66
+ // @note: don't use opacity: 0,
67
+ // sometimes it's doesn't work for emulate real input
68
+ fakeInput.style.height = tuiPx(rect.height);
69
+ fakeInput.style.width = tuiPx(rect.width / 2);
67
70
  fakeInput.style.position = "fixed";
68
- fakeInput.style.opacity = "0";
69
- fakeInput.style.fontSize = px(16); // disable possible auto zoom
71
+ fakeInput.style.zIndex = "-99999999";
72
+ fakeInput.style.caretColor = "transparent";
73
+ fakeInput.style.color = "transparent";
74
+ fakeInput.style.cursor = "none";
75
+ fakeInput.style.fontSize = tuiPx(16); // disable possible auto zoom
70
76
  fakeInput.readOnly = true; // prevent keyboard for fake input
71
77
  // @note: emulate position cursor before focus to real textfield element
72
- fakeInput.style.top = px(rect.top);
73
- fakeInput.style.left = px(rect.left);
78
+ fakeInput.style.top = tuiPx(rect.top);
79
+ fakeInput.style.left = tuiPx(rect.left);
74
80
  return fakeInput;
75
81
  };
76
82
  TuiIosAutofocusHandler.prototype.getDurationTimeBeforeFocus = function () {
@@ -134,4 +140,4 @@ var TuiIosAutofocusHandler = /** @class */ (function (_super) {
134
140
  return TuiIosAutofocusHandler;
135
141
  }(AbstractTuiAutofocusHandler));
136
142
  export { TuiIosAutofocusHandler };
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9zLmhhbmRsZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYXV0by1mb2N1cy8iLCJzb3VyY2VzIjpbImhhbmRsZXJzL2lvcy5oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEVBQ1QsSUFBSSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUzQyxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsRUFBRSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFdkMsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFL0QsV0FBVztBQUVYO0lBQTRDLDBDQUEyQjtJQUNuRSxnQ0FJSSxxQkFBeUQsRUFDckMsVUFBbUMsRUFDbkIsUUFBbUIsRUFDdEIsTUFBYyxFQUNkLFNBQWlCO1FBUnRELFlBVUksa0JBQU0scUJBQXFCLEVBQUUsVUFBVSxDQUFDLFNBRTNDO1FBTnVDLGNBQVEsR0FBUixRQUFRLENBQVc7UUFDdEIsWUFBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGVBQVMsR0FBVCxTQUFTLENBQVE7UUFHbEQsS0FBSSxDQUFDLGNBQWMsRUFBRSxDQUFDOztJQUMxQixDQUFDO0lBRUQseUNBQVEsR0FBUjtRQUFBLGlCQU1DO1FBTEcsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLGtCQUFrQixFQUFFLEVBQXpCLENBQXlCLENBQUMsQ0FBQztTQUNsRTthQUFNO1lBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN4QjtJ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RSxDQUFBO1FBQ1YsV0FBQSxJQUFJLEVBQUUsQ0FBQTtRQUNOLFdBQUEsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUE7UUFFbkMsV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDbEIsV0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDakIsV0FBQSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDZCxXQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtPQVRWLHNCQUFzQixDQXNIbEM7SUFBRCw2QkFBQztDQUFBLEFBdEhELENBQTRDLDJCQUEyQixHQXNIdEU7U0F0SFksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgTmdab25lLFxuICAgIE9wdGlvbmFsLFxuICAgIFJlbmRlcmVyMixcbiAgICBTZWxmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7V0lORE9XfSBmcm9tICdAbmctd2ViLWFwaXMvY29tbW9uJztcbmltcG9ydCB7VHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1J9IGZyb20gJ0B0YWlnYS11aS9jZGsvdG9rZW5zJztcbmltcG9ydCB7cHh9IGZyb20gJ0B0YWlnYS11aS9jZGsvdXRpbHMnO1xuXG5pbXBvcnQge0Fic3RyYWN0VHVpQXV0b2ZvY3VzSGFuZGxlcn0gZnJvbSAnLi9hYnN0cmFjdC5oYW5kbGVyJztcblxuLy8gQGR5bmFtaWNcbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFR1aUlvc0F1dG9mb2N1c0hhbmRsZXIgZXh0ZW5kcyBBYnN0cmFjdFR1aUF1dG9mb2N1c0hhbmRsZXIge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SKVxuICAgICAgICB0dWlGb2N1c2FibGVDb21wb25lbnQ6IFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvciB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIEBJbmplY3QoUmVuZGVyZXIyKSBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBJbmplY3QoTmdab25lKSBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KFdJTkRPVykgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dSZWY6IFdpbmRvdyxcbiAgICApIHtcbiAgICAgICAgc3VwZXIodHVpRm9jdXNhYmxlQ29tcG9uZW50LCBlbGVtZW50UmVmKTtcbiAgICAgICAgdGhpcy5wYXRjaENzc1N0eWxlcygpO1xuICAgIH1cblxuICAgIHNldEZvY3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc1RleHRGaWVsZEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHRoaXMuaW9zV2Via2l0QXV0b2ZvY3VzKCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlvc1dlYmtpdEF1dG9mb2N1cygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZmFrZUlucHV0OiBIVE1MSW5wdXRFbGVtZW50ID0gdGhpcy5tYWtlRmFrZUlucHV0KCk7XG4gICAgICAgIGNvbnN0IGR1cmF0aW9uID0gdGhpcy5nZXREdXJhdGlvblRpbWVCZWZvcmVGb2N1cygpO1xuICAgICAgICBsZXQgZmFrZUZvY3VzVGltZW91dElkID0gMDtcbiAgICAgICAgbGV0IGVsZW1lbnRGb2N1c1RpbWVvdXRJZCA9IDA7XG5cbiAgICAgICAgY29uc3QgYmx1ckhhbmRsZXIgPSAoKTogdm9pZCA9PiBmYWtlSW5wdXQuZm9jdXMoe3ByZXZlbnRTY3JvbGw6IHRydWV9KTtcbiAgICAgICAgY29uc3QgZm9jdXNIYW5kbGVyID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGZha2VGb2N1c1RpbWVvdXRJZCk7XG5cbiAgICAgICAgICAgIGZha2VGb2N1c1RpbWVvdXRJZCA9IHRoaXMud2luZG93UmVmLnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dChlbGVtZW50Rm9jdXNUaW1lb3V0SWQpO1xuXG4gICAgICAgICAgICAgICAgZmFrZUlucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoYGJsdXJgLCBibHVySGFuZGxlcik7XG4gICAgICAgICAgICAgICAgZmFrZUlucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIoYGZvY3VzYCwgZm9jdXNIYW5kbGVyKTtcblxuICAgICAgICAgICAgICAgIGVsZW1lbnRGb2N1c1RpbWVvdXRJZCA9IHRoaXMud2luZG93UmVmLnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuZm9jdXMoe3ByZXZlbnRTY3JvbGw6IGZhbHNlfSk7XG4gICAgICAgICAgICAgICAgICAgIGZha2VJbnB1dC5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICB9LCBkdXJhdGlvbik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBmYWtlSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcihgYmx1cmAsIGJsdXJIYW5kbGVyLCB7b25jZTogdHJ1ZX0pO1xuICAgICAgICBmYWtlSW5wdXQuYWRkRXZlbnRMaXN0ZW5lcihgZm9jdXNgLCBmb2N1c0hhbmRsZXIpO1xuXG4gICAgICAgIGlmICh0aGlzLmluc2lkZURpYWxvZygpKSB7XG4gICAgICAgICAgICB0aGlzLndpbmRvd1JlZi5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZha2VJbnB1dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQucGFyZW50RWxlbWVudD8uYXBwZW5kQ2hpbGQoZmFrZUlucHV0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZha2VJbnB1dC5mb2N1cyh7cHJldmVudFNjcm9sbDogdHJ1ZX0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBub3RlOlxuICAgICAqIGVtdWxhdGUgdGV4dGZpZWxkIHBvc2l0aW9uIGluIGxheW91dCB3aXRoIGN1cnNvclxuICAgICAqIGJlZm9yZSBmb2N1cyB0byByZWFsIHRleHRmaWVsZCBlbGVtZW50XG4gICAgICovXG4gICAgcHJpdmF0ZSBtYWtlRmFrZUlucHV0KCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgICAgICBjb25zdCBmYWtlSW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoYGlucHV0YCk7XG4gICAgICAgIGNvbnN0IHJlY3Q6IERPTVJlY3QgPSB0aGlzLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgZmFrZUlucHV0LnN0eWxlLmhlaWdodCA9IHB4KHJlY3QuaGVpZ2h0KTtcbiAgICAgICAgZmFrZUlucHV0LnN0eWxlLndpZHRoID0gcHgocmVjdC53aWR0aCAvIDIpO1xuICAgICAgICBmYWtlSW5wdXQuc3R5bGUucG9zaXRpb24gPSBgZml4ZWRgO1xuICAgICAgICBmYWtlSW5wdXQuc3R5bGUub3BhY2l0eSA9IGAwYDtcbiAgICAgICAgZmFrZUlucHV0LnN0eWxlLmZvbnRTaXplID0gcHgoMTYpOyAvLyBkaXNhYmxlIHBvc3NpYmxlIGF1dG8gem9vbVxuICAgICAgICBmYWtlSW5wdXQucmVhZE9ubHkgPSB0cnVlOyAvLyBwcmV2ZW50IGtleWJvYXJkIGZvciBmYWtlIGlucHV0XG5cbiAgICAgICAgLy8gQG5vdGU6IGVtdWxhdGUgcG9zaXRpb24gY3Vyc29yIGJlZm9yZSBmb2N1cyB0byByZWFsIHRleHRmaWVsZCBlbGVtZW50XG4gICAgICAgIGZha2VJbnB1dC5zdHlsZS50b3AgPSBweChyZWN0LnRvcCk7XG4gICAgICAgIGZha2VJbnB1dC5zdHlsZS5sZWZ0ID0gcHgocmVjdC5sZWZ0KTtcblxuICAgICAgICByZXR1cm4gZmFrZUlucHV0O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RHVyYXRpb25UaW1lQmVmb3JlRm9jdXMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHBhcnNlRmxvYXQoXG4gICAgICAgICAgICAgICAgdGhpcy53aW5kb3dSZWZcbiAgICAgICAgICAgICAgICAgICAgLmdldENvbXB1dGVkU3R5bGUodGhpcy5lbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICAuZ2V0UHJvcGVydHlWYWx1ZShgLS10dWktZHVyYXRpb25gKSxcbiAgICAgICAgICAgICkgfHwgMFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBub3RlOlxuICAgICAqIHVuZm9ydHVuYXRlbHksIGluIG9sZGVyIHZlcnNpb25zIG9mIGlPU1xuICAgICAqIHRoZXJlIGlzIGEgYnVnIHRoYXQgdGhlIGZha2UgaW5wdXQgY3Vyc29yXG4gICAgICogd2lsbCBtb3ZlIGFsb25nIHdpdGggdGhlIGRpYWxvZyBhbmltYXRpb25cbiAgICAgKiBhbmQgdGhlbiB0aGF0IGRpYWxvZyB3aWxsIGJlIHNoYWtpbmdcbiAgICAgKi9cbiAgICBwcml2YXRlIGluc2lkZURpYWxvZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5lbGVtZW50LmNsb3Nlc3QoYHR1aS1kaWFsb2dgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAbm90ZTpcbiAgICAgKiBUaGlzIGlzIG5lY2Vzc2FyeSBzbyB0aGF0IHRoZSB2aWV3cG9ydCBpc24ndCByZWNhbGN1bGF0ZWRcbiAgICAgKiBhbmQgdGhlbiB0aGUgZGlhbG9ncyBkb24ndCBzaGFrZS5cbiAgICAgKlxuICAgICAqIEFsc28sIHdlIG5lZWQgdG8gZml4ZWQgaGVpZ2h0IHZpZXdwb3J0LFxuICAgICAqIHNvIHRoYXQgd2hlbiBmb2N1c2luZyB0aGUgZGlhbG9ncyBkb24ndCBzaGFrZVxuICAgICAqL1xuICAgIHByaXZhdGUgcGF0Y2hDc3NTdHlsZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRvY3VtZW50UmVmID0gdGhpcy53aW5kb3dSZWYuZG9jdW1lbnQ7XG5cbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIFtkb2N1bWVudFJlZi5kb2N1bWVudEVsZW1lbnQsIGRvY3VtZW50UmVmLmJvZHldKSB7XG4gICAgICAgICAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KGBvdmVyZmxvd2AsIGBhdXRvYCk7XG4gICAgICAgICAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KGBoZWlnaHRgLCBgMTAwJWApO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9zLmhhbmRsZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYXV0by1mb2N1cy8iLCJzb3VyY2VzIjpbImhhbmRsZXJzL2lvcy5oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sTUFBTSxFQUNOLFFBQVEsRUFDUixTQUFTLEVBQ1QsSUFBSSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUzQyxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFMUMsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFL0QsV0FBVztBQUVYO0lBQTRDLDBDQUEyQjtJQUNuRSxnQ0FJSSxxQkFBeUQsRUFDckMsVUFBbUMsRUFDbkIsUUFBbUIsRUFDdEIsTUFBYyxFQUNkLFNBQWlCO1FBUnRELFlBVUksa0JBQU0scUJBQXFCLEVBQUUsVUFBVSxDQUFDLFNBRTNDO1FBTnVDLGNBQVEsR0FBUixRQUFRLENBQVc7UUFDdEIsWUFBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGVBQVMsR0FBVCxTQUFTLENBQVE7UUFHbEQsS0FBSSxDQUFDLGNBQWMsRUFBRSxDQUFDOztJQUMxQixDQUFDO0lBRUQseUNBQVEsR0FBUjtRQUFBLGlCQU1DO1FBTEcsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLGtCQUFrQixFQUFFLEVBQXpCLENBQXlCLENBQUMsQ0FBQztTQUNsRTthQUFNO1lBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN4QjtJ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LFlBQ1IsSUFBSSxZQUNKLE1BQU0sU0FBQywyQkFBMkI7Z0JBRUgsVUFBVSx1QkFBekMsTUFBTSxTQUFDLFVBQVU7Z0JBQzRCLFNBQVMsdUJBQXRELE1BQU0sU0FBQyxTQUFTO2dCQUN3QixNQUFNLHVCQUE5QyxNQUFNLFNBQUMsTUFBTTtnQkFDOEIsTUFBTSx1QkFBakQsTUFBTSxTQUFDLE1BQU07O0lBVFQsc0JBQXNCO1FBRGxDLFNBQVMsRUFBRTtRQUdILFdBQUEsUUFBUSxFQUFFLENBQUE7UUFDVixXQUFBLElBQUksRUFBRSxDQUFBO1FBQ04sV0FBQSxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtRQUVuQyxXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNsQixXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUNqQixXQUFBLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNkLFdBQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO09BVFYsc0JBQXNCLENBNkhsQztJQUFELDZCQUFDO0NBQUEsQUE3SEQsQ0FBNEMsMkJBQTJCLEdBNkh0RTtTQTdIWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBOZ1pvbmUsXG4gICAgT3B0aW9uYWwsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtXSU5ET1d9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHtUdWlGb2N1c2FibGVFbGVtZW50QWNjZXNzb3J9IGZyb20gJ0B0YWlnYS11aS9jZGsvaW50ZXJmYWNlcyc7XG5pbXBvcnQge1RVSV9GT0NVU0FCTEVfSVRFTV9BQ0NFU1NPUn0gZnJvbSAnQHRhaWdhLXVpL2Nkay90b2tlbnMnO1xuaW1wb3J0IHt0dWlQeH0gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscyc7XG5cbmltcG9ydCB7QWJzdHJhY3RUdWlBdXRvZm9jdXNIYW5kbGVyfSBmcm9tICcuL2Fic3RyYWN0LmhhbmRsZXInO1xuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgVHVpSW9zQXV0b2ZvY3VzSGFuZGxlciBleHRlbmRzIEFic3RyYWN0VHVpQXV0b2ZvY3VzSGFuZGxlciB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBTZWxmKClcbiAgICAgICAgQEluamVjdChUVUlfRk9DVVNBQkxFX0lURU1fQUNDRVNTT1IpXG4gICAgICAgIHR1aUZvY3VzYWJsZUNvbXBvbmVudDogVHVpRm9jdXNhYmxlRWxlbWVudEFjY2Vzc29yIHwgbnVsbCxcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChSZW5kZXJlcjIpIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgQEluamVjdChOZ1pvbmUpIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXG4gICAgICAgIEBJbmplY3QoV0lORE9XKSBwcml2YXRlIHJlYWRvbmx5IHdpbmRvd1JlZjogV2luZG93LFxuICAgICkge1xuICAgICAgICBzdXBlcih0dWlGb2N1c2FibGVDb21wb25lbnQsIGVsZW1lbnRSZWYpO1xuICAgICAgICB0aGlzLnBhdGNoQ3NzU3R5bGVzKCk7XG4gICAgfVxuXG4gICAgc2V0Rm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzVGV4dEZpZWxkRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5pb3NXZWJraXRBdXRvZm9jdXMoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaW9zV2Via2l0QXV0b2ZvY3VzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmYWtlSW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQgPSB0aGlzLm1ha2VGYWtlSW5wdXQoKTtcbiAgICAgICAgY29uc3QgZHVyYXRpb24gPSB0aGlzLmdldER1cmF0aW9uVGltZUJlZm9yZUZvY3VzKCk7XG4gICAgICAgIGxldCBmYWtlRm9jdXNUaW1lb3V0SWQgPSAwO1xuICAgICAgICBsZXQgZWxlbWVudEZvY3VzVGltZW91dElkID0gMDtcblxuICAgICAgICBjb25zdCBibHVySGFuZGxlciA9ICgpOiB2b2lkID0+IGZha2VJbnB1dC5mb2N1cyh7cHJldmVudFNjcm9sbDogdHJ1ZX0pO1xuICAgICAgICBjb25zdCBmb2N1c0hhbmRsZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQoZmFrZUZvY3VzVGltZW91dElkKTtcblxuICAgICAgICAgICAgZmFrZUZvY3VzVGltZW91dElkID0gdGhpcy53aW5kb3dSZWYuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGVsZW1lbnRGb2N1c1RpbWVvdXRJZCk7XG5cbiAgICAgICAgICAgICAgICBmYWtlSW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihgYmx1cmAsIGJsdXJIYW5kbGVyKTtcbiAgICAgICAgICAgICAgICBmYWtlSW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihgZm9jdXNgLCBmb2N1c0hhbmRsZXIpO1xuXG4gICAgICAgICAgICAgICAgZWxlbWVudEZvY3VzVGltZW91dElkID0gdGhpcy53aW5kb3dSZWYuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5mb2N1cyh7cHJldmVudFNjcm9sbDogZmFsc2V9KTtcbiAgICAgICAgICAgICAgICAgICAgZmFrZUlucHV0LnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIH0sIGR1cmF0aW9uKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gICAgICAgIGZha2VJbnB1dC5hZGRFdmVudExpc3RlbmVyKGBibHVyYCwgYmx1ckhhbmRsZXIsIHtvbmNlOiB0cnVlfSk7XG4gICAgICAgIGZha2VJbnB1dC5hZGRFdmVudExpc3RlbmVyKGBmb2N1c2AsIGZvY3VzSGFuZGxlcik7XG5cbiAgICAgICAgaWYgKHRoaXMuaW5zaWRlRGlhbG9nKCkpIHtcbiAgICAgICAgICAgIHRoaXMud2luZG93UmVmLmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZmFrZUlucHV0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5wYXJlbnRFbGVtZW50Py5hcHBlbmRDaGlsZChmYWtlSW5wdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgZmFrZUlucHV0LmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiB0cnVlfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQG5vdGU6XG4gICAgICogZW11bGF0ZSB0ZXh0ZmllbGQgcG9zaXRpb24gaW4gbGF5b3V0IHdpdGggY3Vyc29yXG4gICAgICogYmVmb3JlIGZvY3VzIHRvIHJlYWwgdGV4dGZpZWxkIGVsZW1lbnRcbiAgICAgKi9cbiAgICBwcml2YXRlIG1ha2VGYWtlSW5wdXQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGZha2VJbnB1dDogSFRNTElucHV0RWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudChgaW5wdXRgKTtcbiAgICAgICAgY29uc3QgcmVjdDogRE9NUmVjdCA9IHRoaXMuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICBmYWtlSW5wdXQuc2V0QXR0cmlidXRlKGBtYXhsZW5ndGhgLCBgMGApO1xuXG4gICAgICAgIC8vIEBub3RlOiBkb24ndCB1c2Ugb3BhY2l0eTogMCxcbiAgICAgICAgLy8gc29tZXRpbWVzIGl0J3MgZG9lc24ndCB3b3JrIGZvciBlbXVsYXRlIHJlYWwgaW5wdXRcbiAgICAgICAgZmFrZUlucHV0LnN0eWxlLmhlaWdodCA9IHR1aVB4KHJlY3QuaGVpZ2h0KTtcbiAgICAgICAgZmFrZUlucHV0LnN0eWxlLndpZHRoID0gdHVpUHgocmVjdC53aWR0aCAvIDIpO1xuICAgICAgICBmYWtlSW5wdXQuc3R5bGUucG9zaXRpb24gPSBgZml4ZWRgO1xuICAgICAgICBmYWtlSW5wdXQuc3R5bGUuekluZGV4ID0gYC05OTk5OTk5OWA7XG4gICAgICAgIGZha2VJbnB1dC5zdHlsZS5jYXJldENvbG9yID0gYHRyYW5zcGFyZW50YDtcbiAgICAgICAgZmFrZUlucHV0LnN0eWxlLmNvbG9yID0gYHRyYW5zcGFyZW50YDtcbiAgICAgICAgZmFrZUlucHV0LnN0eWxlLmN1cnNvciA9IGBub25lYDtcbiAgICAgICAgZmFrZUlucHV0LnN0eWxlLmZvbnRTaXplID0gdHVpUHgoMTYpOyAvLyBkaXNhYmxlIHBvc3NpYmxlIGF1dG8gem9vbVxuICAgICAgICBmYWtlSW5wdXQucmVhZE9ubHkgPSB0cnVlOyAvLyBwcmV2ZW50IGtleWJvYXJkIGZvciBmYWtlIGlucHV0XG5cbiAgICAgICAgLy8gQG5vdGU6IGVtdWxhdGUgcG9zaXRpb24gY3Vyc29yIGJlZm9yZSBmb2N1cyB0byByZWFsIHRleHRmaWVsZCBlbGVtZW50XG4gICAgICAgIGZha2VJbnB1dC5zdHlsZS50b3AgPSB0dWlQeChyZWN0LnRvcCk7XG4gICAgICAgIGZha2VJbnB1dC5zdHlsZS5sZWZ0ID0gdHVpUHgocmVjdC5sZWZ0KTtcblxuICAgICAgICByZXR1cm4gZmFrZUlucHV0O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RHVyYXRpb25UaW1lQmVmb3JlRm9jdXMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHBhcnNlRmxvYXQoXG4gICAgICAgICAgICAgICAgdGhpcy53aW5kb3dSZWZcbiAgICAgICAgICAgICAgICAgICAgLmdldENvbXB1dGVkU3R5bGUodGhpcy5lbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICAuZ2V0UHJvcGVydHlWYWx1ZShgLS10dWktZHVyYXRpb25gKSxcbiAgICAgICAgICAgICkgfHwgMFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBub3RlOlxuICAgICAqIHVuZm9ydHVuYXRlbHksIGluIG9sZGVyIHZlcnNpb25zIG9mIGlPU1xuICAgICAqIHRoZXJlIGlzIGEgYnVnIHRoYXQgdGhlIGZha2UgaW5wdXQgY3Vyc29yXG4gICAgICogd2lsbCBtb3ZlIGFsb25nIHdpdGggdGhlIGRpYWxvZyBhbmltYXRpb25cbiAgICAgKiBhbmQgdGhlbiB0aGF0IGRpYWxvZyB3aWxsIGJlIHNoYWtpbmdcbiAgICAgKi9cbiAgICBwcml2YXRlIGluc2lkZURpYWxvZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5lbGVtZW50LmNsb3Nlc3QoYHR1aS1kaWFsb2dgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAbm90ZTpcbiAgICAgKiBUaGlzIGlzIG5lY2Vzc2FyeSBzbyB0aGF0IHRoZSB2aWV3cG9ydCBpc24ndCByZWNhbGN1bGF0ZWRcbiAgICAgKiBhbmQgdGhlbiB0aGUgZGlhbG9ncyBkb24ndCBzaGFrZS5cbiAgICAgKlxuICAgICAqIEFsc28sIHdlIG5lZWQgdG8gZml4ZWQgaGVpZ2h0IHZpZXdwb3J0LFxuICAgICAqIHNvIHRoYXQgd2hlbiBmb2N1c2luZyB0aGUgZGlhbG9ncyBkb24ndCBzaGFrZVxuICAgICAqL1xuICAgIHByaXZhdGUgcGF0Y2hDc3NTdHlsZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRvY3VtZW50UmVmID0gdGhpcy53aW5kb3dSZWYuZG9jdW1lbnQ7XG5cbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIFtkb2N1bWVudFJlZi5kb2N1bWVudEVsZW1lbnQsIGRvY3VtZW50UmVmLmJvZHldKSB7XG4gICAgICAgICAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KGBvdmVyZmxvd2AsIGBhdXRvYCk7XG4gICAgICAgICAgICBlbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KGBoZWlnaHRgLCBgMTAwJWApO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -0,0 +1,27 @@
1
+ import { __decorate, __extends, __param } from "tslib";
2
+ import { Directive, ElementRef, Inject, Optional, Self } from '@angular/core';
3
+ import { TUI_FOCUSABLE_ITEM_ACCESSOR } from '@taiga-ui/cdk/tokens';
4
+ import { AbstractTuiAutofocusHandler } from './abstract.handler';
5
+ var TuiSynchronousAutofocusHandler = /** @class */ (function (_super) {
6
+ __extends(TuiSynchronousAutofocusHandler, _super);
7
+ function TuiSynchronousAutofocusHandler(tuiFocusableComponent, elementRef) {
8
+ return _super.call(this, tuiFocusableComponent, elementRef) || this;
9
+ }
10
+ TuiSynchronousAutofocusHandler.prototype.setFocus = function () {
11
+ this.element.focus();
12
+ };
13
+ TuiSynchronousAutofocusHandler.ctorParameters = function () { return [
14
+ { type: undefined, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [TUI_FOCUSABLE_ITEM_ACCESSOR,] }] },
15
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] }
16
+ ]; };
17
+ TuiSynchronousAutofocusHandler = __decorate([
18
+ Directive(),
19
+ __param(0, Optional()),
20
+ __param(0, Self()),
21
+ __param(0, Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)),
22
+ __param(1, Inject(ElementRef))
23
+ ], TuiSynchronousAutofocusHandler);
24
+ return TuiSynchronousAutofocusHandler;
25
+ }(AbstractTuiAutofocusHandler));
26
+ export { TuiSynchronousAutofocusHandler };
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy5oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2Nkay9kaXJlY3RpdmVzL2F1dG8tZm9jdXMvIiwic291cmNlcyI6WyJoYW5kbGVycy9zeW5jLmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTVFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRWpFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRy9EO0lBQW9ELGtEQUEyQjtJQUMzRSx3Q0FJSSxxQkFBeUQsRUFDckMsVUFBbUM7ZUFFdkQsa0JBQU0scUJBQXFCLEVBQUUsVUFBVSxDQUFDO0lBQzVDLENBQUM7SUFFRCxpREFBUSxHQUFSO1FBQ0ksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDOztnREFYSSxRQUFRLFlBQ1IsSUFBSSxZQUNKLE1BQU0sU0FBQywyQkFBMkI7Z0JBRUgsVUFBVSx1QkFBekMsTUFBTSxTQUFDLFVBQVU7O0lBTmIsOEJBQThCO1FBRDFDLFNBQVMsRUFBRTtRQUdILFdBQUEsUUFBUSxFQUFFLENBQUE7UUFDVixXQUFBLElBQUksRUFBRSxDQUFBO1FBQ04sV0FBQSxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtRQUVuQyxXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtPQU5kLDhCQUE4QixDQWMxQztJQUFELHFDQUFDO0NBQUEsQUFkRCxDQUFvRCwyQkFBMkIsR0FjOUU7U0FkWSw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0LCBPcHRpb25hbCwgU2VsZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1R1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3Nvcn0gZnJvbSAnQHRhaWdhLXVpL2Nkay9pbnRlcmZhY2VzJztcbmltcG9ydCB7VFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5cbmltcG9ydCB7QWJzdHJhY3RUdWlBdXRvZm9jdXNIYW5kbGVyfSBmcm9tICcuL2Fic3RyYWN0LmhhbmRsZXInO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBUdWlTeW5jaHJvbm91c0F1dG9mb2N1c0hhbmRsZXIgZXh0ZW5kcyBBYnN0cmFjdFR1aUF1dG9mb2N1c0hhbmRsZXIge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBAU2VsZigpXG4gICAgICAgIEBJbmplY3QoVFVJX0ZPQ1VTQUJMRV9JVEVNX0FDQ0VTU09SKVxuICAgICAgICB0dWlGb2N1c2FibGVDb21wb25lbnQ6IFR1aUZvY3VzYWJsZUVsZW1lbnRBY2Nlc3NvciB8IG51bGwsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKHR1aUZvY3VzYWJsZUNvbXBvbmVudCwgZWxlbWVudFJlZik7XG4gICAgfVxuXG4gICAgc2V0Rm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWxlbWVudC5mb2N1cygpO1xuICAgIH1cbn1cbiJdfQ==
@@ -4,4 +4,5 @@ export * from './autofocus.options';
4
4
  export * from './handlers/abstract.handler';
5
5
  export * from './handlers/default.handler';
6
6
  export * from './handlers/ios.handler';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYXV0by1mb2N1cy8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hdXRvZm9jdXMuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0b2ZvY3VzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2F1dG9mb2N1cy5vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vaGFuZGxlcnMvYWJzdHJhY3QuaGFuZGxlcic7XG5leHBvcnQgKiBmcm9tICcuL2hhbmRsZXJzL2RlZmF1bHQuaGFuZGxlcic7XG5leHBvcnQgKiBmcm9tICcuL2hhbmRsZXJzL2lvcy5oYW5kbGVyJztcbiJdfQ==
7
+ export * from './handlers/sync.handler';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvYXV0by1mb2N1cy8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1dG9mb2N1cy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRvZm9jdXMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0b2ZvY3VzLm9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9oYW5kbGVycy9hYnN0cmFjdC5oYW5kbGVyJztcbmV4cG9ydCAqIGZyb20gJy4vaGFuZGxlcnMvZGVmYXVsdC5oYW5kbGVyJztcbmV4cG9ydCAqIGZyb20gJy4vaGFuZGxlcnMvaW9zLmhhbmRsZXInO1xuZXhwb3J0ICogZnJvbSAnLi9oYW5kbGVycy9zeW5jLmhhbmRsZXInO1xuIl19
@@ -1,10 +1,23 @@
1
- import { __decorate, __extends, __param } from "tslib";
1
+ import { __decorate, __param } from "tslib";
2
2
  import { Directive, ElementRef, Inject } from '@angular/core';
3
- var TuiElementDirective = /** @class */ (function (_super) {
4
- __extends(TuiElementDirective, _super);
3
+ var TuiElementDirective = /** @class */ (function () {
5
4
  function TuiElementDirective(_a) {
6
5
  var nativeElement = _a.nativeElement;
7
- return _super.call(this, nativeElement) || this;
6
+ /**
7
+ * @note:
8
+ * Typically, when your constructor is invoked with new,
9
+ * an object is created, its constructor is assigned to
10
+ * the invoked constructor and the object is then assigned
11
+ * to this before executing any operations specified
12
+ * in your constructor method.
13
+ *
14
+ * ERROR TypeError: Class constructor ElementRef cannot be invoked without 'new'
15
+ * https://github.com/Tinkoff/taiga-ui/issues/3072
16
+ *
17
+ * This way we can instantiate object creation
18
+ * without additional prototype chain for possible fix bug.
19
+ */
20
+ return new ElementRef(nativeElement);
8
21
  }
9
22
  TuiElementDirective.ctorParameters = function () { return [
10
23
  { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] }
@@ -17,6 +30,6 @@ var TuiElementDirective = /** @class */ (function (_super) {
17
30
  __param(0, Inject(ElementRef))
18
31
  ], TuiElementDirective);
19
32
  return TuiElementDirective;
20
- }(ElementRef));
33
+ }());
21
34
  export { TuiElementDirective };
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvZWxlbWVudC8iLCJzb3VyY2VzIjpbImVsZW1lbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFNNUQ7SUFBMEUsdUNBQWE7SUFDbkYsNkJBQWdDLEVBQThCO1lBQTdCLGdDQUFhO2VBQzFDLGtCQUFNLGFBQWEsQ0FBQztJQUN4QixDQUFDOztnQkFGZ0QsVUFBVSx1QkFBOUMsTUFBTSxTQUFDLFVBQVU7O0lBRHJCLG1CQUFtQjtRQUovQixTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsY0FBYztZQUN4QixRQUFRLEVBQUUsWUFBWTtTQUN6QixDQUFDO1FBRWUsV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7T0FEdEIsbUJBQW1CLENBSS9CO0lBQUQsMEJBQUM7Q0FBQSxBQUpELENBQTBFLFVBQVUsR0FJbkY7U0FKWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdHVpRWxlbWVudF0nLFxuICAgIGV4cG9ydEFzOiAnZWxlbWVudFJlZicsXG59KVxuZXhwb3J0IGNsYXNzIFR1aUVsZW1lbnREaXJlY3RpdmU8VCBleHRlbmRzIEVsZW1lbnQgPSBIVE1MRWxlbWVudD4gZXh0ZW5kcyBFbGVtZW50UmVmPFQ+IHtcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEVsZW1lbnRSZWYpIHtuYXRpdmVFbGVtZW50fTogRWxlbWVudFJlZjxUPikge1xuICAgICAgICBzdXBlcihuYXRpdmVFbGVtZW50KTtcbiAgICB9XG59XG4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvY2RrL2RpcmVjdGl2ZXMvZWxlbWVudC8iLCJzb3VyY2VzIjpbImVsZW1lbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFNNUQ7SUFLSSw2QkFBZ0MsRUFBOEI7WUFBN0IsZ0NBQWE7UUFDMUM7Ozs7Ozs7Ozs7Ozs7V0FhRztRQUNILE9BQU8sSUFBSSxVQUFVLENBQUksYUFBYSxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7Z0JBaEJnRCxVQUFVLHVCQUE5QyxNQUFNLFNBQUMsVUFBVTs7SUFMckIsbUJBQW1CO1FBSi9CLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFFBQVEsRUFBRSxZQUFZO1NBQ3pCLENBQUM7UUFNZSxXQUFBLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtPQUx0QixtQkFBbUIsQ0FzQi9CO0lBQUQsMEJBQUM7Q0FBQSxBQXRCRCxJQXNCQztTQXRCWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdHVpRWxlbWVudF0nLFxuICAgIGV4cG9ydEFzOiAnZWxlbWVudFJlZicsXG59KVxuZXhwb3J0IGNsYXNzIFR1aUVsZW1lbnREaXJlY3RpdmU8VCBleHRlbmRzIEVsZW1lbnQgPSBIVE1MRWxlbWVudD5cbiAgICBpbXBsZW1lbnRzIEVsZW1lbnRSZWY8VD5cbntcbiAgICBuYXRpdmVFbGVtZW50ITogVDtcblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoRWxlbWVudFJlZikge25hdGl2ZUVsZW1lbnR9OiBFbGVtZW50UmVmPFQ+KSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAbm90ZTpcbiAgICAgICAgICogVHlwaWNhbGx5LCB3aGVuIHlvdXIgY29uc3RydWN0b3IgaXMgaW52b2tlZCB3aXRoIG5ldyxcbiAgICAgICAgICogYW4gb2JqZWN0IGlzIGNyZWF0ZWQsIGl0cyBjb25zdHJ1Y3RvciBpcyBhc3NpZ25lZCB0b1xuICAgICAgICAgKiB0aGUgaW52b2tlZCBjb25zdHJ1Y3RvciBhbmQgdGhlIG9iamVjdCBpcyB0aGVuIGFzc2lnbmVkXG4gICAgICAgICAqIHRvIHRoaXMgYmVmb3JlIGV4ZWN1dGluZyBhbnkgb3BlcmF0aW9ucyBzcGVjaWZpZWRcbiAgICAgICAgICogaW4geW91ciBjb25zdHJ1Y3RvciBtZXRob2QuXG4gICAgICAgICAqXG4gICAgICAgICAqIEVSUk9SIFR5cGVFcnJvcjogQ2xhc3MgY29uc3RydWN0b3IgRWxlbWVudFJlZiBjYW5ub3QgYmUgaW52b2tlZCB3aXRob3V0ICduZXcnXG4gICAgICAgICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9UaW5rb2ZmL3RhaWdhLXVpL2lzc3Vlcy8zMDcyXG4gICAgICAgICAqXG4gICAgICAgICAqIFRoaXMgd2F5IHdlIGNhbiBpbnN0YW50aWF0ZSBvYmplY3QgY3JlYXRpb25cbiAgICAgICAgICogd2l0aG91dCBhZGRpdGlvbmFsIHByb3RvdHlwZSBjaGFpbiBmb3IgcG9zc2libGUgZml4IGJ1Zy5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiBuZXcgRWxlbWVudFJlZjxUPihuYXRpdmVFbGVtZW50KTtcbiAgICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  // TODO: Refactor to use this check everywhere
2
2
  export function tuiIsElement(node) {
3
- return node.nodeType === Node.ELEMENT_NODE;
3
+ return !!node && "nodeType" in node && node.nodeType === Node.ELEMENT_NODE;
4
4
  }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tLyIsInNvdXJjZXMiOlsiaXMtZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4Q0FBOEM7QUFDOUMsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFVO0lBQ25DLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBSZWZhY3RvciB0byB1c2UgdGhpcyBjaGVjayBldmVyeXdoZXJlXG5leHBvcnQgZnVuY3Rpb24gdHVpSXNFbGVtZW50KG5vZGU6IE5vZGUpOiBub2RlIGlzIEVsZW1lbnQge1xuICAgIHJldHVybiBub2RlLm5vZGVUeXBlID09PSBOb2RlLkVMRU1FTlRfTk9ERTtcbn1cbiJdfQ==
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvdXRpbHMvZG9tLyIsInNvdXJjZXMiOlsiaXMtZWxlbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4Q0FBOEM7QUFDOUMsTUFBTSxVQUFVLFlBQVksQ0FDeEIsSUFBMEM7SUFFMUMsT0FBTyxDQUFDLENBQUMsSUFBSSxJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDO0FBQy9FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBSZWZhY3RvciB0byB1c2UgdGhpcyBjaGVjayBldmVyeXdoZXJlXG5leHBvcnQgZnVuY3Rpb24gdHVpSXNFbGVtZW50KFxuICAgIG5vZGU/OiBFbGVtZW50IHwgRXZlbnRUYXJnZXQgfCBOb2RlIHwgbnVsbCxcbik6IG5vZGUgaXMgRWxlbWVudCB7XG4gICAgcmV0dXJuICEhbm9kZSAmJiBgbm9kZVR5cGVgIGluIG5vZGUgJiYgbm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREU7XG59XG4iXX0=
@@ -142,7 +142,7 @@ const CHAR_CURRENCY_SIGN = `\u00A4`;
142
142
  */
143
143
  const CHAR_ZERO_WIDTH_SPACE = `\u200B`;
144
144
 
145
- const TUI_VERSION = `2.82.0`;
145
+ const TUI_VERSION = `2.84.0`;
146
146
 
147
147
  /**
148
148
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-constants.js","sources":["ng://@taiga-ui/cdk/constants/always-false-handler.ts","ng://@taiga-ui/cdk/constants/always-true-handler.ts","ng://@taiga-ui/cdk/constants/browser.ts","ng://@taiga-ui/cdk/constants/empty.ts","ng://@taiga-ui/cdk/constants/stringify.ts","ng://@taiga-ui/cdk/constants/matcher.ts","ng://@taiga-ui/cdk/constants/parent-animation.ts","ng://@taiga-ui/cdk/constants/polling-time.ts","ng://@taiga-ui/cdk/constants/svg-node-filter.ts","ng://@taiga-ui/cdk/constants/unicode-chars.ts","ng://@taiga-ui/cdk/constants/version.ts","ng://@taiga-ui/cdk/constants/taiga-ui-cdk-constants.ts"],"sourcesContent":["/**\n * Handler that always returns `false`.\n */\nexport const ALWAYS_FALSE_HANDLER = (): false => false;\n","/**\n * Handler that always returns `true`.\n */\nexport const ALWAYS_TRUE_HANDLER = (): true => true;\n","export const CHROMIUM_EDGE_START_VERSION = 79;\n","import {QueryList} from '@angular/core';\nimport {ValidatorFn} from '@angular/forms';\n\n/**\n * For type safety when using @ContentChildren and @ViewChildren\n *\n * NOTE: Be careful subscribing to 'changes'\n */\nexport const EMPTY_QUERY = new QueryList<any>();\nexport const EMPTY_ARRAY: [] = [];\nexport const EMPTY_FUNCTION: (...args: any[]) => void = () => {};\n/** @deprecated use Validators.nullValidator */\nexport const EMPTY_VALIDATOR: ValidatorFn = () => null;\nexport const EMPTY_CLIENT_RECT: ClientRect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n};\n","import {TuiStringHandler} from '@taiga-ui/cdk/types';\n\n/**\n * Default method to turn arbitrary object into string\n */\nexport const TUI_DEFAULT_STRINGIFY: TuiStringHandler<unknown> = item => String(item);\n","import {TuiHandler, TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\nimport {TUI_DEFAULT_STRINGIFY} from './stringify';\n\n/**\n * Default handler for matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_DEFAULT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n): boolean => stringify(item).toLowerCase().includes(search.toLowerCase());\n\n/**\n * Default handler for strict matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_STRICT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n): boolean => stringify(item).toLowerCase() === search.toLowerCase();\n\n/**\n * Default handler to match equality of two elements\n * ATTENTION: considers two empty arrays equal\n *\n * @param item1 first element\n * @param item2 second element\n */\nexport const TUI_DEFAULT_IDENTITY_MATCHER: TuiIdentityMatcher<unknown> = (item1, item2) =>\n item1 === item2 || bothEmpty(item1, item2);\n\nfunction bothEmpty(item1: unknown, item2: unknown): boolean {\n return Array.isArray(item1) && Array.isArray(item2) && !item1.length && !item2.length;\n}\n","import {animateChild, query, style, transition, trigger} from '@angular/animations';\n\nexport const TUI_PARENT_ANIMATION = trigger(`tuiParentAnimation`, [\n transition(`* => void`, [\n style({overflow: `hidden`}),\n query(`:scope > *`, [animateChild()], {optional: true}),\n ]),\n]);\n","export const POLLING_TIME = 1000 / 15;\n","// Filtering SVGElements for TreeWalker\n// Filter must be a function in IE, other modern browsers are compliant to this format\nexport const svgNodeFilter: NodeFilter = ((node: Node) =>\n `ownerSVGElement` in node\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT) as any;\n","/**\n * {@link https://unicode-table.com/en/00A0/ Non-breaking space}.\n */\nexport const CHAR_NO_BREAK_SPACE = `\\u00A0`;\n\n/**\n * {@link https://unicode-table.com/en/2013/ EN dash}\n * is used to indicate a range of numbers or a span of time.\n * @example 2006–2022\n * ___\n * Don't confuse with {@link CHAR_EM_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EN_DASH = `\\u2013`;\n\n/**\n * {@link https://unicode-table.com/en/2014/ EM dash}\n * is used to mark a break in a sentence.\n * @example Taiga UI — powerful set of open source components for Angular\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EM_DASH = `\\u2014`;\n\n/**\n * {@link https://unicode-table.com/en/00AB/ Left-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_LAQUO = `\\u00AB`;\n\n/**\n * {@link https://unicode-table.com/en/00BB/ Right-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_RAQUO = `\\u00BB`;\n\n/**\n * {@link https://unicode-table.com/en/002D/ Hyphen (minus sign)}\n * is used to combine words.\n * @example well-behaved\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_EM_DASH}!\n */\nexport const CHAR_HYPHEN = `\\u002D`;\n\n/**\n * {@link https://unicode-table.com/en/2212/ Minus}\n * is used as math operator symbol or before negative digits.\n * ---\n * Can be used as `&minus;`. Don't confuse with {@link CHAR_HYPHEN}\n */\nexport const CHAR_MINUS = `\\u2212`;\n\n/**\n * {@link https://unicode-table.com/en/002B/ Plus}\n */\nexport const CHAR_PLUS = `\\u002B`;\n\n/**\n * {@link https://unicode-table.com/en/2022/ Bullet}.\n */\nexport const CHAR_BULLET = `\\u2022`;\n\n/**\n * {@link https://unicode-table.com/en/2026/ Suspension points}.\n */\nexport const CHAR_ELLIPSIS = `\\u2026`;\n\n/**\n * {@link https://unicode-table.com/en/00A4/ Suspension points}.\n */\nexport const CHAR_CURRENCY_SIGN = `\\u00A4`;\n\n/**\n * {@link https://unicode-table.com/en/200b/ Suspension points}.\n */\nexport const CHAR_ZERO_WIDTH_SPACE = `\\u200B`;\n","export const TUI_VERSION = `2.82.0`;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAAA;;;MAGa,oBAAoB,GAAG,MAAa;;ACHjD;;;MAGa,mBAAmB,GAAG,MAAY;;MCHlC,2BAA2B,GAAG;;ACG3C;;;;;MAKa,WAAW,GAAG,IAAI,SAAS,GAAQ;MACnC,WAAW,GAAO,GAAG;MACrB,cAAc,GAA6B,UAAS;AACjE;MACa,eAAe,GAAgB,MAAM,KAAK;MAC1C,iBAAiB,GAAe;IACzC,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;;;ACjBZ;;;MAGa,qBAAqB,GAA8B,IAAI,IAAI,MAAM,CAAC,IAAI;;ACDnF;;;;;;MAMa,mBAAmB,GAAG,CAC/B,IAAO,EACP,MAAc,EACd,YAAmC,qBAAqB,KAC9C,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE;AAE3E;;;;;;MAMa,kBAAkB,GAAG,CAC9B,IAAO,EACP,MAAc,EACd,YAAmC,qBAAqB,KAC9C,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,GAAG;AAErE;;;;;;;MAOa,4BAA4B,GAAgC,CAAC,KAAK,EAAE,KAAK,KAClF,KAAK,KAAK,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE;AAE/C,SAAS,SAAS,CAAC,KAAc,EAAE,KAAc;IAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAC1F;;MCtCa,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,EAAE;IAC9D,UAAU,CAAC,WAAW,EAAE;QACpB,KAAK,CAAC,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC;QAC3B,KAAK,CAAC,YAAY,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;KAC1D,CAAC;CACL;;MCPY,YAAY,GAAG,IAAI,GAAG;;ACAnC;AACA;MACa,aAAa,IAAgB,CAAC,IAAU,KACjD,iBAAiB,IAAI,IAAI;MACnB,UAAU,CAAC,aAAa;MACxB,UAAU,CAAC,aAAa;;ACLlC;;;MAGa,mBAAmB,GAAG,SAAS;AAE5C;;;;;;;MAOa,YAAY,GAAG,SAAS;AAErC;;;;;;;MAOa,YAAY,GAAG,SAAS;AAErC;;;MAGa,UAAU,GAAG,SAAS;AAEnC;;;MAGa,UAAU,GAAG,SAAS;AAEnC;;;;;;;MAOa,WAAW,GAAG,SAAS;AAEpC;;;;;;MAMa,UAAU,GAAG,SAAS;AAEnC;;;MAGa,SAAS,GAAG,SAAS;AAElC;;;MAGa,WAAW,GAAG,SAAS;AAEpC;;;MAGa,aAAa,GAAG,SAAS;AAEtC;;;MAGa,kBAAkB,GAAG,SAAS;AAE3C;;;MAGa,qBAAqB,GAAG;;MCzExB,WAAW,GAAG;;ACA3B;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-constants.js","sources":["ng://@taiga-ui/cdk/constants/always-false-handler.ts","ng://@taiga-ui/cdk/constants/always-true-handler.ts","ng://@taiga-ui/cdk/constants/browser.ts","ng://@taiga-ui/cdk/constants/empty.ts","ng://@taiga-ui/cdk/constants/stringify.ts","ng://@taiga-ui/cdk/constants/matcher.ts","ng://@taiga-ui/cdk/constants/parent-animation.ts","ng://@taiga-ui/cdk/constants/polling-time.ts","ng://@taiga-ui/cdk/constants/svg-node-filter.ts","ng://@taiga-ui/cdk/constants/unicode-chars.ts","ng://@taiga-ui/cdk/constants/version.ts","ng://@taiga-ui/cdk/constants/taiga-ui-cdk-constants.ts"],"sourcesContent":["/**\n * Handler that always returns `false`.\n */\nexport const ALWAYS_FALSE_HANDLER = (): false => false;\n","/**\n * Handler that always returns `true`.\n */\nexport const ALWAYS_TRUE_HANDLER = (): true => true;\n","export const CHROMIUM_EDGE_START_VERSION = 79;\n","import {QueryList} from '@angular/core';\nimport {ValidatorFn} from '@angular/forms';\n\n/**\n * For type safety when using @ContentChildren and @ViewChildren\n *\n * NOTE: Be careful subscribing to 'changes'\n */\nexport const EMPTY_QUERY = new QueryList<any>();\nexport const EMPTY_ARRAY: [] = [];\nexport const EMPTY_FUNCTION: (...args: any[]) => void = () => {};\n/** @deprecated use Validators.nullValidator */\nexport const EMPTY_VALIDATOR: ValidatorFn = () => null;\nexport const EMPTY_CLIENT_RECT: ClientRect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n};\n","import {TuiStringHandler} from '@taiga-ui/cdk/types';\n\n/**\n * Default method to turn arbitrary object into string\n */\nexport const TUI_DEFAULT_STRINGIFY: TuiStringHandler<unknown> = item => String(item);\n","import {TuiHandler, TuiIdentityMatcher} from '@taiga-ui/cdk/types';\n\nimport {TUI_DEFAULT_STRINGIFY} from './stringify';\n\n/**\n * Default handler for matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_DEFAULT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n): boolean => stringify(item).toLowerCase().includes(search.toLowerCase());\n\n/**\n * Default handler for strict matching stringified version of an item and a search query\n * @param item arbitrary element to match with a string\n * @param search search query\n * @param stringify handler to turn item into a string\n */\nexport const TUI_STRICT_MATCHER = <T>(\n item: T,\n search: string,\n stringify: TuiHandler<T, string> = TUI_DEFAULT_STRINGIFY,\n): boolean => stringify(item).toLowerCase() === search.toLowerCase();\n\n/**\n * Default handler to match equality of two elements\n * ATTENTION: considers two empty arrays equal\n *\n * @param item1 first element\n * @param item2 second element\n */\nexport const TUI_DEFAULT_IDENTITY_MATCHER: TuiIdentityMatcher<unknown> = (item1, item2) =>\n item1 === item2 || bothEmpty(item1, item2);\n\nfunction bothEmpty(item1: unknown, item2: unknown): boolean {\n return Array.isArray(item1) && Array.isArray(item2) && !item1.length && !item2.length;\n}\n","import {animateChild, query, style, transition, trigger} from '@angular/animations';\n\nexport const TUI_PARENT_ANIMATION = trigger(`tuiParentAnimation`, [\n transition(`* => void`, [\n style({overflow: `hidden`}),\n query(`:scope > *`, [animateChild()], {optional: true}),\n ]),\n]);\n","export const POLLING_TIME = 1000 / 15;\n","// Filtering SVGElements for TreeWalker\n// Filter must be a function in IE, other modern browsers are compliant to this format\nexport const svgNodeFilter: NodeFilter = ((node: Node) =>\n `ownerSVGElement` in node\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT) as any;\n","/**\n * {@link https://unicode-table.com/en/00A0/ Non-breaking space}.\n */\nexport const CHAR_NO_BREAK_SPACE = `\\u00A0`;\n\n/**\n * {@link https://unicode-table.com/en/2013/ EN dash}\n * is used to indicate a range of numbers or a span of time.\n * @example 2006–2022\n * ___\n * Don't confuse with {@link CHAR_EM_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EN_DASH = `\\u2013`;\n\n/**\n * {@link https://unicode-table.com/en/2014/ EM dash}\n * is used to mark a break in a sentence.\n * @example Taiga UI — powerful set of open source components for Angular\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_HYPHEN}!\n */\nexport const CHAR_EM_DASH = `\\u2014`;\n\n/**\n * {@link https://unicode-table.com/en/00AB/ Left-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_LAQUO = `\\u00AB`;\n\n/**\n * {@link https://unicode-table.com/en/00BB/ Right-Pointing Double Angle Quotation Mark}\n */\nexport const CHAR_RAQUO = `\\u00BB`;\n\n/**\n * {@link https://unicode-table.com/en/002D/ Hyphen (minus sign)}\n * is used to combine words.\n * @example well-behaved\n * ___\n * Don't confuse with {@link CHAR_EN_DASH} or {@link CHAR_EM_DASH}!\n */\nexport const CHAR_HYPHEN = `\\u002D`;\n\n/**\n * {@link https://unicode-table.com/en/2212/ Minus}\n * is used as math operator symbol or before negative digits.\n * ---\n * Can be used as `&minus;`. Don't confuse with {@link CHAR_HYPHEN}\n */\nexport const CHAR_MINUS = `\\u2212`;\n\n/**\n * {@link https://unicode-table.com/en/002B/ Plus}\n */\nexport const CHAR_PLUS = `\\u002B`;\n\n/**\n * {@link https://unicode-table.com/en/2022/ Bullet}.\n */\nexport const CHAR_BULLET = `\\u2022`;\n\n/**\n * {@link https://unicode-table.com/en/2026/ Suspension points}.\n */\nexport const CHAR_ELLIPSIS = `\\u2026`;\n\n/**\n * {@link https://unicode-table.com/en/00A4/ Suspension points}.\n */\nexport const CHAR_CURRENCY_SIGN = `\\u00A4`;\n\n/**\n * {@link https://unicode-table.com/en/200b/ Suspension points}.\n */\nexport const CHAR_ZERO_WIDTH_SPACE = `\\u200B`;\n","export const TUI_VERSION = `2.84.0`;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAAA;;;MAGa,oBAAoB,GAAG,MAAa;;ACHjD;;;MAGa,mBAAmB,GAAG,MAAY;;MCHlC,2BAA2B,GAAG;;ACG3C;;;;;MAKa,WAAW,GAAG,IAAI,SAAS,GAAQ;MACnC,WAAW,GAAO,GAAG;MACrB,cAAc,GAA6B,UAAS;AACjE;MACa,eAAe,GAAgB,MAAM,KAAK;MAC1C,iBAAiB,GAAe;IACzC,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;;;ACjBZ;;;MAGa,qBAAqB,GAA8B,IAAI,IAAI,MAAM,CAAC,IAAI;;ACDnF;;;;;;MAMa,mBAAmB,GAAG,CAC/B,IAAO,EACP,MAAc,EACd,YAAmC,qBAAqB,KAC9C,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE;AAE3E;;;;;;MAMa,kBAAkB,GAAG,CAC9B,IAAO,EACP,MAAc,EACd,YAAmC,qBAAqB,KAC9C,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,GAAG;AAErE;;;;;;;MAOa,4BAA4B,GAAgC,CAAC,KAAK,EAAE,KAAK,KAClF,KAAK,KAAK,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE;AAE/C,SAAS,SAAS,CAAC,KAAc,EAAE,KAAc;IAC7C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAC1F;;MCtCa,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,EAAE;IAC9D,UAAU,CAAC,WAAW,EAAE;QACpB,KAAK,CAAC,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC;QAC3B,KAAK,CAAC,YAAY,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;KAC1D,CAAC;CACL;;MCPY,YAAY,GAAG,IAAI,GAAG;;ACAnC;AACA;MACa,aAAa,IAAgB,CAAC,IAAU,KACjD,iBAAiB,IAAI,IAAI;MACnB,UAAU,CAAC,aAAa;MACxB,UAAU,CAAC,aAAa;;ACLlC;;;MAGa,mBAAmB,GAAG,SAAS;AAE5C;;;;;;;MAOa,YAAY,GAAG,SAAS;AAErC;;;;;;;MAOa,YAAY,GAAG,SAAS;AAErC;;;MAGa,UAAU,GAAG,SAAS;AAEnC;;;MAGa,UAAU,GAAG,SAAS;AAEnC;;;;;;;MAOa,WAAW,GAAG,SAAS;AAEpC;;;;;;MAMa,UAAU,GAAG,SAAS;AAEnC;;;MAGa,SAAS,GAAG,SAAS;AAElC;;;MAGa,WAAW,GAAG,SAAS;AAEpC;;;MAGa,aAAa,GAAG,SAAS;AAEtC;;;MAGa,kBAAkB,GAAG,SAAS;AAE3C;;;MAGa,qBAAqB,GAAG;;MCzExB,WAAW,GAAG;;ACA3B;;;;;;"}
@@ -5,7 +5,7 @@ import { TUI_FOCUSABLE_ITEM_ACCESSOR, TUI_IS_IOS } from '@taiga-ui/cdk/tokens';
5
5
  import { POLLING_TIME } from '@taiga-ui/cdk/constants';
6
6
  import { race, timer, Observable } from 'rxjs';
7
7
  import { throttleTime, map, skipWhile, take } from 'rxjs/operators';
8
- import { px } from '@taiga-ui/cdk/utils';
8
+ import { tuiPx } from '@taiga-ui/cdk/utils';
9
9
 
10
10
  let AbstractTuiAutofocusHandler = class AbstractTuiAutofocusHandler {
11
11
  constructor(tuiFocusableComponent, elementRef) {
@@ -113,15 +113,21 @@ let TuiIosAutofocusHandler = class TuiIosAutofocusHandler extends AbstractTuiAut
113
113
  makeFakeInput() {
114
114
  const fakeInput = this.renderer.createElement(`input`);
115
115
  const rect = this.element.getBoundingClientRect();
116
- fakeInput.style.height = px(rect.height);
117
- fakeInput.style.width = px(rect.width / 2);
116
+ fakeInput.setAttribute(`maxlength`, `0`);
117
+ // @note: don't use opacity: 0,
118
+ // sometimes it's doesn't work for emulate real input
119
+ fakeInput.style.height = tuiPx(rect.height);
120
+ fakeInput.style.width = tuiPx(rect.width / 2);
118
121
  fakeInput.style.position = `fixed`;
119
- fakeInput.style.opacity = `0`;
120
- fakeInput.style.fontSize = px(16); // disable possible auto zoom
122
+ fakeInput.style.zIndex = `-99999999`;
123
+ fakeInput.style.caretColor = `transparent`;
124
+ fakeInput.style.color = `transparent`;
125
+ fakeInput.style.cursor = `none`;
126
+ fakeInput.style.fontSize = tuiPx(16); // disable possible auto zoom
121
127
  fakeInput.readOnly = true; // prevent keyboard for fake input
122
128
  // @note: emulate position cursor before focus to real textfield element
123
- fakeInput.style.top = px(rect.top);
124
- fakeInput.style.left = px(rect.left);
129
+ fakeInput.style.top = tuiPx(rect.top);
130
+ fakeInput.style.left = tuiPx(rect.left);
125
131
  return fakeInput;
126
132
  }
127
133
  getDurationTimeBeforeFocus() {
@@ -205,9 +211,12 @@ let TuiAutoFocusDirective = class TuiAutoFocusDirective {
205
211
  }
206
212
  ngAfterViewInit() {
207
213
  if (this.autoFocus) {
208
- this.handler.setFocus();
214
+ this.focus();
209
215
  }
210
216
  }
217
+ focus() {
218
+ void Promise.resolve().then(() => this.handler.setFocus());
219
+ }
211
220
  };
212
221
  TuiAutoFocusDirective.ctorParameters = () => [
213
222
  { type: undefined, decorators: [{ type: Inject, args: [TUI_AUTOFOCUS_HANDLER,] }] }
@@ -232,9 +241,29 @@ TuiAutoFocusModule = __decorate([
232
241
  })
233
242
  ], TuiAutoFocusModule);
234
243
 
244
+ let TuiSynchronousAutofocusHandler = class TuiSynchronousAutofocusHandler extends AbstractTuiAutofocusHandler {
245
+ constructor(tuiFocusableComponent, elementRef) {
246
+ super(tuiFocusableComponent, elementRef);
247
+ }
248
+ setFocus() {
249
+ this.element.focus();
250
+ }
251
+ };
252
+ TuiSynchronousAutofocusHandler.ctorParameters = () => [
253
+ { type: undefined, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [TUI_FOCUSABLE_ITEM_ACCESSOR,] }] },
254
+ { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] }
255
+ ];
256
+ TuiSynchronousAutofocusHandler = __decorate([
257
+ Directive(),
258
+ __param(0, Optional()),
259
+ __param(0, Self()),
260
+ __param(0, Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)),
261
+ __param(1, Inject(ElementRef))
262
+ ], TuiSynchronousAutofocusHandler);
263
+
235
264
  /**
236
265
  * Generated bundle index. Do not edit.
237
266
  */
238
267
 
239
- export { AbstractTuiAutofocusHandler, TUI_AUTOFOCUS_HANDLER, TUI_AUTOFOCUS_PROVIDERS, TuiAutoFocusDirective, TuiAutoFocusModule, TuiDefaultAutofocusHandler, TuiIosAutofocusHandler, tuiAutofocusHandlerFactory };
268
+ export { AbstractTuiAutofocusHandler, TUI_AUTOFOCUS_HANDLER, TUI_AUTOFOCUS_PROVIDERS, TuiAutoFocusDirective, TuiAutoFocusModule, TuiDefaultAutofocusHandler, TuiIosAutofocusHandler, TuiSynchronousAutofocusHandler, tuiAutofocusHandlerFactory };
240
269
  //# 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/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 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 isIos: boolean,\n): TuiAutofocusHandler {\n return isIos\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 TUI_IS_IOS,\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
+ {"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/handlers/sync.handler.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 {tuiPx} 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.setAttribute(`maxlength`, `0`);\n\n // @note: don't use opacity: 0,\n // sometimes it's doesn't work for emulate real input\n fakeInput.style.height = tuiPx(rect.height);\n fakeInput.style.width = tuiPx(rect.width / 2);\n fakeInput.style.position = `fixed`;\n fakeInput.style.zIndex = `-99999999`;\n fakeInput.style.caretColor = `transparent`;\n fakeInput.style.color = `transparent`;\n fakeInput.style.cursor = `none`;\n fakeInput.style.fontSize = tuiPx(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 = tuiPx(rect.top);\n fakeInput.style.left = tuiPx(rect.left);\n\n return fakeInput;\n }\n\n private getDurationTimeBeforeFocus(): number {\n return (\n parseFloat(\n this.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 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 isIos: boolean,\n): TuiAutofocusHandler {\n return isIos\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 TUI_IS_IOS,\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)\n private readonly handler: TuiAutofocusHandler,\n ) {}\n\n ngAfterViewInit(): void {\n if (this.autoFocus) {\n this.focus();\n }\n }\n\n focus(): void {\n void Promise.resolve().then(() => this.handler.setFocus());\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiAutoFocusDirective} from './autofocus.directive';\n\n@NgModule({\n declarations: [TuiAutoFocusDirective],\n exports: [TuiAutoFocusDirective],\n})\nexport class TuiAutoFocusModule {}\n","import {Directive, ElementRef, Inject, Optional, Self} from '@angular/core';\nimport {TuiFocusableElementAccessor} from '@taiga-ui/cdk/interfaces';\nimport {TUI_FOCUSABLE_ITEM_ACCESSOR} from '@taiga-ui/cdk/tokens';\n\nimport {AbstractTuiAutofocusHandler} from './abstract.handler';\n\n@Directive()\nexport class TuiSynchronousAutofocusHandler extends AbstractTuiAutofocusHandler {\n constructor(\n @Optional()\n @Self()\n @Inject(TUI_FOCUSABLE_ITEM_ACCESSOR)\n tuiFocusableComponent: TuiFocusableElementAccessor | null,\n @Inject(ElementRef) elementRef: ElementRef<HTMLElement>,\n ) {\n super(tuiFocusableComponent, elementRef);\n }\n\n setFocus(): void {\n this.element.focus();\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,23 @@
1
1
  import { __decorate, __param } from 'tslib';
2
2
  import { ElementRef, Inject, Directive, NgModule } from '@angular/core';
3
3
 
4
- let TuiElementDirective = class TuiElementDirective extends ElementRef {
4
+ let TuiElementDirective = class TuiElementDirective {
5
5
  constructor({ nativeElement }) {
6
- super(nativeElement);
6
+ /**
7
+ * @note:
8
+ * Typically, when your constructor is invoked with new,
9
+ * an object is created, its constructor is assigned to
10
+ * the invoked constructor and the object is then assigned
11
+ * to this before executing any operations specified
12
+ * in your constructor method.
13
+ *
14
+ * ERROR TypeError: Class constructor ElementRef cannot be invoked without 'new'
15
+ * https://github.com/Tinkoff/taiga-ui/issues/3072
16
+ *
17
+ * This way we can instantiate object creation
18
+ * without additional prototype chain for possible fix bug.
19
+ */
20
+ return new ElementRef(nativeElement);
7
21
  }
8
22
  };
9
23
  TuiElementDirective.ctorParameters = () => [
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-cdk-directives-element.js","sources":["ng://@taiga-ui/cdk/directives/element/element.directive.ts","ng://@taiga-ui/cdk/directives/element/element.module.ts","ng://@taiga-ui/cdk/directives/element/taiga-ui-cdk-directives-element.ts"],"sourcesContent":["import {Directive, ElementRef, Inject} from '@angular/core';\n\n@Directive({\n selector: '[tuiElement]',\n exportAs: 'elementRef',\n})\nexport class TuiElementDirective<T extends Element = HTMLElement> extends ElementRef<T> {\n constructor(@Inject(ElementRef) {nativeElement}: ElementRef<T>) {\n super(nativeElement);\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiElementDirective} from './element.directive';\n\n@NgModule({\n declarations: [TuiElementDirective],\n exports: [TuiElementDirective],\n})\nexport class TuiElementModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;IAMa,mBAAmB,GAAhC,MAAa,mBAAqD,SAAQ,UAAa;IACnF,YAAgC,EAAC,aAAa,EAAgB;QAC1D,KAAK,CAAC,aAAa,CAAC,CAAC;KACxB;EACJ;;YAHoD,UAAU,uBAA9C,MAAM,SAAC,UAAU;;AADrB,mBAAmB;IAJ/B,SAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,YAAY;KACzB,CAAC;IAEe,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;GADtB,mBAAmB,CAI/B;;ICFY,gBAAgB,GAA7B,MAAa,gBAAgB;EAAG;AAAnB,gBAAgB;IAJ5B,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,mBAAmB,CAAC;QACnC,OAAO,EAAE,CAAC,mBAAmB,CAAC;KACjC,CAAC;GACW,gBAAgB,CAAG;;ACRhC;;;;;;"}
1
+ {"version":3,"file":"taiga-ui-cdk-directives-element.js","sources":["ng://@taiga-ui/cdk/directives/element/element.directive.ts","ng://@taiga-ui/cdk/directives/element/element.module.ts","ng://@taiga-ui/cdk/directives/element/taiga-ui-cdk-directives-element.ts"],"sourcesContent":["import {Directive, ElementRef, Inject} from '@angular/core';\n\n@Directive({\n selector: '[tuiElement]',\n exportAs: 'elementRef',\n})\nexport class TuiElementDirective<T extends Element = HTMLElement>\n implements ElementRef<T>\n{\n nativeElement!: T;\n\n constructor(@Inject(ElementRef) {nativeElement}: ElementRef<T>) {\n /**\n * @note:\n * Typically, when your constructor is invoked with new,\n * an object is created, its constructor is assigned to\n * the invoked constructor and the object is then assigned\n * to this before executing any operations specified\n * in your constructor method.\n *\n * ERROR TypeError: Class constructor ElementRef cannot be invoked without 'new'\n * https://github.com/Tinkoff/taiga-ui/issues/3072\n *\n * This way we can instantiate object creation\n * without additional prototype chain for possible fix bug.\n */\n return new ElementRef<T>(nativeElement);\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiElementDirective} from './element.directive';\n\n@NgModule({\n declarations: [TuiElementDirective],\n exports: [TuiElementDirective],\n})\nexport class TuiElementModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;IAMa,mBAAmB,GAAhC,MAAa,mBAAmB;IAK5B,YAAgC,EAAC,aAAa,EAAgB;;;;;;;;;;;;;;;QAe1D,OAAO,IAAI,UAAU,CAAI,aAAa,CAAC,CAAC;KAC3C;EACJ;;YAjBoD,UAAU,uBAA9C,MAAM,SAAC,UAAU;;AALrB,mBAAmB;IAJ/B,SAAS,CAAC;QACP,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE,YAAY;KACzB,CAAC;IAMe,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;GALtB,mBAAmB,CAsB/B;;ICpBY,gBAAgB,GAA7B,MAAa,gBAAgB;EAAG;AAAnB,gBAAgB;IAJ5B,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,mBAAmB,CAAC;QACnC,OAAO,EAAE,CAAC,mBAAmB,CAAC;KACjC,CAAC;GACW,gBAAgB,CAAG;;ACRhC;;;;;;"}
@@ -241,7 +241,7 @@ const tuiIsCurrentTarget = isCurrentTarget;
241
241
 
242
242
  // TODO: Refactor to use this check everywhere
243
243
  function tuiIsElement(node) {
244
- return node.nodeType === Node.ELEMENT_NODE;
244
+ return !!node && `nodeType` in node && node.nodeType === Node.ELEMENT_NODE;
245
245
  }
246
246
 
247
247
  /**