@taiga-ui/core 3.19.0-dev.main-8e6cab0 → 3.19.0-dev.main-9e6bc23

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 (63) hide show
  1. package/abstract/abstract-driver.directive.d.ts +9 -2
  2. package/abstract/driver.d.ts +1 -0
  3. package/abstract/position-accessor.d.ts +3 -1
  4. package/abstract/rect-accessor.d.ts +4 -1
  5. package/abstract/vehicle.d.ts +1 -0
  6. package/bundles/taiga-ui-core-abstract.umd.js +49 -10
  7. package/bundles/taiga-ui-core-abstract.umd.js.map +1 -1
  8. package/bundles/taiga-ui-core-directives-dropdown.umd.js +155 -107
  9. package/bundles/taiga-ui-core-directives-dropdown.umd.js.map +1 -1
  10. package/bundles/taiga-ui-core-directives-hint.umd.js +235 -180
  11. package/bundles/taiga-ui-core-directives-hint.umd.js.map +1 -1
  12. package/bundles/taiga-ui-core-tokens.umd.js +1 -0
  13. package/bundles/taiga-ui-core-tokens.umd.js.map +1 -1
  14. package/directives/dropdown/dropdown-context.directive.d.ts +1 -0
  15. package/directives/dropdown/dropdown-driver.directive.d.ts +5 -2
  16. package/directives/dropdown/dropdown-host.directive.d.ts +1 -0
  17. package/directives/dropdown/dropdown-hover.directive.d.ts +1 -0
  18. package/directives/dropdown/dropdown-manual.directive.d.ts +1 -0
  19. package/directives/dropdown/dropdown-position-sided.directive.d.ts +4 -3
  20. package/directives/dropdown/dropdown-position.directive.d.ts +7 -3
  21. package/directives/dropdown/dropdown-selection.directive.d.ts +1 -0
  22. package/directives/dropdown/dropdown.directive.d.ts +7 -4
  23. package/directives/hint/hint-describe.directive.d.ts +3 -5
  24. package/directives/hint/hint-driver.directive.d.ts +5 -2
  25. package/directives/hint/hint-host.directive.d.ts +1 -0
  26. package/directives/hint/hint-hover.directive.d.ts +2 -0
  27. package/directives/hint/hint-manual.directive.d.ts +3 -1
  28. package/directives/hint/hint-position.directive.d.ts +6 -3
  29. package/directives/hint/hint.directive.d.ts +3 -2
  30. package/esm2015/abstract/abstract-driver.directive.js +15 -7
  31. package/esm2015/abstract/driver.js +2 -1
  32. package/esm2015/abstract/position-accessor.js +10 -1
  33. package/esm2015/abstract/rect-accessor.js +14 -1
  34. package/esm2015/abstract/vehicle.js +2 -1
  35. package/esm2015/directives/dropdown/dropdown-context.directive.js +2 -1
  36. package/esm2015/directives/dropdown/dropdown-driver.directive.js +22 -5
  37. package/esm2015/directives/dropdown/dropdown-host.directive.js +5 -1
  38. package/esm2015/directives/dropdown/dropdown-hover.directive.js +2 -1
  39. package/esm2015/directives/dropdown/dropdown-manual.directive.js +4 -3
  40. package/esm2015/directives/dropdown/dropdown-position-sided.directive.js +13 -12
  41. package/esm2015/directives/dropdown/dropdown-position.directive.js +27 -10
  42. package/esm2015/directives/dropdown/dropdown-selection.directive.js +2 -1
  43. package/esm2015/directives/dropdown/dropdown.component.js +19 -9
  44. package/esm2015/directives/dropdown/dropdown.directive.js +14 -19
  45. package/esm2015/directives/hint/hint-describe.directive.js +5 -11
  46. package/esm2015/directives/hint/hint-driver.directive.js +22 -5
  47. package/esm2015/directives/hint/hint-host.directive.js +5 -1
  48. package/esm2015/directives/hint/hint-hover.directive.js +5 -3
  49. package/esm2015/directives/hint/hint-manual.directive.js +12 -5
  50. package/esm2015/directives/hint/hint-position.directive.js +24 -10
  51. package/esm2015/directives/hint/hint.component.js +18 -4
  52. package/esm2015/directives/hint/hint.directive.js +3 -1
  53. package/esm2015/directives/hint/hint.providers.js +2 -1
  54. package/esm2015/tokens/viewport.js +2 -1
  55. package/fesm2015/taiga-ui-core-abstract.js +39 -9
  56. package/fesm2015/taiga-ui-core-abstract.js.map +1 -1
  57. package/fesm2015/taiga-ui-core-directives-dropdown.js +92 -50
  58. package/fesm2015/taiga-ui-core-directives-dropdown.js.map +1 -1
  59. package/fesm2015/taiga-ui-core-directives-hint.js +180 -131
  60. package/fesm2015/taiga-ui-core-directives-hint.js.map +1 -1
  61. package/fesm2015/taiga-ui-core-tokens.js +1 -0
  62. package/fesm2015/taiga-ui-core-tokens.js.map +1 -1
  63. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@ng-web-apis/common'), require('@taiga-ui/cdk'), require('@taiga-ui/core/abstract'), require('@taiga-ui/core/animations'), require('@taiga-ui/core/services'), require('@taiga-ui/core/tokens'), require('rxjs/operators'), require('@taiga-ui/core/utils'), require('@tinkoff/ng-polymorpheus'), require('rxjs'), require('@taiga-ui/core/components/scrollbar'), require('@taiga-ui/core/directives/mode'), require('@tinkoff/ng-event-plugins'), require('@angular/common')) :
