@solidev/data 0.0.9 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/auth/auth-interceptor.service.mjs +92 -0
- package/{esm2020 → esm2022}/lib/auth/auth.service.mjs +1 -1
- package/esm2022/lib/data/data-backend.mjs +135 -0
- package/esm2022/lib/data/data-model.mjs +292 -0
- package/esm2022/lib/dispedit/choice.pipe.mjs +81 -0
- package/esm2022/lib/dispedit/dispedit/dispedit.component.mjs +481 -0
- package/esm2022/lib/dispedit/factor.pipe.mjs +83 -0
- package/esm2022/lib/dispedit/factorc.pipe.mjs +101 -0
- package/esm2022/lib/dispedit/fkselect/fkselect.component.mjs +143 -0
- package/esm2022/lib/dispedit/flags/flags.component.mjs +141 -0
- package/esm2022/lib/dispedit/m2mselect/m2mselect.component.mjs +319 -0
- package/esm2022/lib/dispedit/richedit/richedit.component.mjs +127 -0
- package/esm2022/lib/dispedit/sdelete/sdelete.component.mjs +94 -0
- package/esm2022/lib/messages/message-zone/message-zone.component.mjs +58 -0
- package/esm2022/lib/messages/message.service.mjs +152 -0
- package/esm2022/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.mjs +66 -0
- package/esm2022/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.mjs +65 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.mjs +113 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.mjs +30 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.mjs +41 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.mjs +41 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.mjs +22 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.mjs +50 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.mjs +64 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.mjs +47 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.mjs +57 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.mjs +52 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.mjs +41 -0
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.mjs +175 -0
- package/esm2022/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs +51 -0
- package/esm2022/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.mjs +31 -0
- package/esm2022/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.mjs +71 -0
- package/esm2022/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs +50 -0
- package/esm2022/lib/modellist/model-list.service.mjs +158 -0
- package/esm2022/lib/routing/breadcrumb/breadcrumb.component.mjs +143 -0
- package/esm2022/lib/updates/update/update.component.mjs +18 -0
- package/esm2022/lib/updates/update.service.mjs +59 -0
- package/esm2022/lib/uploader/ng-file-drop.directive.mjs +82 -0
- package/esm2022/lib/uploader/ng-file-select.directive.mjs +52 -0
- package/esm2022/lib/uploader/ngx-uploader.module.mjs +18 -0
- package/esm2022/lib/utils/tab-memory.service.mjs +81 -0
- package/{fesm2020 → fesm2022}/solidev-data.mjs +149 -149
- package/{fesm2020 → fesm2022}/solidev-data.mjs.map +1 -1
- 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 +1 -1
- 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 +7 -13
- package/esm2020/lib/auth/auth-interceptor.service.mjs +0 -91
- package/esm2020/lib/data/data-backend.mjs +0 -134
- package/esm2020/lib/data/data-model.mjs +0 -291
- package/esm2020/lib/dispedit/choice.pipe.mjs +0 -79
- package/esm2020/lib/dispedit/dispedit/dispedit.component.mjs +0 -480
- package/esm2020/lib/dispedit/factor.pipe.mjs +0 -81
- package/esm2020/lib/dispedit/factorc.pipe.mjs +0 -99
- package/esm2020/lib/dispedit/fkselect/fkselect.component.mjs +0 -142
- package/esm2020/lib/dispedit/flags/flags.component.mjs +0 -140
- package/esm2020/lib/dispedit/m2mselect/m2mselect.component.mjs +0 -318
- package/esm2020/lib/dispedit/richedit/richedit.component.mjs +0 -126
- package/esm2020/lib/dispedit/sdelete/sdelete.component.mjs +0 -93
- package/esm2020/lib/messages/message-zone/message-zone.component.mjs +0 -57
- package/esm2020/lib/messages/message.service.mjs +0 -151
- package/esm2020/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.mjs +0 -65
- package/esm2020/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.mjs +0 -64
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.mjs +0 -112
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.mjs +0 -29
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.mjs +0 -40
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.mjs +0 -40
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.mjs +0 -21
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.mjs +0 -49
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.mjs +0 -63
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.mjs +0 -46
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.mjs +0 -56
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.mjs +0 -51
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.mjs +0 -40
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.mjs +0 -174
- package/esm2020/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs +0 -50
- package/esm2020/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.mjs +0 -30
- package/esm2020/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.mjs +0 -70
- package/esm2020/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs +0 -49
- package/esm2020/lib/modellist/model-list.service.mjs +0 -157
- package/esm2020/lib/routing/breadcrumb/breadcrumb.component.mjs +0 -142
- package/esm2020/lib/updates/update/update.component.mjs +0 -17
- package/esm2020/lib/updates/update.service.mjs +0 -58
- package/esm2020/lib/uploader/ng-file-drop.directive.mjs +0 -81
- package/esm2020/lib/uploader/ng-file-select.directive.mjs +0 -51
- package/esm2020/lib/uploader/ngx-uploader.module.mjs +0 -17
- package/esm2020/lib/utils/tab-memory.service.mjs +0 -80
- package/fesm2015/solidev-data.mjs +0 -6228
- package/fesm2015/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
|
@@ -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
|
}
|
|
@@ -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,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solidev/data",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^
|
|
6
|
-
"@angular/core": "^
|
|
5
|
+
"@angular/common": "^16",
|
|
6
|
+
"@angular/core": "^16",
|
|
7
7
|
"@ng-bootstrap/ng-bootstrap": "^14",
|
|
8
8
|
"jwt-decode": "^3",
|
|
9
9
|
"ngx-editor": "^15"
|
|
@@ -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=
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
import { makeStateKey } from '@angular/platform-browser';
|
|
2
|
-
import { of } from 'rxjs';
|
|
3
|
-
import { tap } from 'rxjs/operators';
|
|
4
|
-
import { Inject, Injectable, Optional, PLATFORM_ID } from '@angular/core';
|
|
5
|
-
import { isPlatformServer } from '@angular/common';
|
|
6
|
-
import { DATA_API_URL, DATA_MAX_TRANSFERSTATE_TIME } from './data-parameters';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/common/http";
|
|
9
|
-
import * as i2 from "@angular/platform-browser";
|
|
10
|
-
/**
|
|
11
|
-
* DataBackend provides CRUD operations to a REST api.
|
|
12
|
-
* TransferState can be used if DATA_MAX_TRANSFERSTATE_TIME is set and > 0
|
|
13
|
-
*/
|
|
14
|
-
export class DataBackend {
|
|
15
|
-
constructor(_http, _transferState, _platform, _apiUrl, _maxTransferstateTime = 0) {
|
|
16
|
-
this._http = _http;
|
|
17
|
-
this._transferState = _transferState;
|
|
18
|
-
this._platform = _platform;
|
|
19
|
-
this._apiUrl = _apiUrl;
|
|
20
|
-
this._maxTransferstateTime = _maxTransferstateTime;
|
|
21
|
-
this._created = new Date();
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Return api url for this backend.
|
|
25
|
-
*/
|
|
26
|
-
get apiUrl() {
|
|
27
|
-
return this._apiUrl;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Launch an action on collection.
|
|
31
|
-
* If method is GET and collection.useTranserState & transferState are enabled,
|
|
32
|
-
* result is stored / retrieved from transferState.
|
|
33
|
-
*
|
|
34
|
-
* @param collection Collection reference
|
|
35
|
-
* @param method HTTP method
|
|
36
|
-
* @param url full URL for action
|
|
37
|
-
* @param body JSON body
|
|
38
|
-
* @param params query parameters
|
|
39
|
-
* @param headers query headers
|
|
40
|
-
* @param responseType response type
|
|
41
|
-
*
|
|
42
|
-
* @return an observable of response body
|
|
43
|
-
*/
|
|
44
|
-
action(collection, method, url, { body = undefined, params = {}, headers = {} } = {}) {
|
|
45
|
-
if (method === 'GET') {
|
|
46
|
-
return this._cachedGet(collection, url, { headers, params });
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
// @ts-ignore
|
|
50
|
-
return this._http.request(method, url, {
|
|
51
|
-
body,
|
|
52
|
-
params,
|
|
53
|
-
headers,
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Launch an action on collection, receiving a blob.
|
|
59
|
-
*
|
|
60
|
-
* @param collection Collection reference
|
|
61
|
-
* @param method HTTP method
|
|
62
|
-
* @param url full URL for action
|
|
63
|
-
* @param body JSON body
|
|
64
|
-
* @param params query parameters
|
|
65
|
-
* @param headers query headers
|
|
66
|
-
* @param responseType response type
|
|
67
|
-
*
|
|
68
|
-
* @return an observable of response body
|
|
69
|
-
*/
|
|
70
|
-
blob(collection, method, url, { body = undefined, params = {}, headers = {} } = {}) {
|
|
71
|
-
// @ts-ignore
|
|
72
|
-
return this._http.request(method, url, {
|
|
73
|
-
body,
|
|
74
|
-
params,
|
|
75
|
-
headers,
|
|
76
|
-
responseType: 'blob',
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
put(collection, url, { body = undefined, params = {}, headers = {} } = {}) {
|
|
80
|
-
return this._http.put(url, body, { params, headers });
|
|
81
|
-
}
|
|
82
|
-
post(collection, url, { body = undefined, params = {}, headers = {} } = {}) {
|
|
83
|
-
return this._http.post(url, body, { params, headers });
|
|
84
|
-
}
|
|
85
|
-
patch(collection, url, { body = undefined, params = {}, headers = {} } = {}) {
|
|
86
|
-
return this._http.patch(url, body, { params, headers });
|
|
87
|
-
}
|
|
88
|
-
delete(collection, url, { params = {}, headers = {} } = {}) {
|
|
89
|
-
return this._http.delete(url, { params, headers });
|
|
90
|
-
}
|
|
91
|
-
_cachedGet(collection, url, { params = {}, headers = {} } = {}) {
|
|
92
|
-
const key = makeStateKey(url + '|' + JSON.stringify(params) + '|' + JSON.stringify(headers));
|
|
93
|
-
if (collection.useTransferState &&
|
|
94
|
-
this._maxTransferstateTime > 0 &&
|
|
95
|
-
this._transferState.hasKey(key) &&
|
|
96
|
-
new Date().getTime() - this._created.getTime() <
|
|
97
|
-
this._maxTransferstateTime) {
|
|
98
|
-
return of(this._transferState.get(key, null));
|
|
99
|
-
}
|
|
100
|
-
return this._http.get(url, { headers, params }).pipe(tap((result) => {
|
|
101
|
-
if (collection.useTransferState &&
|
|
102
|
-
isPlatformServer(this._platform) &&
|
|
103
|
-
this._maxTransferstateTime > 0) {
|
|
104
|
-
this._transferState.set(key, result);
|
|
105
|
-
}
|
|
106
|
-
}));
|
|
107
|
-
}
|
|
108
|
-
get(collection, url, { params = {}, headers = {} } = {}) {
|
|
109
|
-
return this._cachedGet(collection, url, { headers, params });
|
|
110
|
-
}
|
|
111
|
-
list(collection, url, { params = {}, headers = {} } = {}) {
|
|
112
|
-
return this._cachedGet(collection, url, { headers, params });
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
DataBackend.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataBackend, deps: [{ token: i1.HttpClient }, { token: i2.TransferState }, { token: PLATFORM_ID }, { token: DATA_API_URL }, { token: DATA_MAX_TRANSFERSTATE_TIME, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
116
|
-
DataBackend.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataBackend, providedIn: 'root' });
|
|
117
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataBackend, decorators: [{
|
|
118
|
-
type: Injectable,
|
|
119
|
-
args: [{
|
|
120
|
-
providedIn: 'root',
|
|
121
|
-
}]
|
|
122
|
-
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.TransferState }, { type: undefined, decorators: [{
|
|
123
|
-
type: Inject,
|
|
124
|
-
args: [PLATFORM_ID]
|
|
125
|
-
}] }, { type: undefined, decorators: [{
|
|
126
|
-
type: Inject,
|
|
127
|
-
args: [DATA_API_URL]
|
|
128
|
-
}] }, { type: undefined, decorators: [{
|
|
129
|
-
type: Optional
|
|
130
|
-
}, {
|
|
131
|
-
type: Inject,
|
|
132
|
-
args: [DATA_MAX_TRANSFERSTATE_TIME]
|
|
133
|
-
}] }]; } });
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1iYWNrZW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL2RhdGEvZGF0YS1iYWNrZW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxZQUFZLEVBQWdCLE1BQU0sMkJBQTJCLENBQUM7QUFDdEUsT0FBTyxFQUFhLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUdqRCxPQUFPLEVBQUMsWUFBWSxFQUFFLDJCQUEyQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFFNUU7OztHQUdHO0FBSUgsTUFBTSxPQUFPLFdBQVc7SUFHdEIsWUFDVSxLQUFpQixFQUNqQixjQUE2QixFQUNSLFNBQWMsRUFDYixPQUFlLEVBR3JDLHdCQUFnQyxDQUFDO1FBTmpDLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDUixjQUFTLEdBQVQsU0FBUyxDQUFLO1FBQ2IsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUdyQywwQkFBcUIsR0FBckIscUJBQXFCLENBQVk7UUFUbkMsYUFBUSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFVM0IsQ0FBQztJQUVKOztPQUVHO0lBQ0gsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7T0FjRztJQUNJLE1BQU0sQ0FDWCxVQUF5QixFQUN6QixNQUFtRCxFQUNuRCxHQUFXLEVBQ1gsRUFBRSxJQUFJLEdBQUcsU0FBUyxFQUFFLE1BQU0s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V0FBVyxjQUZWLE1BQU07MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU9JLE1BQU07MkJBQUMsV0FBVzs7MEJBQ2xCLE1BQU07MkJBQUMsWUFBWTs7MEJBQ25CLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge21ha2VTdGF0ZUtleSwgVHJhbnNmZXJTdGF0ZX0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQge09ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIFBMQVRGT1JNX0lEfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7aXNQbGF0Zm9ybVNlcnZlcn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q29sbGVjdGlvbiwgSUFjdGlvblBhcmFtc30gZnJvbSAnLi9kYXRhLWNvbGxlY3Rpb24nO1xuaW1wb3J0IHtEYXRhTW9kZWx9IGZyb20gJy4vZGF0YS1tb2RlbCc7XG5pbXBvcnQge0RBVEFfQVBJX1VSTCwgREFUQV9NQVhfVFJBTlNGRVJTVEFURV9USU1FfSBmcm9tICcuL2RhdGEtcGFyYW1ldGVycyc7XG5cbi8qKlxuICogRGF0YUJhY2tlbmQgcHJvdmlkZXMgQ1JVRCBvcGVyYXRpb25zIHRvIGEgUkVTVCBhcGkuXG4gKiBUcmFuc2ZlclN0YXRlIGNhbiBiZSB1c2VkIGlmIERBVEFfTUFYX1RSQU5TRkVSU1RBVEVfVElNRSBpcyBzZXQgYW5kID4gMFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgRGF0YUJhY2tlbmQge1xuICBwcml2YXRlIF9jcmVhdGVkID0gbmV3IERhdGUoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgX3RyYW5zZmVyU3RhdGU6IFRyYW5zZmVyU3RhdGUsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBfcGxhdGZvcm06IGFueSxcbiAgICBASW5qZWN0KERBVEFfQVBJX1VSTCkgcHJpdmF0ZSBfYXBpVXJsOiBzdHJpbmcsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KERBVEFfTUFYX1RSQU5TRkVSU1RBVEVfVElNRSlcbiAgICBwcml2YXRlIF9tYXhUcmFuc2ZlcnN0YXRlVGltZTogbnVtYmVyID0gMFxuICApIHt9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhcGkgdXJsIGZvciB0aGlzIGJhY2tlbmQuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGFwaVVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9hcGlVcmw7XG4gIH1cblxuICAvKipcbiAgICogTGF1bmNoIGFuIGFjdGlvbiBvbiBjb2xsZWN0aW9uLlxuICAgKiBJZiBtZXRob2QgaXMgR0VUIGFuZCBjb2xsZWN0aW9uLnVzZVRyYW5zZXJTdGF0ZSAmIHRyYW5zZmVyU3RhdGUgYXJlIGVuYWJsZWQsXG4gICAqIHJlc3VsdCBpcyBzdG9yZWQgLyByZXRyaWV2ZWQgZnJvbSB0cmFuc2ZlclN0YXRlLlxuICAgKlxuICAgKiBAcGFyYW0gY29sbGVjdGlvbiBDb2xsZWN0aW9uIHJlZmVyZW5jZVxuICAgKiBAcGFyYW0gbWV0aG9kIEhUVFAgbWV0aG9kXG4gICAqIEBwYXJhbSB1cmwgZnVsbCBVUkwgZm9yIGFjdGlvblxuICAgKiBAcGFyYW0gYm9keSBKU09OIGJvZHlcbiAgICogQHBhcmFtIHBhcmFtcyBxdWVyeSBwYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSBoZWFkZXJzIHF1ZXJ5IGhlYWRlcnNcbiAgICogQHBhcmFtIHJlc3BvbnNlVHlwZSByZXNwb25zZSB0eXBlXG4gICAqXG4gICAqIEByZXR1cm4gYW4gb2JzZXJ2YWJsZSBvZiByZXNwb25zZSBib2R5XG4gICAqL1xuICBwdWJsaWMgYWN0aW9uPFQgZXh0ZW5kcyBEYXRhTW9kZWwsIFJUPihcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPFQ+LFxuICAgIG1ldGhvZDogJ0dFVCcgfCAnUE9TVCcgfCAnUFVUJyB8ICdQQVRDSCcgfCAnREVMRVRFJyxcbiAgICB1cmw6IHN0cmluZyxcbiAgICB7IGJvZHkgPSB1bmRlZmluZWQsIHBhcmFtcyA9IHt9LCBoZWFkZXJzID0ge30gfTogSUFjdGlvblBhcmFtcyA9IHt9XG4gICk6IE9ic2VydmFibGU8UlQ+IHtcbiAgICBpZiAobWV0aG9kID09PSAnR0VUJykge1xuICAgICAgcmV0dXJuIHRoaXMuX2NhY2hlZEdldChjb2xsZWN0aW9uLCB1cmwsIHsgaGVhZGVycywgcGFyYW1zIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZXR1cm4gdGhpcy5faHR0cC5yZXF1ZXN0PFJUPihtZXRob2QsIHVybCwge1xuICAgICAgICBib2R5LFxuICAgICAgICBwYXJhbXMsXG4gICAgICAgIGhlYWRlcnMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGF1bmNoIGFuIGFjdGlvbiBvbiBjb2xsZWN0aW9uLCByZWNlaXZpbmcgYSBibG9iLlxuICAgKlxuICAgKiBAcGFyYW0gY29sbGVjdGlvbiBDb2xsZWN0aW9uIHJlZmVyZW5jZVxuICAgKiBAcGFyYW0gbWV0aG9kIEhUVFAgbWV0aG9kXG4gICAqIEBwYXJhbSB1cmwgZnVsbCBVUkwgZm9yIGFjdGlvblxuICAgKiBAcGFyYW0gYm9keSBKU09OIGJvZHlcbiAgICogQHBhcmFtIHBhcmFtcyBxdWVyeSBwYXJhbWV0ZXJzXG4gICAqIEBwYXJhbSBoZWFkZXJzIHF1ZXJ5IGhlYWRlcnNcbiAgICogQHBhcmFtIHJlc3BvbnNlVHlwZSByZXNwb25zZSB0eXBlXG4gICAqXG4gICAqIEByZXR1cm4gYW4gb2JzZXJ2YWJsZSBvZiByZXNwb25zZSBib2R5XG4gICAqL1xuICBwdWJsaWMgYmxvYjxUIGV4dGVuZHMgRGF0YU1vZGVsPihcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPFQ+LFxuICAgIG1ldGhvZDogJ0dFVCcgfCAnUE9TVCcgfCAnUFVUJyB8ICdQQVRDSCcgfCAnREVMRVRFJyxcbiAgICB1cmw6IHN0cmluZyxcbiAgICB7IGJvZHkgPSB1bmRlZmluZWQsIHBhcmFtcyA9IHt9LCBoZWFkZXJzID0ge30gfTogSUFjdGlvblBhcmFtcyA9IHt9XG4gICk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICByZXR1cm4gdGhpcy5faHR0cC5yZXF1ZXN0KG1ldGhvZCwgdXJsLCB7XG4gICAgICBib2R5LFxuICAgICAgcGFyYW1zLFxuICAgICAgaGVhZGVycyxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHB1dDxUIGV4dGVuZHMgRGF0YU1vZGVsPihcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPFQ+LFxuICAgIHVybDogc3RyaW5nLFxuICAgIHsgYm9keSA9IHVuZGVmaW5lZCwgcGFyYW1zID0ge30sIGhlYWRlcnMgPSB7fSB9OiBJQWN0aW9uUGFyYW1zID0ge31cbiAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0PFQ+KHVybCwgYm9keSwgeyBwYXJhbXMsIGhlYWRlcnMgfSk7XG4gIH1cblxuICBwdWJsaWMgcG9zdDxUIGV4dGVuZHMgRGF0YU1vZGVsPihcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPFQ+LFxuICAgIHVybDogc3RyaW5nLFxuICAgIHsgYm9keSA9IHVuZGVmaW5lZCwgcGFyYW1zID0ge30sIGhlYWRlcnMgPSB7fSB9OiBJQWN0aW9uUGFyYW1zID0ge31cbiAgKTogT2JzZXJ2YWJsZTxQYXJ0aWFsPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdDxQYXJ0aWFsPFQ+Pih1cmwsIGJvZHksIHsgcGFyYW1zLCBoZWFkZXJzIH0pO1xuICB9XG5cbiAgcHVibGljIHBhdGNoPFQgZXh0ZW5kcyBEYXRhTW9kZWw+KFxuICAgIGNvbGxlY3Rpb246IENvbGxlY3Rpb248VD4sXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgeyBib2R5ID0gdW5kZWZpbmVkLCBwYXJhbXMgPSB7fSwgaGVhZGVycyA9IHt9IH06IElBY3Rpb25QYXJhbXMgPSB7fVxuICApOiBPYnNlcnZhYmxlPFBhcnRpYWw8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wYXRjaDxQYXJ0aWFsPFQ+Pih1cmwsIGJvZHksIHsgcGFyYW1zLCBoZWFkZXJzIH0pO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZTxUIGV4dGVuZHMgRGF0YU1vZGVsLCBSPihcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPFQ+LFxuICAgIHVybDogc3RyaW5nLFxuICAgIHsgcGFyYW1zID0ge30sIGhlYWRlcnMgPSB7fSB9OiBJQWN0aW9uUGFyYW1zID0ge31cbiAgKTogT2JzZXJ2YWJsZTxSPiB7XG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZGVsZXRlPFI+KHVybCwgeyBwYXJhbXMsIGhlYWRlcnMgfSk7XG4gIH1cblxuICBwdWJsaWMgX2NhY2hlZEdldDxUIGV4dGVuZHMgRGF0YU1vZGVsLCBSVD4oXG4gICAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjxUPixcbiAgICB1cmw6IHN0cmluZyxcbiAgICB7IHBhcmFtcyA9IHt9LCBoZWFkZXJzID0ge30gfTogSUFjdGlvblBhcmFtcyA9IHt9XG4gICk6IE9ic2VydmFibGU8UlQ+IHtcbiAgICBjb25zdCBrZXkgPSBtYWtlU3RhdGVLZXk8UlQ+KFxuICAgICAgdXJsICsgJ3wnICsgSlNPTi5zdHJpbmdpZnkocGFyYW1zKSArICd8JyArIEpTT04uc3RyaW5naWZ5KGhlYWRlcnMpXG4gICAgKTtcbiAgICBpZiAoXG4gICAgICBjb2xsZWN0aW9uLnVzZVRyYW5zZmVyU3RhdGUgJiZcbiAgICAgIHRoaXMuX21heFRyYW5zZmVyc3RhdGVUaW1lID4gMCAmJlxuICAgICAgdGhpcy5fdHJhbnNmZXJTdGF0ZS5oYXNLZXkoa2V5KSAmJlxuICAgICAgbmV3IERhdGUoKS5nZXRUaW1lKCkgLSB0aGlzLl9jcmVhdGVkLmdldFRpbWUoKSA8XG4gICAgICAgIHRoaXMuX21heFRyYW5zZmVyc3RhdGVUaW1lXG4gICAgKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5fdHJhbnNmZXJTdGF0ZS5nZXQ8UlQgfCBudWxsPihrZXksIG51bGwpIGFzIFJUKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PFJUPih1cmwsIHsgaGVhZGVycywgcGFyYW1zIH0pLnBpcGUoXG4gICAgICB0YXAoKHJlc3VsdCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgY29sbGVjdGlvbi51c2VUcmFuc2ZlclN0YXRlICYmXG4gICAgICAgICAgaXNQbGF0Zm9ybVNlcnZlcih0aGlzLl9wbGF0Zm9ybSkgJiZcbiAgICAgICAgICB0aGlzLl9tYXhUcmFuc2ZlcnN0YXRlVGltZSA+IDBcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5fdHJhbnNmZXJTdGF0ZS5zZXQ8UlQ+KGtleSwgcmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldDxUIGV4dGVuZHMgRGF0YU1vZGVsPihcbiAgICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPFQ+LFxuICAgIHVybDogc3RyaW5nLFxuICAgIHsgcGFyYW1zID0ge30sIGhlYWRlcnMgPSB7fSB9OiBJQWN0aW9uUGFyYW1zID0ge31cbiAgKTogT2JzZXJ2YWJsZTxQYXJ0aWFsPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NhY2hlZEdldDxULCBQYXJ0aWFsPFQ+Pihjb2xsZWN0aW9uLCB1cmwsIHsgaGVhZGVycywgcGFyYW1zIH0pO1xuICB9XG5cbiAgcHVibGljIGxpc3Q8VCBleHRlbmRzIERhdGFNb2RlbD4oXG4gICAgY29sbGVjdGlvbjogQ29sbGVjdGlvbjxUPixcbiAgICB1cmw6IHN0cmluZyxcbiAgICB7IHBhcmFtcyA9IHt9LCBoZWFkZXJzID0ge30gfTogSUFjdGlvblBhcmFtcyA9IHt9XG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NhY2hlZEdldDxULCBQYXJ0aWFsPFQ+Pihjb2xsZWN0aW9uLCB1cmwsIHsgaGVhZGVycywgcGFyYW1zIH0pO1xuICB9XG59XG4iXX0=
|