@taiga-ui/core 3.40.0 → 3.41.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 (90) hide show
  1. package/README.md +3 -3
  2. package/bundles/taiga-ui-core-components-alert.umd.js +21 -9
  3. package/bundles/taiga-ui-core-components-alert.umd.js.map +1 -1
  4. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js +79 -24
  5. package/bundles/taiga-ui-core-components-hosted-dropdown.umd.js.map +1 -1
  6. package/bundles/taiga-ui-core-components-root.umd.js +1 -1
  7. package/bundles/taiga-ui-core-components-root.umd.js.map +1 -1
  8. package/bundles/taiga-ui-core-constants.umd.js +1 -1
  9. package/bundles/taiga-ui-core-constants.umd.js.map +1 -1
  10. package/bundles/taiga-ui-core-directives-dropdown.umd.js +52 -2
  11. package/bundles/taiga-ui-core-directives-dropdown.umd.js.map +1 -1
  12. package/bundles/taiga-ui-core-directives-textfield-controller.umd.js +1 -1
  13. package/bundles/taiga-ui-core-directives-textfield-controller.umd.js.map +1 -1
  14. package/bundles/taiga-ui-core-utils-format.umd.js +1 -1
  15. package/bundles/taiga-ui-core-utils-format.umd.js.map +1 -1
  16. package/bundles/taiga-ui-core-utils-mask.umd.js +6 -6
  17. package/bundles/taiga-ui-core-utils-mask.umd.js.map +1 -1
  18. package/components/alert/alert.component.d.ts +12 -4
  19. package/components/alert/alert.providers.d.ts +2 -0
  20. package/components/alert/index.d.ts +1 -0
  21. package/components/hosted-dropdown/dropdown-open-monitor.directive.d.ts +10 -0
  22. package/components/hosted-dropdown/hosted-dropdown.module.d.ts +8 -7
  23. package/components/hosted-dropdown/hosted-dropdown.token.d.ts +3 -0
  24. package/components/hosted-dropdown/index.d.ts +1 -0
  25. package/constants/cache-basting-payload.d.ts +1 -1
  26. package/constants/mask-caret-trap.d.ts +1 -1
  27. package/directives/dropdown/dropdown-open.directive.d.ts +10 -0
  28. package/directives/dropdown/dropdown.directive.d.ts +4 -2
  29. package/directives/dropdown/dropdown.module.d.ts +14 -13
  30. package/directives/dropdown/index.d.ts +1 -0
  31. package/esm2015/components/alert/alert.component.js +19 -11
  32. package/esm2015/components/alert/alert.providers.js +6 -0
  33. package/esm2015/components/alert/index.js +2 -1
  34. package/esm2015/components/hosted-dropdown/dropdown-open-monitor.directive.js +45 -0
  35. package/esm2015/components/hosted-dropdown/hosted-dropdown.component.js +16 -6
  36. package/esm2015/components/hosted-dropdown/hosted-dropdown.module.js +4 -1
  37. package/esm2015/components/hosted-dropdown/hosted-dropdown.token.js +3 -0
  38. package/esm2015/components/hosted-dropdown/index.js +2 -1
  39. package/esm2015/components/root/root.component.js +1 -1
  40. package/esm2015/constants/mask-caret-trap.js +2 -2
  41. package/esm2015/directives/dropdown/dropdown-open.directive.js +24 -0
  42. package/esm2015/directives/dropdown/dropdown.directive.js +24 -4
  43. package/esm2015/directives/dropdown/dropdown.module.js +6 -1
  44. package/esm2015/directives/dropdown/index.js +2 -1
  45. package/esm2015/directives/textfield-controller/textfield-appearance.directive.js +2 -2
  46. package/esm2015/mask/text-mask-config.js +1 -1
  47. package/esm2015/mask/text-mask-correction-handler.js +1 -1
  48. package/esm2015/mask/text-mask-list-handler.js +1 -1
  49. package/esm2015/mask/text-mask-list.js +1 -1
  50. package/esm2015/mask/text-mask-options.js +1 -1
  51. package/esm2015/mask/text-mask-pipe-handler.js +1 -1
  52. package/esm2015/mask/text-mask-pipe-result.js +1 -1
  53. package/esm2015/utils/format/format-phone.js +2 -2
  54. package/esm2015/utils/mask/create-auto-corrected-money-pipe.js +2 -2
  55. package/esm2015/utils/mask/create-correction-mask.js +2 -2
  56. package/esm2015/utils/mask/create-number-mask.js +2 -2
  57. package/esm2015/utils/mask/enable-auto-correct-decimal-symbol.js +2 -2
  58. package/esm2015/utils/mask/masked-money-value-is-empty.js +2 -2
  59. package/esm2015/utils/mask/masked-number-string-to-number.js +2 -2
  60. package/fesm2015/taiga-ui-core-components-alert.js +24 -13
  61. package/fesm2015/taiga-ui-core-components-alert.js.map +1 -1
  62. package/fesm2015/taiga-ui-core-components-hosted-dropdown.js +65 -13
  63. package/fesm2015/taiga-ui-core-components-hosted-dropdown.js.map +1 -1
  64. package/fesm2015/taiga-ui-core-components-root.js +1 -1
  65. package/fesm2015/taiga-ui-core-components-root.js.map +1 -1
  66. package/fesm2015/taiga-ui-core-constants.js +1 -1
  67. package/fesm2015/taiga-ui-core-constants.js.map +1 -1
  68. package/fesm2015/taiga-ui-core-directives-dropdown.js +48 -4
  69. package/fesm2015/taiga-ui-core-directives-dropdown.js.map +1 -1
  70. package/fesm2015/taiga-ui-core-directives-textfield-controller.js +1 -1
  71. package/fesm2015/taiga-ui-core-directives-textfield-controller.js.map +1 -1
  72. package/fesm2015/taiga-ui-core-utils-format.js +1 -1
  73. package/fesm2015/taiga-ui-core-utils-format.js.map +1 -1
  74. package/fesm2015/taiga-ui-core-utils-mask.js +6 -6
  75. package/fesm2015/taiga-ui-core-utils-mask.js.map +1 -1
  76. package/mask/text-mask-config.d.ts +1 -1
  77. package/mask/text-mask-correction-handler.d.ts +1 -1
  78. package/mask/text-mask-list-handler.d.ts +1 -1
  79. package/mask/text-mask-list.d.ts +1 -1
  80. package/mask/text-mask-options.d.ts +1 -1
  81. package/mask/text-mask-pipe-handler.d.ts +1 -1
  82. package/mask/text-mask-pipe-result.d.ts +1 -1
  83. package/package.json +6 -6
  84. package/utils/format/format-phone.d.ts +1 -1
  85. package/utils/mask/create-auto-corrected-money-pipe.d.ts +1 -1
  86. package/utils/mask/create-correction-mask.d.ts +1 -1
  87. package/utils/mask/create-number-mask.d.ts +1 -1
  88. package/utils/mask/enable-auto-correct-decimal-symbol.d.ts +1 -1
  89. package/utils/mask/masked-money-value-is-empty.d.ts +1 -1
  90. package/utils/mask/masked-number-string-to-number.d.ts +1 -1
@@ -1,18 +1,21 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Optional, SkipSelf, Directive, EventEmitter, ElementRef, Self, Component, ChangeDetectionStrategy, Inject, ContentChild, ViewChild, Input, Output, HostBinding, HostListener, NgModule } from '@angular/core';
2
+ import { Optional, SkipSelf, Directive, InjectionToken, Self, Inject, EventEmitter, ElementRef, Component, ChangeDetectionStrategy, ContentChild, ViewChild, Input, Output, HostBinding, HostListener, NgModule } from '@angular/core';
3
3
  import { TuiPositionAccessor } from '@taiga-ui/core/abstract';
4
+ import * as i1$1 from '@taiga-ui/cdk';
5
+ import { TuiDestroyService, tuiIsNativeKeyboardFocusable, tuiGetClosestFocusable, tuiIsNativeFocusedIn, tuiIsHTMLElement, tuiIsElementEditable, tuiIsElement, tuiAsFocusableItemAccessor, TuiActiveZoneDirective, TuiLetModule, TuiObscuredModule, TuiActiveZoneModule } from '@taiga-ui/cdk';
6
+ import * as i2 from '@taiga-ui/core/directives';
7
+ import { TuiDropdownDirective, TuiDropdownOpenDirective } from '@taiga-ui/core/directives';
8
+ import { filter, takeUntil, skip, distinctUntilChanged } from 'rxjs/operators';
9
+ import * as i1 from 'rxjs';
10
+ import { BehaviorSubject, merge, EMPTY } from 'rxjs';
4
11
  import { __decorate } from 'tslib';
5
- import * as i1 from '@taiga-ui/cdk';
6
- import { tuiIsNativeKeyboardFocusable, tuiGetClosestFocusable, tuiIsNativeFocusedIn, tuiIsHTMLElement, tuiIsElementEditable, tuiIsElement, tuiAsFocusableItemAccessor, TuiActiveZoneDirective, TuiLetModule, TuiObscuredModule, TuiActiveZoneModule } from '@taiga-ui/cdk';
7
- import * as i3 from '@taiga-ui/core/directives/dropdown';
8
- import { TuiDropdownHoverDirective, TuiDropdownDirective, TuiDropdownModule, TuiDropdownOptionsDirective } from '@taiga-ui/core/directives/dropdown';
12
+ import * as i4 from '@taiga-ui/core/directives/dropdown';
13
+ import { TuiDropdownHoverDirective, TuiDropdownDirective as TuiDropdownDirective$1, TuiDropdownModule, TuiDropdownOptionsDirective } from '@taiga-ui/core/directives/dropdown';
9
14
  import { tuiIsEditingKey } from '@taiga-ui/core/utils/miscellaneous';
10
15
  import { shouldCall } from '@tinkoff/ng-event-plugins';
11
- import { BehaviorSubject, merge, EMPTY } from 'rxjs';
12
- import { skip, distinctUntilChanged } from 'rxjs/operators';
13
- import * as i4 from '@tinkoff/ng-polymorpheus';
16
+ import * as i5 from '@tinkoff/ng-polymorpheus';
14
17
  import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
15
- import * as i5 from '@angular/common';
18
+ import * as i6 from '@angular/common';
16
19
  import { CommonModule } from '@angular/common';
17
20
 
18
21
  class TuiAccessorProxyDirective extends TuiPositionAccessor {
@@ -54,6 +57,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
54
57
  }]
55
58
  }] });
56
59
 