3
3
  typeof define === 'function' && define.amd ? define('@taiga-ui/core/directives/dropdown', ['exports', '@angular/core', '@ng-web-apis/common', '@taiga-ui/cdk', '@taiga-ui/core/abstract', '@taiga-ui/core/animations', '@taiga-ui/core/services', '@taiga-ui/core/tokens', 'rxjs/operators', '@taiga-ui/core/utils', '@tinkoff/ng-polymorpheus', 'rxjs', '@taiga-ui/core/components/scrollbar', '@taiga-ui/core/directives/mode', '@tinkoff/ng-event-plugins', '@angular/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.dropdown = {}), global.ng.core, global.common, global.i2, global["taiga-ui"].core.abstract, global["taiga-ui"].core.animations, global["taiga-ui"].core.services, global["taiga-ui"].core.tokens, global.rxjs.operators, global["taiga-ui"].core.utils, global.i1, global.rxjs, global["taiga-ui"].core.components.scrollbar, global["taiga-ui"].core.directives.mode, global.ngEventPlugins, global.ng.common));
5
- })(this, (function (exports, i0, common, i2, i1$1, animations, services, tokens, operators, utils, i1, i5, i1$2, i3, ngEventPlugins, common$1) { 'use strict';
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.dropdown = {}), global.ng.core, global.common, global.i2, global["taiga-ui"].core.abstract, global["taiga-ui"].core.animations, global["taiga-ui"].core.services, global["taiga-ui"].core.tokens, global.rxjs.operators, global["taiga-ui"].core.utils, global.i4, global.rxjs, global["taiga-ui"].core.components.scrollbar, global["taiga-ui"].core.directives.mode, global.ngEventPlugins, global.ng.common));
5
+ })(this, (function (exports, i0, common, i2, i1, animations, services, tokens, operators, utils, i4, i1$1, i1$2, i3, ngEventPlugins, common$1) { 'use strict';
6
6
 
7
7
  function _interopNamespace(e) {
8
8
  if (e && e.__esModule) return e;
@@ -24,9 +24,9 @@
24
24
 
25
25
  var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
26
26
  var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
27
- var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1$1);
28
- var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
29
- var i5__namespace = /*#__PURE__*/_interopNamespace(i5);
27
+ var i1__namespace$2 = /*#__PURE__*/_interopNamespace(i1);
28
+ var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
29
+ var i1__namespace = /*#__PURE__*/_interopNamespace(i1$1);
30
30
  var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$2);
31
31
  var i3__namespace = /*#__PURE__*/_interopNamespace(i3);
32
32
 
@@ -353,12 +353,15 @@
353
353
  });
354
354
 
355
355
  var TuiDropdownDirective = /** @class */ (function () {
356
- function TuiDropdownDirective(elementRef, component, dropdownService) {
356
+ function TuiDropdownDirective(elementRef, hapica, injector, dropdownService) {
357
357
  this.elementRef = elementRef;
358
- this.component = component;
358
+ this.hapica = hapica;
359
+ this.injector = injector;
359
360
  this.dropdownService = dropdownService;
360
361
  this.content = '';
361
362
  this.dropdownBoxRef = null;
363
+ this.type = 'dropdown';
364
+ this.component = new i4.PolymorpheusComponent(this.hapica, this.injector);
362
365
  }
363
366
  Object.defineProperty(TuiDropdownDirective.prototype, "position", {
364
367
  get: function () {
@@ -396,15 +399,10 @@
396
399
  };
397
400
  return TuiDropdownDirective;
398
401
  }());
399
- TuiDropdownDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiDropdownDirective, deps: [{ token: i0.ElementRef }, { token: i1.PolymorpheusComponent }, { token: i2.TuiDropdownPortalService }], target: i0__namespace.ɵɵFactoryTarget.Directive });
402
+ TuiDropdownDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiDropdownDirective, deps: [{ token: i0.ElementRef }, { token: TUI_DROPDOWN_COMPONENT }, { token: i0.INJECTOR }, { token: i2.TuiDropdownPortalService }], target: i0__namespace.ɵɵFactoryTarget.Directive });
400
403
  TuiDropdownDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container)", inputs: { content: ["tuiDropdown", "content"] }, providers: [
401
- i1$1.tuiAsRectAccessor(TuiDropdownDirective),
402
- i1$1.tuiAsVehicle(TuiDropdownDirective),
403
- {
404
- provide: i1.PolymorpheusComponent,
405
- deps: [TUI_DROPDOWN_COMPONENT, i0.INJECTOR],
406
- useClass: i1.PolymorpheusComponent,
407
- },
404
+ i1.tuiAsRectAccessor(TuiDropdownDirective),
405
+ i1.tuiAsVehicle(TuiDropdownDirective),
408
406
  ], exportAs: ["tuiDropdown"], usesOnChanges: true, ngImport: i0__namespace });
409
407
  __decorate([
410
408
  i2.tuiDefaultProp()
@@ -418,22 +416,20 @@
418
416
  selector: '[tuiDropdown]:not(ng-container)',
419
417
  exportAs: 'tuiDropdown',
420
418
  providers: [
421
- i1$1.tuiAsRectAccessor(TuiDropdownDirective),
422
- i1$1.tuiAsVehicle(TuiDropdownDirective),
423
- {
424
- provide: i1.PolymorpheusComponent,
425
- deps: [TUI_DROPDOWN_COMPONENT, i0.INJECTOR],
426
- useClass: i1.PolymorpheusComponent,
427
- },
419
+ i1.tuiAsRectAccessor(TuiDropdownDirective),
420
+ i1.tuiAsVehicle(TuiDropdownDirective),
428
421
  ],
429
422
  }]
