@taiga-ui/cdk 2.34.0 → 2.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/abstract/control.d.ts +2 -2
- package/abstract/index.d.ts +2 -0
- package/abstract/portal-host.d.ts +13 -0
- package/abstract/portal-service.d.ts +14 -0
- package/abstract/taiga-ui-cdk-abstract.metadata.json +1 -1
- package/bundles/taiga-ui-cdk-abstract.umd.js +94 -6
- package/bundles/taiga-ui-cdk-abstract.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-abstract.umd.min.js +2 -2
- package/bundles/taiga-ui-cdk-abstract.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js +280 -0
- package/bundles/taiga-ui-cdk-components-dropdown-host.umd.js.map +1 -0
- package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js +16 -0
- package/bundles/taiga-ui-cdk-components-dropdown-host.umd.min.js.map +1 -0
- package/bundles/taiga-ui-cdk-components-portal-host.umd.js +10 -114
- package/bundles/taiga-ui-cdk-components-portal-host.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js +2 -2
- package/bundles/taiga-ui-cdk-components-portal-host.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-components.umd.js +12 -4
- package/bundles/taiga-ui-cdk-components.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-components.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-date-time.umd.js +8 -2
- package/bundles/taiga-ui-cdk-date-time.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-date-time.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js +77 -52
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js +2 -2
- package/bundles/taiga-ui-cdk-directives-auto-focus.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-for.umd.js +3 -2
- package/bundles/taiga-ui-cdk-directives-for.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-directives-for.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-directives-for.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-services.umd.js +19 -6
- package/bundles/taiga-ui-cdk-services.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-services.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-services.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-tokens.umd.js +5 -1
- package/bundles/taiga-ui-cdk-tokens.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-tokens.umd.min.js +1 -1
- package/bundles/taiga-ui-cdk-tokens.umd.min.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-focus.umd.js +1 -1
- package/bundles/taiga-ui-cdk-utils-focus.umd.js.map +1 -1
- package/bundles/taiga-ui-cdk-utils-focus.umd.min.js.map +1 -1
- package/components/dropdown-host/dropdown-host.component.d.ts +8 -0
- package/components/dropdown-host/dropdown-host.module.d.ts +2 -0
- package/components/dropdown-host/index.d.ts +2 -0
- package/components/dropdown-host/package.json +13 -0
- package/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.d.ts +4 -0
- package/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.metadata.json +1 -0
- package/components/index.d.ts +1 -0
- package/components/portal-host/index.d.ts +0 -2
- package/components/portal-host/portal.service.d.ts +4 -11
- package/components/portal-host/taiga-ui-cdk-components-portal-host.metadata.json +1 -1
- package/components/taiga-ui-cdk-components.metadata.json +1 -1
- package/date-time/month-range.d.ts +4 -0
- package/date-time/month.d.ts +2 -0
- package/directives/auto-focus/autofocus.directive.d.ts +8 -7
- package/directives/auto-focus/taiga-ui-cdk-directives-auto-focus.metadata.json +1 -1
- package/directives/for/for.directive.d.ts +4 -4
- package/directives/for/taiga-ui-cdk-directives-for.metadata.json +1 -1
- package/esm2015/abstract/control.js +5 -3
- package/esm2015/abstract/index.js +3 -1
- package/esm2015/abstract/portal-host.js +44 -0
- package/esm2015/abstract/portal-service.js +34 -0
- package/esm2015/components/dropdown-host/dropdown-host.component.js +36 -0
- package/esm2015/components/dropdown-host/dropdown-host.module.js +13 -0
- package/esm2015/components/dropdown-host/index.js +3 -0
- package/esm2015/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.js +5 -0
- package/esm2015/components/index.js +2 -1
- package/esm2015/components/portal-host/index.js +1 -3
- package/esm2015/components/portal-host/portal.service.js +6 -26
- package/esm2015/date-time/month-range.js +5 -1
- package/esm2015/date-time/month.js +3 -1
- package/esm2015/date-time/time.js +3 -3
- package/esm2015/directives/auto-focus/autofocus.directive.js +68 -52
- package/esm2015/directives/for/for.directive.js +6 -5
- package/esm2015/services/directive-styles.service.js +19 -6
- package/esm2015/services/parents-scroll.service.js +3 -2
- package/esm2015/tokens/is-ios.js +5 -3
- package/esm2015/utils/focus/get-closest-keyboard-focusable.js +2 -2
- package/esm5/abstract/control.js +5 -3
- package/esm5/abstract/index.js +3 -1
- package/esm5/abstract/portal-host.js +50 -0
- package/esm5/abstract/portal-service.js +42 -0
- package/esm5/components/dropdown-host/dropdown-host.component.js +41 -0
- package/esm5/components/dropdown-host/dropdown-host.module.js +16 -0
- package/esm5/components/dropdown-host/index.js +3 -0
- package/esm5/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.js +5 -0
- package/esm5/components/index.js +2 -1
- package/esm5/components/portal-host/index.js +1 -3
- package/esm5/components/portal-host/portal.service.js +10 -33
- package/esm5/date-time/month-range.js +5 -1
- package/esm5/date-time/month.js +3 -1
- package/esm5/date-time/time.js +3 -3
- package/esm5/directives/auto-focus/autofocus.directive.js +76 -52
- package/esm5/directives/for/for.directive.js +6 -5
- package/esm5/services/directive-styles.service.js +19 -6
- package/esm5/services/parents-scroll.service.js +3 -3
- package/esm5/tokens/is-ios.js +7 -3
- package/esm5/utils/focus/get-closest-keyboard-focusable.js +2 -2
- package/fesm2015/taiga-ui-cdk-abstract.js +77 -4
- package/fesm2015/taiga-ui-cdk-abstract.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-components-dropdown-host.js +51 -0
- package/fesm2015/taiga-ui-cdk-components-dropdown-host.js.map +1 -0
- package/fesm2015/taiga-ui-cdk-components-portal-host.js +7 -97
- package/fesm2015/taiga-ui-cdk-components-portal-host.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-components.js +1 -0
- package/fesm2015/taiga-ui-cdk-components.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-date-time.js +8 -2
- package/fesm2015/taiga-ui-cdk-date-time.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-auto-focus.js +67 -51
- package/fesm2015/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-directives-for.js +5 -4
- package/fesm2015/taiga-ui-cdk-directives-for.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-services.js +20 -6
- package/fesm2015/taiga-ui-cdk-services.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-tokens.js +4 -2
- package/fesm2015/taiga-ui-cdk-tokens.js.map +1 -1
- package/fesm2015/taiga-ui-cdk-utils-focus.js +1 -1
- package/fesm2015/taiga-ui-cdk-utils-focus.js.map +1 -1
- package/fesm5/taiga-ui-cdk-abstract.js +91 -4
- package/fesm5/taiga-ui-cdk-abstract.js.map +1 -1
- package/fesm5/taiga-ui-cdk-components-dropdown-host.js +59 -0
- package/fesm5/taiga-ui-cdk-components-dropdown-host.js.map +1 -0
- package/fesm5/taiga-ui-cdk-components-portal-host.js +10 -112
- package/fesm5/taiga-ui-cdk-components-portal-host.js.map +1 -1
- package/fesm5/taiga-ui-cdk-components.js +1 -0
- package/fesm5/taiga-ui-cdk-components.js.map +1 -1
- package/fesm5/taiga-ui-cdk-date-time.js +8 -2
- package/fesm5/taiga-ui-cdk-date-time.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-auto-focus.js +75 -51
- package/fesm5/taiga-ui-cdk-directives-auto-focus.js.map +1 -1
- package/fesm5/taiga-ui-cdk-directives-for.js +5 -4
- package/fesm5/taiga-ui-cdk-directives-for.js.map +1 -1
- package/fesm5/taiga-ui-cdk-services.js +20 -7
- package/fesm5/taiga-ui-cdk-services.js.map +1 -1
- package/fesm5/taiga-ui-cdk-tokens.js +6 -2
- package/fesm5/taiga-ui-cdk-tokens.js.map +1 -1
- package/fesm5/taiga-ui-cdk-utils-focus.js +1 -1
- package/fesm5/taiga-ui-cdk-utils-focus.js.map +1 -1
- package/package.json +1 -1
- package/services/directive-styles.service.d.ts +7 -2
- package/services/parents-scroll.service.d.ts +1 -1
- package/services/taiga-ui-cdk-services.metadata.json +1 -1
- package/utils/focus/get-closest-keyboard-focusable.d.ts +1 -1
- package/components/portal-host/portal-host.component.d.ts +0 -15
- package/components/portal-host/portal-host.module.d.ts +0 -2
- package/esm2015/components/portal-host/portal-host.component.js +0 -65
- package/esm2015/components/portal-host/portal-host.module.js +0 -13
- package/esm5/components/portal-host/portal-host.component.js +0 -71
- package/esm5/components/portal-host/portal-host.module.js +0 -16
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __decorate, __param } from "tslib";
|
|
2
2
|
import { DOCUMENT } from '@angular/common';
|
|
3
|
-
import { Inject, Injectable, Renderer2 } from '@angular/core';
|
|
3
|
+
import { ComponentFactoryResolver, Inject, Injectable, INJECTOR, Injector, Renderer2, Type, } from '@angular/core';
|
|
4
4
|
import { TUI_DEFAULT_RENDERER } from '@taiga-ui/cdk/tokens';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@angular/common";
|
|
@@ -10,10 +10,19 @@ import * as i2 from "@taiga-ui/cdk/tokens";
|
|
|
10
10
|
* @dynamic
|
|
11
11
|
*/
|
|
12
12
|
var TuiDirectiveStylesService = /** @class */ (function () {
|
|
13
|
-
function TuiDirectiveStylesService(documentRef, renderer) {
|
|
13
|
+
function TuiDirectiveStylesService(resolver, injector, documentRef, renderer) {
|
|
14
|
+
this.resolver = resolver;
|
|
15
|
+
this.injector = injector;
|
|
14
16
|
this.documentRef = documentRef;
|
|
15
17
|
this.renderer = renderer;
|
|
18
|
+
this.map = new Map();
|
|
16
19
|
}
|
|
20
|
+
TuiDirectiveStylesService.prototype.addComponent = function (component) {
|
|
21
|
+
if (!this.map.has(component)) {
|
|
22
|
+
this.map.set(component, this.resolver.resolveComponentFactory(component).create(this.injector));
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
/** @deprecated use components approach */
|
|
17
26
|
TuiDirectiveStylesService.prototype.addStyle = function (styles, attribute) {
|
|
18
27
|
if (this.documentRef.head.querySelector("style[" + attribute + "]")) {
|
|
19
28
|
return;
|
|
@@ -24,18 +33,22 @@ var TuiDirectiveStylesService = /** @class */ (function () {
|
|
|
24
33
|
this.documentRef.head.appendChild(style);
|
|
25
34
|
};
|
|
26
35
|
TuiDirectiveStylesService.ctorParameters = function () { return [
|
|
36
|
+
{ type: ComponentFactoryResolver, decorators: [{ type: Inject, args: [ComponentFactoryResolver,] }] },
|
|
37
|
+
{ type: Injector, decorators: [{ type: Inject, args: [INJECTOR,] }] },
|
|
27
38
|
{ type: Document, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
|
|
28
39
|
{ type: Renderer2, decorators: [{ type: Inject, args: [TUI_DEFAULT_RENDERER,] }] }
|
|
29
40
|
]; };
|
|
30
|
-
TuiDirectiveStylesService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TuiDirectiveStylesService_Factory() { return new TuiDirectiveStylesService(i0.ɵɵinject(i1.DOCUMENT), i0.ɵɵinject(i2.TUI_DEFAULT_RENDERER)); }, token: TuiDirectiveStylesService, providedIn: "root" });
|
|
41
|
+
TuiDirectiveStylesService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TuiDirectiveStylesService_Factory() { return new TuiDirectiveStylesService(i0.ɵɵinject(i0.ComponentFactoryResolver), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i1.DOCUMENT), i0.ɵɵinject(i2.TUI_DEFAULT_RENDERER)); }, token: TuiDirectiveStylesService, providedIn: "root" });
|
|
31
42
|
TuiDirectiveStylesService = __decorate([
|
|
32
43
|
Injectable({
|
|
33
44
|
providedIn: 'root',
|
|
34
45
|
}),
|
|
35
|
-
__param(0, Inject(
|
|
36
|
-
__param(1, Inject(
|
|
46
|
+
__param(0, Inject(ComponentFactoryResolver)),
|
|
47
|
+
__param(1, Inject(INJECTOR)),
|
|
48
|
+
__param(2, Inject(DOCUMENT)),
|
|
49
|
+
__param(3, Inject(TUI_DEFAULT_RENDERER))
|
|
37
50
|
], TuiDirectiveStylesService);
|
|
38
51
|
return TuiDirectiveStylesService;
|
|
39
52
|
}());
|
|
40
53
|
export { TuiDirectiveStylesService };
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlLXN0eWxlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2Nkay9zZXJ2aWNlcy8iLCJzb3VyY2VzIjpbImRpcmVjdGl2ZS1zdHlsZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIsTUFBTSxFQUNOLFVBQVUsRUFDVixRQUFRLEVBQ1IsUUFBUSxFQUNSLFNBQVMsRUFDVCxJQUFJLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFFMUQ7OztHQUdHO0FBSUg7SUFHSSxtQ0FFcUIsUUFBa0MsRUFDaEIsUUFBa0IsRUFDbEIsV0FBcUIsRUFDVCxRQUFtQjtRQUhqRCxhQUFRLEdBQVIsUUFBUSxDQUEwQjtRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGdCQUFXLEdBQVgsV0FBVyxDQUFVO1FBQ1QsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQVByRCxRQUFHLEdBQUcsSUFBSSxHQUFHLEVBQTBCLENBQUM7SUFRdEQsQ0FBQztJQUVKLGdEQUFZLEdBQVosVUFBYSxTQUF3QjtRQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQ1IsU0FBUyxFQUNULElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDekUsQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUVELDBDQUEwQztJQUMxQyw0Q0FBUSxHQUFSLFVBQVMsTUFBYyxFQUFFLFNBQWlCO1FBQ3RDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVMsU0FBUyxNQUFHLENBQUMsRUFBRTtZQUM1RCxPQUFPO1NBQ1Y7UUFFRCxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVuRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7O2dCQTFCOEIsd0JBQXdCLHVCQURsRCxNQUFNLFNBQUMsd0JBQXdCO2dCQUVhLFFBQVEsdUJBQXBELE1BQU0sU0FBQyxRQUFRO2dCQUNnQyxRQUFRLHVCQUF2RCxNQUFNLFNBQUMsUUFBUTtnQkFDeUMsU0FBUyx1QkFBakUsTUFBTSxTQUFDLG9CQUFvQjs7O0lBUnZCLHlCQUF5QjtRQUhyQyxVQUFVLENBQUM7WUFDUixVQUFVLEVBQUUsTUFBTTtTQUNyQixDQUFDO1FBS08sV0FBQSxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtRQUVoQyxXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNoQixXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNoQixXQUFBLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO09BUnhCLHlCQUF5QixDQWdDckM7b0NBbkREO0NBbURDLEFBaENELElBZ0NDO1NBaENZLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0YWJsZSxcbiAgICBJTkpFQ1RPUixcbiAgICBJbmplY3RvcixcbiAgICBSZW5kZXJlcjIsXG4gICAgVHlwZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RVSV9ERUZBVUxUX1JFTkRFUkVSfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3Rva2Vucyc7XG5cbi8qKlxuICogU2VydmljZSB0byB1c2Ugc3R5bGVzIHdpdGggZGlyZWN0aXZlc1xuICogQGR5bmFtaWNcbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVHVpRGlyZWN0aXZlU3R5bGVzU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBtYXAgPSBuZXcgTWFwPFR5cGU8dW5rbm93bj4sIHVua25vd24+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgQEluamVjdChJTkpFQ1RPUikgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRSZWY6IERvY3VtZW50LFxuICAgICAgICBASW5qZWN0KFRVSV9ERUZBVUxUX1JFTkRFUkVSKSBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgKSB7fVxuXG4gICAgYWRkQ29tcG9uZW50KGNvbXBvbmVudDogVHlwZTx1bmtub3duPikge1xuICAgICAgICBpZiAoIXRoaXMubWFwLmhhcyhjb21wb25lbnQpKSB7XG4gICAgICAgICAgICB0aGlzLm1hcC5zZXQoXG4gICAgICAgICAgICAgICAgY29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50KS5jcmVhdGUodGhpcy5pbmplY3RvciksXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBkZXByZWNhdGVkIHVzZSBjb21wb25lbnRzIGFwcHJvYWNoICovXG4gICAgYWRkU3R5bGUoc3R5bGVzOiBzdHJpbmcsIGF0dHJpYnV0ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLmRvY3VtZW50UmVmLmhlYWQucXVlcnlTZWxlY3Rvcihgc3R5bGVbJHthdHRyaWJ1dGV9XWApKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdHlsZSA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHN0eWxlLCAndGV4dENvbnRlbnQnLCBzdHlsZXMpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShzdHlsZSwgYXR0cmlidXRlLCAnJyk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRSZWYuaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7XG4gICAgfVxufVxuIl19
|
|
@@ -10,10 +10,10 @@ import { defer, merge, Observable } from 'rxjs';
|
|
|
10
10
|
// @dynamic
|
|
11
11
|
var TuiParentsScrollService = /** @class */ (function (_super) {
|
|
12
12
|
__extends(TuiParentsScrollService, _super);
|
|
13
|
-
function TuiParentsScrollService(
|
|
14
|
-
var nativeElement = _a.nativeElement;
|
|
13
|
+
function TuiParentsScrollService(elementRef, windowRef) {
|
|
15
14
|
var _this = _super.call(this, function (subscriber) { return _this.callback$.subscribe(subscriber); }) || this;
|
|
16
15
|
_this.callback$ = defer(function () {
|
|
16
|
+
var nativeElement = elementRef.nativeElement;
|
|
17
17
|
var eventTargets = [windowRef, nativeElement];
|
|
18
18
|
while (nativeElement.parentElement) {
|
|
19
19
|
nativeElement = nativeElement.parentElement;
|
|
@@ -37,4 +37,4 @@ var TuiParentsScrollService = /** @class */ (function (_super) {
|
|
|
37
37
|
return TuiParentsScrollService;
|
|
38
38
|
}(Observable));
|
|
39
39
|
export { TuiParentsScrollService };
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyZW50cy1zY3JvbGwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9jZGsvc2VydmljZXMvIiwic291cmNlcyI6WyJwYXJlbnRzLXNjcm9sbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFOUM7O0dBRUc7QUFDSCw4RkFBOEY7QUFDOUYsV0FBVztBQUVYO0lBQTZDLDJDQUFpQjtJQUcxRCxpQ0FDd0IsVUFBK0IsRUFDbkMsU0FBaUI7UUFGckMsWUFJSSxrQkFBTSxVQUFBLFVBQVUsSUFBSSxPQUFBLEtBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFwQyxDQUFvQyxDQUFDLFNBaUI1RDtRQWZHLEtBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ2QsSUFBQSx3Q0FBYSxDQUFlO1lBQ2pDLElBQU0sWUFBWSxHQUE0QixDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUV6RSxPQUFPLGFBQWEsQ0FBQyxhQUFhLEVBQUU7Z0JBQ2hDLGFBQWEsR0FBRyxhQUFhLENBQUMsYUFBYSxDQUFDO2dCQUM1QyxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ3BDO1lBRUQsT0FBTyxLQUFLLHdCQUNMLFlBQVksQ0FBQyxHQUFHLENBQW9CLFVBQUEsT0FBTztnQkFDMUMsT0FBQSxjQUFjLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQztZQUFqQyxDQUFpQyxDQUNwQyxHQUNIO1FBQ04sQ0FBQyxDQUFDLENBQUM7O0lBQ1AsQ0FBQzs7Z0JBcEJtQyxVQUFVLHVCQUF6QyxNQUFNLFNBQUMsVUFBVTtnQkFDUyxNQUFNLHVCQUFoQyxNQUFNLFNBQUMsTUFBTTs7SUFMVCx1QkFBdUI7UUFEbkMsVUFBVSxFQUFFO1FBS0osV0FBQSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDbEIsV0FBQSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7T0FMVix1QkFBdUIsQ0F5Qm5DO0lBQUQsOEJBQUM7Q0FBQSxBQXpCRCxDQUE2QyxVQUFVLEdBeUJ0RDtTQXpCWSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0VsZW1lbnRSZWYsIEluamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dJTkRPV30gZnJvbSAnQG5nLXdlYi1hcGlzL2NvbW1vbic7XG5pbXBvcnQge3R5cGVkRnJvbUV2ZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL29ic2VydmFibGVzJztcbmltcG9ydCB7ZGVmZXIsIG1lcmdlLCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBTZXJ2aWNlIHRoYXQgc3Vic2NyaWJlcyB0byBzY3JvbGwgZXZlbnRzIG9mIGFsbCBwYXJlbnQgZWxlbWVudHNcbiAqL1xuLy8gQW1iaWVudCB0eXBlIGNhbm5vdCBiZSB1c2VkIHdpdGhvdXQgZHluYW1pYyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8yMzM5NVxuLy8gQGR5bmFtaWNcbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUdWlQYXJlbnRzU2Nyb2xsU2VydmljZSBleHRlbmRzIE9ic2VydmFibGU8RXZlbnQ+IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhbGxiYWNrJDogT2JzZXJ2YWJsZTxFdmVudD47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEVsZW1lbnQ+LFxuICAgICAgICBASW5qZWN0KFdJTkRPVykgd2luZG93UmVmOiBXaW5kb3csXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKHN1YnNjcmliZXIgPT4gdGhpcy5jYWxsYmFjayQuc3Vic2NyaWJlKHN1YnNjcmliZXIpKTtcblxuICAgICAgICB0aGlzLmNhbGxiYWNrJCA9IGRlZmVyKCgpID0+IHtcbiAgICAgICAgICAgIGxldCB7bmF0aXZlRWxlbWVudH0gPSBlbGVtZW50UmVmO1xuICAgICAgICAgICAgY29uc3QgZXZlbnRUYXJnZXRzOiBBcnJheTxFbGVtZW50IHwgV2luZG93PiA9IFt3aW5kb3dSZWYsIG5hdGl2ZUVsZW1lbnRdO1xuXG4gICAgICAgICAgICB3aGlsZSAobmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgbmF0aXZlRWxlbWVudCA9IG5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICAgICAgICAgICAgICBldmVudFRhcmdldHMucHVzaChuYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG1lcmdlPEV2ZW50PihcbiAgICAgICAgICAgICAgICAuLi5ldmVudFRhcmdldHMubWFwPE9ic2VydmFibGU8RXZlbnQ+PihlbGVtZW50ID0+XG4gICAgICAgICAgICAgICAgICAgIHR5cGVkRnJvbUV2ZW50KGVsZW1lbnQsICdzY3JvbGwnKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
package/esm5/tokens/is-ios.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { inject, InjectionToken } from '@angular/core';
|
|
2
|
-
import { USER_AGENT } from '@ng-web-apis/common';
|
|
2
|
+
import { NAVIGATOR, USER_AGENT } from '@ng-web-apis/common';
|
|
3
3
|
var IOS_REG_EXP = /ipad|iphone|ipod/;
|
|
4
4
|
export var TUI_IS_IOS = new InjectionToken('iOS browser detection', {
|
|
5
|
-
factory: function () {
|
|
5
|
+
factory: function () {
|
|
6
|
+
return IOS_REG_EXP.test(inject(USER_AGENT).toLowerCase()) ||
|
|
7
|
+
(inject(USER_AGENT).toLowerCase().includes('apple') &&
|
|
8
|
+
inject(NAVIGATOR).maxTouchPoints > 1);
|
|
9
|
+
},
|
|
6
10
|
});
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtaW9zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2Nkay90b2tlbnMvIiwic291cmNlcyI6WyJpcy1pb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUxRCxJQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQztBQUV2QyxNQUFNLENBQUMsSUFBTSxVQUFVLEdBQUcsSUFBSSxjQUFjLENBQVUsdUJBQXVCLEVBQUU7SUFDM0UsT0FBTyxFQUFFO1FBQ0wsT0FBQSxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNsRCxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO2dCQUMvQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUZ6QyxDQUV5QztDQUNoRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdCwgSW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOQVZJR0FUT1IsIFVTRVJfQUdFTlR9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuXG5jb25zdCBJT1NfUkVHX0VYUCA9IC9pcGFkfGlwaG9uZXxpcG9kLztcblxuZXhwb3J0IGNvbnN0IFRVSV9JU19JT1MgPSBuZXcgSW5qZWN0aW9uVG9rZW48Ym9vbGVhbj4oJ2lPUyBicm93c2VyIGRldGVjdGlvbicsIHtcbiAgICBmYWN0b3J5OiAoKSA9PlxuICAgICAgICBJT1NfUkVHX0VYUC50ZXN0KGluamVjdChVU0VSX0FHRU5UKS50b0xvd2VyQ2FzZSgpKSB8fFxuICAgICAgICAoaW5qZWN0KFVTRVJfQUdFTlQpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2FwcGxlJykgJiZcbiAgICAgICAgICAgIGluamVjdChOQVZJR0FUT1IpLm1heFRvdWNoUG9pbnRzID4gMSksXG59KTtcbiJdfQ==
|
|
@@ -2,7 +2,7 @@ import { svgNodeFilter } from '@taiga-ui/cdk/constants';
|
|
|
2
2
|
import { isNativeKeyboardFocusable } from './is-native-keyboard-focusable';
|
|
3
3
|
import { isNativeMouseFocusable } from './is-native-mouse-focusable';
|
|
4
4
|
/**
|
|
5
|
-
* Finds closest element that can be focused with a keyboard or mouse in theory
|
|
5
|
+
* Finds the closest element that can be focused with a keyboard or mouse in theory
|
|
6
6
|
*
|
|
7
7
|
* @param initial current HTML element
|
|
8
8
|
* @param prev should it look backwards instead (find item that will be focused with Shift + Tab)
|
|
@@ -34,4 +34,4 @@ export function getClosestFocusable(initial, prev, root, keyboard) {
|
|
|
34
34
|
}
|
|
35
35
|
/** @deprecated use getClosestFocusable */
|
|
36
36
|
export var getClosestKeyboardFocusable = getClosestFocusable;
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNsb3Nlc3Qta2V5Ym9hcmQtZm9jdXNhYmxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2Nkay91dGlscy9mb2N1cy8iLCJzb3VyY2VzIjpbImdldC1jbG9zZXN0LWtleWJvYXJkLWZvY3VzYWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFdEQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFbkU7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQy9CLE9BQW9CLEVBQ3BCLElBQXFCLEVBQ3JCLElBQVUsRUFDVixRQUF3QjtJQUZ4QixxQkFBQSxFQUFBLFlBQXFCO0lBRXJCLHlCQUFBLEVBQUEsZUFBd0I7SUFFeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7UUFDckIsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUVELElBQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDO0lBRTVFLCtDQUErQztJQUMvQyxzRkFBc0Y7SUFDdEYsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FDbEQsSUFBSSxFQUNKLFVBQVUsQ0FBQyxZQUFZLEVBQ3ZCLGFBQWEsRUFDYixLQUFLLENBQ1IsQ0FBQztJQUVGLFVBQVUsQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO0lBRWpDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUM3RCx1QkFBdUI7UUFDdkIsSUFBSSxVQUFVLENBQUMsV0FBVyxZQUFZLFdBQVcsRUFBRTtZQUMvQyxPQUFPLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQztTQUNwQztRQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sT0FBTyxDQUFDO1NBQ2xCO0tBQ0o7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQsMENBQTBDO0FBQzFDLE1BQU0sQ0FBQyxJQUFNLDJCQUEyQixHQUFHLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtzdmdOb2RlRmlsdGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7aXNOYXRpdmVLZXlib2FyZEZvY3VzYWJsZX0gZnJvbSAnLi9pcy1uYXRpdmUta2V5Ym9hcmQtZm9jdXNhYmxlJztcbmltcG9ydCB7aXNOYXRpdmVNb3VzZUZvY3VzYWJsZX0gZnJvbSAnLi9pcy1uYXRpdmUtbW91c2UtZm9jdXNhYmxlJztcblxuLyoqXG4gKiBGaW5kcyB0aGUgY2xvc2VzdCBlbGVtZW50IHRoYXQgY2FuIGJlIGZvY3VzZWQgd2l0aCBhIGtleWJvYXJkIG9yIG1vdXNlIGluIHRoZW9yeVxuICpcbiAqIEBwYXJhbSBpbml0aWFsIGN1cnJlbnQgSFRNTCBlbGVtZW50XG4gKiBAcGFyYW0gcHJldiBzaG91bGQgaXQgbG9vayBiYWNrd2FyZHMgaW5zdGVhZCAoZmluZCBpdGVtIHRoYXQgd2lsbCBiZSBmb2N1c2VkIHdpdGggU2hpZnQgKyBUYWIpXG4gKiBAcGFyYW0gcm9vdCB0b3AgTm9kZSBsaW1pdGluZyB0aGUgc2VhcmNoIGFyZWFcbiAqIEBwYXJhbSBrZXlib2FyZCBkZXRlcm1pbmUgaWYgb25seSBrZXlib2FyZCBmb2N1cyBpcyBvZiBpbnRlcmVzdFxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENsb3Nlc3RGb2N1c2FibGUoXG4gICAgaW5pdGlhbDogSFRNTEVsZW1lbnQsXG4gICAgcHJldjogYm9vbGVhbiA9IGZhbHNlLFxuICAgIHJvb3Q6IE5vZGUsXG4gICAga2V5Ym9hcmQ6IGJvb2xlYW4gPSB0cnVlLFxuKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICBpZiAoIXJvb3Qub3duZXJEb2N1bWVudCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBjaGVjayA9IGtleWJvYXJkID8gaXNOYXRpdmVLZXlib2FyZEZvY3VzYWJsZSA6IGlzTmF0aXZlTW91c2VGb2N1c2FibGU7XG5cbiAgICAvLyBEZXByZWNhdGVkIGJ1dCBvbnkgdGhpcyBvdmVybG9hZCB3b3JrcyBpbiBJRVxuICAgIC8vIEZpbHRlciBtdXN0IGJlIGEgZnVuY3Rpb24gaW4gSUUsIG90aGVyIG1vZGVybiBicm93c2VycyBhcmUgY29tcGxpYW50IHRvIHRoaXMgZm9ybWF0XG4gICAgY29uc3QgdHJlZVdhbGtlciA9IHJvb3Qub3duZXJEb2N1bWVudC5jcmVhdGVUcmVlV2Fsa2VyKFxuICAgICAgICByb290LFxuICAgICAgICBOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCxcbiAgICAgICAgc3ZnTm9kZUZpbHRlcixcbiAgICAgICAgZmFsc2UsXG4gICAgKTtcblxuICAgIHRyZWVXYWxrZXIuY3VycmVudE5vZGUgPSBpbml0aWFsO1xuXG4gICAgd2hpbGUgKHByZXYgPyB0cmVlV2Fsa2VyLnByZXZpb3VzTm9kZSgpIDogdHJlZVdhbGtlci5uZXh0Tm9kZSgpKSB7XG4gICAgICAgIC8vIFRPRE86IGlmcmFtZSB3YXJuaW5nXG4gICAgICAgIGlmICh0cmVlV2Fsa2VyLmN1cnJlbnROb2RlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgIGluaXRpYWwgPSB0cmVlV2Fsa2VyLmN1cnJlbnROb2RlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoZWNrKGluaXRpYWwpKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5pdGlhbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xufVxuXG4vKiogQGRlcHJlY2F0ZWQgdXNlIGdldENsb3Nlc3RGb2N1c2FibGUgKi9cbmV4cG9ydCBjb25zdCBnZXRDbG9zZXN0S2V5Ym9hcmRGb2N1c2FibGUgPSBnZXRDbG9zZXN0Rm9jdXNhYmxlO1xuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from 'tslib';
|
|
2
|
-
import { EventEmitter, Input, Output, HostBinding, Directive, ChangeDetectorRef, Inject, Injectable, TemplateRef } from '@angular/core';
|
|
2
|
+
import { EventEmitter, Input, Output, HostBinding, Directive, ChangeDetectorRef, Inject, Injectable, TemplateRef, Injector, ElementRef, ViewChild, ViewContainerRef } from '@angular/core';
|
|
3
3
|
import { NgModel, NgControl } from '@angular/forms';
|
|
4
4
|
import { tuiAssert } from '@taiga-ui/cdk/classes';
|
|
5
5
|
import { EMPTY_FUNCTION } from '@taiga-ui/cdk/constants';
|
|
@@ -8,6 +8,7 @@ import { Subject, merge, Observable, BehaviorSubject, EMPTY } from 'rxjs';
|
|
|
8
8
|
import { takeUntil, switchMap, ignoreElements, endWith } from 'rxjs/operators';
|
|
9
9
|
import { PolymorpheusTemplate } from '@tinkoff/ng-polymorpheus';
|
|
10
10
|
import { TuiIdService } from '@taiga-ui/cdk/services';
|
|
11
|
+
import { TuiNoHostException } from '@taiga-ui/cdk/exceptions';
|
|
11
12
|
import { DOCUMENT } from '@angular/common';
|
|
12
13
|
|
|
13
14
|
var AbstractTuiInteractive_1;
|
|
@@ -194,10 +195,12 @@ let AbstractTuiControl = class AbstractTuiControl extends AbstractTuiInteractive
|
|
|
194
195
|
return this.safeNgControlData(({ control }) => control, null);
|
|
195
196
|
}
|
|
196
197
|
get computedName() {
|
|
197
|
-
|
|
198
|
+
var _a, _b;
|
|
199
|
+
return (_b = (_a = this.controlName) === null || _a === void 0 ? void 0 : _a.toString()) !== null && _b !== void 0 ? _b : null;
|
|
198
200
|
}
|
|
199
201
|
get controlName() {
|
|
200
|
-
|
|
202
|
+
var _a, _b, _c;
|
|
203
|
+
return (_c = (_b = (_a = this.ngControl) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.toString()) !== null && _c !== void 0 ? _c : null;
|
|
201
204
|
}
|
|
202
205
|
get rawValue() {
|
|
203
206
|
const { ngControl } = this;
|
|
@@ -393,6 +396,76 @@ AbstractTuiNullableControl = __decorate([
|
|
|
393
396
|
Directive()
|
|
394
397
|
], AbstractTuiNullableControl);
|
|
395
398
|
|
|
399
|
+
/**
|
|
400
|
+
* Abstract service for displaying portals
|
|
401
|
+
*/
|
|
402
|
+
let AbstractTuiPortalService = class AbstractTuiPortalService {
|
|
403
|
+
get safeHost() {
|
|
404
|
+
if (!this.host) {
|
|
405
|
+
throw new TuiNoHostException();
|
|
406
|
+
}
|
|
407
|
+
return this.host;
|
|
408
|
+
}
|
|
409
|
+
attach(host) {
|
|
410
|
+
this.host = host;
|
|
411
|
+
}
|
|
412
|
+
add(componentFactory, injector) {
|
|
413
|
+
return this.safeHost.addComponentChild(componentFactory, injector);
|
|
414
|
+
}
|
|
415
|
+
remove({ hostView }) {
|
|
416
|
+
hostView.destroy();
|
|
417
|
+
}
|
|
418
|
+
addTemplate(templateRef, context) {
|
|
419
|
+
return this.safeHost.addTemplateChild(templateRef, context);
|
|
420
|
+
}
|
|
421
|
+
removeTemplate(viewRef) {
|
|
422
|
+
viewRef.destroy();
|
|
423
|
+
}
|
|
424
|
+
};
|
|
425
|
+
AbstractTuiPortalService = __decorate([
|
|
426
|
+
Injectable()
|
|
427
|
+
], AbstractTuiPortalService);
|
|
428
|
+
|
|
429
|
+
var AbstractTuiPortalHostComponent_1;
|
|
430
|
+
/**
|
|
431
|
+
* Abstract class for host element for dynamically created portals.
|
|
432
|
+
*/
|
|
433
|
+
let AbstractTuiPortalHostComponent = AbstractTuiPortalHostComponent_1 = class AbstractTuiPortalHostComponent {
|
|
434
|
+
constructor(elementRef, portalService) {
|
|
435
|
+
this.elementRef = elementRef;
|
|
436
|
+
portalService.attach(this);
|
|
437
|
+
}
|
|
438
|
+
get clientRect() {
|
|
439
|
+
return this.elementRef.nativeElement.getBoundingClientRect();
|
|
440
|
+
}
|
|
441
|
+
addComponentChild(componentFactory, injector) {
|
|
442
|
+
return this.viewContainerRef.createComponent(componentFactory, undefined, Injector.create({
|
|
443
|
+
parent: injector,
|
|
444
|
+
providers: [
|
|
445
|
+
{
|
|
446
|
+
provide: AbstractTuiPortalHostComponent_1,
|
|
447
|
+
useValue: this,
|
|
448
|
+
},
|
|
449
|
+
],
|
|
450
|
+
}));
|
|
451
|
+
}
|
|
452
|
+
addTemplateChild(templateRef, context) {
|
|
453
|
+
return this.viewContainerRef.createEmbeddedView(templateRef, context);
|
|
454
|
+
}
|
|
455
|
+
};
|
|
456
|
+
AbstractTuiPortalHostComponent.ctorParameters = () => [
|
|
457
|
+
{ type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
|
|
458
|
+
{ type: AbstractTuiPortalService, decorators: [{ type: Inject, args: [AbstractTuiPortalService,] }] }
|
|
459
|
+
];
|
|
460
|
+
__decorate([
|
|
461
|
+
ViewChild('viewContainer', { read: ViewContainerRef })
|
|
462
|
+
], AbstractTuiPortalHostComponent.prototype, "viewContainerRef", void 0);
|
|
463
|
+
AbstractTuiPortalHostComponent = AbstractTuiPortalHostComponent_1 = __decorate([
|
|
464
|
+
Directive(),
|
|
465
|
+
__param(0, Inject(ElementRef)),
|
|
466
|
+
__param(1, Inject(AbstractTuiPortalService))
|
|
467
|
+
], AbstractTuiPortalHostComponent);
|
|
468
|
+
|
|
396
469
|
var AbstractTuiThemeSwitcher_1;
|
|
397
470
|
/**
|
|
398
471
|
* Use this abstract class to create your own toggleable themes.
|
|
@@ -442,5 +515,5 @@ AbstractTuiThemeSwitcher = AbstractTuiThemeSwitcher_1 = __decorate([
|
|
|
442
515
|
* Generated bundle index. Do not edit.
|
|
443
516
|
*/
|
|
444
517
|
|
|
445
|
-
export { AbstractTuiControl, AbstractTuiDialogDirective, AbstractTuiDialogService, AbstractTuiInteractive, AbstractTuiMultipleControl, AbstractTuiNullableControl, AbstractTuiThemeSwitcher, TuiController };
|
|
518
|
+
export { AbstractTuiControl, AbstractTuiDialogDirective, AbstractTuiDialogService, AbstractTuiInteractive, AbstractTuiMultipleControl, AbstractTuiNullableControl, AbstractTuiPortalHostComponent, AbstractTuiPortalService, AbstractTuiThemeSwitcher, TuiController };
|
|
446
519
|
//# sourceMappingURL=taiga-ui-cdk-abstract.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-abstract.js","sources":["ng://@taiga-ui/cdk/abstract/interactive.ts","ng://@taiga-ui/cdk/abstract/control.ts","ng://@taiga-ui/cdk/abstract/controller.ts","ng://@taiga-ui/cdk/abstract/dialog.service.ts","ng://@taiga-ui/cdk/abstract/dialog.directive.ts","ng://@taiga-ui/cdk/abstract/multiple-control.ts","ng://@taiga-ui/cdk/abstract/nullable-control.ts","ng://@taiga-ui/cdk/abstract/theme-switcher.ts","ng://@taiga-ui/cdk/abstract/taiga-ui-cdk-abstract.ts"],"sourcesContent":["import {Directive, EventEmitter, HostBinding, Input, Output} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\n\nconst TUI = 'tui_interactive_';\n\n/**\n * The most basic class for interactive components\n */\n@Directive()\nexport abstract class AbstractTuiInteractive {\n private static autoId = 0;\n\n abstract disabled: boolean;\n\n abstract focused: boolean;\n\n private readonly autoIdString: string;\n\n @Input()\n @tuiDefaultProp()\n pseudoHovered: boolean | null = null;\n\n @Input()\n @tuiDefaultProp()\n pseudoPressed: boolean | null = null;\n\n @Input()\n @tuiDefaultProp()\n pseudoFocused: boolean | null = null;\n\n /**\n * Determines if component is focusable with keyboard.\n */\n @Input()\n @tuiDefaultProp()\n focusable = true;\n\n @Input()\n @tuiDefaultProp()\n nativeId = '';\n\n /**\n * Emits 'true' on focus and 'false' on blur.\n */\n @Output()\n readonly focusedChange = new EventEmitter<boolean>();\n\n @Output()\n readonly pressedChange = new EventEmitter<boolean>();\n\n @Output()\n readonly hoveredChange = new EventEmitter<boolean>();\n\n @Output()\n readonly focusVisibleChange = new EventEmitter<boolean>();\n\n hovered = false;\n\n pressed = false;\n\n focusVisible = false;\n\n protected constructor() {\n this.autoIdString = `${TUI}${AbstractTuiInteractive.autoId++}${Date.now()}`;\n }\n\n @HostBinding('class._disabled')\n get computedDisabled(): boolean {\n return this.disabled;\n }\n\n @HostBinding('class._hovered')\n get computedHovered(): boolean {\n return !this.computedDisabled && (this.pseudoHovered ?? this.hovered);\n }\n\n @HostBinding('class._pressed')\n get computedPressed(): boolean {\n return !this.computedDisabled && (this.pseudoPressed ?? this.pressed);\n }\n\n get computedFocusable(): boolean {\n return !this.computedDisabled && (this.focusable || this.focused);\n }\n\n @HostBinding('class._focused')\n get computedFocused(): boolean {\n return !this.computedDisabled && (this.pseudoFocused ?? this.focused);\n }\n\n @HostBinding('class._focus-visible')\n get computedFocusVisible(): boolean {\n return !this.computedDisabled && (this.pseudoFocused ?? this.focusVisible);\n }\n\n get id(): string {\n return this.nativeId ? this.nativeId : this.autoIdString;\n }\n\n protected updateHovered(hovered: boolean) {\n if (this.hovered === hovered) {\n return;\n }\n\n this.hovered = hovered;\n this.hoveredChange.emit(hovered);\n }\n\n protected updatePressed(pressed: boolean) {\n if (this.pressed === pressed) {\n return;\n }\n\n this.pressed = pressed;\n this.pressedChange.emit(pressed);\n }\n\n protected updateFocused(focused: boolean) {\n this.focusedChange.emit(focused);\n }\n\n protected updateFocusVisible(focusVisible: boolean) {\n if (this.focusVisible === focusVisible) {\n return;\n }\n\n this.focusVisible = focusVisible;\n this.focusVisibleChange.emit(focusVisible);\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport {AbstractControl, ControlValueAccessor, NgControl, NgModel} from '@angular/forms';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {EMPTY_FUNCTION} from '@taiga-ui/cdk/constants';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\nimport {TuiControlValueTransformer} from '@taiga-ui/cdk/interfaces';\nimport {merge, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {AbstractTuiInteractive} from './interactive';\n\n/**\n * Basic ControlValueAccessor class to build form components upon\n */\n@Directive()\nexport abstract class AbstractTuiControl<T>\n extends AbstractTuiInteractive\n implements OnDestroy, OnInit, ControlValueAccessor\n{\n private previousInternalValue?: T | null;\n\n private onTouched = EMPTY_FUNCTION;\n\n private onChange = EMPTY_FUNCTION;\n\n protected readonly fallbackValue = this.getFallbackValue();\n\n protected readonly destroy$ = new Subject<void>();\n\n @Input()\n @HostBinding('class._readonly')\n @tuiDefaultProp()\n readOnly = false;\n\n @Input()\n @tuiDefaultProp()\n pseudoInvalid: boolean | null = null;\n\n protected constructor(\n private readonly ngControl: NgControl | null,\n protected readonly changeDetectorRef: ChangeDetectorRef,\n protected readonly valueTransformer?: TuiControlValueTransformer<T> | null,\n ) {\n super();\n\n if (this.ngControl === null) {\n tuiAssert.assert(\n false,\n `NgControl not injected in ${this.constructor.name}!\\n`,\n 'Use [(ngModel)] or [formControl] or formControlName for correct work.',\n );\n } else {\n this.ngControl.valueAccessor = this;\n }\n }\n\n protected abstract getFallbackValue(): T;\n\n @HostBinding('class._invalid')\n get computedInvalid(): boolean {\n return (\n this.interactive &&\n (this.pseudoInvalid !== null\n ? this.pseudoInvalid\n : this.touched && this.invalid)\n );\n }\n\n get value(): T {\n return this.previousInternalValue ?? this.fallbackValue;\n }\n\n get safeCurrentValue(): T {\n return this.rawValue ?? this.fallbackValue;\n }\n\n get invalid(): boolean {\n return this.safeNgControlData<boolean>(({invalid}) => invalid, false);\n }\n\n get valid(): boolean {\n return this.safeNgControlData<boolean>(({valid}) => valid, false);\n }\n\n get touched(): boolean {\n return this.safeNgControlData<boolean>(({touched}) => touched, false);\n }\n\n get disabled(): boolean {\n return this.safeNgControlData<boolean>(({disabled}) => disabled, false);\n }\n\n get interactive(): boolean {\n return !this.readOnly && !this.computedDisabled;\n }\n\n get control(): AbstractControl | null {\n return this.safeNgControlData<AbstractControl | null>(\n ({control}) => control,\n null,\n );\n }\n\n get computedName(): string | number | null {\n return this.controlName;\n }\n\n protected get controlName(): string | number | null {\n return this.ngControl && this.ngControl.name;\n }\n\n private get rawValue(): T | undefined {\n const {ngControl} = this;\n\n if (ngControl === null) {\n return undefined;\n }\n\n const controlValue =\n ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? ngControl.viewModel\n : ngControl.value;\n\n return this.fromControlValue(controlValue);\n }\n\n ngOnInit() {\n if (!this.ngControl?.valueChanges || !this.ngControl?.statusChanges) {\n return;\n }\n\n merge(this.ngControl.valueChanges, this.ngControl.statusChanges)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.refreshLocalValue(this.safeCurrentValue));\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n checkControlUpdate() {\n this.changeDetectorRef.markForCheck();\n }\n\n registerOnChange(onChange: (value: T | unknown) => void) {\n this.onChange = (componentValue: T) => {\n onChange(this.toControlValue(componentValue));\n };\n }\n\n registerOnTouched(onTouched: () => void) {\n this.onTouched = onTouched;\n }\n\n setDisabledState() {\n this.checkControlUpdate();\n }\n\n writeValue(value: T | null) {\n const controlValue =\n this.ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? this.ngControl.model\n : value;\n\n this.refreshLocalValue(this.fromControlValue(controlValue));\n }\n\n protected updateFocused(focused: boolean) {\n if (!focused) {\n this.controlMarkAsTouched();\n }\n\n super.updateFocused(focused);\n }\n\n protected updateValue(value: T) {\n if (this.disabled || this.valueIdenticalComparator(this.value, value)) {\n return;\n }\n\n this.previousInternalValue = value;\n this.controlSetValue(value);\n }\n\n protected valueIdenticalComparator(oldValue: T, newValue: T): boolean {\n return oldValue === newValue;\n }\n\n private safeNgControlData<T>(\n extractor: (ngControl: NgControl) => T | null | undefined,\n defaultFieldValue: T,\n ): T {\n return (this.ngControl && extractor(this.ngControl)) ?? defaultFieldValue;\n }\n\n private controlMarkAsTouched() {\n this.onTouched();\n this.checkControlUpdate();\n }\n\n private controlSetValue(value: T) {\n this.onChange(value);\n this.checkControlUpdate();\n }\n\n private refreshLocalValue(value: T | null) {\n this.previousInternalValue = value;\n this.checkControlUpdate();\n }\n\n private fromControlValue(controlValue: unknown): T {\n return this.valueTransformer\n ? this.valueTransformer.fromControlValue(controlValue)\n : (controlValue as T);\n }\n\n private toControlValue(componentValue: T): unknown {\n return this.valueTransformer\n ? this.valueTransformer.toControlValue(componentValue)\n : componentValue;\n }\n}\n","import {OnChanges} from '@angular/core';\nimport {Subject} from 'rxjs';\n\nexport abstract class TuiController implements OnChanges {\n readonly change$ = new Subject<void>();\n\n ngOnChanges() {\n this.change$.next();\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {TuiBaseDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {TuiIdService} from '@taiga-ui/cdk/services';\nimport {TuiDialog} from '@taiga-ui/cdk/types';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {BehaviorSubject, Observable} from 'rxjs';\n\n@Injectable()\nexport abstract class AbstractTuiDialogService<T extends {}> extends Observable<\n readonly TuiDialog<T, any>[]\n> {\n protected abstract readonly component: PolymorpheusContent<TuiDialog<T, any>>;\n\n protected abstract readonly defaultOptions: T;\n\n protected readonly dialogs$ = new BehaviorSubject<readonly TuiDialog<T, any>[]>([]);\n\n protected constructor(\n @Inject(TuiIdService) private readonly idService: TuiIdService,\n ) {\n super(observer => this.dialogs$.subscribe(observer));\n }\n\n open<G>(\n content: PolymorpheusContent<TuiBaseDialogContext<G> & T>,\n options: Partial<T> = {},\n ): Observable<G> {\n return new Observable(observer => {\n const completeWith = (result: G) => {\n observer.next(result);\n observer.complete();\n };\n const dialog = {\n ...this.defaultOptions,\n ...options,\n content,\n completeWith,\n $implicit: observer,\n component: this.component,\n createdAt: Date.now(),\n id: this.idService.generate(),\n };\n\n this.dialogs$.next([...this.dialogs$.value, dialog]);\n\n return () => {\n this.dialogs$.next(this.dialogs$.value.filter(item => item !== dialog));\n };\n });\n }\n}\n","import {ChangeDetectorRef, Directive, Inject, TemplateRef} from '@angular/core';\nimport {TuiDialog} from '@taiga-ui/cdk/types';\nimport {PolymorpheusTemplate} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, Subject} from 'rxjs';\nimport {endWith, ignoreElements, switchMap} from 'rxjs/operators';\n\nimport {AbstractTuiDialogService} from './dialog.service';\n\n@Directive()\nexport abstract class AbstractTuiDialogDirective<T> extends PolymorpheusTemplate<\n TuiDialog<T, void>\n> {\n private readonly open$ = new Subject<boolean>();\n\n options: Partial<T> = {};\n\n set open(open: boolean) {\n this.open$.next(open);\n }\n\n openChange = this.open$.pipe(\n switchMap(open =>\n open\n ? this.service\n .open(this, this.options)\n .pipe(ignoreElements(), endWith(false))\n : EMPTY,\n ),\n );\n\n constructor(\n @Inject(TemplateRef)\n templateRef: TemplateRef<TuiDialog<T, void>>,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(AbstractTuiDialogService)\n private readonly service: AbstractTuiDialogService<T>,\n ) {\n super(templateRef, changeDetectorRef);\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {AbstractTuiControl} from './control';\n\n@Directive()\nexport abstract class AbstractTuiMultipleControl<T> extends AbstractTuiControl<\n ReadonlyArray<T>\n> {\n clear() {\n this.updateValue([]);\n }\n\n protected getFallbackValue(): ReadonlyArray<T> {\n return [];\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {AbstractTuiControl} from './control';\n\n@Directive()\nexport abstract class AbstractTuiNullableControl<T> extends AbstractTuiControl<T | null> {\n protected getFallbackValue(): T | null {\n return null;\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Directive, Inject, OnDestroy} from '@angular/core';\n\n/**\n * Use this abstract class to create your own toggleable themes.\n * A component extending this class must have CSS variables definitions\n * and have ViewEncapsulation set to NONE. A boolean input allows to\n * switch theme on or off.\n * @dynamic\n */\n@Directive()\nexport abstract class AbstractTuiThemeSwitcher implements OnDestroy {\n static style: HTMLStyleElement | null = null;\n\n constructor(@Inject(DOCUMENT) private readonly documentRef: Document) {\n if (this.style !== null) {\n this.addTheme();\n\n return;\n }\n\n const styles = this.documentRef.head.querySelectorAll('style');\n\n (<typeof AbstractTuiThemeSwitcher>this.constructor).style =\n styles[styles.length - 1];\n }\n\n get style(): HTMLStyleElement | null {\n return (<typeof AbstractTuiThemeSwitcher>this.constructor).style;\n }\n\n ngOnDestroy() {\n this.removeTheme();\n }\n\n private addTheme() {\n if (this.style) {\n this.documentRef.head.appendChild(this.style);\n }\n }\n\n private removeTheme() {\n if (this.style && this.documentRef.head.contains(this.style)) {\n this.documentRef.head.removeChild(this.style);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-abstract.js","sources":["ng://@taiga-ui/cdk/abstract/interactive.ts","ng://@taiga-ui/cdk/abstract/control.ts","ng://@taiga-ui/cdk/abstract/controller.ts","ng://@taiga-ui/cdk/abstract/dialog.service.ts","ng://@taiga-ui/cdk/abstract/dialog.directive.ts","ng://@taiga-ui/cdk/abstract/multiple-control.ts","ng://@taiga-ui/cdk/abstract/nullable-control.ts","ng://@taiga-ui/cdk/abstract/portal-service.ts","ng://@taiga-ui/cdk/abstract/portal-host.ts","ng://@taiga-ui/cdk/abstract/theme-switcher.ts","ng://@taiga-ui/cdk/abstract/taiga-ui-cdk-abstract.ts"],"sourcesContent":["import {Directive, EventEmitter, HostBinding, Input, Output} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\n\nconst TUI = 'tui_interactive_';\n\n/**\n * The most basic class for interactive components\n */\n@Directive()\nexport abstract class AbstractTuiInteractive {\n private static autoId = 0;\n\n abstract disabled: boolean;\n\n abstract focused: boolean;\n\n private readonly autoIdString: string;\n\n @Input()\n @tuiDefaultProp()\n pseudoHovered: boolean | null = null;\n\n @Input()\n @tuiDefaultProp()\n pseudoPressed: boolean | null = null;\n\n @Input()\n @tuiDefaultProp()\n pseudoFocused: boolean | null = null;\n\n /**\n * Determines if component is focusable with keyboard.\n */\n @Input()\n @tuiDefaultProp()\n focusable = true;\n\n @Input()\n @tuiDefaultProp()\n nativeId = '';\n\n /**\n * Emits 'true' on focus and 'false' on blur.\n */\n @Output()\n readonly focusedChange = new EventEmitter<boolean>();\n\n @Output()\n readonly pressedChange = new EventEmitter<boolean>();\n\n @Output()\n readonly hoveredChange = new EventEmitter<boolean>();\n\n @Output()\n readonly focusVisibleChange = new EventEmitter<boolean>();\n\n hovered = false;\n\n pressed = false;\n\n focusVisible = false;\n\n protected constructor() {\n this.autoIdString = `${TUI}${AbstractTuiInteractive.autoId++}${Date.now()}`;\n }\n\n @HostBinding('class._disabled')\n get computedDisabled(): boolean {\n return this.disabled;\n }\n\n @HostBinding('class._hovered')\n get computedHovered(): boolean {\n return !this.computedDisabled && (this.pseudoHovered ?? this.hovered);\n }\n\n @HostBinding('class._pressed')\n get computedPressed(): boolean {\n return !this.computedDisabled && (this.pseudoPressed ?? this.pressed);\n }\n\n get computedFocusable(): boolean {\n return !this.computedDisabled && (this.focusable || this.focused);\n }\n\n @HostBinding('class._focused')\n get computedFocused(): boolean {\n return !this.computedDisabled && (this.pseudoFocused ?? this.focused);\n }\n\n @HostBinding('class._focus-visible')\n get computedFocusVisible(): boolean {\n return !this.computedDisabled && (this.pseudoFocused ?? this.focusVisible);\n }\n\n get id(): string {\n return this.nativeId ? this.nativeId : this.autoIdString;\n }\n\n protected updateHovered(hovered: boolean) {\n if (this.hovered === hovered) {\n return;\n }\n\n this.hovered = hovered;\n this.hoveredChange.emit(hovered);\n }\n\n protected updatePressed(pressed: boolean) {\n if (this.pressed === pressed) {\n return;\n }\n\n this.pressed = pressed;\n this.pressedChange.emit(pressed);\n }\n\n protected updateFocused(focused: boolean) {\n this.focusedChange.emit(focused);\n }\n\n protected updateFocusVisible(focusVisible: boolean) {\n if (this.focusVisible === focusVisible) {\n return;\n }\n\n this.focusVisible = focusVisible;\n this.focusVisibleChange.emit(focusVisible);\n }\n}\n","import {\n ChangeDetectorRef,\n Directive,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport {AbstractControl, ControlValueAccessor, NgControl, NgModel} from '@angular/forms';\nimport {tuiAssert} from '@taiga-ui/cdk/classes';\nimport {EMPTY_FUNCTION} from '@taiga-ui/cdk/constants';\nimport {tuiDefaultProp} from '@taiga-ui/cdk/decorators';\nimport {TuiControlValueTransformer} from '@taiga-ui/cdk/interfaces';\nimport {merge, Subject} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {AbstractTuiInteractive} from './interactive';\n\n/**\n * Basic ControlValueAccessor class to build form components upon\n */\n@Directive()\nexport abstract class AbstractTuiControl<T>\n extends AbstractTuiInteractive\n implements OnDestroy, OnInit, ControlValueAccessor\n{\n private previousInternalValue?: T | null;\n\n private onTouched = EMPTY_FUNCTION;\n\n private onChange = EMPTY_FUNCTION;\n\n protected readonly fallbackValue = this.getFallbackValue();\n\n protected readonly destroy$ = new Subject<void>();\n\n @Input()\n @HostBinding('class._readonly')\n @tuiDefaultProp()\n readOnly = false;\n\n @Input()\n @tuiDefaultProp()\n pseudoInvalid: boolean | null = null;\n\n protected constructor(\n private readonly ngControl: NgControl | null,\n protected readonly changeDetectorRef: ChangeDetectorRef,\n protected readonly valueTransformer?: TuiControlValueTransformer<T> | null,\n ) {\n super();\n\n if (this.ngControl === null) {\n tuiAssert.assert(\n false,\n `NgControl not injected in ${this.constructor.name}!\\n`,\n 'Use [(ngModel)] or [formControl] or formControlName for correct work.',\n );\n } else {\n this.ngControl.valueAccessor = this;\n }\n }\n\n protected abstract getFallbackValue(): T;\n\n @HostBinding('class._invalid')\n get computedInvalid(): boolean {\n return (\n this.interactive &&\n (this.pseudoInvalid !== null\n ? this.pseudoInvalid\n : this.touched && this.invalid)\n );\n }\n\n get value(): T {\n return this.previousInternalValue ?? this.fallbackValue;\n }\n\n get safeCurrentValue(): T {\n return this.rawValue ?? this.fallbackValue;\n }\n\n get invalid(): boolean {\n return this.safeNgControlData<boolean>(({invalid}) => invalid, false);\n }\n\n get valid(): boolean {\n return this.safeNgControlData<boolean>(({valid}) => valid, false);\n }\n\n get touched(): boolean {\n return this.safeNgControlData<boolean>(({touched}) => touched, false);\n }\n\n get disabled(): boolean {\n return this.safeNgControlData<boolean>(({disabled}) => disabled, false);\n }\n\n get interactive(): boolean {\n return !this.readOnly && !this.computedDisabled;\n }\n\n get control(): AbstractControl | null {\n return this.safeNgControlData<AbstractControl | null>(\n ({control}) => control,\n null,\n );\n }\n\n get computedName(): string | null {\n return this.controlName?.toString() ?? null;\n }\n\n protected get controlName(): string | null {\n return this.ngControl?.name?.toString() ?? null;\n }\n\n private get rawValue(): T | undefined {\n const {ngControl} = this;\n\n if (ngControl === null) {\n return undefined;\n }\n\n const controlValue =\n ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? ngControl.viewModel\n : ngControl.value;\n\n return this.fromControlValue(controlValue);\n }\n\n ngOnInit() {\n if (!this.ngControl?.valueChanges || !this.ngControl?.statusChanges) {\n return;\n }\n\n merge(this.ngControl.valueChanges, this.ngControl.statusChanges)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.refreshLocalValue(this.safeCurrentValue));\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n checkControlUpdate() {\n this.changeDetectorRef.markForCheck();\n }\n\n registerOnChange(onChange: (value: T | unknown) => void) {\n this.onChange = (componentValue: T) => {\n onChange(this.toControlValue(componentValue));\n };\n }\n\n registerOnTouched(onTouched: () => void) {\n this.onTouched = onTouched;\n }\n\n setDisabledState() {\n this.checkControlUpdate();\n }\n\n writeValue(value: T | null) {\n const controlValue =\n this.ngControl instanceof NgModel && this.previousInternalValue === undefined\n ? this.ngControl.model\n : value;\n\n this.refreshLocalValue(this.fromControlValue(controlValue));\n }\n\n protected updateFocused(focused: boolean) {\n if (!focused) {\n this.controlMarkAsTouched();\n }\n\n super.updateFocused(focused);\n }\n\n protected updateValue(value: T) {\n if (this.disabled || this.valueIdenticalComparator(this.value, value)) {\n return;\n }\n\n this.previousInternalValue = value;\n this.controlSetValue(value);\n }\n\n protected valueIdenticalComparator(oldValue: T, newValue: T): boolean {\n return oldValue === newValue;\n }\n\n private safeNgControlData<T>(\n extractor: (ngControl: NgControl) => T | null | undefined,\n defaultFieldValue: T,\n ): T {\n return (this.ngControl && extractor(this.ngControl)) ?? defaultFieldValue;\n }\n\n private controlMarkAsTouched() {\n this.onTouched();\n this.checkControlUpdate();\n }\n\n private controlSetValue(value: T) {\n this.onChange(value);\n this.checkControlUpdate();\n }\n\n private refreshLocalValue(value: T | null) {\n this.previousInternalValue = value;\n this.checkControlUpdate();\n }\n\n private fromControlValue(controlValue: unknown): T {\n return this.valueTransformer\n ? this.valueTransformer.fromControlValue(controlValue)\n : (controlValue as T);\n }\n\n private toControlValue(componentValue: T): unknown {\n return this.valueTransformer\n ? this.valueTransformer.toControlValue(componentValue)\n : componentValue;\n }\n}\n","import {OnChanges} from '@angular/core';\nimport {Subject} from 'rxjs';\n\nexport abstract class TuiController implements OnChanges {\n readonly change$ = new Subject<void>();\n\n ngOnChanges() {\n this.change$.next();\n }\n}\n","import {Inject, Injectable} from '@angular/core';\nimport {TuiBaseDialogContext} from '@taiga-ui/cdk/interfaces';\nimport {TuiIdService} from '@taiga-ui/cdk/services';\nimport {TuiDialog} from '@taiga-ui/cdk/types';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {BehaviorSubject, Observable} from 'rxjs';\n\n@Injectable()\nexport abstract class AbstractTuiDialogService<T extends {}> extends Observable<\n readonly TuiDialog<T, any>[]\n> {\n protected abstract readonly component: PolymorpheusContent<TuiDialog<T, any>>;\n\n protected abstract readonly defaultOptions: T;\n\n protected readonly dialogs$ = new BehaviorSubject<readonly TuiDialog<T, any>[]>([]);\n\n protected constructor(\n @Inject(TuiIdService) private readonly idService: TuiIdService,\n ) {\n super(observer => this.dialogs$.subscribe(observer));\n }\n\n open<G>(\n content: PolymorpheusContent<TuiBaseDialogContext<G> & T>,\n options: Partial<T> = {},\n ): Observable<G> {\n return new Observable(observer => {\n const completeWith = (result: G) => {\n observer.next(result);\n observer.complete();\n };\n const dialog = {\n ...this.defaultOptions,\n ...options,\n content,\n completeWith,\n $implicit: observer,\n component: this.component,\n createdAt: Date.now(),\n id: this.idService.generate(),\n };\n\n this.dialogs$.next([...this.dialogs$.value, dialog]);\n\n return () => {\n this.dialogs$.next(this.dialogs$.value.filter(item => item !== dialog));\n };\n });\n }\n}\n","import {ChangeDetectorRef, Directive, Inject, TemplateRef} from '@angular/core';\nimport {TuiDialog} from '@taiga-ui/cdk/types';\nimport {PolymorpheusTemplate} from '@tinkoff/ng-polymorpheus';\nimport {EMPTY, Subject} from 'rxjs';\nimport {endWith, ignoreElements, switchMap} from 'rxjs/operators';\n\nimport {AbstractTuiDialogService} from './dialog.service';\n\n@Directive()\nexport abstract class AbstractTuiDialogDirective<T> extends PolymorpheusTemplate<\n TuiDialog<T, void>\n> {\n private readonly open$ = new Subject<boolean>();\n\n options: Partial<T> = {};\n\n set open(open: boolean) {\n this.open$.next(open);\n }\n\n openChange = this.open$.pipe(\n switchMap(open =>\n open\n ? this.service\n .open(this, this.options)\n .pipe(ignoreElements(), endWith(false))\n : EMPTY,\n ),\n );\n\n constructor(\n @Inject(TemplateRef)\n templateRef: TemplateRef<TuiDialog<T, void>>,\n @Inject(ChangeDetectorRef) changeDetectorRef: ChangeDetectorRef,\n @Inject(AbstractTuiDialogService)\n private readonly service: AbstractTuiDialogService<T>,\n ) {\n super(templateRef, changeDetectorRef);\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {AbstractTuiControl} from './control';\n\n@Directive()\nexport abstract class AbstractTuiMultipleControl<T> extends AbstractTuiControl<\n ReadonlyArray<T>\n> {\n clear() {\n this.updateValue([]);\n }\n\n protected getFallbackValue(): ReadonlyArray<T> {\n return [];\n }\n}\n","import {Directive} from '@angular/core';\n\nimport {AbstractTuiControl} from './control';\n\n@Directive()\nexport abstract class AbstractTuiNullableControl<T> extends AbstractTuiControl<T | null> {\n protected getFallbackValue(): T | null {\n return null;\n }\n}\n","import {\n ComponentFactory,\n ComponentRef,\n EmbeddedViewRef,\n Injectable,\n Injector,\n TemplateRef,\n} from '@angular/core';\nimport {TuiNoHostException} from '@taiga-ui/cdk/exceptions';\n\nimport {AbstractTuiPortalHostComponent} from './portal-host';\n\n/**\n * Abstract service for displaying portals\n */\n@Injectable()\nexport abstract class AbstractTuiPortalService {\n protected host?: AbstractTuiPortalHostComponent;\n\n protected get safeHost(): AbstractTuiPortalHostComponent {\n if (!this.host) {\n throw new TuiNoHostException();\n }\n\n return this.host;\n }\n\n attach(host: AbstractTuiPortalHostComponent) {\n this.host = host;\n }\n\n add<C>(componentFactory: ComponentFactory<C>, injector: Injector): ComponentRef<C> {\n return this.safeHost.addComponentChild(componentFactory, injector);\n }\n\n remove<C>({hostView}: ComponentRef<C>) {\n hostView.destroy();\n }\n\n addTemplate<C>(templateRef: TemplateRef<C>, context?: C): EmbeddedViewRef<C> {\n return this.safeHost.addTemplateChild(templateRef, context);\n }\n\n removeTemplate<C>(viewRef: EmbeddedViewRef<C>) {\n viewRef.destroy();\n }\n}\n","import {\n ComponentFactory,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n Inject,\n Injector,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport {AbstractTuiPortalService} from './portal-service';\n\n/**\n * Abstract class for host element for dynamically created portals.\n */\n@Directive()\nexport abstract class AbstractTuiPortalHostComponent {\n @ViewChild('viewContainer', {read: ViewContainerRef})\n viewContainerRef!: ViewContainerRef;\n\n constructor(\n @Inject(ElementRef)\n readonly elementRef: ElementRef<HTMLElement>,\n @Inject(AbstractTuiPortalService) portalService: AbstractTuiPortalService,\n ) {\n portalService.attach(this);\n }\n\n get clientRect(): ClientRect {\n return this.elementRef.nativeElement.getBoundingClientRect();\n }\n\n addComponentChild<C>(\n componentFactory: ComponentFactory<C>,\n injector: Injector,\n ): ComponentRef<C> {\n return this.viewContainerRef.createComponent<C>(\n componentFactory,\n undefined,\n Injector.create({\n parent: injector,\n providers: [\n {\n provide: AbstractTuiPortalHostComponent,\n useValue: this,\n },\n ],\n }),\n );\n }\n\n addTemplateChild<C>(templateRef: TemplateRef<C>, context?: C): EmbeddedViewRef<C> {\n return this.viewContainerRef.createEmbeddedView(templateRef, context);\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {Directive, Inject, OnDestroy} from '@angular/core';\n\n/**\n * Use this abstract class to create your own toggleable themes.\n * A component extending this class must have CSS variables definitions\n * and have ViewEncapsulation set to NONE. A boolean input allows to\n * switch theme on or off.\n * @dynamic\n */\n@Directive()\nexport abstract class AbstractTuiThemeSwitcher implements OnDestroy {\n static style: HTMLStyleElement | null = null;\n\n constructor(@Inject(DOCUMENT) private readonly documentRef: Document) {\n if (this.style !== null) {\n this.addTheme();\n\n return;\n }\n\n const styles = this.documentRef.head.querySelectorAll('style');\n\n (<typeof AbstractTuiThemeSwitcher>this.constructor).style =\n styles[styles.length - 1];\n }\n\n get style(): HTMLStyleElement | null {\n return (<typeof AbstractTuiThemeSwitcher>this.constructor).style;\n }\n\n ngOnDestroy() {\n this.removeTheme();\n }\n\n private addTheme() {\n if (this.style) {\n this.documentRef.head.appendChild(this.style);\n }\n }\n\n private removeTheme() {\n if (this.style && this.documentRef.head.contains(this.style)) {\n this.documentRef.head.removeChild(this.style);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAGA,MAAM,GAAG,GAAG,kBAAkB,CAAC;AAE/B;;;IAIsB,sBAAsB,8BAA5C,MAAsB,sBAAsB;IAqDxC;QA1CA,kBAAa,GAAmB,IAAI,CAAC;QAIrC,kBAAa,GAAmB,IAAI,CAAC;QAIrC,kBAAa,GAAmB,IAAI,CAAC;;;;QAOrC,cAAS,GAAG,IAAI,CAAC;QAIjB,aAAQ,GAAG,EAAE,CAAC;;;;QAML,kBAAa,GAAG,IAAI,YAAY,EAAW,CAAC;QAG5C,kBAAa,GAAG,IAAI,YAAY,EAAW,CAAC;QAG5C,kBAAa,GAAG,IAAI,YAAY,EAAW,CAAC;QAG5C,uBAAkB,GAAG,IAAI,YAAY,EAAW,CAAC;QAE1D,YAAO,GAAG,KAAK,CAAC;QAEhB,YAAO,GAAG,KAAK,CAAC;QAEhB,iBAAY,GAAG,KAAK,CAAC;QAGjB,IAAI,CAAC,YAAY,GAAG,GAAG,GAAG,GAAG,wBAAsB,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;KAC/E;IAGD,IAAI,gBAAgB;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IAGD,IAAI,eAAe;;QACf,OAAO,CAAC,IAAI,CAAC,gBAAgB,WAAK,IAAI,CAAC,aAAa,mCAAI,IAAI,CAAC,OAAO,CAAC,CAAC;KACzE;IAGD,IAAI,eAAe;;QACf,OAAO,CAAC,IAAI,CAAC,gBAAgB,WAAK,IAAI,CAAC,aAAa,mCAAI,IAAI,CAAC,OAAO,CAAC,CAAC;KACzE;IAED,IAAI,iBAAiB;QACjB,OAAO,CAAC,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;KACrE;IAGD,IAAI,eAAe;;QACf,OAAO,CAAC,IAAI,CAAC,gBAAgB,WAAK,IAAI,CAAC,aAAa,mCAAI,IAAI,CAAC,OAAO,CAAC,CAAC;KACzE;IAGD,IAAI,oBAAoB;;QACpB,OAAO,CAAC,IAAI,CAAC,gBAAgB,WAAK,IAAI,CAAC,aAAa,mCAAI,IAAI,CAAC,YAAY,CAAC,CAAC;KAC9E;IAED,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;KAC5D;IAES,aAAa,CAAC,OAAgB;QACpC,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE;YAC1B,OAAO;SACV;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACpC;IAES,aAAa,CAAC,OAAgB;QACpC,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO,EAAE;YAC1B,OAAO;SACV;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACpC;IAES,aAAa,CAAC,OAAgB;QACpC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACpC;IAES,kBAAkB,CAAC,YAAqB;QAC9C,IAAI,IAAI,CAAC,YAAY,KAAK,YAAY,EAAE;YACpC,OAAO;SACV;QAED,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KAC9C;EACJ;AAvHkB,6BAAM,GAAG,CAAC,CAAC;AAU1B;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;6DACoB;AAIrC;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;6DACoB;AAIrC;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;6DACoB;AAOrC;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;yDACA;AAIjB;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;wDACH;AAMd;IADC,MAAM,EAAE;6DAC4C;AAGrD;IADC,MAAM,EAAE;6DAC4C;AAGrD;IADC,MAAM,EAAE;6DAC4C;AAGrD;IADC,MAAM,EAAE;kEACiD;AAa1D;IADC,WAAW,CAAC,iBAAiB,CAAC;8DAG9B;AAGD;IADC,WAAW,CAAC,gBAAgB,CAAC;6DAG7B;AAGD;IADC,WAAW,CAAC,gBAAgB,CAAC;6DAG7B;AAOD;IADC,WAAW,CAAC,gBAAgB,CAAC;6DAG7B;AAGD;IADC,WAAW,CAAC,sBAAsB,CAAC;kEAGnC;AApFiB,sBAAsB;IAD3C,SAAS,EAAE;GACU,sBAAsB,CAwH3C;;AC/GD;;;IAIsB,kBAAkB,GAAxC,MAAsB,kBAClB,SAAQ,sBAAsB;IAsB9B,YACqB,SAA2B,EACzB,iBAAoC,EACpC,gBAAuD;QAE1E,KAAK,EAAE,CAAC;QAJS,cAAS,GAAT,SAAS,CAAkB;QACzB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,qBAAgB,GAAhB,gBAAgB,CAAuC;QApBtE,cAAS,GAAG,cAAc,CAAC;QAE3B,aAAQ,GAAG,cAAc,CAAC;QAEf,kBAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExC,aAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QAKlD,aAAQ,GAAG,KAAK,CAAC;QAIjB,kBAAa,GAAmB,IAAI,CAAC;QASjC,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;YACzB,SAAS,CAAC,MAAM,CACZ,KAAK,EACL,6BAA6B,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,EACvD,uEAAuE,CAC1E,CAAC;SACL;aAAM;YACH,IAAI,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;SACvC;KACJ;IAKD,IAAI,eAAe;QACf,QACI,IAAI,CAAC,WAAW;aACf,IAAI,CAAC,aAAa,KAAK,IAAI;kBACtB,IAAI,CAAC,aAAa;kBAClB,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,EACrC;KACL;IAED,IAAI,KAAK;;QACL,aAAO,IAAI,CAAC,qBAAqB,mCAAI,IAAI,CAAC,aAAa,CAAC;KAC3D;IAED,IAAI,gBAAgB;;QAChB,aAAO,IAAI,CAAC,QAAQ,mCAAI,IAAI,CAAC,aAAa,CAAC;KAC9C;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,iBAAiB,CAAU,CAAC,EAAC,OAAO,EAAC,KAAK,OAAO,EAAE,KAAK,CAAC,CAAC;KACzE;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,iBAAiB,CAAU,CAAC,EAAC,KAAK,EAAC,KAAK,KAAK,EAAE,KAAK,CAAC,CAAC;KACrE;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,iBAAiB,CAAU,CAAC,EAAC,OAAO,EAAC,KAAK,OAAO,EAAE,KAAK,CAAC,CAAC;KACzE;IAED,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,iBAAiB,CAAU,CAAC,EAAC,QAAQ,EAAC,KAAK,QAAQ,EAAE,KAAK,CAAC,CAAC;KAC3E;IAED,IAAI,WAAW;QACX,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;KACnD;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,iBAAiB,CACzB,CAAC,EAAC,OAAO,EAAC,KAAK,OAAO,EACtB,IAAI,CACP,CAAC;KACL;IAED,IAAI,YAAY;;QACZ,mBAAO,IAAI,CAAC,WAAW,0CAAE,QAAQ,qCAAM,IAAI,CAAC;KAC/C;IAED,IAAc,WAAW;;QACrB,yBAAO,IAAI,CAAC,SAAS,0CAAE,IAAI,0CAAE,QAAQ,qCAAM,IAAI,CAAC;KACnD;IAED,IAAY,QAAQ;QAChB,MAAM,EAAC,SAAS,EAAC,GAAG,IAAI,CAAC;QAEzB,IAAI,SAAS,KAAK,IAAI,EAAE;YACpB,OAAO,SAAS,CAAC;SACpB;QAED,MAAM,YAAY,GACd,SAAS,YAAY,OAAO,IAAI,IAAI,CAAC,qBAAqB,KAAK,SAAS;cAClE,SAAS,CAAC,SAAS;cACnB,SAAS,CAAC,KAAK,CAAC;QAE1B,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;KAC9C;IAED,QAAQ;;QACJ,IAAI,QAAC,IAAI,CAAC,SAAS,0CAAE,YAAY,CAAA,IAAI,QAAC,IAAI,CAAC,SAAS,0CAAE,aAAa,CAAA,EAAE;YACjE,OAAO;SACV;QAED,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC;aAC3D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9B,SAAS,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;KACvE;IAED,WAAW;QACP,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC5B;IAED,kBAAkB;QACd,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;KACzC;IAED,gBAAgB,CAAC,QAAsC;QACnD,IAAI,CAAC,QAAQ,GAAG,CAAC,cAAiB;YAC9B,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;SACjD,CAAC;KACL;IAED,iBAAiB,CAAC,SAAqB;QACnC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;KAC9B;IAED,gBAAgB;QACZ,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC7B;IAED,UAAU,CAAC,KAAe;QACtB,MAAM,YAAY,GACd,IAAI,CAAC,SAAS,YAAY,OAAO,IAAI,IAAI,CAAC,qBAAqB,KAAK,SAAS;cACvE,IAAI,CAAC,SAAS,CAAC,KAAK;cACpB,KAAK,CAAC;QAEhB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;KAC/D;IAES,aAAa,CAAC,OAAgB;QACpC,IAAI,CAAC,OAAO,EAAE;YACV,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC/B;QAED,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KAChC;IAES,WAAW,CAAC,KAAQ;QAC1B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;YACnE,OAAO;SACV;QAED,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;KAC/B;IAES,wBAAwB,CAAC,QAAW,EAAE,QAAW;QACvD,OAAO,QAAQ,KAAK,QAAQ,CAAC;KAChC;IAEO,iBAAiB,CACrB,SAAyD,EACzD,iBAAoB;;QAEpB,cAAQ,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,mCAAI,iBAAiB,CAAC;KAC7E;IAEO,oBAAoB;QACxB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC7B;IAEO,eAAe,CAAC,KAAQ;QAC5B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC7B;IAEO,iBAAiB,CAAC,KAAe;QACrC,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;QACnC,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC7B;IAEO,gBAAgB,CAAC,YAAqB;QAC1C,OAAO,IAAI,CAAC,gBAAgB;cACtB,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,YAAY,CAAC;cACnD,YAAkB,CAAC;KAC7B;IAEO,cAAc,CAAC,cAAiB;QACpC,OAAO,IAAI,CAAC,gBAAgB;cACtB,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,cAAc,CAAC;cACpD,cAAc,CAAC;KACxB;EACJ;;YAvLmC,SAAS;YACC,iBAAiB;;;AAR3D;IAHC,KAAK,EAAE;IACP,WAAW,CAAC,iBAAiB,CAAC;IAC9B,cAAc,EAAE;oDACA;AAIjB;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;yDACoB;AAuBrC;IADC,WAAW,CAAC,gBAAgB,CAAC;yDAQ7B;AAnDiB,kBAAkB;IADvC,SAAS,EAAE;GACU,kBAAkB,CA+MvC;;MClOqB,aAAa;IAAnC;QACa,YAAO,GAAG,IAAI,OAAO,EAAQ,CAAC;KAK1C;IAHG,WAAW;QACP,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACvB;;;ICAiB,wBAAwB,GAA9C,MAAsB,wBAAuC,SAAQ,UAEpE;IAOG,YAC2C,SAAuB;QAE9D,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAFd,cAAS,GAAT,SAAS,CAAc;QAH/C,aAAQ,GAAG,IAAI,eAAe,CAA+B,EAAE,CAAC,CAAC;KAMnF;IAED,IAAI,CACA,OAAyD,EACzD,UAAsB,EAAE;QAExB,OAAO,IAAI,UAAU,CAAC,QAAQ;YAC1B,MAAM,YAAY,GAAG,CAAC,MAAS;gBAC3B,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtB,QAAQ,CAAC,QAAQ,EAAE,CAAC;aACvB,CAAC;YACF,MAAM,MAAM,iDACL,IAAI,CAAC,cAAc,GACnB,OAAO,KACV,OAAO;gBACP,YAAY,EACZ,SAAS,EAAE,QAAQ,EACnB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EACrB,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAChC,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YAErD,OAAO;gBACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC;aAC3E,CAAC;SACL,CAAC,CAAC;KACN;EACJ;;YAhCyD,YAAY,uBAA7D,MAAM,SAAC,YAAY;;AAVN,wBAAwB;IAD7C,UAAU,EAAE;IAWJ,WAAA,MAAM,CAAC,YAAY,CAAC,CAAA;GAVP,wBAAwB,CA0C7C;;ICzCqB,0BAA0B,GAAhD,MAAsB,0BAA8B,SAAQ,oBAE3D;IAmBG,YAEI,WAA4C,EACjB,iBAAoC,EAE9C,OAAoC;QAErD,KAAK,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;QAFrB,YAAO,GAAP,OAAO,CAA6B;QAvBxC,UAAK,GAAG,IAAI,OAAO,EAAW,CAAC;QAEhD,YAAO,GAAe,EAAE,CAAC;QAMzB,eAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CACxB,SAAS,CAAC,IAAI,IACV,IAAI;cACE,IAAI,CAAC,OAAO;iBACP,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC;iBACxB,IAAI,CAAC,cAAc,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;cAC3C,KAAK,CACd,CACJ,CAAC;KAUD;IAtBD,IAAI,IAAI,CAAC,IAAa;QAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACzB;EAqBJ;;YAPoB,WAAW,uBADvB,MAAM,SAAC,WAAW;YAE2B,iBAAiB,uBAA9D,MAAM,SAAC,iBAAiB;YAEC,wBAAwB,uBADjD,MAAM,SAAC,wBAAwB;;AAzBlB,0BAA0B;IAD/C,SAAS,EAAE;IAuBH,WAAA,MAAM,CAAC,WAAW,CAAC,CAAA;IAEnB,WAAA,MAAM,CAAC,iBAAiB,CAAC,CAAA;IACzB,WAAA,MAAM,CAAC,wBAAwB,CAAC,CAAA;GAzBnB,0BAA0B,CA8B/C;;IClCqB,0BAA0B,GAAhD,MAAsB,0BAA8B,SAAQ,kBAE3D;IACG,KAAK;QACD,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;KACxB;IAES,gBAAgB;QACtB,OAAO,EAAE,CAAC;KACb;EACJ;AAVqB,0BAA0B;IAD/C,SAAS,EAAE;GACU,0BAA0B,CAU/C;;ICVqB,0BAA0B,GAAhD,MAAsB,0BAA8B,SAAQ,kBAA4B;IAC1E,gBAAgB;QACtB,OAAO,IAAI,CAAC;KACf;EACJ;AAJqB,0BAA0B;IAD/C,SAAS,EAAE;GACU,0BAA0B,CAI/C;;ACGD;;;IAIsB,wBAAwB,GAA9C,MAAsB,wBAAwB;IAG1C,IAAc,QAAQ;QAClB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACZ,MAAM,IAAI,kBAAkB,EAAE,CAAC;SAClC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC;KACpB;IAED,MAAM,CAAC,IAAoC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KACpB;IAED,GAAG,CAAI,gBAAqC,EAAE,QAAkB;QAC5D,OAAO,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;KACtE;IAED,MAAM,CAAI,EAAC,QAAQ,EAAkB;QACjC,QAAQ,CAAC,OAAO,EAAE,CAAC;KACtB;IAED,WAAW,CAAI,WAA2B,EAAE,OAAW;QACnD,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;KAC/D;IAED,cAAc,CAAI,OAA2B;QACzC,OAAO,CAAC,OAAO,EAAE,CAAC;KACrB;EACJ;AA9BqB,wBAAwB;IAD7C,UAAU,EAAE;GACS,wBAAwB,CA8B7C;;;AC/BD;;;IAIsB,8BAA8B,sCAApD,MAAsB,8BAA8B;IAIhD,YAEa,UAAmC,EACV,aAAuC;QADhE,eAAU,GAAV,UAAU,CAAyB;QAG5C,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAC9B;IAED,IAAI,UAAU;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;KAChE;IAED,iBAAiB,CACb,gBAAqC,EACrC,QAAkB;QAElB,OAAO,IAAI,CAAC,gBAAgB,CAAC,eAAe,CACxC,gBAAgB,EAChB,SAAS,EACT,QAAQ,CAAC,MAAM,CAAC;YACZ,MAAM,EAAE,QAAQ;YAChB,SAAS,EAAE;gBACP;oBACI,OAAO,EAAE,gCAA8B;oBACvC,QAAQ,EAAE,IAAI;iBACjB;aACJ;SACJ,CAAC,CACL,CAAC;KACL;IAED,gBAAgB,CAAI,WAA2B,EAAE,OAAW;QACxD,OAAO,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;KACzE;EACJ;;YAhC4B,UAAU,uBAD9B,MAAM,SAAC,UAAU;YAE+B,wBAAwB,uBAAxE,MAAM,SAAC,wBAAwB;;AALpC;IADC,SAAS,CAAC,eAAe,EAAE,EAAC,IAAI,EAAE,gBAAgB,EAAC,CAAC;wEACjB;AAFlB,8BAA8B;IADnD,SAAS,EAAE;IAMH,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;IAElB,WAAA,MAAM,CAAC,wBAAwB,CAAC,CAAA;GAPnB,8BAA8B,CAsCnD;;;ACtDD;;;;;;;IAQsB,wBAAwB,gCAA9C,MAAsB,wBAAwB;IAG1C,YAA+C,WAAqB;QAArB,gBAAW,GAAX,WAAW,CAAU;QAChE,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;YACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;YAEhB,OAAO;SACV;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAE7B,IAAI,CAAC,WAAY,CAAC,KAAK;YACrD,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACjC;IAED,IAAI,KAAK;QACL,OAAyC,IAAI,CAAC,WAAY,CAAC,KAAK,CAAC;KACpE;IAED,WAAW;QACP,IAAI,CAAC,WAAW,EAAE,CAAC;KACtB;IAEO,QAAQ;QACZ,IAAI,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACjD;KACJ;IAEO,WAAW;QACf,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC1D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACjD;KACJ;EACJ;AAlCU,8BAAK,GAA4B,IAAI,CAAC;;YAEe,QAAQ,uBAAvD,MAAM,SAAC,QAAQ;;AAHV,wBAAwB;IAD7C,SAAS,EAAE;IAIK,WAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;GAHX,wBAAwB,CAmC7C;;AC9CD;;;;;;"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { __decorate } from 'tslib';
|
|
2
|
+
import { ViewChild, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
|
|
3
|
+
import { AbstractTuiPortalHostComponent, AbstractTuiPortalService } from '@taiga-ui/cdk/abstract';
|
|
4
|
+
import { TuiPortalService } from '@taiga-ui/cdk/components/portal-host';
|
|
5
|
+
|
|
6
|
+
const BLANK_CLIENT_RECT = {
|
|
7
|
+
bottom: 0,
|
|
8
|
+
height: 0,
|
|
9
|
+
left: 0,
|
|
10
|
+
right: 0,
|
|
11
|
+
top: 0,
|
|
12
|
+
width: 0,
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Host element for dynamically created portals, for example using {@link TuiDropdownDirective}.
|
|
16
|
+
*/
|
|
17
|
+
let TuiDropdownHostComponent = class TuiDropdownHostComponent extends AbstractTuiPortalHostComponent {
|
|
18
|
+
fixedPositionOffset() {
|
|
19
|
+
var _a;
|
|
20
|
+
return (((_a = this.positionFixedOffsetRef) === null || _a === void 0 ? void 0 : _a.nativeElement.getBoundingClientRect()) ||
|
|
21
|
+
BLANK_CLIENT_RECT);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
__decorate([
|
|
25
|
+
ViewChild('positionFixedOffset')
|
|
26
|
+
], TuiDropdownHostComponent.prototype, "positionFixedOffsetRef", void 0);
|
|
27
|
+
TuiDropdownHostComponent = __decorate([
|
|
28
|
+
Component({
|
|
29
|
+
selector: 'tui-dropdown-host',
|
|
30
|
+
template: "<div #positionFixedOffset class=\"position-fixed-offset\"></div>\n<ng-content></ng-content>\n<ng-container #viewContainer></ng-container>\n",
|
|
31
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
32
|
+
providers: [{ provide: AbstractTuiPortalService, useExisting: TuiPortalService }],
|
|
33
|
+
styles: [":host{position:relative;z-index:0;display:block;height:100%}:host:before{content:'';display:block;overflow:hidden}.position-fixed-offset{position:fixed;left:0;top:0;pointer-events:none;visibility:hidden;width:100%;height:100%}"]
|
|
34
|
+
})
|
|
35
|
+
], TuiDropdownHostComponent);
|
|
36
|
+
|
|
37
|
+
let TuiDropdownHostModule = class TuiDropdownHostModule {
|
|
38
|
+
};
|
|
39
|
+
TuiDropdownHostModule = __decorate([
|
|
40
|
+
NgModule({
|
|
41
|
+
declarations: [TuiDropdownHostComponent],
|
|
42
|
+
exports: [TuiDropdownHostComponent],
|
|
43
|
+
})
|
|
44
|
+
], TuiDropdownHostModule);
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Generated bundle index. Do not edit.
|
|
48
|
+
*/
|
|
49
|
+
|
|
50
|
+
export { TuiDropdownHostComponent, TuiDropdownHostModule };
|
|
51
|
+
//# sourceMappingURL=taiga-ui-cdk-components-dropdown-host.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-components-dropdown-host.js","sources":["ng://@taiga-ui/cdk/components/dropdown-host/dropdown-host.component.ts","ng://@taiga-ui/cdk/components/dropdown-host/dropdown-host.module.ts","ng://@taiga-ui/cdk/components/dropdown-host/taiga-ui-cdk-components-dropdown-host.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, ElementRef, ViewChild} from '@angular/core';\nimport {\n AbstractTuiPortalHostComponent,\n AbstractTuiPortalService,\n} from '@taiga-ui/cdk/abstract';\nimport {TuiPortalService} from '@taiga-ui/cdk/components/portal-host';\n\nconst BLANK_CLIENT_RECT: ClientRect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0,\n};\n\n/**\n * Host element for dynamically created portals, for example using {@link TuiDropdownDirective}.\n */\n@Component({\n selector: 'tui-dropdown-host',\n templateUrl: './dropdown-host.template.html',\n styleUrls: ['./dropdown-host.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{provide: AbstractTuiPortalService, useExisting: TuiPortalService}],\n})\nexport class TuiDropdownHostComponent extends AbstractTuiPortalHostComponent {\n @ViewChild('positionFixedOffset')\n private readonly positionFixedOffsetRef?: ElementRef<HTMLDivElement>;\n\n fixedPositionOffset(): ClientRect {\n return (\n this.positionFixedOffsetRef?.nativeElement.getBoundingClientRect() ||\n BLANK_CLIENT_RECT\n );\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {TuiDropdownHostComponent} from './dropdown-host.component';\n\n@NgModule({\n declarations: [TuiDropdownHostComponent],\n exports: [TuiDropdownHostComponent],\n})\nexport class TuiDropdownHostModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAOA,MAAM,iBAAiB,GAAe;IAClC,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,GAAG,EAAE,CAAC;IACN,KAAK,EAAE,CAAC;CACX,CAAC;AAEF;;;IAUa,wBAAwB,GAArC,MAAa,wBAAyB,SAAQ,8BAA8B;IAIxE,mBAAmB;;QACf,QACI,OAAA,IAAI,CAAC,sBAAsB,0CAAE,aAAa,CAAC,qBAAqB;YAChE,iBAAiB,EACnB;KACL;EACJ;AARG;IADC,SAAS,CAAC,qBAAqB,CAAC;wEACoC;AAF5D,wBAAwB;IAPpC,SAAS,CAAC;QACP,QAAQ,EAAE,mBAAmB;QAC7B,uJAA4C;QAE5C,eAAe,EAAE,uBAAuB,CAAC,MAAM;QAC/C,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,gBAAgB,EAAC,CAAC;;KAClF,CAAC;GACW,wBAAwB,CAUpC;;IC5BY,qBAAqB,GAAlC,MAAa,qBAAqB;EAAG;AAAxB,qBAAqB;IAJjC,QAAQ,CAAC;QACN,YAAY,EAAE,CAAC,wBAAwB,CAAC;QACxC,OAAO,EAAE,CAAC,wBAAwB,CAAC;KACtC,CAAC;GACW,qBAAqB,CAAG;;ACRrC;;;;;;"}
|
|
@@ -1,32 +1,12 @@
|
|
|
1
|
-
import { __decorate
|
|
2
|
-
import { ɵɵdefineInjectable, Injectable
|
|
3
|
-
import {
|
|
1
|
+
import { __decorate } from 'tslib';
|
|
2
|
+
import { ɵɵdefineInjectable, Injectable } from '@angular/core';
|
|
3
|
+
import { AbstractTuiPortalService } from '@taiga-ui/cdk/abstract';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* @deprecated create your own portal (see {@link https://taiga-ui.dev/portals Portals})
|
|
7
|
+
* TODO: replace with {@link TuiDropdownPortalService} in 3.0
|
|
7
8
|
*/
|
|
8
|
-
let TuiPortalService = class TuiPortalService {
|
|
9
|
-
get safeHost() {
|
|
10
|
-
if (!this.host) {
|
|
11
|
-
throw new TuiNoHostException();
|
|
12
|
-
}
|
|
13
|
-
return this.host;
|
|
14
|
-
}
|
|
15
|
-
attach(host) {
|
|
16
|
-
this.host = host;
|
|
17
|
-
}
|
|
18
|
-
add(componentFactory, injector) {
|
|
19
|
-
return this.safeHost.addComponentChild(componentFactory, injector);
|
|
20
|
-
}
|
|
21
|
-
remove({ hostView }) {
|
|
22
|
-
hostView.destroy();
|
|
23
|
-
}
|
|
24
|
-
addTemplate(templateRef, context) {
|
|
25
|
-
return this.safeHost.addTemplateChild(templateRef, context);
|
|
26
|
-
}
|
|
27
|
-
removeTemplate(viewRef) {
|
|
28
|
-
viewRef.destroy();
|
|
29
|
-
}
|
|
9
|
+
let TuiPortalService = class TuiPortalService extends AbstractTuiPortalService {
|
|
30
10
|
};
|
|
31
11
|
TuiPortalService.ɵprov = ɵɵdefineInjectable({ factory: function TuiPortalService_Factory() { return new TuiPortalService(); }, token: TuiPortalService, providedIn: "root" });
|
|
32
12
|
TuiPortalService = __decorate([
|
|
@@ -35,79 +15,9 @@ TuiPortalService = __decorate([
|
|
|
35
15
|
})
|
|
36
16
|
], TuiPortalService);
|
|
37
17
|
|
|
38
|
-
var TuiPortalHostComponent_1;
|
|
39
|
-
const BLANK_CLIENT_RECT = {
|
|
40
|
-
bottom: 0,
|
|
41
|
-
height: 0,
|
|
42
|
-
left: 0,
|
|
43
|
-
right: 0,
|
|
44
|
-
top: 0,
|
|
45
|
-
width: 0,
|
|
46
|
-
};
|
|
47
|
-
/**
|
|
48
|
-
* Host element for dynamically created portals, for example using {@link TuiDropdownDirective}.
|
|
49
|
-
*/
|
|
50
|
-
let TuiPortalHostComponent = TuiPortalHostComponent_1 = class TuiPortalHostComponent {
|
|
51
|
-
constructor(viewContainerRef, elementRef, portalService) {
|
|
52
|
-
this.viewContainerRef = viewContainerRef;
|
|
53
|
-
this.elementRef = elementRef;
|
|
54
|
-
portalService.attach(this);
|
|
55
|
-
}
|
|
56
|
-
get clientRect() {
|
|
57
|
-
return this.elementRef.nativeElement.getBoundingClientRect();
|
|
58
|
-
}
|
|
59
|
-
addComponentChild(componentFactory, injector) {
|
|
60
|
-
return this.viewContainerRef.createComponent(componentFactory, undefined, Injector.create({
|
|
61
|
-
parent: injector,
|
|
62
|
-
providers: [
|
|
63
|
-
{
|
|
64
|
-
provide: TuiPortalHostComponent_1,
|
|
65
|
-
useValue: this,
|
|
66
|
-
},
|
|
67
|
-
],
|
|
68
|
-
}));
|
|
69
|
-
}
|
|
70
|
-
addTemplateChild(templateRef, context) {
|
|
71
|
-
return this.viewContainerRef.createEmbeddedView(templateRef, context);
|
|
72
|
-
}
|
|
73
|
-
fixedPositionOffset() {
|
|
74
|
-
return this.positionFixedOffsetRef
|
|
75
|
-
? this.positionFixedOffsetRef.nativeElement.getBoundingClientRect()
|
|
76
|
-
: BLANK_CLIENT_RECT;
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
TuiPortalHostComponent.ctorParameters = () => [
|
|
80
|
-
{ type: ViewContainerRef, decorators: [{ type: Inject, args: [ViewContainerRef,] }] },
|
|
81
|
-
{ type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
|
|
82
|
-
{ type: TuiPortalService, decorators: [{ type: Inject, args: [TuiPortalService,] }] }
|
|
83
|
-
];
|
|
84
|
-
__decorate([
|
|
85
|
-
ViewChild('positionFixedOffset')
|
|
86
|
-
], TuiPortalHostComponent.prototype, "positionFixedOffsetRef", void 0);
|
|
87
|
-
TuiPortalHostComponent = TuiPortalHostComponent_1 = __decorate([
|
|
88
|
-
Component({
|
|
89
|
-
selector: 'tui-portal-host',
|
|
90
|
-
template: "<div #positionFixedOffset class=\"position-fixed-offset\"></div>\n<ng-content></ng-content>\n",
|
|
91
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
92
|
-
styles: [":host{position:relative;z-index:0;display:block;height:100%}:host:before{content:'';display:block;overflow:hidden}.position-fixed-offset{position:fixed;left:0;top:0;pointer-events:none;visibility:hidden;width:100%;height:100%}"]
|
|
93
|
-
}),
|
|
94
|
-
__param(0, Inject(ViewContainerRef)),
|
|
95
|
-
__param(1, Inject(ElementRef)),
|
|
96
|
-
__param(2, Inject(TuiPortalService))
|
|
97
|
-
], TuiPortalHostComponent);
|
|
98
|
-
|
|
99
|
-
let TuiPortalHostModule = class TuiPortalHostModule {
|
|
100
|
-
};
|
|
101
|
-
TuiPortalHostModule = __decorate([
|
|
102
|
-
NgModule({
|
|
103
|
-
declarations: [TuiPortalHostComponent],
|
|
104
|
-
exports: [TuiPortalHostComponent],
|
|
105
|
-
})
|
|
106
|
-
], TuiPortalHostModule);
|
|
107
|
-
|
|
108
18
|
/**
|
|
109
19
|
* Generated bundle index. Do not edit.
|
|
110
20
|
*/
|
|
111
21
|
|
|
112
|
-
export {
|
|
22
|
+
export { TuiPortalService };
|
|
113
23
|
//# sourceMappingURL=taiga-ui-cdk-components-portal-host.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-components-portal-host.js","sources":["ng://@taiga-ui/cdk/components/portal-host/portal.service.ts","ng://@taiga-ui/cdk/components/portal-host/
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-components-portal-host.js","sources":["ng://@taiga-ui/cdk/components/portal-host/portal.service.ts","ng://@taiga-ui/cdk/components/portal-host/taiga-ui-cdk-components-portal-host.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\nimport {AbstractTuiPortalService} from '@taiga-ui/cdk/abstract';\n\n/**\n * @deprecated create your own portal (see {@link https://taiga-ui.dev/portals Portals})\n * TODO: replace with {@link TuiDropdownPortalService} in 3.0\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiPortalService extends AbstractTuiPortalService {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAGA;;;;IAOa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,wBAAwB;EAAG;;AAApD,gBAAgB;IAH5B,UAAU,CAAC;QACR,UAAU,EAAE,MAAM;KACrB,CAAC;GACW,gBAAgB,CAAoC;;ACVjE;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-cdk-components.js","sources":["ng://@taiga-ui/cdk/components/taiga-ui-cdk-components.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"taiga-ui-cdk-components.js","sources":["ng://@taiga-ui/cdk/components/taiga-ui-cdk-components.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;"}
|