@ecodev/natural 50.4.1 → 52.0.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/classes/abstract-controller.mjs +30 -0
- package/esm2022/lib/classes/abstract-detail.mjs +166 -0
- package/{esm2020 → esm2022}/lib/classes/abstract-editable-list.mjs +4 -4
- package/esm2022/lib/classes/abstract-list.mjs +434 -0
- package/esm2022/lib/classes/abstract-navigable-list.mjs +131 -0
- package/{esm2020 → esm2022}/lib/directives/http-prefix.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/alert/alert.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/modules/alert/alert.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/alert/confirm.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/avatar/avatar.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/modules/avatar/component/avatar.component.mjs +6 -6
- package/{esm2020 → esm2022}/lib/modules/avatar/service/avatar.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/columns-picker/columns-picker.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/columns-picker/columns-picker.module.mjs +19 -19
- package/{esm2020 → esm2022}/lib/modules/common/common-module.mjs +19 -19
- package/{esm2020 → esm2022}/lib/modules/common/directives/linkable-tab.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/common/directives/src-density.directive.mjs +6 -5
- package/{esm2020 → esm2022}/lib/modules/common/pipes/capitalize.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/common/pipes/ellipsis.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/common/pipes/enum.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/common/pipes/swiss-date.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/common/pipes/time-ago.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/common/services/memory-storage.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/common/services/seo.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/detail-header/detail-header.component.mjs +6 -5
- package/{esm2020 → esm2022}/lib/modules/detail-header/detail-header.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/modules/dialog-trigger/dialog-trigger.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/dialog-trigger/dialog-trigger.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/modules/dropdown-components/abstract-association-select-component.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/dropdown-components/natural-dropdown-components.module.mjs +39 -39
- package/esm2022/lib/modules/dropdown-components/type-date/type-date.component.mjs +164 -0
- package/{esm2020 → esm2022}/lib/modules/dropdown-components/type-date-range/type-date-range.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/dropdown-components/type-hierarchic-selector/type-hierarchic-selector.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/dropdown-components/type-natural-select/type-natural-select.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/dropdown-components/type-number/type-number.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/dropdown-components/type-select/type-select.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/dropdown-components/type-text/type-text.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/file/abstract-file.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/file/component/file.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/file/file-drop.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/file/file-select.directive.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/file/file.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/modules/file/file.service.mjs +4 -4
- package/esm2022/lib/modules/fixed-button/fixed-button.component.mjs +29 -0
- package/{esm2020 → esm2022}/lib/modules/fixed-button/fixed-button.module.mjs +5 -5
- package/esm2022/lib/modules/fixed-button-detail/fixed-button-detail.component.mjs +53 -0
- package/{esm2020 → esm2022}/lib/modules/fixed-button-detail/fixed-button-detail.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.mjs +6 -5
- package/{esm2020 → esm2022}/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/hierarchic-selector/hierarchic-selector-dialog/hierarchic-selector-dialog.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/hierarchic-selector/hierarchic-selector.module.mjs +33 -33
- package/{esm2020 → esm2022}/lib/modules/icon/icon.directive.mjs +6 -5
- package/{esm2020 → esm2022}/lib/modules/icon/icon.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/modules/logger/error-handler.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/logger/error.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/modules/matomo/matomo-module.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/modules/matomo/matomo.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/panels/abstract-panel.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/panels/panels.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/panels/panels.module.mjs +5 -5
- package/esm2022/lib/modules/panels/panels.service.mjs +328 -0
- package/esm2022/lib/modules/panels/panels.urlmatcher.mjs +75 -0
- package/esm2022/lib/modules/panels/types.mjs +3 -0
- package/esm2022/lib/modules/relations/relations.component.mjs +211 -0
- package/{esm2020 → esm2022}/lib/modules/relations/relations.module.mjs +25 -25
- package/{esm2020 → esm2022}/lib/modules/search/dropdown-container/dropdown-container.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/search/dropdown-container/dropdown.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/search/facet-selector/facet-selector.component.mjs +4 -4
- package/esm2022/lib/modules/search/group/group.component.mjs +53 -0
- package/{esm2020 → esm2022}/lib/modules/search/input/input.component.mjs +6 -5
- package/{esm2020 → esm2022}/lib/modules/search/search/search.component.mjs +4 -4
- package/esm2022/lib/modules/search/search.module.mjs +90 -0
- package/{esm2020 → esm2022}/lib/modules/select/abstract-select.component.mjs +4 -4
- package/esm2022/lib/modules/select/select/select.component.mjs +279 -0
- package/esm2022/lib/modules/select/select-enum/select-enum.component.mjs +47 -0
- package/{esm2020 → esm2022}/lib/modules/select/select-hierarchic/select-hierarchic.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/select/select.module.mjs +29 -29
- package/{esm2020 → esm2022}/lib/modules/sidenav/sidenav/sidenav.component.mjs +4 -4
- package/esm2022/lib/modules/sidenav/sidenav-container/sidenav-container.component.mjs +87 -0
- package/{esm2020 → esm2022}/lib/modules/sidenav/sidenav-content/sidenav-content.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/sidenav/sidenav-stack.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/sidenav/sidenav.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/modules/sidenav/sidenav.service.mjs +5 -5
- package/{esm2020 → esm2022}/lib/modules/stamp/stamp-module.module.mjs +5 -5
- package/esm2022/lib/modules/stamp/stamp.component.mjs +23 -0
- package/{esm2020 → esm2022}/lib/modules/table-button/table-button.component.mjs +4 -4
- package/{esm2020 → esm2022}/lib/modules/table-button/table-button.module.mjs +5 -5
- package/{esm2020 → esm2022}/lib/services/debounce.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/enum.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/link-mutation.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/persistence.service.mjs +4 -4
- package/{esm2020 → esm2022}/lib/services/swiss-parsing-date-adapter.service.mjs +4 -4
- package/{fesm2020 → fesm2022}/ecodev-natural.mjs +555 -537
- package/fesm2022/ecodev-natural.mjs.map +1 -0
- package/lib/classes/abstract-controller.d.ts +12 -6
- package/lib/classes/abstract-detail.d.ts +5 -6
- package/lib/classes/abstract-list.d.ts +7 -8
- package/lib/classes/abstract-navigable-list.d.ts +3 -3
- package/lib/directives/http-prefix.directive.d.ts +1 -1
- package/lib/modules/avatar/component/avatar.component.d.ts +1 -1
- package/lib/modules/columns-picker/columns-picker.component.d.ts +1 -1
- package/lib/modules/common/directives/linkable-tab.directive.d.ts +1 -1
- package/lib/modules/common/directives/src-density.directive.d.ts +1 -1
- package/lib/modules/detail-header/detail-header.component.d.ts +1 -1
- package/lib/modules/dropdown-components/type-date/type-date.component.d.ts +1 -2
- package/lib/modules/file/abstract-file.d.ts +1 -1
- package/lib/modules/file/component/file.component.d.ts +1 -1
- package/lib/modules/file/file-select.directive.d.ts +1 -1
- package/lib/modules/fixed-button/fixed-button.component.d.ts +1 -1
- package/lib/modules/fixed-button-detail/fixed-button-detail.component.d.ts +2 -3
- package/lib/modules/hierarchic-selector/hierarchic-selector/hierarchic-selector.component.d.ts +1 -1
- package/lib/modules/icon/icon.directive.d.ts +1 -1
- package/lib/modules/panels/panels.service.d.ts +1 -1
- package/lib/modules/panels/types.d.ts +10 -12
- package/lib/modules/relations/relations.component.d.ts +1 -1
- package/lib/modules/search/group/group.component.d.ts +1 -1
- package/lib/modules/search/input/input.component.d.ts +1 -1
- package/lib/modules/search/search/search.component.d.ts +1 -1
- package/lib/modules/select/abstract-select.component.d.ts +1 -1
- package/lib/modules/select/select/select.component.d.ts +1 -1
- package/lib/modules/select/select-enum/select-enum.component.d.ts +1 -1
- package/lib/modules/select/select-hierarchic/select-hierarchic.component.d.ts +1 -1
- package/lib/modules/sidenav/sidenav-container/sidenav-container.component.d.ts +1 -1
- package/lib/modules/sidenav/sidenav.service.d.ts +1 -1
- package/lib/modules/stamp/stamp.component.d.ts +1 -1
- package/lib/modules/table-button/table-button.component.d.ts +1 -1
- package/package.json +17 -25
- package/esm2020/lib/classes/abstract-controller.mjs +0 -30
- package/esm2020/lib/classes/abstract-detail.mjs +0 -158
- package/esm2020/lib/classes/abstract-list.mjs +0 -435
- package/esm2020/lib/classes/abstract-navigable-list.mjs +0 -131
- package/esm2020/lib/modules/dropdown-components/type-date/type-date.component.mjs +0 -166
- package/esm2020/lib/modules/fixed-button/fixed-button.component.mjs +0 -28
- package/esm2020/lib/modules/fixed-button-detail/fixed-button-detail.component.mjs +0 -53
- package/esm2020/lib/modules/panels/panels.service.mjs +0 -325
- package/esm2020/lib/modules/panels/panels.urlmatcher.mjs +0 -81
- package/esm2020/lib/modules/panels/types.mjs +0 -3
- package/esm2020/lib/modules/relations/relations.component.mjs +0 -210
- package/esm2020/lib/modules/search/group/group.component.mjs +0 -51
- package/esm2020/lib/modules/search/search.module.mjs +0 -90
- package/esm2020/lib/modules/select/select/select.component.mjs +0 -278
- package/esm2020/lib/modules/select/select-enum/select-enum.component.mjs +0 -46
- package/esm2020/lib/modules/sidenav/sidenav-container/sidenav-container.component.mjs +0 -86
- package/esm2020/lib/modules/stamp/stamp.component.mjs +0 -22
- package/fesm2015/ecodev-natural.mjs +0 -11532
- package/fesm2015/ecodev-natural.mjs.map +0 -1
- package/fesm2020/ecodev-natural.mjs.map +0 -1
- /package/{esm2020 → esm2022}/ecodev-natural.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/classes/apollo-utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/classes/data-source.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/classes/query-variable-manager-utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/classes/query-variable-manager.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/classes/rxjs.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/classes/tld.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/classes/utility.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/classes/validators.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/alert/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/avatar/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/avatar/service/md5.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/avatar/sources/gravatar.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/avatar/sources/image.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/avatar/sources/initials.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/avatar/sources/source.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/columns-picker/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/columns-picker/types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/common/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/detail-header/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dialog-trigger/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dropdown-components/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dropdown-components/types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/dropdown-components/utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/file/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/file/types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/file/utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/fixed-button/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/fixed-button-detail/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/hierarchic-selector/classes/flat-node.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/hierarchic-selector/classes/hierarchic-configuration.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/hierarchic-selector/classes/hierarchic-filters-configuration.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/hierarchic-selector/classes/model-node.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/hierarchic-selector/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/icon/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/logger/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/matomo/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/panels/fallback-if-no-opened-panels.urlmatcher.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/panels/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/relations/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/search/classes/graphql-doctrine.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/search/classes/graphql-doctrine.types.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/search/classes/transformers.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/search/classes/url.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/search/classes/utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/search/dropdown-container/dropdown-container-animations.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/search/dropdown-container/dropdown-ref.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/search/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/search/types/dropdown-component.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/search/types/facet.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/search/types/values.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/select/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/sidenav/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/stamp/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/modules/table-button/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/services/abstract-model.service.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/types/types.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
import { Directive } from '@angular/core';
|
|
2
|
-
import { UntypedFormGroup } from '@angular/forms';
|
|
3
|
-
import { ActivatedRoute, Router } from '@angular/router';
|
|
4
|
-
import { kebabCase, merge, mergeWith, omit } from 'lodash-es';
|
|
5
|
-
import { NaturalAlertService } from '../modules/alert/alert.service';
|
|
6
|
-
import { NaturalAbstractPanel } from '../modules/panels/abstract-panel';
|
|
7
|
-
import { finalize } from 'rxjs/operators';
|
|
8
|
-
import { ifValid, validateAllFormControls } from './validators';
|
|
9
|
-
import { mergeOverrideArray } from './utility';
|
|
10
|
-
import { EMPTY, endWith, last, switchMap } from 'rxjs';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
// @dynamic
|
|
13
|
-
export class NaturalAbstractDetail extends NaturalAbstractPanel {
|
|
14
|
-
constructor(key, service, injector) {
|
|
15
|
-
super();
|
|
16
|
-
this.key = key;
|
|
17
|
-
this.service = service;
|
|
18
|
-
this.injector = injector;
|
|
19
|
-
/**
|
|
20
|
-
* Empty placeholder for data retrieved by the server
|
|
21
|
-
*/
|
|
22
|
-
this.data = {
|
|
23
|
-
model: {},
|
|
24
|
-
};
|
|
25
|
-
/**
|
|
26
|
-
* Form that manages the data from the controller
|
|
27
|
-
*/
|
|
28
|
-
this.form = new UntypedFormGroup({});
|
|
29
|
-
/**
|
|
30
|
-
* Show / hides the bottom fab button (mostly to hide it when we are on other tabs where semantic of button can conflict with ...
|
|
31
|
-
* semantic of data on other tab, like relations that list other objects)
|
|
32
|
-
*/
|
|
33
|
-
this.showFabButton = true;
|
|
34
|
-
this.alertService = injector.get(NaturalAlertService);
|
|
35
|
-
this.router = injector.get(Router);
|
|
36
|
-
this.route = injector.get(ActivatedRoute);
|
|
37
|
-
}
|
|
38
|
-
ngOnInit() {
|
|
39
|
-
if (!this.isPanel) {
|
|
40
|
-
this.route.data.subscribe(data => {
|
|
41
|
-
this.data = merge({ model: this.service.getConsolidatedForClient() }, data[this.key]);
|
|
42
|
-
this.data = merge(this.data, omit(data, [this.key]));
|
|
43
|
-
this.initForm();
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
this.initForm();
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
changeTab(index) {
|
|
51
|
-
this.showFabButton = index === 0;
|
|
52
|
-
}
|
|
53
|
-
update(now = false) {
|
|
54
|
-
if (!this.data.model.id) {
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
validateAllFormControls(this.form);
|
|
58
|
-
ifValid(this.form).subscribe(() => {
|
|
59
|
-
this.formToData();
|
|
60
|
-
const postUpdate = (model) => {
|
|
61
|
-
this.alertService.info($localize `Mis à jour`);
|
|
62
|
-
this.form.patchValue(model);
|
|
63
|
-
this.postUpdate(model);
|
|
64
|
-
};
|
|
65
|
-
if (now) {
|
|
66
|
-
this.service.updateNow(this.data.model).subscribe(postUpdate);
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
this.service.update(this.data.model).subscribe(postUpdate);
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
create(redirect = true) {
|
|
74
|
-
validateAllFormControls(this.form);
|
|
75
|
-
if (!this.form.valid) {
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
this.formToData();
|
|
79
|
-
this.form.disable();
|
|
80
|
-
this.service
|
|
81
|
-
.create(this.data.model)
|
|
82
|
-
.pipe(switchMap(model => {
|
|
83
|
-
this.alertService.info($localize `Créé`);
|
|
84
|
-
this.form.patchValue(model);
|
|
85
|
-
return this.postCreate(model).pipe(endWith(model), last());
|
|
86
|
-
}), switchMap(model => {
|
|
87
|
-
if (redirect) {
|
|
88
|
-
if (this.isPanel) {
|
|
89
|
-
const oldUrl = this.router.url;
|
|
90
|
-
const nextUrl = this.panelData?.config.params.nextRoute;
|
|
91
|
-
const newUrl = oldUrl.replace('/new', '/' + model.id) + (nextUrl ? '/' + nextUrl : '');
|
|
92
|
-
return this.router.navigateByUrl(newUrl); // replace /new by /123
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
return this.router.navigate(['..', model.id], { relativeTo: this.route });
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
return EMPTY;
|
|
99
|
-
}), finalize(() => this.form.enable()))
|
|
100
|
-
.subscribe();
|
|
101
|
-
}
|
|
102
|
-
delete(redirectionRoute) {
|
|
103
|
-
this.form.disable();
|
|
104
|
-
this.alertService
|
|
105
|
-
.confirm($localize `Suppression`, $localize `Voulez-vous supprimer définitivement cet élément ?`, $localize `Supprimer définitivement`)
|
|
106
|
-
.pipe(switchMap(confirmed => {
|
|
107
|
-
if (!confirmed) {
|
|
108
|
-
return EMPTY;
|
|
109
|
-
}
|
|
110
|
-
this.preDelete(this.data.model);
|
|
111
|
-
return this.service.delete([this.data.model]).pipe(switchMap(() => {
|
|
112
|
-
this.alertService.info($localize `Supprimé`);
|
|
113
|
-
if (this.isPanel) {
|
|
114
|
-
this.panelService?.goToPenultimatePanel();
|
|
115
|
-
return EMPTY;
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
const defaultRoute = ['../../' + kebabCase(this.key)];
|
|
119
|
-
return this.router.navigate(redirectionRoute ? redirectionRoute : defaultRoute, {
|
|
120
|
-
relativeTo: this.route,
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
}));
|
|
124
|
-
}), finalize(() => this.form.enable()))
|
|
125
|
-
.subscribe();
|
|
126
|
-
}
|
|
127
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
128
|
-
postUpdate(model) {
|
|
129
|
-
// noop
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Returns an observable that will be subscribed to immediately and the
|
|
133
|
-
* redirect navigation will only happen after the observable completes.
|
|
134
|
-
*/
|
|
135
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
136
|
-
postCreate(model) {
|
|
137
|
-
return EMPTY;
|
|
138
|
-
}
|
|
139
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
140
|
-
preDelete(model) {
|
|
141
|
-
// noop
|
|
142
|
-
}
|
|
143
|
-
initForm() {
|
|
144
|
-
this.form = this.service.getFormGroup(this.data.model);
|
|
145
|
-
}
|
|
146
|
-
/**
|
|
147
|
-
* Merge values of form into `this.data.model`.
|
|
148
|
-
*/
|
|
149
|
-
formToData() {
|
|
150
|
-
mergeWith(this.data.model, this.form.value, mergeOverrideArray);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
NaturalAbstractDetail.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NaturalAbstractDetail, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
154
|
-
NaturalAbstractDetail.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.2", type: NaturalAbstractDetail, usesInheritance: true, ngImport: i0 });
|
|
155
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NaturalAbstractDetail, decorators: [{
|
|
156
|
-
type: Directive
|
|
157
|
-
}], ctorParameters: function () { return [{ type: undefined }, { type: undefined }, { type: i0.Injector }]; } });
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZGV0YWlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL2NsYXNzZXMvYWJzdHJhY3QtZGV0YWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxjQUFjLEVBQUUsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUM1RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUd0RSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFHN0MsT0FBTyxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFjLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7QUFFakUsV0FBVztBQUVYLE1BQU0sT0FBTyxxQkFjVCxTQUFRLG9CQUFvQjtJQW9DNUIsWUFDdUIsR0FBVyxFQUNkLE9BQWlCLEVBQ2QsUUFBa0I7UUFFckMsS0FBSyxFQUFFLENBQUM7UUFKVyxRQUFHLEdBQUgsR0FBRyxDQUFRO1FBQ2QsWUFBTyxHQUFQLE9BQU8sQ0FBVTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVU7UUFwQ3pDOztXQUVHO1FBQ2EsU0FBSSxHQUFRO1lBQ3hCLEtBQUssRUFBRSxFQUFF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QzVFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSztxQkFDekIsQ0FBQyxDQUFDO2lCQUNOO1lBQ0wsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUNOLENBQUMsQ0FBQyxFQUNGLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQ3JDO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELDZEQUE2RDtJQUNuRCxVQUFVLENBQUMsS0FBK0I7UUFDaEQsT0FBTztJQUNYLENBQUM7SUFFRDs7O09BR0c7SUFDSCw2REFBNkQ7SUFDbkQsVUFBVSxDQUFDLEtBQStCO1FBQ2hELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCw2REFBNkQ7SUFDbkQsU0FBUyxDQUFDLEtBQTRCO1FBQzVDLE9BQU87SUFDWCxDQUFDO0lBRVMsUUFBUTtRQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7O09BRUc7SUFDTyxVQUFVO1FBQ2hCLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7O2tIQTdNUSxxQkFBcUI7c0dBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEluamVjdG9yLCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtVbnR5cGVkRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge2tlYmFiQ2FzZSwgbWVyZ2UsIG1lcmdlV2l0aCwgb21pdH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7TmF0dXJhbEFsZXJ0U2VydmljZX0gZnJvbSAnLi4vbW9kdWxlcy9hbGVydC9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7TmF0dXJhbEFic3RyYWN0UGFuZWx9IGZyb20gJy4uL21vZHVsZXMvcGFuZWxzL2Fic3RyYWN0LXBhbmVsJztcbmltcG9ydCB7TmF0dXJhbEFic3RyYWN0TW9kZWxTZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlcy9hYnN0cmFjdC1tb2RlbC5zZXJ2aWNlJztcbmltcG9ydCB7RXh0cmFjdFRjcmVhdGUsIEV4dHJhY3RUb25lLCBFeHRyYWN0VHVwZGF0ZSwgTGl0ZXJhbH0gZnJvbSAnLi4vdHlwZXMvdHlwZXMnO1xuaW1wb3J0IHtmaW5hbGl6ZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtpZlZhbGlkLCB2YWxpZGF0ZUFsbEZvcm1Db250cm9sc30gZnJvbSAnLi92YWxpZGF0b3JzJztcbmltcG9ydCB7bWVyZ2VPdmVycmlkZUFycmF5fSBmcm9tICcuL3V0aWxpdHknO1xuaW1wb3J0IHtQYWdpbmF0ZWREYXRhfSBmcm9tICcuL2RhdGEtc291cmNlJztcbmltcG9ydCB7UXVlcnlWYXJpYWJsZXN9IGZyb20gJy4vcXVlcnktdmFyaWFibGUtbWFuYWdlcic7XG5pbXBvcnQge0VNUFRZLCBlbmRXaXRoLCBsYXN0LCBPYnNlcnZhYmxlLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMnO1xuXG4vLyBAZHluYW1pY1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgTmF0dXJhbEFic3RyYWN0RGV0YWlsPFxuICAgICAgICBUU2VydmljZSBleHRlbmRzIE5hdHVyYWxBYnN0cmFjdE1vZGVsU2VydmljZTxcbiAgICAgICAgICAgIHVua25vd24sXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBQYWdpbmF0ZWREYXRhPExpdGVyYWw+LFxuICAgICAgICAgICAgUXVlcnlWYXJpYWJsZXMsXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICBhbnksXG4gICAgICAgICAgICB1bmtub3duLFxuICAgICAgICAgICAgYW55XG4gICAgICAgID4sXG4gICAgPlxuICAgIGV4dGVuZHMgTmF0dXJhbEFic3RyYWN0UGFuZWxcbiAgICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICAgIC8qKlxuICAgICAqIEVtcHR5IHBsYWNlaG9sZGVyIGZvciBkYXRhIHJldHJpZXZlZCBieSB0aGUgc2VydmVyXG4gICAgICovXG4gICAgcHVibGljIG92ZXJyaWRlIGRhdGE6IGFueSA9IHtcbiAgICAgICAgbW9kZWw6IHt9LFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBGb3JtIHRoYXQgbWFuYWdlcyB0aGUgZGF0YSBmcm9tIHRoZSBjb250cm9sbGVyXG4gICAgICovXG4gICAgcHVibGljIGZvcm06IFVudHlwZWRGb3JtR3JvdXAgPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XG5cbiAgICAvKipcbiAgICAgKiBTaG93IC8gaGlkZXMgdGhlIGJvdHRvbSBmYWIgYnV0dG9uIChtb3N0bHkgdG8gaGlkZSBpdCB3aGVuIHdlIGFyZSBvbiBvdGhlciB0YWJzIHdoZXJlIHNlbWFudGljIG9mIGJ1dHRvbiBjYW4gY29uZmxpY3Qgd2l0aCAuLi5cbiAgICAgKiBzZW1hbnRpYyBvZiBkYXRhIG9uIG90aGVyIHRhYiwgbGlrZSByZWxhdGlvbnMgdGhhdCBsaXN0IG90aGVyIG9iamVjdHMpXG4gICAgICovXG4gICAgcHVibGljIHNob3dGYWJCdXR0b24gPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogSW5qZWN0ZWQgc2VydmljZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBhbGVydFNlcnZpY2U6IE5hdHVyYWxBbGVydFNlcnZpY2U7XG5cbiAgICAvKipcbiAgICAgKiBJbmplY3RlZCBzZXJ2aWNlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyO1xuXG4gICAgLyoqXG4gICAgICogSW5qZWN0ZWQgc2VydmljZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByb3V0ZTogQWN0aXZhdGVkUm91dGU7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBrZXk6IHN0cmluZyxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2U6IFRTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KE5hdHVyYWxBbGVydFNlcnZpY2UpO1xuICAgICAgICB0aGlzLnJvdXRlciA9IGluamVjdG9yLmdldChSb3V0ZXIpO1xuICAgICAgICB0aGlzLnJvdXRlID0gaW5qZWN0b3IuZ2V0KEFjdGl2YXRlZFJvdXRlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc1BhbmVsKSB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlLmRhdGEuc3Vic2NyaWJlKGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IG1lcmdlKHttb2RlbDogdGhpcy5zZXJ2aWNlLmdldENvbnNvbGlkYXRlZEZvckNsaWVudCgpfSwgZGF0YVt0aGlzLmtleV0pO1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IG1lcmdlKHRoaXMuZGF0YSwgb21pdChkYXRhLCBbdGhpcy5rZXldKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0Rm9ybSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmluaXRGb3JtKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2hhbmdlVGFiKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93RmFiQnV0dG9uID0gaW5kZXggPT09IDA7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZShub3cgPSBmYWxzZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGF0YS5tb2RlbC5pZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFsaWRhdGVBbGxGb3JtQ29udHJvbHModGhpcy5mb3JtKTtcblxuICAgICAgICBpZlZhbGlkKHRoaXMuZm9ybSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZm9ybVRvRGF0YSgpO1xuICAgICAgICAgICAgY29uc3QgcG9zdFVwZGF0ZSA9IChtb2RlbDogRXh0cmFjdFR1cGRhdGU8VFNlcnZpY2U+KTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuaW5mbygkbG9jYWxpemVgTWlzIMOgIGpvdXJgKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShtb2RlbCk7XG4gICAgICAgICAgICAgICAgdGhpcy5wb3N0VXBkYXRlKG1vZGVsKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGlmIChub3cpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UudXBkYXRlTm93KHRoaXMuZGF0YS5tb2RlbCkuc3Vic2NyaWJlKHBvc3RVcGRhdGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UudXBkYXRlKHRoaXMuZGF0YS5tb2RlbCkuc3Vic2NyaWJlKHBvc3RVcGRhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY3JlYXRlKHJlZGlyZWN0ID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICB2YWxpZGF0ZUFsbEZvcm1Db250cm9scyh0aGlzLmZvcm0pO1xuXG4gICAgICAgIGlmICghdGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZvcm1Ub0RhdGEoKTtcbiAgICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcblxuICAgICAgICB0aGlzLnNlcnZpY2VcbiAgICAgICAgICAgIC5jcmVhdGUodGhpcy5kYXRhLm1vZGVsKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKG1vZGVsID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuaW5mbygkbG9jYWxpemVgQ3LDqcOpYCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKG1vZGVsKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wb3N0Q3JlYXRlKG1vZGVsKS5waXBlKGVuZFdpdGgobW9kZWwpLCBsYXN0KCkpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcChtb2RlbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZWRpcmVjdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNQYW5lbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9sZFVybCA9IHRoaXMucm91dGVyLnVybDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXh0VXJsID0gdGhpcy5wYW5lbERhdGE/LmNvbmZpZy5wYXJhbXMubmV4dFJvdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld1VybCA9IG9sZFVybC5yZXBsYWNlKCcvbmV3JywgJy8nICsgbW9kZWwuaWQpICsgKG5leHRVcmwgPyAnLycgKyBuZXh0VXJsIDogJycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKG5ld1VybCk7IC8vIHJlcGxhY2UgL25ldyBieSAvMTIzXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4uJywgbW9kZWwuaWRdLCB7cmVsYXRpdmVUbzogdGhpcy5yb3V0ZX0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuZm9ybS5lbmFibGUoKSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGRlbGV0ZShyZWRpcmVjdGlvblJvdXRlPzogdW5rbm93bltdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybS5kaXNhYmxlKCk7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlXG4gICAgICAgICAgICAuY29uZmlybShcbiAgICAgICAgICAgICAgICAkbG9jYWxpemVgU3VwcHJlc3Npb25gLFxuICAgICAgICAgICAgICAgICRsb2NhbGl6ZWBWb3VsZXotdm91cyBzdXBwcmltZXIgZMOpZmluaXRpdmVtZW50IGNldCDDqWzDqW1lbnQgP2AsXG4gICAgICAgICAgICAgICAgJGxvY2FsaXplYFN1cHByaW1lciBkw6lmaW5pdGl2ZW1lbnRgLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKGNvbmZpcm1lZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY29uZmlybWVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByZURlbGV0ZSh0aGlzLmRhdGEubW9kZWwpO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2UuZGVsZXRlKFt0aGlzLmRhdGEubW9kZWxdKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5pbmZvKCRsb2NhbGl6ZWBTdXBwcmltw6lgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzUGFuZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lbFNlcnZpY2U/LmdvVG9QZW51bHRpbWF0ZVBhbmVsKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRSb3V0ZSA9IFsnLi4vLi4vJyArIGtlYmFiQ2FzZSh0aGlzLmtleSldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUocmVkaXJlY3Rpb25Sb3V0ZSA/IHJlZGlyZWN0aW9uUm91dGUgOiBkZWZhdWx0Um91dGUsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuZm9ybS5lbmFibGUoKSksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHByb3RlY3RlZCBwb3N0VXBkYXRlKG1vZGVsOiBFeHRyYWN0VHVwZGF0ZTxUU2VydmljZT4pOiB2b2lkIHtcbiAgICAgICAgLy8gbm9vcFxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSB0aGF0IHdpbGwgYmUgc3Vic2NyaWJlZCB0byBpbW1lZGlhdGVseSBhbmQgdGhlXG4gICAgICogcmVkaXJlY3QgbmF2aWdhdGlvbiB3aWxsIG9ubHkgaGFwcGVuIGFmdGVyIHRoZSBvYnNlcnZhYmxlIGNvbXBsZXRlcy5cbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgcHJvdGVjdGVkIHBvc3RDcmVhdGUobW9kZWw6IEV4dHJhY3RUY3JlYXRlPFRTZXJ2aWNlPik6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHByb3RlY3RlZCBwcmVEZWxldGUobW9kZWw6IEV4dHJhY3RUb25lPFRTZXJ2aWNlPik6IHZvaWQge1xuICAgICAgICAvLyBub29wXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGluaXRGb3JtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLnNlcnZpY2UuZ2V0Rm9ybUdyb3VwKHRoaXMuZGF0YS5tb2RlbCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWVyZ2UgdmFsdWVzIG9mIGZvcm0gaW50byBgdGhpcy5kYXRhLm1vZGVsYC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZm9ybVRvRGF0YSgpOiB2b2lkIHtcbiAgICAgICAgbWVyZ2VXaXRoKHRoaXMuZGF0YS5tb2RlbCwgdGhpcy5mb3JtLnZhbHVlLCBtZXJnZU92ZXJyaWRlQXJyYXkpO1xuICAgIH1cbn1cbiJdfQ==
|