430
423
  }], ctorParameters: function () {
431
424
  return [{ type: i0__namespace.ElementRef, decorators: [{
432
425
  type: i0.Inject,
433
426
  args: [i0.ElementRef]
434
- }] }, { type: i1__namespace.PolymorpheusComponent, decorators: [{
427
+ }] }, { type: i0__namespace.Type, decorators: [{
435
428
  type: i0.Inject,
436
- args: [i1.PolymorpheusComponent]
429
+ args: [TUI_DROPDOWN_COMPONENT]
430
+ }] }, { type: i0__namespace.Injector, decorators: [{
431
+ type: i0.Inject,
432
+ args: [i0.INJECTOR]
437
433
  }] }, { type: i2__namespace.TuiDropdownPortalService, decorators: [{
438
434
  type: i0.Inject,
439
435
  args: [i2.TuiDropdownPortalService]
@@ -462,22 +458,23 @@
462
458
  var _this = _super.call(this, function (subscriber) { return _this.stream$.subscribe(subscriber); }) || this;
463
459
  _this.hovered$ = hovered$;
464
460
  _this.options = options;
465
- _this.toggle$ = new i5.Subject();
466
- _this.stream$ = i5.merge(_this.toggle$, _this.hovered$).pipe(operators.switchMap(function (visible) { return i5.of(visible).pipe(operators.delay(visible ? _this.showDelay : _this.hideDelay)); }), operators.tap(function (visible) {
461
+ _this.toggle$ = new i1$1.Subject();
462
+ _this.stream$ = i1$1.merge(_this.toggle$, _this.hovered$).pipe(operators.switchMap(function (visible) { return i1$1.of(visible).pipe(operators.delay(visible ? _this.showDelay : _this.hideDelay)); }), operators.tap(function (visible) {
467
463
  _this.hovered = visible;
468
464
  }), operators.share());
469
465
  _this.showDelay = _this.options.showDelay;
470
466
  _this.hideDelay = _this.options.hideDelay;
471
467
  _this.hovered = false;
468
+ _this.type = 'dropdown';
472
469
  return _this;
473
470
  }
474
471
  TuiDropdownHoverDirective.prototype.toggle = function (visible) {
475
472
  this.toggle$.next(visible);
476
473
  };
477
474
  return TuiDropdownHoverDirective;
478
- }(i1$1.TuiDriver));
475
+ }(i1.TuiDriver));
479
476
  TuiDropdownHoverDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiDropdownHoverDirective, deps: [{ token: i2.TuiHoveredService }, { token: TUI_DROPDOWN_HOVER_OPTIONS }], target: i0__namespace.ɵɵFactoryTarget.Directive });
480
- TuiDropdownHoverDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiDropdownHoverDirective, selector: "[tuiDropdownHover]:not(ng-container)", inputs: { showDelay: ["tuiDropdownShowDelay", "showDelay"], hideDelay: ["tuiDropdownHideDelay", "hideDelay"] }, providers: [i1$1.tuiAsDriver(TuiDropdownHoverDirective), i2.TuiHoveredService], usesInheritance: true, ngImport: i0__namespace });
477
+ TuiDropdownHoverDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiDropdownHoverDirective, selector: "[tuiDropdownHover]:not(ng-container)", inputs: { showDelay: ["tuiDropdownShowDelay", "showDelay"], hideDelay: ["tuiDropdownHideDelay", "hideDelay"] }, providers: [i1.tuiAsDriver(TuiDropdownHoverDirective), i2.TuiHoveredService], usesInheritance: true, ngImport: i0__namespace });
481
478
  __decorate([
482
479
  i2.tuiDefaultProp()
483
480
  ], TuiDropdownHoverDirective.prototype, "showDelay", void 0);
@@ -488,10 +485,10 @@
488
485
  type: i0.Directive,
489
486
  args: [{
490
487
  selector: '[tuiDropdownHover]:not(ng-container)',
491
- providers: [i1$1.tuiAsDriver(TuiDropdownHoverDirective), i2.TuiHoveredService],
488
+ providers: [i1.tuiAsDriver(TuiDropdownHoverDirective), i2.TuiHoveredService],
492
489
  }]
