@taiga-ui/core 5.0.0-rc.2 → 5.0.0-rc.4
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/calendar/calendar-sheet.component.d.ts +8 -15
- package/components/calendar/calendar-spin.component.d.ts +5 -8
- package/components/calendar/calendar-year.component.d.ts +11 -19
- package/components/calendar/calendar.component.d.ts +7 -9
- package/components/checkbox/checkbox.component.d.ts +10 -0
- package/components/checkbox/checkbox.options.d.ts +10 -0
- package/components/checkbox/index.d.ts +2 -0
- package/components/data-list/data-list.component.d.ts +1 -0
- package/components/index.d.ts +3 -0
- package/components/input/input.directive.d.ts +2 -0
- package/components/loader/loader.component.d.ts +0 -2
- package/components/radio/index.d.ts +4 -0
- package/components/radio/radio.component.d.ts +18 -0
- package/components/radio/radio.d.ts +3 -0
- package/components/radio/radio.directive.d.ts +8 -0
- package/components/radio/radio.options.d.ts +7 -0
- package/components/slider/helpers/key-steps.d.ts +27 -0
- package/components/slider/helpers/slider-key-steps.directive.d.ts +32 -0
- package/components/slider/helpers/slider-readonly.directive.d.ts +15 -0
- package/components/slider/helpers/slider-thumb-label.component.d.ts +13 -0
- package/components/slider/index.d.ts +6 -0
- package/components/slider/slider.component.d.ts +22 -0
- package/components/slider/slider.d.ts +5 -0
- package/components/textfield/index.d.ts +0 -1
- package/components/textfield/textfield.component.d.ts +1 -0
- package/directives/items-handlers/items-handlers.validator.d.ts +1 -0
- package/fesm2022/taiga-ui-core-components-button.mjs +2 -2
- package/fesm2022/taiga-ui-core-components-button.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-calendar.mjs +84 -174
- package/fesm2022/taiga-ui-core-components-calendar.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-cell.mjs +2 -2
- package/fesm2022/taiga-ui-core-components-cell.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-checkbox.mjs +37 -0
- package/fesm2022/taiga-ui-core-components-checkbox.mjs.map +1 -0
- package/fesm2022/taiga-ui-core-components-data-list.mjs +10 -4
- package/fesm2022/taiga-ui-core-components-data-list.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-error.mjs +3 -3
- package/fesm2022/taiga-ui-core-components-error.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-icon.mjs +2 -2
- package/fesm2022/taiga-ui-core-components-icon.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-input.mjs +4 -2
- package/fesm2022/taiga-ui-core-components-input.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-label.mjs +3 -3
- package/fesm2022/taiga-ui-core-components-label.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-link.mjs +2 -2
- package/fesm2022/taiga-ui-core-components-link.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-loader.mjs +5 -8
- package/fesm2022/taiga-ui-core-components-loader.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-notification.mjs +2 -2
- package/fesm2022/taiga-ui-core-components-notification.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-radio.mjs +91 -0
- package/fesm2022/taiga-ui-core-components-radio.mjs.map +1 -0
- package/fesm2022/taiga-ui-core-components-root.mjs +2 -2
- package/fesm2022/taiga-ui-core-components-root.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-slider.mjs +337 -0
- package/fesm2022/taiga-ui-core-components-slider.mjs.map +1 -0
- package/fesm2022/taiga-ui-core-components-spin-button.mjs +2 -2
- package/fesm2022/taiga-ui-core-components-spin-button.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-textfield.mjs +20 -21
- package/fesm2022/taiga-ui-core-components-textfield.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components-title.mjs +3 -3
- package/fesm2022/taiga-ui-core-components-title.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-components.mjs +3 -0
- package/fesm2022/taiga-ui-core-components.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-appearance.mjs +3 -3
- package/fesm2022/taiga-ui-core-directives-appearance.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-group.mjs +3 -3
- package/fesm2022/taiga-ui-core-directives-group.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-icons.mjs +3 -3
- package/fesm2022/taiga-ui-core-directives-icons.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-directives-items-handlers.mjs +7 -1
- package/fesm2022/taiga-ui-core-directives-items-handlers.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-portals-alert.mjs +2 -2
- package/fesm2022/taiga-ui-core-portals-alert.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-portals-dialog.mjs +2 -2
- package/fesm2022/taiga-ui-core-portals-dialog.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-portals-dropdown.mjs +167 -115
- package/fesm2022/taiga-ui-core-portals-dropdown.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-portals-hint.mjs +3 -3
- package/fesm2022/taiga-ui-core-portals-hint.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-portals-modal.mjs +2 -2
- package/fesm2022/taiga-ui-core-portals-modal.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-portals-popup.mjs +2 -2
- package/fesm2022/taiga-ui-core-portals-popup.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-tokens.mjs +1 -1
- package/fesm2022/taiga-ui-core-tokens.mjs.map +1 -1
- package/fesm2022/taiga-ui-core-utils-miscellaneous.mjs.map +1 -1
- package/package.json +32 -20
- package/portals/dropdown/dropdown-a11y.directive.d.ts +10 -0
- package/portals/dropdown/dropdown-close.directive.d.ts +3 -3
- package/portals/dropdown/dropdown-open.directive.d.ts +4 -3
- package/portals/dropdown/dropdown-selection.directive.d.ts +1 -0
- package/portals/dropdown/dropdown.d.ts +2 -1
- package/portals/dropdown/dropdown.directive.d.ts +5 -5
- package/portals/dropdown/index.d.ts +1 -0
- package/utils/miscellaneous/font-scaling.d.ts +2 -2
- package/components/textfield/textfield-icon.d.ts +0 -6
- package/styles/components/appearance.less +0 -51
- package/styles/components/button.less +0 -134
- package/styles/components/group.less +0 -172
- package/styles/components/icon.less +0 -83
- package/styles/components/icons.less +0 -79
- package/styles/components/label.less +0 -51
- package/styles/components/link.less +0 -69
- package/styles/components/notification.less +0 -184
- package/styles/components/textfield.less +0 -358
- package/styles/components/title.less +0 -80
- package/styles/mixins/appearance.less +0 -56
- package/styles/mixins/appearance.scss +0 -57
- package/styles/mixins/browsers.less +0 -23
- package/styles/mixins/browsers.scss +0 -23
- package/styles/mixins/date-picker.less +0 -152
- package/styles/mixins/mixins.less +0 -168
- package/styles/mixins/mixins.scss +0 -161
- package/styles/mixins/picker.less +0 -200
- package/styles/mixins/picker.scss +0 -199
- package/styles/mixins/slider.less +0 -67
- package/styles/mixins/slider.scss +0 -67
- package/styles/taiga-ui-fonts.less +0 -4
- package/styles/taiga-ui-local.less +0 -7
- package/styles/taiga-ui-local.scss +0 -6
- package/styles/taiga-ui-theme.less +0 -4
- package/styles/theme/appearance/accent.less +0 -14
- package/styles/theme/appearance/action.less +0 -38
- package/styles/theme/appearance/flat.less +0 -23
- package/styles/theme/appearance/floating.less +0 -21
- package/styles/theme/appearance/glass.less +0 -30
- package/styles/theme/appearance/outline.less +0 -78
- package/styles/theme/appearance/primary.less +0 -48
- package/styles/theme/appearance/secondary.less +0 -77
- package/styles/theme/appearance/status.less +0 -125
- package/styles/theme/appearance/table.less +0 -68
- package/styles/theme/appearance/textfield.less +0 -80
- package/styles/theme/appearance.less +0 -12
- package/styles/theme/palette.less +0 -161
- package/styles/theme/variables.less +0 -42
- package/styles/variables/media.less +0 -23
- package/styles/variables/media.scss +0 -23
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taiga-ui/core",
|
|
3
|
-
"version": "5.0.0-rc.
|
|
3
|
+
"version": "5.0.0-rc.4",
|
|
4
4
|
"description": "Core library for creating Angular components and applications using Taiga UI",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -17,8 +17,26 @@
|
|
|
17
17
|
"url": "https://github.com/taiga-family/taiga-ui"
|
|
18
18
|
},
|
|
19
19
|
"license": "Apache-2.0",
|
|
20
|
+
"peerDependencies": {
|
|
21
|
+
"@angular/common": ">=19.0.0",
|
|
22
|
+
"@angular/core": ">=19.0.0",
|
|
23
|
+
"@angular/forms": ">=19.0.0",
|
|
24
|
+
"@angular/platform-browser": ">=19.0.0",
|
|
25
|
+
"@angular/router": ">=19.0.0",
|
|
26
|
+
"@ng-web-apis/common": "^5.1.0",
|
|
27
|
+
"@ng-web-apis/mutation-observer": "^5.1.0",
|
|
28
|
+
"@ng-web-apis/platform": "^5.1.0",
|
|
29
|
+
"@taiga-ui/cdk": "^5.0.0-rc.4",
|
|
30
|
+
"@taiga-ui/event-plugins": "^5.0.0",
|
|
31
|
+
"@taiga-ui/i18n": "^5.0.0-rc.4",
|
|
32
|
+
"@taiga-ui/polymorpheus": "^5.0.0",
|
|
33
|
+
"@taiga-ui/styles": "^5.0.0-rc.4",
|
|
34
|
+
"rxjs": ">=7.0.0"
|
|
35
|
+
},
|
|
36
|
+
"schematics": "./schematics/collection.json",
|
|
37
|
+
"module": "fesm2022/taiga-ui-core.mjs",
|
|
38
|
+
"typings": "index.d.ts",
|
|
20
39
|
"exports": {
|
|
21
|
-
"./styles/*": "./styles/*",
|
|
22
40
|
"./package.json": {
|
|
23
41
|
"default": "./package.json"
|
|
24
42
|
},
|
|
@@ -74,6 +92,10 @@
|
|
|
74
92
|
"types": "./components/cell/index.d.ts",
|
|
75
93
|
"default": "./fesm2022/taiga-ui-core-components-cell.mjs"
|
|
76
94
|
},
|
|
95
|
+
"./components/checkbox": {
|
|
96
|
+
"types": "./components/checkbox/index.d.ts",
|
|
97
|
+
"default": "./fesm2022/taiga-ui-core-components-checkbox.mjs"
|
|
98
|
+
},
|
|
77
99
|
"./components/data-list": {
|
|
78
100
|
"types": "./components/data-list/index.d.ts",
|
|
79
101
|
"default": "./fesm2022/taiga-ui-core-components-data-list.mjs"
|
|
@@ -110,6 +132,10 @@
|
|
|
110
132
|
"types": "./components/notification/index.d.ts",
|
|
111
133
|
"default": "./fesm2022/taiga-ui-core-components-notification.mjs"
|
|
112
134
|
},
|
|
135
|
+
"./components/radio": {
|
|
136
|
+
"types": "./components/radio/index.d.ts",
|
|
137
|
+
"default": "./fesm2022/taiga-ui-core-components-radio.mjs"
|
|
138
|
+
},
|
|
113
139
|
"./components/root": {
|
|
114
140
|
"types": "./components/root/index.d.ts",
|
|
115
141
|
"default": "./fesm2022/taiga-ui-core-components-root.mjs"
|
|
@@ -118,6 +144,10 @@
|
|
|
118
144
|
"types": "./components/scrollbar/index.d.ts",
|
|
119
145
|
"default": "./fesm2022/taiga-ui-core-components-scrollbar.mjs"
|
|
120
146
|
},
|
|
147
|
+
"./components/slider": {
|
|
148
|
+
"types": "./components/slider/index.d.ts",
|
|
149
|
+
"default": "./fesm2022/taiga-ui-core-components-slider.mjs"
|
|
150
|
+
},
|
|
121
151
|
"./components/spin-button": {
|
|
122
152
|
"types": "./components/spin-button/index.d.ts",
|
|
123
153
|
"default": "./fesm2022/taiga-ui-core-components-spin-button.mjs"
|
|
@@ -199,24 +229,6 @@
|
|
|
199
229
|
"default": "./fesm2022/taiga-ui-core-utils-miscellaneous.mjs"
|
|
200
230
|
}
|
|
201
231
|
},
|
|
202
|
-
"peerDependencies": {
|
|
203
|
-
"@angular/common": ">=19.0.0",
|
|
204
|
-
"@angular/core": ">=19.0.0",
|
|
205
|
-
"@angular/forms": ">=19.0.0",
|
|
206
|
-
"@angular/platform-browser": ">=19.0.0",
|
|
207
|
-
"@angular/router": ">=19.0.0",
|
|
208
|
-
"@ng-web-apis/common": "^5.0.3",
|
|
209
|
-
"@ng-web-apis/mutation-observer": "^5.0.3",
|
|
210
|
-
"@ng-web-apis/platform": "^5.0.3",
|
|
211
|
-
"@taiga-ui/cdk": "^5.0.0-rc.2",
|
|
212
|
-
"@taiga-ui/event-plugins": "^5.0.0",
|
|
213
|
-
"@taiga-ui/i18n": "^5.0.0-rc.2",
|
|
214
|
-
"@taiga-ui/polymorpheus": "^5.0.0",
|
|
215
|
-
"rxjs": ">=7.0.0"
|
|
216
|
-
},
|
|
217
|
-
"schematics": "./schematics/collection.json",
|
|
218
|
-
"module": "fesm2022/taiga-ui-core.mjs",
|
|
219
|
-
"typings": "index.d.ts",
|
|
220
232
|
"sideEffects": false,
|
|
221
233
|
"dependencies": {
|
|
222
234
|
"tslib": ">=2.8.1"
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class TuiDropdownA11y {
|
|
3
|
+
private readonly el;
|
|
4
|
+
private readonly dropdown;
|
|
5
|
+
private readonly open;
|
|
6
|
+
readonly tuiDropdownRole: import("@angular/core").InputSignal<string>;
|
|
7
|
+
protected readonly sync: import("@angular/core").EffectRef;
|
|
8
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownA11y, never>;
|
|
9
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownA11y, "[tuiDropdownA11y]", never, { "tuiDropdownRole": { "alias": "tuiDropdownRole"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
10
|
+
}
|
|
@@ -5,10 +5,10 @@ export declare class TuiDropdownClose {
|
|
|
5
5
|
private readonly open;
|
|
6
6
|
private readonly obscured;
|
|
7
7
|
private readonly activeZone;
|
|
8
|
-
protected readonly tuiDropdownClose: import("@angular/core").OutputRef<boolean | void | (
|
|
9
|
-
readonly currentTarget: Document;
|
|
10
|
-
}) | (FocusEvent & {
|
|
8
|
+
protected readonly tuiDropdownClose: import("@angular/core").OutputRef<boolean | void | (FocusEvent & {
|
|
11
9
|
readonly currentTarget: HTMLElement;
|
|
10
|
+
}) | (KeyboardEvent & {
|
|
11
|
+
readonly currentTarget: Document;
|
|
12
12
|
})>;
|
|
13
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownClose, never>;
|
|
14
14
|
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownClose, never, never, {}, { "tuiDropdownClose": "tuiDropdownClose"; }, never, never, true, never>;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
import * as i1 from "@taiga-ui/cdk/directives/obscured";
|
|
3
|
-
import * as i2 from "./dropdown-
|
|
4
|
-
import * as i3 from "
|
|
3
|
+
import * as i2 from "./dropdown-a11y.directive";
|
|
4
|
+
import * as i3 from "./dropdown-close.directive";
|
|
5
|
+
import * as i4 from "@taiga-ui/cdk/directives/active-zone";
|
|
5
6
|
export declare class TuiDropdownOpen {
|
|
6
7
|
private readonly dropdownHost;
|
|
7
8
|
private readonly directive;
|
|
@@ -25,5 +26,5 @@ export declare class TuiDropdownOpen {
|
|
|
25
26
|
private drive;
|
|
26
27
|
private focusDropdown;
|
|
27
28
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownOpen, never>;
|
|
28
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownOpen, "[tuiDropdown][tuiDropdownAuto],[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]", never, { "enabled": { "alias": "tuiDropdownEnabled"; "required": false; "isSignal": true; }; "open": { "alias": "tuiDropdownOpen"; "required": false; "isSignal": true; }; }, { "open": "tuiDropdownOpenChange"; }, ["dropdownHost"], never, true, [{ directive: typeof i1.TuiObscured; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiDropdownClose; inputs: {}; outputs: { "tuiDropdownClose": "tuiDropdownClose"; }; }, { directive: typeof
|
|
29
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownOpen, "[tuiDropdown][tuiDropdownAuto],[tuiDropdown][tuiDropdownOpen],[tuiDropdown][tuiDropdownOpenChange]", never, { "enabled": { "alias": "tuiDropdownEnabled"; "required": false; "isSignal": true; }; "open": { "alias": "tuiDropdownOpen"; "required": false; "isSignal": true; }; }, { "open": "tuiDropdownOpenChange"; }, ["dropdownHost"], never, true, [{ directive: typeof i1.TuiObscured; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiDropdownA11y; inputs: { "tuiDropdownRole": "tuiDropdownRole"; }; outputs: {}; }, { directive: typeof i3.TuiDropdownClose; inputs: {}; outputs: { "tuiDropdownClose": "tuiDropdownClose"; }; }, { directive: typeof i4.TuiActiveZone; inputs: { "tuiActiveZoneParent": "tuiActiveZoneParent"; }; outputs: { "tuiActiveZoneChange": "tuiActiveZoneChange"; }; }]>;
|
|
29
30
|
}
|
|
@@ -37,6 +37,7 @@ export declare class TuiDropdownSelection extends TuiDriver implements TuiRectAc
|
|
|
37
37
|
* Create an invisible DIV styled exactly like input/textarea element inside directive
|
|
38
38
|
*/
|
|
39
39
|
private initGhost;
|
|
40
|
+
private isCaretVisible;
|
|
40
41
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownSelection, never>;
|
|
41
42
|
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownSelection, "[tuiDropdownSelection]", never, { "tuiDropdownSelection": { "alias": "tuiDropdownSelection"; "required": false; "isSignal": true; }; "tuiDropdownSelectionPosition": { "alias": "tuiDropdownSelectionPosition"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
42
43
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { TuiDropdownComponent } from './dropdown.component';
|
|
2
2
|
import { TuiDropdownDirective } from './dropdown.directive';
|
|
3
3
|
import { TuiDropdownDriverDirective } from './dropdown.driver';
|
|
4
|
+
import { TuiDropdownA11y } from './dropdown-a11y.directive';
|
|
4
5
|
import { TuiDropdownContent } from './dropdown-content.directive';
|
|
5
6
|
import { TuiDropdownContext } from './dropdown-context.directive';
|
|
6
7
|
import { TuiDropdownHover } from './dropdown-hover.directive';
|
|
@@ -10,4 +11,4 @@ import { TuiDropdownOptionsDirective } from './dropdown-options.directive';
|
|
|
10
11
|
import { TuiDropdownPosition } from './dropdown-position.directive';
|
|
11
12
|
import { TuiDropdownPositionSided } from './dropdown-position-sided.directive';
|
|
12
13
|
import { TuiDropdownSelection } from './dropdown-selection.directive';
|
|
13
|
-
export declare const TuiDropdown: readonly [typeof TuiDropdownOptionsDirective, typeof TuiDropdownDriverDirective, typeof TuiDropdownDirective, typeof TuiDropdownComponent, typeof TuiDropdownOpen, typeof TuiDropdownManual, typeof TuiDropdownHover, typeof TuiDropdownContent, typeof TuiDropdownContext, typeof TuiDropdownPosition, typeof TuiDropdownPositionSided, typeof TuiDropdownSelection];
|
|
14
|
+
export declare const TuiDropdown: readonly [typeof TuiDropdownOptionsDirective, typeof TuiDropdownDriverDirective, typeof TuiDropdownDirective, typeof TuiDropdownComponent, typeof TuiDropdownA11y, typeof TuiDropdownOpen, typeof TuiDropdownManual, typeof TuiDropdownHover, typeof TuiDropdownContent, typeof TuiDropdownContext, typeof TuiDropdownPosition, typeof TuiDropdownPositionSided, typeof TuiDropdownSelection];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { type AfterViewChecked, type ComponentRef, type OnDestroy } from '@angular/core';
|
|
1
|
+
import { type AfterViewChecked, type ComponentRef, type OnDestroy, TemplateRef } from '@angular/core';
|
|
2
2
|
import { type TuiContext } from '@taiga-ui/cdk/types';
|
|
3
3
|
import { type TuiRectAccessor, type TuiVehicle } from '@taiga-ui/core/classes';
|
|
4
|
-
import { PolymorpheusComponent, type PolymorpheusContent } from '@taiga-ui/polymorpheus';
|
|
4
|
+
import { PolymorpheusComponent, type PolymorpheusContent, PolymorpheusTemplate } from '@taiga-ui/polymorpheus';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "./dropdown.driver";
|
|
7
7
|
import * as i2 from "./dropdown-position.directive";
|
|
@@ -12,17 +12,17 @@ export declare class TuiDropdownDirective implements AfterViewChecked, OnDestroy
|
|
|
12
12
|
private readonly drivers;
|
|
13
13
|
protected readonly sub: import("rxjs").Subscription;
|
|
14
14
|
protected readonly autoClose: import("@angular/core").EffectRef;
|
|
15
|
+
readonly id: string;
|
|
15
16
|
readonly ref: import("@angular/core").WritableSignal<ComponentRef<unknown> | null>;
|
|
16
17
|
readonly el: HTMLElement;
|
|
17
18
|
readonly type = "dropdown";
|
|
18
19
|
readonly component: PolymorpheusComponent<any>;
|
|
19
|
-
readonly
|
|
20
|
-
readonly content: import("@angular/core").Signal<PolymorpheusContent<TuiContext<() => void>>>;
|
|
20
|
+
readonly content: import("@angular/core").InputSignalWithTransform<string | number | PolymorpheusComponent<unknown> | import("@angular/platform-browser").SafeValue | import("@taiga-ui/polymorpheus").PolymorpheusHandler<TuiContext<() => void>> | PolymorpheusTemplate<"" | Partial<TuiContext<() => void>>> | TemplateRef<Partial<TuiContext<() => void>>> | null | undefined, PolymorpheusContent<TuiContext<() => void>>>;
|
|
21
21
|
get position(): 'absolute' | 'fixed';
|
|
22
22
|
ngAfterViewChecked(): void;
|
|
23
23
|
ngOnDestroy(): void;
|
|
24
24
|
getClientRect(): DOMRect;
|
|
25
25
|
toggle(show: boolean): void;
|
|
26
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<TuiDropdownDirective, never>;
|
|
27
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownDirective, "[tuiDropdown]:not(ng-container):not(ng-template)", ["tuiDropdown"], { "
|
|
27
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TuiDropdownDirective, "[tuiDropdown]:not(ng-container):not(ng-template)", ["tuiDropdown"], { "content": { "alias": "tuiDropdown"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.TuiDropdownDriverDirective; inputs: {}; outputs: {}; }, { directive: typeof i2.TuiDropdownPosition; inputs: {}; outputs: { "tuiDropdownDirectionChange": "tuiDropdownDirectionChange"; }; }]>;
|
|
28
28
|
}
|
|
@@ -4,6 +4,7 @@ export * from './dropdown.component';
|
|
|
4
4
|
export * from './dropdown.directive';
|
|
5
5
|
export * from './dropdown.driver';
|
|
6
6
|
export * from './dropdown.providers';
|
|
7
|
+
export * from './dropdown-a11y.directive';
|
|
7
8
|
export * from './dropdown-close.directive';
|
|
8
9
|
export * from './dropdown-content.directive';
|
|
9
10
|
export * from './dropdown-context.directive';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { InjectionToken, type Provider, type
|
|
2
|
-
export declare const TUI_FONT_OFFSET: InjectionToken<
|
|
1
|
+
import { InjectionToken, type Provider, type Signal } from '@angular/core';
|
|
2
|
+
export declare const TUI_FONT_OFFSET: InjectionToken<Signal<number>>;
|
|
3
3
|
export declare function tuiEnableFontScaling(): Provider;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { type ProviderToken, type Signal } from '@angular/core';
|
|
2
|
-
import { type TuiStringHandler } from '@taiga-ui/cdk/types';
|
|
3
|
-
import { type TuiSizeL, type TuiSizeS } from '@taiga-ui/core/types';
|
|
4
|
-
export declare function tuiTextfieldIcon(token: ProviderToken<{
|
|
5
|
-
icon: TuiStringHandler<TuiSizeL | TuiSizeS>;
|
|
6
|
-
}>): Signal<string>;
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
@import '@taiga-ui/core/styles/taiga-ui-local.less';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @name Appearance
|
|
5
|
-
* @selector [tuiAppearance]
|
|
6
|
-
*
|
|
7
|
-
* @description
|
|
8
|
-
* Base directive to apply different styles to interactive elements
|
|
9
|
-
*
|
|
10
|
-
* @attributes
|
|
11
|
-
* data-appearance — current appearance
|
|
12
|
-
* data-state — manual interactive state override ('active' | 'disabled' | 'hover')
|
|
13
|
-
* data-focus — manual :focus-visible state override
|
|
14
|
-
* data-mode — arbitrary manual mode like 'checked', 'invalid' or 'checked invalid'
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* <button tuiAppearance data-appearance='primary'></button>
|
|
18
|
-
*
|
|
19
|
-
* @see-also
|
|
20
|
-
* Button
|
|
21
|
-
*/
|
|
22
|
-
[tuiAppearance]:where(*&) {
|
|
23
|
-
.transition(all);
|
|
24
|
-
|
|
25
|
-
position: relative;
|
|
26
|
-
appearance: none;
|
|
27
|
-
outline: 0.125rem solid transparent;
|
|
28
|
-
outline-offset: -0.125rem;
|
|
29
|
-
transition-property: color, background-color, opacity, box-shadow, border-color, border-radius, filter;
|
|
30
|
-
|
|
31
|
-
&::before,
|
|
32
|
-
&::after {
|
|
33
|
-
transition-property: none;
|
|
34
|
-
transition-duration: inherit;
|
|
35
|
-
transition-timing-function: ease-in-out;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.appearance-focus({
|
|
39
|
-
outline-color: var(--tui-border-focus);
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
.appearance-disabled({
|
|
43
|
-
cursor: initial;
|
|
44
|
-
opacity: var(--tui-disabled-opacity);
|
|
45
|
-
|
|
46
|
-
&::before,
|
|
47
|
-
&::after {
|
|
48
|
-
cursor: initial;
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
}
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
@import '@taiga-ui/core/styles/taiga-ui-local.less';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @name Button
|
|
5
|
-
* @selector [tuiButton], [tuiIconButton]
|
|
6
|
-
*
|
|
7
|
-
* @description
|
|
8
|
-
* Plain button design, applicable to both links and buttons
|
|
9
|
-
*
|
|
10
|
-
* @attributes
|
|
11
|
-
* data-size — size (default: 'l') ('xs' | 's' | 'm' | 'l')
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* <button tuiButton>Click me</button>
|
|
15
|
-
*
|
|
16
|
-
* @see-also
|
|
17
|
-
* Icons, Appearance, Link
|
|
18
|
-
*/
|
|
19
|
-
[tuiButton]:where(*&),
|
|
20
|
-
[tuiIconButton]:where(*&) {
|
|
21
|
-
--t-size: var(--tui-height-l);
|
|
22
|
-
--t-radius: var(--tui-radius-l);
|
|
23
|
-
--t-gap: 0.25rem;
|
|
24
|
-
--t-padding: 0 1.25rem;
|
|
25
|
-
--t-margin: -0.25rem;
|
|
26
|
-
|
|
27
|
-
.button-base();
|
|
28
|
-
|
|
29
|
-
block-size: var(--t-size);
|
|
30
|
-
justify-content: center;
|
|
31
|
-
border-radius: var(--t-radius);
|
|
32
|
-
padding: var(--t-padding);
|
|
33
|
-
user-select: none;
|
|
34
|
-
cursor: pointer;
|
|
35
|
-
font: var(--tui-font-body-m);
|
|
36
|
-
font-weight: bold;
|
|
37
|
-
|
|
38
|
-
> .t-loader {
|
|
39
|
-
.center-all();
|
|
40
|
-
|
|
41
|
-
.t-text {
|
|
42
|
-
position: absolute;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
&[data-size='xs'] {
|
|
47
|
-
--t-size: var(--tui-height-xs);
|
|
48
|
-
--t-radius: var(--tui-radius-xs);
|
|
49
|
-
--t-gap: 0.125rem;
|
|
50
|
-
--t-padding: 0 0.375rem;
|
|
51
|
-
--t-margin: -0.125rem;
|
|
52
|
-
|
|
53
|
-
font: var(--tui-font-body-s);
|
|
54
|
-
|
|
55
|
-
tui-icon,
|
|
56
|
-
&::before,
|
|
57
|
-
&::after {
|
|
58
|
-
font-size: 1rem;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
&[data-size='s'] {
|
|
63
|
-
--t-size: var(--tui-height-s);
|
|
64
|
-
--t-radius: var(--tui-radius-s);
|
|
65
|
-
--t-gap: 0.125rem;
|
|
66
|
-
--t-padding: 0 0.625rem;
|
|
67
|
-
--t-margin: -0.125rem;
|
|
68
|
-
|
|
69
|
-
font: var(--tui-font-body-s);
|
|
70
|
-
|
|
71
|
-
tui-icon,
|
|
72
|
-
&:not([tuiIconButton][data-appearance='icon'], [tuiIconButton][data-appearance='link'])::before,
|
|
73
|
-
&:not([tuiIconButton][data-appearance='icon'], [tuiIconButton][data-appearance='link'])::after {
|
|
74
|
-
font-size: 1rem;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
&[data-size='m'] {
|
|
79
|
-
--t-size: var(--tui-height-m);
|
|
80
|
-
--t-radius: var(--tui-radius-m);
|
|
81
|
-
--t-gap: 0.125rem;
|
|
82
|
-
--t-padding: 0 1rem;
|
|
83
|
-
--t-margin: -0.375rem;
|
|
84
|
-
|
|
85
|
-
font: var(--tui-font-body-m);
|
|
86
|
-
font-weight: bold;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
&._loading {
|
|
90
|
-
--tui-disabled-opacity: 1;
|
|
91
|
-
|
|
92
|
-
-webkit-text-fill-color: transparent;
|
|
93
|
-
|
|
94
|
-
> *,
|
|
95
|
-
&::before,
|
|
96
|
-
&::after {
|
|
97
|
-
opacity: 0;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
> .t-loader {
|
|
101
|
-
opacity: 1;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
&[tuiButtonVertical] {
|
|
106
|
-
// StackBlitz changes "0rem" to "0" breaking calc
|
|
107
|
-
--t-margin: ~'0rem' !important;
|
|
108
|
-
--t-line-height: 1rem;
|
|
109
|
-
|
|
110
|
-
flex-direction: column;
|
|
111
|
-
flex-shrink: 1;
|
|
112
|
-
block-size: auto;
|
|
113
|
-
padding: 0.75rem;
|
|
114
|
-
gap: 0.375rem;
|
|
115
|
-
min-inline-size: 5rem;
|
|
116
|
-
white-space: pre-line;
|
|
117
|
-
font: var(--tui-font-ui-s);
|
|
118
|
-
|
|
119
|
-
& > * {
|
|
120
|
-
max-block-size: calc(var(--t-line-height) * 2);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
[tuiIconButton]:where(*&) {
|
|
126
|
-
gap: 0;
|
|
127
|
-
inline-size: var(--t-size);
|
|
128
|
-
font-size: 0 !important;
|
|
129
|
-
padding: 0;
|
|
130
|
-
|
|
131
|
-
&&[data-icon-start]::after {
|
|
132
|
-
display: none;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @name Group
|
|
3
|
-
* @selector [tuiGroup]
|
|
4
|
-
*
|
|
5
|
-
* @description
|
|
6
|
-
* A directive to combine children into rounded flex group
|
|
7
|
-
*
|
|
8
|
-
* @attributes
|
|
9
|
-
* data-size — size (default: 'l') ('s' | 'm' | 'l')
|
|
10
|
-
* data-orientation — orientation (default: 'horizontal') ('horizontal' | 'vertical')
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* <div tuiGroup>
|
|
14
|
-
* <button tuiButton>Click me</button>
|
|
15
|
-
* <button tuiButton>Click me</button>
|
|
16
|
-
* <button tuiButton>Click me</button>
|
|
17
|
-
* </div>
|
|
18
|
-
*
|
|
19
|
-
* @see-also
|
|
20
|
-
* Button, Block, Textfield
|
|
21
|
-
*/
|
|
22
|
-
[tuiGroup]:where(*&) {
|
|
23
|
-
position: relative;
|
|
24
|
-
display: flex;
|
|
25
|
-
transform: translate3d(0, 0, 0);
|
|
26
|
-
|
|
27
|
-
--t-group-radius: var(--tui-radius-l);
|
|
28
|
-
--t-group-margin: -1px;
|
|
29
|
-
--t-group-mask: linear-gradient(
|
|
30
|
-
to right,
|
|
31
|
-
rgba(0, 0, 0, 0.5) 1px,
|
|
32
|
-
#000 2px,
|
|
33
|
-
#000 calc(100% - 2px),
|
|
34
|
-
rgba(0, 0, 0, 0.5)
|
|
35
|
-
);
|
|
36
|
-
--t-group-mask-end: linear-gradient(to right, rgba(0, 0, 0, 0.5) 1px, #000 2px);
|
|
37
|
-
--t-group-mask-start: linear-gradient(to right, #000 calc(100% - 2px), rgba(0, 0, 0, 0.5) calc(100% - 1px));
|
|
38
|
-
|
|
39
|
-
& > * {
|
|
40
|
-
z-index: 1;
|
|
41
|
-
flex: 1 1 0;
|
|
42
|
-
min-inline-size: 0;
|
|
43
|
-
mask: var(--t-group-mask);
|
|
44
|
-
mask-clip: no-clip;
|
|
45
|
-
|
|
46
|
-
&:disabled,
|
|
47
|
-
&._disabled {
|
|
48
|
-
z-index: 0;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
&:invalid:not([data-mode]),
|
|
52
|
-
&[data-mode~='invalid'] {
|
|
53
|
-
z-index: 2;
|
|
54
|
-
|
|
55
|
-
--t-group-mask: none;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
&:has(:invalid:not([data-mode])),
|
|
59
|
-
&:has([data-mode~='invalid']) {
|
|
60
|
-
z-index: 2;
|
|
61
|
-
|
|
62
|
-
--t-group-mask: none;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
&:has(:focus-visible) {
|
|
66
|
-
z-index: 3;
|
|
67
|
-
|
|
68
|
-
--t-group-mask: none;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
&:has([data-focus='true']) {
|
|
72
|
-
z-index: 3;
|
|
73
|
-
|
|
74
|
-
--t-group-mask: none;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
&:checked:not([data-mode]),
|
|
78
|
-
&[data-mode~='checked'] {
|
|
79
|
-
z-index: 4;
|
|
80
|
-
|
|
81
|
-
--t-group-mask: none;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
&:has([tuiBlock]:checked) {
|
|
85
|
-
z-index: 4;
|
|
86
|
-
|
|
87
|
-
--t-group-mask: none;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
&:not(:last-child) {
|
|
91
|
-
margin-inline-end: var(--t-group-margin);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
&:nth-child(n) {
|
|
95
|
-
border-radius: 0;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
&:first-child {
|
|
99
|
-
border-radius: var(--t-group-radius) 0 0 var(--t-group-radius);
|
|
100
|
-
mask-image: var(--t-group-mask-start);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
&:last-child {
|
|
104
|
-
border-radius: 0 var(--t-group-radius) var(--t-group-radius) 0;
|
|
105
|
-
mask-image: var(--t-group-mask-end);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
&:only-child {
|
|
109
|
-
border-radius: var(--t-group-radius);
|
|
110
|
-
mask: none;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
[dir='rtl'] &:not([data-orientation='vertical']) > * {
|
|
115
|
-
&:first-child {
|
|
116
|
-
border-radius: 0 var(--t-group-radius) var(--t-group-radius) 0;
|
|
117
|
-
mask-image: var(--t-group-mask-end);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
&:last-child {
|
|
121
|
-
border-radius: var(--t-group-radius) 0 0 var(--t-group-radius);
|
|
122
|
-
mask-image: var(--t-group-mask-start);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
&:only-child {
|
|
126
|
-
border-radius: var(--t-group-radius);
|
|
127
|
-
mask: none;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
&[data-size='s'],
|
|
132
|
-
&[data-size='m'] {
|
|
133
|
-
--t-group-radius: var(--tui-radius-m);
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
&[data-orientation='vertical'] {
|
|
137
|
-
display: inline-flex;
|
|
138
|
-
flex-direction: column;
|
|
139
|
-
|
|
140
|
-
--t-group-mask: linear-gradient(
|
|
141
|
-
to bottom,
|
|
142
|
-
rgba(0, 0, 0, 0.5) 1px,
|
|
143
|
-
#000 2px,
|
|
144
|
-
#000 calc(100% - 2px),
|
|
145
|
-
rgba(0, 0, 0, 0.5)
|
|
146
|
-
);
|
|
147
|
-
--t-group-mask-start: linear-gradient(to bottom, #000 calc(100% - 2px), rgba(0, 0, 0, 0.5) calc(100% - 1px));
|
|
148
|
-
--t-group-mask-end: linear-gradient(to bottom, rgba(0, 0, 0, 0.5) 1px, #000 2px);
|
|
149
|
-
|
|
150
|
-
& > * {
|
|
151
|
-
min-block-size: auto;
|
|
152
|
-
flex: 0 0 auto;
|
|
153
|
-
|
|
154
|
-
&:not(:last-child) {
|
|
155
|
-
margin-inline-end: 0;
|
|
156
|
-
margin-block-end: var(--t-group-margin);
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
&:first-child {
|
|
160
|
-
border-radius: var(--t-group-radius) var(--t-group-radius) 0 0;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
&:last-child {
|
|
164
|
-
border-radius: 0 0 var(--t-group-radius) var(--t-group-radius);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
&:only-child {
|
|
168
|
-
border-radius: var(--t-group-radius);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
@import '@taiga-ui/core/styles/taiga-ui-local.less';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @name Icon
|
|
5
|
-
* @selector tui-icon
|
|
6
|
-
*
|
|
7
|
-
* @description
|
|
8
|
-
* Container for displaying icons colored with CSS (color/background)
|
|
9
|
-
*
|
|
10
|
-
* @vars
|
|
11
|
-
* --t-icon — depending on the data-icon, it can serve as either a mask (`svg`),
|
|
12
|
-
a background (`img`), or content (`font`) for the icon.
|
|
13
|
-
* --t-icon-bg — mask for the background
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* <tui-icon tuiIcons style="--t-icon: url('icon.svg')"></tui-icon>
|
|
17
|
-
*
|
|
18
|
-
* @see-also
|
|
19
|
-
* Icons
|
|
20
|
-
*/
|
|
21
|
-
tui-icon:where(*&) {
|
|
22
|
-
--tui-icon-size: 1em;
|
|
23
|
-
|
|
24
|
-
position: relative;
|
|
25
|
-
display: inline-flex;
|
|
26
|
-
inline-size: 1em;
|
|
27
|
-
block-size: 1em;
|
|
28
|
-
font-size: 1.5rem;
|
|
29
|
-
flex-shrink: 0;
|
|
30
|
-
border: 0 solid transparent;
|
|
31
|
-
vertical-align: middle;
|
|
32
|
-
box-sizing: border-box;
|
|
33
|
-
mask: var(--t-icon-bg) no-repeat center / calc(100% + 10 * var(--tui-stroke-width, 0.125rem)) 100%;
|
|
34
|
-
zoom: ~'calc(100% * (min(max(var(--tui-font-offset) - 10px, 0px), 1px) / 0.8px))';
|
|
35
|
-
|
|
36
|
-
@media @tui-mouse {
|
|
37
|
-
&[data-appearance='icon']:hover {
|
|
38
|
-
color: var(--tui-text-secondary);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
&[data-icon-end] {
|
|
43
|
-
&::before {
|
|
44
|
-
mask-image:
|
|
45
|
-
var(--t-icon-start),
|
|
46
|
-
radial-gradient(circle at bottom 0.1em right 0.1em, transparent calc(0.4em - 0.5px), #000 0.4em);
|
|
47
|
-
mask-composite: intersect;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
&[data-icon-start='img'],
|
|
51
|
-
&[data-icon-start='font'] {
|
|
52
|
-
&::before {
|
|
53
|
-
mask: radial-gradient(circle at bottom 0.1em right 0.1em, transparent calc(0.4em - 0.5px), #000 0.4em);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
&::after {
|
|
58
|
-
.fullsize();
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
&[data-icon-start] {
|
|
63
|
-
&::before {
|
|
64
|
-
.fullsize();
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
&::after {
|
|
68
|
-
transform: translate(36%, 36%);
|
|
69
|
-
|
|
70
|
-
--tui-icon-size: 0.5715em;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
&[data-icon-start='img']::before,
|
|
75
|
-
&[data-icon-end='img']::after {
|
|
76
|
-
zoom: 1;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
&[data-icon-start='font']::before,
|
|
80
|
-
&[data-icon-end='font']::after {
|
|
81
|
-
zoom: 0.667;
|
|
82
|
-
}
|
|
83
|
-
}
|