@taiga-ui/core 3.0.0-rc.5 → 3.0.1

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 (171) hide show
  1. package/abstract/abstract-driver.directive.d.ts +1 -1
  2. package/abstract/abstract-textfield-host.d.ts +3 -3
  3. package/bundles/taiga-ui-core-abstract.umd.js +17 -13
  4. package/bundles/taiga-ui-core-abstract.umd.js.map +1 -1
  5. package/bundles/taiga-ui-core-components-expand.umd.js +24 -40
  6. package/bundles/taiga-ui-core-components-expand.umd.js.map +1 -1
  7. package/bundles/taiga-ui-core-components-hints-host.umd.js +1 -1
  8. package/bundles/taiga-ui-core-components-hints-host.umd.js.map +1 -1
  9. package/bundles/taiga-ui-core-components-notification.umd.js +0 -1
  10. package/bundles/taiga-ui-core-components-notification.umd.js.map +1 -1
  11. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js +52 -89
  12. package/bundles/taiga-ui-core-components-primitive-textfield.umd.js.map +1 -1
  13. package/bundles/taiga-ui-core-components-root.umd.js +1 -1
  14. package/bundles/taiga-ui-core-components-root.umd.js.map +1 -1
  15. package/bundles/taiga-ui-core-components-scroll-controls.umd.js +26 -27
  16. package/bundles/taiga-ui-core-components-scroll-controls.umd.js.map +1 -1
  17. package/bundles/taiga-ui-core-components-scrollbar.umd.js.map +1 -1
  18. package/bundles/taiga-ui-core-components-tooltip.umd.js +2 -2
  19. package/bundles/taiga-ui-core-components-tooltip.umd.js.map +1 -1
  20. package/bundles/taiga-ui-core-constants.umd.js +0 -3
  21. package/bundles/taiga-ui-core-constants.umd.js.map +1 -1
  22. package/bundles/taiga-ui-core-directives-dropdown.umd.js +4 -4
  23. package/bundles/taiga-ui-core-directives-dropdown.umd.js.map +1 -1
  24. package/bundles/taiga-ui-core-directives-hint.umd.js +186 -41
  25. package/bundles/taiga-ui-core-directives-hint.umd.js.map +1 -1
  26. package/bundles/taiga-ui-core-directives-textfield-controller.umd.js +3 -253
  27. package/bundles/taiga-ui-core-directives-textfield-controller.umd.js.map +1 -1
  28. package/bundles/taiga-ui-core-directives.umd.js +4 -16
  29. package/bundles/taiga-ui-core-directives.umd.js.map +1 -1
  30. package/bundles/taiga-ui-core-services.umd.js +5 -35
  31. package/bundles/taiga-ui-core-services.umd.js.map +1 -1
  32. package/bundles/taiga-ui-core-utils-dom.umd.js +1 -1
  33. package/bundles/taiga-ui-core-utils-dom.umd.js.map +1 -1
  34. package/components/expand/expand.module.d.ts +3 -4
  35. package/components/expand/index.d.ts +0 -1
  36. package/components/primitive-textfield/primitive-textfield.component.d.ts +4 -4
  37. package/components/primitive-textfield/primitive-textfield.directive.d.ts +2 -2
  38. package/components/primitive-textfield/primitive-textfield.module.d.ts +1 -2
  39. package/components/primitive-textfield/textfield/textfield.component.d.ts +4 -7
  40. package/components/primitive-textfield/value-decoration/value-decoration.component.d.ts +1 -3
  41. package/components/scrollbar/scrollbar.component.d.ts +3 -1
  42. package/components/tooltip/tooltip.component.d.ts +2 -2
  43. package/constants/index.d.ts +0 -1
  44. package/directives/dropdown/dropdown-context.directive.d.ts +1 -1
  45. package/directives/hint/hint-describe.directive.d.ts +18 -0
  46. package/directives/hint/hint-options.directive.d.ts +16 -0
  47. package/directives/hint/hint.component.d.ts +8 -5
  48. package/directives/hint/hint.directive.d.ts +1 -3
  49. package/directives/hint/hint.module.d.ts +6 -4
  50. package/directives/hint/index.d.ts +2 -0
  51. package/directives/index.d.ts +0 -2
  52. package/directives/textfield-controller/index.d.ts +0 -5
  53. package/directives/textfield-controller/textfield-controller.module.d.ts +7 -12
  54. package/directives/textfield-controller/textfield.controller.d.ts +2 -17
  55. package/esm2015/abstract/abstract-driver.directive.js +1 -1
  56. package/esm2015/abstract/abstract-textfield-host.js +5 -5
  57. package/esm2015/abstract/driver.js +2 -1
  58. package/esm2015/abstract/position-accessor.js +2 -1
  59. package/esm2015/abstract/rect-accessor.js +2 -1
  60. package/esm2015/abstract/vehicle.js +2 -1
  61. package/esm2015/components/expand/expand.component.js +22 -23
  62. package/esm2015/components/expand/expand.module.js +4 -5
  63. package/esm2015/components/expand/index.js +1 -2
  64. package/esm2015/components/hints-host/hints-host.component.js +2 -2
  65. package/esm2015/components/notification/notification.component.js +1 -2
  66. package/esm2015/components/primitive-textfield/primitive-textfield.component.js +28 -29
  67. package/esm2015/components/primitive-textfield/primitive-textfield.directive.js +3 -3
  68. package/esm2015/components/primitive-textfield/primitive-textfield.module.js +3 -10
  69. package/esm2015/components/primitive-textfield/textfield/textfield.component.js +7 -28
  70. package/esm2015/components/primitive-textfield/value-decoration/value-decoration.component.js +4 -11
  71. package/esm2015/components/root/root.component.js +2 -2
  72. package/esm2015/components/scroll-controls/scroll-controls.component.js +8 -9
  73. package/esm2015/components/scrollbar/scrollbar.component.js +4 -4
  74. package/esm2015/components/tooltip/tooltip.component.js +4 -4
  75. package/esm2015/constants/index.js +1 -2
  76. package/esm2015/directives/dropdown/dropdown-context.directive.js +5 -5
  77. package/esm2015/directives/hint/hint-describe.directive.js +60 -0
  78. package/esm2015/directives/hint/hint-hover.directive.js +6 -3
  79. package/esm2015/directives/hint/hint-options.directive.js +72 -0
  80. package/esm2015/directives/hint/hint.component.js +28 -15
  81. package/esm2015/directives/hint/hint.directive.js +3 -15
  82. package/esm2015/directives/hint/hint.module.js +13 -3
  83. package/esm2015/directives/hint/index.js +3 -1
  84. package/esm2015/directives/index.js +1 -3
  85. package/esm2015/directives/textfield-controller/index.js +1 -6
  86. package/esm2015/directives/textfield-controller/textfield-controller.module.js +3 -28
  87. package/esm2015/directives/textfield-controller/textfield-controller.provider.js +1 -11
  88. package/esm2015/directives/textfield-controller/textfield.controller.js +2 -22
  89. package/esm2015/interfaces/portal-item.js +1 -1
  90. package/esm2015/services/hint.service.js +1 -31
  91. package/esm2015/utils/dom/get-word-range.js +2 -2
  92. package/fesm2015/taiga-ui-core-abstract.js +9 -5
  93. package/fesm2015/taiga-ui-core-abstract.js.map +1 -1
  94. package/fesm2015/taiga-ui-core-components-expand.js +26 -38
  95. package/fesm2015/taiga-ui-core-components-expand.js.map +1 -1
  96. package/fesm2015/taiga-ui-core-components-hints-host.js +1 -1
  97. package/fesm2015/taiga-ui-core-components-hints-host.js.map +1 -1
  98. package/fesm2015/taiga-ui-core-components-notification.js +0 -1
  99. package/fesm2015/taiga-ui-core-components-notification.js.map +1 -1
  100. package/fesm2015/taiga-ui-core-components-primitive-textfield.js +46 -80
  101. package/fesm2015/taiga-ui-core-components-primitive-textfield.js.map +1 -1
  102. package/fesm2015/taiga-ui-core-components-root.js +1 -1
  103. package/fesm2015/taiga-ui-core-components-root.js.map +1 -1
  104. package/fesm2015/taiga-ui-core-components-scroll-controls.js +3 -4
  105. package/fesm2015/taiga-ui-core-components-scroll-controls.js.map +1 -1
  106. package/fesm2015/taiga-ui-core-components-scrollbar.js.map +1 -1
  107. package/fesm2015/taiga-ui-core-components-tooltip.js +3 -3
  108. package/fesm2015/taiga-ui-core-components-tooltip.js.map +1 -1
  109. package/fesm2015/taiga-ui-core-constants.js +1 -3
  110. package/fesm2015/taiga-ui-core-constants.js.map +1 -1
  111. package/fesm2015/taiga-ui-core-directives-dropdown.js +4 -4
  112. package/fesm2015/taiga-ui-core-directives-dropdown.js.map +1 -1
  113. package/fesm2015/taiga-ui-core-directives-hint.js +164 -35
  114. package/fesm2015/taiga-ui-core-directives-hint.js.map +1 -1
  115. package/fesm2015/taiga-ui-core-directives-textfield-controller.js +4 -209
  116. package/fesm2015/taiga-ui-core-directives-textfield-controller.js.map +1 -1
  117. package/fesm2015/taiga-ui-core-directives.js +0 -2
  118. package/fesm2015/taiga-ui-core-directives.js.map +1 -1
  119. package/fesm2015/taiga-ui-core-services.js +0 -30
  120. package/fesm2015/taiga-ui-core-services.js.map +1 -1
  121. package/fesm2015/taiga-ui-core-utils-dom.js +1 -1
  122. package/fesm2015/taiga-ui-core-utils-dom.js.map +1 -1
  123. package/interfaces/portal-item.d.ts +0 -1
  124. package/package.json +4 -4
  125. package/services/hint.service.d.ts +0 -12
  126. package/bundles/taiga-ui-core-directives-described-by.umd.js +0 -458
  127. package/bundles/taiga-ui-core-directives-described-by.umd.js.map +0 -1
  128. package/bundles/taiga-ui-core-directives-hint-controller.umd.js +0 -478
  129. package/bundles/taiga-ui-core-directives-hint-controller.umd.js.map +0 -1
  130. package/components/expand/expand-content.directive.d.ts +0 -5
  131. package/constants/described-by.d.ts +0 -1
  132. package/directives/described-by/described-by.directive.d.ts +0 -13
  133. package/directives/described-by/described-by.module.d.ts +0 -7
  134. package/directives/described-by/described-by.providers.d.ts +0 -4
  135. package/directives/described-by/index.d.ts +0 -3
  136. package/directives/described-by/package.json +0 -10
  137. package/directives/described-by/taiga-ui-core-directives-described-by.d.ts +0 -5
  138. package/directives/hint-controller/hint-controller.directive.d.ts +0 -16
  139. package/directives/hint-controller/hint-controller.module.d.ts +0 -7
  140. package/directives/hint-controller/hint-controller.provider.d.ts +0 -4
  141. package/directives/hint-controller/hint-controller.token.d.ts +0 -3
  142. package/directives/hint-controller/index.d.ts +0 -4
  143. package/directives/hint-controller/package.json +0 -10
  144. package/directives/hint-controller/taiga-ui-core-directives-hint-controller.d.ts +0 -5
  145. package/directives/textfield-controller/textfield-autocomplete.directive.d.ts +0 -9
  146. package/directives/textfield-controller/textfield-example-text.directive.d.ts +0 -9
  147. package/directives/textfield-controller/textfield-input-mode.directive.d.ts +0 -9
  148. package/directives/textfield-controller/textfield-max-length.directive.d.ts +0 -9
  149. package/directives/textfield-controller/textfield-type.directive.d.ts +0 -9
  150. package/esm2015/components/expand/expand-content.directive.js +0 -14
  151. package/esm2015/constants/described-by.js +0 -2
  152. package/esm2015/directives/described-by/described-by.directive.js +0 -55
  153. package/esm2015/directives/described-by/described-by.module.js +0 -16
  154. package/esm2015/directives/described-by/described-by.providers.js +0 -20
  155. package/esm2015/directives/described-by/index.js +0 -4
  156. package/esm2015/directives/described-by/taiga-ui-core-directives-described-by.js +0 -5
  157. package/esm2015/directives/hint-controller/hint-controller.directive.js +0 -71
  158. package/esm2015/directives/hint-controller/hint-controller.module.js +0 -16
  159. package/esm2015/directives/hint-controller/hint-controller.provider.js +0 -26
  160. package/esm2015/directives/hint-controller/hint-controller.token.js +0 -7
  161. package/esm2015/directives/hint-controller/index.js +0 -5
  162. package/esm2015/directives/hint-controller/taiga-ui-core-directives-hint-controller.js +0 -5
  163. package/esm2015/directives/textfield-controller/textfield-autocomplete.directive.js +0 -35
  164. package/esm2015/directives/textfield-controller/textfield-example-text.directive.js +0 -35
  165. package/esm2015/directives/textfield-controller/textfield-input-mode.directive.js +0 -35
  166. package/esm2015/directives/textfield-controller/textfield-max-length.directive.js +0 -35
  167. package/esm2015/directives/textfield-controller/textfield-type.directive.js +0 -35
  168. package/fesm2015/taiga-ui-core-directives-described-by.js +0 -92
  169. package/fesm2015/taiga-ui-core-directives-described-by.js.map +0 -1
  170. package/fesm2015/taiga-ui-core-directives-hint-controller.js +0 -115
  171. package/fesm2015/taiga-ui-core-directives-hint-controller.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@taiga-ui/cdk'), require('@taiga-ui/core/abstract'), require('@taiga-ui/core/animations'), require('@taiga-ui/core/directives/mode'), require('@taiga-ui/core/services'), require('@taiga-ui/core/tokens'), require('@tinkoff/ng-polymorpheus'), require('rxjs/operators'), require('rxjs'), require('@taiga-ui/core/constants'), require('@angular/common'), require('@ng-web-apis/common')) :