493
490
  }], ctorParameters: function () {
494
- return [{ type: i5__namespace.Observable, decorators: [{
491
+ return [{ type: i1__namespace.Observable, decorators: [{
495
492
  type: i0.Inject,
496
493
  args: [i2.TuiHoveredService]
497
494
  }] }, { type: undefined, decorators: [{
@@ -675,36 +672,46 @@
675
672
  }
676
673
  };
677
674
  TuiDropdownComponent.prototype.moveFocusOutside = function (previous) {
678
- var host = document.createElement('div');
679
- var ownerDocument = host.ownerDocument;
680
- var root = ownerDocument ? ownerDocument.body : host;
681
- var focusable = i2.tuiGetClosestFocusable({ initial: host, root: root, previous: previous });
682
- while (focusable !== null && host.contains(focusable)) {
675
+ var nativeElement = this.directive.elementRef.nativeElement;
676
+ var ownerDocument = nativeElement.ownerDocument;
677
+ var root = ownerDocument ? ownerDocument.body : nativeElement;
678
+ var focusable = i2.tuiGetClosestFocusable({ initial: nativeElement, root: root, previous: previous });
679
+ while (focusable !== null && nativeElement.contains(focusable)) {
683
680
  focusable = i2.tuiGetClosestFocusable({ initial: focusable, root: root, previous: previous });
684
681
  }
685
682
  focusable === null || focusable === void 0 ? void 0 : focusable.focus();
686
683
  };
687
684
  return TuiDropdownComponent;
688
685
  }());
689
- TuiDropdownComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiDropdownComponent, deps: [{ token: services.TuiPositionService }, { token: i2.TuiDestroyService, self: true }, { token: TuiDropdownDirective }, { token: i0.ElementRef }, { token: i2.AbstractTuiPortalHostComponent }, { token: i1$1.TuiRectAccessor }, { token: common.WINDOW }, { token: tokens.TUI_ANIMATION_OPTIONS }, { token: TUI_DROPDOWN_OPTIONS }, { token: TuiDropdownHoverDirective, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
690
- TuiDropdownComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiDropdownComponent, selector: "tui-dropdown", host: { properties: { "@tuiDropdownAnimation": "this.dropdownAnimation" } }, providers: [i2.TuiDestroyService, services.TuiPositionService], ngImport: i0__namespace, template: "<div\n #activeZone=\"tuiActiveZone\"\n tuiActiveZone\n tuiOverscroll=\"all\"\n class=\"t-wrapper\"\n [tuiMode]=\"null\"\n (tuiHoveredChange)=\"onHoveredChange($event)\"\n>\n <tui-scrollbar class=\"t-scroll\">\n <div\n tabindex=\"0\"\n (focus)=\"onTopFocus()\"\n ></div>\n <div\n *polymorpheusOutlet=\"directive.content as text; context: {$implicit: activeZone}\"\n class=\"t-primitive\"\n >\n {{ text }}\n </div>\n <div\n tabindex=\"0\"\n (focus)=\"onBottomFocus()\"\n ></div>\n </tui-scrollbar>\n</div>\n", styles: [":host{position:relative;z-index:0;box-shadow:0 1.5rem 1rem rgba(0,0,0,.03),0 .75rem .75rem rgba(0,0,0,.04),0 .25rem .375rem rgba(0,0,0,.05);position:absolute;display:flex;background-color:var(--tui-elevation-01);border-radius:var(--tui-radius-m);overflow:hidden;border:1px solid var(--tui-base-04);box-sizing:border-box;max-width:calc(100% - 8px)}:host.ng-animating{pointer-events:none}:host:not([style*=\"top\"]){visibility:hidden}.t-wrapper{flex-grow:1;max-width:100%;max-height:inherit;overflow:visible}.t-scroll{height:100%}.t-primitive{padding:1rem}\n"], components: [{ type: i1__namespace$1.TuiScrollbarComponent, selector: "tui-scrollbar", inputs: ["hidden"] }], directives: [{ type: i2__namespace.TuiActiveZoneDirective, selector: "[tuiActiveZone]:not(ng-container), [tuiActiveZoneChange]:not(ng-container), [tuiActiveZoneParent]:not(ng-container)", inputs: ["tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange"], exportAs: ["tuiActiveZone"] }, { type: i2__namespace.TuiOverscrollDirective, selector: "[tuiOverscroll]", inputs: ["tuiOverscroll"] }, { type: i3__namespace.TuiModeDirective, selector: "[tuiMode]", inputs: ["tuiMode"] }, { type: i2__namespace.TuiHoveredDirective, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }, { type: i1__namespace.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], animations: [animations.tuiDropdownAnimation], changeDetection: i0__namespace.ChangeDetectionStrategy.Default });
686
+ TuiDropdownComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiDropdownComponent, deps: [{ token: services.TuiPositionService }, { token: i2.TuiDestroyService, self: true }, { token: TuiDropdownDirective }, { token: i0.ElementRef }, { token: i2.AbstractTuiPortalHostComponent }, { token: i1.TuiRectAccessor }, { token: common.WINDOW }, { token: tokens.TUI_ANIMATION_OPTIONS }, { token: TUI_DROPDOWN_OPTIONS }, { token: TuiDropdownHoverDirective, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
687
+ TuiDropdownComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiDropdownComponent, selector: "tui-dropdown", host: { properties: { "@tuiDropdownAnimation": "this.dropdownAnimation" } }, providers: [
688
+ i2.TuiDestroyService,
689
+ services.TuiPositionService,
690
+ i1.tuiPositionAccessorFor('dropdown'),
691
+ i1.tuiRectAccessorFor('dropdown', TuiDropdownDirective),
692
+ ], ngImport: i0__namespace, template: "<div\n #activeZone=\"tuiActiveZone\"\n tuiActiveZone\n tuiOverscroll=\"all\"\n class=\"t-wrapper\"\n [tuiMode]=\"null\"\n (tuiHoveredChange)=\"onHoveredChange($event)\"\n>\n <tui-scrollbar class=\"t-scroll\">\n <div\n tabindex=\"0\"\n (focus)=\"onTopFocus()\"\n ></div>\n <div\n *polymorpheusOutlet=\"directive.content as text; context: {$implicit: activeZone}\"\n class=\"t-primitive\"\n >\n {{ text }}\n </div>\n <div\n tabindex=\"0\"\n (focus)=\"onBottomFocus()\"\n ></div>\n </tui-scrollbar>\n</div>\n", styles: [":host{position:relative;z-index:0;box-shadow:0 1.5rem 1rem rgba(0,0,0,.03),0 .75rem .75rem rgba(0,0,0,.04),0 .25rem .375rem rgba(0,0,0,.05);position:absolute;display:flex;background-color:var(--tui-elevation-01);border-radius:var(--tui-radius-m);overflow:hidden;border:1px solid var(--tui-base-04);box-sizing:border-box;max-width:calc(100% - 8px)}:host.ng-animating{pointer-events:none}:host:not([style*=\"top\"]){visibility:hidden}.t-wrapper{flex-grow:1;max-width:100%;max-height:inherit;overflow:visible}.t-scroll{height:100%}.t-primitive{padding:1rem}\n"], components: [{ type: i1__namespace$1.TuiScrollbarComponent, selector: "tui-scrollbar", inputs: ["hidden"] }], directives: [{ type: i2__namespace.TuiActiveZoneDirective, selector: "[tuiActiveZone]:not(ng-container), [tuiActiveZoneChange]:not(ng-container), [tuiActiveZoneParent]:not(ng-container)", inputs: ["tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange"], exportAs: ["tuiActiveZone"] }, { type: i2__namespace.TuiOverscrollDirective, selector: "[tuiOverscroll]", inputs: ["tuiOverscroll"] }, { type: i3__namespace.TuiModeDirective, selector: "[tuiMode]", inputs: ["tuiMode"] }, { type: i2__namespace.TuiHoveredDirective, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }, { type: i4__namespace.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], animations: [animations.tuiDropdownAnimation], changeDetection: i0__namespace.ChangeDetectionStrategy.Default });
691
693
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiDropdownComponent, decorators: [{
692
694
  type: i0.Component,
693
695
  args: [{
694
696
  selector: 'tui-dropdown',
695
697
  templateUrl: './dropdown.template.html',
696
698
  styleUrls: ['./dropdown.style.less'],
697
- providers: [i2.TuiDestroyService, services.TuiPositionService],
699
+ providers: [
700
+ i2.TuiDestroyService,
701
+ services.TuiPositionService,
702
+ i1.tuiPositionAccessorFor('dropdown'),
703
+ i1.tuiRectAccessorFor('dropdown', TuiDropdownDirective),
704
+ ],
698
705
  animations: [animations.tuiDropdownAnimation],
699
706
  // @bad TODO: OnPush
700
707
  // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
701
708
  changeDetection: i0.ChangeDetectionStrategy.Default,
702
709
  }]
703
710
  }], ctorParameters: function () {
704
- return [{ type: i5__namespace.Observable, decorators: [{
711
+ return [{ type: i1__namespace.Observable, decorators: [{
705
712
  type: i0.Inject,
706
713
  args: [services.TuiPositionService]
707
- }] }, { type: i5__namespace.Observable, decorators: [{
714
+ }] }, { type: i1__namespace.Observable, decorators: [{
708
715
  type: i0.Self
709
716
  }, {
710
717
  type: i0.Inject,
@@ -720,7 +727,7 @@
720
727
  args: [i2.AbstractTuiPortalHostComponent]
721
728
  }] }, { type: i1__namespace$2.TuiRectAccessor, decorators: [{
722
729
  type: i0.Inject,
723
- args: [i1$1.TuiRectAccessor]
730
+ args: [i1.TuiRectAccessor]
724
731
  }] }, { type: Window, decorators: [{
725
732
  type: i0.Inject,
726
733
  args: [common.WINDOW]
@@ -749,8 +756,9 @@
749
756
  function TuiDropdownContextDirective(activeZone) {
750
757
  var _this = _super.call(this, function (subscriber) { return _this.stream$.subscribe(subscriber); }) || this;
751
758
  _this.activeZone = activeZone;
752
- _this.stream$ = new i5.Subject();
759
+ _this.stream$ = new i1$1.Subject();
753
760
  _this.currentRect = i2.EMPTY_CLIENT_RECT;
761
+ _this.type = 'dropdown';
754
762
  return _this;
755
763
  }
756
764
  TuiDropdownContextDirective.prototype.onContextMenu = function (x, y) {
@@ -764,12 +772,12 @@
764
772
  return this.currentRect;
765
773
  };
766
774
  return TuiDropdownContextDirective;
767
- }(i1$1.TuiDriver));
775
+ }(i1.TuiDriver));
768
776
  TuiDropdownContextDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiDropdownContextDirective, deps: [{ token: i2.TuiActiveZoneDirective }], target: i0__namespace.ɵɵFactoryTarget.Directive });
769
777
  TuiDropdownContextDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiDropdownContextDirective, selector: "[tuiDropdown][tuiDropdownContext]", host: { listeners: { "contextmenu.prevent.stop": "onContextMenu($event.clientX,$event.clientY)", "document:click.silent": "closeDropdown($event.target)", "document:contextmenu.capture.silent": "closeDropdown($event.target)", "document:keydown.esc": "closeDropdown($event.currentTarget)" } }, providers: [
770
778
  i2.TuiActiveZoneDirective,
771
- i1$1.tuiAsDriver(TuiDropdownContextDirective),
772
- i1$1.tuiAsRectAccessor(TuiDropdownContextDirective),
779
+ i1.tuiAsDriver(TuiDropdownContextDirective),
780
+ i1.tuiAsRectAccessor(TuiDropdownContextDirective),
773
781
  ], usesInheritance: true, ngImport: i0__namespace });
774
782
  __decorate([
775
783
  ngEventPlugins.shouldCall(activeZoneFilter)
@@ -780,8 +788,8 @@
780
788
  selector: '[tuiDropdown][tuiDropdownContext]',
781
789
  providers: [
782
790
  i2.TuiActiveZoneDirective,
783
- i1$1.tuiAsDriver(TuiDropdownContextDirective),
784
- i1$1.tuiAsRectAccessor(TuiDropdownContextDirective),
791
+ i1.tuiAsDriver(TuiDropdownContextDirective),
792
+ i1.tuiAsRectAccessor(TuiDropdownContextDirective),
785
793
  ],
786
794
  }]
787
795
  }], ctorParameters: function () {
@@ -805,12 +813,15 @@
805
813
 
806
814
  var TuiDropdownDriverDirective = /** @class */ (function (_super) {
807
815
  __extends(TuiDropdownDriverDirective, _super);
808
- function TuiDropdownDriverDirective() {
809
- return _super !== null && _super.apply(this, arguments) || this;
816
+ // TODO: Figure out why this is necessary under nx test runner
817
+ function TuiDropdownDriverDirective(destroy$, drivers, vehicles) {
818
+ var _this = _super.call(this, destroy$, drivers, vehicles) || this;
819
+ _this.type = 'dropdown';
820
+ return _this;
810
821
  }
811
822
  return TuiDropdownDriverDirective;
812
- }(i1$1.AbstractTuiDriverDirective));
813
- TuiDropdownDriverDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiDropdownDriverDirective, deps: null, target: i0__namespace.ɵɵFactoryTarget.Directive });
823
+ }(i1.AbstractTuiDriverDirective));
824
+ TuiDropdownDriverDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiDropdownDriverDirective, deps: [{ token: i2.TuiDestroyService, self: true }, { token: i1.TuiDriver }, { token: i1.TuiVehicle }], target: i0__namespace.ɵɵFactoryTarget.Directive });
814
825
  TuiDropdownDriverDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiDropdownDriverDirective, selector: "[tuiDropdown]", providers: [i2.TuiDestroyService], usesInheritance: true, ngImport: i0__namespace });
815
826
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiDropdownDriverDirective, decorators: [{
816
827
  type: i0.Directive,
@@ -818,26 +829,41 @@
818
829
  selector: '[tuiDropdown]',
819
830
  providers: [i2.TuiDestroyService],
820
831
  }]
821
- }] });
832
+ }], ctorParameters: function () {
833
+ return [{ type: i1__namespace.Observable, decorators: [{
834
+ type: i0.Self
835
+ }, {
836
+ type: i0.Inject,
837
+ args: [i2.TuiDestroyService]
838
+ }] }, { type: undefined, decorators: [{
839
+ type: i0.Inject,
840
+ args: [i1.TuiDriver]
841
+ }] }, { type: undefined, decorators: [{
842
+ type: i0.Inject,
843
+ args: [i1.TuiVehicle]
844
+ }] }];
845
+ } });
822
846
 
