@star-ng/ui 0.0.0-stage → 0.2.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/LICENSE +21 -0
- package/README.md +162 -2
- package/fesm2022/star-ng-ui-accordion.mjs +376 -0
- package/fesm2022/star-ng-ui-accordion.mjs.map +1 -0
- package/fesm2022/star-ng-ui-autocomplete.mjs +786 -0
- package/fesm2022/star-ng-ui-autocomplete.mjs.map +1 -0
- package/fesm2022/star-ng-ui-avatar.mjs +154 -0
- package/fesm2022/star-ng-ui-avatar.mjs.map +1 -0
- package/fesm2022/star-ng-ui-badge.mjs +153 -0
- package/fesm2022/star-ng-ui-badge.mjs.map +1 -0
- package/fesm2022/star-ng-ui-breadcrumb.mjs +199 -0
- package/fesm2022/star-ng-ui-breadcrumb.mjs.map +1 -0
- package/fesm2022/star-ng-ui-button.mjs +282 -0
- package/fesm2022/star-ng-ui-button.mjs.map +1 -0
- package/fesm2022/star-ng-ui-card.mjs +112 -0
- package/fesm2022/star-ng-ui-card.mjs.map +1 -0
- package/fesm2022/star-ng-ui-chart.mjs +1904 -0
- package/fesm2022/star-ng-ui-chart.mjs.map +1 -0
- package/fesm2022/star-ng-ui-checkbox.mjs +345 -0
- package/fesm2022/star-ng-ui-checkbox.mjs.map +1 -0
- package/fesm2022/star-ng-ui-core.mjs +484 -0
- package/fesm2022/star-ng-ui-core.mjs.map +1 -0
- package/fesm2022/star-ng-ui-data-display.mjs +1870 -0
- package/fesm2022/star-ng-ui-data-display.mjs.map +1 -0
- package/fesm2022/star-ng-ui-date-picker.mjs +2786 -0
- package/fesm2022/star-ng-ui-date-picker.mjs.map +1 -0
- package/fesm2022/star-ng-ui-dialog.mjs +948 -0
- package/fesm2022/star-ng-ui-dialog.mjs.map +1 -0
- package/fesm2022/star-ng-ui-drawer.mjs +158 -0
- package/fesm2022/star-ng-ui-drawer.mjs.map +1 -0
- package/fesm2022/star-ng-ui-editor.mjs +416 -0
- package/fesm2022/star-ng-ui-editor.mjs.map +1 -0
- package/fesm2022/star-ng-ui-field.mjs +378 -0
- package/fesm2022/star-ng-ui-field.mjs.map +1 -0
- package/fesm2022/star-ng-ui-file-upload.mjs +762 -0
- package/fesm2022/star-ng-ui-file-upload.mjs.map +1 -0
- package/fesm2022/star-ng-ui-i18n-de.mjs +179 -0
- package/fesm2022/star-ng-ui-i18n-de.mjs.map +1 -0
- package/fesm2022/star-ng-ui-i18n-es.mjs +179 -0
- package/fesm2022/star-ng-ui-i18n-es.mjs.map +1 -0
- package/fesm2022/star-ng-ui-input-group.mjs +188 -0
- package/fesm2022/star-ng-ui-input-group.mjs.map +1 -0
- package/fesm2022/star-ng-ui-input-mask.mjs +434 -0
- package/fesm2022/star-ng-ui-input-mask.mjs.map +1 -0
- package/fesm2022/star-ng-ui-input-number.mjs +691 -0
- package/fesm2022/star-ng-ui-input-number.mjs.map +1 -0
- package/fesm2022/star-ng-ui-input-otp.mjs +343 -0
- package/fesm2022/star-ng-ui-input-otp.mjs.map +1 -0
- package/fesm2022/star-ng-ui-input-tags.mjs +616 -0
- package/fesm2022/star-ng-ui-input-tags.mjs.map +1 -0
- package/fesm2022/star-ng-ui-knob.mjs +514 -0
- package/fesm2022/star-ng-ui-knob.mjs.map +1 -0
- package/fesm2022/star-ng-ui-layout.mjs +608 -0
- package/fesm2022/star-ng-ui-layout.mjs.map +1 -0
- package/fesm2022/star-ng-ui-listbox.mjs +886 -0
- package/fesm2022/star-ng-ui-listbox.mjs.map +1 -0
- package/fesm2022/star-ng-ui-media.mjs +833 -0
- package/fesm2022/star-ng-ui-media.mjs.map +1 -0
- package/fesm2022/star-ng-ui-menu.mjs +1840 -0
- package/fesm2022/star-ng-ui-menu.mjs.map +1 -0
- package/fesm2022/star-ng-ui-message.mjs +191 -0
- package/fesm2022/star-ng-ui-message.mjs.map +1 -0
- package/fesm2022/star-ng-ui-paginator.mjs +387 -0
- package/fesm2022/star-ng-ui-paginator.mjs.map +1 -0
- package/fesm2022/star-ng-ui-panel.mjs +324 -0
- package/fesm2022/star-ng-ui-panel.mjs.map +1 -0
- package/fesm2022/star-ng-ui-password.mjs +517 -0
- package/fesm2022/star-ng-ui-password.mjs.map +1 -0
- package/fesm2022/star-ng-ui-popover.mjs +241 -0
- package/fesm2022/star-ng-ui-popover.mjs.map +1 -0
- package/fesm2022/star-ng-ui-progress-bar.mjs +183 -0
- package/fesm2022/star-ng-ui-progress-bar.mjs.map +1 -0
- package/fesm2022/star-ng-ui-radio.mjs +411 -0
- package/fesm2022/star-ng-ui-radio.mjs.map +1 -0
- package/fesm2022/star-ng-ui-rating.mjs +211 -0
- package/fesm2022/star-ng-ui-rating.mjs.map +1 -0
- package/fesm2022/star-ng-ui-select-button.mjs +613 -0
- package/fesm2022/star-ng-ui-select-button.mjs.map +1 -0
- package/fesm2022/star-ng-ui-select.mjs +2547 -0
- package/fesm2022/star-ng-ui-select.mjs.map +1 -0
- package/fesm2022/star-ng-ui-skeleton.mjs +160 -0
- package/fesm2022/star-ng-ui-skeleton.mjs.map +1 -0
- package/fesm2022/star-ng-ui-slider.mjs +552 -0
- package/fesm2022/star-ng-ui-slider.mjs.map +1 -0
- package/fesm2022/star-ng-ui-spinner.mjs +148 -0
- package/fesm2022/star-ng-ui-spinner.mjs.map +1 -0
- package/fesm2022/star-ng-ui-stepper.mjs +360 -0
- package/fesm2022/star-ng-ui-stepper.mjs.map +1 -0
- package/fesm2022/star-ng-ui-table.mjs +3531 -0
- package/fesm2022/star-ng-ui-table.mjs.map +1 -0
- package/fesm2022/star-ng-ui-tabs.mjs +464 -0
- package/fesm2022/star-ng-ui-tabs.mjs.map +1 -0
- package/fesm2022/star-ng-ui-tag.mjs +129 -0
- package/fesm2022/star-ng-ui-tag.mjs.map +1 -0
- package/fesm2022/star-ng-ui-theme-switch.mjs +105 -0
- package/fesm2022/star-ng-ui-theme-switch.mjs.map +1 -0
- package/fesm2022/star-ng-ui-theme.mjs +98 -0
- package/fesm2022/star-ng-ui-theme.mjs.map +1 -0
- package/fesm2022/star-ng-ui-toast.mjs +298 -0
- package/fesm2022/star-ng-ui-toast.mjs.map +1 -0
- package/fesm2022/star-ng-ui-toggle-switch.mjs +316 -0
- package/fesm2022/star-ng-ui-toggle-switch.mjs.map +1 -0
- package/fesm2022/star-ng-ui-tooltip.mjs +297 -0
- package/fesm2022/star-ng-ui-tooltip.mjs.map +1 -0
- package/fesm2022/star-ng-ui-transloco.mjs +40 -0
- package/fesm2022/star-ng-ui-transloco.mjs.map +1 -0
- package/fesm2022/star-ng-ui-tree.mjs +1446 -0
- package/fesm2022/star-ng-ui-tree.mjs.map +1 -0
- package/fesm2022/star-ng-ui-utility.mjs +2134 -0
- package/fesm2022/star-ng-ui-utility.mjs.map +1 -0
- package/fesm2022/star-ng-ui.mjs +51 -0
- package/package.json +285 -3
- package/styles/_base.scss +70 -0
- package/styles/_shared.scss +2 -0
- package/styles/_tokens.scss +190 -0
- package/styles/controls/_accordion.scss +75 -0
- package/styles/controls/_autocomplete.scss +44 -0
- package/styles/controls/_avatar.scss +39 -0
- package/styles/controls/_breadcrumb.scss +45 -0
- package/styles/controls/_button.scss +137 -0
- package/styles/controls/_card.scss +38 -0
- package/styles/controls/_chart.scss +214 -0
- package/styles/controls/_chip.scss +51 -0
- package/styles/controls/_choice.scss +153 -0
- package/styles/controls/_data-display.scss +124 -0
- package/styles/controls/_date-picker.scss +300 -0
- package/styles/controls/_dialog.scss +123 -0
- package/styles/controls/_drawer.scss +118 -0
- package/styles/controls/_editor.scss +74 -0
- package/styles/controls/_field.scss +92 -0
- package/styles/controls/_file-upload.scss +136 -0
- package/styles/controls/_input-group.scss +104 -0
- package/styles/controls/_input-mask.scss +46 -0
- package/styles/controls/_input-number.scss +125 -0
- package/styles/controls/_knob.scss +76 -0
- package/styles/controls/_layout.scss +182 -0
- package/styles/controls/_listbox.scss +38 -0
- package/styles/controls/_media.scss +222 -0
- package/styles/controls/_menu.scss +254 -0
- package/styles/controls/_message.scss +48 -0
- package/styles/controls/_org-chart.scss +128 -0
- package/styles/controls/_paginator.scss +59 -0
- package/styles/controls/_panel.scss +83 -0
- package/styles/controls/_popover.scss +40 -0
- package/styles/controls/_progress-bar.scss +74 -0
- package/styles/controls/_select-button.scss +61 -0
- package/styles/controls/_select.scss +216 -0
- package/styles/controls/_skeleton.scss +43 -0
- package/styles/controls/_slider.scss +163 -0
- package/styles/controls/_spinner.scss +34 -0
- package/styles/controls/_stepper.scss +109 -0
- package/styles/controls/_table.scss +523 -0
- package/styles/controls/_tabs.scss +93 -0
- package/styles/controls/_tag.scss +84 -0
- package/styles/controls/_toast.scss +141 -0
- package/styles/controls/_tooltip.scss +14 -0
- package/styles/controls/_tree.scss +113 -0
- package/styles/controls/_utility.scss +654 -0
- package/styles/star-ng.css +5807 -0
- package/styles/star-ng.min.css +1 -0
- package/styles/star-ng.scss +50 -0
- package/theme/star-theme-first-paint.js +1 -0
- package/types/star-ng-ui-accordion.d.ts +82 -0
- package/types/star-ng-ui-autocomplete.d.ts +171 -0
- package/types/star-ng-ui-avatar.d.ts +43 -0
- package/types/star-ng-ui-badge.d.ts +46 -0
- package/types/star-ng-ui-breadcrumb.d.ts +39 -0
- package/types/star-ng-ui-button.d.ts +79 -0
- package/types/star-ng-ui-card.d.ts +29 -0
- package/types/star-ng-ui-chart.d.ts +337 -0
- package/types/star-ng-ui-checkbox.d.ts +92 -0
- package/types/star-ng-ui-core.d.ts +373 -0
- package/types/star-ng-ui-data-display.d.ts +438 -0
- package/types/star-ng-ui-date-picker.d.ts +701 -0
- package/types/star-ng-ui-dialog.d.ts +254 -0
- package/types/star-ng-ui-drawer.d.ts +29 -0
- package/types/star-ng-ui-editor.d.ts +96 -0
- package/types/star-ng-ui-field.d.ts +146 -0
- package/types/star-ng-ui-file-upload.d.ts +192 -0
- package/types/star-ng-ui-i18n-de.d.ts +7 -0
- package/types/star-ng-ui-i18n-es.d.ts +7 -0
- package/types/star-ng-ui-input-group.d.ts +58 -0
- package/types/star-ng-ui-input-mask.d.ts +126 -0
- package/types/star-ng-ui-input-number.d.ts +193 -0
- package/types/star-ng-ui-input-otp.d.ts +86 -0
- package/types/star-ng-ui-input-tags.d.ts +159 -0
- package/types/star-ng-ui-knob.d.ts +121 -0
- package/types/star-ng-ui-layout.d.ts +154 -0
- package/types/star-ng-ui-listbox.d.ts +170 -0
- package/types/star-ng-ui-media.d.ts +161 -0
- package/types/star-ng-ui-menu.d.ts +332 -0
- package/types/star-ng-ui-message.d.ts +52 -0
- package/types/star-ng-ui-paginator.d.ts +85 -0
- package/types/star-ng-ui-panel.d.ts +65 -0
- package/types/star-ng-ui-password.d.ts +129 -0
- package/types/star-ng-ui-popover.d.ts +57 -0
- package/types/star-ng-ui-progress-bar.d.ts +49 -0
- package/types/star-ng-ui-radio.d.ts +116 -0
- package/types/star-ng-ui-rating.d.ts +52 -0
- package/types/star-ng-ui-select-button.d.ts +169 -0
- package/types/star-ng-ui-select.d.ts +563 -0
- package/types/star-ng-ui-skeleton.d.ts +47 -0
- package/types/star-ng-ui-slider.d.ts +145 -0
- package/types/star-ng-ui-spinner.d.ts +29 -0
- package/types/star-ng-ui-stepper.d.ts +89 -0
- package/types/star-ng-ui-table.d.ts +885 -0
- package/types/star-ng-ui-tabs.d.ts +109 -0
- package/types/star-ng-ui-tag.d.ts +35 -0
- package/types/star-ng-ui-theme-switch.d.ts +36 -0
- package/types/star-ng-ui-theme.d.ts +95 -0
- package/types/star-ng-ui-toast.d.ts +84 -0
- package/types/star-ng-ui-toggle-switch.d.ts +81 -0
- package/types/star-ng-ui-tooltip.d.ts +66 -0
- package/types/star-ng-ui-transloco.d.ts +14 -0
- package/types/star-ng-ui-tree.d.ts +343 -0
- package/types/star-ng-ui-utility.d.ts +533 -0
- package/types/star-ng-ui.d.ts +51 -0
|
@@ -0,0 +1,563 @@
|
|
|
1
|
+
import { FormValueControl } from "@angular/forms/signals";
|
|
2
|
+
import { StarOptionKey, StarWindowRow } from "@star-ng/ui/core";
|
|
3
|
+
import { StarMenuItem } from "@star-ng/ui/menu";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import { ElementRef, TemplateRef } from "@angular/core";
|
|
6
|
+
import { ConnectedPosition } from "@angular/cdk/overlay";
|
|
7
|
+
interface Leaf<TOption, TValue> {
|
|
8
|
+
readonly option: TOption;
|
|
9
|
+
readonly value: TValue;
|
|
10
|
+
/** Labels from the top level to the leaf. */
|
|
11
|
+
readonly path: readonly string[];
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Cascade select (PrimeNG `p-cascadeselect`): choose one leaf of nested options, for example
|
|
15
|
+
* country → state → city. The popup is a menu with submenus (CDK Menu: arrow keys, typeahead,
|
|
16
|
+
* Escape). The value is the leaf (`optionValue`, or the whole option).
|
|
17
|
+
*
|
|
18
|
+
* ```html
|
|
19
|
+
* <star-cascade-select [options]="countries" optionLabel="name" optionChildren="children"
|
|
20
|
+
* optionValue="code" [(value)]="city" showPath />
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare class StarCascadeSelect<TOption, TValue = TOption> implements FormValueControl<TValue | null> {
|
|
24
|
+
/** Keeps the CDK direction (overlays and menus) in step with `<html dir>`. */
|
|
25
|
+
private readonly directionSync;
|
|
26
|
+
protected readonly text: import("@star-ng/ui/core").StarUiText;
|
|
27
|
+
protected readonly positions: import("@angular/cdk/overlay").ConnectedPosition[];
|
|
28
|
+
readonly value: import("@angular/core").ModelSignal<TValue | null>;
|
|
29
|
+
readonly options: import("@angular/core").InputSignal<readonly TOption[]>;
|
|
30
|
+
readonly optionLabel: import("@angular/core").InputSignal<StarOptionKey<TOption> | null>;
|
|
31
|
+
/** Value stored in the form, read from the leaf. Omit to store the whole leaf option. */
|
|
32
|
+
readonly optionValue: import("@angular/core").InputSignal<StarOptionKey<TOption> | null>;
|
|
33
|
+
/** Property (or function) with the child options. An option without children is a leaf. */
|
|
34
|
+
readonly optionChildren: import("@angular/core").InputSignal<StarOptionKey<TOption, readonly TOption[] | null | undefined>>;
|
|
35
|
+
readonly optionDisabled: import("@angular/core").InputSignal<StarOptionKey<TOption> | null>;
|
|
36
|
+
readonly compareWith: import("@angular/core").InputSignal<(a: TValue, b: TValue) => boolean>;
|
|
37
|
+
readonly placeholder: import("@angular/core").InputSignal<string | null>;
|
|
38
|
+
/** Show the whole path ("Germany / Bavaria / Munich") instead of the leaf label. */
|
|
39
|
+
readonly showPath: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
40
|
+
readonly showClear: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
41
|
+
readonly size: import("@angular/core").InputSignal<"sm" | "md">;
|
|
42
|
+
readonly ariaLabel: import("@angular/core").InputSignal<string | null>;
|
|
43
|
+
readonly inputId: import("@angular/core").InputSignal<string>;
|
|
44
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
45
|
+
readonly readonly: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
46
|
+
readonly required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
47
|
+
readonly invalid: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
48
|
+
readonly touched: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
49
|
+
readonly touch: import("@angular/core").OutputEmitterRef<void>;
|
|
50
|
+
/** The user chose a leaf. */
|
|
51
|
+
readonly optionSelect: import("@angular/core").OutputEmitterRef<TOption>;
|
|
52
|
+
private childrenOf;
|
|
53
|
+
private labelOf;
|
|
54
|
+
/** Every leaf with its path, in display order. */
|
|
55
|
+
private readonly leaves;
|
|
56
|
+
protected readonly selected: import("@angular/core").Signal<Leaf<TOption, TValue> | null>;
|
|
57
|
+
/** The options as menu items: a parent opens a submenu, a leaf sets the value. */
|
|
58
|
+
protected readonly menuItems: import("@angular/core").Signal<readonly StarMenuItem[]>;
|
|
59
|
+
/**
|
|
60
|
+
* Accessible name of the trigger button: the label and the text on the button, so the visible
|
|
61
|
+
* text is part of the name (WCAG 2.5.3). `null` without `ariaLabel`: a `star-field` label then
|
|
62
|
+
* names the button.
|
|
63
|
+
*/
|
|
64
|
+
protected readonly triggerName: import("@angular/core").Signal<string | null>;
|
|
65
|
+
protected display(leaf: Leaf<TOption, TValue>): string;
|
|
66
|
+
private choose;
|
|
67
|
+
clear(): void;
|
|
68
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StarCascadeSelect<any, any>, never>;
|
|
69
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<StarCascadeSelect<any, any>, "star-cascade-select", never, {
|
|
70
|
+
"value": {
|
|
71
|
+
"alias": "value";
|
|
72
|
+
"required": false;
|
|
73
|
+
"isSignal": true;
|
|
74
|
+
};
|
|
75
|
+
"options": {
|
|
76
|
+
"alias": "options";
|
|
77
|
+
"required": false;
|
|
78
|
+
"isSignal": true;
|
|
79
|
+
};
|
|
80
|
+
"optionLabel": {
|
|
81
|
+
"alias": "optionLabel";
|
|
82
|
+
"required": false;
|
|
83
|
+
"isSignal": true;
|
|
84
|
+
};
|
|
85
|
+
"optionValue": {
|
|
86
|
+
"alias": "optionValue";
|
|
87
|
+
"required": false;
|
|
88
|
+
"isSignal": true;
|
|
89
|
+
};
|
|
90
|
+
"optionChildren": {
|
|
91
|
+
"alias": "optionChildren";
|
|
92
|
+
"required": false;
|
|
93
|
+
"isSignal": true;
|
|
94
|
+
};
|
|
95
|
+
"optionDisabled": {
|
|
96
|
+
"alias": "optionDisabled";
|
|
97
|
+
"required": false;
|
|
98
|
+
"isSignal": true;
|
|
99
|
+
};
|
|
100
|
+
"compareWith": {
|
|
101
|
+
"alias": "compareWith";
|
|
102
|
+
"required": false;
|
|
103
|
+
"isSignal": true;
|
|
104
|
+
};
|
|
105
|
+
"placeholder": {
|
|
106
|
+
"alias": "placeholder";
|
|
107
|
+
"required": false;
|
|
108
|
+
"isSignal": true;
|
|
109
|
+
};
|
|
110
|
+
"showPath": {
|
|
111
|
+
"alias": "showPath";
|
|
112
|
+
"required": false;
|
|
113
|
+
"isSignal": true;
|
|
114
|
+
};
|
|
115
|
+
"showClear": {
|
|
116
|
+
"alias": "showClear";
|
|
117
|
+
"required": false;
|
|
118
|
+
"isSignal": true;
|
|
119
|
+
};
|
|
120
|
+
"size": {
|
|
121
|
+
"alias": "size";
|
|
122
|
+
"required": false;
|
|
123
|
+
"isSignal": true;
|
|
124
|
+
};
|
|
125
|
+
"ariaLabel": {
|
|
126
|
+
"alias": "ariaLabel";
|
|
127
|
+
"required": false;
|
|
128
|
+
"isSignal": true;
|
|
129
|
+
};
|
|
130
|
+
"inputId": {
|
|
131
|
+
"alias": "inputId";
|
|
132
|
+
"required": false;
|
|
133
|
+
"isSignal": true;
|
|
134
|
+
};
|
|
135
|
+
"disabled": {
|
|
136
|
+
"alias": "disabled";
|
|
137
|
+
"required": false;
|
|
138
|
+
"isSignal": true;
|
|
139
|
+
};
|
|
140
|
+
"readonly": {
|
|
141
|
+
"alias": "readonly";
|
|
142
|
+
"required": false;
|
|
143
|
+
"isSignal": true;
|
|
144
|
+
};
|
|
145
|
+
"required": {
|
|
146
|
+
"alias": "required";
|
|
147
|
+
"required": false;
|
|
148
|
+
"isSignal": true;
|
|
149
|
+
};
|
|
150
|
+
"invalid": {
|
|
151
|
+
"alias": "invalid";
|
|
152
|
+
"required": false;
|
|
153
|
+
"isSignal": true;
|
|
154
|
+
};
|
|
155
|
+
"touched": {
|
|
156
|
+
"alias": "touched";
|
|
157
|
+
"required": false;
|
|
158
|
+
"isSignal": true;
|
|
159
|
+
};
|
|
160
|
+
}, {
|
|
161
|
+
"value": "valueChange";
|
|
162
|
+
"touch": "touch";
|
|
163
|
+
"optionSelect": "optionSelect";
|
|
164
|
+
}, never, never, true, never>;
|
|
165
|
+
}
|
|
166
|
+
/** Context of the custom option template: `<ng-template starOption let-option let-selected="selected">`. */
|
|
167
|
+
export interface StarOptionContext<T> {
|
|
168
|
+
readonly $implicit: T;
|
|
169
|
+
readonly selected: boolean;
|
|
170
|
+
readonly index: number;
|
|
171
|
+
}
|
|
172
|
+
/** Custom option row template for `star-select` and `star-multi-select`. */
|
|
173
|
+
export declare class StarOptionTemplate<T = unknown> {
|
|
174
|
+
/** Optional: pass the options array to type `let-option` in strict templates. */
|
|
175
|
+
readonly starOptionOf: import("@angular/core").InputSignal<readonly T[] | null>;
|
|
176
|
+
readonly template: TemplateRef<StarOptionContext<T>>;
|
|
177
|
+
static ngTemplateContextGuard<T>(_dir: StarOptionTemplate<T>, _ctx: unknown): _ctx is StarOptionContext<T>;
|
|
178
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StarOptionTemplate<any>, never>;
|
|
179
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<StarOptionTemplate<any>, "ng-template[starOption]", never, {
|
|
180
|
+
"starOptionOf": {
|
|
181
|
+
"alias": "starOptionOf";
|
|
182
|
+
"required": false;
|
|
183
|
+
"isSignal": true;
|
|
184
|
+
};
|
|
185
|
+
}, {}, never, never, true, never>;
|
|
186
|
+
}
|
|
187
|
+
/** One rendered line of the option list: a group heading or an option. */
|
|
188
|
+
export type StarListRow<T> = StarWindowRow<T>;
|
|
189
|
+
/**
|
|
190
|
+
* Shared state and keyboard model of the dropdown list controls (WAI-ARIA combobox +
|
|
191
|
+
* listbox with `aria-activedescendant`). Subclasses add the selection model.
|
|
192
|
+
*/
|
|
193
|
+
export declare abstract class StarOptionListBase<TOption, TValue> {
|
|
194
|
+
/** Keeps the CDK direction (overlays and menus) in step with `<html dir>`. */
|
|
195
|
+
private readonly directionSync;
|
|
196
|
+
protected readonly text: import("@star-ng/ui/core").StarUiText;
|
|
197
|
+
private readonly ids;
|
|
198
|
+
private readonly document;
|
|
199
|
+
private readonly injector;
|
|
200
|
+
readonly options: import("@angular/core").InputSignal<readonly TOption[]>;
|
|
201
|
+
readonly optionLabel: import("@angular/core").InputSignal<StarOptionKey<TOption> | null>;
|
|
202
|
+
/** Value stored in the form. Omit to store the whole option. */
|
|
203
|
+
readonly optionValue: import("@angular/core").InputSignal<StarOptionKey<TOption> | null>;
|
|
204
|
+
readonly optionDisabled: import("@angular/core").InputSignal<StarOptionKey<TOption> | null>;
|
|
205
|
+
/** Equality for values (default `Object.is`). Use for object values from the server. */
|
|
206
|
+
readonly compareWith: import("@angular/core").InputSignal<(a: TValue, b: TValue) => boolean>;
|
|
207
|
+
/**
|
|
208
|
+
* Group heading of an option (property name or function). Options with the same heading
|
|
209
|
+
* show together under it, in the order in which the headings first appear.
|
|
210
|
+
*/
|
|
211
|
+
readonly optionGroup: import("@angular/core").InputSignal<StarOptionKey<TOption> | null>;
|
|
212
|
+
/**
|
|
213
|
+
* Renders only the lines in view, for long option lists. Every line has the height
|
|
214
|
+
* `virtualItemSize` and option text stays on one line. Keys and type-ahead work over all
|
|
215
|
+
* options, also those that are not in the DOM. Page up and Page down move by the lines in view.
|
|
216
|
+
* Each option has `aria-setsize` and `aria-posinset` for the whole list, and
|
|
217
|
+
* `aria-activedescendant` only names an option that is in the DOM.
|
|
218
|
+
*/
|
|
219
|
+
readonly virtualScroll: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
220
|
+
/** Line height in pixels with `virtualScroll`. */
|
|
221
|
+
readonly virtualItemSize: import("@angular/core").InputSignal<number>;
|
|
222
|
+
readonly placeholder: import("@angular/core").InputSignal<string | null>;
|
|
223
|
+
readonly filter: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
224
|
+
readonly filterPlaceholder: import("@angular/core").InputSignal<string | null>;
|
|
225
|
+
readonly showClear: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
226
|
+
readonly loading: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
227
|
+
readonly emptyMessage: import("@angular/core").InputSignal<string | null>;
|
|
228
|
+
readonly scrollHeight: import("@angular/core").InputSignal<string>;
|
|
229
|
+
readonly size: import("@angular/core").InputSignal<"sm" | "md">;
|
|
230
|
+
readonly ariaLabel: import("@angular/core").InputSignal<string | null>;
|
|
231
|
+
readonly ariaLabelledBy: import("@angular/core").InputSignal<string | null>;
|
|
232
|
+
readonly inputId: import("@angular/core").InputSignal<string>;
|
|
233
|
+
readonly disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
234
|
+
readonly readonly: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
235
|
+
readonly required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
236
|
+
readonly invalid: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
237
|
+
readonly touched: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
|
|
238
|
+
readonly name: import("@angular/core").InputSignal<string>;
|
|
239
|
+
readonly touch: import("@angular/core").OutputEmitterRef<void>;
|
|
240
|
+
readonly opened: import("@angular/core").OutputEmitterRef<void>;
|
|
241
|
+
readonly closed: import("@angular/core").OutputEmitterRef<void>;
|
|
242
|
+
readonly filterChange: import("@angular/core").OutputEmitterRef<string>;
|
|
243
|
+
protected readonly optionTemplate: import("@angular/core").Signal<StarOptionTemplate<any> | undefined>;
|
|
244
|
+
protected readonly trigger: import("@angular/core").Signal<ElementRef<HTMLElement>>;
|
|
245
|
+
private readonly filterInput;
|
|
246
|
+
protected readonly positions: ConnectedPosition[];
|
|
247
|
+
protected readonly listId: string;
|
|
248
|
+
protected readonly open: import("@angular/core").WritableSignal<boolean>;
|
|
249
|
+
protected readonly filterValue: import("@angular/core").WritableSignal<string>;
|
|
250
|
+
protected readonly activeIndex: import("@angular/core").WritableSignal<number>;
|
|
251
|
+
protected readonly showInvalid: import("@angular/core").Signal<boolean>;
|
|
252
|
+
protected readonly interactive: import("@angular/core").Signal<boolean>;
|
|
253
|
+
protected readonly visibleOptions: import("@angular/core").Signal<readonly TOption[]>;
|
|
254
|
+
/** With `optionGroup`: keeps each group together, in the order the groups first appear. */
|
|
255
|
+
protected groupedOrder(options: readonly TOption[]): readonly TOption[];
|
|
256
|
+
/** Group headings and options in display order, and the row of each option. */
|
|
257
|
+
protected readonly layout: import("@angular/core").Signal<import("@star-ng/ui/core").StarWindowLayout<TOption>>;
|
|
258
|
+
/** Group headings and options, in display order. */
|
|
259
|
+
protected readonly rows: import("@angular/core").Signal<readonly StarListRow<TOption>[]>;
|
|
260
|
+
private readonly listScrollTop;
|
|
261
|
+
private readonly listHeight;
|
|
262
|
+
/** First and last rendered line, and the heights of the lines left out. */
|
|
263
|
+
protected readonly virtualWindow: import("@angular/core").Signal<{
|
|
264
|
+
start: number;
|
|
265
|
+
end: number;
|
|
266
|
+
before: number;
|
|
267
|
+
after: number;
|
|
268
|
+
}>;
|
|
269
|
+
protected readonly renderedRows: import("@angular/core").Signal<readonly StarListRow<TOption>[]>;
|
|
270
|
+
protected onListScroll(event: Event): void;
|
|
271
|
+
/** `aria-activedescendant` only names an option that is in the DOM. */
|
|
272
|
+
protected readonly activeId: import("@angular/core").Signal<string | null>;
|
|
273
|
+
/** The heading of the group, only while its row is in the DOM (the id must exist). */
|
|
274
|
+
protected describedBy(row: Extract<StarListRow<TOption>, {
|
|
275
|
+
kind: 'option';
|
|
276
|
+
}>): string | null;
|
|
277
|
+
protected readonly emptyText: import("@angular/core").Signal<string>;
|
|
278
|
+
private typeahead;
|
|
279
|
+
private typeaheadTimer;
|
|
280
|
+
constructor();
|
|
281
|
+
/** True when the option is part of the current value. */
|
|
282
|
+
protected abstract isSelected(option: TOption): boolean;
|
|
283
|
+
/** Applies the user's choice of an option. */
|
|
284
|
+
protected abstract choose(option: TOption): void;
|
|
285
|
+
/** Index to highlight when the panel opens. */
|
|
286
|
+
protected abstract initialActiveIndex(): number;
|
|
287
|
+
/** Whether choosing an option closes the panel. */
|
|
288
|
+
protected abstract readonly closeOnChoose: boolean;
|
|
289
|
+
labelOf(option: TOption): string;
|
|
290
|
+
protected groupOf(option: TOption): string;
|
|
291
|
+
protected valueOf(option: TOption): TValue;
|
|
292
|
+
protected isDisabled(option: TOption): boolean;
|
|
293
|
+
protected equals(a: TValue, b: TValue): boolean;
|
|
294
|
+
protected optionId(index: number): string;
|
|
295
|
+
protected optionContext(option: TOption, index: number): StarOptionContext<TOption>;
|
|
296
|
+
openPanel(): void;
|
|
297
|
+
closePanel(focusTrigger?: boolean): void;
|
|
298
|
+
protected toggle(): void;
|
|
299
|
+
focus(options?: FocusOptions): void;
|
|
300
|
+
protected onPanelAttached(): void;
|
|
301
|
+
protected onOutsideClick(event: MouseEvent): void;
|
|
302
|
+
/** Keeps focus on the trigger (or filter) while the user clicks inside the panel. */
|
|
303
|
+
protected onPanelMousedown(event: MouseEvent): void;
|
|
304
|
+
protected onTriggerBlur(): void;
|
|
305
|
+
protected onFilterInput(value: string): void;
|
|
306
|
+
/**
|
|
307
|
+
* Shows the list from its top. The window and the scroll position of the element change
|
|
308
|
+
* together: a new list that is still long would else keep the old position of the element
|
|
309
|
+
* while the window draws its first lines.
|
|
310
|
+
*/
|
|
311
|
+
protected resetScroll(): void;
|
|
312
|
+
protected onOptionClick(option: TOption, index: number): void;
|
|
313
|
+
/** Keyboard model for both the trigger and the filter input. */
|
|
314
|
+
protected onKeydown(event: KeyboardEvent): void;
|
|
315
|
+
private chooseActive;
|
|
316
|
+
private moveActive;
|
|
317
|
+
/** Page up / Page down: moves the active option by the lines in view, over all options. */
|
|
318
|
+
private movePage;
|
|
319
|
+
protected firstEnabledFrom(start: number, step: 1 | -1): number;
|
|
320
|
+
/** Type a letter to jump to the next option whose label starts with the typed text. */
|
|
321
|
+
private runTypeahead;
|
|
322
|
+
/** The list element in the panel (the panel is outside the host, in the overlay). */
|
|
323
|
+
private listElement;
|
|
324
|
+
/**
|
|
325
|
+
* Moves the list element to the offset of the window. A list that has just opened may not be
|
|
326
|
+
* able to take it yet: it may be too short until its window is drawn, or not laid out until
|
|
327
|
+
* the popover shows. The browser then keeps the old offset and sends no scroll event, so the
|
|
328
|
+
* window would draw lines that the element does not show. Try again for some frames, until the
|
|
329
|
+
* element is there or the user scrolls.
|
|
330
|
+
*/
|
|
331
|
+
private applyScroll;
|
|
332
|
+
private scrollActiveIntoView;
|
|
333
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StarOptionListBase<any, any>, never>;
|
|
334
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<StarOptionListBase<any, any>, never, never, {
|
|
335
|
+
"options": {
|
|
336
|
+
"alias": "options";
|
|
337
|
+
"required": false;
|
|
338
|
+
"isSignal": true;
|
|
339
|
+
};
|
|
340
|
+
"optionLabel": {
|
|
341
|
+
"alias": "optionLabel";
|
|
342
|
+
"required": false;
|
|
343
|
+
"isSignal": true;
|
|
344
|
+
};
|
|
345
|
+
"optionValue": {
|
|
346
|
+
"alias": "optionValue";
|
|
347
|
+
"required": false;
|
|
348
|
+
"isSignal": true;
|
|
349
|
+
};
|
|
350
|
+
"optionDisabled": {
|
|
351
|
+
"alias": "optionDisabled";
|
|
352
|
+
"required": false;
|
|
353
|
+
"isSignal": true;
|
|
354
|
+
};
|
|
355
|
+
"compareWith": {
|
|
356
|
+
"alias": "compareWith";
|
|
357
|
+
"required": false;
|
|
358
|
+
"isSignal": true;
|
|
359
|
+
};
|
|
360
|
+
"optionGroup": {
|
|
361
|
+
"alias": "optionGroup";
|
|
362
|
+
"required": false;
|
|
363
|
+
"isSignal": true;
|
|
364
|
+
};
|
|
365
|
+
"virtualScroll": {
|
|
366
|
+
"alias": "virtualScroll";
|
|
367
|
+
"required": false;
|
|
368
|
+
"isSignal": true;
|
|
369
|
+
};
|
|
370
|
+
"virtualItemSize": {
|
|
371
|
+
"alias": "virtualItemSize";
|
|
372
|
+
"required": false;
|
|
373
|
+
"isSignal": true;
|
|
374
|
+
};
|
|
375
|
+
"placeholder": {
|
|
376
|
+
"alias": "placeholder";
|
|
377
|
+
"required": false;
|
|
378
|
+
"isSignal": true;
|
|
379
|
+
};
|
|
380
|
+
"filter": {
|
|
381
|
+
"alias": "filter";
|
|
382
|
+
"required": false;
|
|
383
|
+
"isSignal": true;
|
|
384
|
+
};
|
|
385
|
+
"filterPlaceholder": {
|
|
386
|
+
"alias": "filterPlaceholder";
|
|
387
|
+
"required": false;
|
|
388
|
+
"isSignal": true;
|
|
389
|
+
};
|
|
390
|
+
"showClear": {
|
|
391
|
+
"alias": "showClear";
|
|
392
|
+
"required": false;
|
|
393
|
+
"isSignal": true;
|
|
394
|
+
};
|
|
395
|
+
"loading": {
|
|
396
|
+
"alias": "loading";
|
|
397
|
+
"required": false;
|
|
398
|
+
"isSignal": true;
|
|
399
|
+
};
|
|
400
|
+
"emptyMessage": {
|
|
401
|
+
"alias": "emptyMessage";
|
|
402
|
+
"required": false;
|
|
403
|
+
"isSignal": true;
|
|
404
|
+
};
|
|
405
|
+
"scrollHeight": {
|
|
406
|
+
"alias": "scrollHeight";
|
|
407
|
+
"required": false;
|
|
408
|
+
"isSignal": true;
|
|
409
|
+
};
|
|
410
|
+
"size": {
|
|
411
|
+
"alias": "size";
|
|
412
|
+
"required": false;
|
|
413
|
+
"isSignal": true;
|
|
414
|
+
};
|
|
415
|
+
"ariaLabel": {
|
|
416
|
+
"alias": "ariaLabel";
|
|
417
|
+
"required": false;
|
|
418
|
+
"isSignal": true;
|
|
419
|
+
};
|
|
420
|
+
"ariaLabelledBy": {
|
|
421
|
+
"alias": "ariaLabelledBy";
|
|
422
|
+
"required": false;
|
|
423
|
+
"isSignal": true;
|
|
424
|
+
};
|
|
425
|
+
"inputId": {
|
|
426
|
+
"alias": "inputId";
|
|
427
|
+
"required": false;
|
|
428
|
+
"isSignal": true;
|
|
429
|
+
};
|
|
430
|
+
"disabled": {
|
|
431
|
+
"alias": "disabled";
|
|
432
|
+
"required": false;
|
|
433
|
+
"isSignal": true;
|
|
434
|
+
};
|
|
435
|
+
"readonly": {
|
|
436
|
+
"alias": "readonly";
|
|
437
|
+
"required": false;
|
|
438
|
+
"isSignal": true;
|
|
439
|
+
};
|
|
440
|
+
"required": {
|
|
441
|
+
"alias": "required";
|
|
442
|
+
"required": false;
|
|
443
|
+
"isSignal": true;
|
|
444
|
+
};
|
|
445
|
+
"invalid": {
|
|
446
|
+
"alias": "invalid";
|
|
447
|
+
"required": false;
|
|
448
|
+
"isSignal": true;
|
|
449
|
+
};
|
|
450
|
+
"touched": {
|
|
451
|
+
"alias": "touched";
|
|
452
|
+
"required": false;
|
|
453
|
+
"isSignal": true;
|
|
454
|
+
};
|
|
455
|
+
"name": {
|
|
456
|
+
"alias": "name";
|
|
457
|
+
"required": false;
|
|
458
|
+
"isSignal": true;
|
|
459
|
+
};
|
|
460
|
+
}, {
|
|
461
|
+
"touch": "touch";
|
|
462
|
+
"opened": "opened";
|
|
463
|
+
"closed": "closed";
|
|
464
|
+
"filterChange": "filterChange";
|
|
465
|
+
}, ["optionTemplate"], never, true, never>;
|
|
466
|
+
}
|
|
467
|
+
/**
|
|
468
|
+
* Multiple-choice dropdown (PrimeNG `p-multiselect`): checkbox list, "select all", filter,
|
|
469
|
+
* chip or comma display, `maxSelectedLabels`, `selectionLimit` and clear. Same keyboard model
|
|
470
|
+
* as `star-select`; Enter / Space toggle the active option and keep the panel open.
|
|
471
|
+
*
|
|
472
|
+
* `<star-multi-select [options]="tags" optionLabel="name" optionValue="id" [(value)]="ids" display="chip" filter />`
|
|
473
|
+
*/
|
|
474
|
+
export declare class StarMultiSelect<TOption = unknown, TValue = TOption> extends StarOptionListBase<TOption, TValue> implements FormValueControl<readonly TValue[]> {
|
|
475
|
+
readonly value: import("@angular/core").ModelSignal<readonly TValue[]>;
|
|
476
|
+
/** `comma`: "A, B, C". `chip`: removable chips. */
|
|
477
|
+
readonly display: import("@angular/core").InputSignal<"comma" | "chip">;
|
|
478
|
+
/** Above this count the trigger shows "{n} items selected". */
|
|
479
|
+
readonly maxSelectedLabels: import("@angular/core").InputSignal<number>;
|
|
480
|
+
/** Maximum number of selected items (0 = no limit). Hides "select all". */
|
|
481
|
+
readonly selectionLimit: import("@angular/core").InputSignal<number>;
|
|
482
|
+
readonly showToggleAll: import("@angular/core").InputSignal<boolean>;
|
|
483
|
+
protected readonly closeOnChoose = false;
|
|
484
|
+
protected readonly selectedOptions: import("@angular/core").Signal<TOption[]>;
|
|
485
|
+
protected readonly collapsed: import("@angular/core").Signal<boolean>;
|
|
486
|
+
protected readonly selectedLabels: import("@angular/core").Signal<string>;
|
|
487
|
+
private readonly selectableVisible;
|
|
488
|
+
/** `true`, `false` or `'mixed'` for the "select all" box (over visible, enabled options). */
|
|
489
|
+
protected readonly allState: import("@angular/core").Signal<boolean | "mixed">;
|
|
490
|
+
/**
|
|
491
|
+
* The chosen values in a `Set`, for the default `compareWith`. A lookup then costs one step and
|
|
492
|
+
* not one scan of the value: with 10,000 chosen options a scan per option took seconds.
|
|
493
|
+
*/
|
|
494
|
+
private readonly chosenSet;
|
|
495
|
+
protected isSelected(option: TOption): boolean;
|
|
496
|
+
protected choose(option: TOption): void;
|
|
497
|
+
protected initialActiveIndex(): number;
|
|
498
|
+
remove(option: TOption): void;
|
|
499
|
+
protected toggleAll(): void;
|
|
500
|
+
clear(): void;
|
|
501
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StarMultiSelect<any, any>, never>;
|
|
502
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<StarMultiSelect<any, any>, "star-multi-select", never, {
|
|
503
|
+
"value": {
|
|
504
|
+
"alias": "value";
|
|
505
|
+
"required": false;
|
|
506
|
+
"isSignal": true;
|
|
507
|
+
};
|
|
508
|
+
"display": {
|
|
509
|
+
"alias": "display";
|
|
510
|
+
"required": false;
|
|
511
|
+
"isSignal": true;
|
|
512
|
+
};
|
|
513
|
+
"maxSelectedLabels": {
|
|
514
|
+
"alias": "maxSelectedLabels";
|
|
515
|
+
"required": false;
|
|
516
|
+
"isSignal": true;
|
|
517
|
+
};
|
|
518
|
+
"selectionLimit": {
|
|
519
|
+
"alias": "selectionLimit";
|
|
520
|
+
"required": false;
|
|
521
|
+
"isSignal": true;
|
|
522
|
+
};
|
|
523
|
+
"showToggleAll": {
|
|
524
|
+
"alias": "showToggleAll";
|
|
525
|
+
"required": false;
|
|
526
|
+
"isSignal": true;
|
|
527
|
+
};
|
|
528
|
+
}, {
|
|
529
|
+
"value": "valueChange";
|
|
530
|
+
}, never, never, true, never>;
|
|
531
|
+
}
|
|
532
|
+
/**
|
|
533
|
+
* Single-choice dropdown (PrimeNG `p-select`): typed options, `optionLabel` / `optionValue` /
|
|
534
|
+
* `optionDisabled`, filter, clear button, loading state, typeahead and full keyboard support
|
|
535
|
+
* (WAI-ARIA select-only combobox). The panel is a native popover, so it also works inside
|
|
536
|
+
* modal `star-dialog`s.
|
|
537
|
+
*
|
|
538
|
+
* ```html
|
|
539
|
+
* <star-select [options]="countries" optionLabel="name" optionValue="code"
|
|
540
|
+
* [formField]="form.country" filter showClear placeholder="Country" />
|
|
541
|
+
* ```
|
|
542
|
+
*/
|
|
543
|
+
export declare class StarSelect<TOption = unknown, TValue = TOption> extends StarOptionListBase<TOption, TValue> implements FormValueControl<TValue | null> {
|
|
544
|
+
readonly value: import("@angular/core").ModelSignal<TValue | null>;
|
|
545
|
+
protected readonly closeOnChoose = true;
|
|
546
|
+
/** The option that matches the current value, or `undefined`. */
|
|
547
|
+
protected readonly selectedOption: import("@angular/core").Signal<TOption | undefined>;
|
|
548
|
+
protected isSelected(option: TOption): boolean;
|
|
549
|
+
protected choose(option: TOption): void;
|
|
550
|
+
protected initialActiveIndex(): number;
|
|
551
|
+
clear(): void;
|
|
552
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StarSelect<any, any>, never>;
|
|
553
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<StarSelect<any, any>, "star-select", never, {
|
|
554
|
+
"value": {
|
|
555
|
+
"alias": "value";
|
|
556
|
+
"required": false;
|
|
557
|
+
"isSignal": true;
|
|
558
|
+
};
|
|
559
|
+
}, {
|
|
560
|
+
"value": "valueChange";
|
|
561
|
+
}, never, never, true, never>;
|
|
562
|
+
}
|
|
563
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
/**
|
|
3
|
+
* Loading placeholder (PrimeNG `p-skeleton`). Respects `prefers-reduced-motion`.
|
|
4
|
+
* `<star-skeleton width="60%" height="1rem" />`, `<star-skeleton shape="circle" size="2.5rem" />`
|
|
5
|
+
*/
|
|
6
|
+
export declare class StarSkeleton {
|
|
7
|
+
readonly shape: import("@angular/core").InputSignal<"rectangle" | "circle">;
|
|
8
|
+
readonly width: import("@angular/core").InputSignal<string>;
|
|
9
|
+
readonly height: import("@angular/core").InputSignal<string>;
|
|
10
|
+
/** Width and height together (squares and circles). */
|
|
11
|
+
readonly size: import("@angular/core").InputSignal<string | null>;
|
|
12
|
+
readonly borderRadius: import("@angular/core").InputSignal<string | null>;
|
|
13
|
+
readonly animation: import("@angular/core").InputSignal<"wave" | "none">;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StarSkeleton, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<StarSkeleton, "star-skeleton", never, {
|
|
16
|
+
"shape": {
|
|
17
|
+
"alias": "shape";
|
|
18
|
+
"required": false;
|
|
19
|
+
"isSignal": true;
|
|
20
|
+
};
|
|
21
|
+
"width": {
|
|
22
|
+
"alias": "width";
|
|
23
|
+
"required": false;
|
|
24
|
+
"isSignal": true;
|
|
25
|
+
};
|
|
26
|
+
"height": {
|
|
27
|
+
"alias": "height";
|
|
28
|
+
"required": false;
|
|
29
|
+
"isSignal": true;
|
|
30
|
+
};
|
|
31
|
+
"size": {
|
|
32
|
+
"alias": "size";
|
|
33
|
+
"required": false;
|
|
34
|
+
"isSignal": true;
|
|
35
|
+
};
|
|
36
|
+
"borderRadius": {
|
|
37
|
+
"alias": "borderRadius";
|
|
38
|
+
"required": false;
|
|
39
|
+
"isSignal": true;
|
|
40
|
+
};
|
|
41
|
+
"animation": {
|
|
42
|
+
"alias": "animation";
|
|
43
|
+
"required": false;
|
|
44
|
+
"isSignal": true;
|
|
45
|
+
};
|
|
46
|
+
}, {}, never, never, true, never>;
|
|
47
|
+
}
|