3
- typeof define === 'function' && define.amd ? define('@taiga-ui/core/directives/hint', ['exports', '@angular/core', '@taiga-ui/cdk', '@taiga-ui/core/abstract', '@taiga-ui/core/animations', '@taiga-ui/core/directives/mode', '@taiga-ui/core/services', '@taiga-ui/core/tokens', '@tinkoff/ng-polymorpheus', 'rxjs/operators', 'rxjs', '@taiga-ui/core/constants', '@angular/common', '@ng-web-apis/common'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global["taiga-ui"] = global["taiga-ui"] || {}, global["taiga-ui"].core = global["taiga-ui"].core || {}, global["taiga-ui"].core.directives = global["taiga-ui"].core.directives || {}, global["taiga-ui"].core.directives.hint = {}), global.ng.core, global.i3$1, global["taiga-ui"].core.abstract, global["taiga-ui"].core.animations, global["taiga-ui"].core.directives.mode, global["taiga-ui"].core.services, global["taiga-ui"].core.tokens, global.i1, global.rxjs.operators, global.rxjs, global["taiga-ui"].core.constants, global.ng.common, global.common));
5
- })(this, (function (exports, i0, i3$1, i3, animations, i4, i2$1, tokens, i1, operators, i2, constants, common$1, common) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@taiga-ui/cdk'), require('@taiga-ui/core/abstract'), require('@taiga-ui/core/animations'), require('@taiga-ui/core/directives/mode'), require('@taiga-ui/core/services'), require('@taiga-ui/core/tokens'), require('@tinkoff/ng-polymorpheus'), require('rxjs/operators'), require('rxjs'), require('@angular/common'), require('@ng-web-apis/common'), require('@taiga-ui/core/constants')) :
3
+ typeof define === 'function' && define.amd ? define('@taiga-ui/core/directives/hint', ['exports', '@angular/core', '@taiga-ui/cdk', '@taiga-ui/core/abstract', '@taiga-ui/core/animations', '@taiga-ui/core/directives/mode', '@taiga-ui/core/services', '@taiga-ui/core/tokens', '@tinkoff/ng-polymorpheus', 'rxjs/operators', 'rxjs', '@angular/common', '@ng-web-apis/common', '@taiga-ui/core/constants'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global["taiga-ui"] = global["taiga-ui"] || {}, global["taiga-ui"].core = global["taiga-ui"].core || {}, global["taiga-ui"].core.directives = global["taiga-ui"].core.directives || {}, global["taiga-ui"].core.directives.hint = {}), global.ng.core, global.i3$1, global["taiga-ui"].core.abstract, global["taiga-ui"].core.animations, global["taiga-ui"].core.directives.mode, global["taiga-ui"].core.services, global["taiga-ui"].core.tokens, global.i1, global.rxjs.operators, global.rxjs, global.ng.common, global.common$1, global["taiga-ui"].core.constants));
5
+ })(this, (function (exports, i0, i3$1, i3, animations, i5, i2$1, tokens, i1, operators, i2, common, common$1, constants) { 'use strict';
6
6
 
7
7
  function _interopNamespace(e) {
8
8
  if (e && e.__esModule) return e;
@@ -25,7 +25,7 @@
25
25
  var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
26
26
  var i3__namespace$1 = /*#__PURE__*/_interopNamespace(i3$1);
27
27
  var i3__namespace = /*#__PURE__*/_interopNamespace(i3);
28
- var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
28
+ var i5__namespace = /*#__PURE__*/_interopNamespace(i5);
29
29
  var i2__namespace$1 = /*#__PURE__*/_interopNamespace(i2$1);
30
30
  var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
31
31
  var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
@@ -391,7 +391,7 @@
391
391
  return TuiHintHoverDirective;
392
392
  }(i3.TuiDriver));
393
393
  TuiHintHoverDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: TuiHintHoverDirective, deps: [{ token: i3$1.TuiHoveredService }, { token: TUI_HINT_OPTIONS }], target: i0__namespace.ɵɵFactoryTarget.Directive });