823
847
  var TuiDropdownHostDirective = /** @class */ (function (_super) {
824
848
  __extends(TuiDropdownHostDirective, _super);
825
849
  function TuiDropdownHostDirective() {
826
- return _super !== null && _super.apply(this, arguments) || this;
850
+ var _this = _super.apply(this, __spreadArray([], __read(arguments))) || this;
851
+ _this.type = 'dropdown';
852
+ return _this;
827
853
  }
828
854
  TuiDropdownHostDirective.prototype.getClientRect = function () {
829
855
  var _a;
830
856
  return ((_a = this.tuiDropdownHost) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect()) || i2.EMPTY_CLIENT_RECT;
831
857
  };
832
858
  return TuiDropdownHostDirective;
833
- }(i1$1.TuiRectAccessor));
859
+ }(i1.TuiRectAccessor));
834
860
  TuiDropdownHostDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiDropdownHostDirective, deps: null, target: i0__namespace.ɵɵFactoryTarget.Directive });
835
- TuiDropdownHostDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiDropdownHostDirective, selector: "[tuiDropdown][tuiDropdownHost]", inputs: { tuiDropdownHost: "tuiDropdownHost" }, providers: [i1$1.tuiAsRectAccessor(TuiDropdownHostDirective)], usesInheritance: true, ngImport: i0__namespace });
861
+ TuiDropdownHostDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiDropdownHostDirective, selector: "[tuiDropdown][tuiDropdownHost]", inputs: { tuiDropdownHost: "tuiDropdownHost" }, providers: [i1.tuiAsRectAccessor(TuiDropdownHostDirective)], usesInheritance: true, ngImport: i0__namespace });
836
862
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiDropdownHostDirective, decorators: [{
837
863
  type: i0.Directive,
838
864
  args: [{
839
865
  selector: '[tuiDropdown][tuiDropdownHost]',
840
- providers: [i1$1.tuiAsRectAccessor(TuiDropdownHostDirective)],
866
+ providers: [i1.tuiAsRectAccessor(TuiDropdownHostDirective)],
841
867
  }]
842
868
  }], propDecorators: { tuiDropdownHost: [{
843
869
  type: i0.Input
@@ -847,38 +873,45 @@
847
873
  __extends(TuiDropdownManualDirective, _super);
848
874
  function TuiDropdownManualDirective() {
849
875
  var _this = _super.call(this, function (subscriber) { return _this.stream$.subscribe(subscriber); }) || this;
850
- _this.stream$ = new i5.Subject();
876
+ _this.stream$ = new i1$1.BehaviorSubject(false);
851
877
  _this.tuiDropdownManual = false;
878
+ _this.type = 'dropdown';
852
879
  return _this;
853
880
  }
854
881
  TuiDropdownManualDirective.prototype.ngOnChanges = function () {
855
882
  this.stream$.next(this.tuiDropdownManual);
856
883
  };
857
884
  return TuiDropdownManualDirective;
858
- }(i1$1.TuiDriver));
885
+ }(i1.TuiDriver));
859
886
  TuiDropdownManualDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiDropdownManualDirective, deps: [], target: i0__namespace.ɵɵFactoryTarget.Directive });
