@solidev/data 0.0.9 → 0.1.1
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/esm2022/lib/auth/auth-interceptor.service.mjs +118 -0
- package/{esm2020 → esm2022}/lib/auth/auth.service.mjs +2 -3
- package/{esm2020 → esm2022}/lib/data/data-backend.mjs +4 -4
- package/esm2022/lib/data/data-model.mjs +291 -0
- package/{esm2020 → esm2022}/lib/dispedit/choice.pipe.mjs +7 -7
- package/{esm2020 → esm2022}/lib/dispedit/dispedit/dispedit.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/dispedit/factor.pipe.mjs +7 -7
- package/{esm2020 → esm2022}/lib/dispedit/factorc.pipe.mjs +7 -7
- package/{esm2020 → esm2022}/lib/dispedit/fkselect/fkselect.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/dispedit/flags/flags.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/dispedit/m2mselect/m2mselect.component.mjs +10 -10
- package/{esm2020 → esm2022}/lib/dispedit/richedit/richedit.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/dispedit/sdelete/sdelete.component.mjs +4 -4
- package/esm2022/lib/messages/message-zone/message-zone.component.mjs +57 -0
- package/{esm2020 → esm2022}/lib/messages/message.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modellist/model-list.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/routing/breadcrumb/breadcrumb.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/updates/update/update.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/updates/update.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/uploader/ng-file-drop.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/uploader/ng-file-select.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/uploader/ngx-uploader.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/utils/tab-memory.service.mjs +4 -4
- package/{fesm2020 → fesm2022}/solidev-data.mjs +181 -154
- package/fesm2022/solidev-data.mjs.map +1 -0
- package/lib/auth/auth-interceptor.service.d.ts +16 -2
- package/lib/dispedit/dispedit/dispedit.component.d.ts +1 -1
- package/lib/dispedit/fkselect/fkselect.component.d.ts +1 -1
- package/lib/dispedit/flags/flags.component.d.ts +1 -1
- package/lib/dispedit/m2mselect/m2mselect.component.d.ts +1 -1
- package/lib/dispedit/richedit/richedit.component.d.ts +1 -1
- package/lib/dispedit/sdelete/sdelete.component.d.ts +1 -1
- package/lib/messages/message-zone/message-zone.component.d.ts +1 -1
- package/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.d.ts +3 -3
- package/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.d.ts +1 -1
- package/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.d.ts +1 -1
- package/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.d.ts +1 -1
- package/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.d.ts +1 -1
- package/lib/routing/breadcrumb/breadcrumb.component.d.ts +1 -1
- package/lib/uploader/ng-file-drop.directive.d.ts +1 -1
- package/lib/uploader/ng-file-select.directive.d.ts +1 -1
- package/package.json +8 -14
- package/esm2020/lib/auth/auth-interceptor.service.mjs +0 -91
- package/esm2020/lib/data/data-model.mjs +0 -291
- package/esm2020/lib/messages/message-zone/message-zone.component.mjs +0 -57
- package/fesm2015/solidev-data.mjs +0 -6228
- package/fesm2015/solidev-data.mjs.map +0 -1
- package/fesm2020/solidev-data.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/auth/jwt.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/data-collection.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/data-collection.mock.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/data-parameters.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/data-query.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/data-query.mock.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/base.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/boolean.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/computed.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/datetime.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/numbers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/primaryfield.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/relations.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/data/fields/stringfields.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/dispedit/dispedit/dispedit.constants.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-fields/model-list-field-header/messages.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-fields/model-list-fields.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/filtertypes.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetimerange-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/adapters/ban.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/model-list-filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-filters/model-list-filters.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-paginator/model-list-paginator.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modellist/model-list-sorter/model-list-sorter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/routing/routing.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/uploader/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/uploader/interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/uploader/ngx-uploader.class.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/slugify.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/utils/template.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/solidev-data.mjs +0 -0
|
@@ -3,15 +3,29 @@ import { HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http'
|
|
|
3
3
|
import { AuthServiceBase } from './auth.service';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare const DATA_AUTH_SERVICE: InjectionToken<AuthServiceBase<any, any, any>>;
|
|
6
|
+
/**
|
|
7
|
+
* List of urls that should be intercepted by the auth interceptor, thus receiving the auth token
|
|
8
|
+
* Default : empty list
|
|
9
|
+
*/
|
|
10
|
+
export declare const DATA_AUTH_URLS: InjectionToken<string[]>;
|
|
6
11
|
export declare class AuthInterceptor implements HttpInterceptor {
|
|
7
12
|
private _auth;
|
|
8
13
|
private _apiUrl;
|
|
14
|
+
private _urls;
|
|
9
15
|
private _isRefreshing;
|
|
10
16
|
private _refreshTokenSubject;
|
|
11
|
-
constructor(_auth: AuthServiceBase<any, any, any>, _apiUrl: string);
|
|
17
|
+
constructor(_auth: AuthServiceBase<any, any, any>, _apiUrl: string, _urls: string[] | null);
|
|
18
|
+
/**
|
|
19
|
+
* The auth token in added to the request if :
|
|
20
|
+
* - the request is not anonymous
|
|
21
|
+
* - the request is for the api url, but not for the refresh or login urls
|
|
22
|
+
* - the request is for one of the urls specified in the DATA_AUTH_URLS injection token
|
|
23
|
+
* @param req
|
|
24
|
+
* @param next
|
|
25
|
+
*/
|
|
12
26
|
intercept(req: HttpRequest<any>, next: HttpHandler): import("rxjs").Observable<import("@angular/common/http").HttpEvent<any>>;
|
|
13
27
|
private _handle401Error;
|
|
14
28
|
private _addToken;
|
|
15
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AuthInterceptor,
|
|
29
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AuthInterceptor, [null, null, { optional: true; }]>;
|
|
16
30
|
static ɵprov: i0.ɵɵInjectableDeclaration<AuthInterceptor>;
|
|
17
31
|
}
|
|
@@ -178,5 +178,5 @@ export declare class DispeditComponent<FT, T extends DataModel, R extends DataMo
|
|
|
178
178
|
private _getDisplayValue;
|
|
179
179
|
private _setDisplayClasses;
|
|
180
180
|
static ɵfac: i0.ɵɵFactoryDeclaration<DispeditComponent<any, any, any>, [{ optional: true; }, null]>;
|
|
181
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DispeditComponent<any, any, any>, "data-dispedit", never, { "model": "model"; "field": "field"; "form": "form"; "edit": "edit"; "editable": "editable"; "mode": "mode"; "choices": "choices"; "inputClasses": "inputClasses"; "editor": "editor"; "viewer": "viewer"; "default": "default"; "placeholder": "placeholder"; "help": "help"; "hideLabel": "hideLabel"; "queryset": "queryset"; "collection": "collection"; "display": "display"; "filter": "filter"; }, { "changed": "changed"; }, never, ["*"], true, never>;
|
|
181
|
+
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>;
|
|
182
182
|
}
|
|
@@ -39,5 +39,5 @@ export declare class FkselectComponent<T extends DataModel, R extends DataModel>
|
|
|
39
39
|
private _display;
|
|
40
40
|
private _search;
|
|
41
41
|
static ɵfac: i0.ɵɵFactoryDeclaration<FkselectComponent<any, any>, never>;
|
|
42
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FkselectComponent<any, any>, "data-fkselect", never, { "model": "model"; "field": "field"; "edit": "edit"; "value": "value"; "queryset": "queryset"; "collection": "collection"; "update": "update"; "filter": "filter"; "mode": "mode"; "display": "display"; "search": "search"; "label": "label"; "placeholder": "placeholder"; "inputClasses": "inputClasses"; }, { "selected": "selected"; "cancelled": "cancelled"; "cleared": "cleared"; }, never, never, true, never>;
|
|
42
|
+
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>;
|
|
43
43
|
}
|
|
@@ -36,5 +36,5 @@ export declare class FlagsComponent<T extends DataModel> implements OnInit, OnDe
|
|
|
36
36
|
removeFlag(flag: string): Promise<any>;
|
|
37
37
|
toggleEdit(): Promise<void>;
|
|
38
38
|
static ɵfac: i0.ɵɵFactoryDeclaration<FlagsComponent<any>, never>;
|
|
39
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<FlagsComponent<any>, "data-flags", never, { "model": "model"; "field": "field"; "get_flags_endpoint": "get_flags_endpoint"; "edit": "edit"; "editable": "editable"; "flags": "flags"; "free": "free"; "create": "create"; "action": "action"; }, {}, never, ["*"], true, never>;
|
|
39
|
+
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>;
|
|
40
40
|
}
|
|
@@ -116,5 +116,5 @@ export declare class M2mselectComponent<T extends DataModel, R extends DataModel
|
|
|
116
116
|
*/
|
|
117
117
|
private _search;
|
|
118
118
|
static ɵfac: i0.ɵɵFactoryDeclaration<M2mselectComponent<any, any>, never>;
|
|
119
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<M2mselectComponent<any, any>, "data-m2mselect", never, { "model": "model"; "field": "field"; "edit": "edit"; "values": "values"; "queryset": "queryset"; "collection": "collection"; "filter": "filter"; "mode": "mode"; "display": "display"; "search": "search"; "label": "label"; "placeholder": "placeholder"; "emptyLabel": "emptyLabel"; "inputClasses": "inputClasses"; }, { "added": "added"; "removed": "removed"; "cancelled": "cancelled"; "cleared": "cleared"; "detailsChanged": "detailsChanged"; "changed": "changed"; }, never, never, true, never>;
|
|
119
|
+
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>;
|
|
120
120
|
}
|
|
@@ -34,5 +34,5 @@ export declare class RicheditComponent<FT, T extends DataModel> implements OnIni
|
|
|
34
34
|
toggleEdit(): void;
|
|
35
35
|
save(): Promise<void>;
|
|
36
36
|
static ɵfac: i0.ɵɵFactoryDeclaration<RicheditComponent<any, any>, never>;
|
|
37
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RicheditComponent<any, any>, "data-richedit", never, { "model": "model"; "field": "field"; "editable": "editable"; "edit": "edit"; "mode": "mode"; "hideLabel": "hideLabel"; "hideButton": "hideButton"; "fc": "fc"; "toolbar": "toolbar"; }, { "changed": "changed"; }, never, ["*"], true, never>;
|
|
37
|
+
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>;
|
|
38
38
|
}
|
|
@@ -32,5 +32,5 @@ export declare class SafeDeleteComponent<T extends DataModel> {
|
|
|
32
32
|
checkDelete(model: DataModel): Promise<void>;
|
|
33
33
|
reallyDelete(): Promise<void>;
|
|
34
34
|
static ɵfac: i0.ɵɵFactoryDeclaration<SafeDeleteComponent<any>, never>;
|
|
35
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SafeDeleteComponent<any>, "data-safe-delete", never, { "model": "model"; "service": "service"; "actionFn": "actionFn"; "checks": "checks"; "messages": "messages"; "display": "display"; }, { "deleted": "deleted"; }, never, ["*"], true, never>;
|
|
35
|
+
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>;
|
|
36
36
|
}
|
|
@@ -10,5 +10,5 @@ export declare class MessageZoneComponent implements OnInit, OnDestroy {
|
|
|
10
10
|
ngOnInit(): void;
|
|
11
11
|
ngOnDestroy(): void;
|
|
12
12
|
static ɵfac: i0.ɵɵFactoryDeclaration<MessageZoneComponent, never>;
|
|
13
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<MessageZoneComponent, "data-message-zone", never, { "filter": "filter"; }, {}, never, never, true, never>;
|
|
13
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<MessageZoneComponent, "data-message-zone", never, { "filter": { "alias": "filter"; "required": false; }; }, {}, never, never, true, never>;
|
|
14
14
|
}
|
|
@@ -13,8 +13,8 @@ export declare class ModelListFieldHeaderComponent<T extends DataModel> implemen
|
|
|
13
13
|
sortMode: 'hide' | 'side' | 'click';
|
|
14
14
|
display?: boolean;
|
|
15
15
|
mnu?: NgbDropdown;
|
|
16
|
-
dispMenuMode: "hide" | "
|
|
17
|
-
dispSortMode: "hide" | "
|
|
16
|
+
dispMenuMode: "hide" | "side" | "click";
|
|
17
|
+
dispSortMode: "hide" | "side" | "click";
|
|
18
18
|
private _subscriptions$;
|
|
19
19
|
constructor();
|
|
20
20
|
ngOnInit(): void;
|
|
@@ -22,5 +22,5 @@ export declare class ModelListFieldHeaderComponent<T extends DataModel> implemen
|
|
|
22
22
|
disable(): void;
|
|
23
23
|
enable(f: ModelListField): void;
|
|
24
24
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListFieldHeaderComponent<any>, never>;
|
|
25
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListFieldHeaderComponent<any>, "data-model-list-field-header", never, { "list": "list"; "field": "field"; "sort": "sort"; "sortField": "sortField"; "menuMode": "menuMode"; "sortMode": "sortMode"; "display": "display"; }, {}, never, ["*"], true, never>;
|
|
25
|
+
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>;
|
|
26
26
|
}
|
|
@@ -16,5 +16,5 @@ export declare class ModelListFieldsSelectorComponent<T extends DataModel> imple
|
|
|
16
16
|
drop($event: CdkDragDrop<T, any>): void;
|
|
17
17
|
toggle(f: ModelListField): void;
|
|
18
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListFieldsSelectorComponent<any>, never>;
|
|
19
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListFieldsSelectorComponent<any>, "data-model-list-fields-selector", never, { "list": "list"; }, {}, never, never, true, never>;
|
|
19
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListFieldsSelectorComponent<any>, "data-model-list-fields-selector", never, { "list": { "alias": "list"; "required": false; }; }, {}, never, never, true, never>;
|
|
20
20
|
}
|
|
@@ -27,5 +27,5 @@ export declare class ModelListAutocompleteFilterComponent<T extends DataModel> i
|
|
|
27
27
|
private _display;
|
|
28
28
|
private _search;
|
|
29
29
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListAutocompleteFilterComponent<any>, never>;
|
|
30
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListAutocompleteFilterComponent<any>, "data-model-list-autocomplete-filter", never, { "list": "list"; "filter": "filter"; "classes": "classes"; }, {}, never, never, true, never>;
|
|
30
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListAutocompleteFilterComponent<any>, "data-model-list-autocomplete-filter", never, { "list": { "alias": "list"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "classes": { "alias": "classes"; "required": false; }; }, {}, never, never, true, never>;
|
|
31
31
|
}
|
|
@@ -7,5 +7,5 @@ export declare class ModelListAutocompleteMultiFilterComponent<T extends DataMod
|
|
|
7
7
|
protected _resetAfterSet: boolean;
|
|
8
8
|
unset(value: any, desc: string): void;
|
|
9
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListAutocompleteMultiFilterComponent<any>, never>;
|
|
10
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListAutocompleteMultiFilterComponent<any>, "data-model-list-autocomplete-multi-filter", never, { "filter": "filter"; }, {}, never, never, true, never>;
|
|
10
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListAutocompleteMultiFilterComponent<any>, "data-model-list-autocomplete-multi-filter", never, { "filter": { "alias": "filter"; "required": false; }; }, {}, never, never, true, never>;
|
|
11
11
|
}
|
|
@@ -11,5 +11,5 @@ export declare class ModelListDateFilterComponent {
|
|
|
11
11
|
ngOnInit(): void;
|
|
12
12
|
disable(): void;
|
|
13
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListDateFilterComponent, never>;
|
|
14
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListDateFilterComponent, "data-model-list-date-filter", never, { "list": "list"; "filter": "filter"; "classes": "classes"; }, {}, never, never, true, never>;
|
|
14
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListDateFilterComponent, "data-model-list-date-filter", never, { "list": { "alias": "list"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "classes": { "alias": "classes"; "required": false; }; }, {}, never, never, true, never>;
|
|
15
15
|
}
|
|
@@ -11,5 +11,5 @@ export declare class ModelListDatetimeFilterComponent {
|
|
|
11
11
|
ngOnInit(): void;
|
|
12
12
|
disable(): void;
|
|
13
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListDatetimeFilterComponent, never>;
|
|
14
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListDatetimeFilterComponent, "data-model-list-datetime-filter", never, { "list": "list"; "filter": "filter"; "classes": "classes"; }, {}, never, never, true, never>;
|
|
14
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListDatetimeFilterComponent, "data-model-list-datetime-filter", never, { "list": { "alias": "list"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "classes": { "alias": "classes"; "required": false; }; }, {}, never, never, true, never>;
|
|
15
15
|
}
|
|
@@ -7,5 +7,5 @@ export declare class ModelListDatetimeRangeFilterComponent {
|
|
|
7
7
|
classes: string[] | string;
|
|
8
8
|
constructor();
|
|
9
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListDatetimeRangeFilterComponent, never>;
|
|
10
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListDatetimeRangeFilterComponent, "data-model-list-datetime-range-filter", never, { "list": "list"; "filter": "filter"; "classes": "classes"; }, {}, never, never, true, never>;
|
|
10
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListDatetimeRangeFilterComponent, "data-model-list-datetime-range-filter", never, { "list": { "alias": "list"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "classes": { "alias": "classes"; "required": false; }; }, {}, never, never, true, never>;
|
|
11
11
|
}
|
|
@@ -16,5 +16,5 @@ export declare class ModelListFlagsFilterComponent<T extends DataModel> implemen
|
|
|
16
16
|
unset(value: any, desc: string): void;
|
|
17
17
|
disable(): void;
|
|
18
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListFlagsFilterComponent<any>, never>;
|
|
19
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListFlagsFilterComponent<any>, "data-model-list-flags-filter", never, { "list": "list"; "filter": "filter"; "classes": "classes"; }, {}, never, never, true, never>;
|
|
19
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListFlagsFilterComponent<any>, "data-model-list-flags-filter", never, { "list": { "alias": "list"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "classes": { "alias": "classes"; "required": false; }; }, {}, never, never, true, never>;
|
|
20
20
|
}
|
|
@@ -21,5 +21,5 @@ export declare class ModelListGeodistanceFilterComponent implements OnInit, OnDe
|
|
|
21
21
|
private _search;
|
|
22
22
|
scrollAction($event: any): void;
|
|
23
23
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListGeodistanceFilterComponent, never>;
|
|
24
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListGeodistanceFilterComponent, "data-model-list-geodistance-filter", never, { "list": "list"; "filter": "filter"; "classes": "classes"; }, {}, never, never, true, never>;
|
|
24
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListGeodistanceFilterComponent, "data-model-list-geodistance-filter", never, { "list": { "alias": "list"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "classes": { "alias": "classes"; "required": false; }; }, {}, never, never, true, never>;
|
|
25
25
|
}
|
|
@@ -13,5 +13,5 @@ export declare class ModelListNumberFilterComponent implements OnInit {
|
|
|
13
13
|
disable(): void;
|
|
14
14
|
selectOp(eq: string): void;
|
|
15
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListNumberFilterComponent, never>;
|
|
16
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListNumberFilterComponent, "data-model-list-number-filter", never, { "list": "list"; "filter": "filter"; "classes": "classes"; }, {}, never, never, true, never>;
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListNumberFilterComponent, "data-model-list-number-filter", never, { "list": { "alias": "list"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "classes": { "alias": "classes"; "required": false; }; }, {}, never, never, true, never>;
|
|
17
17
|
}
|
|
@@ -13,5 +13,5 @@ export declare class ModelListSelectFilterComponent<T extends DataModel> impleme
|
|
|
13
13
|
ngOnInit(): void;
|
|
14
14
|
disable(): void;
|
|
15
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListSelectFilterComponent<any>, never>;
|
|
16
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListSelectFilterComponent<any>, "data-model-list-select-filter", never, { "list": "list"; "filter": "filter"; "classes": "classes"; }, {}, never, never, true, never>;
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListSelectFilterComponent<any>, "data-model-list-select-filter", never, { "list": { "alias": "list"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "classes": { "alias": "classes"; "required": false; }; }, {}, never, never, true, never>;
|
|
17
17
|
}
|
|
@@ -14,5 +14,5 @@ export declare class ModelListSelectMultiFilterComponent<T extends DataModel> im
|
|
|
14
14
|
unset(value: any, desc: string): void;
|
|
15
15
|
disable(): void;
|
|
16
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListSelectMultiFilterComponent<any>, never>;
|
|
17
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListSelectMultiFilterComponent<any>, "data-model-list-select-multi-filter", never, { "list": "list"; "filter": "filter"; "classes": "classes"; }, {}, never, never, true, never>;
|
|
17
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListSelectMultiFilterComponent<any>, "data-model-list-select-multi-filter", never, { "list": { "alias": "list"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "classes": { "alias": "classes"; "required": false; }; }, {}, never, never, true, never>;
|
|
18
18
|
}
|
|
@@ -12,5 +12,5 @@ export declare class ModelListTextFilterComponent implements OnInit {
|
|
|
12
12
|
ngOnInit(): void;
|
|
13
13
|
disable(): void;
|
|
14
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListTextFilterComponent, never>;
|
|
15
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListTextFilterComponent, "data-model-list-text-filter", never, { "list": "list"; "filter": "filter"; "classes": "classes"; }, {}, never, never, true, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListTextFilterComponent, "data-model-list-text-filter", never, { "list": { "alias": "list"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "classes": { "alias": "classes"; "required": false; }; }, {}, never, never, true, never>;
|
|
16
16
|
}
|
|
@@ -50,6 +50,6 @@ export declare class ModelListTreeFilterComponent<T extends DataModel> implement
|
|
|
50
50
|
ngOnInit(): Promise<void>;
|
|
51
51
|
disable(): void;
|
|
52
52
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListTreeFilterComponent<any>, never>;
|
|
53
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListTreeFilterComponent<any>, "data-model-list-tree-filter", never, { "list": "list"; "filter": "filter"; "classes": "classes"; }, {}, never, never, true, never>;
|
|
53
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListTreeFilterComponent<any>, "data-model-list-tree-filter", never, { "list": { "alias": "list"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "classes": { "alias": "classes"; "required": false; }; }, {}, never, never, true, never>;
|
|
54
54
|
}
|
|
55
55
|
export {};
|
package/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.d.ts
CHANGED
|
@@ -5,5 +5,5 @@ export declare class ModelListFiltersComponent {
|
|
|
5
5
|
containerClasses: string[] | string;
|
|
6
6
|
itemClasses: string[] | string;
|
|
7
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListFiltersComponent, never>;
|
|
8
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListFiltersComponent, "data-model-list-filters", never, { "list": "list"; "containerClasses": "containerClasses"; "itemClasses": "itemClasses"; }, {}, never, never, true, never>;
|
|
8
|
+
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>;
|
|
9
9
|
}
|
|
@@ -9,5 +9,5 @@ export declare class ModelListFiltersSelectComponent {
|
|
|
9
9
|
constructor();
|
|
10
10
|
toggle(f: ModelListFilter): void;
|
|
11
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListFiltersSelectComponent, never>;
|
|
12
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListFiltersSelectComponent, "data-model-list-filters-select", never, { "list": "list"; "containerClasses": "containerClasses"; "itemActiveClasses": "itemActiveClasses"; "itemInactiveClasses": "itemInactiveClasses"; }, {}, never, never, true, never>;
|
|
12
|
+
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; }; }, {}, never, never, true, never>;
|
|
13
13
|
}
|
package/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.d.ts
CHANGED
|
@@ -19,5 +19,5 @@ export declare class ModelListPaginatorComponent<T extends DataModel> implements
|
|
|
19
19
|
ngOnDestroy(): void;
|
|
20
20
|
ngOnChanges(): void;
|
|
21
21
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListPaginatorComponent<any>, never>;
|
|
22
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListPaginatorComponent<any>, "data-model-list-paginator", never, { "list": "list"; "maxPages": "maxPages"; "hide": "hide"; }, {}, never, never, true, never>;
|
|
22
|
+
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>;
|
|
23
23
|
}
|
|
@@ -18,5 +18,5 @@ export declare class ModelListSorterComponent {
|
|
|
18
18
|
getOrder(): number;
|
|
19
19
|
cancel(): void;
|
|
20
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModelListSorterComponent, never>;
|
|
21
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListSorterComponent, "data-model-list-sorter", never, { "list": "list"; "field": "field"; }, {}, never, ["*"], true, never>;
|
|
21
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ModelListSorterComponent, "data-model-list-sorter", never, { "list": { "alias": "list"; "required": false; }; "field": { "alias": "field"; "required": false; }; }, {}, never, ["*"], true, never>;
|
|
22
22
|
}
|
|
@@ -38,5 +38,5 @@ export declare class BreadcrumbComponent implements OnChanges, OnInit, OnDestroy
|
|
|
38
38
|
getTitle(rdata: Partial<BaseRouteParams>, data: BaseRouteParams, u?: UrlSegment): string;
|
|
39
39
|
getIcon(rdata: Partial<BaseRouteParams>, data: BaseRouteParams): string;
|
|
40
40
|
static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbComponent, never>;
|
|
41
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbComponent, "data-breadcrumb", never, { "data": "data"; "icons": "icons"; }, {}, never, never, true, never>;
|
|
41
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbComponent, "data-breadcrumb", never, { "data": { "alias": "data"; "required": false; }; "icons": { "alias": "icons"; "required": false; }; }, {}, never, never, true, never>;
|
|
42
42
|
}
|
|
@@ -18,5 +18,5 @@ export declare class NgFileDropDirective implements OnInit, OnDestroy {
|
|
|
18
18
|
onDragOver(e: Event): void;
|
|
19
19
|
onDragLeave(e: Event): void;
|
|
20
20
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgFileDropDirective, never>;
|
|
21
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<NgFileDropDirective, "[dataFileDrop]", never, { "options": "options"; "uploadInput": "uploadInput"; }, { "uploadOutput": "uploadOutput"; }, never, never, false, never>;
|
|
21
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgFileDropDirective, "[dataFileDrop]", never, { "options": { "alias": "options"; "required": false; }; "uploadInput": { "alias": "uploadInput"; "required": false; }; }, { "uploadOutput": "uploadOutput"; }, never, never, false, never>;
|
|
22
22
|
}
|
|
@@ -15,5 +15,5 @@ export declare class NgFileSelectDirective implements OnInit, OnDestroy {
|
|
|
15
15
|
ngOnDestroy(): void;
|
|
16
16
|
fileListener: () => void;
|
|
17
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgFileSelectDirective, never>;
|
|
18
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<NgFileSelectDirective, "[dataFileSelect]", never, { "options": "options"; "uploadInput": "uploadInput"; }, { "uploadOutput": "uploadOutput"; }, never, never, false, never>;
|
|
18
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<NgFileSelectDirective, "[dataFileSelect]", never, { "options": { "alias": "options"; "required": false; }; "uploadInput": { "alias": "uploadInput"; "required": false; }; }, { "uploadOutput": "uploadOutput"; }, never, never, false, never>;
|
|
19
19
|
}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solidev/data",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^
|
|
6
|
-
"@angular/core": "^
|
|
7
|
-
"@ng-bootstrap/ng-bootstrap": "^
|
|
5
|
+
"@angular/common": "^16.1",
|
|
6
|
+
"@angular/core": "^16.1",
|
|
7
|
+
"@ng-bootstrap/ng-bootstrap": "^15",
|
|
8
8
|
"jwt-decode": "^3",
|
|
9
9
|
"ngx-editor": "^15"
|
|
10
10
|
},
|
|
@@ -12,11 +12,7 @@
|
|
|
12
12
|
"tslib": "^2.5"
|
|
13
13
|
},
|
|
14
14
|
"private": false,
|
|
15
|
-
"module": "
|
|
16
|
-
"es2020": "fesm2020/solidev-data.mjs",
|
|
17
|
-
"esm2020": "esm2020/solidev-data.mjs",
|
|
18
|
-
"fesm2020": "fesm2020/solidev-data.mjs",
|
|
19
|
-
"fesm2015": "fesm2015/solidev-data.mjs",
|
|
15
|
+
"module": "fesm2022/solidev-data.mjs",
|
|
20
16
|
"typings": "index.d.ts",
|
|
21
17
|
"exports": {
|
|
22
18
|
"./package.json": {
|
|
@@ -24,11 +20,9 @@
|
|
|
24
20
|
},
|
|
25
21
|
".": {
|
|
26
22
|
"types": "./index.d.ts",
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"node": "./fesm2015/solidev-data.mjs",
|
|
31
|
-
"default": "./fesm2020/solidev-data.mjs"
|
|
23
|
+
"esm2022": "./esm2022/solidev-data.mjs",
|
|
24
|
+
"esm": "./esm2022/solidev-data.mjs",
|
|
25
|
+
"default": "./fesm2022/solidev-data.mjs"
|
|
32
26
|
}
|
|
33
27
|
},
|
|
34
28
|
"sideEffects": false
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable, InjectionToken } from '@angular/core';
|
|
2
|
-
import { HttpErrorResponse, } from '@angular/common/http';
|
|
3
|
-
import { catchError, filter, switchMap, take, tap } from 'rxjs/operators';
|
|
4
|
-
import { BehaviorSubject, throwError } from 'rxjs';
|
|
5
|
-
import { DATA_API_URL } from '../data/data-parameters';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "./auth.service";
|
|
8
|
-
export const DATA_AUTH_SERVICE = new InjectionToken('data.auth.service');
|
|
9
|
-
export class AuthInterceptor {
|
|
10
|
-
constructor(_auth, _apiUrl) {
|
|
11
|
-
this._auth = _auth;
|
|
12
|
-
this._apiUrl = _apiUrl;
|
|
13
|
-
this._isRefreshing = false;
|
|
14
|
-
this._refreshTokenSubject = new BehaviorSubject(null);
|
|
15
|
-
}
|
|
16
|
-
intercept(req, next) {
|
|
17
|
-
if (this._auth.isAnonymous) {
|
|
18
|
-
return next.handle(req);
|
|
19
|
-
}
|
|
20
|
-
if (!req.url.startsWith(this._apiUrl)) {
|
|
21
|
-
return next.handle(req);
|
|
22
|
-
}
|
|
23
|
-
if (req.url.startsWith(this._auth.refreshUrl) ||
|
|
24
|
-
req.url.startsWith(this._auth.loginUrl)) {
|
|
25
|
-
return next.handle(req);
|
|
26
|
-
}
|
|
27
|
-
if (!this._auth.isAnonymous) {
|
|
28
|
-
req = this._addToken(req, this._auth.accessToken);
|
|
29
|
-
}
|
|
30
|
-
return next.handle(req).pipe(catchError((error) => {
|
|
31
|
-
console.log('Catched http error', error);
|
|
32
|
-
if (error instanceof HttpErrorResponse && error.status === 401) {
|
|
33
|
-
console.log('Passing to handle 401');
|
|
34
|
-
return this._handle401Error(req, next);
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
console.log('throwing error');
|
|
38
|
-
return throwError(error);
|
|
39
|
-
}
|
|
40
|
-
}));
|
|
41
|
-
}
|
|
42
|
-
_handle401Error(request, next) {
|
|
43
|
-
if (!this._isRefreshing) {
|
|
44
|
-
this._isRefreshing = true;
|
|
45
|
-
this._refreshTokenSubject.next(null);
|
|
46
|
-
console.log('refreshing token');
|
|
47
|
-
return this._auth.refresh().pipe(tap((token) => console.log('Refreshed token result', token)), switchMap((token) => {
|
|
48
|
-
if (token === null) {
|
|
49
|
-
this._isRefreshing = false;
|
|
50
|
-
return throwError(() => new HttpErrorResponse({
|
|
51
|
-
error: 'Forbidden, please log in',
|
|
52
|
-
status: 403,
|
|
53
|
-
statusText: 'Warning',
|
|
54
|
-
url: request.url,
|
|
55
|
-
}));
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
this._isRefreshing = false;
|
|
59
|
-
this._refreshTokenSubject.next(token);
|
|
60
|
-
return next.handle(this._addToken(request, token.access));
|
|
61
|
-
}
|
|
62
|
-
}));
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
console.log('piping to refresh token subject');
|
|
66
|
-
return this._refreshTokenSubject.pipe(filter((token) => token != null), take(1), switchMap((token) => next.handle(this._addToken(request, token.access))));
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
_addToken(request, token) {
|
|
70
|
-
return request.clone({
|
|
71
|
-
setHeaders: {
|
|
72
|
-
authorization: `Bearer ${token}`,
|
|
73
|
-
},
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
AuthInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AuthInterceptor, deps: [{ token: DATA_AUTH_SERVICE }, { token: DATA_API_URL }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
78
|
-
AuthInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AuthInterceptor, providedIn: 'root' });
|
|
79
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: AuthInterceptor, decorators: [{
|
|
80
|
-
type: Injectable,
|
|
81
|
-
args: [{
|
|
82
|
-
providedIn: 'root',
|
|
83
|
-
}]
|
|
84
|
-
}], ctorParameters: function () { return [{ type: i1.AuthServiceBase, decorators: [{
|
|
85
|
-
type: Inject,
|
|
86
|
-
args: [DATA_AUTH_SERVICE]
|
|
87
|
-
}] }, { type: undefined, decorators: [{
|
|
88
|
-
type: Inject,
|
|
89
|
-
args: [DATA_API_URL]
|
|
90
|
-
}] }]; } });
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1pbnRlcmNlcHRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL2F1dGgvYXV0aC1pbnRlcmNlcHRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsaUJBQWlCLEdBSWxCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUV2RCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FFakQsbUJBQW1CLENBQUMsQ0FBQztBQUt2QixNQUFNLE9BQU8sZUFBZTtJQUsxQixZQUNxQyxLQUFxQyxFQUMxQyxPQUFlO1FBRFYsVUFBSyxHQUFMLEtBQUssQ0FBZ0M7UUFDMUMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQU52QyxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0Qix5QkFBb0IsR0FDMUIsSUFBSSxlQUFlLENBQWlDLElBQUksQ0FBQyxDQUFDO0lBS3pELENBQUM7SUFFSixTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUNoRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxD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QUFLLElBQUksSUFBSSxDQUFDLEVBQ2hDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNsQixJQUFJLENBQUMsTUFBTSxDQUNULElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFHLEtBQWlDLENBQUMsTUFBTSxDQUFDLENBQ25FLENBQ0YsQ0FDRixDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRU8sU0FBUyxDQUFDLE9BQXlCLEVBQUUsS0FBYTtRQUN4RCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDbkIsVUFBVSxFQUFFO2dCQUNWLGFBQWEsRUFBRSxVQUFVLEtBQUssRUFBRTthQUNqQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OzRHQXRGVSxlQUFlLGtCQU1oQixpQkFBaUIsYUFDakIsWUFBWTtnSEFQWCxlQUFlLGNBRmQsTUFBTTsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBT0ksTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBIdHRwRXJyb3JSZXNwb25zZSxcbiAgSHR0cEhhbmRsZXIsXG4gIEh0dHBJbnRlcmNlcHRvcixcbiAgSHR0cFJlcXVlc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlQmFzZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbHRlciwgc3dpdGNoTWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElKd3RSZWZyZXNoUmVzcG9uc2VKc29uIH0gZnJvbSAnLi9qd3QnO1xuaW1wb3J0IHsgREFUQV9BUElfVVJMIH0gZnJvbSAnLi4vZGF0YS9kYXRhLXBhcmFtZXRlcnMnO1xuXG5leHBvcnQgY29uc3QgREFUQV9BVVRIX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48XG4gIEF1dGhTZXJ2aWNlQmFzZTxhbnksIGFueSwgYW55PlxuPignZGF0YS5hdXRoLnNlcnZpY2UnKTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gIHByaXZhdGUgX2lzUmVmcmVzaGluZyA9IGZhbHNlO1xuICBwcml2YXRlIF9yZWZyZXNoVG9rZW5TdWJqZWN0ID1cbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PElKd3RSZWZyZXNoUmVzcG9uc2VKc29uIHwgbnVsbD4obnVsbCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChEQVRBX0FVVEhfU0VSVklDRSkgcHJpdmF0ZSBfYXV0aDogQXV0aFNlcnZpY2VCYXNlPGFueSwgYW55LCBhbnk+LFxuICAgIEBJbmplY3QoREFUQV9BUElfVVJMKSBwcml2YXRlIF9hcGlVcmw6IHN0cmluZ1xuICApIHt9XG5cbiAgaW50ZXJjZXB0KHJlcTogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpIHtcbiAgICBpZiAodGhpcy5fYXV0aC5pc0Fub255bW91cykge1xuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XG4gICAgfVxuICAgIGlmICghcmVxLnVybC5zdGFydHNXaXRoKHRoaXMuX2FwaVVybCkpIHtcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICByZXEudXJsLnN0YXJ0c1dpdGgodGhpcy5fYXV0aC5yZWZyZXNoVXJsKSB8fFxuICAgICAgcmVxLnVybC5zdGFydHNXaXRoKHRoaXMuX2F1dGgubG9naW5VcmwpXG4gICAgKSB7XG4gICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9hdXRoLmlzQW5vbnltb3VzKSB7XG4gICAgICByZXEgPSB0aGlzLl9hZGRUb2tlbihyZXEsIHRoaXMuX2F1dGguYWNjZXNzVG9rZW4gYXMgc3RyaW5nKTtcbiAgICB9XG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdDYXRjaGVkIGh0dHAgZXJyb3InLCBlcnJvcik7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlICYmIGVycm9yLnN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ1Bhc3NpbmcgdG8gaGFuZGxlIDQwMScpO1xuICAgICAgICAgIHJldHVybiB0aGlzLl9oYW5kbGU0MDFFcnJvcihyZXEsIG5leHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCd0aHJvd2luZyBlcnJvcicpO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlNDAxRXJyb3IocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpIHtcbiAgICBpZiAoIXRoaXMuX2lzUmVmcmVzaGluZykge1xuICAgICAgdGhpcy5faXNSZWZyZXNoaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuX3JlZnJlc2hUb2tlblN1YmplY3QubmV4dChudWxsKTtcbiAgICAgIGNvbnNvbGUubG9nKCdyZWZyZXNoaW5nIHRva2VuJyk7XG4gICAgICByZXR1cm4gdGhpcy5fYXV0aC5yZWZyZXNoKCkucGlwZShcbiAgICAgICAgdGFwKCh0b2tlbikgPT4gY29uc29sZS5sb2coJ1JlZnJlc2hlZCB0b2tlbiByZXN1bHQnLCB0b2tlbikpLFxuICAgICAgICBzd2l0Y2hNYXAoKHRva2VuKSA9PiB7XG4gICAgICAgICAgaWYgKHRva2VuID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9pc1JlZnJlc2hpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFxuICAgICAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgICAgIG5ldyBIdHRwRXJyb3JSZXNwb25zZSh7XG4gICAgICAgICAgICAgICAgICBlcnJvcjogJ0ZvcmJpZGRlbiwgcGxlYXNlIGxvZyBpbicsXG4gICAgICAgICAgICAgICAgICBzdGF0dXM6IDQwMyxcbiAgICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ6ICdXYXJuaW5nJyxcbiAgICAgICAgICAgICAgICAgIHVybDogcmVxdWVzdC51cmwsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2lzUmVmcmVzaGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fcmVmcmVzaFRva2VuU3ViamVjdC5uZXh0KHRva2VuKTtcbiAgICAgICAgICAgIHJldHVybiBuZXh0LmhhbmRsZSh0aGlzLl9hZGRUb2tlbihyZXF1ZXN0LCB0b2tlbi5hY2Nlc3MpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZygncGlwaW5nIHRvIHJlZnJlc2ggdG9rZW4gc3ViamVjdCcpO1xuICAgICAgcmV0dXJuIHRoaXMuX3JlZnJlc2hUb2tlblN1YmplY3QucGlwZShcbiAgICAgICAgZmlsdGVyKCh0b2tlbikgPT4gdG9rZW4gIT0gbnVsbCksXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHN3aXRjaE1hcCgodG9rZW4pID0+XG4gICAgICAgICAgbmV4dC5oYW5kbGUoXG4gICAgICAgICAgICB0aGlzLl9hZGRUb2tlbihyZXF1ZXN0LCAodG9rZW4gYXMgSUp3dFJlZnJlc2hSZXNwb25zZUpzb24pLmFjY2VzcylcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfYWRkVG9rZW4ocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PiwgdG9rZW46IHN0cmluZykge1xuICAgIHJldHVybiByZXF1ZXN0LmNsb25lKHtcbiAgICAgIHNldEhlYWRlcnM6IHtcbiAgICAgICAgYXV0aG9yaXphdGlvbjogYEJlYXJlciAke3Rva2VufWAsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|