394
- TuiHintHoverDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: { showDelay: ["tuiHintShowDelay", "showDelay"], hideDelay: ["tuiHintHideDelay", "hideDelay"] }, providers: [i3.tuiAsDriver(TuiHintHoverDirective), i3$1.TuiHoveredService], usesInheritance: true, ngImport: i0__namespace });
394
+ TuiHintHoverDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: { showDelay: ["tuiHintShowDelay", "showDelay"], hideDelay: ["tuiHintHideDelay", "hideDelay"] }, host: { listeners: { "click": "toggle(true)" } }, providers: [i3.tuiAsDriver(TuiHintHoverDirective), i3$1.TuiHoveredService], usesInheritance: true, ngImport: i0__namespace });
395
395
  __decorate([
396
396
  i3$1.tuiDefaultProp()
397
397
  ], TuiHintHoverDirective.prototype, "showDelay", void 0);
@@ -418,6 +418,9 @@
418
418
  }], hideDelay: [{
419
419
  type: i0.Input,
420
420
  args: ["tuiHintHideDelay"]
421
+ }], toggle: [{
422
+ type: i0.HostListener,
423
+ args: ["click", ["true"]]
421
424
  }] } });
422
425
 
423
426
  var TuiHintPointerDirective = /** @class */ (function (_super) {
@@ -456,25 +459,24 @@
456
459
  }] } });