860
- TuiDropdownManualDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiDropdownManualDirective, selector: "[tuiDropdown][tuiDropdownManual]", inputs: { tuiDropdownManual: "tuiDropdownManual" }, providers: [i1$1.tuiAsDriver(TuiDropdownManualDirective)], usesInheritance: true, usesOnChanges: true, ngImport: i0__namespace });
887
+ TuiDropdownManualDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiDropdownManualDirective, selector: "[tuiDropdown][tuiDropdownManual]", inputs: { tuiDropdownManual: "tuiDropdownManual" }, providers: [i1.tuiAsDriver(TuiDropdownManualDirective)], usesInheritance: true, usesOnChanges: true, ngImport: i0__namespace });
861
888
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiDropdownManualDirective, decorators: [{
862
889
  type: i0.Directive,
863
890
  args: [{
864
891
  selector: '[tuiDropdown][tuiDropdownManual]',
865
- providers: [i1$1.tuiAsDriver(TuiDropdownManualDirective)],
892
+ providers: [i1.tuiAsDriver(TuiDropdownManualDirective)],
866
893
  }]
867
894
  }], ctorParameters: function () { return []; }, propDecorators: { tuiDropdownManual: [{
868
895
  type: i0.Input
869
896
  }] } });
870
897
 
871
- var TuiDropdownPositionDirective = /** @class */ (function () {
872
- function TuiDropdownPositionDirective(options, viewport, accessor) {
873
- this.options = options;
874
- this.viewport = viewport;
875
- this.accessor = accessor;
898
+ var TuiDropdownPositionDirective = /** @class */ (function (_super) {
899
+ __extends(TuiDropdownPositionDirective, _super);
900
+ function TuiDropdownPositionDirective(options, viewport, accessors, directive) {
901
+ var _this = _super.call(this) || this;
902
+ _this.options = options;
903
+ _this.viewport = viewport;
904
+ _this.accessors = accessors;
905
+ _this.directive = directive;
906
+ _this.type = 'dropdown';
907
+ return _this;
876
908
  }
877
- TuiDropdownPositionDirective.prototype.getPosition = function (_a) {
878
- var width = _a.width, height = _a.height;
879
- var hostRect = this.accessor.getClientRect();
909
+ TuiDropdownPositionDirective.prototype.getPosition = function (_c) {
910
+ var width = _c.width, height = _c.height;
911
+ var _a, _b;
912
+ var hostRect = (_b = (_a = this.accessor) === null || _a === void 0 ? void 0 : _a.getClientRect()) !== null && _b !== void 0 ? _b : i2.EMPTY_CLIENT_RECT;
880
913
  var viewport = this.viewport.getClientRect();
881
- var _b = this.options, minHeight = _b.minHeight, align = _b.align, direction = _b.direction, offset = _b.offset;
914
+ var _d = this.options, minHeight = _d.minHeight, align = _d.align, direction = _d.direction, offset = _d.offset;
882
915
  var previous = this.previous || direction || 'bottom';
883
916
  var right = Math.max(hostRect.right - width, offset);
884
917
  var available = {
@@ -899,15 +932,25 @@
899
932
  this.previous = better;
900
933
  return [position[better], position[align]];
901
934
  };
935
+ Object.defineProperty(TuiDropdownPositionDirective.prototype, "accessor", {
936
+ get: function () {
937
+ return i1.tuiFallbackRectAccessor('dropdown')(this.accessors, this.directive);
938
+ },
939
+ enumerable: false,
940
+ configurable: true
941
+ });
902
942
  return TuiDropdownPositionDirective;
903
- }());
904
- TuiDropdownPositionDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiDropdownPositionDirective, deps: [{ token: TUI_DROPDOWN_OPTIONS }, { token: tokens.TUI_VIEWPORT }, { token: i1$1.TuiRectAccessor }], target: i0__namespace.ɵɵFactoryTarget.Directive });
905
- TuiDropdownPositionDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiDropdownPositionDirective, selector: "[tuiDropdown]:not([tuiDropdownCustomPosition]):not([tuiDropdownSided])", providers: [i1$1.tuiAsPositionAccessor(TuiDropdownPositionDirective)], ngImport: i0__namespace });
943
+ }(i1.TuiPositionAccessor));
944
+ TuiDropdownPositionDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiDropdownPositionDirective, deps: [{ token: TUI_DROPDOWN_OPTIONS }, { token: tokens.TUI_VIEWPORT }, { token: i1.TuiRectAccessor }, { token: TuiDropdownDirective }], target: i0__namespace.ɵɵFactoryTarget.Directive });
945
+ TuiDropdownPositionDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiDropdownPositionDirective, selector: "[tuiDropdown]:not([tuiDropdownCustomPosition]):not([tuiDropdownSided])", providers: [i1.tuiAsPositionAccessor(TuiDropdownPositionDirective)], usesInheritance: true, ngImport: i0__namespace });
946
+ __decorate([
947
+ i2.tuiPure
948
+ ], TuiDropdownPositionDirective.prototype, "accessor", null);
906
949
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiDropdownPositionDirective, decorators: [{
907
950
  type: i0.Directive,
908
951
  args: [{
909
952
  selector: '[tuiDropdown]:not([tuiDropdownCustomPosition]):not([tuiDropdownSided])',
910
- providers: [i1$1.tuiAsPositionAccessor(TuiDropdownPositionDirective)],
953
+ providers: [i1.tuiAsPositionAccessor(TuiDropdownPositionDirective)],
911
954
  }]
912
955
  }], ctorParameters: function () {
913
956
  return [{ type: undefined, decorators: [{
@@ -916,30 +959,37 @@
916
959
  }] }, { type: i1__namespace$2.TuiRectAccessor, decorators: [{
917
960
  type: i0.Inject,
918
961
  args: [tokens.TUI_VIEWPORT]
919
- }] }, { type: i1__namespace$2.TuiRectAccessor, decorators: [{
962
+ }] }, { type: undefined, decorators: [{
963
+ type: i0.Inject,
964
+ args: [i1.TuiRectAccessor]
965
+ }] }, { type: TuiDropdownDirective, decorators: [{
920
966
  type: i0.Inject,
921
- args: [i1$1.TuiRectAccessor]
967
+ args: [TuiDropdownDirective]
922
968
  }] }];
923
- } });
969
+ }, propDecorators: { accessor: [] } });
924
970
 
