@taiga-ui/experimental 4.92.0 → 4.93.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/components/accordion/accordion.component.d.ts +1 -0
- package/components/accordion/accordion.directive.d.ts +4 -1
- package/esm2022/components/accordion/accordion.component.mjs +20 -10
- package/esm2022/components/accordion/accordion.directive.mjs +7 -5
- package/esm2022/components/input-phone-international/input-phone-international.component.mjs +2 -2
- package/fesm2022/taiga-ui-experimental-components-accordion.mjs +25 -13
- package/fesm2022/taiga-ui-experimental-components-accordion.mjs.map +1 -1
- package/fesm2022/taiga-ui-experimental-components-input-phone-international.mjs +2 -2
- package/package.json +6 -6
|
@@ -14,6 +14,7 @@ export declare class TuiAccordionComponent implements AfterViewInit {
|
|
|
14
14
|
set sizeSetter(size: TuiSizeL | TuiSizeS);
|
|
15
15
|
ngAfterViewInit(): void;
|
|
16
16
|
toggle(directive: TuiAccordionDirective): void;
|
|
17
|
+
private get ownDirectives();
|
|
17
18
|
private expand;
|
|
18
19
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiAccordionComponent, never>;
|
|
19
20
|
static ɵcmp: i0.ɵɵComponentDeclaration<TuiAccordionComponent, "tui-accordion", never, { "closeOthers": { "alias": "closeOthers"; "required": false; }; "sizeSetter": { "alias": "size"; "required": false; }; }, {}, ["expands", "directives"], ["*"], true, [{ directive: typeof i1.TuiGroup; inputs: {}; outputs: {}; }]>;
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { EventEmitter, type OnChanges } from '@angular/core';
|
|
2
|
+
import { TuiAccordionComponent } from './accordion.component';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
import * as i1 from "@taiga-ui/core/components/button";
|
|
4
5
|
import * as i2 from "@taiga-ui/kit/directives/chevron";
|
|
5
6
|
export declare class TuiAccordionDirective implements OnChanges {
|
|
6
|
-
private readonly
|
|
7
|
+
private readonly accordionRef;
|
|
7
8
|
protected readonly size: import("@angular/core").WritableSignal<"m" | "s" | "l">;
|
|
8
9
|
tuiAccordion: boolean | string;
|
|
9
10
|
readonly tuiAccordionChange: EventEmitter<boolean>;
|
|
10
11
|
readonly open: import("@angular/core").WritableSignal<boolean>;
|
|
12
|
+
/** Nearest accordion this trigger belongs to, used to filter out nested ones */
|
|
13
|
+
readonly accordion: TuiAccordionComponent;
|
|
11
14
|
ngOnChanges(): void;
|
|
12
15
|
toggle(): void;
|
|
13
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiAccordionDirective, never>;
|
|
@@ -12,6 +12,11 @@ class TuiAccordionComponent {
|
|
|
12
12
|
this.destroyRef = inject(DestroyRef);
|
|
13
13
|
this.toggle$ = new ReplaySubject(Infinity);
|
|
14
14
|
this.expands = EMPTY_QUERY;
|
|
15
|
+
// Descendants search is required so a trigger wrapped in an arbitrary
|
|
16
|
+
// element (e.g. alongside a custom action button) is still found — but
|
|
17
|
+
// that also picks up triggers belonging to an accordion nested inside
|
|
18
|
+
// this one's tui-expand, so `ownDirectives` filters those back out to
|
|
19
|
+
// keep index-based pairing intact.
|
|
15
20
|
this.directives = EMPTY_QUERY;
|
|
16
21
|
this.closeOthers = true;
|
|
17
22
|
this.size = signal('l');
|
|
@@ -27,21 +32,26 @@ class TuiAccordionComponent {
|
|
|
27
32
|
toggle(directive) {
|
|
28
33
|
this.toggle$.next(directive);
|
|
29
34
|
}
|
|
35
|
+
get ownDirectives() {
|
|
36
|
+
return this.directives.filter((dir) => dir.accordion === this);
|
|
37
|
+
}
|
|
30
38
|
expand(accordion) {
|
|
39
|
+
const ownDirectives = this.ownDirectives;
|
|
40
|
+
const expand = this.expands.get(ownDirectives.indexOf(accordion));
|
|
31
41
|
if (this.closeOthers && accordion.open()) {
|
|
32
|
-
this.expands
|
|
33
|
-
|
|
42
|
+
this.expands
|
|
43
|
+
.filter((x) => x !== expand)
|
|
44
|
+
.forEach((item) => {
|
|
45
|
+
item.expanded = false;
|
|
34
46
|
});
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
47
|
+
ownDirectives
|
|
48
|
+
.filter((x) => x !== accordion)
|
|
49
|
+
.forEach((dir) => {
|
|
39
50
|
dir.open.set(false);
|
|
40
51
|
dir.tuiAccordion = false;
|
|
41
52
|
dir.tuiAccordionChange.emit(false);
|
|
42
53
|
});
|
|
43
54
|
}
|
|
44
|
-
const expand = this.expands.get(this.directives.toArray().indexOf(accordion));
|
|
45
55
|
if (expand) {
|
|
46
56
|
expand.expanded = accordion.open();
|
|
47
57
|
}
|
|
@@ -52,7 +62,7 @@ class TuiAccordionComponent {
|
|
|
52
62
|
orientation: 'vertical',
|
|
53
63
|
collapsed: true,
|
|
54
64
|
}),
|
|
55
|
-
], queries: [{ propertyName: "expands", predicate: TuiExpand }, { propertyName: "directives", predicate: TuiAccordionDirective }], hostDirectives: [{ directive: i1.TuiGroup }], ngImport: i0, template: '<ng-content />', isInline: true, styles: ["tui-accordion{inline-size:100%;border-radius:var(--t-group-radius);font:var(--tui-font-text-m);overflow:hidden}tui-accordion>[tuiAccordion]{text-align:start;justify-content:flex-start}tui-accordion>[tuiAccordion]:last-of-type:not(._open){-webkit-mask-image:var(--t-group-mask-end);mask-image:var(--t-group-mask-end);border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}tui-accordion>[tuiAccordion]:first-child{border-top-left-radius:inherit!important;border-top-right-radius:inherit!important}tui-accordion>[tuiAccordion]:first-child:last-of-type:not(._open){-webkit-mask:none;mask:none}tui-accordion>[tuiAccordion]:after{margin-inline-start:auto!important}tui-accordion>[tuiAccordion]._open+tui-expand{visibility:visible}tui-accordion>[tuiAccordion]>tui-avatar,tui-accordion>[tuiAccordion]>[tuiAvatar]{margin:0}tui-accordion>tui-expand{visibility:hidden;min-block-size:1px!important;padding:1.25rem;transition-property:grid-template-rows,padding,visibility!important;box-shadow:inset 0 0 0 1px var(--tui-border-normal)}tui-accordion>tui-expand:last-child{border-bottom-left-radius:inherit!important;border-bottom-right-radius:inherit!important}tui-accordion[data-size=m]{font:var(--tui-font-text-s)}tui-accordion[data-size=m]>tui-expand{padding:1rem}tui-accordion[data-size=s]{font:var(--tui-font-text-s)}tui-accordion[data-size=s]>tui-expand{padding:.625rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
65
|
+
], queries: [{ propertyName: "expands", predicate: TuiExpand }, { propertyName: "directives", predicate: TuiAccordionDirective, descendants: true }], hostDirectives: [{ directive: i1.TuiGroup }], ngImport: i0, template: '<ng-content />', isInline: true, styles: ["tui-accordion{inline-size:100%;border-radius:var(--t-group-radius);font:var(--tui-font-text-m);overflow:hidden}tui-accordion>[tuiAccordion]{text-align:start;justify-content:flex-start}tui-accordion>[tuiAccordion]:last-of-type:not(._open){-webkit-mask-image:var(--t-group-mask-end);mask-image:var(--t-group-mask-end);border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}tui-accordion>[tuiAccordion]:first-child{border-top-left-radius:inherit!important;border-top-right-radius:inherit!important}tui-accordion>[tuiAccordion]:first-child:last-of-type:not(._open){-webkit-mask:none;mask:none}tui-accordion>[tuiAccordion]:after{margin-inline-start:auto!important}tui-accordion>[tuiAccordion]._open+tui-expand{visibility:visible}tui-accordion>[tuiAccordion]>tui-avatar,tui-accordion>[tuiAccordion]>[tuiAvatar]{margin:0}tui-accordion>tui-expand{visibility:hidden;min-block-size:1px!important;padding:1.25rem;transition-property:grid-template-rows,padding,visibility!important;box-shadow:inset 0 0 0 1px var(--tui-border-normal)}tui-accordion>tui-expand:last-child{border-bottom-left-radius:inherit!important;border-bottom-right-radius:inherit!important}tui-accordion[data-size=m]{font:var(--tui-font-text-s)}tui-accordion[data-size=m]>tui-expand{padding:1rem}tui-accordion[data-size=s]{font:var(--tui-font-text-s)}tui-accordion[data-size=s]>tui-expand{padding:.625rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
56
66
|
}
|
|
57
67
|
export { TuiAccordionComponent };
|
|
58
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAccordionComponent, decorators: [{
|
|
@@ -70,11 +80,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
70
80
|
args: [TuiExpand]
|
|
71
81
|
}], directives: [{
|
|
72
82
|
type: ContentChildren,
|
|
73
|
-
args: [TuiAccordionDirective]
|
|
83
|
+
args: [TuiAccordionDirective, { descendants: true }]
|
|
74
84
|
}], closeOthers: [{
|
|
75
85
|
type: Input
|
|
76
86
|
}], sizeSetter: [{
|
|
77
87
|
type: Input,
|
|
78
88
|
args: ['size']
|
|
79
89
|
}] } });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVyaW1lbnRhbC9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ04saUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsUUFBUSxFQUFFLHVCQUF1QixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFFbEYsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTlFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDOzs7QUFFNUQsTUFrQmEscUJBQXFCO0lBbEJsQztRQW1CcUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxZQUFPLEdBQUcsSUFBSSxhQUFhLENBQXdCLFFBQVEsQ0FBQyxDQUFDO1FBRzlELFlBQU8sR0FBeUIsV0FBVyxDQUFDO1FBRTVELHNFQUFzRTtRQUN0RSx1RUFBdUU7UUFDdkUsc0VBQXNFO1FBQ3RFLHNFQUFzRTtRQUN0RSxtQ0FBbUM7UUFFbkIsZUFBVSxHQUFxQyxXQUFXLENBQUM7UUFHcEUsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFFVixTQUFJLEdBQUcsTUFBTSxDQUFzQixHQUFH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QUNsQixDQUFDO3FCQUNMLGtCQUNlLENBQUMsUUFBUSxDQUFDLFFBQ3BCO3dCQUNGLGtCQUFrQixFQUFFLFFBQVE7cUJBQy9COzhCQU9lLE9BQU87c0JBRHRCLGVBQWU7dUJBQUMsU0FBUztnQkFTVixVQUFVO3NCQUR6QixlQUFlO3VCQUFDLHFCQUFxQixFQUFFLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQztnQkFJcEQsV0FBVztzQkFEakIsS0FBSztnQkFNSyxVQUFVO3NCQURwQixLQUFLO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIHR5cGUgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIHR5cGUgUXVlcnlMaXN0LFxuICAgIHNpZ25hbCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtFTVBUWV9RVUVSWX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jb25zdGFudHMnO1xuaW1wb3J0IHtUdWlHcm91cCwgdHVpR3JvdXBPcHRpb25zUHJvdmlkZXJ9IGZyb20gJ0B0YWlnYS11aS9jb3JlL2RpcmVjdGl2ZXMvZ3JvdXAnO1xuaW1wb3J0IHt0eXBlIFR1aVNpemVMLCB0eXBlIFR1aVNpemVTfSBmcm9tICdAdGFpZ2EtdWkvY29yZS90eXBlcyc7XG5pbXBvcnQge1R1aUV4cGFuZH0gZnJvbSAnQHRhaWdhLXVpL2V4cGVyaW1lbnRhbC9jb21wb25lbnRzL2V4cGFuZCc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIG1hcCwgbWVyZ2UsIFJlcGxheVN1YmplY3QsIHdpdGhMYXRlc3RGcm9tfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtUdWlBY2NvcmRpb25EaXJlY3RpdmV9IGZyb20gJy4vYWNjb3JkaW9uLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICd0dWktYWNjb3JkaW9uJyxcbiAgICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50IC8+JyxcbiAgICBzdHlsZVVybHM6IFsnLi9hY2NvcmRpb24uc3R5bGUubGVzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUdyb3VwT3B0aW9uc1Byb3ZpZGVyKHtcbiAgICAgICAgICAgIG9yaWVudGF0aW9uOiAndmVydGljYWwnLFxuICAgICAgICAgICAgY29sbGFwc2VkOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICBdLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbVHVpR3JvdXBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLmRhdGEtc2l6ZV0nOiAnc2l6ZSgpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlBY2NvcmRpb25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0b2dnbGUkID0gbmV3IFJlcGxheVN1YmplY3Q8VHVpQWNjb3JkaW9uRGlyZWN0aXZlPihJbmZpbml0eSk7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFR1aUV4cGFuZClcbiAgICBwdWJsaWMgcmVhZG9ubHkgZXhwYW5kczogUXVlcnlMaXN0PFR1aUV4cGFuZD4gPSBFTVBUWV9RVUVSWTtcblxuICAgIC8vIERlc2NlbmRhbnRzIHNlYXJjaCBpcyByZXF1aXJlZCBzbyBhIHRyaWdnZXIgd3JhcHBlZCBpbiBhbiBhcmJpdHJhcnlcbiAgICAvLyBlbGVtZW50IChlLmcuIGFsb25nc2lkZSBhIGN1c3RvbSBhY3Rpb24gYnV0dG9uKSBpcyBzdGlsbCBmb3VuZCDigJQgYnV0XG4gICAgLy8gdGhhdCBhbHNvIHBpY2tzIHVwIHRyaWdnZXJzIGJlbG9uZ2luZyB0byBhbiBhY2NvcmRpb24gbmVzdGVkIGluc2lkZVxuICAgIC8vIHRoaXMgb25lJ3MgdHVpLWV4cGFuZCwgc28gYG93bkRpcmVjdGl2ZXNgIGZpbHRlcnMgdGhvc2UgYmFjayBvdXQgdG9cbiAgICAvLyBrZWVwIGluZGV4LWJhc2VkIHBhaXJpbmcgaW50YWN0LlxuICAgIEBDb250ZW50Q2hpbGRyZW4oVHVpQWNjb3JkaW9uRGlyZWN0aXZlLCB7ZGVzY2VuZGFudHM6IHRydWV9KVxuICAgIHB1YmxpYyByZWFkb25seSBkaXJlY3RpdmVzOiBRdWVyeUxpc3Q8VHVpQWNjb3JkaW9uRGlyZWN0aXZlPiA9IEVNUFRZX1FVRVJZO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY2xvc2VPdGhlcnMgPSB0cnVlO1xuXG4gICAgcHVibGljIHJlYWRvbmx5IHNpemUgPSBzaWduYWw8VHVpU2l6ZUwgfCBUdWlTaXplUz4oJ2wnKTtcblxuICAgIEBJbnB1dCgnc2l6ZScpXG4gICAgcHVibGljIHNldCBzaXplU2V0dGVyKHNpemU6IFR1aVNpemVMIHwgVHVpU2l6ZVMpIHtcbiAgICAgICAgdGhpcy5zaXplLnNldChzaXplKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBtZXJnZShcbiAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuZGlyZWN0aXZlcy5jaGFuZ2VzLCB0aGlzLmV4cGFuZHMuY2hhbmdlc10pLnBpcGUoXG4gICAgICAgICAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy50b2dnbGUkKSxcbiAgICAgICAgICAgICAgICBtYXAoKFssIGFjY29yZGlvbl0pID0+IGFjY29yZGlvbiksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdGhpcy50b2dnbGUkLFxuICAgICAgICApXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGFjY29yZGlvbikgPT4gdGhpcy5leHBhbmQoYWNjb3JkaW9uKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHRvZ2dsZShkaXJlY3RpdmU6IFR1aUFjY29yZGlvbkRpcmVjdGl2ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnRvZ2dsZSQubmV4dChkaXJlY3RpdmUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IG93bkRpcmVjdGl2ZXMoKTogVHVpQWNjb3JkaW9uRGlyZWN0aXZlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXJlY3RpdmVzLmZpbHRlcigoZGlyKSA9PiBkaXIuYWNjb3JkaW9uID09PSB0aGlzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV4cGFuZChhY2NvcmRpb246IFR1aUFjY29yZGlvbkRpcmVjdGl2ZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBvd25EaXJlY3RpdmVzID0gdGhpcy5vd25EaXJlY3RpdmVzO1xuICAgICAgICBjb25zdCBleHBhbmQgPSB0aGlzLmV4cGFuZHMuZ2V0KG93bkRpcmVjdGl2ZXMuaW5kZXhPZihhY2NvcmRpb24pKTtcblxuICAgICAgICBpZiAodGhpcy5jbG9zZU90aGVycyAmJiBhY2NvcmRpb24ub3BlbigpKSB7XG4gICAgICAgICAgICB0aGlzLmV4cGFuZHNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKCh4KSA9PiB4ICE9PSBleHBhbmQpXG4gICAgICAgICAgICAgICAgLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5leHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBvd25EaXJlY3RpdmVzXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoeCkgPT4geCAhPT0gYWNjb3JkaW9uKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKChkaXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZGlyLm9wZW4uc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgZGlyLnR1aUFjY29yZGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBkaXIudHVpQWNjb3JkaW9uQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGV4cGFuZCkge1xuICAgICAgICAgICAgZXhwYW5kLmV4cGFuZGVkID0gYWNjb3JkaW9uLm9wZW4oKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -9,21 +9,23 @@ import * as i1 from "@taiga-ui/core/components/button";
|
|
|
9
9
|
import * as i2 from "@taiga-ui/kit/directives/chevron";
|
|
10
10
|
class TuiAccordionDirective {
|
|
11
11
|
constructor() {
|
|
12
|
-
this.
|
|
13
|
-
this.size = tuiDirectiveBinding(TuiButton, 'size', this.
|
|
12
|
+
this.accordionRef = inject(TuiAccordionComponent);
|
|
13
|
+
this.size = tuiDirectiveBinding(TuiButton, 'size', this.accordionRef.size);
|
|
14
14
|
this.tuiAccordion = '';
|
|
15
15
|
this.tuiAccordionChange = new EventEmitter();
|
|
16
16
|
this.open = tuiDirectiveBinding(TuiChevron, 'tuiChevron', signal(false));
|
|
17
|
+
/** Nearest accordion this trigger belongs to, used to filter out nested ones */
|
|
18
|
+
this.accordion = this.accordionRef;
|
|
17
19
|
}
|
|
18
20
|
ngOnChanges() {
|
|
19
21
|
this.open.set(!!this.tuiAccordion);
|
|
20
|
-
this.
|
|
22
|
+
this.accordionRef.toggle(this);
|
|
21
23
|
}
|
|
22
24
|
toggle() {
|
|
23
25
|
this.open.set(!this.open());
|
|
24
26
|
this.tuiAccordion = this.open();
|
|
25
27
|
this.tuiAccordionChange.emit(this.open());
|
|
26
|
-
this.
|
|
28
|
+
this.accordionRef.toggle(this);
|
|
27
29
|
}
|
|
28
30
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAccordionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
29
31
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiAccordionDirective, isStandalone: true, selector: "button[tuiAccordion]", inputs: { tuiAccordion: "tuiAccordion" }, outputs: { tuiAccordionChange: "tuiAccordionChange" }, host: { attributes: { "tuiButton": "", "tuiAccordion": "", "type": "button" }, listeners: { "click": "toggle()" }, properties: { "class._open": "open()" } }, providers: [
|
|
@@ -55,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
55
57
|
}], tuiAccordionChange: [{
|
|
56
58
|
type: Output
|
|
57
59
|
}] } });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4cGVyaW1lbnRhbC9jb21wb25lbnRzL2FjY29yZGlvbi9hY2NvcmRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsU0FBUyxFQUFFLHdCQUF3QixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDckYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRTVELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDOzs7O0FBRTVELE1BZ0JhLHFCQUFxQjtJQWhCbEM7UUFpQnFCLGlCQUFZLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFM0MsU0FBSSxHQUFHLG1CQUFtQixDQUN6QyxTQUFTLEVBQ1QsTUFBTSxFQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUN6QixDQUFDO1FBR0ssaUJBQVksR0FBcUIsRUFBRSxDQUFDO1FBRzNCLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFakQsU0FBSSxHQUFHLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFcEYsZ0ZBQWdGO1FBQ2hFLGNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO0tBYWpEO0lBWFUsV0FBVztRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLE1BQU07UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQzsrR0E5QlEscUJBQXFCO21HQUFyQixxQkFBcUIsa1VBYm5CO1lBQ1Asd0JBQXdCLENBQUMsRUFBQyxJQUFJLEVBQUUsR0FBRyxFQUFDLENBQUM7WUFDckMsd0JBQXdCLENBQUMsRUFBQyxVQUFVLEVBQUUsbUJBQW1CLEVBQUMsQ0FBQztTQUM5RDs7U0FVUSxxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFoQmpDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFNBQVMsRUFBRTt3QkFDUCx3QkFBd0IsQ0FBQyxFQUFDLElBQUksRUFBRSxHQUFHLEVBQUMsQ0FBQzt3QkFDckMsd0JBQXdCLENBQUMsRUFBQyxVQUFVLEVBQUUsbUJBQW1CLEVBQUMsQ0FBQztxQkFDOUQ7b0JBQ0QsY0FBYyxFQUFFLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQztvQkFDdkMsSUFBSSxFQUFFO3dCQUNGLFNBQVMsRUFBRSxFQUFFO3dCQUNiLFlBQVksRUFBRSxFQUFFO3dCQUNoQixJQUFJLEVBQUUsUUFBUTt3QkFDZCxlQUFlLEVBQUUsUUFBUTt3QkFDekIsU0FBUyxFQUFFLFVBQVU7cUJBQ3hCO2lCQUNKOzhCQVdVLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSVUsa0JBQWtCO3NCQURqQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICB0eXBlIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dHVpRGlyZWN0aXZlQmluZGluZ30gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscyc7XG5pbXBvcnQge1R1aUJ1dHRvbiwgdHVpQnV0dG9uT3B0aW9uc1Byb3ZpZGVyfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQge3R1aUF2YXRhck9wdGlvbnNQcm92aWRlcn0gZnJvbSAnQHRhaWdhLXVpL2tpdC9jb21wb25lbnRzL2F2YXRhcic7XG5pbXBvcnQge1R1aUNoZXZyb259IGZyb20gJ0B0YWlnYS11aS9raXQvZGlyZWN0aXZlcy9jaGV2cm9uJztcblxuaW1wb3J0IHtUdWlBY2NvcmRpb25Db21wb25lbnR9IGZyb20gJy4vYWNjb3JkaW9uLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdidXR0b25bdHVpQWNjb3JkaW9uXScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHR1aUF2YXRhck9wdGlvbnNQcm92aWRlcih7c2l6ZTogJ3MnfSksXG4gICAgICAgIHR1aUJ1dHRvbk9wdGlvbnNQcm92aWRlcih7YXBwZWFyYW5jZTogJ291dGxpbmUtZ3JheXNjYWxlJ30pLFxuICAgIF0sXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtUdWlCdXR0b24sIFR1aUNoZXZyb25dLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgdHVpQnV0dG9uOiAnJyxcbiAgICAgICAgdHVpQWNjb3JkaW9uOiAnJyxcbiAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICdbY2xhc3MuX29wZW5dJzogJ29wZW4oKScsXG4gICAgICAgICcoY2xpY2spJzogJ3RvZ2dsZSgpJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlBY2NvcmRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYWNjb3JkaW9uUmVmID0gaW5qZWN0KFR1aUFjY29yZGlvbkNvbXBvbmVudCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2l6ZSA9IHR1aURpcmVjdGl2ZUJpbmRpbmcoXG4gICAgICAgIFR1aUJ1dHRvbixcbiAgICAgICAgJ3NpemUnLFxuICAgICAgICB0aGlzLmFjY29yZGlvblJlZi5zaXplLFxuICAgICk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0dWlBY2NvcmRpb246IGJvb2xlYW4gfCBzdHJpbmcgPSAnJztcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSB0dWlBY2NvcmRpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgb3BlbiA9IHR1aURpcmVjdGl2ZUJpbmRpbmcoVHVpQ2hldnJvbiwgJ3R1aUNoZXZyb24nLCBzaWduYWwoZmFsc2UpKTtcblxuICAgIC8qKiBOZWFyZXN0IGFjY29yZGlvbiB0aGlzIHRyaWdnZXIgYmVsb25ncyB0bywgdXNlZCB0byBmaWx0ZXIgb3V0IG5lc3RlZCBvbmVzICovXG4gICAgcHVibGljIHJlYWRvbmx5IGFjY29yZGlvbiA9IHRoaXMuYWNjb3JkaW9uUmVmO1xuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4uc2V0KCEhdGhpcy50dWlBY2NvcmRpb24pO1xuICAgICAgICB0aGlzLmFjY29yZGlvblJlZi50b2dnbGUodGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuLnNldCghdGhpcy5vcGVuKCkpO1xuICAgICAgICB0aGlzLnR1aUFjY29yZGlvbiA9IHRoaXMub3BlbigpO1xuICAgICAgICB0aGlzLnR1aUFjY29yZGlvbkNoYW5nZS5lbWl0KHRoaXMub3BlbigpKTtcbiAgICAgICAgdGhpcy5hY2NvcmRpb25SZWYudG9nZ2xlKHRoaXMpO1xuICAgIH1cbn1cbiJdfQ==
|
package/esm2022/components/input-phone-international/input-phone-international.component.mjs
CHANGED
|
@@ -136,7 +136,7 @@ class TuiInputPhoneInternational extends TuiControl {
|
|
|
136
136
|
tuiAsControl(TuiInputPhoneInternational),
|
|
137
137
|
tuiFallbackValueProvider(''),
|
|
138
138
|
tuiAutoFocusOptionsProvider({ preventScroll: true }),
|
|
139
|
-
], viewQueries: [{ propertyName: "list", predicate: TuiOptionNew, descendants: true, read: ElementRef }], usesInheritance: true, hostDirectives: [{ directive: i1.MaskitoDirective }, { directive: i2.TuiWithTextfield }], ngImport: i0, template: "<ng-container *tuiTextfieldContent>\n <button\n appearance=\"textfield\"\n tabindex=\"-1\"\n tuiButton\n tuiChevron\n type=\"button\"\n class=\"t-ipi-select\"\n [attr.data-mode]=\"mode()\"\n [class.t-ipi-select_readonly]=\"readOnly()\"\n [disabled]=\"disabled()\"\n [size]=\"size()\"\n [tuiAppearanceFocus]=\"open()\"\n (pointerdown.prevent)=\"interactive() && open.set(!open())\"\n >\n <img\n class=\"t-ipi-flag\"\n [alt]=\"names()?.[code()]\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"code() | tuiFlag\"\n />\n </button>\n</ng-container>\n<ng-container *tuiTextfieldDropdown>\n <div\n *ngIf=\"countrySearch\"\n #element\n class=\"t-ipi-search\"\n >\n <tui-textfield\n [iconStart]=\"icons.search\"\n [tuiTextfieldSize]=\"size() === 's' ? 's' : 'm'\"\n >\n <input\n autocomplete=\"off\"\n tuiTextfield\n type=\"text\"\n [focused]=\"true\"\n [ngModel]=\"search()\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"label()\"\n [tuiAutoFocus]=\"!!element.closest('tui-dropdown-mobile')\"\n (keydown.arrowDown)=\"list.get(0)?.nativeElement?.focus()\"\n (ngModelChange)=\"search.set($event)\"\n />\n </tui-textfield>\n </div>\n\n <tui-data-list class=\"t-ipi-options\">\n <button\n *ngFor=\"let item of filtered()\"\n new\n tuiOption\n type=\"button\"\n [tuiCell]=\"size()\"\n (click)=\"onItemClick(item.iso)\"\n >\n <img\n alt=\"\"\n class=\"t-ipi-flag\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"item.iso | tuiFlag\"\n />\n <span tuiTitle>{{ item.name }}</span>\n <span class=\"t-ipi-code\">{{ item.code }}</span>\n </button>\n </tui-data-list>\n</ng-container>\n", styles: ["[tuiTextfieldV=\"4.
|
|
139
|
+
], viewQueries: [{ propertyName: "list", predicate: TuiOptionNew, descendants: true, read: ElementRef }], usesInheritance: true, hostDirectives: [{ directive: i1.MaskitoDirective }, { directive: i2.TuiWithTextfield }], ngImport: i0, template: "<ng-container *tuiTextfieldContent>\n <button\n appearance=\"textfield\"\n tabindex=\"-1\"\n tuiButton\n tuiChevron\n type=\"button\"\n class=\"t-ipi-select\"\n [attr.data-mode]=\"mode()\"\n [class.t-ipi-select_readonly]=\"readOnly()\"\n [disabled]=\"disabled()\"\n [size]=\"size()\"\n [tuiAppearanceFocus]=\"open()\"\n (pointerdown.prevent)=\"interactive() && open.set(!open())\"\n >\n <img\n class=\"t-ipi-flag\"\n [alt]=\"names()?.[code()]\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"code() | tuiFlag\"\n />\n </button>\n</ng-container>\n<ng-container *tuiTextfieldDropdown>\n <div\n *ngIf=\"countrySearch\"\n #element\n class=\"t-ipi-search\"\n >\n <tui-textfield\n [iconStart]=\"icons.search\"\n [tuiTextfieldSize]=\"size() === 's' ? 's' : 'm'\"\n >\n <input\n autocomplete=\"off\"\n tuiTextfield\n type=\"text\"\n [focused]=\"true\"\n [ngModel]=\"search()\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"label()\"\n [tuiAutoFocus]=\"!!element.closest('tui-dropdown-mobile')\"\n (keydown.arrowDown)=\"list.get(0)?.nativeElement?.focus()\"\n (ngModelChange)=\"search.set($event)\"\n />\n </tui-textfield>\n </div>\n\n <tui-data-list class=\"t-ipi-options\">\n <button\n *ngFor=\"let item of filtered()\"\n new\n tuiOption\n type=\"button\"\n [tuiCell]=\"size()\"\n (click)=\"onItemClick(item.iso)\"\n >\n <img\n alt=\"\"\n class=\"t-ipi-flag\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"item.iso | tuiFlag\"\n />\n <span tuiTitle>{{ item.name }}</span>\n <span class=\"t-ipi-code\">{{ item.code }}</span>\n </button>\n </tui-data-list>\n</ng-container>\n", styles: ["[tuiTextfieldV=\"4.93.0\"] [tuiInputPhoneInternational][tuiInputPhoneInternational]{left:var(--t-offset);border-top-left-radius:0;border-bottom-left-radius:0;inline-size:calc(100% - var(--t-offset))}tui-root:has(tui-dropdown-mobile) [tuiTextfieldV=\"4.93.0\"] [tuiInputPhoneInternational][tuiInputPhoneInternational]{caret-color:transparent}[tuiTextfieldV=\"4.93.0\"] [tuiInputPhoneInternational][tuiInputPhoneInternational]+label{padding-inline-start:var(--t-offset)}[tuiTextfieldV=\"4.93.0\"][data-size=s]{--t-offset: 4.125rem}[tuiTextfieldV=\"4.93.0\"][data-size=s] .t-ipi-flag{margin:0 .1875rem}[tuiTextfieldV=\"4.93.0\"][data-size=m]{--t-offset: 4.875rem}[tuiTextfieldV=\"4.93.0\"][data-size=m] .t-ipi-flag{margin:0 -.1875rem}[tuiTextfieldV=\"4.93.0\"][data-size=l]{--t-offset: 5.25rem}[tuiTextfieldV=\"4.93.0\"][data-size=l] .t-ipi-flag{margin:0 -.1875rem}[tuiTextfieldV=\"4.93.0\"] .t-ipi-select{position:absolute;left:0;border-radius:inherit;border-top-right-radius:0;border-bottom-right-radius:0}[tuiTextfieldV=\"4.93.0\"] .t-ipi-select_readonly{pointer-events:none}.t-ipi-flag{inline-size:1.75rem;block-size:1.75rem;border-radius:100%}.t-ipi-flag_small{inline-size:1.25rem;block-size:1.25rem}.t-ipi-code{color:var(--tui-text-secondary)}.t-ipi-search{position:sticky;top:0;z-index:1;background:var(--tui-background-elevation-3);padding:.375rem .375rem 0}@supports (-webkit-touch-callout: none){.t-ipi-search input:focus{animation:tuiPreventIOSScroll 1ms}}@keyframes tuiPreventIOSScroll{0%{opacity:0}to{opacity:1}}tui-dropdown-mobile .t-ipi-search{background:var(--tui-background-elevation-1)}tui-dropdown-mobile .t-ipi-options:not(:first-child){min-block-size:calc(100 * var(--tui-viewport-vh) - 8.75rem)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TuiAutoFocus, selector: "[tuiAutoFocus]", inputs: ["tuiAutoFocus"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: TuiCell, selector: "[tuiCell]:not(ng-template)", inputs: ["tuiCell", "tuiCellHeight"] }, { kind: "directive", type: TuiChevron, selector: "[tuiChevron]", inputs: ["tuiChevron"] }, { kind: "component", type: i4.TuiDataListComponent, selector: "tui-data-list", inputs: ["emptyContent", "size"] }, { kind: "directive", type: i4.TuiOptionNew, selector: "button[tuiOption][new], a[tuiOption][new], label[tuiOption][new]", inputs: ["disabled"] }, { kind: "pipe", type: TuiFlagPipe, name: "tuiFlag" }, { kind: "component", type: i2.TuiTextfieldComponent, selector: "tui-textfield:not([multi])" }, { kind: "directive", type: i2.TuiTextfieldDirective, selector: "input[tuiTextfield]:not([tuiInputCard]):not([tuiInputExpire]):not([tuiInputCVC])" }, { kind: "directive", type: i2.TuiTextfieldOptionsDirective, selector: "[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]", inputs: ["tuiTextfieldAppearance", "tuiTextfieldSize", "tuiTextfieldCleaner"] }, { kind: "directive", type: i2.TuiTextfieldDropdownDirective, selector: "ng-template[tuiTextfieldDropdown]" }, { kind: "directive", type: TuiTextfieldContent, selector: "ng-template[tuiTextfieldContent]" }, { kind: "directive", type: TuiTitle, selector: "[tuiTitle]", inputs: ["tuiTitle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
140
140
|
}
|
|
141
141
|
export { TuiInputPhoneInternational };
|
|
142
142
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputPhoneInternational, decorators: [{
|
|
@@ -166,7 +166,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
166
166
|
'(input)': 'masked.set($event.target.value)',
|
|
167
167
|
'(click)': 'open.set(false)',
|
|
168
168
|
'(beforeinput.capture)': 'onPaste($event)',
|
|
169
|
-
}, template: "<ng-container *tuiTextfieldContent>\n <button\n appearance=\"textfield\"\n tabindex=\"-1\"\n tuiButton\n tuiChevron\n type=\"button\"\n class=\"t-ipi-select\"\n [attr.data-mode]=\"mode()\"\n [class.t-ipi-select_readonly]=\"readOnly()\"\n [disabled]=\"disabled()\"\n [size]=\"size()\"\n [tuiAppearanceFocus]=\"open()\"\n (pointerdown.prevent)=\"interactive() && open.set(!open())\"\n >\n <img\n class=\"t-ipi-flag\"\n [alt]=\"names()?.[code()]\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"code() | tuiFlag\"\n />\n </button>\n</ng-container>\n<ng-container *tuiTextfieldDropdown>\n <div\n *ngIf=\"countrySearch\"\n #element\n class=\"t-ipi-search\"\n >\n <tui-textfield\n [iconStart]=\"icons.search\"\n [tuiTextfieldSize]=\"size() === 's' ? 's' : 'm'\"\n >\n <input\n autocomplete=\"off\"\n tuiTextfield\n type=\"text\"\n [focused]=\"true\"\n [ngModel]=\"search()\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"label()\"\n [tuiAutoFocus]=\"!!element.closest('tui-dropdown-mobile')\"\n (keydown.arrowDown)=\"list.get(0)?.nativeElement?.focus()\"\n (ngModelChange)=\"search.set($event)\"\n />\n </tui-textfield>\n </div>\n\n <tui-data-list class=\"t-ipi-options\">\n <button\n *ngFor=\"let item of filtered()\"\n new\n tuiOption\n type=\"button\"\n [tuiCell]=\"size()\"\n (click)=\"onItemClick(item.iso)\"\n >\n <img\n alt=\"\"\n class=\"t-ipi-flag\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"item.iso | tuiFlag\"\n />\n <span tuiTitle>{{ item.name }}</span>\n <span class=\"t-ipi-code\">{{ item.code }}</span>\n </button>\n </tui-data-list>\n</ng-container>\n", styles: ["[tuiTextfieldV=\"4.
|
|
169
|
+
}, template: "<ng-container *tuiTextfieldContent>\n <button\n appearance=\"textfield\"\n tabindex=\"-1\"\n tuiButton\n tuiChevron\n type=\"button\"\n class=\"t-ipi-select\"\n [attr.data-mode]=\"mode()\"\n [class.t-ipi-select_readonly]=\"readOnly()\"\n [disabled]=\"disabled()\"\n [size]=\"size()\"\n [tuiAppearanceFocus]=\"open()\"\n (pointerdown.prevent)=\"interactive() && open.set(!open())\"\n >\n <img\n class=\"t-ipi-flag\"\n [alt]=\"names()?.[code()]\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"code() | tuiFlag\"\n />\n </button>\n</ng-container>\n<ng-container *tuiTextfieldDropdown>\n <div\n *ngIf=\"countrySearch\"\n #element\n class=\"t-ipi-search\"\n >\n <tui-textfield\n [iconStart]=\"icons.search\"\n [tuiTextfieldSize]=\"size() === 's' ? 's' : 'm'\"\n >\n <input\n autocomplete=\"off\"\n tuiTextfield\n type=\"text\"\n [focused]=\"true\"\n [ngModel]=\"search()\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"label()\"\n [tuiAutoFocus]=\"!!element.closest('tui-dropdown-mobile')\"\n (keydown.arrowDown)=\"list.get(0)?.nativeElement?.focus()\"\n (ngModelChange)=\"search.set($event)\"\n />\n </tui-textfield>\n </div>\n\n <tui-data-list class=\"t-ipi-options\">\n <button\n *ngFor=\"let item of filtered()\"\n new\n tuiOption\n type=\"button\"\n [tuiCell]=\"size()\"\n (click)=\"onItemClick(item.iso)\"\n >\n <img\n alt=\"\"\n class=\"t-ipi-flag\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"item.iso | tuiFlag\"\n />\n <span tuiTitle>{{ item.name }}</span>\n <span class=\"t-ipi-code\">{{ item.code }}</span>\n </button>\n </tui-data-list>\n</ng-container>\n", styles: ["[tuiTextfieldV=\"4.93.0\"] [tuiInputPhoneInternational][tuiInputPhoneInternational]{left:var(--t-offset);border-top-left-radius:0;border-bottom-left-radius:0;inline-size:calc(100% - var(--t-offset))}tui-root:has(tui-dropdown-mobile) [tuiTextfieldV=\"4.93.0\"] [tuiInputPhoneInternational][tuiInputPhoneInternational]{caret-color:transparent}[tuiTextfieldV=\"4.93.0\"] [tuiInputPhoneInternational][tuiInputPhoneInternational]+label{padding-inline-start:var(--t-offset)}[tuiTextfieldV=\"4.93.0\"][data-size=s]{--t-offset: 4.125rem}[tuiTextfieldV=\"4.93.0\"][data-size=s] .t-ipi-flag{margin:0 .1875rem}[tuiTextfieldV=\"4.93.0\"][data-size=m]{--t-offset: 4.875rem}[tuiTextfieldV=\"4.93.0\"][data-size=m] .t-ipi-flag{margin:0 -.1875rem}[tuiTextfieldV=\"4.93.0\"][data-size=l]{--t-offset: 5.25rem}[tuiTextfieldV=\"4.93.0\"][data-size=l] .t-ipi-flag{margin:0 -.1875rem}[tuiTextfieldV=\"4.93.0\"] .t-ipi-select{position:absolute;left:0;border-radius:inherit;border-top-right-radius:0;border-bottom-right-radius:0}[tuiTextfieldV=\"4.93.0\"] .t-ipi-select_readonly{pointer-events:none}.t-ipi-flag{inline-size:1.75rem;block-size:1.75rem;border-radius:100%}.t-ipi-flag_small{inline-size:1.25rem;block-size:1.25rem}.t-ipi-code{color:var(--tui-text-secondary)}.t-ipi-search{position:sticky;top:0;z-index:1;background:var(--tui-background-elevation-3);padding:.375rem .375rem 0}@supports (-webkit-touch-callout: none){.t-ipi-search input:focus{animation:tuiPreventIOSScroll 1ms}}@keyframes tuiPreventIOSScroll{0%{opacity:0}to{opacity:1}}tui-dropdown-mobile .t-ipi-search{background:var(--tui-background-elevation-1)}tui-dropdown-mobile .t-ipi-options:not(:first-child){min-block-size:calc(100 * var(--tui-viewport-vh) - 8.75rem)}\n"] }]
|
|
170
170
|
}], propDecorators: { list: [{
|
|
171
171
|
type: ViewChildren,
|
|
172
172
|
args: [TuiOptionNew, { read: ElementRef }]
|
|
@@ -16,21 +16,23 @@ import { TuiChevron } from '@taiga-ui/kit/directives/chevron';
|
|
|
16
16
|
|
|
17
17
|
class TuiAccordionDirective {
|
|
18
18
|
constructor() {
|
|
19
|
-
this.
|
|
20
|
-
this.size = tuiDirectiveBinding(TuiButton, 'size', this.
|
|
19
|
+
this.accordionRef = inject(TuiAccordionComponent);
|
|
20
|
+
this.size = tuiDirectiveBinding(TuiButton, 'size', this.accordionRef.size);
|
|
21
21
|
this.tuiAccordion = '';
|
|
22
22
|
this.tuiAccordionChange = new EventEmitter();
|
|
23
23
|
this.open = tuiDirectiveBinding(TuiChevron, 'tuiChevron', signal(false));
|
|
24
|
+
/** Nearest accordion this trigger belongs to, used to filter out nested ones */
|
|
25
|
+
this.accordion = this.accordionRef;
|
|
24
26
|
}
|
|
25
27
|
ngOnChanges() {
|
|
26
28
|
this.open.set(!!this.tuiAccordion);
|
|
27
|
-
this.
|
|
29
|
+
this.accordionRef.toggle(this);
|
|
28
30
|
}
|
|
29
31
|
toggle() {
|
|
30
32
|
this.open.set(!this.open());
|
|
31
33
|
this.tuiAccordion = this.open();
|
|
32
34
|
this.tuiAccordionChange.emit(this.open());
|
|
33
|
-
this.
|
|
35
|
+
this.accordionRef.toggle(this);
|
|
34
36
|
}
|
|
35
37
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAccordionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
36
38
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiAccordionDirective, isStandalone: true, selector: "button[tuiAccordion]", inputs: { tuiAccordion: "tuiAccordion" }, outputs: { tuiAccordionChange: "tuiAccordionChange" }, host: { attributes: { "tuiButton": "", "tuiAccordion": "", "type": "button" }, listeners: { "click": "toggle()" }, properties: { "class._open": "open()" } }, providers: [
|
|
@@ -67,6 +69,11 @@ class TuiAccordionComponent {
|
|
|
67
69
|
this.destroyRef = inject(DestroyRef);
|
|
68
70
|
this.toggle$ = new ReplaySubject(Infinity);
|
|
69
71
|
this.expands = EMPTY_QUERY;
|
|
72
|
+
// Descendants search is required so a trigger wrapped in an arbitrary
|
|
73
|
+
// element (e.g. alongside a custom action button) is still found — but
|
|
74
|
+
// that also picks up triggers belonging to an accordion nested inside
|
|
75
|
+
// this one's tui-expand, so `ownDirectives` filters those back out to
|
|
76
|
+
// keep index-based pairing intact.
|
|
70
77
|
this.directives = EMPTY_QUERY;
|
|
71
78
|
this.closeOthers = true;
|
|
72
79
|
this.size = signal('l');
|
|
@@ -82,21 +89,26 @@ class TuiAccordionComponent {
|
|
|
82
89
|
toggle(directive) {
|
|
83
90
|
this.toggle$.next(directive);
|
|
84
91
|
}
|
|
92
|
+
get ownDirectives() {
|
|
93
|
+
return this.directives.filter((dir) => dir.accordion === this);
|
|
94
|
+
}
|
|
85
95
|
expand(accordion) {
|
|
96
|
+
const ownDirectives = this.ownDirectives;
|
|
97
|
+
const expand = this.expands.get(ownDirectives.indexOf(accordion));
|
|
86
98
|
if (this.closeOthers && accordion.open()) {
|
|
87
|
-
this.expands
|
|
88
|
-
|
|
99
|
+
this.expands
|
|
100
|
+
.filter((x) => x !== expand)
|
|
101
|
+
.forEach((item) => {
|
|
102
|
+
item.expanded = false;
|
|
89
103
|
});
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}
|
|
104
|
+
ownDirectives
|
|
105
|
+
.filter((x) => x !== accordion)
|
|
106
|
+
.forEach((dir) => {
|
|
94
107
|
dir.open.set(false);
|
|
95
108
|
dir.tuiAccordion = false;
|
|
96
109
|
dir.tuiAccordionChange.emit(false);
|
|
97
110
|
});
|
|
98
111
|
}
|
|
99
|
-
const expand = this.expands.get(this.directives.toArray().indexOf(accordion));
|
|
100
112
|
if (expand) {
|
|
101
113
|
expand.expanded = accordion.open();
|
|
102
114
|
}
|
|
@@ -107,7 +119,7 @@ class TuiAccordionComponent {
|
|
|
107
119
|
orientation: 'vertical',
|
|
108
120
|
collapsed: true,
|
|
109
121
|
}),
|
|
110
|
-
], queries: [{ propertyName: "expands", predicate: TuiExpand }, { propertyName: "directives", predicate: TuiAccordionDirective }], hostDirectives: [{ directive: i1$1.TuiGroup }], ngImport: i0, template: '<ng-content />', isInline: true, styles: ["tui-accordion{inline-size:100%;border-radius:var(--t-group-radius);font:var(--tui-font-text-m);overflow:hidden}tui-accordion>[tuiAccordion]{text-align:start;justify-content:flex-start}tui-accordion>[tuiAccordion]:last-of-type:not(._open){-webkit-mask-image:var(--t-group-mask-end);mask-image:var(--t-group-mask-end);border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}tui-accordion>[tuiAccordion]:first-child{border-top-left-radius:inherit!important;border-top-right-radius:inherit!important}tui-accordion>[tuiAccordion]:first-child:last-of-type:not(._open){-webkit-mask:none;mask:none}tui-accordion>[tuiAccordion]:after{margin-inline-start:auto!important}tui-accordion>[tuiAccordion]._open+tui-expand{visibility:visible}tui-accordion>[tuiAccordion]>tui-avatar,tui-accordion>[tuiAccordion]>[tuiAvatar]{margin:0}tui-accordion>tui-expand{visibility:hidden;min-block-size:1px!important;padding:1.25rem;transition-property:grid-template-rows,padding,visibility!important;box-shadow:inset 0 0 0 1px var(--tui-border-normal)}tui-accordion>tui-expand:last-child{border-bottom-left-radius:inherit!important;border-bottom-right-radius:inherit!important}tui-accordion[data-size=m]{font:var(--tui-font-text-s)}tui-accordion[data-size=m]>tui-expand{padding:1rem}tui-accordion[data-size=s]{font:var(--tui-font-text-s)}tui-accordion[data-size=s]>tui-expand{padding:.625rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
122
|
+
], queries: [{ propertyName: "expands", predicate: TuiExpand }, { propertyName: "directives", predicate: TuiAccordionDirective, descendants: true }], hostDirectives: [{ directive: i1$1.TuiGroup }], ngImport: i0, template: '<ng-content />', isInline: true, styles: ["tui-accordion{inline-size:100%;border-radius:var(--t-group-radius);font:var(--tui-font-text-m);overflow:hidden}tui-accordion>[tuiAccordion]{text-align:start;justify-content:flex-start}tui-accordion>[tuiAccordion]:last-of-type:not(._open){-webkit-mask-image:var(--t-group-mask-end);mask-image:var(--t-group-mask-end);border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}tui-accordion>[tuiAccordion]:first-child{border-top-left-radius:inherit!important;border-top-right-radius:inherit!important}tui-accordion>[tuiAccordion]:first-child:last-of-type:not(._open){-webkit-mask:none;mask:none}tui-accordion>[tuiAccordion]:after{margin-inline-start:auto!important}tui-accordion>[tuiAccordion]._open+tui-expand{visibility:visible}tui-accordion>[tuiAccordion]>tui-avatar,tui-accordion>[tuiAccordion]>[tuiAvatar]{margin:0}tui-accordion>tui-expand{visibility:hidden;min-block-size:1px!important;padding:1.25rem;transition-property:grid-template-rows,padding,visibility!important;box-shadow:inset 0 0 0 1px var(--tui-border-normal)}tui-accordion>tui-expand:last-child{border-bottom-left-radius:inherit!important;border-bottom-right-radius:inherit!important}tui-accordion[data-size=m]{font:var(--tui-font-text-s)}tui-accordion[data-size=m]>tui-expand{padding:1rem}tui-accordion[data-size=s]{font:var(--tui-font-text-s)}tui-accordion[data-size=s]>tui-expand{padding:.625rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
111
123
|
}
|
|
112
124
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiAccordionComponent, decorators: [{
|
|
113
125
|
type: Component,
|
|
@@ -124,7 +136,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
124
136
|
args: [TuiExpand]
|
|
125
137
|
}], directives: [{
|
|
126
138
|
type: ContentChildren,
|
|
127
|
-
args: [TuiAccordionDirective]
|
|
139
|
+
args: [TuiAccordionDirective, { descendants: true }]
|
|
128
140
|
}], closeOthers: [{
|
|
129
141
|
type: Input
|
|
130
142
|
}], sizeSetter: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-experimental-components-accordion.mjs","sources":["../../../projects/experimental/components/accordion/accordion.directive.ts","../../../projects/experimental/components/accordion/accordion.component.ts","../../../projects/experimental/components/accordion/accordion.ts","../../../projects/experimental/components/accordion/taiga-ui-experimental-components-accordion.ts"],"sourcesContent":["import {\n Directive,\n EventEmitter,\n inject,\n Input,\n type OnChanges,\n Output,\n signal,\n} from '@angular/core';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils';\nimport {TuiButton, tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {tuiAvatarOptionsProvider} from '@taiga-ui/kit/components/avatar';\nimport {TuiChevron} from '@taiga-ui/kit/directives/chevron';\n\nimport {TuiAccordionComponent} from './accordion.component';\n\n@Directive({\n standalone: true,\n selector: 'button[tuiAccordion]',\n providers: [\n tuiAvatarOptionsProvider({size: 's'}),\n tuiButtonOptionsProvider({appearance: 'outline-grayscale'}),\n ],\n hostDirectives: [TuiButton, TuiChevron],\n host: {\n tuiButton: '',\n tuiAccordion: '',\n type: 'button',\n '[class._open]': 'open()',\n '(click)': 'toggle()',\n },\n})\nexport class TuiAccordionDirective implements OnChanges {\n private readonly accordion = inject(TuiAccordionComponent);\n\n protected readonly size = tuiDirectiveBinding(TuiButton, 'size', this.accordion.size);\n\n @Input()\n public tuiAccordion: boolean | string = '';\n\n @Output()\n public readonly tuiAccordionChange = new EventEmitter<boolean>();\n\n public readonly open = tuiDirectiveBinding(TuiChevron, 'tuiChevron', signal(false));\n\n public ngOnChanges(): void {\n this.open.set(!!this.tuiAccordion);\n this.accordion.toggle(this);\n }\n\n public toggle(): void {\n this.open.set(!this.open());\n this.tuiAccordion = this.open();\n this.tuiAccordionChange.emit(this.open());\n this.accordion.toggle(this);\n }\n}\n","import {\n type AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DestroyRef,\n inject,\n Input,\n type QueryList,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiGroup, tuiGroupOptionsProvider} from '@taiga-ui/core/directives/group';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {TuiExpand} from '@taiga-ui/experimental/components/expand';\nimport {combineLatest, map, merge, ReplaySubject, withLatestFrom} from 'rxjs';\n\nimport {TuiAccordionDirective} from './accordion.directive';\n\n@Component({\n standalone: true,\n selector: 'tui-accordion',\n template: '<ng-content />',\n styleUrls: ['./accordion.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiGroupOptionsProvider({\n orientation: 'vertical',\n collapsed: true,\n }),\n ],\n hostDirectives: [TuiGroup],\n host: {\n '[attr.data-size]': 'size()',\n },\n})\nexport class TuiAccordionComponent implements AfterViewInit {\n private readonly destroyRef = inject(DestroyRef);\n private readonly toggle$ = new ReplaySubject<TuiAccordionDirective>(Infinity);\n\n @ContentChildren(TuiExpand)\n public readonly expands: QueryList<TuiExpand> = EMPTY_QUERY;\n\n @ContentChildren(TuiAccordionDirective)\n public readonly directives: QueryList<TuiAccordionDirective> = EMPTY_QUERY;\n\n @Input()\n public closeOthers = true;\n\n public readonly size = signal<TuiSizeL | TuiSizeS>('l');\n\n @Input('size')\n public set sizeSetter(size: TuiSizeL | TuiSizeS) {\n this.size.set(size);\n }\n\n public ngAfterViewInit(): void {\n merge(\n combineLatest([this.directives.changes, this.expands.changes]).pipe(\n withLatestFrom(this.toggle$),\n map(([, accordion]) => accordion),\n ),\n this.toggle$,\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((accordion) => this.expand(accordion));\n }\n\n public toggle(directive: TuiAccordionDirective): void {\n this.toggle$.next(directive);\n }\n\n private expand(accordion: TuiAccordionDirective): void {\n if (this.closeOthers && accordion.open()) {\n this.expands.forEach((expand) => {\n expand.expanded = false;\n });\n\n this.directives.forEach((dir) => {\n if (dir === accordion) {\n return;\n }\n\n dir.open.set(false);\n dir.tuiAccordion = false;\n dir.tuiAccordionChange.emit(false);\n });\n }\n\n const expand = this.expands.get(this.directives.toArray().indexOf(accordion));\n\n if (expand) {\n expand.expanded = accordion.open();\n }\n }\n}\n","import {TuiItem} from '@taiga-ui/cdk/directives/item';\nimport {TuiExpand} from '@taiga-ui/experimental/components/expand';\n\nimport {TuiAccordionComponent} from './accordion.component';\nimport {TuiAccordionDirective} from './accordion.directive';\n\nexport const TuiAccordion = [\n TuiAccordionComponent,\n TuiAccordionDirective,\n TuiExpand,\n TuiItem,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-experimental-components-accordion.mjs","sources":["../../../projects/experimental/components/accordion/accordion.directive.ts","../../../projects/experimental/components/accordion/accordion.component.ts","../../../projects/experimental/components/accordion/accordion.ts","../../../projects/experimental/components/accordion/taiga-ui-experimental-components-accordion.ts"],"sourcesContent":["import {\n Directive,\n EventEmitter,\n inject,\n Input,\n type OnChanges,\n Output,\n signal,\n} from '@angular/core';\nimport {tuiDirectiveBinding} from '@taiga-ui/cdk/utils';\nimport {TuiButton, tuiButtonOptionsProvider} from '@taiga-ui/core/components/button';\nimport {tuiAvatarOptionsProvider} from '@taiga-ui/kit/components/avatar';\nimport {TuiChevron} from '@taiga-ui/kit/directives/chevron';\n\nimport {TuiAccordionComponent} from './accordion.component';\n\n@Directive({\n standalone: true,\n selector: 'button[tuiAccordion]',\n providers: [\n tuiAvatarOptionsProvider({size: 's'}),\n tuiButtonOptionsProvider({appearance: 'outline-grayscale'}),\n ],\n hostDirectives: [TuiButton, TuiChevron],\n host: {\n tuiButton: '',\n tuiAccordion: '',\n type: 'button',\n '[class._open]': 'open()',\n '(click)': 'toggle()',\n },\n})\nexport class TuiAccordionDirective implements OnChanges {\n private readonly accordionRef = inject(TuiAccordionComponent);\n\n protected readonly size = tuiDirectiveBinding(\n TuiButton,\n 'size',\n this.accordionRef.size,\n );\n\n @Input()\n public tuiAccordion: boolean | string = '';\n\n @Output()\n public readonly tuiAccordionChange = new EventEmitter<boolean>();\n\n public readonly open = tuiDirectiveBinding(TuiChevron, 'tuiChevron', signal(false));\n\n /** Nearest accordion this trigger belongs to, used to filter out nested ones */\n public readonly accordion = this.accordionRef;\n\n public ngOnChanges(): void {\n this.open.set(!!this.tuiAccordion);\n this.accordionRef.toggle(this);\n }\n\n public toggle(): void {\n this.open.set(!this.open());\n this.tuiAccordion = this.open();\n this.tuiAccordionChange.emit(this.open());\n this.accordionRef.toggle(this);\n }\n}\n","import {\n type AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n DestroyRef,\n inject,\n Input,\n type QueryList,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiGroup, tuiGroupOptionsProvider} from '@taiga-ui/core/directives/group';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {TuiExpand} from '@taiga-ui/experimental/components/expand';\nimport {combineLatest, map, merge, ReplaySubject, withLatestFrom} from 'rxjs';\n\nimport {TuiAccordionDirective} from './accordion.directive';\n\n@Component({\n standalone: true,\n selector: 'tui-accordion',\n template: '<ng-content />',\n styleUrls: ['./accordion.style.less'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n tuiGroupOptionsProvider({\n orientation: 'vertical',\n collapsed: true,\n }),\n ],\n hostDirectives: [TuiGroup],\n host: {\n '[attr.data-size]': 'size()',\n },\n})\nexport class TuiAccordionComponent implements AfterViewInit {\n private readonly destroyRef = inject(DestroyRef);\n private readonly toggle$ = new ReplaySubject<TuiAccordionDirective>(Infinity);\n\n @ContentChildren(TuiExpand)\n public readonly expands: QueryList<TuiExpand> = EMPTY_QUERY;\n\n // Descendants search is required so a trigger wrapped in an arbitrary\n // element (e.g. alongside a custom action button) is still found — but\n // that also picks up triggers belonging to an accordion nested inside\n // this one's tui-expand, so `ownDirectives` filters those back out to\n // keep index-based pairing intact.\n @ContentChildren(TuiAccordionDirective, {descendants: true})\n public readonly directives: QueryList<TuiAccordionDirective> = EMPTY_QUERY;\n\n @Input()\n public closeOthers = true;\n\n public readonly size = signal<TuiSizeL | TuiSizeS>('l');\n\n @Input('size')\n public set sizeSetter(size: TuiSizeL | TuiSizeS) {\n this.size.set(size);\n }\n\n public ngAfterViewInit(): void {\n merge(\n combineLatest([this.directives.changes, this.expands.changes]).pipe(\n withLatestFrom(this.toggle$),\n map(([, accordion]) => accordion),\n ),\n this.toggle$,\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((accordion) => this.expand(accordion));\n }\n\n public toggle(directive: TuiAccordionDirective): void {\n this.toggle$.next(directive);\n }\n\n private get ownDirectives(): TuiAccordionDirective[] {\n return this.directives.filter((dir) => dir.accordion === this);\n }\n\n private expand(accordion: TuiAccordionDirective): void {\n const ownDirectives = this.ownDirectives;\n const expand = this.expands.get(ownDirectives.indexOf(accordion));\n\n if (this.closeOthers && accordion.open()) {\n this.expands\n .filter((x) => x !== expand)\n .forEach((item) => {\n item.expanded = false;\n });\n\n ownDirectives\n .filter((x) => x !== accordion)\n .forEach((dir) => {\n dir.open.set(false);\n dir.tuiAccordion = false;\n dir.tuiAccordionChange.emit(false);\n });\n }\n\n if (expand) {\n expand.expanded = accordion.open();\n }\n }\n}\n","import {TuiItem} from '@taiga-ui/cdk/directives/item';\nimport {TuiExpand} from '@taiga-ui/experimental/components/expand';\n\nimport {TuiAccordionComponent} from './accordion.component';\nimport {TuiAccordionDirective} from './accordion.directive';\n\nexport const TuiAccordion = [\n TuiAccordionComponent,\n TuiAccordionDirective,\n TuiExpand,\n TuiItem,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -137,7 +137,7 @@ class TuiInputPhoneInternational extends TuiControl {
|
|
|
137
137
|
tuiAsControl(TuiInputPhoneInternational),
|
|
138
138
|
tuiFallbackValueProvider(''),
|
|
139
139
|
tuiAutoFocusOptionsProvider({ preventScroll: true }),
|
|
140
|
-
], viewQueries: [{ propertyName: "list", predicate: TuiOptionNew, descendants: true, read: ElementRef }], usesInheritance: true, hostDirectives: [{ directive: i1.MaskitoDirective }, { directive: i2.TuiWithTextfield }], ngImport: i0, template: "<ng-container *tuiTextfieldContent>\n <button\n appearance=\"textfield\"\n tabindex=\"-1\"\n tuiButton\n tuiChevron\n type=\"button\"\n class=\"t-ipi-select\"\n [attr.data-mode]=\"mode()\"\n [class.t-ipi-select_readonly]=\"readOnly()\"\n [disabled]=\"disabled()\"\n [size]=\"size()\"\n [tuiAppearanceFocus]=\"open()\"\n (pointerdown.prevent)=\"interactive() && open.set(!open())\"\n >\n <img\n class=\"t-ipi-flag\"\n [alt]=\"names()?.[code()]\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"code() | tuiFlag\"\n />\n </button>\n</ng-container>\n<ng-container *tuiTextfieldDropdown>\n <div\n *ngIf=\"countrySearch\"\n #element\n class=\"t-ipi-search\"\n >\n <tui-textfield\n [iconStart]=\"icons.search\"\n [tuiTextfieldSize]=\"size() === 's' ? 's' : 'm'\"\n >\n <input\n autocomplete=\"off\"\n tuiTextfield\n type=\"text\"\n [focused]=\"true\"\n [ngModel]=\"search()\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"label()\"\n [tuiAutoFocus]=\"!!element.closest('tui-dropdown-mobile')\"\n (keydown.arrowDown)=\"list.get(0)?.nativeElement?.focus()\"\n (ngModelChange)=\"search.set($event)\"\n />\n </tui-textfield>\n </div>\n\n <tui-data-list class=\"t-ipi-options\">\n <button\n *ngFor=\"let item of filtered()\"\n new\n tuiOption\n type=\"button\"\n [tuiCell]=\"size()\"\n (click)=\"onItemClick(item.iso)\"\n >\n <img\n alt=\"\"\n class=\"t-ipi-flag\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"item.iso | tuiFlag\"\n />\n <span tuiTitle>{{ item.name }}</span>\n <span class=\"t-ipi-code\">{{ item.code }}</span>\n </button>\n </tui-data-list>\n</ng-container>\n", styles: ["[tuiTextfieldV=\"4.
|
|
140
|
+
], viewQueries: [{ propertyName: "list", predicate: TuiOptionNew, descendants: true, read: ElementRef }], usesInheritance: true, hostDirectives: [{ directive: i1.MaskitoDirective }, { directive: i2.TuiWithTextfield }], ngImport: i0, template: "<ng-container *tuiTextfieldContent>\n <button\n appearance=\"textfield\"\n tabindex=\"-1\"\n tuiButton\n tuiChevron\n type=\"button\"\n class=\"t-ipi-select\"\n [attr.data-mode]=\"mode()\"\n [class.t-ipi-select_readonly]=\"readOnly()\"\n [disabled]=\"disabled()\"\n [size]=\"size()\"\n [tuiAppearanceFocus]=\"open()\"\n (pointerdown.prevent)=\"interactive() && open.set(!open())\"\n >\n <img\n class=\"t-ipi-flag\"\n [alt]=\"names()?.[code()]\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"code() | tuiFlag\"\n />\n </button>\n</ng-container>\n<ng-container *tuiTextfieldDropdown>\n <div\n *ngIf=\"countrySearch\"\n #element\n class=\"t-ipi-search\"\n >\n <tui-textfield\n [iconStart]=\"icons.search\"\n [tuiTextfieldSize]=\"size() === 's' ? 's' : 'm'\"\n >\n <input\n autocomplete=\"off\"\n tuiTextfield\n type=\"text\"\n [focused]=\"true\"\n [ngModel]=\"search()\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"label()\"\n [tuiAutoFocus]=\"!!element.closest('tui-dropdown-mobile')\"\n (keydown.arrowDown)=\"list.get(0)?.nativeElement?.focus()\"\n (ngModelChange)=\"search.set($event)\"\n />\n </tui-textfield>\n </div>\n\n <tui-data-list class=\"t-ipi-options\">\n <button\n *ngFor=\"let item of filtered()\"\n new\n tuiOption\n type=\"button\"\n [tuiCell]=\"size()\"\n (click)=\"onItemClick(item.iso)\"\n >\n <img\n alt=\"\"\n class=\"t-ipi-flag\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"item.iso | tuiFlag\"\n />\n <span tuiTitle>{{ item.name }}</span>\n <span class=\"t-ipi-code\">{{ item.code }}</span>\n </button>\n </tui-data-list>\n</ng-container>\n", styles: ["[tuiTextfieldV=\"4.93.0\"] [tuiInputPhoneInternational][tuiInputPhoneInternational]{left:var(--t-offset);border-top-left-radius:0;border-bottom-left-radius:0;inline-size:calc(100% - var(--t-offset))}tui-root:has(tui-dropdown-mobile) [tuiTextfieldV=\"4.93.0\"] [tuiInputPhoneInternational][tuiInputPhoneInternational]{caret-color:transparent}[tuiTextfieldV=\"4.93.0\"] [tuiInputPhoneInternational][tuiInputPhoneInternational]+label{padding-inline-start:var(--t-offset)}[tuiTextfieldV=\"4.93.0\"][data-size=s]{--t-offset: 4.125rem}[tuiTextfieldV=\"4.93.0\"][data-size=s] .t-ipi-flag{margin:0 .1875rem}[tuiTextfieldV=\"4.93.0\"][data-size=m]{--t-offset: 4.875rem}[tuiTextfieldV=\"4.93.0\"][data-size=m] .t-ipi-flag{margin:0 -.1875rem}[tuiTextfieldV=\"4.93.0\"][data-size=l]{--t-offset: 5.25rem}[tuiTextfieldV=\"4.93.0\"][data-size=l] .t-ipi-flag{margin:0 -.1875rem}[tuiTextfieldV=\"4.93.0\"] .t-ipi-select{position:absolute;left:0;border-radius:inherit;border-top-right-radius:0;border-bottom-right-radius:0}[tuiTextfieldV=\"4.93.0\"] .t-ipi-select_readonly{pointer-events:none}.t-ipi-flag{inline-size:1.75rem;block-size:1.75rem;border-radius:100%}.t-ipi-flag_small{inline-size:1.25rem;block-size:1.25rem}.t-ipi-code{color:var(--tui-text-secondary)}.t-ipi-search{position:sticky;top:0;z-index:1;background:var(--tui-background-elevation-3);padding:.375rem .375rem 0}@supports (-webkit-touch-callout: none){.t-ipi-search input:focus{animation:tuiPreventIOSScroll 1ms}}@keyframes tuiPreventIOSScroll{0%{opacity:0}to{opacity:1}}tui-dropdown-mobile .t-ipi-search{background:var(--tui-background-elevation-1)}tui-dropdown-mobile .t-ipi-options:not(:first-child){min-block-size:calc(100 * var(--tui-viewport-vh) - 8.75rem)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TuiAutoFocus, selector: "[tuiAutoFocus]", inputs: ["tuiAutoFocus"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }, { kind: "directive", type: TuiCell, selector: "[tuiCell]:not(ng-template)", inputs: ["tuiCell", "tuiCellHeight"] }, { kind: "directive", type: TuiChevron, selector: "[tuiChevron]", inputs: ["tuiChevron"] }, { kind: "component", type: i4.TuiDataListComponent, selector: "tui-data-list", inputs: ["emptyContent", "size"] }, { kind: "directive", type: i4.TuiOptionNew, selector: "button[tuiOption][new], a[tuiOption][new], label[tuiOption][new]", inputs: ["disabled"] }, { kind: "pipe", type: TuiFlagPipe, name: "tuiFlag" }, { kind: "component", type: i2.TuiTextfieldComponent, selector: "tui-textfield:not([multi])" }, { kind: "directive", type: i2.TuiTextfieldDirective, selector: "input[tuiTextfield]:not([tuiInputCard]):not([tuiInputExpire]):not([tuiInputCVC])" }, { kind: "directive", type: i2.TuiTextfieldOptionsDirective, selector: "[tuiTextfieldAppearance],[tuiTextfieldSize],[tuiTextfieldCleaner]", inputs: ["tuiTextfieldAppearance", "tuiTextfieldSize", "tuiTextfieldCleaner"] }, { kind: "directive", type: i2.TuiTextfieldDropdownDirective, selector: "ng-template[tuiTextfieldDropdown]" }, { kind: "directive", type: TuiTextfieldContent, selector: "ng-template[tuiTextfieldContent]" }, { kind: "directive", type: TuiTitle, selector: "[tuiTitle]", inputs: ["tuiTitle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
141
141
|
}
|
|
142
142
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputPhoneInternational, decorators: [{
|
|
143
143
|
type: Component,
|
|
@@ -166,7 +166,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
166
166
|
'(input)': 'masked.set($event.target.value)',
|
|
167
167
|
'(click)': 'open.set(false)',
|
|
168
168
|
'(beforeinput.capture)': 'onPaste($event)',
|
|
169
|
-
}, template: "<ng-container *tuiTextfieldContent>\n <button\n appearance=\"textfield\"\n tabindex=\"-1\"\n tuiButton\n tuiChevron\n type=\"button\"\n class=\"t-ipi-select\"\n [attr.data-mode]=\"mode()\"\n [class.t-ipi-select_readonly]=\"readOnly()\"\n [disabled]=\"disabled()\"\n [size]=\"size()\"\n [tuiAppearanceFocus]=\"open()\"\n (pointerdown.prevent)=\"interactive() && open.set(!open())\"\n >\n <img\n class=\"t-ipi-flag\"\n [alt]=\"names()?.[code()]\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"code() | tuiFlag\"\n />\n </button>\n</ng-container>\n<ng-container *tuiTextfieldDropdown>\n <div\n *ngIf=\"countrySearch\"\n #element\n class=\"t-ipi-search\"\n >\n <tui-textfield\n [iconStart]=\"icons.search\"\n [tuiTextfieldSize]=\"size() === 's' ? 's' : 'm'\"\n >\n <input\n autocomplete=\"off\"\n tuiTextfield\n type=\"text\"\n [focused]=\"true\"\n [ngModel]=\"search()\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"label()\"\n [tuiAutoFocus]=\"!!element.closest('tui-dropdown-mobile')\"\n (keydown.arrowDown)=\"list.get(0)?.nativeElement?.focus()\"\n (ngModelChange)=\"search.set($event)\"\n />\n </tui-textfield>\n </div>\n\n <tui-data-list class=\"t-ipi-options\">\n <button\n *ngFor=\"let item of filtered()\"\n new\n tuiOption\n type=\"button\"\n [tuiCell]=\"size()\"\n (click)=\"onItemClick(item.iso)\"\n >\n <img\n alt=\"\"\n class=\"t-ipi-flag\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"item.iso | tuiFlag\"\n />\n <span tuiTitle>{{ item.name }}</span>\n <span class=\"t-ipi-code\">{{ item.code }}</span>\n </button>\n </tui-data-list>\n</ng-container>\n", styles: ["[tuiTextfieldV=\"4.
|
|
169
|
+
}, template: "<ng-container *tuiTextfieldContent>\n <button\n appearance=\"textfield\"\n tabindex=\"-1\"\n tuiButton\n tuiChevron\n type=\"button\"\n class=\"t-ipi-select\"\n [attr.data-mode]=\"mode()\"\n [class.t-ipi-select_readonly]=\"readOnly()\"\n [disabled]=\"disabled()\"\n [size]=\"size()\"\n [tuiAppearanceFocus]=\"open()\"\n (pointerdown.prevent)=\"interactive() && open.set(!open())\"\n >\n <img\n class=\"t-ipi-flag\"\n [alt]=\"names()?.[code()]\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"code() | tuiFlag\"\n />\n </button>\n</ng-container>\n<ng-container *tuiTextfieldDropdown>\n <div\n *ngIf=\"countrySearch\"\n #element\n class=\"t-ipi-search\"\n >\n <tui-textfield\n [iconStart]=\"icons.search\"\n [tuiTextfieldSize]=\"size() === 's' ? 's' : 'm'\"\n >\n <input\n autocomplete=\"off\"\n tuiTextfield\n type=\"text\"\n [focused]=\"true\"\n [ngModel]=\"search()\"\n [ngModelOptions]=\"{standalone: true}\"\n [placeholder]=\"label()\"\n [tuiAutoFocus]=\"!!element.closest('tui-dropdown-mobile')\"\n (keydown.arrowDown)=\"list.get(0)?.nativeElement?.focus()\"\n (ngModelChange)=\"search.set($event)\"\n />\n </tui-textfield>\n </div>\n\n <tui-data-list class=\"t-ipi-options\">\n <button\n *ngFor=\"let item of filtered()\"\n new\n tuiOption\n type=\"button\"\n [tuiCell]=\"size()\"\n (click)=\"onItemClick(item.iso)\"\n >\n <img\n alt=\"\"\n class=\"t-ipi-flag\"\n [class.t-ipi-flag_small]=\"size() === 's'\"\n [src]=\"item.iso | tuiFlag\"\n />\n <span tuiTitle>{{ item.name }}</span>\n <span class=\"t-ipi-code\">{{ item.code }}</span>\n </button>\n </tui-data-list>\n</ng-container>\n", styles: ["[tuiTextfieldV=\"4.93.0\"] [tuiInputPhoneInternational][tuiInputPhoneInternational]{left:var(--t-offset);border-top-left-radius:0;border-bottom-left-radius:0;inline-size:calc(100% - var(--t-offset))}tui-root:has(tui-dropdown-mobile) [tuiTextfieldV=\"4.93.0\"] [tuiInputPhoneInternational][tuiInputPhoneInternational]{caret-color:transparent}[tuiTextfieldV=\"4.93.0\"] [tuiInputPhoneInternational][tuiInputPhoneInternational]+label{padding-inline-start:var(--t-offset)}[tuiTextfieldV=\"4.93.0\"][data-size=s]{--t-offset: 4.125rem}[tuiTextfieldV=\"4.93.0\"][data-size=s] .t-ipi-flag{margin:0 .1875rem}[tuiTextfieldV=\"4.93.0\"][data-size=m]{--t-offset: 4.875rem}[tuiTextfieldV=\"4.93.0\"][data-size=m] .t-ipi-flag{margin:0 -.1875rem}[tuiTextfieldV=\"4.93.0\"][data-size=l]{--t-offset: 5.25rem}[tuiTextfieldV=\"4.93.0\"][data-size=l] .t-ipi-flag{margin:0 -.1875rem}[tuiTextfieldV=\"4.93.0\"] .t-ipi-select{position:absolute;left:0;border-radius:inherit;border-top-right-radius:0;border-bottom-right-radius:0}[tuiTextfieldV=\"4.93.0\"] .t-ipi-select_readonly{pointer-events:none}.t-ipi-flag{inline-size:1.75rem;block-size:1.75rem;border-radius:100%}.t-ipi-flag_small{inline-size:1.25rem;block-size:1.25rem}.t-ipi-code{color:var(--tui-text-secondary)}.t-ipi-search{position:sticky;top:0;z-index:1;background:var(--tui-background-elevation-3);padding:.375rem .375rem 0}@supports (-webkit-touch-callout: none){.t-ipi-search input:focus{animation:tuiPreventIOSScroll 1ms}}@keyframes tuiPreventIOSScroll{0%{opacity:0}to{opacity:1}}tui-dropdown-mobile .t-ipi-search{background:var(--tui-background-elevation-1)}tui-dropdown-mobile .t-ipi-options:not(:first-child){min-block-size:calc(100 * var(--tui-viewport-vh) - 8.75rem)}\n"] }]
|
|
170
170
|
}], propDecorators: { list: [{
|
|
171
171
|
type: ViewChildren,
|
|
172
172
|
args: [TuiOptionNew, { read: ElementRef }]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taiga-ui/experimental",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.93.0",
|
|
4
4
|
"description": "A package with Taiga UI experimental components",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
"peerDependencies": {
|
|
14
14
|
"@angular/common": ">=16.0.0",
|
|
15
15
|
"@angular/core": ">=16.0.0",
|
|
16
|
-
"@taiga-ui/addon-commerce": "4.
|
|
17
|
-
"@taiga-ui/cdk": "4.
|
|
18
|
-
"@taiga-ui/core": "4.
|
|
19
|
-
"@taiga-ui/kit": "4.
|
|
20
|
-
"@taiga-ui/layout": "4.
|
|
16
|
+
"@taiga-ui/addon-commerce": "4.93.0",
|
|
17
|
+
"@taiga-ui/cdk": "4.93.0",
|
|
18
|
+
"@taiga-ui/core": "4.93.0",
|
|
19
|
+
"@taiga-ui/kit": "4.93.0",
|
|
20
|
+
"@taiga-ui/layout": "4.93.0",
|
|
21
21
|
"@taiga-ui/polymorpheus": "^4.10.0",
|
|
22
22
|
"rxjs": ">=7.0.0"
|
|
23
23
|
},
|