457
460
 
458
461
  var TuiHintComponent = /** @class */ (function () {
459
- function TuiHintComponent(hovered$, position$, destroy$, accessor, elementRef, options, polymorpheus, driver, mode) {
462
+ function TuiHintComponent(hovered$, position$, destroy$, accessor, elementRef, options, polymorpheus, hover, pointer, mode) {
460
463
  var _this = this;
461
464
  var _a;
462
465
  this.accessor = accessor;
463
466
  this.elementRef = elementRef;
464
467
  this.options = options;
465
468
  this.polymorpheus = polymorpheus;
466
- this.driver = driver;
469
+ this.hover = hover;
470
+ this.pointer = pointer;
467
471
  this.mode = mode;
468
472
  this.animation = Object.assign({ value: "" }, this.options);
469
473
  this.appearance = this.polymorpheus.$implicit.appearance || ((_a = this.mode) === null || _a === void 0 ? void 0 : _a.mode);
470
- this.untouchable = this.driver instanceof TuiHintPointerDirective;
474
+ this.untouchable = !!this.pointer;
471
475
  position$.pipe(operators.takeUntil(destroy$)).subscribe(function (_b) {
472
476
  var _c = __read(_b, 2), top = _c[0], left = _c[1];
473
477
  _this.update(top, left);
474
478
  });
475
- if (driver instanceof TuiHintHoverDirective) {
476
- hovered$.pipe(operators.takeUntil(destroy$)).subscribe(function (hover) { return driver.toggle(hover); });
477
- }
479
+ hovered$.pipe(operators.takeUntil(destroy$)).subscribe(function (hover) { return _this.hover.toggle(hover); });
478
480
  }
479
481
  Object.defineProperty(TuiHintComponent.prototype, "content", {
480
482
  get: function () {
@@ -490,6 +492,11 @@
490
492
  enumerable: false,
491
493
  configurable: true
492
494
  });
495
+ TuiHintComponent.prototype.onClick = function (target) {
496
+ if (!this.elementRef.nativeElement.contains(target)) {
497
+ this.hover.toggle(false);
498
+ }
499
+ };
493
500
  TuiHintComponent.prototype.update = function (top, left) {
494
501
  var nativeElement = this.elementRef.nativeElement;
495
502
  var _b = nativeElement.getBoundingClientRect(), height = _b.height, width = _b.width;
@@ -504,8 +511,8 @@
504
511
  };
505
512
  return TuiHintComponent;
506
513
  }());
507
- TuiHintComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: TuiHintComponent, deps: [{ token: i3$1.TuiHoveredService }, { token: i2$1.TuiPositionService }, { token: i3$1.TuiDestroyService }, { token: i3.TuiRectAccessor }, { token: i0.ElementRef }, { token: tokens.TUI_ANIMATION_OPTIONS }, { token: i1.POLYMORPHEUS_CONTEXT }, { token: i3.TuiDriver }, { token: i4.TuiModeDirective, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
508
- TuiHintComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiHintComponent, selector: "tui-hint", host: { properties: { "@tuiFadeIn": "this.animation", "attr.data-appearance": "this.appearance", "class._untouchable": "this.untouchable" } }, providers: [i3$1.TuiDestroyService, i2$1.TuiPositionService, i3$1.TuiHoveredService], ngImport: i0__namespace, template: "\n <ng-container *polymorpheusOutlet=\"content as text; context: context\">\n {{ text }}\n </ng-container>\n ", isInline: true, styles: [":host{position:absolute;max-width:18rem;min-height:var(--tui-height-m);padding:.75rem 1rem;background:var(--tui-primary);border-radius:var(--tui-radius-l);color:var(--tui-primary-text);box-sizing:border-box;font:var(--tui-font-text-s);white-space:pre-line;word-wrap:break-word}:host:before{content:\"\";position:absolute;top:var(--top);left:var(--left);width:.5rem;height:.5rem;border-radius:.125rem;box-sizing:border-box;background-color:inherit;transform:translate(-50%,-50%) rotate(45deg)}:host[data-appearance=error]{background-color:var(--tui-error-fill)}:host[data-appearance=onDark]{box-shadow:0 .5rem 1rem rgba(0,0,0,.16);border:1px solid var(--tui-base-03);background-color:var(--tui-base-01);color:var(--tui-text-01)}:host[data-appearance=onDark]:before{box-shadow:inset 0 0 0 1px var(--tui-base-03)}:host[data-appearance=onDark]:after{position:absolute;top:0;left:0;width:100%;height:100%;content:\"\";border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 .5rem var(--tui-base-01)}:host._untouchable{pointer-events:none}\n"], directives: [{ type: i1__namespace.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], animations: [animations.tuiFadeIn], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
514
+ TuiHintComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: TuiHintComponent, deps: [{ token: i3$1.TuiHoveredService }, { token: i2$1.TuiPositionService }, { token: i3$1.TuiDestroyService }, { token: i3.TuiRectAccessor }, { token: i0.ElementRef }, { token: tokens.TUI_ANIMATION_OPTIONS }, { token: i1.POLYMORPHEUS_CONTEXT }, { token: TuiHintHoverDirective }, { token: TuiHintPointerDirective, optional: true }, { token: i5.TuiModeDirective, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
515
+ TuiHintComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: TuiHintComponent, selector: "tui-hint", host: { listeners: { "document:click": "onClick($event.target)" }, properties: { "@tuiFadeIn": "this.animation", "attr.data-appearance": "this.appearance", "class._untouchable": "this.untouchable" } }, providers: [i3$1.TuiDestroyService, i2$1.TuiPositionService, i3$1.TuiHoveredService], ngImport: i0__namespace, template: "\n <ng-container *polymorpheusOutlet=\"content as text; context: context\">\n {{ text }}\n </ng-container>\n ", isInline: true, styles: [":host{position:absolute;max-width:18rem;min-height:var(--tui-height-m);padding:.75rem 1rem;background:var(--tui-primary);border-radius:var(--tui-radius-l);color:var(--tui-primary-text);box-sizing:border-box;font:var(--tui-font-text-s);white-space:pre-line;word-wrap:break-word}:host:before{content:\"\";position:absolute;top:var(--top);left:var(--left);width:.5rem;height:.5rem;border-radius:.125rem;box-sizing:border-box;background-color:inherit;transform:translate(-50%,-50%) rotate(45deg)}:host[data-appearance=error]{background-color:var(--tui-error-fill)}:host[data-appearance=onDark]{box-shadow:0 .5rem 1rem rgba(0,0,0,.16);border:1px solid var(--tui-base-03);background-color:var(--tui-base-01);color:var(--tui-text-01)}:host[data-appearance=onDark]:before{box-shadow:inset 0 0 0 1px var(--tui-base-03)}:host[data-appearance=onDark]:after{position:absolute;top:0;left:0;width:100%;height:100%;content:\"\";border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 .5rem var(--tui-base-01)}:host._untouchable{pointer-events:none}\n"], directives: [{ type: i1__namespace.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], animations: [animations.tuiFadeIn], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
509
516
  __decorate([
510
517
  i3$1.tuiPure
511
518
  ], TuiHintComponent.prototype, "update", null);
@@ -541,14 +548,19 @@
541
548
  }] }, { type: undefined, decorators: [{
542
549
  type: i0.Inject,
543
550
  args: [i1.POLYMORPHEUS_CONTEXT]
544
- }] }, { type: i3__namespace.TuiDriver, decorators: [{
551
+ }] }, { type: TuiHintHoverDirective, decorators: [{
552
+ type: i0.Inject,
553
+ args: [TuiHintHoverDirective]
554
+ }] }, { type: undefined, decorators: [{
555
+ type: i0.Optional
556
+ }, {
545
557
  type: i0.Inject,
546
- args: [i3.TuiDriver]
547
- }] }, { type: i4__namespace.TuiModeDirective, decorators: [{
558
+ args: [TuiHintPointerDirective]
559
+ }] }, { type: i5__namespace.TuiModeDirective, decorators: [{
548
560
  type: i0.Optional
549
561
  }, {
550
562
  type: i0.Inject,
551
- args: [i4.TuiModeDirective]
563
+ args: [i5.TuiModeDirective]
552
564
  }] }];
553
565
  }, propDecorators: { animation: [{
554
566
  type: i0.HostBinding,
@@ -559,6 +571,9 @@
559
571
  }], untouchable: [{
560
572
  type: i0.HostBinding,
561
573
  args: ["class._untouchable"]
574
+ }], onClick: [{
575
+ type: i0.HostListener,
576
+ args: ["document:click", ["$event.target"]]
562
577
  }], update: [] } });
563
578
 
564
579
  var TUI_HINT_COMPONENT = new i0.InjectionToken("[TUI_HINT_COMPONENT] A component to display a hint", {
@@ -572,18 +587,9 @@
572
587
  this.hintService = hintService;
573
588
  this.options = options;
574
589
  this.activeZone = activeZone;
575
- this.tuiHintId = "";
576
590
  this.content = "";
577
591
  this.appearance = this.options.appearance;
578
- this.hintService.register(this);
579
592
  }
580
- Object.defineProperty(TuiHintDirective.prototype, "id", {
581
- get: function () {
582
- return this.tuiHintId ? this.tuiHintId + constants.DESCRIBED_BY : undefined;
583
- },
584
- enumerable: false,
585
- configurable: true
586
- });
587
593
  TuiHintDirective.prototype.ngOnChanges = function () {
588
594
  if (!this.content) {
589
595
  this.toggle(false);
@@ -591,7 +597,6 @@
591
597
  };
592
598
  TuiHintDirective.prototype.ngOnDestroy = function () {
593
599
  this.toggle(false);
594
- this.hintService.unregister(this);
595
600
  };
596
601
  TuiHintDirective.prototype.getClientRect = function () {
597
602
  return this.elementRef.nativeElement.getBoundingClientRect();
@@ -607,7 +612,7 @@
607
612
  return TuiHintDirective;
608
613
  }());
609
614
  TuiHintDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: TuiHintDirective, deps: [{ token: i0.ElementRef }, { token: i1.PolymorpheusComponent }, { token: i2$1.TuiHintService }, { token: TUI_HINT_OPTIONS }, { token: i3$1.TuiActiveZoneDirective, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Directive });
610
- TuiHintDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: { tuiHintId: "tuiHintId", content: ["tuiHint", "content"], context: ["tuiHintContext", "context"], appearance: ["tuiHintAppearance", "appearance"] }, providers: [
615
+ TuiHintDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: { content: ["tuiHint", "content"], context: ["tuiHintContext", "context"], appearance: ["tuiHintAppearance", "appearance"] }, providers: [
611
616
  i3.tuiAsRectAccessor(TuiHintDirective),
612
617
  i3.tuiAsVehicle(TuiHintDirective),
613
618
  {
@@ -616,9 +621,6 @@
616
621
  useClass: i1.PolymorpheusComponent,
617
622
  },
618
623
  ], usesOnChanges: true, ngImport: i0__namespace });
619
- __decorate([
620
- i3$1.tuiDefaultProp()
621
- ], TuiHintDirective.prototype, "tuiHintId", void 0);
622
624
  __decorate([
623
625
  i3$1.tuiDefaultProp()
624
626
  ], TuiHintDirective.prototype, "content", void 0);
@@ -658,9 +660,7 @@
658
660
  type: i0.Inject,
659
661
  args: [i3$1.TuiActiveZoneDirective]
660
662
  }] }];