925
- var TuiDropdownPositionSidedDirective = /** @class */ (function () {
926
- function TuiDropdownPositionSidedDirective(options, viewport, accessor, vertical) {
927
- this.options = options;
928
- this.viewport = viewport;
929
- this.accessor = accessor;
930
- this.vertical = vertical;
931
- this.previous = this.options.direction || 'bottom';
932
- this.tuiDropdownSided = '';
933
- this.tuiDropdownSidedOffset = 4;
971
+ var TuiDropdownPositionSidedDirective = /** @class */ (function (_super) {
972
+ __extends(TuiDropdownPositionSidedDirective, _super);
973
+ function TuiDropdownPositionSidedDirective(options, viewport, vertical) {
974
+ var _this = _super.call(this) || this;
975
+ _this.options = options;
976
+ _this.viewport = viewport;
977
+ _this.vertical = vertical;
978
+ _this.previous = _this.options.direction || 'bottom';
979
+ _this.tuiDropdownSided = '';
980
+ _this.tuiDropdownSidedOffset = 4;
981
+ _this.type = 'dropdown';
982
+ return _this;
934
983
  }
935
984
  TuiDropdownPositionSidedDirective.prototype.getPosition = function (rect) {
985
+ var _a, _b;
936
986
  if (this.tuiDropdownSided === false) {
937
987
  return this.vertical.getPosition(rect);
938
988
  }
939
989
  var height = rect.height, width = rect.width;
940
- var hostRect = this.accessor.getClientRect();
990
+ var hostRect = (_b = (_a = this.vertical.accessor) === null || _a === void 0 ? void 0 : _a.getClientRect()) !== null && _b !== void 0 ? _b : i2.EMPTY_CLIENT_RECT;
941
991
  var viewport = this.viewport.getClientRect();
942
- var _a = this.options, align = _a.align, direction = _a.direction, minHeight = _a.minHeight, offset = _a.offset;
992
+ var _c = this.options, align = _c.align, direction = _c.direction, minHeight = _c.minHeight, offset = _c.offset;
943
993
  var available = {
944
994
  top: hostRect.bottom - viewport.top,
945
995
  left: hostRect.left - offset - viewport.left,
@@ -963,19 +1013,19 @@
963
1013
  return [position[better], left];
964
1014
  };
965
1015
  return TuiDropdownPositionSidedDirective;
966
- }());
967
- TuiDropdownPositionSidedDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiDropdownPositionSidedDirective, deps: [{ token: TUI_DROPDOWN_OPTIONS }, { token: tokens.TUI_VIEWPORT }, { token: i1$1.TuiRectAccessor }, { token: TuiDropdownPositionDirective }], target: i0__namespace.ɵɵFactoryTarget.Directive });
1016
+ }(i1.TuiPositionAccessor));
1017
+ TuiDropdownPositionSidedDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiDropdownPositionSidedDirective, deps: [{ token: TUI_DROPDOWN_OPTIONS }, { token: tokens.TUI_VIEWPORT }, { token: TuiDropdownPositionDirective }], target: i0__namespace.ɵɵFactoryTarget.Directive });
968
1018
  TuiDropdownPositionSidedDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiDropdownPositionSidedDirective, selector: "[tuiDropdownSided]", inputs: { tuiDropdownSided: "tuiDropdownSided", tuiDropdownSidedOffset: "tuiDropdownSidedOffset" }, providers: [
969
1019
  TuiDropdownPositionDirective,
970
- i1$1.tuiAsPositionAccessor(TuiDropdownPositionSidedDirective),
971
- ], ngImport: i0__namespace });
1020
+ i1.tuiAsPositionAccessor(TuiDropdownPositionSidedDirective),
1021
+ ], usesInheritance: true, ngImport: i0__namespace });
972
1022
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiDropdownPositionSidedDirective, decorators: [{
973
1023
  type: i0.Directive,
974
1024
  args: [{
975
1025
  selector: '[tuiDropdownSided]',
976
1026
  providers: [
977
1027
  TuiDropdownPositionDirective,
978
- i1$1.tuiAsPositionAccessor(TuiDropdownPositionSidedDirective),
1028
+ i1.tuiAsPositionAccessor(TuiDropdownPositionSidedDirective),
979
1029
  ],
980
1030
  }]
981
1031
  }], ctorParameters: function () {
@@ -985,10 +1035,7 @@
985
1035
  }] }, { type: i1__namespace$2.TuiRectAccessor, decorators: [{
986
1036
  type: i0.Inject,
987
1037
  args: [tokens.TUI_VIEWPORT]
988
- }] }, { type: i1__namespace$2.TuiRectAccessor, decorators: [{
989
- type: i0.Inject,
990
- args: [i1$1.TuiRectAccessor]
991
- }] }, { type: i1__namespace$2.TuiPositionAccessor, decorators: [{
1038
+ }] }, { type: TuiDropdownPositionDirective, decorators: [{
992
1039
  type: i0.Inject,
993
1040
  args: [TuiDropdownPositionDirective]
994
1041
  }] }];
