@solidev/data 0.5.1 → 0.6.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/fesm2022/solidev-data.mjs +153 -154
- package/fesm2022/solidev-data.mjs.map +1 -1
- package/index.d.ts +2147 -3
- package/package.json +5 -5
- package/lib/auth/auth-interceptor.service.d.ts +0 -31
- package/lib/auth/auth.service.d.ts +0 -64
- package/lib/auth/jwt.d.ts +0 -22
- package/lib/data/data-backend.d.ts +0 -72
- package/lib/data/data-collection.d.ts +0 -110
- package/lib/data/data-collection.mock.d.ts +0 -19
- package/lib/data/data-model.d.ts +0 -94
- package/lib/data/data-parameters.d.ts +0 -26
- package/lib/data/data-query.d.ts +0 -104
- package/lib/data/data-query.mock.d.ts +0 -25
- package/lib/data/fields/base.d.ts +0 -120
- package/lib/data/fields/boolean.d.ts +0 -9
- package/lib/data/fields/computed.d.ts +0 -14
- package/lib/data/fields/datetime.d.ts +0 -46
- package/lib/data/fields/index.d.ts +0 -7
- package/lib/data/fields/numbers.d.ts +0 -35
- package/lib/data/fields/primaryfield.d.ts +0 -8
- package/lib/data/fields/relations.d.ts +0 -45
- package/lib/data/fields/stringfields.d.ts +0 -50
- package/lib/dispedit/choice.pipe.d.ts +0 -13
- package/lib/dispedit/dispedit/dispedit.component.d.ts +0 -182
- package/lib/dispedit/dispedit/dispedit.constants.d.ts +0 -6
- package/lib/dispedit/factor.pipe.d.ts +0 -19
- package/lib/dispedit/factorc.pipe.d.ts +0 -19
- package/lib/dispedit/fkselect/fkselect.component.d.ts +0 -42
- package/lib/dispedit/flags/flags.component.d.ts +0 -39
- package/lib/dispedit/m2mselect/m2mselect.component.d.ts +0 -116
- package/lib/dispedit/richedit/richedit.component.d.ts +0 -38
- package/lib/dispedit/sdelete/sdelete.component.d.ts +0 -49
- package/lib/messages/message-zone/message-zone.component.d.ts +0 -13
- package/lib/messages/message.service.d.ts +0 -59
- package/lib/modellist/model-list-fields/model-list-field-header/messages.d.ts +0 -6
- package/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.d.ts +0 -25
- package/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.d.ts +0 -20
- package/lib/modellist/model-list-fields/model-list-fields.d.ts +0 -68
- package/lib/modellist/model-list-filters/filters/filtertypes.d.ts +0 -1
- package/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.d.ts +0 -30
- package/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.d.ts +0 -22
- package/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.d.ts +0 -11
- package/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.d.ts +0 -8
- package/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.d.ts +0 -15
- package/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.d.ts +0 -4
- package/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.d.ts +0 -15
- package/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.d.ts +0 -4
- package/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.d.ts +0 -17
- package/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetimerange-filter.d.ts +0 -4
- package/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.d.ts +0 -20
- package/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.d.ts +0 -17
- package/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/adapters/ban.d.ts +0 -35
- package/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.d.ts +0 -25
- package/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.d.ts +0 -18
- package/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.d.ts +0 -17
- package/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.d.ts +0 -19
- package/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.d.ts +0 -17
- package/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.d.ts +0 -17
- package/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.d.ts +0 -18
- package/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.d.ts +0 -11
- package/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.d.ts +0 -16
- package/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.d.ts +0 -4
- package/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.d.ts +0 -55
- package/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.d.ts +0 -9
- package/lib/modellist/model-list-filters/model-list-filter-group.d.ts +0 -11
- package/lib/modellist/model-list-filters/model-list-filter.d.ts +0 -59
- package/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.d.ts +0 -9
- package/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.d.ts +0 -19
- package/lib/modellist/model-list-filters/model-list-filters.d.ts +0 -21
- package/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.d.ts +0 -21
- package/lib/modellist/model-list-paginator/model-list-paginator.d.ts +0 -16
- package/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.d.ts +0 -22
- package/lib/modellist/model-list-sorter/model-list-sorter.d.ts +0 -61
- package/lib/modellist/model-list.service.d.ts +0 -98
- package/lib/routing/breadcrumb/breadcrumb.component.d.ts +0 -41
- package/lib/routing/routing.d.ts +0 -64
- package/lib/updates/update/update.component.d.ts +0 -8
- package/lib/updates/update.service.d.ts +0 -16
- package/lib/uploader/index.d.ts +0 -5
- package/lib/uploader/interfaces.d.ts +0 -67
- package/lib/uploader/ng-file-drop.directive.d.ts +0 -22
- package/lib/uploader/ng-file-select.directive.d.ts +0 -19
- package/lib/uploader/ngx-uploader.class.d.ts +0 -35
- package/lib/uploader/ngx-uploader.module.d.ts +0 -8
- package/lib/utils/slugify.d.ts +0 -1
- package/lib/utils/tab-memory.service.d.ts +0 -30
- package/lib/utils/template.d.ts +0 -1
- package/public-api.d.ts +0 -52
package/index.d.ts
CHANGED
|
@@ -1,5 +1,2149 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InjectionToken, TransferState, NgZone, OnInit, ElementRef, EventEmitter, OnChanges, PipeTransform, SimpleChanges, OnDestroy, ApplicationRef } from '@angular/core';
|
|
3
|
+
import { ValidatorFn, FormControl, ValidationErrors, FormGroup, UntypedFormControl, UntypedFormGroup, ControlValueAccessor } from '@angular/forms';
|
|
4
|
+
import * as _angular_common_http from '@angular/common/http';
|
|
5
|
+
import { HttpClient, HttpInterceptor, HttpRequest, HttpHandler } from '@angular/common/http';
|
|
6
|
+
import * as rxjs from 'rxjs';
|
|
7
|
+
import { Observable, ReplaySubject, Subject, Subscription } from 'rxjs';
|
|
8
|
+
import { ActivatedRoute, Router, Route, RouterState, UrlSegment } from '@angular/router';
|
|
9
|
+
import { CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
10
|
+
import { NgbOffcanvas, NgbDropdown } from '@ng-bootstrap/ng-bootstrap';
|
|
11
|
+
import { Toolbar, Editor } from 'ngx-editor';
|
|
12
|
+
import { SwUpdate } from '@angular/service-worker';
|
|
13
|
+
|
|
1
14
|
/**
|
|
2
|
-
*
|
|
15
|
+
* DATA_API_URL: stores data api base url
|
|
3
16
|
*/
|
|
4
|
-
|
|
5
|
-
|
|
17
|
+
declare const DATA_API_URL: InjectionToken<string>;
|
|
18
|
+
/**
|
|
19
|
+
* DATA_MAX_TRANSFERSTATE_TIME: max duration to use transferstate time
|
|
20
|
+
* If DATA_MAX_TRANSFERSTATE_TIME is zero, TransferState is not used
|
|
21
|
+
*/
|
|
22
|
+
declare const DATA_MAX_TRANSFERSTATE_TIME: InjectionToken<number>;
|
|
23
|
+
/**
|
|
24
|
+
* DataDisplayConfig interface provides default values for display classes
|
|
25
|
+
*/
|
|
26
|
+
interface DataDisplayConfig {
|
|
27
|
+
dispEdit: {
|
|
28
|
+
defaultMode: "inline" | "dd";
|
|
29
|
+
inputClasses: {
|
|
30
|
+
[index: string]: string;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
declare const BootstrapDataDisplayConfig: DataDisplayConfig;
|
|
35
|
+
/**
|
|
36
|
+
* DATA_DISPLAY_CONFIG: display config & default classes injection token
|
|
37
|
+
*/
|
|
38
|
+
declare const DATA_DISPLAY_CONFIG: InjectionToken<DataDisplayConfig>;
|
|
39
|
+
|
|
40
|
+
interface IDispEditChoice {
|
|
41
|
+
desc: string;
|
|
42
|
+
value: any;
|
|
43
|
+
}
|
|
44
|
+
type DISPEDIT_EDITOR_TYPES = 'input.text' | 'input.email' | 'input.number' | 'input.decimal' | 'input.datetime' | 'input.date' | 'input.checkbox' | 'input.password' | 'textarea' | 'select' | 'quill' | 'fkselect' | 'm2mselect';
|
|
45
|
+
type DISPEDIT_DISPLAY_TYPES = 'text' | 'choice' | 'boolean' | 'decimal' | 'fkdetails' | 'm2mdetails' | 'datetime' | 'date' | 'quill';
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Descriptive info for all fields.
|
|
49
|
+
* All are optional.
|
|
50
|
+
*/
|
|
51
|
+
interface IFieldMetadata<FT> {
|
|
52
|
+
/** Field name (for display, column title, etc..) */
|
|
53
|
+
name?: string;
|
|
54
|
+
/** Field help text (for input) */
|
|
55
|
+
help?: string;
|
|
56
|
+
/** Field description (for details on hover etc..) */
|
|
57
|
+
description?: string;
|
|
58
|
+
/** Field required : no undefined allowed on save ? */
|
|
59
|
+
required?: boolean;
|
|
60
|
+
/** Field cannot be updated */
|
|
61
|
+
readonly?: boolean;
|
|
62
|
+
/** Default value */
|
|
63
|
+
defaultValue?: FT | ((args: any) => FT) | null;
|
|
64
|
+
/** Priority : first fields = higher priority */
|
|
65
|
+
priority?: number;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Base field manager, stores metadata and provides common field utilities
|
|
69
|
+
*
|
|
70
|
+
* - name : field name, should be the same in data structure and model
|
|
71
|
+
* - help : field help text, blank by default
|
|
72
|
+
* - description : field name for humans
|
|
73
|
+
* - readonly : field is readonly (cannot be changed / pushed to api)
|
|
74
|
+
* - default : default value for field
|
|
75
|
+
*
|
|
76
|
+
* - editor_type : editor type
|
|
77
|
+
* - display_type : display type
|
|
78
|
+
*
|
|
79
|
+
* - fromJson(data) : deserializer
|
|
80
|
+
* - toJson(data) : serialiser
|
|
81
|
+
* - toString(data,format) : to string, for display
|
|
82
|
+
*
|
|
83
|
+
* - formControl : returns field form control
|
|
84
|
+
* - validators : returns field validator
|
|
85
|
+
*/
|
|
86
|
+
declare class BaseFieldManager<FT> implements IFieldMetadata<FT> {
|
|
87
|
+
/** Name is mandatory in a field manager. It is given by
|
|
88
|
+
* field decorator if not directly given in field manager. */
|
|
89
|
+
name: string;
|
|
90
|
+
description: string;
|
|
91
|
+
help: string;
|
|
92
|
+
required: boolean;
|
|
93
|
+
readonly: boolean;
|
|
94
|
+
computed: boolean;
|
|
95
|
+
priority: number;
|
|
96
|
+
defaultValue?: FT | ((args: any) => FT);
|
|
97
|
+
editorType: DISPEDIT_EDITOR_TYPES;
|
|
98
|
+
displayType: DISPEDIT_DISPLAY_TYPES;
|
|
99
|
+
constructor(params: IFieldMetadata<FT>);
|
|
100
|
+
/** Return field validators */
|
|
101
|
+
get validators(): ValidatorFn[];
|
|
102
|
+
/** Returns current field name */
|
|
103
|
+
get fname(): string;
|
|
104
|
+
/** Create a new typed formControl for this field. */
|
|
105
|
+
formControl(instance: DataModel): FormControl<FT | null>;
|
|
106
|
+
/** JSON deserializer base method. */
|
|
107
|
+
fromJson(data: any): FT;
|
|
108
|
+
/** JSON serializer base method. */
|
|
109
|
+
toJson(data: FT): any;
|
|
110
|
+
/**
|
|
111
|
+
* Display value (as string)
|
|
112
|
+
* @param data
|
|
113
|
+
* @param format (not used)
|
|
114
|
+
*/
|
|
115
|
+
toString(data: FT, format?: string): string;
|
|
116
|
+
/**
|
|
117
|
+
* Returns default value for model, using args if needed.
|
|
118
|
+
* @param args
|
|
119
|
+
*/
|
|
120
|
+
default(args?: any): FT | undefined;
|
|
121
|
+
/** Return validators
|
|
122
|
+
*
|
|
123
|
+
* @protected
|
|
124
|
+
*/
|
|
125
|
+
protected getValidators(): ValidatorFn[];
|
|
126
|
+
/**
|
|
127
|
+
* Returns default value for model, using args if needed.
|
|
128
|
+
* @param args
|
|
129
|
+
* @protected
|
|
130
|
+
*/
|
|
131
|
+
protected getDefaultValue(args?: any): FT | undefined;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Field data stored on reflected metadata.
|
|
135
|
+
*/
|
|
136
|
+
interface IFieldStoredMetadata<FT> extends IFieldMetadata<FT> {
|
|
137
|
+
self: string;
|
|
138
|
+
name: string;
|
|
139
|
+
type: string;
|
|
140
|
+
manager: BaseFieldManager<FT>;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Field decorator function
|
|
144
|
+
*/
|
|
145
|
+
type FieldDecoratorFn = (target: any, propertyKey: string | symbol) => void;
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* DataBackend provides CRUD operations to a REST api.
|
|
149
|
+
* TransferState can be used if DATA_MAX_TRANSFERSTATE_TIME is set and > 0
|
|
150
|
+
*/
|
|
151
|
+
declare class DataBackend {
|
|
152
|
+
private _http;
|
|
153
|
+
private _transferState;
|
|
154
|
+
private _platform;
|
|
155
|
+
private _apiUrl;
|
|
156
|
+
private _maxTransferstateTime;
|
|
157
|
+
private _created;
|
|
158
|
+
constructor(_http: HttpClient, _transferState: TransferState, _platform: any, _apiUrl: string, _maxTransferstateTime?: number);
|
|
159
|
+
/**
|
|
160
|
+
* Return api url for this backend.
|
|
161
|
+
*/
|
|
162
|
+
get apiUrl(): string;
|
|
163
|
+
/**
|
|
164
|
+
* Launch an action on collection.
|
|
165
|
+
* If method is GET and collection.useTranserState & transferState are enabled,
|
|
166
|
+
* result is stored / retrieved from transferState.
|
|
167
|
+
*
|
|
168
|
+
* @param collection Collection reference
|
|
169
|
+
* @param method HTTP method
|
|
170
|
+
* @param url full URL for action
|
|
171
|
+
* @param body JSON body
|
|
172
|
+
* @param params query parameters
|
|
173
|
+
* @param headers query headers
|
|
174
|
+
* @param responseType response type
|
|
175
|
+
*
|
|
176
|
+
* @return an observable of response body
|
|
177
|
+
*/
|
|
178
|
+
action<T extends DataModel, RT>(collection: Collection<T>, method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', url: string, { body, params, headers }?: IActionParams): Observable<RT>;
|
|
179
|
+
/**
|
|
180
|
+
* Launch an action on collection, receiving a blob.
|
|
181
|
+
*
|
|
182
|
+
* @param collection Collection reference
|
|
183
|
+
* @param method HTTP method
|
|
184
|
+
* @param url full URL for action
|
|
185
|
+
* @param body JSON body
|
|
186
|
+
* @param params query parameters
|
|
187
|
+
* @param headers query headers
|
|
188
|
+
* @param responseType response type
|
|
189
|
+
*
|
|
190
|
+
* @return an observable of response body
|
|
191
|
+
*/
|
|
192
|
+
blob<T extends DataModel>(collection: Collection<T>, method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE', url: string, { body, params, headers }?: IActionParams): Observable<Blob>;
|
|
193
|
+
put<T extends DataModel>(collection: Collection<T>, url: string, { body, params, headers }?: IActionParams): Observable<T>;
|
|
194
|
+
post<T extends DataModel>(collection: Collection<T>, url: string, { body, params, headers }?: IActionParams): Observable<Partial<T>>;
|
|
195
|
+
patch<T extends DataModel>(collection: Collection<T>, url: string, { body, params, headers }?: IActionParams): Observable<Partial<T>>;
|
|
196
|
+
delete<T extends DataModel, R>(collection: Collection<T>, url: string, { params, headers }?: IActionParams): Observable<R>;
|
|
197
|
+
_cachedGet<T extends DataModel, RT>(collection: Collection<T>, url: string, { params, headers }?: IActionParams): Observable<RT>;
|
|
198
|
+
get<T extends DataModel>(collection: Collection<T>, url: string, { params, headers }?: IActionParams): Observable<Partial<T>>;
|
|
199
|
+
list<T extends DataModel>(collection: Collection<T>, url: string, { params, headers }?: IActionParams): Observable<any>;
|
|
200
|
+
/**
|
|
201
|
+
* Return headers for this backend.
|
|
202
|
+
* Provided headers are copied and returned.
|
|
203
|
+
* Can be overriden by subclasses for specific headers (e.g. auth token).
|
|
204
|
+
*/
|
|
205
|
+
protected headers(headers: {
|
|
206
|
+
[key: string]: string;
|
|
207
|
+
}): {
|
|
208
|
+
[key: string]: string;
|
|
209
|
+
};
|
|
210
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DataBackend, [null, null, null, null, { optional: true; }]>;
|
|
211
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DataBackend>;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
interface FilterData {
|
|
215
|
+
[index: string]: string | number | boolean | undefined | null;
|
|
216
|
+
}
|
|
217
|
+
interface OutFilterData {
|
|
218
|
+
[index: string]: string;
|
|
219
|
+
}
|
|
220
|
+
type SortData = string;
|
|
221
|
+
/**
|
|
222
|
+
* Queryset parameters
|
|
223
|
+
*/
|
|
224
|
+
interface IQuerysetOptions {
|
|
225
|
+
/** Emit fields list */
|
|
226
|
+
emitFields?: boolean;
|
|
227
|
+
/** Queryset name */
|
|
228
|
+
name?: string;
|
|
229
|
+
/** TODO: see usage */
|
|
230
|
+
route?: ActivatedRoute;
|
|
231
|
+
/** TODO: see usage */
|
|
232
|
+
router?: Router;
|
|
233
|
+
/** TODO: see usage */
|
|
234
|
+
hash?: string;
|
|
235
|
+
}
|
|
236
|
+
interface IQueryNav {
|
|
237
|
+
page: number;
|
|
238
|
+
page_size: number;
|
|
239
|
+
}
|
|
240
|
+
interface IQueryMetaNav {
|
|
241
|
+
count: number;
|
|
242
|
+
next: number | null;
|
|
243
|
+
page: number;
|
|
244
|
+
pages: number;
|
|
245
|
+
prev: number | null;
|
|
246
|
+
size: number;
|
|
247
|
+
}
|
|
248
|
+
interface IQueryMetaNavParams {
|
|
249
|
+
page: string;
|
|
250
|
+
page_size: string;
|
|
251
|
+
}
|
|
252
|
+
interface IQueryMeta {
|
|
253
|
+
nav: IQueryMetaNav;
|
|
254
|
+
parameters: IQueryMetaNavParams;
|
|
255
|
+
}
|
|
256
|
+
interface IQueryFullResponse<T> extends IQueryMeta {
|
|
257
|
+
results: T[];
|
|
258
|
+
}
|
|
259
|
+
declare class Queryset<T extends DataModel> {
|
|
260
|
+
protected _coll: Collection<T>;
|
|
261
|
+
/** Current filter data */
|
|
262
|
+
filterData: FilterData;
|
|
263
|
+
/** Current sorter data */
|
|
264
|
+
sortData: SortData[];
|
|
265
|
+
/** Current fields */
|
|
266
|
+
fields: string[];
|
|
267
|
+
/** Current page size */
|
|
268
|
+
pageSize: number;
|
|
269
|
+
/** Current page number */
|
|
270
|
+
page: number;
|
|
271
|
+
options: IQuerysetOptions;
|
|
272
|
+
private _loading;
|
|
273
|
+
/** Loading status (true if currently fetching data) */
|
|
274
|
+
loading: Observable<boolean>;
|
|
275
|
+
private _meta;
|
|
276
|
+
/** Results meta part observable */
|
|
277
|
+
meta: Observable<IQueryMeta>;
|
|
278
|
+
private _results;
|
|
279
|
+
/** Results data part observable */
|
|
280
|
+
results: Observable<T[]>;
|
|
281
|
+
private _full;
|
|
282
|
+
/** Full results observable (results, loading, meta) */
|
|
283
|
+
full: Observable<[T[], boolean, IQueryMeta]>;
|
|
284
|
+
constructor(_coll: Collection<T>, options?: IQuerysetOptions);
|
|
285
|
+
private _pristine;
|
|
286
|
+
/** Pristine status (true if it has not collected results yet) */
|
|
287
|
+
get pristine(): boolean;
|
|
288
|
+
/**
|
|
289
|
+
* Update current filter data. Null or undefined values are removed from filter data.
|
|
290
|
+
* @param params filter data
|
|
291
|
+
* @param update boolean to update filter data instead of recreating it from scratch
|
|
292
|
+
*/
|
|
293
|
+
filter(params?: FilterData, update?: boolean): Queryset<T>;
|
|
294
|
+
/**
|
|
295
|
+
* Update sorting parameters, list of strings giving sort parameters e.g. sort("+name", "-id").
|
|
296
|
+
* @param sorting strings of sort parameters
|
|
297
|
+
*/
|
|
298
|
+
sort(...sorting: string[]): Queryset<T>;
|
|
299
|
+
/**
|
|
300
|
+
* Update page size.
|
|
301
|
+
* @param pageSize required page size
|
|
302
|
+
*/
|
|
303
|
+
paginateBy(pageSize?: number): Queryset<T>;
|
|
304
|
+
/**
|
|
305
|
+
* Update current page number.
|
|
306
|
+
* @param page required pqge
|
|
307
|
+
* @param fragment TODO: fragment usage for router usage
|
|
308
|
+
*/
|
|
309
|
+
setPage(page?: number, fragment?: string): Queryset<T>;
|
|
310
|
+
setFields(fields: string[]): Queryset<T>;
|
|
311
|
+
getQueryParams(): OutFilterData;
|
|
312
|
+
get(refresh?: boolean, sync?: boolean): Observable<T[]>;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
type IHttpMethod = 'POST' | 'GET' | 'DELETE' | 'PUT' | 'PATCH';
|
|
316
|
+
interface IActionParams {
|
|
317
|
+
body?: any;
|
|
318
|
+
headers?: {
|
|
319
|
+
[index: string]: string;
|
|
320
|
+
};
|
|
321
|
+
params?: {
|
|
322
|
+
[index: string]: string;
|
|
323
|
+
};
|
|
324
|
+
responseType?: 'json' | 'blob';
|
|
325
|
+
}
|
|
326
|
+
interface ICollectionCacheParams {
|
|
327
|
+
transferState?: {
|
|
328
|
+
enabled: boolean;
|
|
329
|
+
maxTime: number;
|
|
330
|
+
maxCount: number;
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
type DataModelType<T extends DataModel> = new (_coll?: Collection<T>) => T;
|
|
334
|
+
declare class Collection<T extends DataModel> {
|
|
335
|
+
protected backend: DataBackend;
|
|
336
|
+
protected path: string;
|
|
337
|
+
model: DataModelType<T>;
|
|
338
|
+
useTransferState: boolean;
|
|
339
|
+
constructor(backend: DataBackend, path: string, model: DataModelType<T>);
|
|
340
|
+
create(data?: Partial<T>): T;
|
|
341
|
+
fromJson(data: Partial<T>): T;
|
|
342
|
+
fromJson(data: Partial<T>[]): T[];
|
|
343
|
+
queryset(options?: IQuerysetOptions): Queryset<T>;
|
|
344
|
+
fetch(id: number, { prefix, suffix, params, headers, }?: {
|
|
345
|
+
prefix?: string;
|
|
346
|
+
suffix?: string;
|
|
347
|
+
params?: {
|
|
348
|
+
[_index: string]: string;
|
|
349
|
+
};
|
|
350
|
+
headers?: {
|
|
351
|
+
[_index: string]: string;
|
|
352
|
+
};
|
|
353
|
+
}): Observable<T>;
|
|
354
|
+
action<RT>(model: T | null, method: IHttpMethod, action: string, { body, params, headers }?: IActionParams): Observable<RT>;
|
|
355
|
+
save(model: T, { updateModel }?: {
|
|
356
|
+
updateModel?: boolean;
|
|
357
|
+
}): Observable<T>;
|
|
358
|
+
update(model: T, fields?: string[], { updateModel }?: {
|
|
359
|
+
updateModel?: boolean;
|
|
360
|
+
}): Observable<T>;
|
|
361
|
+
delete(model: T, { params, headers }?: IActionParams): Observable<any>;
|
|
362
|
+
list(query?: FilterData, { prefix, suffix, params, headers, }?: {
|
|
363
|
+
prefix?: string;
|
|
364
|
+
suffix?: string;
|
|
365
|
+
params?: {
|
|
366
|
+
[_index: string]: string;
|
|
367
|
+
};
|
|
368
|
+
headers?: {
|
|
369
|
+
[_index: string]: string;
|
|
370
|
+
};
|
|
371
|
+
}): Observable<T[]>;
|
|
372
|
+
/**
|
|
373
|
+
* Calls *method* endpoint for this collection and returns raw results.
|
|
374
|
+
*
|
|
375
|
+
* @param method GET/POST/...
|
|
376
|
+
* @param prefix collection_urlPREFIXSUFFIX
|
|
377
|
+
* @param suffix collection_urlPREFIXSUFFIX
|
|
378
|
+
* @param params query paremeters
|
|
379
|
+
* @param body body as json
|
|
380
|
+
* @param headers headers
|
|
381
|
+
*/
|
|
382
|
+
raw<RT>({ method, prefix, suffix, params, body, headers, }?: {
|
|
383
|
+
method?: IHttpMethod;
|
|
384
|
+
prefix?: string;
|
|
385
|
+
suffix?: string;
|
|
386
|
+
body?: any;
|
|
387
|
+
params?: {
|
|
388
|
+
[_index: string]: string;
|
|
389
|
+
};
|
|
390
|
+
headers?: {
|
|
391
|
+
[_index: string]: string;
|
|
392
|
+
};
|
|
393
|
+
}): Observable<RT>;
|
|
394
|
+
/**
|
|
395
|
+
* Calls *method* endpoint for this collection and returns raw results.
|
|
396
|
+
*
|
|
397
|
+
* @param method GET/POST/...
|
|
398
|
+
* @param prefix collection_urlPREFIXSUFFIX
|
|
399
|
+
* @param suffix collection_urlPREFIXSUFFIX
|
|
400
|
+
* @param params query paremeters
|
|
401
|
+
* @param body body as json
|
|
402
|
+
* @param headers headers
|
|
403
|
+
*/
|
|
404
|
+
blob<RT>({ method, prefix, suffix, params, body, headers, }?: {
|
|
405
|
+
method?: IHttpMethod;
|
|
406
|
+
prefix?: string;
|
|
407
|
+
suffix?: string;
|
|
408
|
+
body?: any;
|
|
409
|
+
params?: {
|
|
410
|
+
[_index: string]: string;
|
|
411
|
+
};
|
|
412
|
+
headers?: {
|
|
413
|
+
[_index: string]: string;
|
|
414
|
+
};
|
|
415
|
+
}): Observable<Blob>;
|
|
416
|
+
getUrl(id?: number | null, { prefix, suffix }?: {
|
|
417
|
+
prefix?: string;
|
|
418
|
+
suffix?: string;
|
|
419
|
+
}): string;
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
type DataModelFields = Readonly<Map<string, IFieldStoredMetadata<any>>>;
|
|
423
|
+
/**
|
|
424
|
+
* Base class for data model.
|
|
425
|
+
*
|
|
426
|
+
* Each class must have a static __name
|
|
427
|
+
* primary field is given with id field.
|
|
428
|
+
*
|
|
429
|
+
* Some methods are provided to be used with a collection, mostly for CRUD operations.
|
|
430
|
+
*
|
|
431
|
+
*/
|
|
432
|
+
declare class DataModel {
|
|
433
|
+
protected _coll?: Collection<any> | undefined;
|
|
434
|
+
/**
|
|
435
|
+
* data model name
|
|
436
|
+
* this need to be given because class name is not fully available because of minification.
|
|
437
|
+
*/
|
|
438
|
+
protected static readonly __name: string;
|
|
439
|
+
/**
|
|
440
|
+
* Primary field; readonly; must be created and auto incremented on db side.
|
|
441
|
+
*/
|
|
442
|
+
id: number;
|
|
443
|
+
private readonly _F;
|
|
444
|
+
/**
|
|
445
|
+
* Constructor for data model instance.
|
|
446
|
+
* A matching collection can be provided.
|
|
447
|
+
* ___fields readonly property is also populated from Reflected metadata
|
|
448
|
+
*
|
|
449
|
+
* @param _coll collection used for CRUD, etc..
|
|
450
|
+
*/
|
|
451
|
+
constructor(_coll?: Collection<any> | undefined);
|
|
452
|
+
get _collection(): Collection<any>;
|
|
453
|
+
set _collection(coll: Collection<any>);
|
|
454
|
+
/**
|
|
455
|
+
* HashMap of fields metadata (type, name, manager, etc...)
|
|
456
|
+
*/
|
|
457
|
+
get F(): DataModelFields;
|
|
458
|
+
get FN(): IterableIterator<string>;
|
|
459
|
+
/**
|
|
460
|
+
* Loads model data from json.
|
|
461
|
+
* If partial is true, only fields with matching data keys will be loaded
|
|
462
|
+
* @param data
|
|
463
|
+
* @param options
|
|
464
|
+
*/
|
|
465
|
+
fromJson(data: {
|
|
466
|
+
[index: string]: any;
|
|
467
|
+
}, { partial, check }?: {
|
|
468
|
+
partial?: boolean;
|
|
469
|
+
check?: boolean;
|
|
470
|
+
}): null | ValidationErrors;
|
|
471
|
+
toJson(fields?: string | string[]): any;
|
|
472
|
+
action<T, RT extends {
|
|
473
|
+
[index: string]: any;
|
|
474
|
+
}>(method: 'POST' | 'PATCH' | 'GET' | 'DELETE' | 'PUT', name: string, { body, update, updatePartial, updateCheck, params, headers, }?: {
|
|
475
|
+
body?: {
|
|
476
|
+
[_index: string]: any;
|
|
477
|
+
};
|
|
478
|
+
update?: boolean;
|
|
479
|
+
updatePartial?: boolean;
|
|
480
|
+
updateCheck?: boolean;
|
|
481
|
+
params?: {
|
|
482
|
+
[_index: string]: string;
|
|
483
|
+
};
|
|
484
|
+
headers?: {
|
|
485
|
+
[_index: string]: string;
|
|
486
|
+
};
|
|
487
|
+
}): Observable<RT>;
|
|
488
|
+
FM<FT>(field: string): BaseFieldManager<FT>;
|
|
489
|
+
FV<FT>(field: string): FT;
|
|
490
|
+
/**
|
|
491
|
+
* Set field value. If check is true, only set value if all validators pass.
|
|
492
|
+
* Skip setting field value if manager computed flag is true.
|
|
493
|
+
*
|
|
494
|
+
* The validation result is returned.
|
|
495
|
+
*
|
|
496
|
+
* @param field field name
|
|
497
|
+
* @param value field valued
|
|
498
|
+
* @param check default false
|
|
499
|
+
* @return null or ValidationError
|
|
500
|
+
*/
|
|
501
|
+
setFV<FT>(field: string, value: FT, check?: boolean): null | ValidationErrors;
|
|
502
|
+
FC(): FormGroup;
|
|
503
|
+
FC(field: string): FormControl;
|
|
504
|
+
FC(field: string[]): FormGroup;
|
|
505
|
+
save({ updateModel }?: {
|
|
506
|
+
updateModel?: boolean;
|
|
507
|
+
}): Observable<this>;
|
|
508
|
+
update(fields?: string[], { updateModel }?: {
|
|
509
|
+
updateModel?: boolean;
|
|
510
|
+
}): Observable<this>;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
interface ModelListField {
|
|
514
|
+
name: string;
|
|
515
|
+
label: string;
|
|
516
|
+
enabled: boolean;
|
|
517
|
+
allowed: boolean;
|
|
518
|
+
field: any;
|
|
519
|
+
position: number;
|
|
520
|
+
priority: number;
|
|
521
|
+
}
|
|
522
|
+
declare class ModelListFields<T extends DataModel> {
|
|
523
|
+
private readonly __fields;
|
|
524
|
+
constructor(collection: Collection<T>, params?: FieldsParams);
|
|
525
|
+
private _fields;
|
|
526
|
+
get fields(): Observable<ModelListField[]>;
|
|
527
|
+
private _enabled;
|
|
528
|
+
get enabled(): string[];
|
|
529
|
+
private _output;
|
|
530
|
+
get output(): Observable<string[]>;
|
|
531
|
+
/**
|
|
532
|
+
* Enable a field by name. Position is optional.
|
|
533
|
+
*
|
|
534
|
+
* @param fname : name of field to be enabled
|
|
535
|
+
* @param position : position (optional)
|
|
536
|
+
* @returns current enabled fields
|
|
537
|
+
*/
|
|
538
|
+
enable(fname: string, position?: number): string[];
|
|
539
|
+
/**
|
|
540
|
+
* Disable a field by name.
|
|
541
|
+
*
|
|
542
|
+
* @param fname : name of field to be disabled
|
|
543
|
+
* @returns current enabled fields
|
|
544
|
+
*/
|
|
545
|
+
disable(fname: string): string[];
|
|
546
|
+
/**
|
|
547
|
+
* Move field `fname` before or after (depending on `position`) field `dest`.
|
|
548
|
+
*
|
|
549
|
+
* @param fname field to move
|
|
550
|
+
* @param position ("before" or "after")
|
|
551
|
+
* @param dest reference field
|
|
552
|
+
* @returns current enabled fields
|
|
553
|
+
*/
|
|
554
|
+
move(fname: string, position: 'before' | 'after', dest?: string): string[];
|
|
555
|
+
/**
|
|
556
|
+
* Check if field with name `fname` is enabled.
|
|
557
|
+
*
|
|
558
|
+
* @param fname : name of field
|
|
559
|
+
* @returns enabled (true) or disabled (false)
|
|
560
|
+
*/
|
|
561
|
+
isEnabled(fname: string): boolean;
|
|
562
|
+
/**
|
|
563
|
+
* Get field by name
|
|
564
|
+
* @param fname : name of field
|
|
565
|
+
* @returns Model list field or null if not found
|
|
566
|
+
*/
|
|
567
|
+
get(fname: string): ModelListField | null;
|
|
568
|
+
/**
|
|
569
|
+
* Get field by position
|
|
570
|
+
* @param pos : position of field
|
|
571
|
+
* @returns Model list field or null if not found
|
|
572
|
+
*/
|
|
573
|
+
getAtPos(pos: number): ModelListField | null;
|
|
574
|
+
setPosition(fname: any, position: number): string[];
|
|
575
|
+
private _update;
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
declare class ModelListPaginator {
|
|
579
|
+
private _page_size;
|
|
580
|
+
private _page;
|
|
581
|
+
constructor(defaults?: IQueryNav);
|
|
582
|
+
private _output;
|
|
583
|
+
get output(): Observable<IQueryNav>;
|
|
584
|
+
setPage(page: number): void;
|
|
585
|
+
updatePage(page: number): void;
|
|
586
|
+
setPageSize(size: number): void;
|
|
587
|
+
updatePageSize(size: number): void;
|
|
588
|
+
getPageSize(): number;
|
|
589
|
+
getPage(): number;
|
|
590
|
+
private _updateOutput;
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
type SortDirection = 'asc' | 'desc';
|
|
594
|
+
interface FieldSortData {
|
|
595
|
+
field: string;
|
|
596
|
+
direction: SortDirection;
|
|
597
|
+
}
|
|
598
|
+
type SorterData = FieldSortData[];
|
|
599
|
+
declare class ModelListSorter {
|
|
600
|
+
private readonly _values;
|
|
601
|
+
/**
|
|
602
|
+
* Create ModelListSorter instance, using defaults.
|
|
603
|
+
* @param defaults defaults sort values, as a list of strings (+field, -field, field)
|
|
604
|
+
*/
|
|
605
|
+
constructor(defaults?: SorterDefaults);
|
|
606
|
+
private _output;
|
|
607
|
+
/**
|
|
608
|
+
* Returns a list of "+/-field" sort strings observable.
|
|
609
|
+
* @returns sort strings observable
|
|
610
|
+
*/
|
|
611
|
+
get output(): Observable<string[]>;
|
|
612
|
+
/**
|
|
613
|
+
* Set sorting for `name` key, in direction `direction`.
|
|
614
|
+
* If sorting is already set for `name` key, updates direction without changing order.
|
|
615
|
+
* If sorting isn't set for `name` key, adds it at the end of sorting directions.
|
|
616
|
+
*
|
|
617
|
+
* @param name field name
|
|
618
|
+
* @param direction sort direction
|
|
619
|
+
* @returns model list sorter
|
|
620
|
+
*/
|
|
621
|
+
set(name: string, direction: SortDirection): ModelListSorter;
|
|
622
|
+
/**
|
|
623
|
+
* Removes `name` sorting key from current keys.
|
|
624
|
+
*
|
|
625
|
+
* @param name sort key to be removed
|
|
626
|
+
* @returns model list sorter
|
|
627
|
+
*/
|
|
628
|
+
unset(name: string): ModelListSorter;
|
|
629
|
+
/**
|
|
630
|
+
* Get sorting status for `field` argument.
|
|
631
|
+
* If `field` is not found, returns null.
|
|
632
|
+
*
|
|
633
|
+
* @param field field name
|
|
634
|
+
* @returns ordering direction / null
|
|
635
|
+
*/
|
|
636
|
+
get(field: string): FieldSortData | null;
|
|
637
|
+
/**
|
|
638
|
+
* Return all sorter data values.
|
|
639
|
+
*
|
|
640
|
+
* @returns all sorter data values.
|
|
641
|
+
*/
|
|
642
|
+
getAll(): SorterData;
|
|
643
|
+
/**
|
|
644
|
+
* Get the ordering position for `field` argument. If not found, returns -1.
|
|
645
|
+
*
|
|
646
|
+
* @param field field name
|
|
647
|
+
* @returns ordering position for field
|
|
648
|
+
*/
|
|
649
|
+
getOrder(field: string): number;
|
|
650
|
+
private _updateOutput;
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
type FILTER_TYPE = 'autocomplete' | 'autocompletemulti' | 'datetime' | 'date' | 'datetimerange' | 'flags' | 'geodistance' | 'number' | 'select' | 'selectmulti' | 'text' | 'tree';
|
|
654
|
+
|
|
655
|
+
declare class ModelListFilterGroup {
|
|
656
|
+
name: string;
|
|
657
|
+
label: string;
|
|
658
|
+
desc: string;
|
|
659
|
+
position: number;
|
|
660
|
+
allowed: boolean;
|
|
661
|
+
enabled: boolean;
|
|
662
|
+
filters: ModelListFilter[];
|
|
663
|
+
constructor(params: Partial<ModelListFilterGroup>);
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
interface ModelListFilterParams {
|
|
667
|
+
name: string;
|
|
668
|
+
field: string;
|
|
669
|
+
label?: string;
|
|
670
|
+
help?: string;
|
|
671
|
+
value?: any;
|
|
672
|
+
desc?: any;
|
|
673
|
+
default?: any;
|
|
674
|
+
displayClasses?: string[] | string;
|
|
675
|
+
group?: ModelListFilterGroup;
|
|
676
|
+
}
|
|
677
|
+
declare class ModelListFilter implements ModelListFilterParams {
|
|
678
|
+
name: string;
|
|
679
|
+
field: string;
|
|
680
|
+
label: string;
|
|
681
|
+
help: string;
|
|
682
|
+
desc?: any;
|
|
683
|
+
default?: any;
|
|
684
|
+
type: FILTER_TYPE;
|
|
685
|
+
allowed: boolean;
|
|
686
|
+
enabled: boolean;
|
|
687
|
+
displayClasses?: string[] | string;
|
|
688
|
+
pristine: boolean;
|
|
689
|
+
multi: boolean;
|
|
690
|
+
group?: ModelListFilterGroup;
|
|
691
|
+
/** Single current value */
|
|
692
|
+
protected _value: IDispEditChoice | null;
|
|
693
|
+
/** Multiple current value */
|
|
694
|
+
protected _mvalue: Map<string, string>;
|
|
695
|
+
/** Single current value observable */
|
|
696
|
+
protected _current: ReplaySubject<IDispEditChoice | null>;
|
|
697
|
+
/** Multiple current value observable */
|
|
698
|
+
protected _mcurrent: ReplaySubject<IDispEditChoice[]>;
|
|
699
|
+
constructor(params: ModelListFilterParams);
|
|
700
|
+
get mcurrent$(): Observable<IDispEditChoice[]>;
|
|
701
|
+
get current$(): Observable<IDispEditChoice | null>;
|
|
702
|
+
get valueChanges(): Observable<IDispEditChoice | IDispEditChoice[] | null>;
|
|
703
|
+
get summary(): string;
|
|
704
|
+
updateFilter(filter: FilterData): void;
|
|
705
|
+
clear(notify?: boolean): void;
|
|
706
|
+
set(value: any, desc: string, notify?: boolean): boolean;
|
|
707
|
+
unset(value: any, desc: string, notify?: boolean): boolean;
|
|
708
|
+
toggle(value: any, desc: string, notify?: boolean): boolean;
|
|
709
|
+
getValue(): string | number;
|
|
710
|
+
get(): IDispEditChoice | null;
|
|
711
|
+
private mtoggle;
|
|
712
|
+
private mset;
|
|
713
|
+
private munset;
|
|
714
|
+
private stoggle;
|
|
715
|
+
private sset;
|
|
716
|
+
private sunset;
|
|
717
|
+
private getMultiValue;
|
|
718
|
+
private notify;
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
declare class ModelListFilters {
|
|
722
|
+
private _enabled$;
|
|
723
|
+
private _filters;
|
|
724
|
+
private _output$;
|
|
725
|
+
private _available$;
|
|
726
|
+
private _groups$;
|
|
727
|
+
constructor(params?: FiltersParams);
|
|
728
|
+
private _groups;
|
|
729
|
+
get groups(): Observable<ModelListFilterGroup[]>;
|
|
730
|
+
private _enabled;
|
|
731
|
+
get enabled(): Observable<ModelListFilter[]>;
|
|
732
|
+
private _available;
|
|
733
|
+
get available(): Observable<ModelListFilter[]>;
|
|
734
|
+
get output(): Observable<FilterData>;
|
|
735
|
+
update(): void;
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
interface IFieldHeaderMessage {
|
|
739
|
+
dest: 'header';
|
|
740
|
+
show?: boolean;
|
|
741
|
+
menu?: 'hide' | 'side' | 'click' | 'default';
|
|
742
|
+
sort?: 'hide' | 'side' | 'click' | 'default';
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
interface IJwtResponseJson {
|
|
746
|
+
access: string;
|
|
747
|
+
refresh: string;
|
|
748
|
+
}
|
|
749
|
+
interface IJwtRefreshResponseJson {
|
|
750
|
+
access: string;
|
|
751
|
+
}
|
|
752
|
+
interface IJwtBaseData {
|
|
753
|
+
token_type: 'access' | 'refresh';
|
|
754
|
+
user_id: number;
|
|
755
|
+
}
|
|
756
|
+
declare class Jwt<UserJwtData extends IJwtBaseData> {
|
|
757
|
+
readonly access?: string;
|
|
758
|
+
readonly refresh?: string;
|
|
759
|
+
private readonly _data;
|
|
760
|
+
constructor(response?: IJwtResponseJson);
|
|
761
|
+
get data(): UserJwtData | null;
|
|
762
|
+
toJson(): {
|
|
763
|
+
access: string | undefined;
|
|
764
|
+
refresh: string | undefined;
|
|
765
|
+
};
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
declare const enum TYPE {
|
|
769
|
+
SUCCESS = 0,
|
|
770
|
+
INFO = 1,
|
|
771
|
+
WARNING = 2,
|
|
772
|
+
DANGER = 3
|
|
773
|
+
}
|
|
774
|
+
declare enum DEFAULT_TIMEOUTS {
|
|
775
|
+
SUCCESS = 3000,
|
|
776
|
+
INFO = 4000,
|
|
777
|
+
WARNING = 10000,
|
|
778
|
+
DANGER = 30000
|
|
779
|
+
}
|
|
780
|
+
declare enum STATUS {
|
|
781
|
+
UNDISP = 0,
|
|
782
|
+
DISP = 1,
|
|
783
|
+
ACK = 2
|
|
784
|
+
}
|
|
785
|
+
interface ISoundTypes {
|
|
786
|
+
[index: string]: string;
|
|
787
|
+
}
|
|
788
|
+
declare const DATA_MESSAGE_SOUNDS: InjectionToken<ISoundTypes>;
|
|
789
|
+
declare class Message {
|
|
790
|
+
title: string;
|
|
791
|
+
type: TYPE;
|
|
792
|
+
message: string;
|
|
793
|
+
trace: any;
|
|
794
|
+
ttl: number;
|
|
795
|
+
status: string;
|
|
796
|
+
showTrace: boolean;
|
|
797
|
+
constructor(title: string, type?: TYPE, message?: string, trace?: any, ttl?: number);
|
|
798
|
+
get style(): string;
|
|
799
|
+
ack(): void;
|
|
800
|
+
}
|
|
801
|
+
declare class DataMessageService {
|
|
802
|
+
ngZone: NgZone;
|
|
803
|
+
sounds: ISoundTypes;
|
|
804
|
+
_messages$: ReplaySubject<Message[]>;
|
|
805
|
+
private _messages;
|
|
806
|
+
private _timer;
|
|
807
|
+
private _subscription;
|
|
808
|
+
constructor(ngZone: NgZone, sounds: ISoundTypes);
|
|
809
|
+
get current(): Observable<Message[]>;
|
|
810
|
+
init(): void;
|
|
811
|
+
close(): void;
|
|
812
|
+
success(title: string, message?: string, trace?: any, timeout?: number): void;
|
|
813
|
+
info(title: string, message?: string, trace?: any, timeout?: number): void;
|
|
814
|
+
warning(title: string, message?: string, trace?: any, timeout?: number): void;
|
|
815
|
+
danger(title: string, message?: string, trace?: any, timeout?: number): void;
|
|
816
|
+
error(title: string, message?: string, trace?: any): void;
|
|
817
|
+
debug(title: string, message?: string, trace?: any): void;
|
|
818
|
+
ack(message: Message): void;
|
|
819
|
+
play(type?: string): void;
|
|
820
|
+
private _notify;
|
|
821
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DataMessageService, [null, { optional: true; }]>;
|
|
822
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DataMessageService>;
|
|
823
|
+
}
|
|
824
|
+
|
|
825
|
+
interface AuthParams {
|
|
826
|
+
tokenUrl: string;
|
|
827
|
+
tokenRefreshUrl: string;
|
|
828
|
+
requestReactivateUrl?: string;
|
|
829
|
+
processReactivateUrl?: string;
|
|
830
|
+
requestPwResetUrl?: string;
|
|
831
|
+
processPwResetUrl?: string;
|
|
832
|
+
loginField: string;
|
|
833
|
+
passwordField: string;
|
|
834
|
+
tokenField: string;
|
|
835
|
+
loginRoute: string[];
|
|
836
|
+
logoutRoute: string[];
|
|
837
|
+
pwresetRoute?: string[];
|
|
838
|
+
reactivateRoute?: string[];
|
|
839
|
+
userFetchFields?: string[];
|
|
840
|
+
userFetchValiditySeconds?: number;
|
|
841
|
+
}
|
|
842
|
+
/**
|
|
843
|
+
* DATA_API_URL: stores data api base url
|
|
844
|
+
*/
|
|
845
|
+
declare const DATA_AUTH_PARAMS: InjectionToken<AuthParams>;
|
|
846
|
+
declare const DATA_AUTH_USER_SERVICE: InjectionToken<Collection<any>>;
|
|
847
|
+
declare class AuthServiceBase<User extends DataModel, UserService extends Collection<User>, UserData extends IJwtBaseData> {
|
|
848
|
+
userService: UserService;
|
|
849
|
+
private _params;
|
|
850
|
+
private _router;
|
|
851
|
+
private _http;
|
|
852
|
+
private _msgs;
|
|
853
|
+
logout$: Subject<void>;
|
|
854
|
+
private _user;
|
|
855
|
+
private _user$;
|
|
856
|
+
private _token;
|
|
857
|
+
private _fetched?;
|
|
858
|
+
constructor(userService: UserService, _params: AuthParams, _router: Router, _http: HttpClient, _msgs: DataMessageService);
|
|
859
|
+
get isAnonymous(): boolean;
|
|
860
|
+
get accessToken(): string | null;
|
|
861
|
+
get refreshToken(): string | null;
|
|
862
|
+
get currentUser(): User | null;
|
|
863
|
+
get currentUser$(): Observable<User | null>;
|
|
864
|
+
get refreshUrl(): string;
|
|
865
|
+
get loginUrl(): string;
|
|
866
|
+
get loginRoute(): string[];
|
|
867
|
+
get logoutRoute(): string[];
|
|
868
|
+
get pwresetRoute(): string[] | undefined;
|
|
869
|
+
get reactivateRoute(): string[] | undefined;
|
|
870
|
+
logout(): void;
|
|
871
|
+
autoLogin(): void;
|
|
872
|
+
login(username: string, password: string): Observable<'success' | 'error' | 'invalid_token' | string>;
|
|
873
|
+
requestReactivate(username: string): Observable<boolean>;
|
|
874
|
+
requestPwReset(username: string): Observable<boolean>;
|
|
875
|
+
processReactivate(username: string, token: string): Observable<boolean>;
|
|
876
|
+
processPwReset(username: string, password: string, token: string): Observable<boolean>;
|
|
877
|
+
saveAuth(): void;
|
|
878
|
+
refresh(): Observable<IJwtRefreshResponseJson | null>;
|
|
879
|
+
private _fetchUser;
|
|
880
|
+
}
|
|
881
|
+
|
|
882
|
+
interface CustomField {
|
|
883
|
+
name: string;
|
|
884
|
+
label: string;
|
|
885
|
+
priority?: number;
|
|
886
|
+
}
|
|
887
|
+
interface FilterDefaults {
|
|
888
|
+
[index: string]: string | number | undefined;
|
|
889
|
+
}
|
|
890
|
+
type SorterDefaults = string[];
|
|
891
|
+
/**
|
|
892
|
+
* Fields parameters.
|
|
893
|
+
*/
|
|
894
|
+
interface FieldsParams {
|
|
895
|
+
/** Allowed fields, all model fields are allowed if empty */
|
|
896
|
+
allowed?: string[];
|
|
897
|
+
/** Default enabled fields */
|
|
898
|
+
defaults?: string[];
|
|
899
|
+
/** Excluded fields */
|
|
900
|
+
excluded?: string[];
|
|
901
|
+
/** Custom fields */
|
|
902
|
+
custom?: CustomField[];
|
|
903
|
+
}
|
|
904
|
+
/**
|
|
905
|
+
* Filters parameters.
|
|
906
|
+
*/
|
|
907
|
+
interface FiltersParams {
|
|
908
|
+
/** Allowed filter names */
|
|
909
|
+
allowed?: string[];
|
|
910
|
+
/** Default active filter names */
|
|
911
|
+
defaults?: string[];
|
|
912
|
+
/** Excluded filter names */
|
|
913
|
+
excluded?: string[];
|
|
914
|
+
/** Filters definitions */
|
|
915
|
+
filters?: (ModelListFilter | ModelListFilterGroup)[];
|
|
916
|
+
}
|
|
917
|
+
type PaginationParams = IQueryMetaNavParams;
|
|
918
|
+
type IModelListMessage = IFieldHeaderMessage;
|
|
919
|
+
interface ModelListParams {
|
|
920
|
+
fields?: FieldsParams;
|
|
921
|
+
filters?: FiltersParams;
|
|
922
|
+
filter?: FilterDefaults | Observable<FilterDefaults>;
|
|
923
|
+
sorter?: SorterDefaults;
|
|
924
|
+
paginator?: IQueryNav;
|
|
925
|
+
keep?: boolean;
|
|
926
|
+
reload?: Subject<void | boolean>;
|
|
927
|
+
unsubscribe?: Subject<void>;
|
|
928
|
+
}
|
|
929
|
+
declare class ModelList<T extends DataModel> {
|
|
930
|
+
name: string;
|
|
931
|
+
filters: ModelListFilters;
|
|
932
|
+
sorter: ModelListSorter;
|
|
933
|
+
paginator: ModelListPaginator;
|
|
934
|
+
queryset: Queryset<T>;
|
|
935
|
+
fields: ModelListFields<T>;
|
|
936
|
+
reload: Subject<void | boolean>;
|
|
937
|
+
unsubscribe: Subject<void>;
|
|
938
|
+
messages$: ReplaySubject<IFieldHeaderMessage>;
|
|
939
|
+
started: boolean;
|
|
940
|
+
constructor(name: string, collection: Collection<T>);
|
|
941
|
+
private _collection;
|
|
942
|
+
get collection(): Collection<T>;
|
|
943
|
+
private _count;
|
|
944
|
+
/**
|
|
945
|
+
* Get current results count (from last meta received).
|
|
946
|
+
*/
|
|
947
|
+
get count(): number | null;
|
|
948
|
+
private _results?;
|
|
949
|
+
get results(): Observable<T[]>;
|
|
950
|
+
private _meta?;
|
|
951
|
+
get meta(): Observable<IQueryMeta>;
|
|
952
|
+
private _loading?;
|
|
953
|
+
get loading(): Observable<boolean>;
|
|
954
|
+
private _full?;
|
|
955
|
+
get full(): Observable<[T[], boolean, IQueryMeta]>;
|
|
956
|
+
start(params: ModelListParams): void;
|
|
957
|
+
}
|
|
958
|
+
declare class ModelListService {
|
|
959
|
+
private _auth;
|
|
960
|
+
private _instances;
|
|
961
|
+
constructor(_auth: AuthServiceBase<any, any, any>);
|
|
962
|
+
reset(): void;
|
|
963
|
+
get<T extends DataModel>(name: string, collection: Collection<T>, defaults: ModelListParams): ModelList<T>;
|
|
964
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListService, never>;
|
|
965
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ModelListService>;
|
|
966
|
+
}
|
|
967
|
+
|
|
968
|
+
declare class ModelListFieldsSelectorComponent<T extends DataModel> implements OnInit {
|
|
969
|
+
private _ofc;
|
|
970
|
+
list: ModelList<T>;
|
|
971
|
+
ofctpl: ElementRef<HTMLDivElement>;
|
|
972
|
+
seeMore: boolean;
|
|
973
|
+
constructor(_ofc: NgbOffcanvas);
|
|
974
|
+
ngOnInit(): void;
|
|
975
|
+
open(): void;
|
|
976
|
+
drop($event: CdkDragDrop<T, any>): void;
|
|
977
|
+
toggle(f: ModelListField): void;
|
|
978
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListFieldsSelectorComponent<any>, never>;
|
|
979
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListFieldsSelectorComponent<any>, "data-model-list-fields-selector", never, { "list": { "alias": "list"; "required": false; }; }, {}, never, never, true, never>;
|
|
980
|
+
}
|
|
981
|
+
|
|
982
|
+
declare class ModelListFieldHeaderComponent<T extends DataModel> implements OnInit {
|
|
983
|
+
list: ModelList<T>;
|
|
984
|
+
field: string;
|
|
985
|
+
sort?: boolean;
|
|
986
|
+
sortField?: string;
|
|
987
|
+
menuMode: 'hide' | 'side' | 'click';
|
|
988
|
+
sortMode: 'hide' | 'side' | 'click';
|
|
989
|
+
display?: boolean;
|
|
990
|
+
mnu?: NgbDropdown;
|
|
991
|
+
dispMenuMode: "hide" | "side" | "click";
|
|
992
|
+
dispSortMode: "hide" | "side" | "click";
|
|
993
|
+
private destroy$;
|
|
994
|
+
constructor();
|
|
995
|
+
ngOnInit(): void;
|
|
996
|
+
disable(): void;
|
|
997
|
+
enable(f: ModelListField): void;
|
|
998
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListFieldHeaderComponent<any>, never>;
|
|
999
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListFieldHeaderComponent<any>, "data-model-list-field-header", never, { "list": { "alias": "list"; "required": false; }; "field": { "alias": "field"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "sortField": { "alias": "sortField"; "required": false; }; "menuMode": { "alias": "menuMode"; "required": false; }; "sortMode": { "alias": "sortMode"; "required": false; }; "display": { "alias": "display"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
1000
|
+
}
|
|
1001
|
+
|
|
1002
|
+
declare class ModelListSorterComponent {
|
|
1003
|
+
/**
|
|
1004
|
+
* ModelList reference.
|
|
1005
|
+
*/
|
|
1006
|
+
list: ModelList<any>;
|
|
1007
|
+
/**
|
|
1008
|
+
* Sort field name.
|
|
1009
|
+
*/
|
|
1010
|
+
field: string;
|
|
1011
|
+
constructor();
|
|
1012
|
+
isUp(): boolean;
|
|
1013
|
+
isDown(): boolean;
|
|
1014
|
+
setUp(): void;
|
|
1015
|
+
setDown(): void;
|
|
1016
|
+
getCount(): number;
|
|
1017
|
+
getOrder(): number;
|
|
1018
|
+
cancel(): void;
|
|
1019
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListSorterComponent, never>;
|
|
1020
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListSorterComponent, "data-model-list-sorter", never, { "list": { "alias": "list"; "required": false; }; "field": { "alias": "field"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
1021
|
+
}
|
|
1022
|
+
|
|
1023
|
+
declare class ModelListFiltersSelectComponent implements OnInit {
|
|
1024
|
+
list: ModelList<any>;
|
|
1025
|
+
containerClasses: string[] | string;
|
|
1026
|
+
itemActiveClasses: string[] | string;
|
|
1027
|
+
itemInactiveClasses: string[] | string;
|
|
1028
|
+
mode: 'select' | 'badge' | 'badge_summary';
|
|
1029
|
+
selectForm: FormControl<ModelListFilter | null>;
|
|
1030
|
+
private destroy$;
|
|
1031
|
+
constructor();
|
|
1032
|
+
toggle(f: ModelListFilter): void;
|
|
1033
|
+
ngOnInit(): void;
|
|
1034
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListFiltersSelectComponent, never>;
|
|
1035
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListFiltersSelectComponent, "data-model-list-filters-select", never, { "list": { "alias": "list"; "required": false; }; "containerClasses": { "alias": "containerClasses"; "required": false; }; "itemActiveClasses": { "alias": "itemActiveClasses"; "required": false; }; "itemInactiveClasses": { "alias": "itemInactiveClasses"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; }, {}, never, never, true, never>;
|
|
1036
|
+
}
|
|
1037
|
+
|
|
1038
|
+
declare class ModelListFiltersComponent {
|
|
1039
|
+
list: ModelList<any>;
|
|
1040
|
+
containerClasses: string[] | string;
|
|
1041
|
+
itemClasses: string[] | string;
|
|
1042
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListFiltersComponent, never>;
|
|
1043
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListFiltersComponent, "data-model-list-filters", never, { "list": { "alias": "list"; "required": false; }; "containerClasses": { "alias": "containerClasses"; "required": false; }; "itemClasses": { "alias": "itemClasses"; "required": false; }; }, {}, never, never, true, never>;
|
|
1044
|
+
}
|
|
1045
|
+
|
|
1046
|
+
type TplFun<T extends DataModel> = (data: T) => string;
|
|
1047
|
+
declare class FkselectComponent<T extends DataModel, R extends DataModel> implements OnInit {
|
|
1048
|
+
model?: T;
|
|
1049
|
+
field?: string;
|
|
1050
|
+
edit: boolean;
|
|
1051
|
+
value?: R;
|
|
1052
|
+
queryset?: Queryset<R>;
|
|
1053
|
+
collection?: Collection<R>;
|
|
1054
|
+
update: boolean;
|
|
1055
|
+
filter: FilterData;
|
|
1056
|
+
mode: 'autocomplete' | 'select' | 'auto';
|
|
1057
|
+
display?: string | TplFun<R>;
|
|
1058
|
+
search: string;
|
|
1059
|
+
label: string;
|
|
1060
|
+
placeholder: string;
|
|
1061
|
+
inputClasses: string[] | string;
|
|
1062
|
+
selected: EventEmitter<T>;
|
|
1063
|
+
cancelled: EventEmitter<void>;
|
|
1064
|
+
cleared: EventEmitter<void>;
|
|
1065
|
+
fc: UntypedFormControl;
|
|
1066
|
+
searchFn: (text$: Observable<string>) => Observable<any>;
|
|
1067
|
+
displayFn: (x: any) => any;
|
|
1068
|
+
private _tpl;
|
|
1069
|
+
private destroy$;
|
|
1070
|
+
constructor();
|
|
1071
|
+
ngOnInit(): void;
|
|
1072
|
+
clearAction(): void;
|
|
1073
|
+
/**
|
|
1074
|
+
* Display function. Uses descfield or desc tpl (lodash template using model fields).
|
|
1075
|
+
*/
|
|
1076
|
+
private _display;
|
|
1077
|
+
private _search;
|
|
1078
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FkselectComponent<any, any>, never>;
|
|
1079
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FkselectComponent<any, any>, "data-fkselect", never, { "model": { "alias": "model"; "required": false; }; "field": { "alias": "field"; "required": false; }; "edit": { "alias": "edit"; "required": false; }; "value": { "alias": "value"; "required": false; }; "queryset": { "alias": "queryset"; "required": false; }; "collection": { "alias": "collection"; "required": false; }; "update": { "alias": "update"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "display": { "alias": "display"; "required": false; }; "search": { "alias": "search"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "inputClasses": { "alias": "inputClasses"; "required": false; }; }, { "selected": "selected"; "cancelled": "cancelled"; "cleared": "cleared"; }, never, never, true, never>;
|
|
1080
|
+
}
|
|
1081
|
+
|
|
1082
|
+
interface ModelListAutocompleteParams<T extends DataModel> extends ModelListFilterParams {
|
|
1083
|
+
collection?: Collection<T>;
|
|
1084
|
+
queryset?: Queryset<T>;
|
|
1085
|
+
searchparam?: string;
|
|
1086
|
+
display?: string | TplFun<T>;
|
|
1087
|
+
filter?: FilterData;
|
|
1088
|
+
scroll?: boolean;
|
|
1089
|
+
}
|
|
1090
|
+
declare class ModelListAutocompleteFilter<T extends DataModel> extends ModelListFilter implements ModelListAutocompleteParams<T> {
|
|
1091
|
+
display?: string | TplFun<T>;
|
|
1092
|
+
searchparam: string;
|
|
1093
|
+
queryset: Queryset<T>;
|
|
1094
|
+
collection?: Collection<T>;
|
|
1095
|
+
filter: FilterData;
|
|
1096
|
+
scroll: boolean;
|
|
1097
|
+
constructor(params: ModelListAutocompleteParams<T>);
|
|
1098
|
+
}
|
|
1099
|
+
|
|
1100
|
+
interface ModelListAutocompleteMultiParams<T extends DataModel> extends ModelListAutocompleteParams<T> {
|
|
1101
|
+
}
|
|
1102
|
+
declare class ModelListAutocompleteMultiFilter<T extends DataModel> extends ModelListAutocompleteFilter<T> {
|
|
1103
|
+
multi: boolean;
|
|
1104
|
+
constructor(params: ModelListAutocompleteMultiParams<T>);
|
|
1105
|
+
}
|
|
1106
|
+
|
|
1107
|
+
declare class ModelListDatetimeFilter extends ModelListFilter {
|
|
1108
|
+
constructor(params: ModelListFilterParams);
|
|
1109
|
+
}
|
|
1110
|
+
|
|
1111
|
+
declare class ModelListDateFilter extends ModelListFilter {
|
|
1112
|
+
constructor(params: ModelListFilterParams);
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1115
|
+
declare class ModelListDatetimerangeFilter extends ModelListFilter {
|
|
1116
|
+
constructor(params: ModelListFilterParams);
|
|
1117
|
+
}
|
|
1118
|
+
|
|
1119
|
+
interface ModelListFlagsFilterParams<T extends DataModel> extends ModelListFilterParams {
|
|
1120
|
+
collection?: Collection<T>;
|
|
1121
|
+
action?: string;
|
|
1122
|
+
}
|
|
1123
|
+
type GetFlagsResult = {
|
|
1124
|
+
flag: string;
|
|
1125
|
+
count: number;
|
|
1126
|
+
}[];
|
|
1127
|
+
declare class ModelListFlagsFilter<T extends DataModel> extends ModelListFilter {
|
|
1128
|
+
collection: Collection<T>;
|
|
1129
|
+
action: string;
|
|
1130
|
+
multi: boolean;
|
|
1131
|
+
constructor(params: ModelListFlagsFilterParams<T>);
|
|
1132
|
+
}
|
|
1133
|
+
|
|
1134
|
+
interface GeoSearchResult {
|
|
1135
|
+
score: number;
|
|
1136
|
+
label: string;
|
|
1137
|
+
lat: number;
|
|
1138
|
+
lng: number;
|
|
1139
|
+
}
|
|
1140
|
+
interface ModelListGeodistanceFilterParams extends ModelListFilterParams {
|
|
1141
|
+
geolocator: (pos: string) => Observable<GeoSearchResult[]>;
|
|
1142
|
+
geomap?: (pos: [number, number], dist: number) => string;
|
|
1143
|
+
scroll?: boolean;
|
|
1144
|
+
}
|
|
1145
|
+
declare class ModelListGeodistanceFilter extends ModelListFilter implements ModelListGeodistanceFilterParams {
|
|
1146
|
+
geolocator: (pos: string) => Observable<GeoSearchResult[]>;
|
|
1147
|
+
scroll: boolean;
|
|
1148
|
+
constructor(params: ModelListGeodistanceFilterParams);
|
|
1149
|
+
}
|
|
1150
|
+
|
|
1151
|
+
interface OperationDescriptor {
|
|
1152
|
+
name: string;
|
|
1153
|
+
label: string;
|
|
1154
|
+
operator: string;
|
|
1155
|
+
}
|
|
1156
|
+
declare const ModelListNumberOperations: OperationDescriptor[];
|
|
1157
|
+
interface ModelListNumberFilterParams extends ModelListFilterParams {
|
|
1158
|
+
operations?: string[];
|
|
1159
|
+
}
|
|
1160
|
+
declare class ModelListNumberFilter extends ModelListFilter {
|
|
1161
|
+
operator: OperationDescriptor;
|
|
1162
|
+
operations: OperationDescriptor[];
|
|
1163
|
+
constructor(params: ModelListNumberFilterParams);
|
|
1164
|
+
setOperator(op: string): void;
|
|
1165
|
+
updateFilter(filter: FilterData): void;
|
|
1166
|
+
}
|
|
1167
|
+
|
|
1168
|
+
interface ModelListSelectFilterParams<T extends DataModel> extends ModelListFilterParams {
|
|
1169
|
+
choices?: IDispEditChoice[] | Observable<IDispEditChoice[]>;
|
|
1170
|
+
model?: DataModelType<T>;
|
|
1171
|
+
mfield?: string;
|
|
1172
|
+
}
|
|
1173
|
+
declare class ModelListSelectFilter<T extends DataModel> extends ModelListFilter implements ModelListSelectFilterParams<T> {
|
|
1174
|
+
choices: Observable<IDispEditChoice[]>;
|
|
1175
|
+
model?: DataModelType<T>;
|
|
1176
|
+
mfield?: string;
|
|
1177
|
+
constructor(params: ModelListSelectFilterParams<T>);
|
|
1178
|
+
setDefault(): void;
|
|
1179
|
+
}
|
|
1180
|
+
|
|
1181
|
+
interface ModelListMultiSelectFilterParams<T extends DataModel> extends ModelListSelectFilterParams<T> {
|
|
1182
|
+
default?: IDispEditChoice[];
|
|
1183
|
+
}
|
|
1184
|
+
declare class ModelListSelectMultiFilter<T extends DataModel> extends ModelListSelectFilter<T> {
|
|
1185
|
+
multi: boolean;
|
|
1186
|
+
default?: IDispEditChoice[];
|
|
1187
|
+
constructor(params: ModelListMultiSelectFilterParams<T>);
|
|
1188
|
+
}
|
|
1189
|
+
|
|
1190
|
+
declare class ModelListTextFilter extends ModelListFilter {
|
|
1191
|
+
constructor(params: ModelListFilterParams);
|
|
1192
|
+
}
|
|
1193
|
+
|
|
1194
|
+
interface ModelListTreeParams<T extends DataModel> extends ModelListAutocompleteParams<T> {
|
|
1195
|
+
maxLevel?: number;
|
|
1196
|
+
}
|
|
1197
|
+
declare class ModelListTreeFilter<T extends DataModel> extends ModelListAutocompleteFilter<T> implements ModelListTreeParams<T> {
|
|
1198
|
+
maxLevel: number;
|
|
1199
|
+
constructor(params: ModelListTreeParams<T>);
|
|
1200
|
+
}
|
|
1201
|
+
|
|
1202
|
+
interface BanResults {
|
|
1203
|
+
type: 'FeatureCollection';
|
|
1204
|
+
version: string;
|
|
1205
|
+
features: {
|
|
1206
|
+
type: 'Feature';
|
|
1207
|
+
geometry: {
|
|
1208
|
+
type: 'Point';
|
|
1209
|
+
coordinates: [number, number];
|
|
1210
|
+
};
|
|
1211
|
+
properties: {
|
|
1212
|
+
label: string;
|
|
1213
|
+
score: number;
|
|
1214
|
+
id: string;
|
|
1215
|
+
type: string;
|
|
1216
|
+
name: string;
|
|
1217
|
+
postcode: string;
|
|
1218
|
+
citycode: string;
|
|
1219
|
+
x: number;
|
|
1220
|
+
y: number;
|
|
1221
|
+
population: number;
|
|
1222
|
+
city: string;
|
|
1223
|
+
context: string;
|
|
1224
|
+
importance: number;
|
|
1225
|
+
};
|
|
1226
|
+
}[];
|
|
1227
|
+
}
|
|
1228
|
+
declare class BanAdapter {
|
|
1229
|
+
private _http;
|
|
1230
|
+
private _baseUrl;
|
|
1231
|
+
constructor(_http: HttpClient, _baseUrl: string);
|
|
1232
|
+
search(text: string): Observable<GeoSearchResult[]>;
|
|
1233
|
+
}
|
|
1234
|
+
|
|
1235
|
+
declare class ModelListPaginatorComponent<T extends DataModel> implements OnChanges {
|
|
1236
|
+
list: ModelList<T>;
|
|
1237
|
+
maxPages: number;
|
|
1238
|
+
hide: boolean;
|
|
1239
|
+
perPageControl: FormControl;
|
|
1240
|
+
showDirectAccess: boolean;
|
|
1241
|
+
directAccess: FormControl;
|
|
1242
|
+
curPage: number;
|
|
1243
|
+
curCount: number;
|
|
1244
|
+
pageSize: number;
|
|
1245
|
+
private destroy$;
|
|
1246
|
+
onPageChange(page: number): void;
|
|
1247
|
+
ngOnChanges(): void;
|
|
1248
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListPaginatorComponent<any>, never>;
|
|
1249
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListPaginatorComponent<any>, "data-model-list-paginator", never, { "list": { "alias": "list"; "required": false; }; "maxPages": { "alias": "maxPages"; "required": false; }; "hide": { "alias": "hide"; "required": false; }; }, {}, never, never, true, never>;
|
|
1250
|
+
}
|
|
1251
|
+
|
|
1252
|
+
declare class ChoicePipe<T extends DataModel> implements PipeTransform {
|
|
1253
|
+
transform(value: T, field: string, mode?: 'code' | 'desc' | 'both'): string;
|
|
1254
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ChoicePipe<any>, never>;
|
|
1255
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<ChoicePipe<any>, "choice", true>;
|
|
1256
|
+
}
|
|
1257
|
+
declare class PChoicePipe<T extends DataModel> implements PipeTransform {
|
|
1258
|
+
transform(value: any, model: T, field: string, mode?: 'code' | 'desc' | 'both'): string;
|
|
1259
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PChoicePipe<any>, never>;
|
|
1260
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<PChoicePipe<any>, "pchoice", true>;
|
|
1261
|
+
}
|
|
1262
|
+
|
|
1263
|
+
declare function isValue(value: number | string | null | undefined): value is number | string;
|
|
1264
|
+
declare function strToNumber(value: number | string): number;
|
|
1265
|
+
declare class FactorPipe<T extends DataModel> implements PipeTransform {
|
|
1266
|
+
private _locale;
|
|
1267
|
+
constructor(_locale: string);
|
|
1268
|
+
transform(value: T | null, field: string, digitsInfo?: string, locale?: string): string | null;
|
|
1269
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FactorPipe<any>, never>;
|
|
1270
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<FactorPipe<any>, "factor", true>;
|
|
1271
|
+
}
|
|
1272
|
+
declare class PFactorPipe<T extends DataModel> implements PipeTransform {
|
|
1273
|
+
private _locale;
|
|
1274
|
+
constructor(_locale: string);
|
|
1275
|
+
transform(value: number | string | null | undefined, model: T | null, field: string, digitsInfo?: string, locale?: string): string | null;
|
|
1276
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PFactorPipe<any>, never>;
|
|
1277
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<PFactorPipe<any>, "pfactor", true>;
|
|
1278
|
+
}
|
|
1279
|
+
|
|
1280
|
+
declare class FactorcPipe<T extends DataModel> implements PipeTransform {
|
|
1281
|
+
private _locale;
|
|
1282
|
+
private _defaultCurrencyCode;
|
|
1283
|
+
constructor(_locale: string, _defaultCurrencyCode?: string);
|
|
1284
|
+
transform(value: T | null, field: string, currencyCode?: string, display?: 'code' | 'symbol' | 'symbol-narrow' | string, digitsInfo?: string, locale?: string): string | null;
|
|
1285
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FactorcPipe<any>, never>;
|
|
1286
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<FactorcPipe<any>, "factorc", true>;
|
|
1287
|
+
}
|
|
1288
|
+
declare class PFactorcPipe<T extends DataModel> implements PipeTransform {
|
|
1289
|
+
private _locale;
|
|
1290
|
+
private _defaultCurrencyCode;
|
|
1291
|
+
constructor(_locale: string, _defaultCurrencyCode?: string);
|
|
1292
|
+
transform(value: number | string | undefined | null, model: T | null, field: string, currencyCode?: string, display?: 'code' | 'symbol' | 'symbol-narrow' | string, digitsInfo?: string, locale?: string): string | null;
|
|
1293
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PFactorcPipe<any>, never>;
|
|
1294
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<PFactorcPipe<any>, "pfactorc", true>;
|
|
1295
|
+
}
|
|
1296
|
+
|
|
1297
|
+
declare class DispeditComponent<FT, T extends DataModel, R extends DataModel> implements OnInit, OnChanges {
|
|
1298
|
+
dconf: DataDisplayConfig;
|
|
1299
|
+
private _msgs;
|
|
1300
|
+
/** Model (mandatory) */
|
|
1301
|
+
model: T;
|
|
1302
|
+
/** Field (mandatory) */
|
|
1303
|
+
field: string;
|
|
1304
|
+
/** External form */
|
|
1305
|
+
form?: UntypedFormGroup;
|
|
1306
|
+
/**
|
|
1307
|
+
* Starting edit mode
|
|
1308
|
+
* If mode is inline, edit is always true.
|
|
1309
|
+
*/
|
|
1310
|
+
edit: boolean;
|
|
1311
|
+
/**
|
|
1312
|
+
* Can be switched to edit mode?
|
|
1313
|
+
* default : true
|
|
1314
|
+
*/
|
|
1315
|
+
editable: boolean;
|
|
1316
|
+
/**
|
|
1317
|
+
* Save updated values ?
|
|
1318
|
+
* If not given, default value depends on mode :
|
|
1319
|
+
* - save if mode is dd
|
|
1320
|
+
* - don't save if mode is inline
|
|
1321
|
+
*/
|
|
1322
|
+
save?: boolean;
|
|
1323
|
+
/**
|
|
1324
|
+
* Display mode
|
|
1325
|
+
* - dd provides display / edit within a dt/dd block
|
|
1326
|
+
* - inline (to be renamed to form) provides a (label? and) form control
|
|
1327
|
+
* */
|
|
1328
|
+
mode: 'dd' | 'inline' | 'form';
|
|
1329
|
+
/**
|
|
1330
|
+
* Custom choices
|
|
1331
|
+
* If provided, a select form control will be used instead of base editor
|
|
1332
|
+
*/
|
|
1333
|
+
choices: IDispEditChoice[];
|
|
1334
|
+
/** Custom input classes */
|
|
1335
|
+
inputClasses: string[] | string;
|
|
1336
|
+
/** Override editor, if provided */
|
|
1337
|
+
editor?: DISPEDIT_EDITOR_TYPES;
|
|
1338
|
+
/** Override viewer, if provided */
|
|
1339
|
+
viewer?: DISPEDIT_DISPLAY_TYPES;
|
|
1340
|
+
/** Override default value */
|
|
1341
|
+
default?: any;
|
|
1342
|
+
/**
|
|
1343
|
+
* Override placeholder, if provided.
|
|
1344
|
+
* By default, manager.description is used
|
|
1345
|
+
*/
|
|
1346
|
+
placeholder: string;
|
|
1347
|
+
/**
|
|
1348
|
+
* Override help, if provided.
|
|
1349
|
+
* By default, manager.help is used.
|
|
1350
|
+
*/
|
|
1351
|
+
help: string;
|
|
1352
|
+
/**
|
|
1353
|
+
* Hide label (for inline forms)
|
|
1354
|
+
*/
|
|
1355
|
+
hideLabel: boolean;
|
|
1356
|
+
/** Fk queryset */
|
|
1357
|
+
queryset?: Queryset<R>;
|
|
1358
|
+
/** Fk collection */
|
|
1359
|
+
collection?: Collection<R>;
|
|
1360
|
+
/** Fk display */
|
|
1361
|
+
display?: string | TplFun<R>;
|
|
1362
|
+
/** Fk filter */
|
|
1363
|
+
filter: FilterData;
|
|
1364
|
+
/** Output emitter, output model on every change */
|
|
1365
|
+
changed: EventEmitter<T>;
|
|
1366
|
+
/** Field manager */
|
|
1367
|
+
manager?: BaseFieldManager<FT>;
|
|
1368
|
+
/** Text value used for display */
|
|
1369
|
+
txtValue?: string;
|
|
1370
|
+
/** Text values used for many displays */
|
|
1371
|
+
txtValues?: string[];
|
|
1372
|
+
/** Computed editor type */
|
|
1373
|
+
realEditor: DISPEDIT_EDITOR_TYPES;
|
|
1374
|
+
/** Computed display type */
|
|
1375
|
+
realDisplay: DISPEDIT_DISPLAY_TYPES;
|
|
1376
|
+
/** Current disp raw value */
|
|
1377
|
+
dispValue?: any;
|
|
1378
|
+
/** Computed chocies type */
|
|
1379
|
+
realChoices?: IDispEditChoice[];
|
|
1380
|
+
/** Computed help */
|
|
1381
|
+
realHelp: string;
|
|
1382
|
+
/** Computed placeholder */
|
|
1383
|
+
realPlaceholder: string;
|
|
1384
|
+
/** Computed required */
|
|
1385
|
+
required: boolean;
|
|
1386
|
+
/** Computed default value */
|
|
1387
|
+
realDefault: any;
|
|
1388
|
+
m2mValues?: any[];
|
|
1389
|
+
fg?: UntypedFormGroup;
|
|
1390
|
+
private _tpl;
|
|
1391
|
+
/**
|
|
1392
|
+
* Constructor, can be given DATA_DISPLAY_CONFIG injection token to override display classes.
|
|
1393
|
+
* By default, bs5 config is used
|
|
1394
|
+
* @param dconf DataDisplayConfig item
|
|
1395
|
+
* @param _msgs messages service
|
|
1396
|
+
*/
|
|
1397
|
+
constructor(dconf: DataDisplayConfig, _msgs: DataMessageService);
|
|
1398
|
+
/**
|
|
1399
|
+
* Init sequence.
|
|
1400
|
+
* - Sets mode
|
|
1401
|
+
* - Sets display function
|
|
1402
|
+
* - Loads manager
|
|
1403
|
+
* - Run misc checks on special values
|
|
1404
|
+
* - Get help, placeholder strings
|
|
1405
|
+
*/
|
|
1406
|
+
ngOnInit(): void;
|
|
1407
|
+
/**
|
|
1408
|
+
* Upgrade all values on any change.
|
|
1409
|
+
* @param changes
|
|
1410
|
+
*/
|
|
1411
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
1412
|
+
/**
|
|
1413
|
+
* Set up display mode.
|
|
1414
|
+
* - get choices if available
|
|
1415
|
+
* - get display type
|
|
1416
|
+
* - process current value for display
|
|
1417
|
+
* - set display classes
|
|
1418
|
+
*/
|
|
1419
|
+
enableDisplayMode(): void;
|
|
1420
|
+
/**
|
|
1421
|
+
* Set up edit mode :
|
|
1422
|
+
* - get choices if available
|
|
1423
|
+
* - get editor type
|
|
1424
|
+
* - prepare form controle
|
|
1425
|
+
* - set form control value
|
|
1426
|
+
* - update form control classes
|
|
1427
|
+
*/
|
|
1428
|
+
enableEditMode(): void;
|
|
1429
|
+
/**
|
|
1430
|
+
* Update model field from form control value (if value is valid).
|
|
1431
|
+
* If save boolean is true, save values to API.
|
|
1432
|
+
*/
|
|
1433
|
+
update(): Promise<void>;
|
|
1434
|
+
unsetEdit(): void;
|
|
1435
|
+
toggleEdit(): void;
|
|
1436
|
+
/**
|
|
1437
|
+
* Reset field to default value
|
|
1438
|
+
* TODO: check if edit mode needs to be changed / saved
|
|
1439
|
+
*/
|
|
1440
|
+
setDefault(): Promise<void>;
|
|
1441
|
+
selectedRefItem($event: T | null): Promise<void>;
|
|
1442
|
+
onM2MValuesChanges(v: any[]): void;
|
|
1443
|
+
private _checks;
|
|
1444
|
+
/**
|
|
1445
|
+
* Save value to database, only if model have an id.
|
|
1446
|
+
* If mode is dd, toggle edit / display mode.
|
|
1447
|
+
* @private
|
|
1448
|
+
*/
|
|
1449
|
+
private _save;
|
|
1450
|
+
private _display;
|
|
1451
|
+
/**
|
|
1452
|
+
* Set display mode based on current display config
|
|
1453
|
+
* @private
|
|
1454
|
+
*/
|
|
1455
|
+
private _setMode;
|
|
1456
|
+
private _setDisplayFn;
|
|
1457
|
+
private _getChoices;
|
|
1458
|
+
private _getRealDisplay;
|
|
1459
|
+
private _getRealEditor;
|
|
1460
|
+
private _setFormControl;
|
|
1461
|
+
private _setFormControlValue;
|
|
1462
|
+
private _setEditorClasses;
|
|
1463
|
+
private _getDisplayValue;
|
|
1464
|
+
private _setDisplayClasses;
|
|
1465
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DispeditComponent<any, any, any>, [{ optional: true; }, null]>;
|
|
1466
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DispeditComponent<any, any, any>, "data-dispedit", never, { "model": { "alias": "model"; "required": false; }; "field": { "alias": "field"; "required": false; }; "form": { "alias": "form"; "required": false; }; "edit": { "alias": "edit"; "required": false; }; "editable": { "alias": "editable"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "choices": { "alias": "choices"; "required": false; }; "inputClasses": { "alias": "inputClasses"; "required": false; }; "editor": { "alias": "editor"; "required": false; }; "viewer": { "alias": "viewer"; "required": false; }; "default": { "alias": "default"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "help": { "alias": "help"; "required": false; }; "hideLabel": { "alias": "hideLabel"; "required": false; }; "queryset": { "alias": "queryset"; "required": false; }; "collection": { "alias": "collection"; "required": false; }; "display": { "alias": "display"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; }, { "changed": "changed"; }, never, ["*"], true, never>;
|
|
1467
|
+
}
|
|
1468
|
+
|
|
1469
|
+
declare class M2mselectComponent<T extends DataModel, R extends DataModel> implements OnInit, ControlValueAccessor {
|
|
1470
|
+
model?: T;
|
|
1471
|
+
field?: string;
|
|
1472
|
+
edit: boolean;
|
|
1473
|
+
values: R[];
|
|
1474
|
+
pks: number[];
|
|
1475
|
+
disabled: boolean;
|
|
1476
|
+
queryset?: Queryset<R>;
|
|
1477
|
+
collection?: Collection<R>;
|
|
1478
|
+
filter: FilterData;
|
|
1479
|
+
mode: 'autocomplete' | 'select' | 'auto';
|
|
1480
|
+
display?: string | TplFun<R>;
|
|
1481
|
+
search: string;
|
|
1482
|
+
label: string;
|
|
1483
|
+
placeholder: string;
|
|
1484
|
+
emptyLabel: string;
|
|
1485
|
+
inputClasses: string[] | string;
|
|
1486
|
+
added: EventEmitter<R>;
|
|
1487
|
+
removed: EventEmitter<R>;
|
|
1488
|
+
cancelled: EventEmitter<void>;
|
|
1489
|
+
cleared: EventEmitter<void>;
|
|
1490
|
+
detailsChanged: EventEmitter<R[]>;
|
|
1491
|
+
changed: EventEmitter<number[]>;
|
|
1492
|
+
fc: UntypedFormControl;
|
|
1493
|
+
searchFn: (text$: Observable<string>) => Observable<any>;
|
|
1494
|
+
displayFn: (x: any) => any;
|
|
1495
|
+
private touched;
|
|
1496
|
+
private _tpl;
|
|
1497
|
+
private destroy$;
|
|
1498
|
+
/**
|
|
1499
|
+
* Control value accessor onChange dummy callback;
|
|
1500
|
+
* @param fks
|
|
1501
|
+
*/
|
|
1502
|
+
onChange: (fks: number[]) => void;
|
|
1503
|
+
/**
|
|
1504
|
+
* Control value accessor onTouched dummy callback;
|
|
1505
|
+
*/
|
|
1506
|
+
onTouched: () => void;
|
|
1507
|
+
/**
|
|
1508
|
+
* OnChange register from controlValueAccessor
|
|
1509
|
+
* @param onChange callback
|
|
1510
|
+
*/
|
|
1511
|
+
registerOnChange(onChange: any): void;
|
|
1512
|
+
/**
|
|
1513
|
+
* OnTouched register from controlValueAccessor
|
|
1514
|
+
* @param onTouched callback
|
|
1515
|
+
*/
|
|
1516
|
+
registerOnTouched(onTouched: any): void;
|
|
1517
|
+
/**
|
|
1518
|
+
* OnInit :
|
|
1519
|
+
* - ensures queryset is available
|
|
1520
|
+
* - creates form control for input
|
|
1521
|
+
* - creates display function
|
|
1522
|
+
* - ensure values are set from any source
|
|
1523
|
+
*/
|
|
1524
|
+
ngOnInit(): void;
|
|
1525
|
+
/**
|
|
1526
|
+
* Remove a value.
|
|
1527
|
+
* Emits detailsChanged, changed and removed signals.
|
|
1528
|
+
* @param i instance to be removed
|
|
1529
|
+
*/
|
|
1530
|
+
onRemove(i: R): void;
|
|
1531
|
+
/**
|
|
1532
|
+
* Add a value.
|
|
1533
|
+
* Emits detailsChanged, changed and added signals.
|
|
1534
|
+
* @param i instance to be added.
|
|
1535
|
+
*/
|
|
1536
|
+
onAdd(i: R): void;
|
|
1537
|
+
/**
|
|
1538
|
+
* Clear all values.
|
|
1539
|
+
* Emits detailsChanged, changed and cleared signals.
|
|
1540
|
+
*/
|
|
1541
|
+
onClear(): void;
|
|
1542
|
+
/**
|
|
1543
|
+
* Write value from controlValueAccessor.
|
|
1544
|
+
* @param pks
|
|
1545
|
+
*/
|
|
1546
|
+
writeValue(pks: number[]): Promise<void>;
|
|
1547
|
+
/**
|
|
1548
|
+
* Mark as touched.
|
|
1549
|
+
*/
|
|
1550
|
+
markAsTouched(): void;
|
|
1551
|
+
/**
|
|
1552
|
+
* Mark as disabled.
|
|
1553
|
+
* @param disabled
|
|
1554
|
+
*/
|
|
1555
|
+
setDisabledState(disabled: boolean): void;
|
|
1556
|
+
/**
|
|
1557
|
+
* Retrieve display values for current set of pks.
|
|
1558
|
+
* Eventually fetches items from collection.
|
|
1559
|
+
* Emits detailsChanged signal.
|
|
1560
|
+
* @param pks list of current pks.
|
|
1561
|
+
* @private
|
|
1562
|
+
*/
|
|
1563
|
+
private _getDisplayValues;
|
|
1564
|
+
/**
|
|
1565
|
+
* Display function. Uses descfield or desc tpl (lodash template using model fields).
|
|
1566
|
+
*/
|
|
1567
|
+
private _display;
|
|
1568
|
+
/**
|
|
1569
|
+
* Search function.
|
|
1570
|
+
* @param text$
|
|
1571
|
+
* @private
|
|
1572
|
+
*/
|
|
1573
|
+
private _search;
|
|
1574
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<M2mselectComponent<any, any>, never>;
|
|
1575
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<M2mselectComponent<any, any>, "data-m2mselect", never, { "model": { "alias": "model"; "required": false; }; "field": { "alias": "field"; "required": false; }; "edit": { "alias": "edit"; "required": false; }; "values": { "alias": "values"; "required": false; }; "queryset": { "alias": "queryset"; "required": false; }; "collection": { "alias": "collection"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "display": { "alias": "display"; "required": false; }; "search": { "alias": "search"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "emptyLabel": { "alias": "emptyLabel"; "required": false; }; "inputClasses": { "alias": "inputClasses"; "required": false; }; }, { "added": "added"; "removed": "removed"; "cancelled": "cancelled"; "cleared": "cleared"; "detailsChanged": "detailsChanged"; "changed": "changed"; }, never, never, true, never>;
|
|
1576
|
+
}
|
|
1577
|
+
|
|
1578
|
+
interface IFlagItem {
|
|
1579
|
+
flag: string;
|
|
1580
|
+
count: number;
|
|
1581
|
+
}
|
|
1582
|
+
declare class FlagsComponent<T extends DataModel> implements OnInit {
|
|
1583
|
+
private _msg;
|
|
1584
|
+
model: T;
|
|
1585
|
+
field: string;
|
|
1586
|
+
get_flags_endpoint: string;
|
|
1587
|
+
edit: boolean;
|
|
1588
|
+
editable: boolean;
|
|
1589
|
+
flags: Observable<IFlagItem[]>;
|
|
1590
|
+
free: boolean;
|
|
1591
|
+
create: boolean;
|
|
1592
|
+
action: boolean;
|
|
1593
|
+
ft: FormControl;
|
|
1594
|
+
fs: FormControl;
|
|
1595
|
+
curflags: string[];
|
|
1596
|
+
txtflag: string;
|
|
1597
|
+
selflag: string;
|
|
1598
|
+
flaglist: IFlagItem[];
|
|
1599
|
+
private destroy$;
|
|
1600
|
+
constructor(_msg: DataMessageService);
|
|
1601
|
+
ngOnInit(): Promise<any>;
|
|
1602
|
+
addFreeFlag(): Promise<any>;
|
|
1603
|
+
addFlag(flag: string): Promise<any>;
|
|
1604
|
+
update(): Promise<any>;
|
|
1605
|
+
flagPresent(flag: string): boolean;
|
|
1606
|
+
removeFlag(flag: string): Promise<any>;
|
|
1607
|
+
toggleEdit(): Promise<void>;
|
|
1608
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<FlagsComponent<any>, never>;
|
|
1609
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<FlagsComponent<any>, "data-flags", never, { "model": { "alias": "model"; "required": false; }; "field": { "alias": "field"; "required": false; }; "get_flags_endpoint": { "alias": "get_flags_endpoint"; "required": false; }; "edit": { "alias": "edit"; "required": false; }; "editable": { "alias": "editable"; "required": false; }; "flags": { "alias": "flags"; "required": false; }; "free": { "alias": "free"; "required": false; }; "create": { "alias": "create"; "required": false; }; "action": { "alias": "action"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
1610
|
+
}
|
|
1611
|
+
|
|
1612
|
+
declare const RichEditToolbars: {
|
|
1613
|
+
[index: string]: Toolbar;
|
|
1614
|
+
};
|
|
1615
|
+
declare class RicheditComponent<FT, T extends DataModel> implements OnInit, OnDestroy {
|
|
1616
|
+
model?: T;
|
|
1617
|
+
field?: string;
|
|
1618
|
+
editable: boolean;
|
|
1619
|
+
edit: boolean;
|
|
1620
|
+
mode: 'dd' | 'inline' | 'form';
|
|
1621
|
+
/** Hide label (for inline forms) */
|
|
1622
|
+
hideLabel: boolean;
|
|
1623
|
+
/** Hide button (for changed usage) */
|
|
1624
|
+
hideButton: boolean;
|
|
1625
|
+
/** Form control, from outside or created */
|
|
1626
|
+
fc: FormControl<string | null>;
|
|
1627
|
+
/** Toolbar mode */
|
|
1628
|
+
toolbar: 'none' | 'default' | 'light' | Toolbar;
|
|
1629
|
+
changed: EventEmitter<string | null>;
|
|
1630
|
+
/** Field manager */
|
|
1631
|
+
manager?: BaseFieldManager<FT>;
|
|
1632
|
+
/** Computed required */
|
|
1633
|
+
required: boolean;
|
|
1634
|
+
editor: Editor;
|
|
1635
|
+
html: string;
|
|
1636
|
+
realToolbar: Toolbar;
|
|
1637
|
+
ngOnInit(): void;
|
|
1638
|
+
ngOnDestroy(): void;
|
|
1639
|
+
toggleEdit(): void;
|
|
1640
|
+
save(): Promise<void>;
|
|
1641
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RicheditComponent<any, any>, never>;
|
|
1642
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RicheditComponent<any, any>, "data-richedit", never, { "model": { "alias": "model"; "required": false; }; "field": { "alias": "field"; "required": false; }; "editable": { "alias": "editable"; "required": false; }; "edit": { "alias": "edit"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "hideLabel": { "alias": "hideLabel"; "required": false; }; "hideButton": { "alias": "hideButton"; "required": false; }; "fc": { "alias": "fc"; "required": false; }; "toolbar": { "alias": "toolbar"; "required": false; }; }, { "changed": "changed"; }, never, ["*"], true, never>;
|
|
1643
|
+
}
|
|
1644
|
+
|
|
1645
|
+
interface FakeDeleteResult {
|
|
1646
|
+
count: number;
|
|
1647
|
+
details: [string, number][];
|
|
1648
|
+
}
|
|
1649
|
+
declare class SafeDeleteComponent<T extends DataModel> {
|
|
1650
|
+
private _ofc;
|
|
1651
|
+
private _msgs;
|
|
1652
|
+
/** Model instance to be deleted */
|
|
1653
|
+
model: T;
|
|
1654
|
+
/** Service to be used for deletion, taken from model if not provided */
|
|
1655
|
+
service?: Collection<T>;
|
|
1656
|
+
/** Function to be called for deletion, overrides service deletion */
|
|
1657
|
+
actionFn?: (model: T) => Promise<{
|
|
1658
|
+
success: boolean;
|
|
1659
|
+
}>;
|
|
1660
|
+
/** Translations of database objects names to human names */
|
|
1661
|
+
checks: {
|
|
1662
|
+
[index: string]: string;
|
|
1663
|
+
};
|
|
1664
|
+
/** Messages to be displayed on success or error, default messages are used if not provided */
|
|
1665
|
+
messages: {
|
|
1666
|
+
success?: string;
|
|
1667
|
+
error?: string;
|
|
1668
|
+
};
|
|
1669
|
+
/** Event emitted on successful deletion */
|
|
1670
|
+
deleted: EventEmitter<FakeDeleteResult>;
|
|
1671
|
+
/** Display mode, default is button.
|
|
1672
|
+
*
|
|
1673
|
+
* - `fbutton`: floating button (small)
|
|
1674
|
+
* - `button`: button (small), with text taken from ng-content (no space around icon to allow empty buttons)
|
|
1675
|
+
* - `icon`: icon
|
|
1676
|
+
* - `custom`: custom : ng-content is surrounded by a clickable div
|
|
1677
|
+
* */
|
|
1678
|
+
display: 'fbutton' | 'button' | 'icon' | 'custom';
|
|
1679
|
+
result?: FakeDeleteResult;
|
|
1680
|
+
private _dialogRef?;
|
|
1681
|
+
private ofc?;
|
|
1682
|
+
constructor(_ofc: NgbOffcanvas, _msgs: DataMessageService);
|
|
1683
|
+
checkDelete(model: DataModel): Promise<void>;
|
|
1684
|
+
reallyDelete(): Promise<void>;
|
|
1685
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SafeDeleteComponent<any>, never>;
|
|
1686
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SafeDeleteComponent<any>, "data-safe-delete", never, { "model": { "alias": "model"; "required": false; }; "service": { "alias": "service"; "required": false; }; "actionFn": { "alias": "actionFn"; "required": false; }; "checks": { "alias": "checks"; "required": false; }; "messages": { "alias": "messages"; "required": false; }; "display": { "alias": "display"; "required": false; }; }, { "deleted": "deleted"; }, never, ["*"], true, never>;
|
|
1687
|
+
}
|
|
1688
|
+
|
|
1689
|
+
interface ICharFieldDescChoice {
|
|
1690
|
+
value: string;
|
|
1691
|
+
desc: string;
|
|
1692
|
+
}
|
|
1693
|
+
type ICharFieldChoice = ICharFieldDescChoice | string;
|
|
1694
|
+
interface ICharFieldMetadata extends IFieldMetadata<string> {
|
|
1695
|
+
minLength?: number;
|
|
1696
|
+
maxLength?: number;
|
|
1697
|
+
pattern?: RegExp | string;
|
|
1698
|
+
choices?: ICharFieldChoice[];
|
|
1699
|
+
}
|
|
1700
|
+
interface IEmailFieldMetadata extends ICharFieldMetadata {
|
|
1701
|
+
validate?: boolean;
|
|
1702
|
+
}
|
|
1703
|
+
interface IPasswordFieldMetadata extends ICharFieldMetadata {
|
|
1704
|
+
validate?: boolean;
|
|
1705
|
+
}
|
|
1706
|
+
interface ITextFieldMetadata extends ICharFieldMetadata {
|
|
1707
|
+
syntax?: string;
|
|
1708
|
+
}
|
|
1709
|
+
declare const charField: (updates?: ICharFieldMetadata) => FieldDecoratorFn;
|
|
1710
|
+
declare const emailField: (updates?: IEmailFieldMetadata) => FieldDecoratorFn;
|
|
1711
|
+
declare const textField: (updates?: ITextFieldMetadata) => FieldDecoratorFn;
|
|
1712
|
+
declare const passwordField: (updates?: IPasswordFieldMetadata) => FieldDecoratorFn;
|
|
1713
|
+
|
|
1714
|
+
interface IPrimaryFieldMetadata extends IFieldMetadata<number> {
|
|
1715
|
+
step?: number;
|
|
1716
|
+
}
|
|
1717
|
+
declare const primaryField: (updates?: IPrimaryFieldMetadata) => FieldDecoratorFn;
|
|
1718
|
+
|
|
1719
|
+
interface IDateFieldMetadata extends IFieldMetadata<Date | null> {
|
|
1720
|
+
autoNow?: boolean;
|
|
1721
|
+
autoNowAdd?: boolean;
|
|
1722
|
+
min?: Date;
|
|
1723
|
+
max?: Date;
|
|
1724
|
+
}
|
|
1725
|
+
interface IDatetimeFieldMetadata extends IDateFieldMetadata {
|
|
1726
|
+
timezone?: string | null;
|
|
1727
|
+
}
|
|
1728
|
+
declare const dateField: (updates?: IDateFieldMetadata) => FieldDecoratorFn;
|
|
1729
|
+
declare const datetimeField: (updates?: IDatetimeFieldMetadata) => FieldDecoratorFn;
|
|
1730
|
+
|
|
1731
|
+
interface IForeignKeyFieldMetadata extends IFieldMetadata<number> {
|
|
1732
|
+
related?: string;
|
|
1733
|
+
}
|
|
1734
|
+
interface IReverseForeignKeyFieldMetadata extends IFieldMetadata<number> {
|
|
1735
|
+
related: string;
|
|
1736
|
+
}
|
|
1737
|
+
interface IDetailsFieldMetadata<T> extends IFieldMetadata<T> {
|
|
1738
|
+
field?: string;
|
|
1739
|
+
many?: boolean;
|
|
1740
|
+
model?: T;
|
|
1741
|
+
deserialize?: (data: any) => T;
|
|
1742
|
+
}
|
|
1743
|
+
interface IManyToManyFieldMetadata extends IFieldMetadata<number[]> {
|
|
1744
|
+
related: string;
|
|
1745
|
+
}
|
|
1746
|
+
declare const foreignKeyField: (updates: IForeignKeyFieldMetadata) => FieldDecoratorFn;
|
|
1747
|
+
declare const reverseForeignKeyField: (updates: IReverseForeignKeyFieldMetadata) => FieldDecoratorFn;
|
|
1748
|
+
declare const detailsField: (meta?: IDetailsFieldMetadata<any>) => FieldDecoratorFn;
|
|
1749
|
+
declare const manyToManyField: (meta: IManyToManyFieldMetadata) => FieldDecoratorFn;
|
|
1750
|
+
|
|
1751
|
+
type IBooleanFieldMetadata = IFieldMetadata<boolean | null>;
|
|
1752
|
+
declare const booleanField: (updates?: IBooleanFieldMetadata) => FieldDecoratorFn;
|
|
1753
|
+
|
|
1754
|
+
interface IIntegerFieldMetadata extends IFieldMetadata<number> {
|
|
1755
|
+
min?: number;
|
|
1756
|
+
max?: number;
|
|
1757
|
+
}
|
|
1758
|
+
interface IFloatFieldMetadata extends IFieldMetadata<number> {
|
|
1759
|
+
min?: number;
|
|
1760
|
+
max?: number;
|
|
1761
|
+
}
|
|
1762
|
+
interface IDecimalFieldMetadata extends IFieldMetadata<number> {
|
|
1763
|
+
min?: number;
|
|
1764
|
+
max?: number;
|
|
1765
|
+
factor?: number;
|
|
1766
|
+
}
|
|
1767
|
+
declare const integerField: (updates?: IIntegerFieldMetadata) => FieldDecoratorFn;
|
|
1768
|
+
declare const floatField: (updates?: IFloatFieldMetadata) => FieldDecoratorFn;
|
|
1769
|
+
declare const decimalField: (updates?: IDecimalFieldMetadata) => FieldDecoratorFn;
|
|
1770
|
+
|
|
1771
|
+
interface IComputedFieldMetadata<T> extends IFieldMetadata<T> {
|
|
1772
|
+
field?: string;
|
|
1773
|
+
factor?: number;
|
|
1774
|
+
choices?: ICharFieldChoice[];
|
|
1775
|
+
}
|
|
1776
|
+
declare const computedField: (meta?: IComputedFieldMetadata<any>) => FieldDecoratorFn;
|
|
1777
|
+
|
|
1778
|
+
declare class MessageZoneComponent implements OnInit {
|
|
1779
|
+
messages: DataMessageService;
|
|
1780
|
+
filter?: string;
|
|
1781
|
+
current: Message[];
|
|
1782
|
+
private destroy$;
|
|
1783
|
+
constructor(messages: DataMessageService);
|
|
1784
|
+
ngOnInit(): void;
|
|
1785
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MessageZoneComponent, never>;
|
|
1786
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MessageZoneComponent, "data-message-zone", never, { "filter": { "alias": "filter"; "required": false; }; }, {}, never, never, true, never>;
|
|
1787
|
+
}
|
|
1788
|
+
|
|
1789
|
+
declare class QuerysetMock<T extends DataModel> {
|
|
1790
|
+
protected _coll: CollectionMock<T>;
|
|
1791
|
+
options: IQuerysetOptions;
|
|
1792
|
+
mockData: T[];
|
|
1793
|
+
filterData: FilterData;
|
|
1794
|
+
sortData: SortData[];
|
|
1795
|
+
pageSize: number;
|
|
1796
|
+
page: number;
|
|
1797
|
+
pristine: boolean;
|
|
1798
|
+
loading: Observable<boolean>;
|
|
1799
|
+
constructor(_coll: CollectionMock<T>, options?: IQuerysetOptions);
|
|
1800
|
+
get results(): Observable<T[]>;
|
|
1801
|
+
get meta(): Observable<IQueryMeta>;
|
|
1802
|
+
get full(): Observable<[T[], boolean, IQueryMeta]>;
|
|
1803
|
+
filter(params?: FilterData): QuerysetMock<T>;
|
|
1804
|
+
sort(...sorting: string[]): QuerysetMock<T>;
|
|
1805
|
+
paginateBy(pageSize?: number): QuerysetMock<T>;
|
|
1806
|
+
setPage(page: number): QuerysetMock<T>;
|
|
1807
|
+
getQueryParams(): FilterData;
|
|
1808
|
+
get(): Observable<T[]>;
|
|
1809
|
+
}
|
|
1810
|
+
|
|
1811
|
+
declare class CollectionMock<T extends DataModel> {
|
|
1812
|
+
protected model: new (coll: Collection<T>) => T;
|
|
1813
|
+
mockValue?: T;
|
|
1814
|
+
mockValues?: T[];
|
|
1815
|
+
actionValue: any;
|
|
1816
|
+
constructor(model: new (coll: Collection<T>) => T);
|
|
1817
|
+
fetch(id: number, suffix?: string): Observable<T>;
|
|
1818
|
+
action(model: T | null, method: IHttpMethod, action: string, params: IActionParams): Observable<any>;
|
|
1819
|
+
queryset(options?: IQuerysetOptions): QuerysetMock<T>;
|
|
1820
|
+
list(query?: {
|
|
1821
|
+
[index: string]: string;
|
|
1822
|
+
}, suffix?: string): Observable<any>;
|
|
1823
|
+
fromJson(data: any, many?: boolean): T | any;
|
|
1824
|
+
}
|
|
1825
|
+
|
|
1826
|
+
interface UploaderOptions {
|
|
1827
|
+
concurrency: number;
|
|
1828
|
+
allowedContentTypes?: string[];
|
|
1829
|
+
maxUploads?: number;
|
|
1830
|
+
maxFileSize?: number;
|
|
1831
|
+
}
|
|
1832
|
+
interface BlobFile extends Blob {
|
|
1833
|
+
name: string;
|
|
1834
|
+
}
|
|
1835
|
+
declare enum UploadStatus {
|
|
1836
|
+
Queue = 0,
|
|
1837
|
+
Uploading = 1,
|
|
1838
|
+
Done = 2,
|
|
1839
|
+
Cancelled = 3
|
|
1840
|
+
}
|
|
1841
|
+
interface UploadProgress {
|
|
1842
|
+
status: UploadStatus;
|
|
1843
|
+
data?: {
|
|
1844
|
+
percentage: number;
|
|
1845
|
+
speed: number;
|
|
1846
|
+
speedHuman: string;
|
|
1847
|
+
startTime: number | null;
|
|
1848
|
+
endTime: number | null;
|
|
1849
|
+
eta: number | null;
|
|
1850
|
+
etaHuman: string | null;
|
|
1851
|
+
};
|
|
1852
|
+
}
|
|
1853
|
+
interface UploadFile {
|
|
1854
|
+
id: string;
|
|
1855
|
+
fileIndex: number;
|
|
1856
|
+
lastModifiedDate: Date;
|
|
1857
|
+
name: string;
|
|
1858
|
+
size: number;
|
|
1859
|
+
type: string;
|
|
1860
|
+
form: FormData;
|
|
1861
|
+
progress: UploadProgress;
|
|
1862
|
+
response?: any;
|
|
1863
|
+
responseStatus?: number;
|
|
1864
|
+
sub?: Subscription | any;
|
|
1865
|
+
nativeFile?: File;
|
|
1866
|
+
responseHeaders?: {
|
|
1867
|
+
[key: string]: string;
|
|
1868
|
+
};
|
|
1869
|
+
}
|
|
1870
|
+
interface UploadOutput {
|
|
1871
|
+
type: "addedToQueue" | "allAddedToQueue" | "uploading" | "done" | "start" | "cancelled" | "dragOver" | "dragOut" | "drop" | "removed" | "removedAll" | "rejected";
|
|
1872
|
+
file?: UploadFile;
|
|
1873
|
+
nativeFile?: File;
|
|
1874
|
+
}
|
|
1875
|
+
interface UploadInput {
|
|
1876
|
+
type: "uploadAll" | "uploadFile" | "cancel" | "cancelAll" | "remove" | "removeAll";
|
|
1877
|
+
url?: string;
|
|
1878
|
+
method?: string;
|
|
1879
|
+
id?: string;
|
|
1880
|
+
fieldName?: string;
|
|
1881
|
+
fileIndex?: number;
|
|
1882
|
+
file?: UploadFile;
|
|
1883
|
+
data?: {
|
|
1884
|
+
[key: string]: string | Blob;
|
|
1885
|
+
};
|
|
1886
|
+
headers?: {
|
|
1887
|
+
[key: string]: string;
|
|
1888
|
+
};
|
|
1889
|
+
includeWebKitFormBoundary?: boolean;
|
|
1890
|
+
withCredentials?: boolean;
|
|
1891
|
+
}
|
|
1892
|
+
|
|
1893
|
+
declare function humanizeBytes(bytes: number): string;
|
|
1894
|
+
declare class DataUploaderService {
|
|
1895
|
+
queue: UploadFile[];
|
|
1896
|
+
serviceEvents: EventEmitter<UploadOutput>;
|
|
1897
|
+
uploadScheduler: Subject<{
|
|
1898
|
+
file: UploadFile;
|
|
1899
|
+
event: UploadInput;
|
|
1900
|
+
}>;
|
|
1901
|
+
subs: {
|
|
1902
|
+
id: string;
|
|
1903
|
+
sub: Subscription;
|
|
1904
|
+
}[];
|
|
1905
|
+
contentTypes: string[];
|
|
1906
|
+
maxUploads: number;
|
|
1907
|
+
maxFileSize: number;
|
|
1908
|
+
constructor(concurrency?: number, contentTypes?: string[], maxUploads?: number, maxFileSize?: number);
|
|
1909
|
+
handleFiles(incomingFiles: FileList): void;
|
|
1910
|
+
initInputEvents(input: EventEmitter<UploadInput>): Subscription;
|
|
1911
|
+
startUpload(upload: {
|
|
1912
|
+
file: UploadFile;
|
|
1913
|
+
event: UploadInput;
|
|
1914
|
+
}): Observable<UploadOutput>;
|
|
1915
|
+
uploadFile(file: UploadFile, event: UploadInput): Observable<UploadOutput>;
|
|
1916
|
+
secondsToHuman(sec: number): string;
|
|
1917
|
+
generateId(): string;
|
|
1918
|
+
setContentTypes(contentTypes: string[]): void;
|
|
1919
|
+
allContentTypesAllowed(): boolean;
|
|
1920
|
+
isContentTypeAllowed(mimetype: string): boolean;
|
|
1921
|
+
isFileSizeAllowed(fileSize: number): boolean;
|
|
1922
|
+
makeUploadFile(file: File, index: number): UploadFile;
|
|
1923
|
+
private parseResponseHeaders;
|
|
1924
|
+
}
|
|
1925
|
+
|
|
1926
|
+
declare class NgFileDropDirective implements OnInit, OnDestroy {
|
|
1927
|
+
elementRef: ElementRef;
|
|
1928
|
+
options: UploaderOptions;
|
|
1929
|
+
uploadInput: EventEmitter<UploadInput>;
|
|
1930
|
+
uploadOutput: EventEmitter<UploadOutput>;
|
|
1931
|
+
upload: DataUploaderService;
|
|
1932
|
+
el: HTMLInputElement;
|
|
1933
|
+
private _sub;
|
|
1934
|
+
constructor(elementRef: ElementRef);
|
|
1935
|
+
ngOnInit(): void;
|
|
1936
|
+
ngOnDestroy(): void;
|
|
1937
|
+
stopEvent: (e: Event) => void;
|
|
1938
|
+
onDrop(e: any): void;
|
|
1939
|
+
onDragOver(e: Event): void;
|
|
1940
|
+
onDragLeave(e: Event): void;
|
|
1941
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgFileDropDirective, never>;
|
|
1942
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgFileDropDirective, "[dataFileDrop]", never, { "options": { "alias": "options"; "required": false; }; "uploadInput": { "alias": "uploadInput"; "required": false; }; }, { "uploadOutput": "uploadOutput"; }, never, never, false, never>;
|
|
1943
|
+
}
|
|
1944
|
+
|
|
1945
|
+
declare class NgFileSelectDirective implements OnInit, OnDestroy {
|
|
1946
|
+
elementRef: ElementRef;
|
|
1947
|
+
options: UploaderOptions;
|
|
1948
|
+
uploadInput: EventEmitter<any>;
|
|
1949
|
+
uploadOutput: EventEmitter<UploadOutput>;
|
|
1950
|
+
upload: DataUploaderService;
|
|
1951
|
+
el: HTMLInputElement;
|
|
1952
|
+
private _sub;
|
|
1953
|
+
constructor(elementRef: ElementRef);
|
|
1954
|
+
ngOnInit(): void;
|
|
1955
|
+
ngOnDestroy(): void;
|
|
1956
|
+
fileListener: () => void;
|
|
1957
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgFileSelectDirective, never>;
|
|
1958
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgFileSelectDirective, "[dataFileSelect]", never, { "options": { "alias": "options"; "required": false; }; "uploadInput": { "alias": "uploadInput"; "required": false; }; }, { "uploadOutput": "uploadOutput"; }, never, never, false, never>;
|
|
1959
|
+
}
|
|
1960
|
+
|
|
1961
|
+
declare class NgxUploaderModule {
|
|
1962
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<NgxUploaderModule, never>;
|
|
1963
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<NgxUploaderModule, [typeof NgFileDropDirective, typeof NgFileSelectDirective], never, [typeof NgFileDropDirective, typeof NgFileSelectDirective]>;
|
|
1964
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<NgxUploaderModule>;
|
|
1965
|
+
}
|
|
1966
|
+
|
|
1967
|
+
declare const DATA_AUTH_SERVICE: InjectionToken<AuthServiceBase<any, any, any>>;
|
|
1968
|
+
/**
|
|
1969
|
+
* List of urls that should be intercepted by the auth interceptor, thus receiving the auth token
|
|
1970
|
+
* Default : empty list
|
|
1971
|
+
*/
|
|
1972
|
+
declare const DATA_AUTH_URLS: InjectionToken<string[]>;
|
|
1973
|
+
declare class AuthInterceptor implements HttpInterceptor {
|
|
1974
|
+
private _auth;
|
|
1975
|
+
private _apiUrl;
|
|
1976
|
+
private _urls;
|
|
1977
|
+
private _isRefreshing;
|
|
1978
|
+
private _refreshTokenSubject;
|
|
1979
|
+
constructor(_auth: AuthServiceBase<any, any, any>, _apiUrl: string, _urls: string[] | null);
|
|
1980
|
+
/**
|
|
1981
|
+
* The auth token in added to the request if :
|
|
1982
|
+
* - the request is not anonymous
|
|
1983
|
+
* - the request is for the api url, but not for the refresh or login urls
|
|
1984
|
+
* - the request is for one of the urls specified in the DATA_AUTH_URLS injection token
|
|
1985
|
+
* @param req
|
|
1986
|
+
* @param next
|
|
1987
|
+
*/
|
|
1988
|
+
intercept(req: HttpRequest<any>, next: HttpHandler): rxjs.Observable<_angular_common_http.HttpEvent<any>>;
|
|
1989
|
+
private _handle401Error;
|
|
1990
|
+
private _addToken;
|
|
1991
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AuthInterceptor, [null, null, { optional: true; }]>;
|
|
1992
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AuthInterceptor>;
|
|
1993
|
+
}
|
|
1994
|
+
|
|
1995
|
+
/**
|
|
1996
|
+
* Template function type.
|
|
1997
|
+
* Used for page title or other data to string operations.
|
|
1998
|
+
*
|
|
1999
|
+
* @param data: object
|
|
2000
|
+
* @param path: optional path (see: usage)
|
|
2001
|
+
*/
|
|
2002
|
+
type TplFn<T> = (data: T, path?: string) => string;
|
|
2003
|
+
/**
|
|
2004
|
+
* Base route parameters interface.
|
|
2005
|
+
*/
|
|
2006
|
+
interface BaseRouteParams {
|
|
2007
|
+
/** Skip route in breadcrumbs */
|
|
2008
|
+
skip?: boolean;
|
|
2009
|
+
/** Route title or title template */
|
|
2010
|
+
title?: string | TplFn<any>;
|
|
2011
|
+
/** Route icon string */
|
|
2012
|
+
icon?: string;
|
|
2013
|
+
/** Route config item */
|
|
2014
|
+
route: RouteConfigItem;
|
|
2015
|
+
/** This route is a tree route */
|
|
2016
|
+
tree?: boolean;
|
|
2017
|
+
}
|
|
2018
|
+
/**
|
|
2019
|
+
* Route function type.
|
|
2020
|
+
* Takes parameters, return a route.
|
|
2021
|
+
*/
|
|
2022
|
+
type RouteFn = (...args: any[]) => (string | number)[];
|
|
2023
|
+
/**
|
|
2024
|
+
* Route config item.
|
|
2025
|
+
* Stores route named parameters, route function and route name.
|
|
2026
|
+
*/
|
|
2027
|
+
interface RouteConfigItem {
|
|
2028
|
+
params: string[];
|
|
2029
|
+
route: RouteFn;
|
|
2030
|
+
name: string;
|
|
2031
|
+
}
|
|
2032
|
+
declare function RData<T extends BaseRouteParams>(value: T): T;
|
|
2033
|
+
type RoutesConfig<T extends string> = {
|
|
2034
|
+
readonly [Property in T]: RouteConfigItem;
|
|
2035
|
+
};
|
|
2036
|
+
interface StrictRoutes extends Route {
|
|
2037
|
+
data: BaseRouteParams;
|
|
2038
|
+
}
|
|
2039
|
+
type RoutesDefinition = StrictRoutes[];
|
|
2040
|
+
interface RouteArg<T> {
|
|
2041
|
+
[index: string]: T;
|
|
2042
|
+
}
|
|
2043
|
+
declare class Link<T> {
|
|
2044
|
+
private _cargs;
|
|
2045
|
+
private _params;
|
|
2046
|
+
private _route;
|
|
2047
|
+
private _router?;
|
|
2048
|
+
constructor(config: RouteConfigItem, context: any, router?: Router);
|
|
2049
|
+
private _name;
|
|
2050
|
+
get name(): string;
|
|
2051
|
+
context(ctx: any): void;
|
|
2052
|
+
route(params?: Required<RouteArg<T>>): (string | number)[];
|
|
2053
|
+
navigate(params?: {
|
|
2054
|
+
[index: string]: T;
|
|
2055
|
+
}, router?: Router): Promise<boolean>;
|
|
2056
|
+
}
|
|
2057
|
+
|
|
2058
|
+
interface IPathTreeItem {
|
|
2059
|
+
path: string;
|
|
2060
|
+
title: string;
|
|
2061
|
+
icon: string;
|
|
2062
|
+
current: boolean;
|
|
2063
|
+
}
|
|
2064
|
+
/**
|
|
2065
|
+
* Use data from route config to create a breadcrumb for current route.
|
|
2066
|
+
*
|
|
2067
|
+
* Route config data is :
|
|
2068
|
+
* - title : route fragment title or lodash template to build title
|
|
2069
|
+
* (provided arguments for template processing : route (current segment route snapshot)
|
|
2070
|
+
* and data (input argument)
|
|
2071
|
+
* - icon: icon classes. Example fa fa-home for home & font awesome
|
|
2072
|
+
*/
|
|
2073
|
+
declare class BreadcrumbComponent implements OnChanges, OnInit {
|
|
2074
|
+
router: Router;
|
|
2075
|
+
route: ActivatedRoute;
|
|
2076
|
+
/**
|
|
2077
|
+
* Additional data to be used in titleTemplate
|
|
2078
|
+
*/
|
|
2079
|
+
data: any;
|
|
2080
|
+
/**
|
|
2081
|
+
* Do we display icons ?
|
|
2082
|
+
*/
|
|
2083
|
+
icons: boolean;
|
|
2084
|
+
tree: IPathTreeItem[];
|
|
2085
|
+
private destroy$;
|
|
2086
|
+
constructor(router: Router, route: ActivatedRoute);
|
|
2087
|
+
ngOnInit(): void;
|
|
2088
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
2089
|
+
getRouteTree(current: RouterState): void;
|
|
2090
|
+
getTitle(rdata: Partial<BaseRouteParams>, data: BaseRouteParams, u?: UrlSegment): string;
|
|
2091
|
+
getIcon(rdata: Partial<BaseRouteParams>, data: BaseRouteParams): string;
|
|
2092
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbComponent, never>;
|
|
2093
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbComponent, "data-breadcrumb", never, { "data": { "alias": "data"; "required": false; }; "icons": { "alias": "icons"; "required": false; }; }, {}, never, never, true, never>;
|
|
2094
|
+
}
|
|
2095
|
+
|
|
2096
|
+
interface ITabStoredMem {
|
|
2097
|
+
name: string;
|
|
2098
|
+
value: string;
|
|
2099
|
+
}
|
|
2100
|
+
declare class NavDriver {
|
|
2101
|
+
private _parent;
|
|
2102
|
+
name: string;
|
|
2103
|
+
defaults: string;
|
|
2104
|
+
private save;
|
|
2105
|
+
private lastActive;
|
|
2106
|
+
constructor(_parent: TabMemoryService, name: string, defaults: string, save: boolean);
|
|
2107
|
+
private _current;
|
|
2108
|
+
get current(): string;
|
|
2109
|
+
set current(value: string);
|
|
2110
|
+
get value(): ITabStoredMem;
|
|
2111
|
+
}
|
|
2112
|
+
declare class TabMemoryService {
|
|
2113
|
+
private _route;
|
|
2114
|
+
private tabMem;
|
|
2115
|
+
constructor(_route: ActivatedRoute);
|
|
2116
|
+
private static targetToString;
|
|
2117
|
+
memFor(target: (string | number | UrlSegment)[], defaults: string, save?: boolean, fragment?: string | null): NavDriver;
|
|
2118
|
+
save(): void;
|
|
2119
|
+
load(name: string): string | null;
|
|
2120
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TabMemoryService, never>;
|
|
2121
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<TabMemoryService>;
|
|
2122
|
+
}
|
|
2123
|
+
|
|
2124
|
+
declare const slugify: (str: string) => string;
|
|
2125
|
+
|
|
2126
|
+
declare const tmpl: (text: string, data?: any, objectName?: string) => any;
|
|
2127
|
+
|
|
2128
|
+
declare class UpdateService {
|
|
2129
|
+
private appRef;
|
|
2130
|
+
private swUpdate;
|
|
2131
|
+
private stable;
|
|
2132
|
+
constructor(appRef: ApplicationRef, swUpdate: SwUpdate);
|
|
2133
|
+
private _available$;
|
|
2134
|
+
get available$(): Observable<boolean>;
|
|
2135
|
+
activate(): void;
|
|
2136
|
+
dismiss(): void;
|
|
2137
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UpdateService, never>;
|
|
2138
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<UpdateService>;
|
|
2139
|
+
}
|
|
2140
|
+
|
|
2141
|
+
declare class UpdateComponent {
|
|
2142
|
+
update: UpdateService;
|
|
2143
|
+
constructor(update: UpdateService);
|
|
2144
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UpdateComponent, never>;
|
|
2145
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UpdateComponent, "data-update", never, {}, {}, never, never, true, never>;
|
|
2146
|
+
}
|
|
2147
|
+
|
|
2148
|
+
export { AuthInterceptor, AuthServiceBase, BanAdapter, BootstrapDataDisplayConfig, BreadcrumbComponent, ChoicePipe, Collection, CollectionMock, DATA_API_URL, DATA_AUTH_PARAMS, DATA_AUTH_SERVICE, DATA_AUTH_URLS, DATA_AUTH_USER_SERVICE, DATA_DISPLAY_CONFIG, DATA_MAX_TRANSFERSTATE_TIME, DATA_MESSAGE_SOUNDS, DEFAULT_TIMEOUTS, DataBackend, DataMessageService, DataModel, DataUploaderService, DispeditComponent, FactorPipe, FactorcPipe, FkselectComponent, FlagsComponent, Jwt, Link, M2mselectComponent, Message, MessageZoneComponent, ModelList, ModelListAutocompleteFilter, ModelListAutocompleteMultiFilter, ModelListDateFilter, ModelListDatetimeFilter, ModelListDatetimerangeFilter, ModelListFieldHeaderComponent, ModelListFieldsSelectorComponent, ModelListFilter, ModelListFilterGroup, ModelListFilters, ModelListFiltersComponent, ModelListFiltersSelectComponent, ModelListFlagsFilter, ModelListGeodistanceFilter, ModelListNumberFilter, ModelListNumberOperations, ModelListPaginatorComponent, ModelListSelectFilter, ModelListSelectMultiFilter, ModelListService, ModelListSorterComponent, ModelListTextFilter, ModelListTreeFilter, NavDriver, NgFileDropDirective, NgFileSelectDirective, NgxUploaderModule, PChoicePipe, PFactorPipe, PFactorcPipe, Queryset, RData, RichEditToolbars, RicheditComponent, STATUS, SafeDeleteComponent, TYPE, TabMemoryService, UpdateComponent, UpdateService, UploadStatus, booleanField, charField, computedField, dateField, datetimeField, decimalField, detailsField, emailField, floatField, foreignKeyField, humanizeBytes, integerField, isValue, manyToManyField, passwordField, primaryField, reverseForeignKeyField, slugify, strToNumber, textField, tmpl };
|
|
2149
|
+
export type { AuthParams, BanResults, BaseRouteParams, BlobFile, CustomField, DataDisplayConfig, DataModelFields, DataModelType, FakeDeleteResult, FieldsParams, FilterData, FilterDefaults, FiltersParams, GeoSearchResult, GetFlagsResult, IActionParams, ICollectionCacheParams, IFlagItem, IHttpMethod, IJwtBaseData, IJwtRefreshResponseJson, IJwtResponseJson, IModelListMessage, IPathTreeItem, IQueryFullResponse, IQueryMeta, IQueryMetaNav, IQueryMetaNavParams, IQueryNav, IQuerysetOptions, ISoundTypes, ModelListAutocompleteMultiParams, ModelListAutocompleteParams, ModelListFilterParams, ModelListFlagsFilterParams, ModelListGeodistanceFilterParams, ModelListMultiSelectFilterParams, ModelListNumberFilterParams, ModelListParams, ModelListSelectFilterParams, ModelListTreeParams, OutFilterData, PaginationParams, RouteConfigItem, RouteFn, RoutesConfig, RoutesDefinition, SortData, SorterDefaults, StrictRoutes, TplFn, TplFun, UploadFile, UploadInput, UploadOutput, UploadProgress, UploaderOptions };
|