661
- }, propDecorators: { tuiHintId: [{
662
- type: i0.Input
663
- }], content: [{
663
+ }, propDecorators: { content: [{
664
664
  type: i0.Input,
665
665
  args: ["tuiHint"]
666
666
  }], context: [{
@@ -671,6 +671,69 @@
671
671
  args: ["tuiHintAppearance"]
672
672
  }] } });
673
673
 
674
+ var TuiHintDescribeDirective = /** @class */ (function (_super) {
675
+ __extends(TuiHintDescribeDirective, _super);
676
+ function TuiHintDescribeDirective(ngZone, hover$, documentRef, elementRef) {
677
+ var _this = _super.call(this, function (subscriber) { return _this.stream$.subscribe(subscriber); }) || this;
678
+ _this.ngZone = ngZone;
679
+ _this.hover$ = hover$;
680
+ _this.documentRef = documentRef;
681
+ _this.elementRef = elementRef;
682
+ _this.focus$ = i3$1.tuiTypedFromEvent(_this.documentRef, "keydown", {
683
+ capture: true,
684
+ }).pipe(operators.switchMap(function () { return _this.focused
685
+ ? i2.of(false)
686
+ : i2.merge(i3$1.tuiTypedFromEvent(_this.documentRef, "keyup"), i3$1.tuiTypedFromEvent(_this.element, "blur")).pipe(operators.map(function () { return _this.focused; })); }), operators.debounce(function (visible) { return (visible ? i2.timer(1000) : i2.of(null)); }), operators.startWith(false), operators.distinctUntilChanged(), operators.skip(1), i3$1.tuiZoneOptimized(_this.ngZone));
687
+ _this.stream$ = i2.merge(_this.hover$, _this.focus$);
688
+ _this.tuiHintDescribe = "";
689
+ return _this;
690
+ }
691
+ Object.defineProperty(TuiHintDescribeDirective.prototype, "focused", {
692
+ get: function () {
693
+ return i3$1.tuiIsNativeFocused(this.element);
694
+ },
695
+ enumerable: false,
696
+ configurable: true
697
+ });
698
+ Object.defineProperty(TuiHintDescribeDirective.prototype, "element", {
699
+ get: function () {
700
+ return (this.documentRef.getElementById(this.tuiHintDescribe) ||
701
+ this.elementRef.nativeElement);
702
+ },
703
+ enumerable: false,
704
+ configurable: true
705
+ });
706
+ return TuiHintDescribeDirective;
707
+ }(i3.TuiDriver));
708
+ TuiHintDescribeDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: TuiHintDescribeDirective, deps: [{ token: i0.NgZone }, { token: TuiHintHoverDirective }, { token: common.DOCUMENT }, { token: i0.ElementRef }], target: i0__namespace.ɵɵFactoryTarget.Directive });
709
+ TuiHintDescribeDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiHintDescribeDirective, selector: "[tuiHintDescribe]", inputs: { tuiHintDescribe: "tuiHintDescribe" }, providers: [i3.tuiAsDriver(TuiHintDescribeDirective)], usesInheritance: true, ngImport: i0__namespace });
710
+ __decorate([
711
+ i3$1.tuiPure
712
+ ], TuiHintDescribeDirective.prototype, "element", null);
713
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: TuiHintDescribeDirective, decorators: [{
714
+ type: i0.Directive,
715
+ args: [{
716
+ selector: "[tuiHintDescribe]",
717
+ providers: [i3.tuiAsDriver(TuiHintDescribeDirective)],
718
+ }]
719
+ }], ctorParameters: function () {
720
+ return [{ type: i0__namespace.NgZone, decorators: [{
721
+ type: i0.Inject,
722
+ args: [i0.NgZone]
723
+ }] }, { type: i2__namespace.Observable, decorators: [{
724
+ type: i0.Inject,
725
+ args: [TuiHintHoverDirective]
726
+ }] }, { type: Document, decorators: [{
727
+ type: i0.Inject,
728
+ args: [common.DOCUMENT]
729
+ }] }, { type: i0__namespace.ElementRef, decorators: [{
730
+ type: i0.Inject,
731
+ args: [i0.ElementRef]
732
+ }] }];
733
+ }, propDecorators: { tuiHintDescribe: [{
734
+ type: i0.Input
735
+ }], element: [] } });
736
+
674
737
  var TuiHintDriverDirective = /** @class */ (function (_super) {
675
738
  __extends(TuiHintDriverDirective, _super);
676
739
  function TuiHintDriverDirective() {
@@ -736,6 +799,78 @@
736
799
  type: i0.Input
737
800
  }] } });