@@ -1008,8 +1055,8 @@
1008
1055
  _this.elementRef = elementRef;
1009
1056
  _this.viewContainerRef = viewContainerRef;
1010
1057
  _this.dropdown = dropdown;
1011
- _this.handler$ = new i5.BehaviorSubject(i2.ALWAYS_TRUE_HANDLER);
1012
- _this.stream$ = i5.combineLatest([
1058
+ _this.handler$ = new i1$1.BehaviorSubject(i2.ALWAYS_TRUE_HANDLER);
1059
+ _this.stream$ = i1$1.combineLatest([
1013
1060
  _this.handler$,
1014
1061
  _this.selection$.pipe(operators.map(function () { return _this.getRange(); }), operators.distinctUntilChanged()),
1015
1062
  ]).pipe(operators.map(function (_b) {
@@ -1022,6 +1069,7 @@
1022
1069
  return (contained && handler(_this.range)) || _this.inDropdown(range);
1023
1070
  }));
1024
1071
  _this.position = 'selection';
1072
+ _this.type = 'dropdown';
1025
1073
  return _this;
1026
1074
  }
1027
1075
  Object.defineProperty(TuiDropdownSelectionDirective.prototype, "tuiDropdownSelection", {
@@ -1117,11 +1165,11 @@
1117
1165
  return ghost;
1118
1166
  };
1119
1167
  return TuiDropdownSelectionDirective;
1120
- }(i1$1.TuiDriver));
1168
+ }(i1.TuiDriver));
1121
1169
  TuiDropdownSelectionDirective.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiDropdownSelectionDirective, deps: [{ token: i2.TUI_RANGE }, { token: common$1.DOCUMENT }, { token: tokens.TUI_SELECTION_STREAM }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: TuiDropdownDirective }], target: i0__namespace.ɵɵFactoryTarget.Directive });
1122
1170
  TuiDropdownSelectionDirective.ɵdir = i0__namespace.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiDropdownSelectionDirective, selector: "[tuiDropdown][tuiDropdownSelection]", inputs: { position: ["tuiDropdownSelectionPosition", "position"], tuiDropdownSelection: "tuiDropdownSelection" }, providers: [
1123
- i1$1.tuiAsDriver(TuiDropdownSelectionDirective),
1124
- i1$1.tuiAsRectAccessor(TuiDropdownSelectionDirective),
1171
+ i1.tuiAsDriver(TuiDropdownSelectionDirective),
1172
+ i1.tuiAsRectAccessor(TuiDropdownSelectionDirective),
1125
1173
  ], usesInheritance: true, ngImport: i0__namespace });
1126
1174
  __decorate([
1127
1175
  i2.tuiDefaultProp()
@@ -1131,8 +1179,8 @@
1131
1179
  args: [{
1132
1180
  selector: '[tuiDropdown][tuiDropdownSelection]',
1133
1181
  providers: [
1134
- i1$1.tuiAsDriver(TuiDropdownSelectionDirective),
1135
- i1$1.tuiAsRectAccessor(TuiDropdownSelectionDirective),
1182
+ i1.tuiAsDriver(TuiDropdownSelectionDirective),
1183
+ i1.tuiAsRectAccessor(TuiDropdownSelectionDirective),
1136
1184
  ],
1137
1185
  }]
1138
1186
  }], ctorParameters: function () {
@@ -1142,7 +1190,7 @@
1142
1190
  }] }, { type: Document, decorators: [{
1143
1191
  type: i0.Inject,
1144
1192
  args: [common$1.DOCUMENT]
1145
- }] }, { type: i5__namespace.Observable, decorators: [{
1193
+ }] }, { type: i1__namespace.Observable, decorators: [{
1146
1194
  type: i0.Inject,
1147
1195
  args: [tokens.TUI_SELECTION_STREAM]
1148
1196
  }] }, { type: i0__namespace.ElementRef, decorators: [{
@@ -1178,7 +1226,7 @@
1178
1226
  TuiDropdownContextDirective,
1179
1227
  TuiDropdownPositionDirective,
1180
1228
  TuiDropdownPositionSidedDirective,
1181
- TuiDropdownSelectionDirective], imports: [i1.PolymorpheusModule,
1229
+ TuiDropdownSelectionDirective], imports: [i4.PolymorpheusModule,
1182
1230
  i2.TuiActiveZoneModule,
1183
1231
  i2.TuiOverscrollModule,
1184
1232
  i1$2.TuiScrollbarModule,
@@ -1195,7 +1243,7 @@
1195
1243
  TuiDropdownPositionSidedDirective,
1196
1244
  TuiDropdownSelectionDirective] });
1197
1245
  TuiDropdownModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: TuiDropdownModule, imports: [[
1198
- i1.PolymorpheusModule,
1246
+ i4.PolymorpheusModule,
1199
1247
  i2.TuiActiveZoneModule,
1200
1248
  i2.TuiOverscrollModule,
1201
1249
  i1$2.TuiScrollbarModule,
@@ -1206,7 +1254,7 @@
1206
1254
  type: i0.NgModule,
1207
1255
  args: [{
1208
1256
  imports: [
1209
- i1.PolymorpheusModule,
1257
+ i4.PolymorpheusModule,
1210
1258
  i2.TuiActiveZoneModule,
1211
1259
  i2.TuiOverscrollModule,
1212
1260
  i1$2.TuiScrollbarModule,