@zambon-dev/ui 0.0.1-bootstrap.0 → 1.1.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/CHANGELOG.md +177 -0
- package/README.md +81 -81
- package/fesm2022/zambon-dev-ui-framework.mjs +5995 -3980
- package/fesm2022/zambon-dev-ui-framework.mjs.map +1 -1
- package/fesm2022/zambon-dev-ui-library.mjs +6003 -4272
- package/fesm2022/zambon-dev-ui-library.mjs.map +1 -1
- package/fesm2022/zambon-dev-ui-shared.mjs +2758 -1790
- package/fesm2022/zambon-dev-ui-shared.mjs.map +1 -1
- package/fesm2022/zambon-dev-ui-testing.mjs +73 -77
- package/fesm2022/zambon-dev-ui-testing.mjs.map +1 -1
- package/fesm2022/zambon-dev-ui.mjs +6 -8
- package/i18n/framework/en.json +63 -63
- package/i18n/framework/pt.json +63 -63
- package/i18n/shared/external-content/en.json +12 -12
- package/i18n/shared/external-content/pt.json +12 -12
- package/i18n/shared/language-selector/en.json +5 -5
- package/i18n/shared/language-selector/pt.json +5 -5
- package/i18n/shared/login/en.json +16 -14
- package/i18n/shared/login/pt.json +16 -14
- package/i18n/shared/operations-history/en.json +5 -5
- package/i18n/shared/operations-history/pt.json +5 -5
- package/i18n/shared/services-history/en.json +14 -14
- package/i18n/shared/services-history/pt.json +14 -14
- package/i18n/shared/top-bar/en.json +10 -7
- package/i18n/shared/top-bar/pt.json +10 -7
- package/package.json +1 -1
- package/styles/common.scss +9 -10
- package/styles/components/card.scss +19 -13
- package/styles/components/dropdown-static.scss +33 -35
- package/styles/components/input-group.scss +48 -44
- package/styles/components/input.scss +120 -99
- package/styles/components/label.scss +6 -3
- package/styles/components/row.scss +48 -48
- package/styles/mixins/background.scss +31 -31
- package/styles/theme.css +307 -75
- package/styles/variables.scss +86 -60
- package/types/zambon-dev-ui-framework.d.ts +1470 -1029
- package/types/zambon-dev-ui-library.d.ts +1689 -1165
- package/types/zambon-dev-ui-shared.d.ts +630 -543
- package/types/zambon-dev-ui-testing.d.ts +25 -30
- package/types/zambon-dev-ui.d.ts +6 -3
- package/fesm2022/zambon-dev-ui.mjs.map +0 -1
- package/styles/components/button.scss +0 -101
|
@@ -1,91 +1,161 @@
|
|
|
1
|
-
import * as i0 from
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { FormControl, FormGroup, FormGroupDirective, FormGroupName,
|
|
5
|
-
import { HttpErrorResponse, HttpResponse } from
|
|
6
|
-
import { ActivatedRoute, ActivatedRouteSnapshot } from
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<BaseComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
interface IBatchUpdate<TEntity, TKey> {
|
|
16
|
-
entitiesToDelete: Array<TKey>;
|
|
17
|
-
entitiesToInsertOrUpdate: Array<TEntity>;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
interface ICatalogEntry {
|
|
21
|
-
display: string;
|
|
22
|
-
value: any;
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import { AfterViewInit, EventEmitter, InjectionToken, InputSignal, ModelSignal, OnDestroy, OnInit, OutputEmitterRef, PipeTransform, QueryList, Signal, TemplateRef, WritableSignal } from "@angular/core";
|
|
3
|
+
import { Observable, Subject } from "rxjs";
|
|
4
|
+
import { AbstractControl, FormControl, FormGroup, FormGroupDirective, FormGroupName, ValidationErrors, ValidatorFn } from "@angular/forms";
|
|
5
|
+
import { HttpErrorResponse, HttpResponse } from "@angular/common/http";
|
|
6
|
+
import { ActivatedRoute, ActivatedRouteSnapshot } from "@angular/router";
|
|
7
|
+
export declare abstract class BaseComponent implements OnDestroy {
|
|
8
|
+
protected destroy$: Subject<boolean>;
|
|
9
|
+
ngOnDestroy(): void;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BaseComponent, never>;
|
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BaseComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
23
12
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
13
|
+
/** What the button is for, which is what decides how loud it looks. */
|
|
14
|
+
type ButtonIntent = 'primary' | 'secondary' | 'danger' | 'ghost';
|
|
15
|
+
/**
|
|
16
|
+
* The one button.
|
|
17
|
+
*
|
|
18
|
+
* It replaces the global `.btn` classes, which generated 154 variants by interpolating Tailwind
|
|
19
|
+
* colour names -- `btn blue-500`, `btn red-700` -- in a `@for` loop. Those named a palette entry
|
|
20
|
+
* rather than a purpose, so a screen's buttons were a colour decision taken 154 times, and none of
|
|
21
|
+
* them could follow a theme. An intent says what the button is for and lets the theme decide what
|
|
22
|
+
* that looks like.
|
|
23
|
+
*
|
|
24
|
+
* `lib-ribbon-button` is deliberately not folded in here. It is a different shape -- icon above
|
|
25
|
+
* label, large hit area, an options menu -- and merging the two would produce one component with
|
|
26
|
+
* two personalities. They share the tokens instead.
|
|
27
|
+
*
|
|
28
|
+
* There is no click output: the inner element is a real `<button>`, so a `(click)` bound on
|
|
29
|
+
* `<lib-button>` receives the bubbled event, and a disabled button emits nothing to bubble. For the
|
|
30
|
+
* same reason `type="submit"` works from inside a form with no wiring.
|
|
31
|
+
*/
|
|
32
|
+
export declare class ButtonComponent {
|
|
33
|
+
/** What the button is for. Governs fill and text colour. */
|
|
34
|
+
readonly intent: InputSignal<ButtonIntent>;
|
|
35
|
+
/** Native button type. `submit` works because the rendered button is inside the host's form. */
|
|
36
|
+
readonly type: InputSignal<'button' | 'submit' | 'reset'>;
|
|
37
|
+
readonly disabled: InputSignal<boolean>;
|
|
38
|
+
/** Shows a spinner, announces `aria-busy` and blocks activation -- by the keyboard too. */
|
|
39
|
+
readonly loading: InputSignal<boolean>;
|
|
40
|
+
/** Transient confirmation. Blocks activation so the action cannot be fired twice. */
|
|
41
|
+
readonly success: InputSignal<boolean>;
|
|
42
|
+
/** Transient failure. Leaves the button usable so the action can be retried. */
|
|
43
|
+
readonly error: InputSignal<boolean>;
|
|
44
|
+
/** Font Awesome classes for a leading icon, e.g. `fa-solid fa-floppy-disk`. */
|
|
45
|
+
readonly icon: InputSignal<string | undefined>;
|
|
46
|
+
/** Required when the button has an icon and no text. */
|
|
47
|
+
readonly ariaLabel: InputSignal<string | undefined>;
|
|
48
|
+
/** Loading and success both stand for "this action is settled"; error is retryable. */
|
|
49
|
+
protected readonly isBlocked: Signal<boolean>;
|
|
50
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
|
|
51
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "lib-button", never, {
|
|
52
|
+
"intent": {
|
|
53
|
+
"alias": "intent";
|
|
54
|
+
"required": false;
|
|
55
|
+
"isSignal": true;
|
|
56
|
+
};
|
|
57
|
+
"type": {
|
|
58
|
+
"alias": "type";
|
|
59
|
+
"required": false;
|
|
60
|
+
"isSignal": true;
|
|
61
|
+
};
|
|
62
|
+
"disabled": {
|
|
63
|
+
"alias": "disabled";
|
|
64
|
+
"required": false;
|
|
65
|
+
"isSignal": true;
|
|
66
|
+
};
|
|
67
|
+
"loading": {
|
|
68
|
+
"alias": "loading";
|
|
69
|
+
"required": false;
|
|
70
|
+
"isSignal": true;
|
|
71
|
+
};
|
|
72
|
+
"success": {
|
|
73
|
+
"alias": "success";
|
|
74
|
+
"required": false;
|
|
75
|
+
"isSignal": true;
|
|
76
|
+
};
|
|
77
|
+
"error": {
|
|
78
|
+
"alias": "error";
|
|
79
|
+
"required": false;
|
|
80
|
+
"isSignal": true;
|
|
81
|
+
};
|
|
82
|
+
"icon": {
|
|
83
|
+
"alias": "icon";
|
|
84
|
+
"required": false;
|
|
85
|
+
"isSignal": true;
|
|
86
|
+
};
|
|
87
|
+
"ariaLabel": {
|
|
88
|
+
"alias": "ariaLabel";
|
|
89
|
+
"required": false;
|
|
90
|
+
"isSignal": true;
|
|
91
|
+
};
|
|
92
|
+
}, {}, never, ["*"], true, never>;
|
|
93
|
+
}
|
|
94
|
+
export interface IBatchUpdate<TEntity, TKey> {
|
|
95
|
+
entitiesToDelete: Array<TKey>;
|
|
96
|
+
entitiesToInsertOrUpdate: Array<TEntity>;
|
|
97
|
+
}
|
|
98
|
+
export interface ICatalogEntry {
|
|
99
|
+
display: string;
|
|
100
|
+
value: any;
|
|
101
|
+
}
|
|
102
|
+
export interface ICatalogResult {
|
|
103
|
+
entries: ICatalogEntry[];
|
|
104
|
+
shouldUseCriteria: boolean;
|
|
28
105
|
}
|
|
29
|
-
|
|
30
106
|
/**
|
|
31
107
|
* An entry for the `assets` array of an Angular application's build target.
|
|
32
108
|
*
|
|
33
109
|
* Both i18n helpers publish one so a consumer can spread it into its own build
|
|
34
110
|
* configuration instead of hand-writing the path into this package.
|
|
35
111
|
*/
|
|
36
|
-
interface AngularAssetPattern {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
rowsToDisplay: number;
|
|
112
|
+
export interface AngularAssetPattern {
|
|
113
|
+
glob: string;
|
|
114
|
+
input: string;
|
|
115
|
+
output: string;
|
|
116
|
+
}
|
|
117
|
+
export type GridConfigs = {
|
|
118
|
+
loadingDisplayText?: string;
|
|
119
|
+
messageOnEmpty?: string;
|
|
120
|
+
messageOnFailed?: string;
|
|
121
|
+
messageOnLazyLoad?: string;
|
|
122
|
+
recordBlockSize: number;
|
|
123
|
+
rowHeight: number;
|
|
124
|
+
rowsToDisplay: number;
|
|
50
125
|
};
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
showMessageOnEmpty?: boolean;
|
|
126
|
+
export type DataGridConfigs = GridConfigs & {
|
|
127
|
+
hideBorders?: boolean;
|
|
128
|
+
hideColumnHeaders?: boolean;
|
|
129
|
+
multiSelect?: boolean;
|
|
130
|
+
multiSelectSize?: string;
|
|
131
|
+
selectOnClick?: boolean;
|
|
132
|
+
showMessageOnEmpty?: boolean;
|
|
59
133
|
};
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
realSize?: number;
|
|
80
|
-
template?: TemplateRef<any>;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
interface IListResult<T> {
|
|
84
|
-
items: T[];
|
|
85
|
-
totalRows: number;
|
|
134
|
+
export interface IListParameters extends ISummaryParameters {
|
|
135
|
+
endRow: number;
|
|
136
|
+
sort?: {
|
|
137
|
+
[key: string]: string;
|
|
138
|
+
};
|
|
139
|
+
startRow: number;
|
|
140
|
+
}
|
|
141
|
+
export interface ISummaryParameters {
|
|
142
|
+
filters?: {
|
|
143
|
+
[key: string]: string;
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
export interface IGridColumn {
|
|
147
|
+
customClass?: string;
|
|
148
|
+
field: string;
|
|
149
|
+
headerName: string;
|
|
150
|
+
size?: string;
|
|
151
|
+
realSize?: number;
|
|
152
|
+
template?: TemplateRef<any>;
|
|
86
153
|
}
|
|
87
|
-
|
|
88
|
-
|
|
154
|
+
export interface IListResult<T> {
|
|
155
|
+
items: T[];
|
|
156
|
+
totalRows: number;
|
|
157
|
+
}
|
|
158
|
+
export type ModalSize = 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl' | '7xl' | 'full' | 'auto';
|
|
89
159
|
/**
|
|
90
160
|
* What a modal offers whoever drives it.
|
|
91
161
|
*
|
|
@@ -97,38 +167,34 @@ type ModalSize = 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6x
|
|
|
97
167
|
* `size` and `title` are no longer part of this contract. They are presentational inputs each
|
|
98
168
|
* component declares for itself, and nothing ever drove a modal through them.
|
|
99
169
|
*/
|
|
100
|
-
interface IModal {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
};
|
|
129
|
-
path?: string;
|
|
130
|
-
}
|
|
131
|
-
|
|
170
|
+
export interface IModal {
|
|
171
|
+
readonly isOpen: Signal<boolean>;
|
|
172
|
+
closeModal(): void;
|
|
173
|
+
toggleModal(): void;
|
|
174
|
+
}
|
|
175
|
+
export interface IMultiEditorChanges {
|
|
176
|
+
changed: {
|
|
177
|
+
[key: string]: string;
|
|
178
|
+
};
|
|
179
|
+
removed: string[];
|
|
180
|
+
}
|
|
181
|
+
export interface IMultiSelectorChanges {
|
|
182
|
+
idsToAdd: number[];
|
|
183
|
+
idsToRemove: number[];
|
|
184
|
+
}
|
|
185
|
+
export interface IRibbonButtonOption {
|
|
186
|
+
allowedActions?: string[];
|
|
187
|
+
icon?: string;
|
|
188
|
+
id: string;
|
|
189
|
+
isAccessAllowed?: boolean;
|
|
190
|
+
isDisabled?: boolean;
|
|
191
|
+
isVisible?: boolean;
|
|
192
|
+
label: string;
|
|
193
|
+
parameters?: {
|
|
194
|
+
[key: string]: string;
|
|
195
|
+
};
|
|
196
|
+
path?: string;
|
|
197
|
+
}
|
|
132
198
|
/**
|
|
133
199
|
* A child that decides whether its ribbon group is shown at all.
|
|
134
200
|
*
|
|
@@ -138,32 +204,30 @@ interface IRibbonButtonOption {
|
|
|
138
204
|
* afterwards raised NG0100. A signal read inside the group's binding is tracked, so flipping it
|
|
139
205
|
* refreshes the group whatever strategy the host application uses.
|
|
140
206
|
*/
|
|
141
|
-
declare abstract class RibbonGroupChild {
|
|
142
|
-
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
declare
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
}
|
|
166
|
-
|
|
207
|
+
export declare abstract class RibbonGroupChild {
|
|
208
|
+
abstract readonly isVisible: Signal<boolean>;
|
|
209
|
+
}
|
|
210
|
+
export declare const SIDEBAR_CONFIGS: InjectionToken<SidebarConfigs>;
|
|
211
|
+
export declare class SidebarConfigs {
|
|
212
|
+
errorText: string;
|
|
213
|
+
/** Tooltip for items that open in a new browser tab. Rendered as-is, like {@link errorText}. */
|
|
214
|
+
externalLinkText: string;
|
|
215
|
+
loadingText: string;
|
|
216
|
+
/**
|
|
217
|
+
* Derive region headers from the menu tree instead of from {@link SidebarMenu.region}.
|
|
218
|
+
*
|
|
219
|
+
* With this on, a top-level menu that has children and no URL stops being a collapsible node
|
|
220
|
+
* and becomes an area header, with its children rendered flat beneath it as top-level items --
|
|
221
|
+
* icons included. The area is then a real menu row, so it carries its own translated label and
|
|
222
|
+
* its own order, and no `region` label has to be repeated across every item that belongs to it.
|
|
223
|
+
*
|
|
224
|
+
* Off by default: without it a top-level parent stays the collapsible group it has always been.
|
|
225
|
+
*/
|
|
226
|
+
shouldDeriveAreasFromRootMenus: boolean;
|
|
227
|
+
logoCollapsedPath?: string;
|
|
228
|
+
logoExpandedPath?: string;
|
|
229
|
+
constructor(options?: Partial<SidebarConfigs>);
|
|
230
|
+
}
|
|
167
231
|
/**
|
|
168
232
|
* How a {@link SidebarMenu}'s `url` is opened when the item is clicked.
|
|
169
233
|
*
|
|
@@ -171,13 +235,13 @@ declare class SidebarConfigs {
|
|
|
171
235
|
* field directly: it crosses HTTP, so it can arrive as a string, as a number, as `null`, or not
|
|
172
236
|
* at all.
|
|
173
237
|
*/
|
|
174
|
-
declare enum SidebarMenuOpenMode {
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
238
|
+
export declare enum SidebarMenuOpenMode {
|
|
239
|
+
/** `url` is an internal Angular route and opens an application tab. The default. */
|
|
240
|
+
Internal = "internal",
|
|
241
|
+
/** `url` is an absolute http(s) address and opens in a new browser tab. */
|
|
242
|
+
ExternalNewTab = "externalNewTab",
|
|
243
|
+
/** `url` is an absolute http(s) address and opens embedded in an application tab. */
|
|
244
|
+
ExternalEmbedded = "externalEmbedded"
|
|
181
245
|
}
|
|
182
246
|
/**
|
|
183
247
|
* Parses the wire value of `SidebarMenu.openMode`.
|
|
@@ -195,954 +259,1415 @@ declare enum SidebarMenuOpenMode {
|
|
|
195
259
|
* Degrading to `Internal` keeps an unrecognized mode behaving the way menus behaved before
|
|
196
260
|
* external destinations existed, instead of producing an item that does nothing when clicked.
|
|
197
261
|
*/
|
|
198
|
-
declare function toSidebarMenuOpenMode(value: unknown): SidebarMenuOpenMode;
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
title?: string;
|
|
226
|
-
}
|
|
227
|
-
|
|
262
|
+
export declare function toSidebarMenuOpenMode(value: unknown): SidebarMenuOpenMode;
|
|
263
|
+
export declare class SidebarMenu {
|
|
264
|
+
childCount: number;
|
|
265
|
+
children: SidebarMenu[];
|
|
266
|
+
height?: number;
|
|
267
|
+
icon?: string;
|
|
268
|
+
id: number;
|
|
269
|
+
label: string;
|
|
270
|
+
isSelected: boolean;
|
|
271
|
+
/**
|
|
272
|
+
* How {@link url} is opened. An absent value means {@link SidebarMenuOpenMode.Internal}.
|
|
273
|
+
*
|
|
274
|
+
* Left optional and without an initializer on purpose: the constructor is an `Object.assign`,
|
|
275
|
+
* which would overwrite a default with the `null` a nullable backend column serializes to.
|
|
276
|
+
* Read it through `toSidebarMenuOpenMode(menu.openMode)` instead of comparing it directly.
|
|
277
|
+
*/
|
|
278
|
+
openMode?: SidebarMenuOpenMode;
|
|
279
|
+
parent: SidebarMenu | null;
|
|
280
|
+
region?: string;
|
|
281
|
+
url?: string;
|
|
282
|
+
constructor(options?: Partial<SidebarMenu>);
|
|
283
|
+
}
|
|
284
|
+
export interface ISidebarProfile {
|
|
285
|
+
image?: string;
|
|
286
|
+
name?: string;
|
|
287
|
+
title?: string;
|
|
288
|
+
}
|
|
228
289
|
/** A named group of top-level sidebar menu items, rendered under a region header. */
|
|
229
|
-
interface SidebarRegion {
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
declare
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
}
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
}
|
|
866
|
-
|
|
867
|
-
declare class
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
}
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
}
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
290
|
+
export interface SidebarRegion {
|
|
291
|
+
items: SidebarMenu[];
|
|
292
|
+
name?: string;
|
|
293
|
+
}
|
|
294
|
+
export interface ITabView {
|
|
295
|
+
activeView?: string;
|
|
296
|
+
title: string;
|
|
297
|
+
url: string;
|
|
298
|
+
}
|
|
299
|
+
declare namespace catalog_select_component_d_exports {
|
|
300
|
+
export { CatalogSelectComponent };
|
|
301
|
+
}
|
|
302
|
+
export declare class CatalogSelectComponent extends BaseComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
303
|
+
protected bodyMouseDown(event: MouseEvent): void;
|
|
304
|
+
protected bodyMouseUp(event: MouseEvent): void;
|
|
305
|
+
private readonly dropdownTemplate;
|
|
306
|
+
private readonly inputElement;
|
|
307
|
+
readonly autofocus: InputSignal<boolean>;
|
|
308
|
+
readonly controlName: InputSignal<string>;
|
|
309
|
+
readonly displayControlName: InputSignal<string>;
|
|
310
|
+
readonly displayProperty: InputSignal<string>;
|
|
311
|
+
set entriesList(value: any[] | {
|
|
312
|
+
key: number;
|
|
313
|
+
value: Observable<any> | string;
|
|
314
|
+
}[] | null | undefined);
|
|
315
|
+
set filters(value: {
|
|
316
|
+
[id: string]: any;
|
|
317
|
+
});
|
|
318
|
+
readonly label: InputSignal<string>;
|
|
319
|
+
readonly maxEntries: InputSignal<number>;
|
|
320
|
+
readonly minimumLengthSearch: InputSignal<number>;
|
|
321
|
+
readonly notes: InputSignal<string>;
|
|
322
|
+
readonly readOnly: InputSignal<boolean>;
|
|
323
|
+
/**
|
|
324
|
+
* Whether the field accepts typing to narrow the list.
|
|
325
|
+
*
|
|
326
|
+
* A catalog of a handful of entries is a picker, not a search: typing only gets in the way, and
|
|
327
|
+
* the minimum-length rule would hide the very entries the user opened the field to choose from.
|
|
328
|
+
* Turning this off leaves the input read-only to the keyboard while the dropdown still opens on
|
|
329
|
+
* click and the clear button still works -- unlike {@link readOnly}, which means the value
|
|
330
|
+
* cannot be changed at all.
|
|
331
|
+
*
|
|
332
|
+
* It does not suit an endpoint that answers shouldUseCriteria: that endpoint returns nothing
|
|
333
|
+
* until it is given criteria, and there would be no way left to type any.
|
|
334
|
+
*/
|
|
335
|
+
readonly searchable: InputSignal<boolean>;
|
|
336
|
+
set searchEndpoint(value: string | undefined);
|
|
337
|
+
readonly validations: InputSignal<{
|
|
338
|
+
[id: string]: string;
|
|
339
|
+
}>;
|
|
340
|
+
readonly valueProperty: InputSignal<string>;
|
|
341
|
+
protected readonly displayedEntries: WritableSignal<ICatalogEntry[]>;
|
|
342
|
+
protected readonly focusedIndex: WritableSignal<number>;
|
|
343
|
+
protected readonly isDropDownShown: WritableSignal<boolean>;
|
|
344
|
+
protected readonly isFocused: WritableSignal<boolean>;
|
|
345
|
+
protected readonly isLoading: WritableSignal<boolean>;
|
|
346
|
+
protected readonly selectedValue: WritableSignal<any>;
|
|
347
|
+
protected readonly shouldUseCriteria: WritableSignal<boolean>;
|
|
348
|
+
protected readonly showFailureMessage: WritableSignal<boolean>;
|
|
349
|
+
protected readonly showMinimumCharactersMessage: WritableSignal<boolean>;
|
|
350
|
+
protected readonly showNoResultsMessage: WritableSignal<boolean>;
|
|
351
|
+
private static instanceCounter;
|
|
352
|
+
private _entriesList?;
|
|
353
|
+
private _filters;
|
|
354
|
+
private _searchEndpoint?;
|
|
355
|
+
private catalogService;
|
|
356
|
+
private dataGridDataset;
|
|
357
|
+
private entriesDataSource;
|
|
358
|
+
private filterDiffer?;
|
|
359
|
+
private readonly formGroup;
|
|
360
|
+
private readonly formGroupName;
|
|
361
|
+
private instanceId;
|
|
362
|
+
private isDataInitialized;
|
|
363
|
+
private isSubscriptionInitialized;
|
|
364
|
+
private keyValueDiffers;
|
|
365
|
+
private lastCriteriaUsed;
|
|
366
|
+
private overlay;
|
|
367
|
+
private overlayRef?;
|
|
368
|
+
private positionBuilder;
|
|
369
|
+
private searchSubject;
|
|
370
|
+
private viewContainerRef;
|
|
371
|
+
private wasClickedOutside;
|
|
372
|
+
get entriesList(): any[] | {
|
|
373
|
+
key: number;
|
|
374
|
+
value: Observable<any> | string;
|
|
375
|
+
}[] | null | undefined;
|
|
376
|
+
get filters(): {
|
|
377
|
+
[id: string]: any;
|
|
378
|
+
} | undefined;
|
|
379
|
+
get searchEndpoint(): string | undefined;
|
|
380
|
+
protected get activeDescendantId(): string | null;
|
|
381
|
+
protected get displayControl(): FormControl;
|
|
382
|
+
protected get formControl(): FormControl;
|
|
383
|
+
protected get formControlName(): string;
|
|
384
|
+
protected get formDisplayControlName(): string;
|
|
385
|
+
protected get isInvalid(): boolean;
|
|
386
|
+
protected get isTouched(): boolean;
|
|
387
|
+
protected get listboxId(): string;
|
|
388
|
+
/**
|
|
389
|
+
* Whether the button that empties the field is offered.
|
|
390
|
+
*
|
|
391
|
+
* It asks the form control, not {@link selectedValue}. The latter is only written when this
|
|
392
|
+
* component sees the value arrive -- from a pick in the dropdown, or from the initial sync in
|
|
393
|
+
* ngOnInit. A value patched in afterwards without an event, which is how a saved filter is
|
|
394
|
+
* restored into a form this component has already initialised, reaches the control and the
|
|
395
|
+
* display without ever reaching {@link selectedValue}. Keying the button off it left the field
|
|
396
|
+
* showing a value with no way to remove it.
|
|
397
|
+
*/
|
|
398
|
+
protected get showClearButton(): boolean;
|
|
399
|
+
private get hasSearchEndpoint();
|
|
400
|
+
constructor();
|
|
401
|
+
ngAfterViewInit(): void;
|
|
402
|
+
ngOnDestroy(): void;
|
|
403
|
+
ngOnInit(): void;
|
|
404
|
+
protected onContainerBlur(): void;
|
|
405
|
+
protected onContainerClick(): void;
|
|
406
|
+
protected onContainerFocus(): void;
|
|
407
|
+
protected onClearClick(event: MouseEvent): void;
|
|
408
|
+
protected onKeyDown(event: KeyboardEvent): void;
|
|
409
|
+
protected onDropDownErrorClick(): void;
|
|
410
|
+
protected onDropDownItemClick(entry: ICatalogEntry): void;
|
|
411
|
+
protected getOptionId(index: number): string;
|
|
412
|
+
/**
|
|
413
|
+
* Re-reads the catalog from its endpoint.
|
|
414
|
+
*
|
|
415
|
+
* The entries are fetched once, when the field initializes, so a screen that changes the data
|
|
416
|
+
* behind the catalog -- granting a role, moving an employee, anything that alters what the
|
|
417
|
+
* endpoint would now answer -- otherwise keeps offering the list it read before the change.
|
|
418
|
+
*
|
|
419
|
+
* It re-reads rather than merely re-runs the last request, because the number of entries may
|
|
420
|
+
* have crossed the threshold that decides whether the endpoint requires search criteria.
|
|
421
|
+
*/
|
|
422
|
+
refresh(): void;
|
|
423
|
+
private applySearchCriteria;
|
|
424
|
+
private checkAndAddDisplayControl;
|
|
425
|
+
private closeDropdownOverlay;
|
|
426
|
+
private initializeEntriesDataSource;
|
|
427
|
+
private initializeSearch;
|
|
428
|
+
private openDropdownOverlay;
|
|
429
|
+
private refreshSearch;
|
|
430
|
+
private resetMessages;
|
|
431
|
+
private resolveDisplay;
|
|
432
|
+
private syncDisplayFromCurrentValue;
|
|
433
|
+
/**
|
|
434
|
+
* Decides whether the display control has to be written again.
|
|
435
|
+
*
|
|
436
|
+
* The value on its own is not enough. Resetting a form clears the display control and then
|
|
437
|
+
* patches the same value back, so an unchanged value can still leave the display empty. That
|
|
438
|
+
* only happens when the stored value equals the control's initial value, which is why it used
|
|
439
|
+
* to show up on the default entry alone.
|
|
440
|
+
*/
|
|
441
|
+
private shouldRefreshDisplay;
|
|
442
|
+
private syncFormControlsEnabledDisabled;
|
|
443
|
+
private tryFilterFromDataset;
|
|
444
|
+
private updateFilters;
|
|
445
|
+
private updateMinimumCharactersMessageVisibility;
|
|
446
|
+
private getNativeInput;
|
|
447
|
+
private scrollFocusedItemIntoView;
|
|
448
|
+
private setInputAriaAttributes;
|
|
449
|
+
private updateInputAriaActiveDescendant;
|
|
450
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CatalogSelectComponent, never>;
|
|
451
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CatalogSelectComponent, "lib-catalog-select", never, {
|
|
452
|
+
"autofocus": {
|
|
453
|
+
"alias": "autofocus";
|
|
454
|
+
"required": false;
|
|
455
|
+
"isSignal": true;
|
|
456
|
+
};
|
|
457
|
+
"controlName": {
|
|
458
|
+
"alias": "controlName";
|
|
459
|
+
"required": true;
|
|
460
|
+
"isSignal": true;
|
|
461
|
+
};
|
|
462
|
+
"displayControlName": {
|
|
463
|
+
"alias": "displayControlName";
|
|
464
|
+
"required": true;
|
|
465
|
+
"isSignal": true;
|
|
466
|
+
};
|
|
467
|
+
"displayProperty": {
|
|
468
|
+
"alias": "displayProperty";
|
|
469
|
+
"required": false;
|
|
470
|
+
"isSignal": true;
|
|
471
|
+
};
|
|
472
|
+
"entriesList": {
|
|
473
|
+
"alias": "entriesList";
|
|
474
|
+
"required": false;
|
|
475
|
+
};
|
|
476
|
+
"filters": {
|
|
477
|
+
"alias": "filters";
|
|
478
|
+
"required": false;
|
|
479
|
+
};
|
|
480
|
+
"label": {
|
|
481
|
+
"alias": "label";
|
|
482
|
+
"required": false;
|
|
483
|
+
"isSignal": true;
|
|
484
|
+
};
|
|
485
|
+
"maxEntries": {
|
|
486
|
+
"alias": "maxEntries";
|
|
487
|
+
"required": false;
|
|
488
|
+
"isSignal": true;
|
|
489
|
+
};
|
|
490
|
+
"minimumLengthSearch": {
|
|
491
|
+
"alias": "minimumLengthSearch";
|
|
492
|
+
"required": false;
|
|
493
|
+
"isSignal": true;
|
|
494
|
+
};
|
|
495
|
+
"notes": {
|
|
496
|
+
"alias": "notes";
|
|
497
|
+
"required": false;
|
|
498
|
+
"isSignal": true;
|
|
499
|
+
};
|
|
500
|
+
"readOnly": {
|
|
501
|
+
"alias": "readOnly";
|
|
502
|
+
"required": false;
|
|
503
|
+
"isSignal": true;
|
|
504
|
+
};
|
|
505
|
+
"searchable": {
|
|
506
|
+
"alias": "searchable";
|
|
507
|
+
"required": false;
|
|
508
|
+
"isSignal": true;
|
|
509
|
+
};
|
|
510
|
+
"searchEndpoint": {
|
|
511
|
+
"alias": "searchEndpoint";
|
|
512
|
+
"required": false;
|
|
513
|
+
};
|
|
514
|
+
"validations": {
|
|
515
|
+
"alias": "validations";
|
|
516
|
+
"required": false;
|
|
517
|
+
"isSignal": true;
|
|
518
|
+
};
|
|
519
|
+
"valueProperty": {
|
|
520
|
+
"alias": "valueProperty";
|
|
521
|
+
"required": false;
|
|
522
|
+
"isSignal": true;
|
|
523
|
+
};
|
|
524
|
+
}, {}, never, never, true, never>;
|
|
525
|
+
}
|
|
526
|
+
export declare class CatalogService {
|
|
527
|
+
private http;
|
|
528
|
+
search(endpoint: string, maxResults: number, criteria?: string, filters?: {
|
|
529
|
+
[key: string]: string;
|
|
530
|
+
} | null): Observable<ICatalogResult>;
|
|
531
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CatalogService, never>;
|
|
532
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
533
|
+
}
|
|
534
|
+
export declare abstract class DataProviderService<TEntityModel> implements OnDestroy {
|
|
535
|
+
protected activatedRoute: ActivatedRoute;
|
|
536
|
+
protected destroy$: Subject<boolean>;
|
|
537
|
+
protected shouldLazyLoad: boolean;
|
|
538
|
+
private readonly _entityID;
|
|
539
|
+
private errorSubject;
|
|
540
|
+
private isLoading;
|
|
541
|
+
private isModelLoaded;
|
|
542
|
+
private modelCache;
|
|
543
|
+
get entityID(): number | undefined;
|
|
544
|
+
get hasEntityID(): boolean;
|
|
545
|
+
constructor();
|
|
546
|
+
ngOnDestroy(): void;
|
|
547
|
+
getError$(): Observable<HttpErrorResponse>;
|
|
548
|
+
abstract getTitle(entity: TEntityModel): string;
|
|
549
|
+
getModel$(): Observable<TEntityModel | null>;
|
|
550
|
+
refreshModel(): void;
|
|
551
|
+
resetForNewEntity(): void;
|
|
552
|
+
abstract saveModel(model: any): Observable<TEntityModel>;
|
|
553
|
+
updateModel(model: any): void;
|
|
554
|
+
protected abstract loadModel(entityID?: number): Observable<TEntityModel | null>;
|
|
555
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DataProviderService<any>, never>;
|
|
556
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
557
|
+
}
|
|
558
|
+
export declare abstract class BaseDataset implements OnDestroy {
|
|
559
|
+
/**
|
|
560
|
+
* Bumped by every write to dataset state, and read by every accessor below it.
|
|
561
|
+
*
|
|
562
|
+
* A dataset is rows, keys and selections mutated in place -- pushed, spliced, reassigned -- so a
|
|
563
|
+
* signal holding the array could not see the change. This counter stands in for one: the read
|
|
564
|
+
* inside each accessor is what makes a template using it re-render. It is a bridge for mutable
|
|
565
|
+
* collections, not a pattern to copy into a component; there the state itself is the signal.
|
|
566
|
+
* See docs/guides/reactivity.md.
|
|
567
|
+
*/
|
|
568
|
+
private readonly revision;
|
|
569
|
+
protected dataProvider: DataProviderService<any> | null;
|
|
570
|
+
protected destroy$: Subject<boolean>;
|
|
571
|
+
private _parentEntityId?;
|
|
572
|
+
get parentEntityId(): any;
|
|
573
|
+
set parentEntityId(value: any);
|
|
574
|
+
constructor();
|
|
575
|
+
ngOnDestroy(): void;
|
|
576
|
+
/** Announces that dataset state changed, so views reading it re-render. */
|
|
577
|
+
protected touched(): void;
|
|
578
|
+
/** Takes a tracked dependency on the dataset's state. Call it first in any accessor. */
|
|
579
|
+
protected tracked(): void;
|
|
580
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BaseDataset, never>;
|
|
581
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
582
|
+
}
|
|
583
|
+
export declare class GridConfigsProvider<TGridConfigs extends GridConfigs = GridConfigs> {
|
|
584
|
+
protected _configs: TGridConfigs;
|
|
585
|
+
get configs(): TGridConfigs;
|
|
586
|
+
constructor();
|
|
587
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GridConfigsProvider<any>, never>;
|
|
588
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
589
|
+
}
|
|
590
|
+
export declare abstract class GridDataset extends BaseDataset {
|
|
591
|
+
configs: GridConfigs;
|
|
592
|
+
filtersChanged: EventEmitter<{
|
|
593
|
+
[key: string]: string;
|
|
594
|
+
}>;
|
|
595
|
+
private _isLoading;
|
|
596
|
+
private _loadedLastRow;
|
|
597
|
+
private _totalRows?;
|
|
598
|
+
loadFinished: EventEmitter<boolean>;
|
|
599
|
+
loadStarted: EventEmitter<void>;
|
|
600
|
+
protected compareProperty: string;
|
|
601
|
+
protected configsProvider: GridConfigsProvider;
|
|
602
|
+
protected focusedRow: string | null;
|
|
603
|
+
protected recordBlock: number;
|
|
604
|
+
private _hasBeenLoaded;
|
|
605
|
+
private _loadedKeys?;
|
|
606
|
+
private _loadedRows?;
|
|
607
|
+
private queryFilters?;
|
|
608
|
+
get isLoading(): boolean;
|
|
609
|
+
set isLoading(value: boolean);
|
|
610
|
+
get loadedLastRow(): boolean;
|
|
611
|
+
set loadedLastRow(value: boolean);
|
|
612
|
+
get totalRows(): number | undefined;
|
|
613
|
+
set totalRows(value: number | undefined);
|
|
614
|
+
get filters(): {
|
|
615
|
+
[key: string]: string;
|
|
616
|
+
} | undefined;
|
|
617
|
+
get hasBeenLoaded(): boolean;
|
|
618
|
+
get hasLoadedRows(): boolean;
|
|
619
|
+
get keyProperty(): string;
|
|
620
|
+
get loadedKeys(): string[] | undefined;
|
|
621
|
+
get loadedRows(): any[] | undefined;
|
|
622
|
+
get parentEntityId(): any;
|
|
623
|
+
set parentEntityId(value: any);
|
|
624
|
+
constructor();
|
|
625
|
+
addNewRow(row: any): void;
|
|
626
|
+
/** The key of the currently focused row, or null. Read by DataGridRowComponent's host binding. */
|
|
627
|
+
get focusedRowKey(): string | null;
|
|
628
|
+
clearFocusedRow(): void;
|
|
629
|
+
getRowData(key: string): any | null;
|
|
630
|
+
getRowID(key: string): any;
|
|
631
|
+
getRowInternalKey(row: any): string;
|
|
632
|
+
hasRowWithID(id: any): boolean;
|
|
633
|
+
isKeyExists(key: string): boolean;
|
|
634
|
+
loadRows(): void;
|
|
635
|
+
refresh(): void;
|
|
636
|
+
removeKeys(keys: string[]): void;
|
|
637
|
+
setFilters(filters?: {
|
|
638
|
+
[key: string]: string;
|
|
639
|
+
}): void;
|
|
640
|
+
setFocusedRow(key: string): void;
|
|
641
|
+
updateRow(key: string, newRowData: any): void;
|
|
642
|
+
protected clearLoadedRows(): void;
|
|
643
|
+
protected updateLoadedRows(rows: any[]): void;
|
|
644
|
+
abstract getData(params?: any): Observable<any[] | {
|
|
645
|
+
items: any[];
|
|
646
|
+
totalRows: number;
|
|
647
|
+
}>;
|
|
648
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GridDataset, never>;
|
|
649
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
650
|
+
}
|
|
651
|
+
export declare abstract class DataGridDataset extends GridDataset {
|
|
652
|
+
selectedRowsChanged: EventEmitter<{
|
|
653
|
+
[id: string]: {
|
|
654
|
+
rowData: any;
|
|
655
|
+
selected: boolean;
|
|
656
|
+
};
|
|
657
|
+
}>;
|
|
658
|
+
configs: DataGridConfigs;
|
|
659
|
+
columns: IGridColumn[];
|
|
660
|
+
private _selectedRowKeys;
|
|
661
|
+
get selectedRowKeys(): string[];
|
|
662
|
+
set selectedRowKeys(value: string[]);
|
|
663
|
+
get columnsSize(): string;
|
|
664
|
+
get hasSelectedRows(): boolean;
|
|
665
|
+
constructor();
|
|
666
|
+
clearSelection(): void;
|
|
667
|
+
export(_format: string, _parameters: IListParameters): Observable<HttpResponse<Blob>>;
|
|
668
|
+
deselectRow(key: string): void;
|
|
669
|
+
deselectRowID(id: any): void;
|
|
670
|
+
getSelectedRowsData(): any[];
|
|
671
|
+
isKeySelected(key: any): boolean;
|
|
672
|
+
refresh(): void;
|
|
673
|
+
removeKeys(keys: string[]): void;
|
|
674
|
+
selectRow(key: string): void;
|
|
675
|
+
selectRowID(id: any): void;
|
|
676
|
+
selectRows(keys: string[]): void;
|
|
677
|
+
setFocusedRow(key: any): void;
|
|
678
|
+
protected removeSelectedRow(key: string): void;
|
|
679
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DataGridDataset, never>;
|
|
680
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
681
|
+
}
|
|
682
|
+
export declare abstract class MultiEditorDataset extends BaseDataset {
|
|
683
|
+
savedChanges: EventEmitter<void>;
|
|
684
|
+
protected readonly dataGridDataset: DataGridDataset;
|
|
685
|
+
private fakeIDsGenerated;
|
|
686
|
+
private modifiedValues;
|
|
687
|
+
constructor();
|
|
688
|
+
clearChangedValues(): void;
|
|
689
|
+
removeValue(key: string): void;
|
|
690
|
+
saveChanges(): Observable<any>;
|
|
691
|
+
storeFakeIDGenerated(id: any): void;
|
|
692
|
+
updateValues(key: string, newRowData: any): void;
|
|
693
|
+
abstract newData(id: any): any;
|
|
694
|
+
abstract saveData(batchUpdate: IBatchUpdate<any, any>): Observable<any>;
|
|
695
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MultiEditorDataset, never>;
|
|
696
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
697
|
+
}
|
|
698
|
+
export declare abstract class MultiSelectResultDataset extends GridDataset {
|
|
699
|
+
savedChanges: EventEmitter<void>;
|
|
700
|
+
private _displayedIDs;
|
|
701
|
+
private _displayedRows;
|
|
702
|
+
private _idsToAdd;
|
|
703
|
+
private _idsToRemove;
|
|
704
|
+
private addedRowData;
|
|
705
|
+
get displayedIDs(): any[];
|
|
706
|
+
get displayedRows(): any[];
|
|
707
|
+
get idsToAdd(): any[];
|
|
708
|
+
get idsToRemove(): any[];
|
|
709
|
+
refresh(): void;
|
|
710
|
+
saveChanges(): Observable<any>;
|
|
711
|
+
/**
|
|
712
|
+
* Records that an entry is to be added, if it is not already recorded or already saved.
|
|
713
|
+
*
|
|
714
|
+
* Idempotent: the same entry can be reported more than once, because a click on the grid and a
|
|
715
|
+
* click in the panel both land here through different paths.
|
|
716
|
+
*/
|
|
717
|
+
setIDToAdd(idToAdd: any, rowData: any): void;
|
|
718
|
+
/** Idempotent, for the same reason as {@link setIDToAdd}. */
|
|
719
|
+
setIDToRemove(idToRemove: any): void;
|
|
720
|
+
protected updateLoadedRows(rows: any[]): void;
|
|
721
|
+
private clearSelection;
|
|
722
|
+
private isExistingID;
|
|
723
|
+
private updateDisplayedRows;
|
|
724
|
+
protected abstract saveData(changedIds: IMultiSelectorChanges): Observable<any>;
|
|
725
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelectResultDataset, never>;
|
|
726
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
727
|
+
}
|
|
728
|
+
export declare class FormGroupService {
|
|
729
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FormGroupService, never>;
|
|
730
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
731
|
+
}
|
|
732
|
+
export declare class FormService {
|
|
733
|
+
fieldRefreshed: EventEmitter<{
|
|
734
|
+
fieldName: string;
|
|
735
|
+
value?: any;
|
|
736
|
+
loading?: boolean;
|
|
737
|
+
}>;
|
|
738
|
+
modelRefreshed: EventEmitter<any>;
|
|
739
|
+
private readonly _loading;
|
|
740
|
+
private readonly _model;
|
|
741
|
+
private readonly currentMode;
|
|
742
|
+
private readonly formStatus;
|
|
743
|
+
private editCanceled$;
|
|
744
|
+
private form?;
|
|
745
|
+
private formStatusSubscription?;
|
|
746
|
+
private initialValue?;
|
|
747
|
+
get editCanceled(): Observable<void>;
|
|
748
|
+
get isEditMode(): boolean;
|
|
749
|
+
get isValid(): boolean;
|
|
750
|
+
get loading(): boolean;
|
|
751
|
+
set loading(value: boolean);
|
|
752
|
+
get model(): any | null;
|
|
753
|
+
set model(value: any | null);
|
|
754
|
+
beginEdit(): void;
|
|
755
|
+
beginFieldLoading(fieldName: string): void;
|
|
756
|
+
cancelEdit(): void;
|
|
757
|
+
disableForm(): void;
|
|
758
|
+
enableForm(): void;
|
|
759
|
+
getModelFromForm(): any;
|
|
760
|
+
initializeForm(form: FormGroup): void;
|
|
761
|
+
markAllAsTouched(): void;
|
|
762
|
+
resetForm(): void;
|
|
763
|
+
setFieldValue(fieldName: string, value: any): void;
|
|
764
|
+
setValidationErrorsFromHttpResponse(errorResponse: HttpErrorResponse): void;
|
|
765
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FormService, never>;
|
|
766
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
767
|
+
}
|
|
768
|
+
export declare abstract class SidebarService {
|
|
769
|
+
childrenFailed: EventEmitter<SidebarMenu>;
|
|
770
|
+
childrenLoading: EventEmitter<SidebarMenu>;
|
|
771
|
+
childrenInitialized: EventEmitter<SidebarMenu>;
|
|
772
|
+
menuExternalUrlSelected: EventEmitter<SidebarMenu>;
|
|
773
|
+
menuUrlSelected: EventEmitter<SidebarMenu>;
|
|
774
|
+
selectionChanged: EventEmitter<SidebarMenu>;
|
|
775
|
+
private readonly _isActive;
|
|
776
|
+
private readonly _isCollapsed;
|
|
777
|
+
private readonly _shouldActivate;
|
|
778
|
+
private menus;
|
|
779
|
+
private selectedMenu;
|
|
780
|
+
/** Whether the collapsed sidebar is currently held open. */
|
|
781
|
+
get isActive(): boolean;
|
|
782
|
+
set isActive(value: boolean);
|
|
783
|
+
get isCollapsed(): boolean;
|
|
784
|
+
set isCollapsed(value: boolean);
|
|
785
|
+
/** Whether a click should hold the sidebar open, which depends on width and collapsed state. */
|
|
786
|
+
get shouldActivate(): boolean;
|
|
787
|
+
set shouldActivate(value: boolean);
|
|
788
|
+
deselectAll(): void;
|
|
789
|
+
loadChildren(parentMenu: SidebarMenu): void;
|
|
790
|
+
/**
|
|
791
|
+
* Loads a parent's children and hands them back, for callers that need them before the user
|
|
792
|
+
* clicks -- a sidebar rendering areas flat has to have them up front. {@link loadChildren} is
|
|
793
|
+
* the fire-and-forget variant that also raises the loading and failure events.
|
|
794
|
+
*/
|
|
795
|
+
loadChildrenFor(parentMenu: SidebarMenu): Observable<SidebarMenu[]>;
|
|
796
|
+
loadRoot(): Observable<SidebarMenu[]>;
|
|
797
|
+
select(menu: SidebarMenu): void;
|
|
798
|
+
private deselectMenu;
|
|
799
|
+
private selectMenu;
|
|
800
|
+
abstract getMenuFromUrl(url: string): Observable<SidebarMenu>;
|
|
801
|
+
abstract getUserProfile(): ISidebarProfile | undefined;
|
|
802
|
+
protected abstract loadMenus(parentMenuID: SidebarMenu | null): Observable<SidebarMenu[]>;
|
|
803
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SidebarService, never>;
|
|
804
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
805
|
+
}
|
|
806
|
+
declare namespace data_grid_component_d_exports {
|
|
807
|
+
export { DataGridComponent };
|
|
808
|
+
}
|
|
809
|
+
export declare class DataGridComponent extends BaseComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
810
|
+
private readonly bodyElement;
|
|
811
|
+
private readonly viewport;
|
|
812
|
+
readonly disabled: InputSignal<boolean>;
|
|
813
|
+
readonly lazyLoadRows: InputSignal<boolean>;
|
|
814
|
+
readonly showButtons: InputSignal<boolean>;
|
|
815
|
+
protected dataGridDataset: DataGridDataset;
|
|
816
|
+
protected readonly hasFailed: WritableSignal<boolean>;
|
|
817
|
+
protected readonly headerRightMargin: WritableSignal<number>;
|
|
818
|
+
protected readonly headerScrollLeft: WritableSignal<number>;
|
|
819
|
+
protected readonly loading: WritableSignal<boolean>;
|
|
820
|
+
private bodyResized$;
|
|
821
|
+
private bodyResizeObserver?;
|
|
822
|
+
private gridRoute;
|
|
823
|
+
private isGridCurrentUrl;
|
|
824
|
+
private lastPosition;
|
|
825
|
+
private ngZone;
|
|
826
|
+
private router;
|
|
827
|
+
private selectionColRealSize?;
|
|
828
|
+
protected get bodyMinHeight(): number;
|
|
829
|
+
protected get columns(): IGridColumn[];
|
|
830
|
+
protected get configs(): DataGridConfigs;
|
|
831
|
+
protected get gridColumns(): string;
|
|
832
|
+
protected get hasBeenLoaded(): boolean;
|
|
833
|
+
protected get hasLoadedRows(): boolean;
|
|
834
|
+
protected get hasMessageToDisplayWhenEmpty(): boolean;
|
|
835
|
+
protected get isHideColumns(): boolean;
|
|
836
|
+
protected get isShowMultiSelect(): boolean;
|
|
837
|
+
protected get messageToDisplayWhenEmpty(): string;
|
|
838
|
+
protected get messageToDisplayWhenLazyLoad(): string;
|
|
839
|
+
protected get messageToDisplayWhenFailed(): string;
|
|
840
|
+
protected get selectionColWidth(): string;
|
|
841
|
+
protected get shouldDisplayMessageWhenEmpty(): boolean;
|
|
842
|
+
/**
|
|
843
|
+
* Whether the grid is in the document, which it is not while the route-reuse strategy holds its
|
|
844
|
+
* view detached -- the list a tab keeps in its history while the user is on a record.
|
|
845
|
+
*
|
|
846
|
+
* Nothing may measure the CDK viewport then. The body leaving the document is itself a resize,
|
|
847
|
+
* to nothing, and measuring makes the viewport work out its rendered range from a scroll offset
|
|
848
|
+
* of 0 and write that out while detached, which leaves its own change-detection flag stuck until
|
|
849
|
+
* the view renders again. Reattached and scrolled back, the viewport then computes the right
|
|
850
|
+
* range but cannot write the content offset out: the rows are rendered, translated to the top,
|
|
851
|
+
* and the viewport shows the place the user had scrolled to -- an empty list. Coming back is a
|
|
852
|
+
* resize as well, from nothing to the panel, so the measurement still happens, on the way in.
|
|
853
|
+
*/
|
|
854
|
+
private get isBodyAttached();
|
|
855
|
+
constructor();
|
|
856
|
+
ngOnInit(): void;
|
|
857
|
+
ngAfterViewInit(): void;
|
|
858
|
+
ngOnDestroy(): void;
|
|
859
|
+
protected onSelectionResized(newSize: number): void;
|
|
860
|
+
protected isFirstVisibleRow(rowIndex: number): boolean;
|
|
861
|
+
private syncHeaderScroll;
|
|
862
|
+
protected trackByFn(index: number, item: any): number;
|
|
863
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DataGridComponent, never>;
|
|
864
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DataGridComponent, "lib-data-grid", never, {
|
|
865
|
+
"disabled": {
|
|
866
|
+
"alias": "disabled";
|
|
867
|
+
"required": false;
|
|
868
|
+
"isSignal": true;
|
|
869
|
+
};
|
|
870
|
+
"lazyLoadRows": {
|
|
871
|
+
"alias": "lazyLoadRows";
|
|
872
|
+
"required": false;
|
|
873
|
+
"isSignal": true;
|
|
874
|
+
};
|
|
875
|
+
"showButtons": {
|
|
876
|
+
"alias": "showButtons";
|
|
877
|
+
"required": false;
|
|
878
|
+
"isSignal": true;
|
|
879
|
+
};
|
|
880
|
+
}, {}, never, ["[buttons]"], true, never>;
|
|
881
|
+
}
|
|
882
|
+
declare namespace data_grid_row_component_d_exports {
|
|
883
|
+
export { DataGridRowComponent };
|
|
884
|
+
}
|
|
885
|
+
export declare class DataGridRowComponent extends BaseComponent implements OnInit {
|
|
886
|
+
disabled: boolean;
|
|
887
|
+
isFirstRow: boolean;
|
|
888
|
+
set rowData(value: any);
|
|
889
|
+
selectionResized: EventEmitter<number>;
|
|
890
|
+
setFocus(): void;
|
|
891
|
+
protected dataGridDataset: DataGridDataset;
|
|
892
|
+
protected readonly selected: WritableSignal<boolean>;
|
|
893
|
+
private _rowData;
|
|
894
|
+
private elementRef;
|
|
895
|
+
get rowData(): any;
|
|
896
|
+
protected get columns(): IGridColumn[];
|
|
897
|
+
private get isLaidOut();
|
|
898
|
+
private get isRowDataSelected();
|
|
899
|
+
protected get rowKey(): string;
|
|
900
|
+
constructor();
|
|
901
|
+
ngOnInit(): void;
|
|
902
|
+
protected onResize(colIndex: number, event: ResizeObserverEntry): void;
|
|
903
|
+
protected onResizeSelection(event: ResizeObserverEntry): void;
|
|
904
|
+
protected onToggleSelection(): void;
|
|
905
|
+
protected getValue(field: string): any;
|
|
906
|
+
private refreshSelection;
|
|
907
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DataGridRowComponent, never>;
|
|
908
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DataGridRowComponent, "lib-data-grid-row", never, {
|
|
909
|
+
"disabled": {
|
|
910
|
+
"alias": "disabled";
|
|
911
|
+
"required": false;
|
|
912
|
+
};
|
|
913
|
+
"isFirstRow": {
|
|
914
|
+
"alias": "isFirstRow";
|
|
915
|
+
"required": false;
|
|
916
|
+
};
|
|
917
|
+
"rowData": {
|
|
918
|
+
"alias": "rowData";
|
|
919
|
+
"required": false;
|
|
920
|
+
};
|
|
921
|
+
}, {
|
|
922
|
+
"selectionResized": "selectionResized";
|
|
923
|
+
}, never, never, true, never>;
|
|
924
|
+
}
|
|
925
|
+
declare namespace form_input_component_d_exports {
|
|
926
|
+
export { FormInputComponent };
|
|
927
|
+
}
|
|
928
|
+
export declare class FormInputComponent extends BaseComponent implements OnInit {
|
|
929
|
+
readonly autofocus: InputSignal<boolean>;
|
|
930
|
+
readonly controlName: InputSignal<string>;
|
|
931
|
+
readonly disabledControlName: InputSignal<string | undefined>;
|
|
932
|
+
readonly displayReadOnlyAsDisabled: InputSignal<boolean>;
|
|
933
|
+
readonly invalid: InputSignal<boolean>;
|
|
934
|
+
readonly isDisabled: InputSignal<boolean>;
|
|
935
|
+
readonly isFullHeight: InputSignal<boolean>;
|
|
936
|
+
readonly maxLength: InputSignal<number | undefined>;
|
|
937
|
+
readonly min: InputSignal<number | undefined>;
|
|
938
|
+
readonly readOnly: InputSignal<boolean>;
|
|
939
|
+
readonly rows: InputSignal<number | undefined>;
|
|
940
|
+
readonly step: InputSignal<number>;
|
|
941
|
+
readonly type: InputSignal<string>;
|
|
942
|
+
readonly fixedValue: ModelSignal<any>;
|
|
943
|
+
readonly format: ModelSignal<string | undefined>;
|
|
944
|
+
readonly blurred: OutputEmitterRef<void>;
|
|
945
|
+
readonly changed: OutputEmitterRef<any>;
|
|
946
|
+
readonly fixedValueChanged: OutputEmitterRef<string>;
|
|
947
|
+
readonly focused: OutputEmitterRef<void>;
|
|
948
|
+
readonly inputChanged: OutputEmitterRef<void>;
|
|
949
|
+
protected readonly formGroupDirective: FormGroupDirective;
|
|
950
|
+
protected readonly formGroupName: FormGroupName;
|
|
951
|
+
protected readonly formService: FormService;
|
|
952
|
+
protected get formControl(): FormControl<any> | null;
|
|
953
|
+
protected get formControlName(): string;
|
|
954
|
+
protected get formGroup(): FormGroup;
|
|
955
|
+
protected get isFormControl(): boolean;
|
|
956
|
+
protected get isFormEditMode(): boolean;
|
|
957
|
+
protected get parentGroups(): string[];
|
|
958
|
+
protected get stepAttributeValue(): number | null;
|
|
959
|
+
protected get minAttributeValue(): number | null;
|
|
960
|
+
constructor();
|
|
961
|
+
ngOnInit(): void;
|
|
962
|
+
protected onBlur(): void;
|
|
963
|
+
protected onChange(value: any): void;
|
|
964
|
+
protected onFocus(): void;
|
|
965
|
+
protected onInput(): void;
|
|
966
|
+
protected onValueChanged(newText: string): void;
|
|
967
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FormInputComponent, never>;
|
|
968
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FormInputComponent, "lib-form-input", never, {
|
|
969
|
+
"autofocus": {
|
|
970
|
+
"alias": "autofocus";
|
|
971
|
+
"required": false;
|
|
972
|
+
"isSignal": true;
|
|
973
|
+
};
|
|
974
|
+
"controlName": {
|
|
975
|
+
"alias": "controlName";
|
|
976
|
+
"required": false;
|
|
977
|
+
"isSignal": true;
|
|
978
|
+
};
|
|
979
|
+
"disabledControlName": {
|
|
980
|
+
"alias": "disabledControlName";
|
|
981
|
+
"required": false;
|
|
982
|
+
"isSignal": true;
|
|
983
|
+
};
|
|
984
|
+
"displayReadOnlyAsDisabled": {
|
|
985
|
+
"alias": "displayReadOnlyAsDisabled";
|
|
986
|
+
"required": false;
|
|
987
|
+
"isSignal": true;
|
|
988
|
+
};
|
|
989
|
+
"invalid": {
|
|
990
|
+
"alias": "invalid";
|
|
991
|
+
"required": false;
|
|
992
|
+
"isSignal": true;
|
|
993
|
+
};
|
|
994
|
+
"isDisabled": {
|
|
995
|
+
"alias": "isDisabled";
|
|
996
|
+
"required": false;
|
|
997
|
+
"isSignal": true;
|
|
998
|
+
};
|
|
999
|
+
"isFullHeight": {
|
|
1000
|
+
"alias": "isFullHeight";
|
|
1001
|
+
"required": false;
|
|
1002
|
+
"isSignal": true;
|
|
1003
|
+
};
|
|
1004
|
+
"maxLength": {
|
|
1005
|
+
"alias": "maxLength";
|
|
1006
|
+
"required": false;
|
|
1007
|
+
"isSignal": true;
|
|
1008
|
+
};
|
|
1009
|
+
"min": {
|
|
1010
|
+
"alias": "min";
|
|
1011
|
+
"required": false;
|
|
1012
|
+
"isSignal": true;
|
|
1013
|
+
};
|
|
1014
|
+
"readOnly": {
|
|
1015
|
+
"alias": "readOnly";
|
|
1016
|
+
"required": false;
|
|
1017
|
+
"isSignal": true;
|
|
1018
|
+
};
|
|
1019
|
+
"rows": {
|
|
1020
|
+
"alias": "rows";
|
|
1021
|
+
"required": false;
|
|
1022
|
+
"isSignal": true;
|
|
1023
|
+
};
|
|
1024
|
+
"step": {
|
|
1025
|
+
"alias": "step";
|
|
1026
|
+
"required": false;
|
|
1027
|
+
"isSignal": true;
|
|
1028
|
+
};
|
|
1029
|
+
"type": {
|
|
1030
|
+
"alias": "type";
|
|
1031
|
+
"required": false;
|
|
1032
|
+
"isSignal": true;
|
|
1033
|
+
};
|
|
1034
|
+
"fixedValue": {
|
|
1035
|
+
"alias": "fixedValue";
|
|
1036
|
+
"required": false;
|
|
1037
|
+
"isSignal": true;
|
|
1038
|
+
};
|
|
1039
|
+
"format": {
|
|
1040
|
+
"alias": "format";
|
|
1041
|
+
"required": false;
|
|
1042
|
+
"isSignal": true;
|
|
1043
|
+
};
|
|
1044
|
+
}, {
|
|
1045
|
+
"fixedValue": "fixedValueChange";
|
|
1046
|
+
"format": "formatChange";
|
|
1047
|
+
"blurred": "blurred";
|
|
1048
|
+
"changed": "changed";
|
|
1049
|
+
"fixedValueChanged": "fixedValueChanged";
|
|
1050
|
+
"focused": "focused";
|
|
1051
|
+
"inputChanged": "inputChanged";
|
|
1052
|
+
}, never, never, true, never>;
|
|
1053
|
+
}
|
|
1054
|
+
declare namespace form_input_group_component_d_exports {
|
|
1055
|
+
export { FormInputGroupComponent };
|
|
1056
|
+
}
|
|
1057
|
+
export declare class FormInputGroupComponent extends BaseComponent implements OnInit {
|
|
1058
|
+
readonly autofocus: InputSignal<boolean>;
|
|
1059
|
+
readonly alignContent: InputSignal<'center' | 'end' | 'start'>;
|
|
1060
|
+
readonly controlName: InputSignal<string>;
|
|
1061
|
+
readonly fixedValue: InputSignal<any>;
|
|
1062
|
+
readonly format: InputSignal<string | undefined>;
|
|
1063
|
+
readonly label: InputSignal<string>;
|
|
1064
|
+
readonly isDisabled: InputSignal<boolean>;
|
|
1065
|
+
readonly isFullHeight: InputSignal<boolean>;
|
|
1066
|
+
readonly maxLength: InputSignal<number | undefined>;
|
|
1067
|
+
readonly min: InputSignal<number | undefined>;
|
|
1068
|
+
readonly notes: InputSignal<string>;
|
|
1069
|
+
readonly readOnly: InputSignal<boolean>;
|
|
1070
|
+
readonly rows: InputSignal<number | undefined>;
|
|
1071
|
+
readonly showLabel: InputSignal<boolean>;
|
|
1072
|
+
readonly step: InputSignal<number>;
|
|
1073
|
+
readonly template: InputSignal<TemplateRef<any> | undefined>;
|
|
1074
|
+
readonly type: InputSignal<string>;
|
|
1075
|
+
readonly validations: InputSignal<{
|
|
1076
|
+
[id: string]: string;
|
|
1077
|
+
}>;
|
|
1078
|
+
protected readonly formGroupDirective: FormGroupDirective;
|
|
1079
|
+
protected readonly formGroupName: FormGroupName;
|
|
1080
|
+
protected formService: FormService;
|
|
1081
|
+
protected readonly loadingField: WritableSignal<boolean>;
|
|
1082
|
+
protected get formControl(): FormControl<any> | null;
|
|
1083
|
+
protected get formGroup(): FormGroup;
|
|
1084
|
+
protected get hasNotes(): boolean;
|
|
1085
|
+
protected get parentGroups(): string[];
|
|
1086
|
+
constructor();
|
|
1087
|
+
ngOnInit(): void;
|
|
1088
|
+
protected hasValidation(errorKey: string): boolean;
|
|
1089
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FormInputGroupComponent, never>;
|
|
1090
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FormInputGroupComponent, "lib-form-input-group", never, {
|
|
1091
|
+
"autofocus": {
|
|
1092
|
+
"alias": "autofocus";
|
|
1093
|
+
"required": false;
|
|
1094
|
+
"isSignal": true;
|
|
1095
|
+
};
|
|
1096
|
+
"alignContent": {
|
|
1097
|
+
"alias": "alignContent";
|
|
1098
|
+
"required": false;
|
|
1099
|
+
"isSignal": true;
|
|
1100
|
+
};
|
|
1101
|
+
"controlName": {
|
|
1102
|
+
"alias": "controlName";
|
|
1103
|
+
"required": true;
|
|
1104
|
+
"isSignal": true;
|
|
1105
|
+
};
|
|
1106
|
+
"fixedValue": {
|
|
1107
|
+
"alias": "fixedValue";
|
|
1108
|
+
"required": false;
|
|
1109
|
+
"isSignal": true;
|
|
1110
|
+
};
|
|
1111
|
+
"format": {
|
|
1112
|
+
"alias": "format";
|
|
1113
|
+
"required": false;
|
|
1114
|
+
"isSignal": true;
|
|
1115
|
+
};
|
|
1116
|
+
"label": {
|
|
1117
|
+
"alias": "label";
|
|
1118
|
+
"required": false;
|
|
1119
|
+
"isSignal": true;
|
|
1120
|
+
};
|
|
1121
|
+
"isDisabled": {
|
|
1122
|
+
"alias": "isDisabled";
|
|
1123
|
+
"required": false;
|
|
1124
|
+
"isSignal": true;
|
|
1125
|
+
};
|
|
1126
|
+
"isFullHeight": {
|
|
1127
|
+
"alias": "isFullHeight";
|
|
1128
|
+
"required": false;
|
|
1129
|
+
"isSignal": true;
|
|
1130
|
+
};
|
|
1131
|
+
"maxLength": {
|
|
1132
|
+
"alias": "maxLength";
|
|
1133
|
+
"required": false;
|
|
1134
|
+
"isSignal": true;
|
|
1135
|
+
};
|
|
1136
|
+
"min": {
|
|
1137
|
+
"alias": "min";
|
|
1138
|
+
"required": false;
|
|
1139
|
+
"isSignal": true;
|
|
1140
|
+
};
|
|
1141
|
+
"notes": {
|
|
1142
|
+
"alias": "notes";
|
|
1143
|
+
"required": false;
|
|
1144
|
+
"isSignal": true;
|
|
1145
|
+
};
|
|
1146
|
+
"readOnly": {
|
|
1147
|
+
"alias": "readOnly";
|
|
1148
|
+
"required": false;
|
|
1149
|
+
"isSignal": true;
|
|
1150
|
+
};
|
|
1151
|
+
"rows": {
|
|
1152
|
+
"alias": "rows";
|
|
1153
|
+
"required": false;
|
|
1154
|
+
"isSignal": true;
|
|
1155
|
+
};
|
|
1156
|
+
"showLabel": {
|
|
1157
|
+
"alias": "showLabel";
|
|
1158
|
+
"required": false;
|
|
1159
|
+
"isSignal": true;
|
|
1160
|
+
};
|
|
1161
|
+
"step": {
|
|
1162
|
+
"alias": "step";
|
|
1163
|
+
"required": false;
|
|
1164
|
+
"isSignal": true;
|
|
1165
|
+
};
|
|
1166
|
+
"template": {
|
|
1167
|
+
"alias": "template";
|
|
1168
|
+
"required": false;
|
|
1169
|
+
"isSignal": true;
|
|
1170
|
+
};
|
|
1171
|
+
"type": {
|
|
1172
|
+
"alias": "type";
|
|
1173
|
+
"required": false;
|
|
1174
|
+
"isSignal": true;
|
|
1175
|
+
};
|
|
1176
|
+
"validations": {
|
|
1177
|
+
"alias": "validations";
|
|
1178
|
+
"required": false;
|
|
1179
|
+
"isSignal": true;
|
|
1180
|
+
};
|
|
1181
|
+
}, {}, never, never, true, never>;
|
|
1182
|
+
}
|
|
1183
|
+
declare namespace form_group_component_d_exports {
|
|
1184
|
+
export { FormGroupComponent };
|
|
1185
|
+
}
|
|
1186
|
+
export declare class FormGroupComponent {
|
|
1187
|
+
shouldExpand: boolean;
|
|
1188
|
+
label: string;
|
|
1189
|
+
protected get hasTitle(): boolean;
|
|
1190
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FormGroupComponent, never>;
|
|
1191
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FormGroupComponent, "lib-form-group", never, {
|
|
1192
|
+
"shouldExpand": {
|
|
1193
|
+
"alias": "shouldExpand";
|
|
1194
|
+
"required": false;
|
|
1195
|
+
};
|
|
1196
|
+
"label": {
|
|
1197
|
+
"alias": "label";
|
|
1198
|
+
"required": false;
|
|
1199
|
+
};
|
|
1200
|
+
}, {}, never, ["*"], true, never>;
|
|
1201
|
+
}
|
|
1202
|
+
declare namespace group_accordion_component_d_exports {
|
|
1203
|
+
export { GroupAccordionComponent };
|
|
1204
|
+
}
|
|
1205
|
+
export declare class GroupAccordionComponent {
|
|
1206
|
+
private readonly containerElementRef;
|
|
1207
|
+
readonly label: InputSignal<string>;
|
|
1208
|
+
private readonly _maxHeight;
|
|
1209
|
+
protected readonly collapsed: WritableSignal<boolean>;
|
|
1210
|
+
readonly maxHeight: Signal<number>;
|
|
1211
|
+
protected onToggle(): void;
|
|
1212
|
+
private clearMaxHeight;
|
|
1213
|
+
private setMaxHeight;
|
|
1214
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GroupAccordionComponent, never>;
|
|
1215
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GroupAccordionComponent, "lib-group-accordion", never, {
|
|
1216
|
+
"label": {
|
|
1217
|
+
"alias": "label";
|
|
1218
|
+
"required": true;
|
|
1219
|
+
"isSignal": true;
|
|
1220
|
+
};
|
|
1221
|
+
}, {}, never, ["*"], true, never>;
|
|
1222
|
+
}
|
|
1223
|
+
declare namespace scroll_spy_directive_d_exports {
|
|
1224
|
+
export { ScrollSpyDirective };
|
|
1225
|
+
}
|
|
1226
|
+
export declare class ScrollSpyDirective implements AfterViewInit {
|
|
1227
|
+
spiedTags: Array<string>;
|
|
1228
|
+
activeSectionChange: EventEmitter<number>;
|
|
1229
|
+
private _el;
|
|
1230
|
+
private activeSection;
|
|
1231
|
+
private sections;
|
|
1232
|
+
ngAfterViewInit(): void;
|
|
1233
|
+
onScroll(event: any): void;
|
|
1234
|
+
scrollTo(section: number): void;
|
|
1235
|
+
select(section: number): void;
|
|
1236
|
+
private updateSections;
|
|
1237
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ScrollSpyDirective, never>;
|
|
1238
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ScrollSpyDirective, "[libScrollSpy]", never, {
|
|
1239
|
+
"spiedTags": {
|
|
1240
|
+
"alias": "spiedTags";
|
|
1241
|
+
"required": false;
|
|
1242
|
+
};
|
|
1243
|
+
}, {
|
|
1244
|
+
"activeSectionChange": "activeSectionChange";
|
|
1245
|
+
}, never, never, true, never>;
|
|
1246
|
+
}
|
|
1247
|
+
declare namespace group_container_component_d_exports {
|
|
1248
|
+
export { GroupContainerComponent };
|
|
1249
|
+
}
|
|
1250
|
+
export declare class GroupContainerComponent {
|
|
1251
|
+
scrollSpy: ScrollSpyDirective;
|
|
1252
|
+
sections: QueryList<GroupAccordionComponent>;
|
|
1253
|
+
get titles(): string[];
|
|
1254
|
+
activeSection: number;
|
|
1255
|
+
title?: string;
|
|
1256
|
+
icon?: string;
|
|
1257
|
+
activeSectionChanged(index: number): void;
|
|
1258
|
+
scrollTo(section: number): void;
|
|
1259
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GroupContainerComponent, never>;
|
|
1260
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GroupContainerComponent, "lib-group-container", never, {
|
|
1261
|
+
"title": {
|
|
1262
|
+
"alias": "title";
|
|
1263
|
+
"required": false;
|
|
1264
|
+
};
|
|
1265
|
+
"icon": {
|
|
1266
|
+
"alias": "icon";
|
|
1267
|
+
"required": false;
|
|
1268
|
+
};
|
|
1269
|
+
}, {}, ["sections"], ["*"], true, never>;
|
|
1270
|
+
}
|
|
1271
|
+
declare namespace group_scroll_spy_component_d_exports {
|
|
1272
|
+
export { GroupScrollSpyComponent };
|
|
1273
|
+
}
|
|
1274
|
+
export declare class GroupScrollSpyComponent {
|
|
1275
|
+
readonly scrollSpy: Signal<ScrollSpyDirective | undefined>;
|
|
1276
|
+
readonly sections: Signal<readonly GroupAccordionComponent[]>;
|
|
1277
|
+
readonly titles: Signal<string[]>;
|
|
1278
|
+
readonly activeSection: WritableSignal<number>;
|
|
1279
|
+
activeSectionChanged(index: number): void;
|
|
1280
|
+
scrollTo(section: number): void;
|
|
1281
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<GroupScrollSpyComponent, never>;
|
|
1282
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GroupScrollSpyComponent, "lib-group-scroll-spy", never, {}, {}, ["sections"], ["*"], true, never>;
|
|
1283
|
+
}
|
|
1284
|
+
declare namespace modal_component_d_exports {
|
|
1285
|
+
export { ModalComponent };
|
|
1286
|
+
}
|
|
1287
|
+
export declare class ModalComponent extends BaseComponent implements IModal, OnInit {
|
|
1288
|
+
readonly closeButtonText: ModelSignal<string>;
|
|
1289
|
+
readonly dialog: InputSignal<boolean>;
|
|
1290
|
+
readonly modalProcessing: ModelSignal<boolean>;
|
|
1291
|
+
readonly position: InputSignal<'top' | 'left' | 'right' | 'bottom' | 'center'>;
|
|
1292
|
+
readonly size: InputSignal<ModalSize>;
|
|
1293
|
+
readonly title: InputSignal<string | undefined>;
|
|
1294
|
+
readonly closed: OutputEmitterRef<void>;
|
|
1295
|
+
private readonly _isOpen;
|
|
1296
|
+
private clickedOutside;
|
|
1297
|
+
private elementRef;
|
|
1298
|
+
/** Renamed from `isShown`, and a signal now -- IModal says why. */
|
|
1299
|
+
readonly isOpen: Signal<boolean>;
|
|
1300
|
+
constructor();
|
|
1301
|
+
/**
|
|
1302
|
+
* Moves the host to `<body>`.
|
|
1303
|
+
*
|
|
1304
|
+
* The host is `fixed` at `z-index: 50`, which ought to put it over everything. It did not: a
|
|
1305
|
+
* modal opened from a view rendered *under* the navigation, and the tab strip stayed visible and
|
|
1306
|
+
* clickable behind it. z-index only ranks siblings inside one stacking context, and the panel
|
|
1307
|
+
* these views render in is its own — it has to be, so the glass layer behind it can sit at -1
|
|
1308
|
+
* without falling through the app backdrop. Inside that context the modal's 50 counts for
|
|
1309
|
+
* nothing against the sidebar's 20 outside it, and it can never reach over the strip either.
|
|
1310
|
+
*
|
|
1311
|
+
* A bigger number cannot fix that, and dropping the isolation breaks the glass. Leaving the
|
|
1312
|
+
* context is the fix, and the body is the one place with nothing above it.
|
|
1313
|
+
*
|
|
1314
|
+
* Angular keeps rendering into this element wherever it sits, and injection does not care where
|
|
1315
|
+
* the node ends up — the forms and datasets these modals reach for still resolve through the
|
|
1316
|
+
* component tree.
|
|
1317
|
+
*/
|
|
1318
|
+
ngOnInit(): void;
|
|
1319
|
+
/** Angular drops the view but not the node, now that the host is no longer where it was created. */
|
|
1320
|
+
ngOnDestroy(): void;
|
|
1321
|
+
protected onCloseClick(): void;
|
|
1322
|
+
/**
|
|
1323
|
+
* Refuses the native submission of the form the content sits in.
|
|
1324
|
+
*
|
|
1325
|
+
* A submit button in here -- framework-button-filters' Confirm is one, and any <button> without a
|
|
1326
|
+
* type is another -- makes the browser submit this form once the button's own click handler has
|
|
1327
|
+
* run: a GET to the current URL, which reloads the whole application. Before the host moved to
|
|
1328
|
+
* <body> the submit bubbled through the consumer, and the FormGroupDirective of its [formGroup]
|
|
1329
|
+
* binding cancelled it; that was never this component's doing, and it stopped when the event
|
|
1330
|
+
* stopped passing through the consumer. A modal is never meant to submit natively, so the form
|
|
1331
|
+
* says so itself, wherever the host lives.
|
|
1332
|
+
*
|
|
1333
|
+
* Only the default is prevented. The event still bubbles, and the click that caused it has already
|
|
1334
|
+
* done its work.
|
|
1335
|
+
*/
|
|
1336
|
+
protected onFormSubmit(event: Event): void;
|
|
1337
|
+
closeModal(): void;
|
|
1338
|
+
toggleModal(): void;
|
|
1339
|
+
protected bodyMouseDown(event: MouseEvent): void;
|
|
1340
|
+
protected bodyMouseUp(event: MouseEvent): void;
|
|
1341
|
+
protected documentKeyDown(event: Event): void;
|
|
1342
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ModalComponent, never>;
|
|
1343
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ModalComponent, "lib-modal", never, {
|
|
1344
|
+
"closeButtonText": {
|
|
1345
|
+
"alias": "closeButtonText";
|
|
1346
|
+
"required": false;
|
|
1347
|
+
"isSignal": true;
|
|
1348
|
+
};
|
|
1349
|
+
"dialog": {
|
|
1350
|
+
"alias": "dialog";
|
|
1351
|
+
"required": false;
|
|
1352
|
+
"isSignal": true;
|
|
1353
|
+
};
|
|
1354
|
+
"modalProcessing": {
|
|
1355
|
+
"alias": "modalProcessing";
|
|
1356
|
+
"required": false;
|
|
1357
|
+
"isSignal": true;
|
|
1358
|
+
};
|
|
1359
|
+
"position": {
|
|
1360
|
+
"alias": "position";
|
|
1361
|
+
"required": false;
|
|
1362
|
+
"isSignal": true;
|
|
1363
|
+
};
|
|
1364
|
+
"size": {
|
|
1365
|
+
"alias": "size";
|
|
1366
|
+
"required": false;
|
|
1367
|
+
"isSignal": true;
|
|
1368
|
+
};
|
|
1369
|
+
"title": {
|
|
1370
|
+
"alias": "title";
|
|
1371
|
+
"required": false;
|
|
1372
|
+
"isSignal": true;
|
|
1373
|
+
};
|
|
1374
|
+
}, {
|
|
1375
|
+
"closeButtonText": "closeButtonTextChange";
|
|
1376
|
+
"modalProcessing": "modalProcessingChange";
|
|
1377
|
+
"closed": "closed";
|
|
1378
|
+
}, never, ["[body]", "[footer]"], true, never>;
|
|
1379
|
+
}
|
|
1380
|
+
declare namespace multi_editor_component_d_exports {
|
|
1381
|
+
export { MultiEditorComponent };
|
|
1382
|
+
}
|
|
1383
|
+
export declare class MultiEditorComponent extends ModalComponent implements OnInit {
|
|
1384
|
+
private readonly modal;
|
|
1385
|
+
readonly addButtonLabel: InputSignal<string>;
|
|
1386
|
+
readonly formGroup: InputSignal<FormGroup<any>>;
|
|
1387
|
+
readonly removeButtonLabel: InputSignal<string>;
|
|
1388
|
+
readonly showAddButton: InputSignal<boolean>;
|
|
1389
|
+
readonly showDeleteButton: InputSignal<boolean>;
|
|
1390
|
+
protected readonly gridLoading: WritableSignal<boolean>;
|
|
1391
|
+
private dataGridDataset;
|
|
1392
|
+
private formService;
|
|
1393
|
+
private multiEditorDataset;
|
|
1394
|
+
private readonly selectedKey;
|
|
1395
|
+
private selectedValue?;
|
|
1396
|
+
protected get formLoading(): boolean;
|
|
1397
|
+
protected readonly hasSelectedKey: Signal<boolean>;
|
|
1398
|
+
constructor();
|
|
1399
|
+
ngOnInit(): void;
|
|
1400
|
+
protected onDeleteClick(): void;
|
|
1401
|
+
protected onNewClick(): void;
|
|
1402
|
+
protected onSaveClick(): void;
|
|
1403
|
+
closeModal(): void;
|
|
1404
|
+
toggleModal(): void;
|
|
1405
|
+
private clearAllFormArrays;
|
|
1406
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MultiEditorComponent, never>;
|
|
1407
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MultiEditorComponent, "lib-multi-editor", never, {
|
|
1408
|
+
"addButtonLabel": {
|
|
1409
|
+
"alias": "addButtonLabel";
|
|
1410
|
+
"required": false;
|
|
1411
|
+
"isSignal": true;
|
|
1412
|
+
};
|
|
1413
|
+
"formGroup": {
|
|
1414
|
+
"alias": "formGroup";
|
|
1415
|
+
"required": true;
|
|
1416
|
+
"isSignal": true;
|
|
1417
|
+
};
|
|
1418
|
+
"removeButtonLabel": {
|
|
1419
|
+
"alias": "removeButtonLabel";
|
|
1420
|
+
"required": false;
|
|
1421
|
+
"isSignal": true;
|
|
1422
|
+
};
|
|
1423
|
+
"showAddButton": {
|
|
1424
|
+
"alias": "showAddButton";
|
|
1425
|
+
"required": false;
|
|
1426
|
+
"isSignal": true;
|
|
1427
|
+
};
|
|
1428
|
+
"showDeleteButton": {
|
|
1429
|
+
"alias": "showDeleteButton";
|
|
1430
|
+
"required": false;
|
|
1431
|
+
"isSignal": true;
|
|
1432
|
+
};
|
|
1433
|
+
}, {}, never, ["*"], true, never>;
|
|
1434
|
+
}
|
|
1435
|
+
declare namespace multi_select_component_d_exports {
|
|
1436
|
+
export { MultiSelectComponent };
|
|
1437
|
+
}
|
|
1438
|
+
export declare class MultiSelectComponent extends ModalComponent implements OnInit {
|
|
1439
|
+
private readonly modal;
|
|
1440
|
+
readonly itemTemplate: InputSignal<TemplateRef<unknown> | undefined>;
|
|
1441
|
+
protected readonly isResultGridLoading: WritableSignal<boolean>;
|
|
1442
|
+
protected readonly isSearchGridLoading: WritableSignal<boolean>;
|
|
1443
|
+
protected resultDataset: MultiSelectResultDataset;
|
|
1444
|
+
protected readonly searchCriteria: WritableSignal<string>;
|
|
1445
|
+
private _searchColumn;
|
|
1446
|
+
private dataGridDataset;
|
|
1447
|
+
private get searchColumn();
|
|
1448
|
+
constructor();
|
|
1449
|
+
ngOnInit(): void;
|
|
1450
|
+
protected onSave(): void;
|
|
1451
|
+
/**
|
|
1452
|
+
* Runs the search.
|
|
1453
|
+
*
|
|
1454
|
+
* The input lives inside the modal's form, so Enter would submit it. Submitting reaches the
|
|
1455
|
+
* footer and saves changes the user has not finished making -- pressing Enter after typing a
|
|
1456
|
+
* name means "find this", never "confirm everything". The event is stopped here rather than in
|
|
1457
|
+
* the template so the reason travels with the code.
|
|
1458
|
+
*/
|
|
1459
|
+
protected onSearch(event?: Event): void;
|
|
1460
|
+
closeModal(): void;
|
|
1461
|
+
toggleModal(): void;
|
|
1462
|
+
private clearSearch;
|
|
1463
|
+
private updateSelectedItems;
|
|
1464
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelectComponent, never>;
|
|
1465
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelectComponent, "lib-multi-select", never, {
|
|
1466
|
+
"itemTemplate": {
|
|
1467
|
+
"alias": "itemTemplate";
|
|
1468
|
+
"required": false;
|
|
1469
|
+
"isSignal": true;
|
|
1470
|
+
};
|
|
1471
|
+
}, {}, never, never, true, never>;
|
|
1472
|
+
}
|
|
1473
|
+
declare namespace result_grid_component_d_exports {
|
|
1474
|
+
export { MultiSelectResultGridComponent };
|
|
1475
|
+
}
|
|
1476
|
+
export declare class MultiSelectResultGridComponent extends BaseComponent implements OnInit {
|
|
1477
|
+
readonly isDisabled: InputSignal<boolean>;
|
|
1478
|
+
readonly template: InputSignal<TemplateRef<any> | undefined>;
|
|
1479
|
+
protected dataGridDataset: DataGridDataset;
|
|
1480
|
+
protected readonly isLoading: WritableSignal<boolean>;
|
|
1481
|
+
protected resultDataset: MultiSelectResultDataset;
|
|
1482
|
+
constructor();
|
|
1483
|
+
ngOnInit(): void;
|
|
1484
|
+
onItemRemoved(rowIndex: number): void;
|
|
1485
|
+
protected onScrolled(event: any): void;
|
|
1486
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelectResultGridComponent, never>;
|
|
1487
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelectResultGridComponent, "lib-multi-select-result-grid", never, {
|
|
1488
|
+
"isDisabled": {
|
|
1489
|
+
"alias": "isDisabled";
|
|
1490
|
+
"required": false;
|
|
1491
|
+
"isSignal": true;
|
|
1492
|
+
};
|
|
1493
|
+
"template": {
|
|
1494
|
+
"alias": "template";
|
|
1495
|
+
"required": false;
|
|
1496
|
+
"isSignal": true;
|
|
1497
|
+
};
|
|
1498
|
+
}, {}, never, never, true, never>;
|
|
1499
|
+
}
|
|
1500
|
+
declare namespace sidebar_component_d_exports {
|
|
1501
|
+
export { SidebarComponent };
|
|
1502
|
+
}
|
|
1503
|
+
export declare class SidebarComponent extends BaseComponent implements AfterViewInit, OnInit {
|
|
1504
|
+
protected onBodyMouseDown(event: MouseEvent): void;
|
|
1505
|
+
protected onBodyMouseUp(_event: MouseEvent): void;
|
|
1506
|
+
protected onDocumentKeyDown(event: Event): void;
|
|
1507
|
+
protected onResize(_event: Event): void;
|
|
1508
|
+
private sidebarConfigs;
|
|
1509
|
+
protected configErrorText: string;
|
|
1510
|
+
protected configLoadingText: string;
|
|
1511
|
+
protected readonly hasFailed: WritableSignal<boolean>;
|
|
1512
|
+
protected readonly menus: WritableSignal<SidebarMenu[]>;
|
|
1513
|
+
protected readonly regions: WritableSignal<SidebarRegion[]>;
|
|
1514
|
+
private sidebarService;
|
|
1515
|
+
private wasClickedOutside;
|
|
1516
|
+
protected get isActive(): boolean;
|
|
1517
|
+
protected get isCollapsed(): boolean;
|
|
1518
|
+
protected readonly isLoading: Signal<boolean>;
|
|
1519
|
+
constructor();
|
|
1520
|
+
ngAfterViewInit(): void;
|
|
1521
|
+
ngOnInit(): void;
|
|
1522
|
+
collapse(): void;
|
|
1523
|
+
protected trackByFn(_index: number, item: SidebarMenu): number;
|
|
1524
|
+
protected trackByRegion(_index: number, region: SidebarRegion): string;
|
|
1525
|
+
/** Whether this top-level menu stands for an area rather than a destination of its own. */
|
|
1526
|
+
private isArea;
|
|
1527
|
+
private groupByRegionLabel;
|
|
1528
|
+
private groupByRootMenus;
|
|
1529
|
+
private groupIntoRegions;
|
|
1530
|
+
/**
|
|
1531
|
+
* Fetches the children of every area up front, because they are rendered flat rather than
|
|
1532
|
+
* behind a click, so the lazy load a collapsible parent relies on would never be triggered.
|
|
1533
|
+
*/
|
|
1534
|
+
private loadAreaChildren;
|
|
1535
|
+
private deactivate;
|
|
1536
|
+
private updateShouldActivate;
|
|
1537
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SidebarComponent, never>;
|
|
1538
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SidebarComponent, "lib-sidebar", never, {}, {}, never, ["*"], true, never>;
|
|
1539
|
+
}
|
|
1540
|
+
declare namespace ribbon_button_component_d_exports {
|
|
1541
|
+
export { RibbonButtonComponent };
|
|
1542
|
+
}
|
|
1543
|
+
export declare class RibbonButtonComponent implements OnDestroy {
|
|
1544
|
+
private readonly buttonContainer;
|
|
1545
|
+
private readonly optionsDropdown;
|
|
1546
|
+
readonly color: InputSignal<string>;
|
|
1547
|
+
readonly defaultOption: InputSignal<number>;
|
|
1548
|
+
readonly disabled: InputSignal<boolean>;
|
|
1549
|
+
readonly icon: InputSignal<string | undefined>;
|
|
1550
|
+
readonly iconSize: InputSignal<'small' | 'large'>;
|
|
1551
|
+
readonly label: InputSignal<string>;
|
|
1552
|
+
readonly loading: ModelSignal<boolean>;
|
|
1553
|
+
readonly options: InputSignal<IRibbonButtonOption[]>;
|
|
1554
|
+
readonly tooltip: InputSignal<string>;
|
|
1555
|
+
readonly action: OutputEmitterRef<string | undefined>;
|
|
1556
|
+
protected bodyMouseDown(event: MouseEvent): void;
|
|
1557
|
+
protected bodyMouseUp(event: MouseEvent): void;
|
|
1558
|
+
protected documentKeyDown(event: Event): void;
|
|
1559
|
+
protected readonly showDropdown: WritableSignal<boolean>;
|
|
1560
|
+
protected readonly status: WritableSignal<null | 'failure' | 'warning' | 'success'>;
|
|
1561
|
+
private clickedOutside;
|
|
1562
|
+
private overlay;
|
|
1563
|
+
private overlayRef?;
|
|
1564
|
+
private positionBuilder;
|
|
1565
|
+
private viewContainerRef;
|
|
1566
|
+
protected get buttonIcon(): string;
|
|
1567
|
+
protected get isButtonDisabled(): boolean;
|
|
1568
|
+
ngOnDestroy(): void;
|
|
1569
|
+
protected onButtonClicked(): void;
|
|
1570
|
+
protected onOptionClicked(option: IRibbonButtonOption): void;
|
|
1571
|
+
protected onShowHideDropdown(): void;
|
|
1572
|
+
finishLoading(status: 'failure' | 'warning' | 'success'): void;
|
|
1573
|
+
startLoading(): void;
|
|
1574
|
+
protected isOptionDisabled(option: IRibbonButtonOption): boolean;
|
|
1575
|
+
protected isOptionVisible(option: IRibbonButtonOption): boolean;
|
|
1576
|
+
private closeDropdown;
|
|
1577
|
+
/**
|
|
1578
|
+
* Opens the options list in an overlay attached to the document rather than inside this button.
|
|
1579
|
+
*
|
|
1580
|
+
* The list is absolutely positioned and used to live in the button's own subtree, which works
|
|
1581
|
+
* only while nothing between it and the page clips. `lib-data-grid` does: it is
|
|
1582
|
+
* `overflow: hidden`, its buttons bar is its first child, and a child list's grid is only a few
|
|
1583
|
+
* rows tall -- so the export button's options opened downwards into the grid and had their lower
|
|
1584
|
+
* part cut off. Measured in Storybook at 129px of list against 65px of room, 64px lost.
|
|
1585
|
+
*
|
|
1586
|
+
* Nothing smaller fixes it. The grid's clipping is load-bearing -- the rows scroll inside it and
|
|
1587
|
+
* its corners are rounded -- and no z-index lifts content out of an ancestor's overflow. Leaving
|
|
1588
|
+
* the subtree is the fix, and it is what `lib-catalog-select` already does for its own dropdown.
|
|
1589
|
+
*
|
|
1590
|
+
* `reposition()` rather than `close()`: the button can move while the list is open, and the list
|
|
1591
|
+
* should follow it rather than disappear.
|
|
1592
|
+
*/
|
|
1593
|
+
private openDropdown;
|
|
1594
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RibbonButtonComponent, never>;
|
|
1595
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RibbonButtonComponent, "lib-ribbon-button", never, {
|
|
1596
|
+
"color": {
|
|
1597
|
+
"alias": "color";
|
|
1598
|
+
"required": false;
|
|
1599
|
+
"isSignal": true;
|
|
1600
|
+
};
|
|
1601
|
+
"defaultOption": {
|
|
1602
|
+
"alias": "defaultOption";
|
|
1603
|
+
"required": false;
|
|
1604
|
+
"isSignal": true;
|
|
1605
|
+
};
|
|
1606
|
+
"disabled": {
|
|
1607
|
+
"alias": "disabled";
|
|
1608
|
+
"required": false;
|
|
1609
|
+
"isSignal": true;
|
|
1610
|
+
};
|
|
1611
|
+
"icon": {
|
|
1612
|
+
"alias": "icon";
|
|
1613
|
+
"required": false;
|
|
1614
|
+
"isSignal": true;
|
|
1615
|
+
};
|
|
1616
|
+
"iconSize": {
|
|
1617
|
+
"alias": "iconSize";
|
|
1618
|
+
"required": false;
|
|
1619
|
+
"isSignal": true;
|
|
1620
|
+
};
|
|
1621
|
+
"label": {
|
|
1622
|
+
"alias": "label";
|
|
1623
|
+
"required": false;
|
|
1624
|
+
"isSignal": true;
|
|
1625
|
+
};
|
|
1626
|
+
"loading": {
|
|
1627
|
+
"alias": "loading";
|
|
1628
|
+
"required": false;
|
|
1629
|
+
"isSignal": true;
|
|
1630
|
+
};
|
|
1631
|
+
"options": {
|
|
1632
|
+
"alias": "options";
|
|
1633
|
+
"required": false;
|
|
1634
|
+
"isSignal": true;
|
|
1635
|
+
};
|
|
1636
|
+
"tooltip": {
|
|
1637
|
+
"alias": "tooltip";
|
|
1638
|
+
"required": false;
|
|
1639
|
+
"isSignal": true;
|
|
1640
|
+
};
|
|
1641
|
+
}, {
|
|
1642
|
+
"loading": "loadingChange";
|
|
1643
|
+
"action": "action";
|
|
1644
|
+
}, never, never, true, never>;
|
|
1645
|
+
}
|
|
1646
|
+
declare namespace ribbon_component_d_exports {
|
|
1647
|
+
export { RibbonComponent };
|
|
1648
|
+
}
|
|
1649
|
+
export declare class RibbonComponent {
|
|
1650
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RibbonComponent, never>;
|
|
1651
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RibbonComponent, "lib-ribbon", never, {}, {}, never, ["*", "[right]"], true, never>;
|
|
1652
|
+
}
|
|
1653
|
+
declare namespace ribbon_group_component_d_exports {
|
|
1654
|
+
export { RibbonGroupComponent };
|
|
1655
|
+
}
|
|
1656
|
+
export declare class RibbonGroupComponent {
|
|
1657
|
+
readonly children: Signal<readonly RibbonGroupChild[]>;
|
|
1658
|
+
label: string;
|
|
1659
|
+
protected readonly hasChildren: Signal<boolean>;
|
|
1660
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RibbonGroupComponent, never>;
|
|
1661
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RibbonGroupComponent, "lib-ribbon-group", never, {
|
|
1662
|
+
"label": {
|
|
1663
|
+
"alias": "label";
|
|
1664
|
+
"required": false;
|
|
1665
|
+
};
|
|
1666
|
+
}, {}, ["children"], ["*"], true, never>;
|
|
1667
|
+
}
|
|
1668
|
+
export declare class DateHelpers {
|
|
1669
|
+
static diffDays(initialDate: Date, finalDate: Date): number;
|
|
1670
|
+
}
|
|
1146
1671
|
/**
|
|
1147
1672
|
* Tracks the form controls that exist only to show a catalog selection's label.
|
|
1148
1673
|
*
|
|
@@ -1155,79 +1680,78 @@ declare class DateHelpers {
|
|
|
1155
1680
|
* only scope that is actually correct: two forms may each have an `employeeName`, and only the one
|
|
1156
1681
|
* a catalog select drives is a display control. It also keeps nothing alive.
|
|
1157
1682
|
*/
|
|
1158
|
-
declare class DisplayControls {
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
}
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
}
|
|
1182
|
-
|
|
1183
|
-
declare class EnumTranslatePipe implements PipeTransform {
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
}
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
export {
|
|
1233
|
-
export type { AngularAssetPattern, DataGridConfigs, GridConfigs, IBatchUpdate, ICatalogEntry, ICatalogResult, IGridColumn, IListParameters, IListResult, IModal, IMultiEditorChanges, IMultiSelectorChanges, IRibbonButtonOption, ISidebarProfile, ISummaryParameters, ITabView, ModalSize, SidebarRegion };
|
|
1683
|
+
export declare class DisplayControls {
|
|
1684
|
+
private static readonly marked;
|
|
1685
|
+
/**
|
|
1686
|
+
* Whether the control exists only to display a catalog selection's label.
|
|
1687
|
+
*
|
|
1688
|
+
* @param control The control, which may be absent.
|
|
1689
|
+
* @returns `true` when a catalog select drives it as its display control.
|
|
1690
|
+
*/
|
|
1691
|
+
static isDisplayControl(control: AbstractControl | null | undefined): boolean;
|
|
1692
|
+
/**
|
|
1693
|
+
* Marks the control as existing only to display a catalog selection's label.
|
|
1694
|
+
*
|
|
1695
|
+
* @param control The control, which may be absent.
|
|
1696
|
+
*/
|
|
1697
|
+
static markAsDisplayControl(control: AbstractControl | null | undefined): void;
|
|
1698
|
+
}
|
|
1699
|
+
export declare class GuidHelper {
|
|
1700
|
+
static generateGUID(): string;
|
|
1701
|
+
}
|
|
1702
|
+
export declare abstract class RouterFormatter {
|
|
1703
|
+
static getURL(route: ActivatedRouteSnapshot): string;
|
|
1704
|
+
}
|
|
1705
|
+
declare namespace enum_d_exports {
|
|
1706
|
+
export { EnumTranslatePipe };
|
|
1707
|
+
}
|
|
1708
|
+
export declare class EnumTranslatePipe implements PipeTransform {
|
|
1709
|
+
private translate;
|
|
1710
|
+
transform(enumType: any): Array<{
|
|
1711
|
+
value: any;
|
|
1712
|
+
display: Observable<any>;
|
|
1713
|
+
}>;
|
|
1714
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<EnumTranslatePipe, never>;
|
|
1715
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<EnumTranslatePipe, "enumTranslate", true>;
|
|
1716
|
+
}
|
|
1717
|
+
declare namespace replace_pipe_d_exports {
|
|
1718
|
+
export { ReplacePipe };
|
|
1719
|
+
}
|
|
1720
|
+
export declare class ReplacePipe implements PipeTransform {
|
|
1721
|
+
transform(message: string, searchValue: string, replaceValue?: string | null): string;
|
|
1722
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ReplacePipe, never>;
|
|
1723
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<ReplacePipe, "replace", true>;
|
|
1724
|
+
}
|
|
1725
|
+
declare namespace replace_many_pipe_d_exports {
|
|
1726
|
+
export { ReplaceManyPipe };
|
|
1727
|
+
}
|
|
1728
|
+
export declare class ReplaceManyPipe implements PipeTransform {
|
|
1729
|
+
transform(message: string, replaceArgs?: {
|
|
1730
|
+
[id: string]: string | null | undefined;
|
|
1731
|
+
}): string;
|
|
1732
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ReplaceManyPipe, never>;
|
|
1733
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<ReplaceManyPipe, "replaceMany", true>;
|
|
1734
|
+
}
|
|
1735
|
+
export declare class LibraryModule {
|
|
1736
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LibraryModule, never>;
|
|
1737
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<LibraryModule, never, [typeof CatalogSelectComponent, typeof DataGridComponent, typeof DataGridRowComponent, typeof FormInputComponent, typeof FormInputGroupComponent, typeof FormGroupComponent, typeof GroupAccordionComponent, typeof GroupContainerComponent, typeof GroupScrollSpyComponent, typeof SidebarComponent, typeof ModalComponent, typeof MultiEditorComponent, typeof MultiSelectComponent, typeof MultiSelectResultGridComponent, typeof RibbonComponent, typeof RibbonButtonComponent, typeof RibbonGroupComponent, typeof ScrollSpyDirective, typeof EnumTranslatePipe, typeof ReplacePipe, typeof ReplaceManyPipe], [typeof CatalogSelectComponent, typeof DataGridComponent, typeof DataGridRowComponent, typeof FormInputComponent, typeof FormInputGroupComponent, typeof FormGroupComponent, typeof GroupAccordionComponent, typeof GroupContainerComponent, typeof GroupScrollSpyComponent, typeof SidebarComponent, typeof ModalComponent, typeof MultiEditorComponent, typeof MultiSelectComponent, typeof MultiSelectResultGridComponent, typeof RibbonComponent, typeof RibbonButtonComponent, typeof RibbonGroupComponent, typeof ScrollSpyDirective, typeof EnumTranslatePipe, typeof ReplacePipe, typeof ReplaceManyPipe]>;
|
|
1738
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<LibraryModule>;
|
|
1739
|
+
}
|
|
1740
|
+
export declare class DataGridConfigsProvider extends GridConfigsProvider<DataGridConfigs> {
|
|
1741
|
+
constructor();
|
|
1742
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DataGridConfigsProvider, never>;
|
|
1743
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<any>;
|
|
1744
|
+
}
|
|
1745
|
+
export declare class DateValidators {
|
|
1746
|
+
static greaterThanControl(controlName: string): ValidatorFn;
|
|
1747
|
+
static greaterThanOrEqualControl(controlName: string): ValidatorFn;
|
|
1748
|
+
static greaterThanOrEqualToday(control: AbstractControl): ValidationErrors | null;
|
|
1749
|
+
static greaterThanToday(control: AbstractControl): ValidationErrors | null;
|
|
1750
|
+
static lessThanControl(controlName: string): ValidatorFn;
|
|
1751
|
+
static lessThanOrEqualControl(controlName: string): ValidatorFn;
|
|
1752
|
+
static lessThanOrEqualToday(control: AbstractControl): ValidationErrors | null;
|
|
1753
|
+
static lessThanToday(control: AbstractControl): ValidationErrors | null;
|
|
1754
|
+
static maxDate(maxDate: Date): ValidatorFn;
|
|
1755
|
+
static minDate(minDate: Date): ValidatorFn;
|
|
1756
|
+
}
|
|
1757
|
+
export type { ButtonIntent };
|