738
801
 
802
+ var TuiHintOptionsDirective = /** @class */ (function (_super) {
803
+ __extends(TuiHintOptionsDirective, _super);
804
+ function TuiHintOptionsDirective(options) {
805
+ var _this = _super.call(this) || this;
806
+ _this.options = options;
807
+ _this.content = "";
808
+ _this.direction = _this.options.direction;
809
+ _this.appearance = _this.options.appearance;
810
+ _this.showDelay = _this.options.showDelay;
811
+ _this.hideDelay = _this.options.hideDelay;
812
+ _this.icon = _this.options.icon;
813
+ return _this;
814
+ }
815
+ return TuiHintOptionsDirective;
816
+ }(i3$1.AbstractTuiController));
817
+ TuiHintOptionsDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: TuiHintOptionsDirective, deps: [{ token: TUI_HINT_OPTIONS, skipSelf: true }], target: i0__namespace.ɵɵFactoryTarget.Directive });
818
+ TuiHintOptionsDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiHintOptionsDirective, selector: "[tuiHintContent]", inputs: { content: ["tuiHintContent", "content"], direction: ["tuiHintDirection", "direction"], appearance: ["tuiHintAppearance", "appearance"], showDelay: ["tuiHintShowDelay", "showDelay"], hideDelay: ["tuiHintHideDelay", "hideDelay"] }, providers: [
819
+ {
820
+ provide: TUI_HINT_OPTIONS,
821
+ useExisting: i0.forwardRef(function () { return TuiHintOptionsDirective; }),
822
+ },
823
+ ], usesInheritance: true, ngImport: i0__namespace });
824
+ __decorate([
825
+ i3$1.tuiDefaultProp()
826
+ ], TuiHintOptionsDirective.prototype, "content", void 0);
827
+ __decorate([
828
+ i3$1.tuiDefaultProp()
829
+ ], TuiHintOptionsDirective.prototype, "direction", void 0);
830
+ __decorate([
831
+ i3$1.tuiDefaultProp()
832
+ ], TuiHintOptionsDirective.prototype, "appearance", void 0);
833
+ __decorate([
834
+ i3$1.tuiDefaultProp()
835
+ ], TuiHintOptionsDirective.prototype, "showDelay", void 0);
836
+ __decorate([
837
+ i3$1.tuiDefaultProp()
838
+ ], TuiHintOptionsDirective.prototype, "hideDelay", void 0);
839
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: TuiHintOptionsDirective, decorators: [{
840
+ type: i0.Directive,
841
+ args: [{
842
+ selector: "[tuiHintContent]",
843
+ providers: [
844
+ {
845
+ provide: TUI_HINT_OPTIONS,
846
+ useExisting: i0.forwardRef(function () { return TuiHintOptionsDirective; }),
847
+ },
848
+ ],
849
+ }]
850
+ }], ctorParameters: function () {
851
+ return [{ type: undefined, decorators: [{
852
+ type: i0.SkipSelf
853
+ }, {
854
+ type: i0.Inject,
855
+ args: [TUI_HINT_OPTIONS]
856
+ }] }];
857
+ }, propDecorators: { content: [{
858
+ type: i0.Input,
859
+ args: ["tuiHintContent"]
860
+ }], direction: [{
861
+ type: i0.Input,
862
+ args: ["tuiHintDirection"]
863
+ }], appearance: [{
864
+ type: i0.Input,
865
+ args: ["tuiHintAppearance"]
866
+ }], showDelay: [{
867
+ type: i0.Input,
868
+ args: ["tuiHintShowDelay"]
869
+ }], hideDelay: [{
870
+ type: i0.Input,
871
+ args: ["tuiHintHideDelay"]
872
+ }] } });
873
+
739
874
  var OFFSET = 8;
