@forgeroute/ui 0.3.1 → 0.3.3
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/fesm2022/forgeroute-ui.mjs +810 -65
- package/fesm2022/forgeroute-ui.mjs.map +1 -1
- package/package.json +6 -2
- package/types/forgeroute-ui.d.ts +240 -33
package/package.json
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forgeroute/ui",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.3",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": ">=22.0.0",
|
|
6
6
|
"@angular/core": ">=22.0.0",
|
|
7
7
|
"@angular/forms": ">=22.0.0",
|
|
8
8
|
"@angular/router": ">=22.0.0",
|
|
9
|
-
"@angular/platform-browser": ">=22.0.0"
|
|
9
|
+
"@angular/platform-browser": ">=22.0.0",
|
|
10
|
+
"chart.js": ">=4.0.0"
|
|
10
11
|
},
|
|
11
12
|
"peerDependenciesMeta": {
|
|
12
13
|
"@angular/forms": {
|
|
13
14
|
"optional": false
|
|
15
|
+
},
|
|
16
|
+
"chart.js": {
|
|
17
|
+
"optional": true
|
|
14
18
|
}
|
|
15
19
|
},
|
|
16
20
|
"publishConfig": {
|
package/types/forgeroute-ui.d.ts
CHANGED
|
@@ -135,19 +135,14 @@ export interface ColumnDef {
|
|
|
135
135
|
overdueThreshold?: number;
|
|
136
136
|
/**
|
|
137
137
|
* Maps a row to a progress bar. Return null to render a plain '—' (e.g. nothing to track).
|
|
138
|
-
* `label` is the text beside the bar (e.g. "3/5"); `tooltip` is the hover text.
|
|
138
|
+
* `label` is the text beside the bar (e.g. "3/5"); `tooltip` is the hover text. Leave `variant` out and the bar colors itself by completion (red / amber / blue / green).
|
|
139
139
|
*/
|
|
140
140
|
progressFn?: (item: any) => {
|
|
141
141
|
value: number;
|
|
142
142
|
max: number;
|
|
143
143
|
label?: string;
|
|
144
|
-
variant?: 'blue' | 'green' | 'amber' | 'red' | 'slate'
|
|
144
|
+
variant?: 'blue' | 'green' | 'amber' | 'red' | 'slate';
|
|
145
145
|
tooltip?: string;
|
|
146
|
-
autoColor?: boolean;
|
|
147
|
-
thresholds?: {
|
|
148
|
-
at: number;
|
|
149
|
-
variant: 'blue' | 'green' | 'amber' | 'red' | 'slate' | 'lime';
|
|
150
|
-
}[];
|
|
151
146
|
} | null;
|
|
152
147
|
/** Key in item holding the tags array. Defaults to col.key.
|
|
153
148
|
* Expected shape: { name: string; variant?: BadgeVariant }[] */
|
|
@@ -279,14 +274,17 @@ export interface BulkConfirmContext<T = any> {
|
|
|
279
274
|
/** Raw target value ("APPROVED") and its display label ("Approved"). */
|
|
280
275
|
targetValue: string;
|
|
281
276
|
targetLabel: string;
|
|
282
|
-
/**
|
|
277
|
+
/**
|
|
278
|
+
* The eligible row objects (name records, show before -> after). A selection never spans pages (any reload clears it and
|
|
279
|
+
* select-all takes the loaded page), so these are every row that will be sent.
|
|
280
|
+
*/
|
|
283
281
|
rows: T[];
|
|
284
282
|
/** The selected rows that will be skipped. */
|
|
285
283
|
skippedRows: T[];
|
|
286
284
|
}
|
|
287
285
|
/** Host copy for one bulk confirm. Plain text only (never HTML); `\n` in `message` shows as a line break. */
|
|
288
286
|
export interface BulkConfirmCopy {
|
|
289
|
-
/** Default: the action label ("Change Status") / "Delete
|
|
287
|
+
/** Default: the action label ("Change Status") / "Delete <Items>" built from the table's item label ("template" → "Delete Templates"). */
|
|
290
288
|
title?: string;
|
|
291
289
|
message: string;
|
|
292
290
|
/** Rendered as a bullet list under the message (consequences, what is NOT affected, undoable or not). */
|
|
@@ -1086,6 +1084,8 @@ export declare class DataTableComponent<T extends Record<string, any>> implement
|
|
|
1086
1084
|
/** Plural label; defaults to English pluralisation of `itemLabel` ("property" → "properties"). */
|
|
1087
1085
|
readonly itemLabelPlural: import("@angular/core").InputSignal<string>;
|
|
1088
1086
|
protected _countLabel(count: number): string;
|
|
1087
|
+
/** Default bulk-Delete confirm title: "Delete " + the title-cased plural item label ("template" → "Delete Templates", "lien waiver" → "Delete Lien Waivers"). */
|
|
1088
|
+
protected _deleteTitle(): string;
|
|
1089
1089
|
/**
|
|
1090
1090
|
* Column keys to enable bulk updates for, plus the special keyword `'delete'`.
|
|
1091
1091
|
* e.g. `['status', 'type', 'delete']`
|
|
@@ -1764,17 +1764,14 @@ export declare class ToastComponent {
|
|
|
1764
1764
|
static ɵfac: i0.ɵɵFactoryDeclaration<ToastComponent, never>;
|
|
1765
1765
|
static ɵcmp: i0.ɵɵComponentDeclaration<ToastComponent, "ui-toast", never, {}, {}, never, never, true, never>;
|
|
1766
1766
|
}
|
|
1767
|
-
export type ProgressBarVariant = 'blue' | 'green' | 'amber' | 'red' | 'slate'
|
|
1768
|
-
/** Switch the fill to `variant` once completion reaches `at` percent (0-100). */
|
|
1769
|
-
export interface ProgressThreshold {
|
|
1770
|
-
at: number;
|
|
1771
|
-
variant: ProgressBarVariant;
|
|
1772
|
-
}
|
|
1773
|
-
/** Standard completion colors: red under 25%, amber 25%, blue 50%, lime 75%, green at 100%. */
|
|
1774
|
-
export declare const PROGRESS_STEP_THRESHOLDS: ProgressThreshold[];
|
|
1767
|
+
export type ProgressBarVariant = 'blue' | 'green' | 'amber' | 'red' | 'slate';
|
|
1775
1768
|
/**
|
|
1776
1769
|
* Horizontal progress bar with an optional trailing label (e.g. "3/5").
|
|
1777
1770
|
* Pass `value` and `max`; the fill width is clamped to 0–100%.
|
|
1771
|
+
*
|
|
1772
|
+
* The fill color is built in and follows completion, in four bands: red up to 25%, amber up to 50%, blue up to 75%,
|
|
1773
|
+
* green above 75% (full = green). Nothing needs to be passed. `variant` is an optional override for a bar whose
|
|
1774
|
+
* color means something else (for example an overdue status) — when it is set the color stays fixed.
|
|
1778
1775
|
*/
|
|
1779
1776
|
export declare class ProgressBarComponent {
|
|
1780
1777
|
/** Completed amount. */
|
|
@@ -1783,21 +1780,14 @@ export declare class ProgressBarComponent {
|
|
|
1783
1780
|
readonly max: import("@angular/core").InputSignal<number>;
|
|
1784
1781
|
/** Text shown to the right of the bar, e.g. "3/5". */
|
|
1785
1782
|
readonly label: import("@angular/core").InputSignal<string>;
|
|
1786
|
-
/**
|
|
1787
|
-
readonly variant: import("@angular/core").InputSignal<ProgressBarVariant>;
|
|
1788
|
-
/**
|
|
1789
|
-
* Optional automatic color: the fill uses the variant of the highest threshold whose `at` is
|
|
1790
|
-
* <= the exact completion percent (not the rounded one), else `variant`.
|
|
1791
|
-
* e.g. `[{ at: 50, variant: 'amber' }, { at: 100, variant: 'green' }]`. Omit to keep `variant` fixed.
|
|
1792
|
-
*/
|
|
1793
|
-
readonly thresholds: import("@angular/core").InputSignal<ProgressThreshold[] | null>;
|
|
1794
|
-
/** Shortcut for the standard steps (`PROGRESS_STEP_THRESHOLDS`): red <25%, amber 25%, blue 50%, lime 75%, green 100%. Explicit `thresholds` win. */
|
|
1795
|
-
readonly autoColor: import("@angular/core").InputSignal<boolean>;
|
|
1783
|
+
/** Optional fixed color override. Leave it out and the color follows completion (red / amber / blue / green). */
|
|
1784
|
+
readonly variant: import("@angular/core").InputSignal<ProgressBarVariant | null | undefined>;
|
|
1796
1785
|
/** Hover / focus tooltip (library `uiTooltip`); `\n` starts a new line. */
|
|
1797
1786
|
readonly tooltip: import("@angular/core").InputSignal<string>;
|
|
1798
1787
|
readonly ariaLabel: import("@angular/core").InputSignal<string>;
|
|
1799
1788
|
protected readonly clampedValue: import("@angular/core").Signal<number>;
|
|
1800
1789
|
protected readonly percent: import("@angular/core").Signal<number>;
|
|
1790
|
+
/** The override when given, else the completion band: up to 25% red, up to 50% amber, up to 75% blue, above 75% green. */
|
|
1801
1791
|
protected readonly effectiveVariant: import("@angular/core").Signal<ProgressBarVariant>;
|
|
1802
1792
|
static ɵfac: i0.ɵɵFactoryDeclaration<ProgressBarComponent, never>;
|
|
1803
1793
|
static ɵcmp: i0.ɵɵComponentDeclaration<ProgressBarComponent, "ui-progress-bar", never, {
|
|
@@ -1821,18 +1811,86 @@ export declare class ProgressBarComponent {
|
|
|
1821
1811
|
"required": false;
|
|
1822
1812
|
"isSignal": true;
|
|
1823
1813
|
};
|
|
1824
|
-
"
|
|
1825
|
-
"alias": "
|
|
1814
|
+
"tooltip": {
|
|
1815
|
+
"alias": "tooltip";
|
|
1826
1816
|
"required": false;
|
|
1827
1817
|
"isSignal": true;
|
|
1828
1818
|
};
|
|
1829
|
-
"
|
|
1830
|
-
"alias": "
|
|
1819
|
+
"ariaLabel": {
|
|
1820
|
+
"alias": "ariaLabel";
|
|
1831
1821
|
"required": false;
|
|
1832
1822
|
"isSignal": true;
|
|
1833
1823
|
};
|
|
1834
|
-
|
|
1835
|
-
|
|
1824
|
+
}, {}, never, never, true, never>;
|
|
1825
|
+
}
|
|
1826
|
+
/**
|
|
1827
|
+
* Bar chart of one series (e.g. calls per day). Pass the category `labels` and the matching `values`.
|
|
1828
|
+
*
|
|
1829
|
+
* <ui-bar-chart [labels]="['8/1', '8/2']" [values]="[3, 0]" ariaLabel="Daily call volume"
|
|
1830
|
+
* unitSingular="call" unitPlural="calls" />
|
|
1831
|
+
*
|
|
1832
|
+
* - Bars show their value above them (`showValues`, a 0 bar shows nothing), the y axis starts at 0 and counts whole numbers.
|
|
1833
|
+
* - The tooltip reads "<value> <unit>" (`unitSingular` for 1, `unitPlural` otherwise; no unit = just the number).
|
|
1834
|
+
* - The canvas is an image for assistive tech (`role="img"` + `ariaLabel`); render the same figures as text next to it
|
|
1835
|
+
* (e.g. a visually hidden list) when the exact values matter.
|
|
1836
|
+
* - Height is `height` px (shorter on phones: 200px up to 768px wide, 160px up to 480px wide, when the default 240 is used);
|
|
1837
|
+
* the width follows the container. Needs the optional peer dependency `chart.js` (>= 4).
|
|
1838
|
+
*/
|
|
1839
|
+
export declare class BarChartComponent {
|
|
1840
|
+
/** Category labels, left to right (one per bar). */
|
|
1841
|
+
readonly labels: import("@angular/core").InputSignal<string[]>;
|
|
1842
|
+
/** The bar values, in the order of `labels`. */
|
|
1843
|
+
readonly values: import("@angular/core").InputSignal<number[]>;
|
|
1844
|
+
/** Bar colour (any CSS colour). */
|
|
1845
|
+
readonly color: import("@angular/core").InputSignal<string>;
|
|
1846
|
+
/** Bar colour while hovered. */
|
|
1847
|
+
readonly hoverColor: import("@angular/core").InputSignal<string>;
|
|
1848
|
+
/** Chart height in px. */
|
|
1849
|
+
readonly height: import("@angular/core").InputSignal<number>;
|
|
1850
|
+
/** Spoken description of the chart. */
|
|
1851
|
+
readonly ariaLabel: import("@angular/core").InputSignal<string>;
|
|
1852
|
+
/** Show each bar's value above it. */
|
|
1853
|
+
readonly showValues: import("@angular/core").InputSignal<boolean>;
|
|
1854
|
+
/** Tooltip unit for exactly 1 (e.g. "call"). */
|
|
1855
|
+
readonly unitSingular: import("@angular/core").InputSignal<string>;
|
|
1856
|
+
/** Tooltip unit for any other value (e.g. "calls"). */
|
|
1857
|
+
readonly unitPlural: import("@angular/core").InputSignal<string>;
|
|
1858
|
+
private readonly canvas;
|
|
1859
|
+
private readonly zone;
|
|
1860
|
+
private chart;
|
|
1861
|
+
private readonly tooltipText;
|
|
1862
|
+
protected readonly series: import("@angular/core").Signal<{
|
|
1863
|
+
labels: string[];
|
|
1864
|
+
data: number[];
|
|
1865
|
+
color: string;
|
|
1866
|
+
hoverColor: string;
|
|
1867
|
+
showValues: boolean;
|
|
1868
|
+
}>;
|
|
1869
|
+
constructor();
|
|
1870
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BarChartComponent, never>;
|
|
1871
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BarChartComponent, "ui-bar-chart", never, {
|
|
1872
|
+
"labels": {
|
|
1873
|
+
"alias": "labels";
|
|
1874
|
+
"required": false;
|
|
1875
|
+
"isSignal": true;
|
|
1876
|
+
};
|
|
1877
|
+
"values": {
|
|
1878
|
+
"alias": "values";
|
|
1879
|
+
"required": false;
|
|
1880
|
+
"isSignal": true;
|
|
1881
|
+
};
|
|
1882
|
+
"color": {
|
|
1883
|
+
"alias": "color";
|
|
1884
|
+
"required": false;
|
|
1885
|
+
"isSignal": true;
|
|
1886
|
+
};
|
|
1887
|
+
"hoverColor": {
|
|
1888
|
+
"alias": "hoverColor";
|
|
1889
|
+
"required": false;
|
|
1890
|
+
"isSignal": true;
|
|
1891
|
+
};
|
|
1892
|
+
"height": {
|
|
1893
|
+
"alias": "height";
|
|
1836
1894
|
"required": false;
|
|
1837
1895
|
"isSignal": true;
|
|
1838
1896
|
};
|
|
@@ -1841,6 +1899,21 @@ export declare class ProgressBarComponent {
|
|
|
1841
1899
|
"required": false;
|
|
1842
1900
|
"isSignal": true;
|
|
1843
1901
|
};
|
|
1902
|
+
"showValues": {
|
|
1903
|
+
"alias": "showValues";
|
|
1904
|
+
"required": false;
|
|
1905
|
+
"isSignal": true;
|
|
1906
|
+
};
|
|
1907
|
+
"unitSingular": {
|
|
1908
|
+
"alias": "unitSingular";
|
|
1909
|
+
"required": false;
|
|
1910
|
+
"isSignal": true;
|
|
1911
|
+
};
|
|
1912
|
+
"unitPlural": {
|
|
1913
|
+
"alias": "unitPlural";
|
|
1914
|
+
"required": false;
|
|
1915
|
+
"isSignal": true;
|
|
1916
|
+
};
|
|
1844
1917
|
}, {}, never, never, true, never>;
|
|
1845
1918
|
}
|
|
1846
1919
|
export declare class SkeletonComponent {
|
|
@@ -2087,6 +2160,8 @@ export declare class ButtonComponent {
|
|
|
2087
2160
|
readonly ariaLabel: import("@angular/core").InputSignal<string | undefined>;
|
|
2088
2161
|
readonly ariaExpanded: import("@angular/core").InputSignal<boolean | undefined>;
|
|
2089
2162
|
readonly ariaPressed: import("@angular/core").InputSignal<boolean | undefined>;
|
|
2163
|
+
/** Id of the element that describes this button (an error or hint rendered next to it), e.g. `<ui-error errorId="x">`. Absent when empty. */
|
|
2164
|
+
readonly ariaDescribedBy: import("@angular/core").InputSignal<string | undefined>;
|
|
2090
2165
|
_footerLeft?: string;
|
|
2091
2166
|
_footerRight?: string;
|
|
2092
2167
|
static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
|
|
@@ -2146,6 +2221,11 @@ export declare class ButtonComponent {
|
|
|
2146
2221
|
"required": false;
|
|
2147
2222
|
"isSignal": true;
|
|
2148
2223
|
};
|
|
2224
|
+
"ariaDescribedBy": {
|
|
2225
|
+
"alias": "ariaDescribedBy";
|
|
2226
|
+
"required": false;
|
|
2227
|
+
"isSignal": true;
|
|
2228
|
+
};
|
|
2149
2229
|
"_footerLeft": {
|
|
2150
2230
|
"alias": "modal-footer-left";
|
|
2151
2231
|
"required": false;
|
|
@@ -5936,6 +6016,133 @@ export declare class RadioGroupComponent implements ControlValueAccessor, Valida
|
|
|
5936
6016
|
"invalidChange": "invalidChange";
|
|
5937
6017
|
}, never, never, true, never>;
|
|
5938
6018
|
}
|
|
6019
|
+
/** One row of a `ui-radio-matrix`: `value` is the key in the model, `label` the row header. */
|
|
6020
|
+
export interface RadioMatrixRow {
|
|
6021
|
+
value: string;
|
|
6022
|
+
label: string;
|
|
6023
|
+
disabled?: boolean;
|
|
6024
|
+
}
|
|
6025
|
+
/**
|
|
6026
|
+
* Matrix of native radio buttons: one row per item, one column per choice, exactly one choice per row (e.g. a page-permission
|
|
6027
|
+
* grid: rows = pages, columns = Full Access / Read Only / Hidden). A ControlValueAccessor whose value is a record
|
|
6028
|
+
* `{ [row.value]: column.value }` (`''` / missing = nothing chosen for that row). Arrow keys move inside a row natively because the
|
|
6029
|
+
* radios of a row share one `name`. Every radio is named "<row>: <column>" for screen readers; rows are `<th scope="row">`, columns
|
|
6030
|
+
* `<th scope="col">`.
|
|
6031
|
+
*
|
|
6032
|
+
* Built-in validation: `required` -> every row needs a choice ("Choose an option in every row." / "<label>: choose an option in
|
|
6033
|
+
* every row."); a value that is not one of the `columns` -> "Select a valid option."; a key that is not one of the `rows` is
|
|
6034
|
+
* ignored (and kept untouched in the model). Disabled matrices are never invalid.
|
|
6035
|
+
*
|
|
6036
|
+
* Validity API (same on every ui input): Angular `Validator`, signals `invalid` + `errorMessage`, `invalidChange` output,
|
|
6037
|
+
* provides `UiFieldValidity`. Messages show after the matrix lost focus or while `[showErrors]="true"`; a host `[error]` wins.
|
|
6038
|
+
*
|
|
6039
|
+
* <ui-radio-matrix label="Page permissions" rowHeader="Page" [rows]="pages" [columns]="levels" [(ngModel)]="permissions" />
|
|
6040
|
+
*/
|
|
6041
|
+
export declare class RadioMatrixComponent implements ControlValueAccessor, Validator, UiFieldValidity {
|
|
6042
|
+
readonly label: import("@angular/core").InputSignal<string>;
|
|
6043
|
+
/** Text of the top-left header cell (what the rows are, e.g. "Page"). */
|
|
6044
|
+
readonly rowHeader: import("@angular/core").InputSignal<string>;
|
|
6045
|
+
readonly rows: import("@angular/core").InputSignal<RadioMatrixRow[]>;
|
|
6046
|
+
/** The choices, one column each (same shape as `ui-radio-group` options; `description` is not shown). */
|
|
6047
|
+
readonly columns: import("@angular/core").InputSignal<RadioOption[]>;
|
|
6048
|
+
readonly required: import("@angular/core").InputSignal<boolean>;
|
|
6049
|
+
readonly hint: import("@angular/core").InputSignal<string>;
|
|
6050
|
+
readonly error: import("@angular/core").InputSignal<string>;
|
|
6051
|
+
/** Reveal the built-in error messages now (e.g. after a failed Save click), without waiting for blur. */
|
|
6052
|
+
readonly showErrors: import("@angular/core").InputSignal<boolean>;
|
|
6053
|
+
/** Prefix of the native radio `name`s (one name per row); a unique one is generated when omitted. */
|
|
6054
|
+
readonly name: import("@angular/core").InputSignal<string>;
|
|
6055
|
+
protected readonly _disabledInput: import("@angular/core").InputSignal<boolean>;
|
|
6056
|
+
private readonly _cvaDisabled;
|
|
6057
|
+
protected readonly disabled: import("@angular/core").Signal<boolean>;
|
|
6058
|
+
private readonly _generatedName;
|
|
6059
|
+
protected get _name(): string;
|
|
6060
|
+
protected readonly _descId: string;
|
|
6061
|
+
protected readonly _value: import("@angular/core").WritableSignal<Record<string, string>>;
|
|
6062
|
+
private readonly _reveal;
|
|
6063
|
+
private readonly _issue;
|
|
6064
|
+
/** True while the value breaks a built-in rule or the host passed an `[error]`. */
|
|
6065
|
+
readonly invalid: import("@angular/core").Signal<boolean>;
|
|
6066
|
+
/** Message of the first broken built-in rule ('' when valid), shown or not. */
|
|
6067
|
+
readonly errorMessage: import("@angular/core").Signal<string>;
|
|
6068
|
+
/** Emits whenever the field becomes invalid / valid. */
|
|
6069
|
+
readonly invalidChange: import("@angular/core").OutputEmitterRef<boolean>;
|
|
6070
|
+
protected readonly _activeError: import("@angular/core").Signal<string>;
|
|
6071
|
+
private _onValidatorChange;
|
|
6072
|
+
constructor();
|
|
6073
|
+
/** Re-run the form control's validation when a rule input (required, rows, columns) changes. */
|
|
6074
|
+
ngOnChanges(): void;
|
|
6075
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
6076
|
+
registerOnValidatorChange(fn: () => void): void;
|
|
6077
|
+
private _onChange;
|
|
6078
|
+
private _onTouched;
|
|
6079
|
+
writeValue(val: Record<string, string> | null): void;
|
|
6080
|
+
registerOnChange(fn: (v: Record<string, string>) => void): void;
|
|
6081
|
+
registerOnTouched(fn: () => void): void;
|
|
6082
|
+
setDisabledState(d: boolean): void;
|
|
6083
|
+
protected onSelect(row: string, column: string): void;
|
|
6084
|
+
/** True when a required matrix has no valid choice in this row (shown on the row header and the dots). */
|
|
6085
|
+
protected _rowInvalid(row: RadioMatrixRow): boolean;
|
|
6086
|
+
/** Touched once focus leaves the whole matrix (moving between its radios does not count). */
|
|
6087
|
+
protected onFocusOut(event: FocusEvent): void;
|
|
6088
|
+
private _toRecord;
|
|
6089
|
+
private _check;
|
|
6090
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RadioMatrixComponent, never>;
|
|
6091
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RadioMatrixComponent, "ui-radio-matrix", never, {
|
|
6092
|
+
"label": {
|
|
6093
|
+
"alias": "label";
|
|
6094
|
+
"required": false;
|
|
6095
|
+
"isSignal": true;
|
|
6096
|
+
};
|
|
6097
|
+
"rowHeader": {
|
|
6098
|
+
"alias": "rowHeader";
|
|
6099
|
+
"required": false;
|
|
6100
|
+
"isSignal": true;
|
|
6101
|
+
};
|
|
6102
|
+
"rows": {
|
|
6103
|
+
"alias": "rows";
|
|
6104
|
+
"required": false;
|
|
6105
|
+
"isSignal": true;
|
|
6106
|
+
};
|
|
6107
|
+
"columns": {
|
|
6108
|
+
"alias": "columns";
|
|
6109
|
+
"required": false;
|
|
6110
|
+
"isSignal": true;
|
|
6111
|
+
};
|
|
6112
|
+
"required": {
|
|
6113
|
+
"alias": "required";
|
|
6114
|
+
"required": false;
|
|
6115
|
+
"isSignal": true;
|
|
6116
|
+
};
|
|
6117
|
+
"hint": {
|
|
6118
|
+
"alias": "hint";
|
|
6119
|
+
"required": false;
|
|
6120
|
+
"isSignal": true;
|
|
6121
|
+
};
|
|
6122
|
+
"error": {
|
|
6123
|
+
"alias": "error";
|
|
6124
|
+
"required": false;
|
|
6125
|
+
"isSignal": true;
|
|
6126
|
+
};
|
|
6127
|
+
"showErrors": {
|
|
6128
|
+
"alias": "showErrors";
|
|
6129
|
+
"required": false;
|
|
6130
|
+
"isSignal": true;
|
|
6131
|
+
};
|
|
6132
|
+
"name": {
|
|
6133
|
+
"alias": "name";
|
|
6134
|
+
"required": false;
|
|
6135
|
+
"isSignal": true;
|
|
6136
|
+
};
|
|
6137
|
+
"_disabledInput": {
|
|
6138
|
+
"alias": "disabled";
|
|
6139
|
+
"required": false;
|
|
6140
|
+
"isSignal": true;
|
|
6141
|
+
};
|
|
6142
|
+
}, {
|
|
6143
|
+
"invalidChange": "invalidChange";
|
|
6144
|
+
}, never, never, true, never>;
|
|
6145
|
+
}
|
|
5939
6146
|
/**
|
|
5940
6147
|
* Card for detail pages: an optional header and a body, both filled by the page that uses it.
|
|
5941
6148
|
*
|