60
+ const TUI_HOSTED_DROPDOWN_COMPONENT = new InjectionToken(`[TUI_HOSTED_DROPDOWN_COMPONENT]`);
61
+
62
+ class TuiDropdownOpenMonitorDirective {
63
+ constructor(destroy$, hosted, dropdown, open) {
64
+ open === null || open === void 0 ? void 0 : open.tuiDropdownOpenChange.pipe(filter(value => value && open.dropdown === dropdown && !hosted.focused), takeUntil(destroy$)).subscribe(() => {
65
+ var _a;
66
+ (_a = hosted.nativeFocusableElement) === null || _a === void 0 ? void 0 : _a.focus();
67
+ hosted.updateOpen(true);
68
+ });
69
+ }
70
+ }
71
+ TuiDropdownOpenMonitorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDropdownOpenMonitorDirective, deps: [{ token: TuiDestroyService, self: true }, { token: TUI_HOSTED_DROPDOWN_COMPONENT }, { token: TuiDropdownDirective, self: true }, { token: TuiDropdownOpenDirective, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
72
+ TuiDropdownOpenMonitorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiDropdownOpenMonitorDirective, selector: "[tuiDropdownOpenMonitor]", providers: [TuiDestroyService], ngImport: i0 });
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDropdownOpenMonitorDirective, decorators: [{
74
+ type: Directive,
75
+ args: [{
76
+ selector: '[tuiDropdownOpenMonitor]',
77
+ providers: [TuiDestroyService],
78
+ }]
79
+ }], ctorParameters: function () { return [{ type: i1.Observable, decorators: [{
80
+ type: Self
81
+ }, {
82
+ type: Inject,
83
+ args: [TuiDestroyService]
84
+ }] }, { type: undefined, decorators: [{
85
+ type: Inject,
86
+ args: [TUI_HOSTED_DROPDOWN_COMPONENT]
87
+ }] }, { type: i2.TuiDropdownDirective, decorators: [{
88
+ type: Self
89
+ }, {
90
+ type: Inject,
91
+ args: [TuiDropdownDirective]
92
+ }] }, { type: i2.TuiDropdownOpenDirective, decorators: [{
93
+ type: Optional
94
+ }, {
95
+ type: Inject,
96
+ args: [TuiDropdownOpenDirective]
97
+ }] }]; } });
98
+
57
99
  class TuiHostedDropdownConnectorDirective {
58
100
  }
59
101
  TuiHostedDropdownConnectorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiHostedDropdownConnectorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
@@ -224,7 +266,11 @@ TuiHostedDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
224
266
  deps: [[new Optional(), new Self(), TuiPositionAccessor]],
225
267
  useFactory: (position) => position === null || position === void 0 ? void 0 : position[0],
226
268
  },
227
- ], queries: [{ propertyName: "dropdownHost", first: true, predicate: TuiHostedDropdownConnectorDirective, descendants: true, read: ElementRef }], viewQueries: [{ propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true, read: ElementRef }, { propertyName: "dropdownDirective", first: true, predicate: TuiDropdownDirective, descendants: true }, { propertyName: "activeZone", first: true, predicate: TuiActiveZoneDirective, descendants: true }], ngImport: i0, template: "<div\n *tuiLet=\"(open$ | async) ?? openChange.value as isOpen\"\n #activeZone=\"tuiActiveZone\"\n tuiAccessorProxy\n class=\"t-wrapper\"\n [tuiDropdownSided]=\"sided\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownManual]=\"isOpen && canOpen\"\n [tuiObscuredEnabled]=\"isOpen\"\n (tuiObscured)=\"onHostObscured($event)\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <ng-content></ng-content>\n <ng-template\n #dropdown=\"polymorpheus\"\n [polymorpheus]=\"context\"\n >\n <div\n #wrapper\n class=\"t-dropdown\"\n (keydown)=\"onKeydown($event)\"\n >\n <ng-container\n *polymorpheusOutlet=\"\n content as text;\n context: {\n $implicit: activeZone,\n close: close\n }\n \"\n >\n {{ text }}\n </ng-container>\n </div>\n <!--This DIV is here to start backwards TreeWalker for focusing last focusable item on ArrowUp-->\n <div></div>\n </ng-template>\n</div>\n", styles: [":host{display:inline-flex}.t-wrapper{border-radius:inherit;height:inherit;flex:1 1 auto;width:100%}.t-dropdown{height:100%}\n"], directives: [{ type: i1.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { type: TuiAccessorProxyDirective, selector: "[tuiAccessorProxy]" }, { type: i3.TuiDropdownPositionSidedDirective, selector: "[tuiDropdownSided]", inputs: ["tuiDropdownSided", "tuiDropdownSidedOffset"] }, { type: i3.TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container)", inputs: ["tuiDropdown"], exportAs: ["tuiDropdown"] }, { type: i3.TuiDropdownDriverDirective, selector: "[tuiDropdown]" }, { type: i3.TuiDropdownManualDirective, selector: "[tuiDropdown][tuiDropdownManual]", inputs: ["tuiDropdownManual"] }, { type: i1.TuiObscuredDirective, selector: "[tuiObscured]", inputs: ["tuiObscuredEnabled"], outputs: ["tuiObscured"] }, { type: i1.TuiActiveZoneDirective, selector: "[tuiActiveZone]:not(ng-container), [tuiActiveZoneChange]:not(ng-container), [tuiActiveZoneParent]:not(ng-container)", inputs: ["tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange"], exportAs: ["tuiActiveZone"] }, { type: i4.PolymorpheusTemplate, selector: "ng-template[polymorpheus]", inputs: ["polymorpheus"], exportAs: ["polymorpheus"] }, { type: i4.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], pipes: { "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
269
+ {
270
+ provide: TUI_HOSTED_DROPDOWN_COMPONENT,
271
+ useExisting: TuiHostedDropdownComponent,
272
+ },
273
+ ], queries: [{ propertyName: "dropdownHost", first: true, predicate: TuiHostedDropdownConnectorDirective, descendants: true, read: ElementRef }], viewQueries: [{ propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true, read: ElementRef }, { propertyName: "dropdownDirective", first: true, predicate: TuiDropdownDirective$1, descendants: true }, { propertyName: "activeZone", first: true, predicate: TuiActiveZoneDirective, descendants: true }], ngImport: i0, template: "<div\n *tuiLet=\"(open$ | async) ?? openChange.value as isOpen\"\n #activeZone=\"tuiActiveZone\"\n tuiAccessorProxy\n tuiDropdownOpenMonitor\n class=\"t-wrapper\"\n [tuiDropdownSided]=\"sided\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownManual]=\"isOpen && canOpen\"\n [tuiObscuredEnabled]=\"isOpen\"\n (tuiObscured)=\"onHostObscured($event)\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <ng-content></ng-content>\n <ng-template\n #dropdown=\"polymorpheus\"\n [polymorpheus]=\"context\"\n >\n <div\n #wrapper\n class=\"t-dropdown\"\n (keydown)=\"onKeydown($event)\"\n >\n <ng-container\n *polymorpheusOutlet=\"\n content as text;\n context: {\n $implicit: activeZone,\n close: close\n }\n \"\n >\n {{ text }}\n </ng-container>\n </div>\n <!--This DIV is here to start backwards TreeWalker for focusing last focusable item on ArrowUp-->\n <div></div>\n </ng-template>\n</div>\n", styles: [":host{display:inline-flex}.t-wrapper{border-radius:inherit;height:inherit;flex:1 1 auto;width:100%}.t-dropdown{height:100%}\n"], directives: [{ type: i1$1.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { type: TuiAccessorProxyDirective, selector: "[tuiAccessorProxy]" }, { type: TuiDropdownOpenMonitorDirective, selector: "[tuiDropdownOpenMonitor]" }, { type: i4.TuiDropdownPositionSidedDirective, selector: "[tuiDropdownSided]", inputs: ["tuiDropdownSided", "tuiDropdownSidedOffset"] }, { type: i4.TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container)", inputs: ["tuiDropdown"], exportAs: ["tuiDropdown"] }, { type: i4.TuiDropdownDriverDirective, selector: "[tuiDropdown]" }, { type: i4.TuiDropdownManualDirective, selector: "[tuiDropdown][tuiDropdownManual]", inputs: ["tuiDropdownManual"] }, { type: i1$1.TuiObscuredDirective, selector: "[tuiObscured]", inputs: ["tuiObscuredEnabled"], outputs: ["tuiObscured"] }, { type: i1$1.TuiActiveZoneDirective, selector: "[tuiActiveZone]:not(ng-container), [tuiActiveZoneChange]:not(ng-container), [tuiActiveZoneParent]:not(ng-container)", inputs: ["tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange"], exportAs: ["tuiActiveZone"] }, { type: i5.PolymorpheusTemplate, selector: "ng-template[polymorpheus]", inputs: ["polymorpheus"], exportAs: ["polymorpheus"] }, { type: i5.PolymorpheusOutletDirective, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }], pipes: { "async": i6.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
228
274
  __decorate([
229
275
  shouldCall(shouldClose)
230
276
  ], TuiHostedDropdownComponent.prototype, "onKeyDownEsc", null);
@@ -242,9 +288,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
242
288
  deps: [[new Optional(), new Self(), TuiPositionAccessor]],
243
289
  useFactory: (position) => position === null || position === void 0 ? void 0 : position[0],
244
290
  },
291
+ {
292
+ provide: TUI_HOSTED_DROPDOWN_COMPONENT,
293
+ useExisting: TuiHostedDropdownComponent,
294
+ },
245
295
  ],
246
296
  }]