740
875
  var ARROW_OFFSET = 22;
741
876
  var TOP = 0;
@@ -797,7 +932,7 @@
797
932
  };
798
933
  return TuiHintPositionDirective;
799
934
  }());
800
- TuiHintPositionDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: TuiHintPositionDirective, deps: [{ token: TUI_HINT_OPTIONS }, { token: common.WINDOW }, { token: i3.TuiRectAccessor }], target: i0__namespace.ɵɵFactoryTarget.Directive });
935
+ TuiHintPositionDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: TuiHintPositionDirective, deps: [{ token: TUI_HINT_OPTIONS }, { token: common$1.WINDOW }, { token: i3.TuiRectAccessor }], target: i0__namespace.ɵɵFactoryTarget.Directive });
801
936
  TuiHintPositionDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: { direction: ["tuiHintDirection", "direction"] }, providers: [i3.tuiAsPositionAccessor(TuiHintPositionDirective)], ngImport: i0__namespace });
802
937
  __decorate([
803
938
  i3$1.tuiDefaultProp()
@@ -814,7 +949,7 @@
814
949
  args: [TUI_HINT_OPTIONS]
815
950
  }] }, { type: Window, decorators: [{
816
951
  type: i0.Inject,
817
- args: [common.WINDOW]
952
+ args: [common$1.WINDOW]
818
953
  }] }, { type: i3__namespace.TuiRectAccessor, decorators: [{
819
954
  type: i0.Inject,
820
955
  args: [i3.TuiRectAccessor]
@@ -837,19 +972,23 @@
837
972
  TuiHintHoverDirective,
838
973
  TuiHintManualDirective,
839
974
  TuiHintPointerDirective,
840
- TuiHintPositionDirective], imports: [common$1.CommonModule, i1.PolymorpheusModule], exports: [TuiHintComponent,
975
+ TuiHintDescribeDirective,
976
+ TuiHintPositionDirective,
977
+ TuiHintOptionsDirective], imports: [common.CommonModule, i1.PolymorpheusModule], exports: [TuiHintComponent,
841
978
  TuiHintDirective,
842
979
  TuiHintDriverDirective,
843
980
  TuiHintHostDirective,
844
981
  TuiHintHoverDirective,
845
982
  TuiHintManualDirective,
846
983
  TuiHintPointerDirective,
847
- TuiHintPositionDirective] });
848
- TuiHintModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: TuiHintModule, imports: [[common$1.CommonModule, i1.PolymorpheusModule]] });
984
+ TuiHintDescribeDirective,
985
+ TuiHintPositionDirective,
986
+ TuiHintOptionsDirective] });
987
+ TuiHintModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: TuiHintModule, imports: [[common.CommonModule, i1.PolymorpheusModule]] });
849
988
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: TuiHintModule, decorators: [{
850
989
  type: i0.NgModule,
851
990
  args: [{
852
- imports: [common$1.CommonModule, i1.PolymorpheusModule],
991
+ imports: [common.CommonModule, i1.PolymorpheusModule],
853
992
  declarations: [
854
993
  TuiHintComponent,
855
994
  TuiHintDirective,
@@ -858,7 +997,9 @@
858
997
  TuiHintHoverDirective,
859
998
  TuiHintManualDirective,
860
999
  TuiHintPointerDirective,
1000
+ TuiHintDescribeDirective,
861
1001
  TuiHintPositionDirective,
1002
+ TuiHintOptionsDirective,
862
1003
  ],
863
1004
  exports: [
864
1005
  TuiHintComponent,
@@ -868,7 +1009,9 @@
868
1009
  TuiHintHoverDirective,
869
1010
  TuiHintManualDirective,
870
1011
  TuiHintPointerDirective,
1012
+ TuiHintDescribeDirective,
871
1013
  TuiHintPositionDirective,
1014
+ TuiHintOptionsDirective,
872
1015
  ],
873
1016
  entryComponents: [TuiHintComponent],
874
1017
  }]
@@ -882,12 +1025,14 @@
882
1025
  exports.TUI_HINT_DEFAULT_OPTIONS = TUI_HINT_DEFAULT_OPTIONS;
883
1026
  exports.TUI_HINT_OPTIONS = TUI_HINT_OPTIONS;
884
1027
  exports.TuiHintComponent = TuiHintComponent;
1028
+ exports.TuiHintDescribeDirective = TuiHintDescribeDirective;
885
1029
  exports.TuiHintDirective = TuiHintDirective;
886
1030
  exports.TuiHintDriverDirective = TuiHintDriverDirective;
887
1031
  exports.TuiHintHostDirective = TuiHintHostDirective;
888
1032
  exports.TuiHintHoverDirective = TuiHintHoverDirective;
889
1033
  exports.TuiHintManualDirective = TuiHintManualDirective;
890
1034
  exports.TuiHintModule = TuiHintModule;
1035
+ exports.TuiHintOptionsDirective = TuiHintOptionsDirective;
891
1036
  exports.TuiHintPointerDirective = TuiHintPointerDirective;
892
1037
  exports.TuiHintPositionDirective = TuiHintPositionDirective;
893
1038
  exports.tuiHintOptionsProvider = tuiHintOptionsProvider;