247
- }], ctorParameters: function () { return [{ type: i3.TuiDropdownHoverDirective, decorators: [{
297
+ }], ctorParameters: function () { return [{ type: i4.TuiDropdownHoverDirective, decorators: [{
248
298
  type: Self
249
299
  }, {
250
300
  type: Optional
@@ -262,7 +312,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
262
312
  args: ['wrapper', { read: ElementRef }]
263
313
  }], dropdownDirective: [{
264
314
  type: ViewChild,
265
- args: [TuiDropdownDirective]
315
+ args: [TuiDropdownDirective$1]
266
316
  }], activeZone: [{
267
317
  type: ViewChild,
268
318
  args: [TuiActiveZoneDirective]
@@ -303,6 +353,7 @@ class TuiHostedDropdownModule {
303
353
  }
304
354
  TuiHostedDropdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiHostedDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
305
355
  TuiHostedDropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiHostedDropdownModule, declarations: [TuiAccessorProxyDirective,
356
+ TuiDropdownOpenMonitorDirective,
306
357
  TuiHostedDropdownComponent,
307
358
  TuiHostedDropdownConnectorDirective], imports: [CommonModule,
308
359
  PolymorpheusModule,
@@ -333,6 +384,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
333
384
  ],
334
385
  declarations: [
335
386
  TuiAccessorProxyDirective,
387
+ TuiDropdownOpenMonitorDirective,
336
388
  TuiHostedDropdownComponent,
337
389
  TuiHostedDropdownConnectorDirective,
338
390
  ],
@@ -348,5 +400,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
348
400
  * Generated bundle index. Do not edit.
349
401
  */
350
402
 
351
- export { TuiAccessorProxyDirective, TuiHostedDropdownComponent, TuiHostedDropdownConnectorDirective, TuiHostedDropdownModule };
403
+ export { TuiAccessorProxyDirective, TuiDropdownOpenMonitorDirective, TuiHostedDropdownComponent, TuiHostedDropdownConnectorDirective, TuiHostedDropdownModule };
352
404
  //# sourceMappingURL=taiga-ui-core-components-hosted-dropdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-hosted-dropdown.js","sources":["../../../projects/core/components/hosted-dropdown/accessor-proxy.directive.ts","../../../projects/core/components/hosted-dropdown/hosted-dropdown-connector.directive.ts","../../../projects/core/components/hosted-dropdown/hosted-dropdown.component.ts","../../../projects/core/components/hosted-dropdown/hosted-dropdown.template.html","../../../projects/core/components/hosted-dropdown/hosted-dropdown.module.ts","../../../projects/core/components/hosted-dropdown/taiga-ui-core-components-hosted-dropdown.ts"],"sourcesContent":["import {Directive, Optional, SkipSelf} from '@angular/core';\nimport {TuiPositionAccessor} from '@taiga-ui/core/abstract';\nimport {TuiPoint} from '@taiga-ui/core/types';\n\n@Directive({\n selector: '[tuiAccessorProxy]',\n providers: [\n {\n provide: TuiPositionAccessor,\n multi: true,\n deps: [\n [new Optional(), new SkipSelf(), TuiAccessorProxyDirective],\n TuiAccessorProxyDirective,\n ],\n useFactory: (\n accessor: TuiPositionAccessor | null,\n fallback: TuiPositionAccessor,\n ) => accessor || fallback,\n },\n ],\n})\nexport class TuiAccessorProxyDirective extends TuiPositionAccessor {\n readonly type = 'dummy';\n\n getPosition(): TuiPoint {\n return [0, 0];\n }\n}\n","import {Directive} from '@angular/core';\n\n@Directive({\n selector: '[tuiHostedDropdownHost]',\n})\nexport class TuiHostedDropdownConnectorDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Optional,\n Output,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {\n TuiActiveZoneDirective,\n tuiAsFocusableItemAccessor,\n TuiContextWithImplicit,\n TuiFocusableElementAccessor,\n tuiGetClosestFocusable,\n tuiIsElement,\n tuiIsElementEditable,\n tuiIsHTMLElement,\n tuiIsNativeFocusedIn,\n tuiIsNativeKeyboardFocusable,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk';\nimport {TuiPositionAccessor} from '@taiga-ui/core/abstract';\nimport {\n TuiDropdownDirective,\n TuiDropdownHoverDirective,\n} from '@taiga-ui/core/directives/dropdown';\nimport {tuiIsEditingKey} from '@taiga-ui/core/utils/miscellaneous';\nimport {shouldCall} from '@tinkoff/ng-event-plugins';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {BehaviorSubject, EMPTY, merge} from 'rxjs';\nimport {distinctUntilChanged, skip} from 'rxjs/operators';\n\nimport {TuiAccessorProxyDirective} from './accessor-proxy.directive';\nimport {TuiHostedDropdownConnectorDirective} from './hosted-dropdown-connector.directive';\n\nexport interface TuiHostedDropdownContext\n extends TuiContextWithImplicit<TuiActiveZoneDirective> {\n close(): void;\n}\n\nfunction shouldClose(\n this: TuiHostedDropdownComponent,\n event: Event | KeyboardEvent,\n): boolean {\n return (\n 'key' in event &&\n event.key.toLowerCase() === 'escape' &&\n this.canOpen &&\n this.open &&\n !this.dropdown?.nextElementSibling\n );\n}\n\n/* eslint-disable @typescript-eslint/member-ordering */\n@Component({\n selector: 'tui-hosted-dropdown',\n templateUrl: './hosted-dropdown.template.html',\n styleUrls: ['./hosted-dropdown.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiHostedDropdownComponent),\n {\n provide: TuiAccessorProxyDirective,\n deps: [[new Optional(), new Self(), TuiPositionAccessor]],\n useFactory: (position: TuiPositionAccessor[] | null) => position?.[0],\n },\n ],\n})\nexport class TuiHostedDropdownComponent implements TuiFocusableElementAccessor {\n @ContentChild(TuiHostedDropdownConnectorDirective, {read: ElementRef})\n private readonly dropdownHost?: ElementRef<HTMLElement>;\n\n @ViewChild('wrapper', {read: ElementRef})\n private readonly wrapper?: ElementRef<HTMLDivElement>;\n\n @ViewChild(TuiDropdownDirective)\n private readonly dropdownDirective?: TuiDropdownDirective;\n\n /** TODO: rename in 4.0 */\n readonly openChange = new BehaviorSubject(false);\n\n @ViewChild(TuiActiveZoneDirective)\n readonly activeZone!: TuiActiveZoneDirective;\n\n @Input()\n content: PolymorpheusContent<TuiHostedDropdownContext>;\n\n @Input()\n sided = false;\n\n @Input()\n canOpen = true;\n\n @Output('openChange')\n readonly open$ = merge(this.openChange, this.hover$ || EMPTY).pipe(\n skip(1),\n distinctUntilChanged(),\n );\n\n @Output()\n readonly focusedChange = new EventEmitter<boolean>();\n\n readonly context!: TuiContextWithImplicit<TuiActiveZoneDirective>;\n\n constructor(\n @Self()\n @Optional()\n @Inject(TuiDropdownHoverDirective)\n private readonly hover$: TuiDropdownHoverDirective | null,\n @Inject(ElementRef) private readonly el: ElementRef,\n ) {}\n\n @Input()\n set open(open: boolean) {\n this.openChange.next(open);\n }\n\n get open(): boolean {\n return this.openChange.value;\n }\n\n get host(): HTMLElement {\n return this.dropdownHost?.nativeElement || this.el.nativeElement;\n }\n\n get computedHost(): HTMLElement {\n return (\n this.dropdownHost?.nativeElement ||\n this.nativeFocusableElement ||\n this.el.nativeElement\n );\n }\n\n get dropdown(): HTMLElement | undefined {\n return this.dropdownDirective?.dropdownBoxRef?.location.nativeElement;\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return tuiIsNativeKeyboardFocusable(this.host)\n ? this.host\n : tuiGetClosestFocusable({\n initial: this.host,\n root: this.el.nativeElement,\n });\n }\n\n @HostBinding('class._hosted_dropdown_focused')\n get focused(): boolean {\n return (\n tuiIsNativeFocusedIn(this.host) ||\n (this.open &&\n !!this.wrapper &&\n tuiIsNativeFocusedIn(this.wrapper.nativeElement))\n );\n }\n\n @HostListener('focusin', ['$event.target'])\n onFocusIn(target: HTMLElement): void {\n if (!this.computedHost.contains(target)) {\n this.updateOpen(false);\n }\n }\n\n @HostListener('click', ['$event.target'])\n onClick(target: HTMLElement): void {\n if (\n !this.hostEditable &&\n this.computedHost.contains(target) &&\n !this.hover$?.hovered\n ) {\n this.updateOpen(!this.open);\n }\n }\n\n @shouldCall(shouldClose)\n @HostListener('document:keydown.silent', ['$event'])\n onKeyDownEsc(event: Event): void {\n event.stopPropagation();\n this.closeDropdown();\n }\n\n @HostListener('keydown.arrowDown', ['$event', 'true'])\n @HostListener('keydown.arrowUp', ['$event', 'false'])\n onArrow(event: KeyboardEvent, down: boolean): void {\n this.focusDropdown(event, down);\n }\n\n onKeydown({key, target, defaultPrevented}: KeyboardEvent): void {\n if (\n !defaultPrevented &&\n tuiIsEditingKey(key) &&\n this.hostEditable &&\n tuiIsHTMLElement(target) &&\n !tuiIsElementEditable(target)\n ) {\n this.focusHost();\n }\n }\n\n onActiveZone(active: boolean): void {\n this.updateFocused(active);\n\n if (!active) {\n this.updateOpen(false);\n }\n }\n\n onHostObscured(obscured: boolean): void {\n if (obscured) {\n this.closeDropdown();\n }\n }\n\n updateOpen(open: boolean): void {\n if (!open || this.canOpen) {\n this.open = open;\n }\n }\n\n readonly close = (): void => this.updateOpen(false);\n\n private get hostEditable(): boolean {\n return tuiIsElementEditable(this.computedHost);\n }\n\n private focusDropdown(event: KeyboardEvent, first: boolean): void {\n const host = this.nativeFocusableElement;\n\n if (\n !host ||\n !tuiIsHTMLElement(host) ||\n !tuiIsElement(event.target) ||\n !host.contains(event.target)\n ) {\n return;\n }\n\n if (\n !this.wrapper ||\n !this.open ||\n !this.dropdown ||\n !tuiIsHTMLElement(this.wrapper.nativeElement.nextElementSibling)\n ) {\n this.updateOpen(true);\n\n if (!tuiIsElementEditable(host)) {\n event.preventDefault();\n }\n\n return;\n }\n\n const initial = first\n ? this.wrapper.nativeElement\n : this.wrapper.nativeElement.nextElementSibling;\n const focusable = tuiGetClosestFocusable({\n initial,\n root: this.wrapper.nativeElement,\n previous: !first,\n });\n\n if (!focusable) {\n return;\n }\n\n focusable.focus();\n event.preventDefault();\n }\n\n private closeDropdown(): void {\n if (this.focused) {\n this.focusHost();\n }\n\n this.updateOpen(false);\n }\n\n private focusHost(): void {\n const host = this.nativeFocusableElement;\n\n if (host) {\n host.focus({preventScroll: true});\n }\n }\n\n private updateFocused(focused: boolean): void {\n this.focusedChange.emit(focused);\n }\n}\n","<div\n *tuiLet=\"(open$ | async) ?? openChange.value as isOpen\"\n #activeZone=\"tuiActiveZone\"\n tuiAccessorProxy\n class=\"t-wrapper\"\n [tuiDropdownSided]=\"sided\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownManual]=\"isOpen && canOpen\"\n [tuiObscuredEnabled]=\"isOpen\"\n (tuiObscured)=\"onHostObscured($event)\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <ng-content></ng-content>\n <ng-template\n #dropdown=\"polymorpheus\"\n [polymorpheus]=\"context\"\n >\n <div\n #wrapper\n class=\"t-dropdown\"\n (keydown)=\"onKeydown($event)\"\n >\n <ng-container\n *polymorpheusOutlet=\"\n content as text;\n context: {\n $implicit: activeZone,\n close: close\n }\n \"\n >\n {{ text }}\n </ng-container>\n </div>\n <!--This DIV is here to start backwards TreeWalker for focusing last focusable item on ArrowUp-->\n <div></div>\n </ng-template>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule, TuiLetModule, TuiObscuredModule} from '@taiga-ui/cdk';\nimport {\n TuiDropdownModule,\n TuiDropdownOptionsDirective,\n} from '@taiga-ui/core/directives/dropdown';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiAccessorProxyDirective} from './accessor-proxy.directive';\nimport {TuiHostedDropdownComponent} from './hosted-dropdown.component';\nimport {TuiHostedDropdownConnectorDirective} from './hosted-dropdown-connector.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiLetModule,\n TuiObscuredModule,\n TuiActiveZoneModule,\n TuiDropdownModule,\n ],\n declarations: [\n TuiAccessorProxyDirective,\n TuiHostedDropdownComponent,\n TuiHostedDropdownConnectorDirective,\n ],\n exports: [\n TuiHostedDropdownComponent,\n TuiHostedDropdownConnectorDirective,\n TuiDropdownOptionsDirective,\n ],\n})\nexport class TuiHostedDropdownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.TuiAccessorProxyDirective"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-core-components-hosted-dropdown.js","sources":["../../../projects/core/components/hosted-dropdown/accessor-proxy.directive.ts","../../../projects/core/components/hosted-dropdown/hosted-dropdown.token.ts","../../../projects/core/components/hosted-dropdown/dropdown-open-monitor.directive.ts","../../../projects/core/components/hosted-dropdown/hosted-dropdown-connector.directive.ts","../../../projects/core/components/hosted-dropdown/hosted-dropdown.component.ts","../../../projects/core/components/hosted-dropdown/hosted-dropdown.template.html","../../../projects/core/components/hosted-dropdown/hosted-dropdown.module.ts","../../../projects/core/components/hosted-dropdown/taiga-ui-core-components-hosted-dropdown.ts"],"sourcesContent":["import {Directive, Optional, SkipSelf} from '@angular/core';\nimport {TuiPositionAccessor} from '@taiga-ui/core/abstract';\nimport {TuiPoint} from '@taiga-ui/core/types';\n\n@Directive({\n selector: '[tuiAccessorProxy]',\n providers: [\n {\n provide: TuiPositionAccessor,\n multi: true,\n deps: [\n [new Optional(), new SkipSelf(), TuiAccessorProxyDirective],\n TuiAccessorProxyDirective,\n ],\n useFactory: (\n accessor: TuiPositionAccessor | null,\n fallback: TuiPositionAccessor,\n ) => accessor || fallback,\n },\n ],\n})\nexport class TuiAccessorProxyDirective extends TuiPositionAccessor {\n readonly type = 'dummy';\n\n getPosition(): TuiPoint {\n return [0, 0];\n }\n}\n","import {InjectionToken} from '@angular/core';\n\nimport type {TuiHostedDropdownComponent} from './hosted-dropdown.component';\n\nexport const TUI_HOSTED_DROPDOWN_COMPONENT =\n new InjectionToken<TuiHostedDropdownComponent>(`[TUI_HOSTED_DROPDOWN_COMPONENT]`);\n","import {Directive, Inject, Optional, Self} from '@angular/core';\nimport {TuiDestroyService, TuiInjectionTokenType} from '@taiga-ui/cdk';\nimport {TuiDropdownDirective, TuiDropdownOpenDirective} from '@taiga-ui/core/directives';\nimport {Observable} from 'rxjs';\nimport {filter, takeUntil} from 'rxjs/operators';\n\nimport {TUI_HOSTED_DROPDOWN_COMPONENT} from './hosted-dropdown.token';\n\n@Directive({\n selector: '[tuiDropdownOpenMonitor]',\n providers: [TuiDestroyService],\n})\nexport class TuiDropdownOpenMonitorDirective {\n constructor(\n @Self() @Inject(TuiDestroyService) destroy$: Observable<unknown>,\n @Inject(TUI_HOSTED_DROPDOWN_COMPONENT)\n hosted: TuiInjectionTokenType<typeof TUI_HOSTED_DROPDOWN_COMPONENT>,\n @Self() @Inject(TuiDropdownDirective) dropdown: TuiDropdownDirective,\n @Optional()\n @Inject(TuiDropdownOpenDirective)\n open: TuiDropdownOpenDirective | null,\n ) {\n open?.tuiDropdownOpenChange\n .pipe(\n filter(value => value && open.dropdown === dropdown && !hosted.focused),\n takeUntil(destroy$),\n )\n .subscribe(() => {\n hosted.nativeFocusableElement?.focus();\n hosted.updateOpen(true);\n });\n }\n}\n","import {Directive} from '@angular/core';\n\n@Directive({\n selector: '[tuiHostedDropdownHost]',\n})\nexport class TuiHostedDropdownConnectorDirective {}\n","import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Optional,\n Output,\n Self,\n ViewChild,\n} from '@angular/core';\nimport {\n TuiActiveZoneDirective,\n tuiAsFocusableItemAccessor,\n TuiContextWithImplicit,\n TuiFocusableElementAccessor,\n tuiGetClosestFocusable,\n tuiIsElement,\n tuiIsElementEditable,\n tuiIsHTMLElement,\n tuiIsNativeFocusedIn,\n tuiIsNativeKeyboardFocusable,\n TuiNativeFocusableElement,\n} from '@taiga-ui/cdk';\nimport {TuiPositionAccessor} from '@taiga-ui/core/abstract';\nimport {\n TuiDropdownDirective,\n TuiDropdownHoverDirective,\n} from '@taiga-ui/core/directives/dropdown';\nimport {tuiIsEditingKey} from '@taiga-ui/core/utils/miscellaneous';\nimport {shouldCall} from '@tinkoff/ng-event-plugins';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {BehaviorSubject, EMPTY, merge} from 'rxjs';\nimport {distinctUntilChanged, skip} from 'rxjs/operators';\n\nimport {TuiAccessorProxyDirective} from './accessor-proxy.directive';\nimport {TUI_HOSTED_DROPDOWN_COMPONENT} from './hosted-dropdown.token';\nimport {TuiHostedDropdownConnectorDirective} from './hosted-dropdown-connector.directive';\n\nexport interface TuiHostedDropdownContext\n extends TuiContextWithImplicit<TuiActiveZoneDirective> {\n close(): void;\n}\n\nfunction shouldClose(\n this: TuiHostedDropdownComponent,\n event: Event | KeyboardEvent,\n): boolean {\n return (\n 'key' in event &&\n event.key.toLowerCase() === 'escape' &&\n this.canOpen &&\n this.open &&\n !this.dropdown?.nextElementSibling\n );\n}\n\n/* eslint-disable @typescript-eslint/member-ordering */\n@Component({\n selector: 'tui-hosted-dropdown',\n templateUrl: './hosted-dropdown.template.html',\n styleUrls: ['./hosted-dropdown.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiAsFocusableItemAccessor(TuiHostedDropdownComponent),\n {\n provide: TuiAccessorProxyDirective,\n deps: [[new Optional(), new Self(), TuiPositionAccessor]],\n useFactory: (position: TuiPositionAccessor[] | null) => position?.[0],\n },\n {\n provide: TUI_HOSTED_DROPDOWN_COMPONENT,\n useExisting: TuiHostedDropdownComponent,\n },\n ],\n})\nexport class TuiHostedDropdownComponent implements TuiFocusableElementAccessor {\n @ContentChild(TuiHostedDropdownConnectorDirective, {read: ElementRef})\n private readonly dropdownHost?: ElementRef<HTMLElement>;\n\n @ViewChild('wrapper', {read: ElementRef})\n private readonly wrapper?: ElementRef<HTMLDivElement>;\n\n @ViewChild(TuiDropdownDirective)\n private readonly dropdownDirective?: TuiDropdownDirective;\n\n /** TODO: rename in 4.0 */\n readonly openChange = new BehaviorSubject(false);\n\n @ViewChild(TuiActiveZoneDirective)\n readonly activeZone!: TuiActiveZoneDirective;\n\n @Input()\n content: PolymorpheusContent<TuiHostedDropdownContext>;\n\n @Input()\n sided = false;\n\n @Input()\n canOpen = true;\n\n @Output('openChange')\n readonly open$ = merge(this.openChange, this.hover$ || EMPTY).pipe(\n skip(1),\n distinctUntilChanged(),\n );\n\n @Output()\n readonly focusedChange = new EventEmitter<boolean>();\n\n readonly context!: TuiContextWithImplicit<TuiActiveZoneDirective>;\n\n constructor(\n @Self()\n @Optional()\n @Inject(TuiDropdownHoverDirective)\n private readonly hover$: TuiDropdownHoverDirective | null,\n @Inject(ElementRef) private readonly el: ElementRef,\n ) {}\n\n @Input()\n set open(open: boolean) {\n this.openChange.next(open);\n }\n\n get open(): boolean {\n return this.openChange.value;\n }\n\n get host(): HTMLElement {\n return this.dropdownHost?.nativeElement || this.el.nativeElement;\n }\n\n get computedHost(): HTMLElement {\n return (\n this.dropdownHost?.nativeElement ||\n this.nativeFocusableElement ||\n this.el.nativeElement\n );\n }\n\n get dropdown(): HTMLElement | undefined {\n return this.dropdownDirective?.dropdownBoxRef?.location.nativeElement;\n }\n\n get nativeFocusableElement(): TuiNativeFocusableElement | null {\n return tuiIsNativeKeyboardFocusable(this.host)\n ? this.host\n : tuiGetClosestFocusable({\n initial: this.host,\n root: this.el.nativeElement,\n });\n }\n\n @HostBinding('class._hosted_dropdown_focused')\n get focused(): boolean {\n return (\n tuiIsNativeFocusedIn(this.host) ||\n (this.open &&\n !!this.wrapper &&\n tuiIsNativeFocusedIn(this.wrapper.nativeElement))\n );\n }\n\n @HostListener('focusin', ['$event.target'])\n onFocusIn(target: HTMLElement): void {\n if (!this.computedHost.contains(target)) {\n this.updateOpen(false);\n }\n }\n\n @HostListener('click', ['$event.target'])\n onClick(target: HTMLElement): void {\n if (\n !this.hostEditable &&\n this.computedHost.contains(target) &&\n !this.hover$?.hovered\n ) {\n this.updateOpen(!this.open);\n }\n }\n\n @shouldCall(shouldClose)\n @HostListener('document:keydown.silent', ['$event'])\n onKeyDownEsc(event: Event): void {\n event.stopPropagation();\n this.closeDropdown();\n }\n\n @HostListener('keydown.arrowDown', ['$event', 'true'])\n @HostListener('keydown.arrowUp', ['$event', 'false'])\n onArrow(event: KeyboardEvent, down: boolean): void {\n this.focusDropdown(event, down);\n }\n\n onKeydown({key, target, defaultPrevented}: KeyboardEvent): void {\n if (\n !defaultPrevented &&\n tuiIsEditingKey(key) &&\n this.hostEditable &&\n tuiIsHTMLElement(target) &&\n !tuiIsElementEditable(target)\n ) {\n this.focusHost();\n }\n }\n\n onActiveZone(active: boolean): void {\n this.updateFocused(active);\n\n if (!active) {\n this.updateOpen(false);\n }\n }\n\n onHostObscured(obscured: boolean): void {\n if (obscured) {\n this.closeDropdown();\n }\n }\n\n updateOpen(open: boolean): void {\n if (!open || this.canOpen) {\n this.open = open;\n }\n }\n\n readonly close = (): void => this.updateOpen(false);\n\n private get hostEditable(): boolean {\n return tuiIsElementEditable(this.computedHost);\n }\n\n private focusDropdown(event: KeyboardEvent, first: boolean): void {\n const host = this.nativeFocusableElement;\n\n if (\n !host ||\n !tuiIsHTMLElement(host) ||\n !tuiIsElement(event.target) ||\n !host.contains(event.target)\n ) {\n return;\n }\n\n if (\n !this.wrapper ||\n !this.open ||\n !this.dropdown ||\n !tuiIsHTMLElement(this.wrapper.nativeElement.nextElementSibling)\n ) {\n this.updateOpen(true);\n\n if (!tuiIsElementEditable(host)) {\n event.preventDefault();\n }\n\n return;\n }\n\n const initial = first\n ? this.wrapper.nativeElement\n : this.wrapper.nativeElement.nextElementSibling;\n const focusable = tuiGetClosestFocusable({\n initial,\n root: this.wrapper.nativeElement,\n previous: !first,\n });\n\n if (!focusable) {\n return;\n }\n\n focusable.focus();\n event.preventDefault();\n }\n\n private closeDropdown(): void {\n if (this.focused) {\n this.focusHost();\n }\n\n this.updateOpen(false);\n }\n\n private focusHost(): void {\n const host = this.nativeFocusableElement;\n\n if (host) {\n host.focus({preventScroll: true});\n }\n }\n\n private updateFocused(focused: boolean): void {\n this.focusedChange.emit(focused);\n }\n}\n","<div\n *tuiLet=\"(open$ | async) ?? openChange.value as isOpen\"\n #activeZone=\"tuiActiveZone\"\n tuiAccessorProxy\n tuiDropdownOpenMonitor\n class=\"t-wrapper\"\n [tuiDropdownSided]=\"sided\"\n [tuiDropdown]=\"dropdown\"\n [tuiDropdownManual]=\"isOpen && canOpen\"\n [tuiObscuredEnabled]=\"isOpen\"\n (tuiObscured)=\"onHostObscured($event)\"\n (tuiActiveZoneChange)=\"onActiveZone($event)\"\n>\n <ng-content></ng-content>\n <ng-template\n #dropdown=\"polymorpheus\"\n [polymorpheus]=\"context\"\n >\n <div\n #wrapper\n class=\"t-dropdown\"\n (keydown)=\"onKeydown($event)\"\n >\n <ng-container\n *polymorpheusOutlet=\"\n content as text;\n context: {\n $implicit: activeZone,\n close: close\n }\n \"\n >\n {{ text }}\n </ng-container>\n </div>\n <!--This DIV is here to start backwards TreeWalker for focusing last focusable item on ArrowUp-->\n <div></div>\n </ng-template>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiActiveZoneModule, TuiLetModule, TuiObscuredModule} from '@taiga-ui/cdk';\nimport {\n TuiDropdownModule,\n TuiDropdownOptionsDirective,\n} from '@taiga-ui/core/directives/dropdown';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiAccessorProxyDirective} from './accessor-proxy.directive';\nimport {TuiDropdownOpenMonitorDirective} from './dropdown-open-monitor.directive';\nimport {TuiHostedDropdownComponent} from './hosted-dropdown.component';\nimport {TuiHostedDropdownConnectorDirective} from './hosted-dropdown-connector.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiLetModule,\n TuiObscuredModule,\n TuiActiveZoneModule,\n TuiDropdownModule,\n ],\n declarations: [\n TuiAccessorProxyDirective,\n TuiDropdownOpenMonitorDirective,\n TuiHostedDropdownComponent,\n TuiHostedDropdownConnectorDirective,\n ],\n exports: [\n TuiHostedDropdownComponent,\n TuiHostedDropdownConnectorDirective,\n TuiDropdownOptionsDirective,\n ],\n})\nexport class TuiHostedDropdownModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["TuiDropdownDirective","i1","i2.TuiAccessorProxyDirective","i3.TuiDropdownOpenMonitorDirective"],"mappings":"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"}
@@ -32,7 +32,7 @@ class TuiRootComponent {
32
32
  }
33
33
  }
34
34
  TuiRootComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiRootComponent, deps: [{ token: TUI_ANIMATIONS_DURATION }, { token: TUI_DIALOGS }, { token: TUI_IS_MOBILE }, { token: TUI_IS_MOBILE_RES }, { token: TUI_IS_IOS }, { token: TUI_IS_ANDROID }, { token: DOCUMENT }, { token: TUI_THEME }], target: i0.ɵɵFactoryTarget.Component });
35
- TuiRootComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiRootComponent, selector: "tui-root", host: { attributes: { "data-tui-version": "3.40.0" }, listeners: { "$.class._mobile": "isMobileRes$" }, properties: { "style.--tui-duration.ms": "duration", "class._ios": "isIOS", "class._android": "isAndroid" } }, providers: [TUI_IS_MOBILE_RES_PROVIDER], ngImport: i0, template: "<tui-scroll-controls\n *ngIf=\"scrollbars$ | async\"\n class=\"t-root-scrollbar\"\n></tui-scroll-controls>\n<tui-svg-defs-host></tui-svg-defs-host>\n<tui-dropdown-host>\n <div class=\"t-root-content\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"tuiOverContent\"></ng-content>\n <tui-dialog-host></tui-dialog-host>\n <ng-content select=\"tuiOverDialogs\"></ng-content>\n <tui-alert-host></tui-alert-host>\n <ng-content select=\"tuiOverAlerts\"></ng-content>\n</tui-dropdown-host>\n<!--TODO: 4.0 rename to tuiOverDropdowns-->\n<ng-content select=\"tuiOverPortals\"></ng-content>\n<tui-hints-host></tui-hints-host>\n<ng-content select=\"tuiOverHints\"></ng-content>\n", styles: ["@keyframes tuiPresent{to{content:\"1\"}}html,.tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar,html::-webkit-scrollbar-thumb,.tui-zero-scrollbar::-webkit-scrollbar-thumb{background:transparent;width:0;height:0}body{font:var(--tui-font-text-s);color:var(--tui-text-01);background:var(--tui-base-01);margin:0}tui-root{position:relative;display:block;flex:1;-webkit-tap-highlight-color:transparent}tui-root>.t-root-scrollbar{position:fixed;top:0;left:0;bottom:0;right:0;margin:0}.t-root-content{position:relative;z-index:0;height:100%}.t-overscroll-none{overscroll-behavior:none}\n"], components: [{ type: i1.TuiScrollControlsComponent, selector: "tui-scroll-controls" }, { type: i2.TuiSvgDefsHostComponent, selector: "tui-svg-defs-host" }, { type: i3.TuiDropdownHostComponent, selector: "tui-dropdown-host" }, { type: i3.TuiDialogHostComponent, selector: "tui-dialog-host" }, { type: i3.TuiAlertHostComponent, selector: "tui-alert-host" }, { type: i4.TuiHintsHostComponent, selector: "tui-hints-host" }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
35
+ TuiRootComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiRootComponent, selector: "tui-root", host: { attributes: { "data-tui-version": "3.41.0" }, listeners: { "$.class._mobile": "isMobileRes$" }, properties: { "style.--tui-duration.ms": "duration", "class._ios": "isIOS", "class._android": "isAndroid" } }, providers: [TUI_IS_MOBILE_RES_PROVIDER], ngImport: i0, template: "<tui-scroll-controls\n *ngIf=\"scrollbars$ | async\"\n class=\"t-root-scrollbar\"\n></tui-scroll-controls>\n<tui-svg-defs-host></tui-svg-defs-host>\n<tui-dropdown-host>\n <div class=\"t-root-content\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"tuiOverContent\"></ng-content>\n <tui-dialog-host></tui-dialog-host>\n <ng-content select=\"tuiOverDialogs\"></ng-content>\n <tui-alert-host></tui-alert-host>\n <ng-content select=\"tuiOverAlerts\"></ng-content>\n</tui-dropdown-host>\n<!--TODO: 4.0 rename to tuiOverDropdowns-->\n<ng-content select=\"tuiOverPortals\"></ng-content>\n<tui-hints-host></tui-hints-host>\n<ng-content select=\"tuiOverHints\"></ng-content>\n", styles: ["@keyframes tuiPresent{to{content:\"1\"}}@keyframes tuiSkeletonVibe{to{opacity:.5}}html,.tui-zero-scrollbar{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar,.tui-zero-scrollbar::-webkit-scrollbar,html::-webkit-scrollbar-thumb,.tui-zero-scrollbar::-webkit-scrollbar-thumb{background:transparent;width:0;height:0}body{font:var(--tui-font-text-s);color:var(--tui-text-01);background:var(--tui-base-01);margin:0}tui-root{position:relative;display:block;flex:1;-webkit-tap-highlight-color:transparent}tui-root>.t-root-scrollbar{position:fixed;top:0;left:0;bottom:0;right:0;margin:0}.t-root-content{position:relative;z-index:0;height:100%}.t-overscroll-none{overscroll-behavior:none}\n"], components: [{ type: i1.TuiScrollControlsComponent, selector: "tui-scroll-controls" }, { type: i2.TuiSvgDefsHostComponent, selector: "tui-svg-defs-host" }, { type: i3.TuiDropdownHostComponent, selector: "tui-dropdown-host" }, { type: i3.TuiDialogHostComponent, selector: "tui-dialog-host" }, { type: i3.TuiAlertHostComponent, selector: "tui-alert-host" }, { type: i4.TuiHintsHostComponent, selector: "tui-hints-host" }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
36
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiRootComponent, decorators: [{
37
37
  type: Component,
38
38
  args: [{
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-components-root.js","sources":["../../../projects/core/components/root/root.component.ts","../../../projects/core/components/root/root.template.html","../../../projects/core/components/root/root.module.ts","../../../projects/core/components/root/taiga-ui-core-components-root.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n TUI_DIALOGS,\n TUI_IS_ANDROID,\n TUI_IS_IOS,\n TUI_IS_MOBILE,\n TUI_VERSION,\n} from '@taiga-ui/cdk';\nimport {TUI_IS_MOBILE_RES_PROVIDER} from '@taiga-ui/core/providers';\nimport {\n TUI_ANIMATIONS_DURATION,\n TUI_IS_MOBILE_RES,\n TUI_THEME,\n} from '@taiga-ui/core/tokens';\nimport {combineLatest, Observable, of} from 'rxjs';\nimport {debounceTime, map} from 'rxjs/operators';\n\n@Component({\n selector: 'tui-root',\n templateUrl: './root.template.html',\n styleUrls: ['./root.style.less'],\n // So that we do not force OnPush on custom dialogs\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [TUI_IS_MOBILE_RES_PROVIDER],\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-tui-version': TUI_VERSION,\n '[style.--tui-duration.ms]': 'duration',\n '[class._ios]': 'isIOS',\n '[class._android]': 'isAndroid',\n '($.class._mobile)': 'isMobileRes$',\n },\n})\nexport class TuiRootComponent {\n readonly scrollbars$: Observable<boolean> =\n this.dialogs.length && !this.isMobile\n ? combineLatest([...this.dialogs]).pipe(\n map(dialogs => !dialogs.some(({length}) => length)),\n debounceTime(0),\n )\n : of(!this.isMobile);\n\n constructor(\n @Inject(TUI_ANIMATIONS_DURATION) readonly duration: number,\n @Inject(TUI_DIALOGS)\n readonly dialogs: ReadonlyArray<Observable<readonly unknown[]>>,\n @Inject(TUI_IS_MOBILE) private readonly isMobile: boolean,\n @Inject(TUI_IS_MOBILE_RES) readonly isMobileRes$: Observable<boolean>,\n @Inject(TUI_IS_IOS) readonly isIOS: boolean,\n @Inject(TUI_IS_ANDROID) readonly isAndroid: boolean,\n @Inject(DOCUMENT) {body}: Document,\n @Inject(TUI_THEME) theme: string,\n ) {\n body.setAttribute('data-tui-theme', theme.toLowerCase());\n }\n}\n","<tui-scroll-controls\n *ngIf=\"scrollbars$ | async\"\n class=\"t-root-scrollbar\"\n></tui-scroll-controls>\n<tui-svg-defs-host></tui-svg-defs-host>\n<tui-dropdown-host>\n <div class=\"t-root-content\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"tuiOverContent\"></ng-content>\n <tui-dialog-host></tui-dialog-host>\n <ng-content select=\"tuiOverDialogs\"></ng-content>\n <tui-alert-host></tui-alert-host>\n <ng-content select=\"tuiOverAlerts\"></ng-content>\n</tui-dropdown-host>\n<!--TODO: 4.0 rename to tuiOverDropdowns-->\n<ng-content select=\"tuiOverPortals\"></ng-content>\n<tui-hints-host></tui-hints-host>\n<ng-content select=\"tuiOverHints\"></ng-content>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiAlertHostModule,\n TuiDialogHostModule,\n TuiDragModule,\n TuiDropdownHostModule,\n} from '@taiga-ui/cdk';\nimport {TuiHintsHostModule} from '@taiga-ui/core/components/hints-host';\nimport {TuiScrollControlsModule} from '@taiga-ui/core/components/scroll-controls';\nimport {TuiSvgDefsHostModule} from '@taiga-ui/core/internal/svg-defs-host';\nimport {EventPluginsModule} from '@tinkoff/ng-event-plugins';\n\nimport {TuiRootComponent} from './root.component';\n\n@NgModule({\n imports: [\n CommonModule,\n EventPluginsModule,\n TuiDragModule,\n TuiDropdownHostModule,\n TuiSvgDefsHostModule,\n TuiHintsHostModule,\n TuiDialogHostModule,\n TuiAlertHostModule,\n TuiScrollControlsModule,\n ],\n declarations: [TuiRootComponent],\n exports: [TuiRootComponent],\n})\nexport class TuiRootModule {}\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-core-components-root.js","sources":["../../../projects/core/components/root/root.component.ts","../../../projects/core/components/root/root.template.html","../../../projects/core/components/root/root.module.ts","../../../projects/core/components/root/taiga-ui-core-components-root.ts"],"sourcesContent":["import {DOCUMENT} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Inject,\n ViewEncapsulation,\n} from '@angular/core';\nimport {\n TUI_DIALOGS,\n TUI_IS_ANDROID,\n TUI_IS_IOS,\n TUI_IS_MOBILE,\n TUI_VERSION,\n} from '@taiga-ui/cdk';\nimport {TUI_IS_MOBILE_RES_PROVIDER} from '@taiga-ui/core/providers';\nimport {\n TUI_ANIMATIONS_DURATION,\n TUI_IS_MOBILE_RES,\n TUI_THEME,\n} from '@taiga-ui/core/tokens';\nimport {combineLatest, Observable, of} from 'rxjs';\nimport {debounceTime, map} from 'rxjs/operators';\n\n@Component({\n selector: 'tui-root',\n templateUrl: './root.template.html',\n styleUrls: ['./root.style.less'],\n // So that we do not force OnPush on custom dialogs\n // eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [TUI_IS_MOBILE_RES_PROVIDER],\n encapsulation: ViewEncapsulation.None,\n host: {\n 'data-tui-version': TUI_VERSION,\n '[style.--tui-duration.ms]': 'duration',\n '[class._ios]': 'isIOS',\n '[class._android]': 'isAndroid',\n '($.class._mobile)': 'isMobileRes$',\n },\n})\nexport class TuiRootComponent {\n readonly scrollbars$: Observable<boolean> =\n this.dialogs.length && !this.isMobile\n ? combineLatest([...this.dialogs]).pipe(\n map(dialogs => !dialogs.some(({length}) => length)),\n debounceTime(0),\n )\n : of(!this.isMobile);\n\n constructor(\n @Inject(TUI_ANIMATIONS_DURATION) readonly duration: number,\n @Inject(TUI_DIALOGS)\n readonly dialogs: ReadonlyArray<Observable<readonly unknown[]>>,\n @Inject(TUI_IS_MOBILE) private readonly isMobile: boolean,\n @Inject(TUI_IS_MOBILE_RES) readonly isMobileRes$: Observable<boolean>,\n @Inject(TUI_IS_IOS) readonly isIOS: boolean,\n @Inject(TUI_IS_ANDROID) readonly isAndroid: boolean,\n @Inject(DOCUMENT) {body}: Document,\n @Inject(TUI_THEME) theme: string,\n ) {\n body.setAttribute('data-tui-theme', theme.toLowerCase());\n }\n}\n","<tui-scroll-controls\n *ngIf=\"scrollbars$ | async\"\n class=\"t-root-scrollbar\"\n></tui-scroll-controls>\n<tui-svg-defs-host></tui-svg-defs-host>\n<tui-dropdown-host>\n <div class=\"t-root-content\">\n <ng-content></ng-content>\n </div>\n <ng-content select=\"tuiOverContent\"></ng-content>\n <tui-dialog-host></tui-dialog-host>\n <ng-content select=\"tuiOverDialogs\"></ng-content>\n <tui-alert-host></tui-alert-host>\n <ng-content select=\"tuiOverAlerts\"></ng-content>\n</tui-dropdown-host>\n<!--TODO: 4.0 rename to tuiOverDropdowns-->\n<ng-content select=\"tuiOverPortals\"></ng-content>\n<tui-hints-host></tui-hints-host>\n<ng-content select=\"tuiOverHints\"></ng-content>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {\n TuiAlertHostModule,\n TuiDialogHostModule,\n TuiDragModule,\n TuiDropdownHostModule,\n} from '@taiga-ui/cdk';\nimport {TuiHintsHostModule} from '@taiga-ui/core/components/hints-host';\nimport {TuiScrollControlsModule} from '@taiga-ui/core/components/scroll-controls';\nimport {TuiSvgDefsHostModule} from '@taiga-ui/core/internal/svg-defs-host';\nimport {EventPluginsModule} from '@tinkoff/ng-event-plugins';\n\nimport {TuiRootComponent} from './root.component';\n\n@NgModule({\n imports: [\n CommonModule,\n EventPluginsModule,\n TuiDragModule,\n TuiDropdownHostModule,\n TuiSvgDefsHostModule,\n TuiHintsHostModule,\n TuiDialogHostModule,\n TuiAlertHostModule,\n TuiScrollControlsModule,\n ],\n declarations: [TuiRootComponent],\n exports: [TuiRootComponent],\n})\nexport class TuiRootModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -67,7 +67,7 @@ const TUI_HINT_DIRECTIONS = [
67
67
  ];
68
68
 
69
69
  /**
70
- * @deprecated Use {@link https://github.com/Tinkoff/maskito Maskito}
70
+ * @deprecated Use {@link https://github.com/taiga-family/maskito Maskito}
71
71
  * TODO: delete in v4.0
72
72
  */
73
73
  const MASK_CARET_TRAP = `[]`;
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-core-constants.js","sources":["../../../projects/core/constants/cache-basting-payload.ts","../../../projects/core/constants/decimal-symbols.ts","../../../projects/core/constants/default-icons-path.ts","../../../projects/core/constants/default-marker-handler.ts","../../../projects/core/constants/default-number-format.ts","../../../projects/core/constants/editing-keys.ts","../../../projects/core/constants/events.ts","../../../projects/core/constants/hint-directions.ts","../../../projects/core/constants/mask-caret-trap.ts","../../../projects/core/constants/regexp.ts","../../../projects/core/constants/taiga-ui-core-constants.ts"],"sourcesContent":["import {TUI_VERSION} from '@taiga-ui/cdk';\n\nexport const TUI_CACHE_BUSTING_PAYLOAD = `?v=${TUI_VERSION}` as const;\n","/**\n * @deprecated\n * TODO: delete in v4.0\n */\nexport const TUI_DECIMAL_SYMBOLS: readonly string[] = [`,`, `.`];\n","import {TuiStringHandler} from '@taiga-ui/cdk';\n\nexport const DEFAULT_ICONS_PATH: TuiStringHandler<string> = name =>\n name.includes(`.svg#`) ? name : `#${name}`;\n","import {EMPTY_ARRAY} from '@taiga-ui/cdk';\nimport {TuiMarkerHandler} from '@taiga-ui/core/types';\n\nexport const TUI_DEFAULT_MARKER_HANDLER: TuiMarkerHandler = () => EMPTY_ARRAY;\n","import {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk';\nimport {TuiNumberFormatSettings} from '@taiga-ui/core/interfaces';\n\nexport const TUI_DEFAULT_NUMBER_FORMAT: TuiNumberFormatSettings = {\n decimalLimit: Infinity,\n decimalSeparator: `,`,\n thousandSeparator: CHAR_NO_BREAK_SPACE,\n zeroPadding: true,\n rounding: `truncate`,\n};\n","export const tuiEditingKeys: readonly string[] = [\n `Spacebar`,\n `Backspace`,\n `Delete`,\n `ArrowLeft`,\n `ArrowRight`,\n `Left`,\n `Right`,\n `End`,\n `Home`,\n];\n","/**\n * An event indicating that async data for expand has finished loading.\n * Dispatch to finish loading states for {@link TuiExpandComponent}.\n */\nexport const TUI_EXPAND_LOADED = `tui-expand-loaded`;\n\n/**\n * An event for scrolling an element into view within {@link TuiScrollbarComponent}.\n */\nexport const TUI_SCROLL_INTO_VIEW = `tui-scroll-into-view`;\n\n/**\n * An event to notify {@link TuiScrollbarComponent} that\n * it should control a nested element.\n */\nexport const TUI_SCROLLABLE = `tui-scrollable`;\n\n/**\n * An event indicating and error during icon loading in {@link TuiSvgComponent}.\n */\nexport const TUI_ICON_ERROR = `tui-icon-error`;\n","import {TuiHintDirection} from '@taiga-ui/core/types';\n\nexport const TUI_HINT_DIRECTIONS: readonly TuiHintDirection[] = [\n `bottom-left`,\n `bottom`,\n `bottom-right`,\n `top-left`,\n `top`,\n `top-right`,\n `left-top`,\n `left`,\n `left-bottom`,\n `right-top`,\n `right`,\n `right-bottom`,\n];\n","/**\n * @deprecated Use {@link https://github.com/Tinkoff/maskito Maskito}\n * TODO: delete in v4.0\n */\nexport const MASK_CARET_TRAP = `[]`;\n","export const TUI_DIGIT_REGEXP = /\\d/;\nexport const TUI_NON_DIGIT_REGEXP = /\\D/;\nexport const TUI_NON_DIGITS_REGEXP = /\\D+/g;\nexport const TUI_LEADING_ZEROES_REGEXP = /^0+/;\nexport const TUI_MASK_SYMBOLS_REGEXP = /[ \\-_()]/g;\nexport const TUI_LAST_PUNCTUATION_MARK_REGEXP = /[.,\\\\/#!$%\\\\^&\\\\*;:{}=\\\\-_`~()]$/;\nexport const TUI_LATIN_REGEXP = /[A-z]/;\nexport const TUI_LATIN_AND_NUMBERS_REGEXP = /[A-z|0-9]/;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAEa,MAAA,yBAAyB,GAAG,CAAM,GAAA,EAAA,WAAW;;ACF1D;;;AAGG;MACU,mBAAmB,GAAsB,CAAC,CAAG,CAAA,CAAA,EAAE,CAAG,CAAA,CAAA;;ACFlD,MAAA,kBAAkB,GAA6B,IAAI,IAC5D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAA,CAAA,EAAI,IAAI,CAAA;;MCA/B,0BAA0B,GAAqB,MAAM;;ACArD,MAAA,yBAAyB,GAA4B;AAC9D,IAAA,YAAY,EAAE,QAAQ;AACtB,IAAA,gBAAgB,EAAE,CAAG,CAAA,CAAA;AACrB,IAAA,iBAAiB,EAAE,mBAAmB;AACtC,IAAA,WAAW,EAAE,IAAI;AACjB,IAAA,QAAQ,EAAE,CAAU,QAAA,CAAA;;;ACRX,MAAA,cAAc,GAAsB;IAC7C,CAAU,QAAA,CAAA;IACV,CAAW,SAAA,CAAA;IACX,CAAQ,MAAA,CAAA;IACR,CAAW,SAAA,CAAA;IACX,CAAY,UAAA,CAAA;IACZ,CAAM,IAAA,CAAA;IACN,CAAO,KAAA,CAAA;IACP,CAAK,GAAA,CAAA;IACL,CAAM,IAAA,CAAA;;;ACTV;;;AAGG;AACI,MAAM,iBAAiB,GAAG,oBAAoB;AAErD;;AAEG;AACI,MAAM,oBAAoB,GAAG,uBAAuB;AAE3D;;;AAGG;AACI,MAAM,cAAc,GAAG,iBAAiB;AAE/C;;AAEG;AACI,MAAM,cAAc,GAAG;;AClBjB,MAAA,mBAAmB,GAAgC;IAC5D,CAAa,WAAA,CAAA;IACb,CAAQ,MAAA,CAAA;IACR,CAAc,YAAA,CAAA;IACd,CAAU,QAAA,CAAA;IACV,CAAK,GAAA,CAAA;IACL,CAAW,SAAA,CAAA;IACX,CAAU,QAAA,CAAA;IACV,CAAM,IAAA,CAAA;IACN,CAAa,WAAA,CAAA;IACb,CAAW,SAAA,CAAA;IACX,CAAO,KAAA,CAAA;IACP,CAAc,YAAA,CAAA;;;ACdlB;;;AAGG;AACI,MAAM,eAAe,GAAG;;ACJxB,MAAM,gBAAgB,GAAG,KAAK;AAC9B,MAAM,oBAAoB,GAAG,KAAK;AAClC,MAAM,qBAAqB,GAAG,OAAO;AACrC,MAAM,yBAAyB,GAAG,MAAM;AACxC,MAAM,uBAAuB,GAAG,YAAY;AAC5C,MAAM,gCAAgC,GAAG,mCAAmC;AAC5E,MAAM,gBAAgB,GAAG,QAAQ;AACjC,MAAM,4BAA4B,GAAG;;ACP5C;;AAEG;;;;"}
1
+ {"version":3,"file":"taiga-ui-core-constants.js","sources":["../../../projects/core/constants/cache-basting-payload.ts","../../../projects/core/constants/decimal-symbols.ts","../../../projects/core/constants/default-icons-path.ts","../../../projects/core/constants/default-marker-handler.ts","../../../projects/core/constants/default-number-format.ts","../../../projects/core/constants/editing-keys.ts","../../../projects/core/constants/events.ts","../../../projects/core/constants/hint-directions.ts","../../../projects/core/constants/mask-caret-trap.ts","../../../projects/core/constants/regexp.ts","../../../projects/core/constants/taiga-ui-core-constants.ts"],"sourcesContent":["import {TUI_VERSION} from '@taiga-ui/cdk';\n\nexport const TUI_CACHE_BUSTING_PAYLOAD = `?v=${TUI_VERSION}` as const;\n","/**\n * @deprecated\n * TODO: delete in v4.0\n */\nexport const TUI_DECIMAL_SYMBOLS: readonly string[] = [`,`, `.`];\n","import {TuiStringHandler} from '@taiga-ui/cdk';\n\nexport const DEFAULT_ICONS_PATH: TuiStringHandler<string> = name =>\n name.includes(`.svg#`) ? name : `#${name}`;\n","import {EMPTY_ARRAY} from '@taiga-ui/cdk';\nimport {TuiMarkerHandler} from '@taiga-ui/core/types';\n\nexport const TUI_DEFAULT_MARKER_HANDLER: TuiMarkerHandler = () => EMPTY_ARRAY;\n","import {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk';\nimport {TuiNumberFormatSettings} from '@taiga-ui/core/interfaces';\n\nexport const TUI_DEFAULT_NUMBER_FORMAT: TuiNumberFormatSettings = {\n decimalLimit: Infinity,\n decimalSeparator: `,`,\n thousandSeparator: CHAR_NO_BREAK_SPACE,\n zeroPadding: true,\n rounding: `truncate`,\n};\n","export const tuiEditingKeys: readonly string[] = [\n `Spacebar`,\n `Backspace`,\n `Delete`,\n `ArrowLeft`,\n `ArrowRight`,\n `Left`,\n `Right`,\n `End`,\n `Home`,\n];\n","/**\n * An event indicating that async data for expand has finished loading.\n * Dispatch to finish loading states for {@link TuiExpandComponent}.\n */\nexport const TUI_EXPAND_LOADED = `tui-expand-loaded`;\n\n/**\n * An event for scrolling an element into view within {@link TuiScrollbarComponent}.\n */\nexport const TUI_SCROLL_INTO_VIEW = `tui-scroll-into-view`;\n\n/**\n * An event to notify {@link TuiScrollbarComponent} that\n * it should control a nested element.\n */\nexport const TUI_SCROLLABLE = `tui-scrollable`;\n\n/**\n * An event indicating and error during icon loading in {@link TuiSvgComponent}.\n */\nexport const TUI_ICON_ERROR = `tui-icon-error`;\n","import {TuiHintDirection} from '@taiga-ui/core/types';\n\nexport const TUI_HINT_DIRECTIONS: readonly TuiHintDirection[] = [\n `bottom-left`,\n `bottom`,\n `bottom-right`,\n `top-left`,\n `top`,\n `top-right`,\n `left-top`,\n `left`,\n `left-bottom`,\n `right-top`,\n `right`,\n `right-bottom`,\n];\n","/**\n * @deprecated Use {@link https://github.com/taiga-family/maskito Maskito}\n * TODO: delete in v4.0\n */\nexport const MASK_CARET_TRAP = `[]`;\n","export const TUI_DIGIT_REGEXP = /\\d/;\nexport const TUI_NON_DIGIT_REGEXP = /\\D/;\nexport const TUI_NON_DIGITS_REGEXP = /\\D+/g;\nexport const TUI_LEADING_ZEROES_REGEXP = /^0+/;\nexport const TUI_MASK_SYMBOLS_REGEXP = /[ \\-_()]/g;\nexport const TUI_LAST_PUNCTUATION_MARK_REGEXP = /[.,\\\\/#!$%\\\\^&\\\\*;:{}=\\\\-_`~()]$/;\nexport const TUI_LATIN_REGEXP = /[A-z]/;\nexport const TUI_LATIN_AND_NUMBERS_REGEXP = /[A-z|0-9]/;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAEa,MAAA,yBAAyB,GAAG,CAAM,GAAA,EAAA,WAAW;;ACF1D;;;AAGG;MACU,mBAAmB,GAAsB,CAAC,CAAG,CAAA,CAAA,EAAE,CAAG,CAAA,CAAA;;ACFlD,MAAA,kBAAkB,GAA6B,IAAI,IAC5D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAA,CAAA,EAAI,IAAI,CAAA;;MCA/B,0BAA0B,GAAqB,MAAM;;ACArD,MAAA,yBAAyB,GAA4B;AAC9D,IAAA,YAAY,EAAE,QAAQ;AACtB,IAAA,gBAAgB,EAAE,CAAG,CAAA,CAAA;AACrB,IAAA,iBAAiB,EAAE,mBAAmB;AACtC,IAAA,WAAW,EAAE,IAAI;AACjB,IAAA,QAAQ,EAAE,CAAU,QAAA,CAAA;;;ACRX,MAAA,cAAc,GAAsB;IAC7C,CAAU,QAAA,CAAA;IACV,CAAW,SAAA,CAAA;IACX,CAAQ,MAAA,CAAA;IACR,CAAW,SAAA,CAAA;IACX,CAAY,UAAA,CAAA;IACZ,CAAM,IAAA,CAAA;IACN,CAAO,KAAA,CAAA;IACP,CAAK,GAAA,CAAA;IACL,CAAM,IAAA,CAAA;;;ACTV;;;AAGG;AACI,MAAM,iBAAiB,GAAG,oBAAoB;AAErD;;AAEG;AACI,MAAM,oBAAoB,GAAG,uBAAuB;AAE3D;;;AAGG;AACI,MAAM,cAAc,GAAG,iBAAiB;AAE/C;;AAEG;AACI,MAAM,cAAc,GAAG;;AClBjB,MAAA,mBAAmB,GAAgC;IAC5D,CAAa,WAAA,CAAA;IACb,CAAQ,MAAA,CAAA;IACR,CAAc,YAAA,CAAA;IACd,CAAU,QAAA,CAAA;IACV,CAAK,GAAA,CAAA;IACL,CAAW,SAAA,CAAA;IACX,CAAU,QAAA,CAAA;IACV,CAAM,IAAA,CAAA;IACN,CAAa,WAAA,CAAA;IACb,CAAW,SAAA,CAAA;IACX,CAAO,KAAA,CAAA;IACP,CAAc,YAAA,CAAA;;;ACdlB;;;AAGG;AACI,MAAM,eAAe,GAAG;;ACJxB,MAAM,gBAAgB,GAAG,KAAK;AAC9B,MAAM,oBAAoB,GAAG,KAAK;AAClC,MAAM,qBAAqB,GAAG,OAAO;AACrC,MAAM,yBAAyB,GAAG,MAAM;AACxC,MAAM,uBAAuB,GAAG,YAAY;AAC5C,MAAM,gCAAgC,GAAG,mCAAmC;AAC5E,MAAM,gBAAgB,GAAG,QAAQ;AACjC,MAAM,4BAA4B,GAAG;;ACP5C;;AAEG;;;;"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, ElementRef, INJECTOR, Directive, Self, Inject, Input, Optional, SkipSelf, forwardRef, Component, ChangeDetectionStrategy, HostListener, ViewContainerRef, NgModule } from '@angular/core';
2
+ import { InjectionToken, EventEmitter, Directive, Input, Output, ElementRef, INJECTOR, Self, Inject, Optional, SkipSelf, forwardRef, Component, ChangeDetectionStrategy, HostListener, ViewContainerRef, NgModule } from '@angular/core';
3
3
  import { WINDOW } from '@ng-web-apis/common';
4
4
  import * as i2 from '@taiga-ui/cdk';
5
5
  import { TuiDestroyService, TuiDropdownPortalService, tuiPure, tuiCreateOptions, tuiProvideOptions, TuiHoveredService, tuiPx, tuiGetClosestFocusable, AbstractTuiPortalHostComponent, EMPTY_CLIENT_RECT, tuiPointToClientRect, TuiActiveZoneDirective, ALWAYS_TRUE_HANDLER, tuiIsTextNode, tuiIsString, tuiIsElement, tuiGetNativeFocused, tuiIsTextfield, CHAR_ZERO_WIDTH_SPACE, CHAR_NO_BREAK_SPACE, TUI_RANGE, TuiActiveZoneModule, TuiOverscrollModule, TuiHoveredModule } from '@taiga-ui/cdk';
@@ -29,16 +29,45 @@ const TUI_DROPDOWN_COMPONENT = new InjectionToken(`[TUI_DROPDOWN_COMPONENT]`, {
29
29
  factory: () => TuiDropdownComponent,
30
30
  });
31
31
 
32
+ class TuiDropdownOpenDirective {
33
+ constructor() {
34
+ this.tuiDropdownOpenChange = new EventEmitter();
35
+ }
36
+ set tuiDropdownOpen(open) {
37
+ var _a;
38
+ (_a = this.dropdown) === null || _a === void 0 ? void 0 : _a.toggle(open);
39
+ }
40
+ }
41
+ TuiDropdownOpenDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDropdownOpenDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
42
+ TuiDropdownOpenDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiDropdownOpenDirective, selector: "[tuiDropdownOpen],[tuiDropdownOpenChange]", inputs: { tuiDropdownOpen: "tuiDropdownOpen" }, outputs: { tuiDropdownOpenChange: "tuiDropdownOpenChange" }, ngImport: i0 });
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDropdownOpenDirective, decorators: [{
44
+ type: Directive,
45
+ args: [{
46
+ selector: '[tuiDropdownOpen],[tuiDropdownOpenChange]',
47
+ }]
48
+ }], propDecorators: { tuiDropdownOpen: [{
49
+ type: Input
50
+ }], tuiDropdownOpenChange: [{
51
+ type: Output
52
+ }] } });
53
+
32
54
  class TuiDropdownDirective {
33
- constructor(destroy$, el, dropdown, injector, dropdownService) {
55
+ constructor(destroy$, el, dropdown, injector, dropdownService, open) {
34
56
  this.el = el;
35
57
  this.dropdown = dropdown;
36
58
  this.injector = injector;
37
59
  this.dropdownService = dropdownService;
60
+ this.open = open;
38
61
  this.refresh$ = new Subject();
39
62
  this.dropdownBoxRef = null;
40
63
  this.type = 'dropdown';
41
64
  this.component = new PolymorpheusComponent(this.dropdown, this.injector);
65
+ if (this.open && !this.open.dropdown) {
66
+ this.open.dropdown = this;
67
+ }
68
+ else {
69
+ this.open = null;
70
+ }
42
71
  // Ignore multiple change detection triggers at the same frame
43
72
  this.refresh$.pipe(throttleTime(0), takeUntil(destroy$)).subscribe(() => {
44
73
  var _a, _b;
@@ -59,21 +88,27 @@ class TuiDropdownDirective {
59
88
  }
60
89
  ngOnDestroy() {
61
90
  this.toggle(false);
91
+ if (this.open) {
92
+ this.open.dropdown = undefined;
93
+ }
62
94
  }
63
95
  getClientRect() {
64
96
  return this.el.nativeElement.getBoundingClientRect();
65
97
  }
66
98
  toggle(show) {
99
+ var _a, _b;
67
100
  if (show && this.content && !this.dropdownBoxRef) {
68
101
  this.dropdownBoxRef = this.dropdownService.add(this.component);
102
+ (_a = this.open) === null || _a === void 0 ? void 0 : _a.tuiDropdownOpenChange.emit(true);
69
103
  }
70
104
  else if (!show && this.dropdownBoxRef) {
71
105
  this.dropdownService.remove(this.dropdownBoxRef);
72
106
  this.dropdownBoxRef = null;
107
+ (_b = this.open) === null || _b === void 0 ? void 0 : _b.tuiDropdownOpenChange.emit(false);
73
108
  }
74
109
  }
75
110
  }
76
- TuiDropdownDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDropdownDirective, deps: [{ token: TuiDestroyService, self: true }, { token: ElementRef }, { token: TUI_DROPDOWN_COMPONENT }, { token: INJECTOR }, { token: TuiDropdownPortalService }], target: i0.ɵɵFactoryTarget.Directive });
111
+ TuiDropdownDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDropdownDirective, deps: [{ token: TuiDestroyService, self: true }, { token: ElementRef }, { token: TUI_DROPDOWN_COMPONENT }, { token: INJECTOR }, { token: TuiDropdownPortalService }, { token: TuiDropdownOpenDirective, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
77
112
  TuiDropdownDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container)", inputs: { content: ["tuiDropdown", "content"] }, providers: [
78
113
  TuiDestroyService,
79
114
  tuiAsRectAccessor(TuiDropdownDirective),
@@ -110,6 +145,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
110
145
  }] }, { type: i2.TuiDropdownPortalService, decorators: [{
111
146
  type: Inject,
112
147
  args: [TuiDropdownPortalService]
148
+ }] }, { type: TuiDropdownOpenDirective, decorators: [{
149
+ type: Optional
150
+ }, {
151
+ type: Inject,
152
+ args: [TuiDropdownOpenDirective]
113
153
  }] }]; }, propDecorators: { content: [{
114
154
  type: Input,
115
155
  args: ['tuiDropdown']
@@ -833,6 +873,7 @@ class TuiDropdownModule {
833
873
  TuiDropdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
834
874
  TuiDropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiDropdownModule, declarations: [TuiDropdownDirective,
835
875
  TuiDropdownComponent,
876
+ TuiDropdownOpenDirective,
836
877
  TuiDropdownOptionsDirective,
837
878
  TuiDropdownHostDirective,
838
879
  TuiDropdownDriverDirective,
@@ -847,6 +888,7 @@ TuiDropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", versi
847
888
  TuiScrollbarModule,
848
889
  TuiHoveredModule], exports: [TuiDropdownDirective,
849
890
  TuiDropdownComponent,
891
+ TuiDropdownOpenDirective,
850
892
  TuiDropdownOptionsDirective,
851
893
  TuiDropdownHostDirective,
852
894
  TuiDropdownDriverDirective,
@@ -876,6 +918,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
876
918
  declarations: [
877
919
  TuiDropdownDirective,
878
920
  TuiDropdownComponent,
921
+ TuiDropdownOpenDirective,
879
922
  TuiDropdownOptionsDirective,
880
923
  TuiDropdownHostDirective,
881
924
  TuiDropdownDriverDirective,
@@ -889,6 +932,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
889
932
  exports: [
890
933
  TuiDropdownDirective,
891
934
  TuiDropdownComponent,
935
+ TuiDropdownOpenDirective,
892
936
  TuiDropdownOptionsDirective,
893
937
  TuiDropdownHostDirective,
894
938
  TuiDropdownDriverDirective,
@@ -906,5 +950,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
906
950
  * Generated bundle index. Do not edit.
907
951
  */
908
952
 
909
- export { TUI_DROPDOWN_COMPONENT, TUI_DROPDOWN_DEFAULT_OPTIONS, TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS, TUI_DROPDOWN_HOVER_OPTIONS, TUI_DROPDOWN_OPTIONS, TuiDropdownComponent, TuiDropdownContextDirective, TuiDropdownDirective, TuiDropdownDriverDirective, TuiDropdownHostDirective, TuiDropdownHoverDirective, TuiDropdownManualDirective, TuiDropdownModule, TuiDropdownOptionsDirective, TuiDropdownPositionDirective, TuiDropdownPositionSidedDirective, TuiDropdownSelectionDirective, tuiDropdownHoverOptionsProvider, tuiDropdownOptionsProvider };
953
+ export { TUI_DROPDOWN_COMPONENT, TUI_DROPDOWN_DEFAULT_OPTIONS, TUI_DROPDOWN_HOVER_DEFAULT_OPTIONS, TUI_DROPDOWN_HOVER_OPTIONS, TUI_DROPDOWN_OPTIONS, TuiDropdownComponent, TuiDropdownContextDirective, TuiDropdownDirective, TuiDropdownDriverDirective, TuiDropdownHostDirective, TuiDropdownHoverDirective, TuiDropdownManualDirective, TuiDropdownModule, TuiDropdownOpenDirective, TuiDropdownOptionsDirective, TuiDropdownPositionDirective, TuiDropdownPositionSidedDirective, TuiDropdownSelectionDirective, tuiDropdownHoverOptionsProvider, tuiDropdownOptionsProvider };
910
954
  //# sourceMappingURL=taiga-ui-core-directives-dropdown.js.map