@valtimo/object 12.11.0 → 12.14.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/components/object-detail-container/tabs/object-detail/object-detail.component.mjs +13 -18
- package/esm2022/lib/components/object-list/object-list.component.mjs +1 -1
- package/esm2022/lib/object-routing.module.mjs +2 -2
- package/fesm2022/valtimo-object.mjs +16 -20
- package/fesm2022/valtimo-object.mjs.map +1 -1
- package/lib/components/object-detail-container/tabs/object-detail/object-detail.component.d.ts +5 -8
- package/package.json +1 -1
|
@@ -19,23 +19,20 @@ import { catchError, finalize, switchMap, take, tap } from 'rxjs/operators';
|
|
|
19
19
|
import { FormType } from '../../../../models/object.model';
|
|
20
20
|
import * as i0 from "@angular/core";
|
|
21
21
|
import * as i1 from "../../../../services/object.service";
|
|
22
|
-
import * as i2 from "
|
|
23
|
-
import * as i3 from "@
|
|
24
|
-
import * as i4 from "
|
|
25
|
-
import * as i5 from "
|
|
26
|
-
import * as i6 from "@valtimo/
|
|
27
|
-
import * as i7 from "@
|
|
28
|
-
import * as i8 from "
|
|
29
|
-
import * as i9 from "carbon-components-angular";
|
|
22
|
+
import * as i2 from "@angular/router";
|
|
23
|
+
import * as i3 from "@ngx-translate/core";
|
|
24
|
+
import * as i4 from "ngx-toastr";
|
|
25
|
+
import * as i5 from "@valtimo/components";
|
|
26
|
+
import * as i6 from "@valtimo/object-management";
|
|
27
|
+
import * as i7 from "@angular/common";
|
|
28
|
+
import * as i8 from "carbon-components-angular";
|
|
30
29
|
export class ObjectDetailComponent {
|
|
31
|
-
constructor(objectService,
|
|
30
|
+
constructor(objectService, route, router, translate, toastr, breadcrumbService, objectManagementService) {
|
|
32
31
|
this.objectService = objectService;
|
|
33
|
-
this.objectState = objectState;
|
|
34
32
|
this.route = route;
|
|
35
33
|
this.router = router;
|
|
36
34
|
this.translate = translate;
|
|
37
35
|
this.toastr = toastr;
|
|
38
|
-
this.pageTitleService = pageTitleService;
|
|
39
36
|
this.breadcrumbService = breadcrumbService;
|
|
40
37
|
this.objectManagementService = objectManagementService;
|
|
41
38
|
this.loading$ = new BehaviorSubject(true);
|
|
@@ -56,9 +53,7 @@ export class ObjectDetailComponent {
|
|
|
56
53
|
});
|
|
57
54
|
}
|
|
58
55
|
}));
|
|
59
|
-
this.objectId$ = this.route.params.pipe(map(params => params.objectId)
|
|
60
|
-
this.pageTitleService.setCustomPageTitle(objectId);
|
|
61
|
-
}));
|
|
56
|
+
this.objectId$ = this.route.params.pipe(map(params => params.objectId));
|
|
62
57
|
this.formioFormSummary$ = combineLatest([
|
|
63
58
|
this.objectManagementId$,
|
|
64
59
|
this.objectId$,
|
|
@@ -173,11 +168,11 @@ export class ObjectDetailComponent {
|
|
|
173
168
|
href: `/objects/${objectTypeId}`,
|
|
174
169
|
});
|
|
175
170
|
}
|
|
176
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectDetailComponent, deps: [{ token: i1.ObjectService }, { token: i2.
|
|
177
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ObjectDetailComponent, selector: "valtimo-object-detail", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n formioFormSummary: formioFormSummary$ | async,\n disableInput: disableInput$ | async,\n } as obs\"\n>\n <div class=\"container-fluid pr-0 pl-0\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"text-right\">\n <div class=\"btn-group mb-1\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <div class=\"col-12\">\n <ng-container *ngTemplateOutlet=\"widget; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createEditModal\"></ng-container>\n <ng-container *ngTemplateOutlet=\"deleteModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button [disabled]=\"obs.disableInput\" (click)=\"openModal()\" cdsButton=\"primary\" size=\"md\">\n {{ 'object.editObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n\n <button (click)=\"deleteObject()\" cdsButton=\"danger\" size=\"md\" class=\"ml-3\">\n {{ 'object.deleteObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #widget let-obs=\"obs\">\n <valtimo-form-io\n *ngIf=\"obs.formioFormSummary\"\n [form]=\"obs.formioFormSummary\"\n [readOnly]=\"true\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #createEditModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n disableInput: disableInput$ | async,\n formioFormEdit: formioFormEdit$ | async,\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.editObject' | translate }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <valtimo-form-io\n [form]=\"modalObs.formioFormEdit\"\n (change)=\"onFormioChange($event)\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"saveObject()\"\n [disabled]=\"modalObs.disableInput || modalObs.formValid === false\"\n >\n {{ 'object.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-icon\"><cds-loading></cds-loading></div>\n</ng-template>\n\n<ng-template #deleteModal>\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteObjectUrl$ | async\"\n (confirmEvent)=\"deleteObjectConfirmation()\"\n confirmButtonTextTranslationKey=\"object.deleteObject\"\n titleTranslationKey=\"object.deleteObject\"\n contentTranslationKey=\"object.deleteObjectConfirmation\"\n ></valtimo-confirmation-modal>\n</ng-template>\n", styles: [".row{margin:0}.object-schema{resize:none}valtimo-widget::ng-deep .card-border.card-full-default{border:none}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type:
|
|
171
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectDetailComponent, deps: [{ token: i1.ObjectService }, { token: i2.ActivatedRoute }, { token: i2.Router }, { token: i3.TranslateService }, { token: i4.ToastrService }, { token: i5.BreadcrumbService }, { token: i6.ObjectManagementService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
172
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ObjectDetailComponent, selector: "valtimo-object-detail", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n formioFormSummary: formioFormSummary$ | async,\n disableInput: disableInput$ | async,\n } as obs\"\n>\n <div class=\"container-fluid pr-0 pl-0\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"text-right\">\n <div class=\"btn-group mb-1\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <div class=\"col-12\">\n <ng-container *ngTemplateOutlet=\"widget; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createEditModal\"></ng-container>\n <ng-container *ngTemplateOutlet=\"deleteModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button [disabled]=\"obs.disableInput\" (click)=\"openModal()\" cdsButton=\"primary\" size=\"md\">\n {{ 'object.editObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n\n <button (click)=\"deleteObject()\" cdsButton=\"danger\" size=\"md\" class=\"ml-3\">\n {{ 'object.deleteObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #widget let-obs=\"obs\">\n <valtimo-form-io\n *ngIf=\"obs.formioFormSummary\"\n [form]=\"obs.formioFormSummary\"\n [readOnly]=\"true\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #createEditModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n disableInput: disableInput$ | async,\n formioFormEdit: formioFormEdit$ | async,\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.editObject' | translate }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <valtimo-form-io\n [form]=\"modalObs.formioFormEdit\"\n (change)=\"onFormioChange($event)\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"saveObject()\"\n [disabled]=\"modalObs.disableInput || modalObs.formValid === false\"\n >\n {{ 'object.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-icon\"><cds-loading></cds-loading></div>\n</ng-template>\n\n<ng-template #deleteModal>\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteObjectUrl$ | async\"\n (confirmEvent)=\"deleteObjectConfirmation()\"\n confirmButtonTextTranslationKey=\"object.deleteObject\"\n titleTranslationKey=\"object.deleteObject\"\n contentTranslationKey=\"object.deleteObjectConfirmation\"\n ></valtimo-confirmation-modal>\n</ng-template>\n", styles: [".row{margin:0}.object-schema{resize:none}valtimo-widget::ng-deep .card-border.card-full-default{border:none}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i8.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i8.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i8.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "component", type: i5.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change", "event"] }, { kind: "component", type: i8.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i8.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i8.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i8.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i8.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "component", type: i5.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "directive", type: i5.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["enableOverflow"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] }); }
|
|
178
173
|
}
|
|
179
174
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectDetailComponent, decorators: [{
|
|
180
175
|
type: Component,
|
|
181
176
|
args: [{ selector: 'valtimo-object-detail', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n formioFormSummary: formioFormSummary$ | async,\n disableInput: disableInput$ | async,\n } as obs\"\n>\n <div class=\"container-fluid pr-0 pl-0\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"text-right\">\n <div class=\"btn-group mb-1\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <div class=\"col-12\">\n <ng-container *ngTemplateOutlet=\"widget; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createEditModal\"></ng-container>\n <ng-container *ngTemplateOutlet=\"deleteModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button [disabled]=\"obs.disableInput\" (click)=\"openModal()\" cdsButton=\"primary\" size=\"md\">\n {{ 'object.editObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n\n <button (click)=\"deleteObject()\" cdsButton=\"danger\" size=\"md\" class=\"ml-3\">\n {{ 'object.deleteObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #widget let-obs=\"obs\">\n <valtimo-form-io\n *ngIf=\"obs.formioFormSummary\"\n [form]=\"obs.formioFormSummary\"\n [readOnly]=\"true\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #createEditModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n disableInput: disableInput$ | async,\n formioFormEdit: formioFormEdit$ | async,\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.editObject' | translate }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <valtimo-form-io\n [form]=\"modalObs.formioFormEdit\"\n (change)=\"onFormioChange($event)\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"saveObject()\"\n [disabled]=\"modalObs.disableInput || modalObs.formValid === false\"\n >\n {{ 'object.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-icon\"><cds-loading></cds-loading></div>\n</ng-template>\n\n<ng-template #deleteModal>\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteObjectUrl$ | async\"\n (confirmEvent)=\"deleteObjectConfirmation()\"\n confirmButtonTextTranslationKey=\"object.deleteObject\"\n titleTranslationKey=\"object.deleteObject\"\n contentTranslationKey=\"object.deleteObjectConfirmation\"\n ></valtimo-confirmation-modal>\n</ng-template>\n", styles: [".row{margin:0}.object-schema{resize:none}valtimo-widget::ng-deep .card-border.card-full-default{border:none}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
|
|
182
|
-
}], ctorParameters: () => [{ type: i1.ObjectService }, { type: i2.
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL29iamVjdC9zcmMvbGliL2NvbXBvbmVudHMvb2JqZWN0LWRldGFpbC1jb250YWluZXIvdGFicy9vYmplY3QtZGV0YWlsL29iamVjdC1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9vYmplY3Qvc3JjL2xpYi9jb21wb25lbnRzL29iamVjdC1kZXRhaWwtY29udGFpbmVyL3RhYnMvb2JqZWN0LWRldGFpbC9vYmplY3QtZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFNBQVMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDOUYsT0FBTyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUkxRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7O0FBV3pELE1BQU0sT0FBTyxxQkFBcUI7SUFzRWhDLFlBQ21CLGFBQTRCLEVBQzVCLFdBQStCLEVBQy9CLEtBQXFCLEVBQ3JCLE1BQWMsRUFDZCxTQUEyQixFQUMzQixNQUFxQixFQUNyQixnQkFBa0MsRUFDbEMsaUJBQW9DLEVBQ3BDLHVCQUFnRDtRQVJoRCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0IsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFD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QUFJLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUM7WUFDekMsS0FBSyxFQUFFLENBQUMsWUFBWSxZQUFZLEVBQUUsQ0FBQztZQUNuQyxPQUFPLEVBQUUsS0FBSztZQUNkLElBQUksRUFBRSxZQUFZLFlBQVksRUFBRTtTQUNqQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQW5NVSxxQkFBcUI7bUdBQXJCLHFCQUFxQiw2RENqQ2xDLHN1SUE4SEE7OzRGRDdGYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCwgdGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIGZpbmFsaXplLCBzd2l0Y2hNYXAsIHRha2UsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtPYmplY3RTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9vYmplY3Quc2VydmljZSc7XG5pbXBvcnQge09iamVjdFN0YXRlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvb2JqZWN0LXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtGb3JtVHlwZX0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL29iamVjdC5tb2RlbCc7XG5pbXBvcnQge1RvYXN0clNlcnZpY2V9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7QnJlYWRjcnVtYlNlcnZpY2UsIFBhZ2VUaXRsZVNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtPYmplY3RNYW5hZ2VtZW50U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vb2JqZWN0LW1hbmFnZW1lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLW9iamVjdC1kZXRhaWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vb2JqZWN0LWRldGFpbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29iamVjdC1kZXRhaWwuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0RGV0YWlsQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgbG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSBzdWJtaXNzaW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih7fSk7XG4gIHJlYWRvbmx5IGZvcm1WYWxpZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgc2hvd01vZGFsJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBkaXNhYmxlSW5wdXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHNob3dEZWxldGVNb2RhbCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICByZWFkb25seSBkZWxldGVPYmplY3RVcmwkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHJlZnJlc2hPYmplY3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudWxsPihudWxsKTtcblxuICByZWFkb25seSBvYmplY3RNYW5hZ2VtZW50SWQkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLnJvdXRlLnBhcmFtcy5waXBlKFxuICAgIG1hcChwYXJhbXMgPT4gcGFyYW1zLm9iamVjdE1hbmFnZW1lbnRJZCksXG4gICAgdGFwKG9iamVjdE1hbmFnZW1lbnRJZCA9PiB7XG4gICAgICBpZiAoIXRoaXMuX3NldHRpbmdCcmVhZGNydW1iICYmIG9iamVjdE1hbmFnZW1lbnRJZCkge1xuICAgICAgICB0aGlzLl9zZXR0aW5nQnJlYWRjcnVtYiA9IHRydWU7XG4gICAgICAgIHRoaXMub2JqZWN0TWFuYWdlbWVudFNlcnZpY2UuZ2V0T2JqZWN0QnlJZChvYmplY3RNYW5hZ2VtZW50SWQpLnN1YnNjcmliZShvYmplY3RUeXBlID0+IHtcbiAgICAgICAgICBpZiAob2JqZWN0VHlwZS5pZCAmJiBvYmplY3RUeXBlLnRpdGxlKSB7XG4gICAgICAgICAgICB0aGlzLnNldEJyZWFkY3J1bWIob2JqZWN0VHlwZS5pZCwgb2JqZWN0VHlwZS50aXRsZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KVxuICApO1xuICByZWFkb25seSBvYmplY3RJZCQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMucm91dGUucGFyYW1zLnBpcGUoXG4gICAgbWFwKHBhcmFtcyA9PiBwYXJhbXMub2JqZWN0SWQpLFxuICAgIHRhcChvYmplY3RJZCA9PiB7XG4gICAgICB0aGlzLnBhZ2VUaXRsZVNlcnZpY2Uuc2V0Q3VzdG9tUGFnZVRpdGxlKG9iamVjdElkKTtcbiAgICB9KVxuICApO1xuXG4gIHJlYWRvbmx5IGZvcm1pb0Zvcm1TdW1tYXJ5JDogT2JzZXJ2YWJsZTxhbnk+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5vYmplY3RNYW5hZ2VtZW50SWQkLFxuICAgIHRoaXMub2JqZWN0SWQkLFxuICAgIHRoaXMucmVmcmVzaE9iamVjdCQsXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbb2JqZWN0TWFuYWdlbWVudElkLCBvYmplY3RJZF0pID0+XG4gICAgICB0aGlzLm9iamVjdFNlcnZpY2VcbiAgICAgICAgLmdldFByZWZpbGxlZE9iamVjdEZyb21PYmplY3RVcmwoe29iamVjdE1hbmFnZW1lbnRJZCwgb2JqZWN0SWQsIGZvcm1UeXBlOiBGb3JtVHlwZS5TVU1NQVJZfSlcbiAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiB0aGlzLmhhbmRsZVJldHJpZXZpbmdGb3JtRXJyb3IoKSkpXG4gICAgKSxcbiAgICBtYXAocmVzID0+IHJlcz8uZm9ybURlZmluaXRpb24pLFxuICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpKVxuICApO1xuXG4gIHJlYWRvbmx5IGZvcm1pb0Zvcm1FZGl0JDogT2JzZXJ2YWJsZTxhbnk+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5vYmplY3RNYW5hZ2VtZW50SWQkLFxuICAgIHRoaXMub2JqZWN0SWQkLFxuICAgIHRoaXMucmVmcmVzaE9iamVjdCQsXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbb2JqZWN0TWFuYWdlbWVudElkLCBvYmplY3RJZF0pID0+XG4gICAgICB0aGlzLm9iamVjdFNlcnZpY2VcbiAgICAgICAgLmdldFByZWZpbGxlZE9iamVjdEZyb21PYmplY3RVcmwoe1xuICAgICAgICAgIG9iamVjdE1hbmFnZW1lbnRJZCxcbiAgICAgICAgICBvYmplY3RJZCxcbiAgICAgICAgICBmb3JtVHlwZTogRm9ybVR5cGUuRURJVEZPUk0sXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlSW5wdXQoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZVJldHJpZXZpbmdGb3JtRXJyb3IoKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgKSxcbiAgICBtYXAocmVzID0+IHJlcz8uZm9ybURlZmluaXRpb24pLFxuICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpKVxuICApO1xuXG4gIHByaXZhdGUgX3NldHRpbmdCcmVhZGNydW1iID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBvYmplY3RTZXJ2aWNlOiBPYmplY3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb2JqZWN0U3RhdGU6IE9iamVjdFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFnZVRpdGxlU2VydmljZTogUGFnZVRpdGxlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJyZWFkY3J1bWJTZXJ2aWNlOiBCcmVhZGNydW1iU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9iamVjdE1hbmFnZW1lbnRTZXJ2aWNlOiBPYmplY3RNYW5hZ2VtZW50U2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuYnJlYWRjcnVtYlNlcnZpY2UuY2xlYXJTZWNvbmRCcmVhZGNydW1iKCk7XG4gIH1cblxuICBzYXZlT2JqZWN0KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZUlucHV0KCk7XG5cbiAgICB0aGlzLnVwZGF0ZU9iamVjdCgpO1xuICB9XG5cbiAgZGVsZXRlT2JqZWN0KCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0RlbGV0ZU1vZGFsJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgZGVsZXRlT2JqZWN0Q29uZmlybWF0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZUlucHV0KCk7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5vYmplY3RNYW5hZ2VtZW50SWQkLCB0aGlzLm9iamVjdElkJF0pXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoW29iamVjdE1hbmFnZW1lbnRJZCwgb2JqZWN0SWRdKSA9PiB7XG4gICAgICAgIHRoaXMub2JqZWN0U2VydmljZVxuICAgICAgICAgIC5kZWxldGVPYmplY3Qoe29iamVjdE1hbmFnZW1lbnRJZCwgb2JqZWN0SWR9KVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBhbnkpID0+IHRoaXMuaGFuZGxlRGVsZXRlT2JqZWN0RXJyb3IoZXJyb3IpKSxcbiAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5lbmFibGVJbnB1dCgpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlTW9kYWwoKTtcbiAgICAgICAgICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3ModGhpcy50cmFuc2xhdGUuaW5zdGFudCgnb2JqZWN0Lm1lc3NhZ2VzLm9iamVjdERlbGV0ZWQnKSk7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9vYmplY3RzLyR7b2JqZWN0TWFuYWdlbWVudElkfWBdKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgb3Blbk1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd01vZGFsJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuZW5hYmxlSW5wdXQoKTtcbiAgfVxuXG4gIG9uRm9ybWlvQ2hhbmdlKGZvcm1pbyk6IHZvaWQge1xuICAgIGlmIChmb3JtaW8uZGF0YSAhPSBudWxsKSB7XG4gICAgICB0aGlzLnN1Ym1pc3Npb24kLm5leHQoZm9ybWlvLmRhdGEpO1xuICAgICAgdGhpcy5mb3JtVmFsaWQkLm5leHQoZm9ybWlvLmlzVmFsaWQpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93TW9kYWwkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVPYmplY3QoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlSW5wdXQoKTtcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLm9iamVjdE1hbmFnZW1lbnRJZCQsIHRoaXMub2JqZWN0SWQkLCB0aGlzLnN1Ym1pc3Npb24kLCB0aGlzLmZvcm1WYWxpZCRdKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKFtvYmplY3RNYW5hZ2VtZW50SWQsIG9iamVjdElkLCBzdWJtaXNzaW9uLCBmb3JtVmFsaWRdKSA9PiB7XG4gICAgICAgIGlmIChmb3JtVmFsaWQpIHtcbiAgICAgICAgICBzdWJtaXNzaW9uID0gdGhpcy5vYmplY3RTZXJ2aWNlLnJlbW92ZUVtcHR5U3RyaW5nVmFsdWVzRnJvbVN1Ym1pc3Npb24oc3VibWlzc2lvbik7XG4gICAgICAgICAgdGhpcy5vYmplY3RTZXJ2aWNlXG4gICAgICAgICAgICAudXBkYXRlT2JqZWN0KHtvYmplY3RNYW5hZ2VtZW50SWQsIG9iamVjdElkfSwgey4uLnN1Ym1pc3Npb259KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBhbnkpID0+IHRoaXMuaGFuZGxlVXBkYXRlT2JqZWN0RXJyb3IoZXJyb3IpKSxcbiAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZW5hYmxlSW5wdXQoKTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmNsb3NlTW9kYWwoKTtcbiAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoT2JqZWN0KCk7XG4gICAgICAgICAgICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3ModGhpcy50cmFuc2xhdGUuaW5zdGFudCgnb2JqZWN0Lm1lc3NhZ2VzLm9iamVjdFVwZGF0ZWQnKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlZnJlc2hPYmplY3QoKTogdm9pZCB7XG4gICAgdGhpcy5yZWZyZXNoT2JqZWN0JC5uZXh0KG51bGwpO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNhYmxlSW5wdXQoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlSW5wdXQkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGVuYWJsZUlucHV0KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZUlucHV0JC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlUmV0cmlldmluZ0Zvcm1FcnJvcigpIHtcbiAgICB0aGlzLnRvYXN0ci5lcnJvcih0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdvYmplY3QubWVzc2FnZXMub2JqZWN0UmV0cmlldmluZ0Zvcm1FcnJvcicpKTtcbiAgICB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpO1xuICAgIHJldHVybiBvZihudWxsKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlVXBkYXRlT2JqZWN0RXJyb3IoZXJyb3I6IGFueSkge1xuICAgIHRoaXMuY2xvc2VNb2RhbCgpO1xuICAgIHRoaXMudG9hc3RyLmVycm9yKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ29iamVjdC5tZXNzYWdlcy5vYmplY3RVcGRhdGVFcnJvcicpKTtcbiAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZURlbGV0ZU9iamVjdEVycm9yKGVycm9yOiBhbnkpIHtcbiAgICB0aGlzLmNsb3NlTW9kYWwoKTtcbiAgICB0aGlzLnRvYXN0ci5lcnJvcih0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdvYmplY3QubWVzc2FnZXMub2JqZWN0RGVsZXRlRXJyb3InKSk7XG4gICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRCcmVhZGNydW1iKG9iamVjdFR5cGVJZDogc3RyaW5nLCB0aXRsZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5icmVhZGNydW1iU2VydmljZS5zZXRTZWNvbmRCcmVhZGNydW1iKHtcbiAgICAgIHJvdXRlOiBbYC9vYmplY3RzLyR7b2JqZWN0VHlwZUlkfWBdLFxuICAgICAgY29udGVudDogdGl0bGUsXG4gICAgICBocmVmOiBgL29iamVjdHMvJHtvYmplY3RUeXBlSWR9YCxcbiAgICB9KTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuPG5nLWNvbnRhaW5lclxuICAqbmdJZj1cIntcbiAgICBmb3JtaW9Gb3JtU3VtbWFyeTogZm9ybWlvRm9ybVN1bW1hcnkkIHwgYXN5bmMsXG4gICAgZGlzYWJsZUlucHV0OiBkaXNhYmxlSW5wdXQkIHwgYXN5bmMsXG4gIH0gYXMgb2JzXCJcbj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mbHVpZCBwci0wIHBsLTBcIj5cbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ0bi1ncm91cCBtYi0xXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uczsgY29udGV4dDoge29iczogb2JzfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwid2lkZ2V0OyBjb250ZXh0OiB7b2JzOiBvYnN9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjcmVhdGVFZGl0TW9kYWxcIj48L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRlbGV0ZU1vZGFsXCI+PC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNidXR0b25zIGxldC1vYnM9XCJvYnNcIj5cbiAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVJbnB1dFwiIChjbGljayk9XCJvcGVuTW9kYWwoKVwiIGNkc0J1dHRvbj1cInByaW1hcnlcIiBzaXplPVwibWRcIj5cbiAgICB7eyAnb2JqZWN0LmVkaXRPYmplY3QnIHwgdHJhbnNsYXRlIH19XG4gICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cImFkZFwiIHNpemU9XCIxNlwiPjwvc3ZnPlxuICA8L2J1dHRvbj5cblxuICA8YnV0dG9uIChjbGljayk9XCJkZWxldGVPYmplY3QoKVwiIGNkc0J1dHRvbj1cImRhbmdlclwiIHNpemU9XCJtZFwiIGNsYXNzPVwibWwtM1wiPlxuICAgIHt7ICdvYmplY3QuZGVsZXRlT2JqZWN0JyB8IHRyYW5zbGF0ZSB9fVxuICAgIDxzdmcgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiIGNkc0ljb249XCJ0cmFzaC1jYW5cIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3dpZGdldCBsZXQtb2JzPVwib2JzXCI+XG4gIDx2YWx0aW1vLWZvcm0taW9cbiAgICAqbmdJZj1cIm9icy5mb3JtaW9Gb3JtU3VtbWFyeVwiXG4gICAgW2Zvcm1dPVwib2JzLmZvcm1pb0Zvcm1TdW1tYXJ5XCJcbiAgICBbcmVhZE9ubHldPVwidHJ1ZVwiXG4gID48L3ZhbHRpbW8tZm9ybS1pbz5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY3JlYXRlRWRpdE1vZGFsPlxuICA8Y2RzLW1vZGFsXG4gICAgdmFsdGltb0Nkc01vZGFsXG4gICAgKm5nSWY9XCJ7XG4gICAgICBzaG93OiBzaG93TW9kYWwkIHwgYXN5bmMsXG4gICAgICBmb3JtVmFsaWQ6IGZvcm1WYWxpZCQgfCBhc3luYyxcbiAgICAgIGRpc2FibGVJbnB1dDogZGlzYWJsZUlucHV0JCB8IGFzeW5jLFxuICAgICAgZm9ybWlvRm9ybUVkaXQ6IGZvcm1pb0Zvcm1FZGl0JCB8IGFzeW5jLFxuICAgIH0gYXMgbW9kYWxPYnNcIlxuICAgIFtvcGVuXT1cIm1vZGFsT2JzLnNob3dcIlxuICA+XG4gICAgPGNkcy1tb2RhbC1oZWFkZXIgW3Nob3dDbG9zZUJ1dHRvbl09XCJ0cnVlXCIgKGNsb3NlU2VsZWN0KT1cImNsb3NlTW9kYWwoKVwiPlxuICAgICAgPGgzIGNkc01vZGFsSGVhZGVySGVhZGluZz5cbiAgICAgICAge3sgJ29iamVjdC5lZGl0T2JqZWN0JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9oMz5cbiAgICA8L2Nkcy1tb2RhbC1oZWFkZXI+XG4gICAgPHNlY3Rpb24gY2RzTW9kYWxDb250ZW50PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vZGFsQ29udGVudDsgY29udGV4dDoge21vZGFsT2JzOiBtb2RhbE9ic31cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L3NlY3Rpb24+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm1vZGFsRm9vdGVyOyBjb250ZXh0OiB7bW9kYWxPYnM6IG1vZGFsT2JzfVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Nkcy1tb2RhbD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbW9kYWxDb250ZW50IGxldC1tb2RhbE9icz1cIm1vZGFsT2JzXCI+XG4gIDx2YWx0aW1vLWZvcm0taW9cbiAgICBbZm9ybV09XCJtb2RhbE9icy5mb3JtaW9Gb3JtRWRpdFwiXG4gICAgKGNoYW5nZSk9XCJvbkZvcm1pb0NoYW5nZSgkZXZlbnQpXCJcbiAgPjwvdmFsdGltby1mb3JtLWlvPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtb2RhbEZvb3RlciBsZXQtbW9kYWxPYnM9XCJtb2RhbE9ic1wiPlxuICA8Y2RzLW1vZGFsLWZvb3Rlcj5cbiAgICA8bmctY29udGFpbmVyPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjZHNCdXR0b249XCJzZWNvbmRhcnlcIlxuICAgICAgICBbYXR0ci5tb2RhbC1wcmltYXJ5LWZvY3VzXT1cInRydWVcIlxuICAgICAgICAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm1vZGFsT2JzLmRpc2FibGVJbnB1dFwiXG4gICAgICA+XG4gICAgICAgIHt7ICdvYmplY3QuY2xvc2UnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgIFthdHRyLm1vZGFsLXByaW1hcnktZm9jdXNdPVwidHJ1ZVwiXG4gICAgICAgIChjbGljayk9XCJzYXZlT2JqZWN0KClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwibW9kYWxPYnMuZGlzYWJsZUlucHV0IHx8IG1vZGFsT2JzLmZvcm1WYWxpZCA9PT0gZmFsc2VcIlxuICAgICAgPlxuICAgICAgICB7eyAnb2JqZWN0LnNhdmUnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9jZHMtbW9kYWwtZm9vdGVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxuICA8ZGl2IGNsYXNzPVwibG9hZGluZy1pY29uXCI+PGNkcy1sb2FkaW5nPjwvY2RzLWxvYWRpbmc+PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RlbGV0ZU1vZGFsPlxuICA8dmFsdGltby1jb25maXJtYXRpb24tbW9kYWxcbiAgICBbc2hvd01vZGFsU3ViamVjdCRdPVwic2hvd0RlbGV0ZU1vZGFsJFwiXG4gICAgW291dHB1dE9uQ29uZmlybV09XCJkZWxldGVPYmplY3RVcmwkIHwgYXN5bmNcIlxuICAgIChjb25maXJtRXZlbnQpPVwiZGVsZXRlT2JqZWN0Q29uZmlybWF0aW9uKClcIlxuICAgIGNvbmZpcm1CdXR0b25UZXh0VHJhbnNsYXRpb25LZXk9XCJvYmplY3QuZGVsZXRlT2JqZWN0XCJcbiAgICB0aXRsZVRyYW5zbGF0aW9uS2V5PVwib2JqZWN0LmRlbGV0ZU9iamVjdFwiXG4gICAgY29udGVudFRyYW5zbGF0aW9uS2V5PVwib2JqZWN0LmRlbGV0ZU9iamVjdENvbmZpcm1hdGlvblwiXG4gID48L3ZhbHRpbW8tY29uZmlybWF0aW9uLW1vZGFsPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
177
|
+
}], ctorParameters: () => [{ type: i1.ObjectService }, { type: i2.ActivatedRoute }, { type: i2.Router }, { type: i3.TranslateService }, { type: i4.ToastrService }, { type: i5.BreadcrumbService }, { type: i6.ObjectManagementService }] });
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWRldGFpbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL29iamVjdC9zcmMvbGliL2NvbXBvbmVudHMvb2JqZWN0LWRldGFpbC1jb250YWluZXIvdGFicy9vYmplY3QtZGV0YWlsL29iamVjdC1kZXRhaWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9vYmplY3Qvc3JjL2xpYi9jb21wb25lbnRzL29iamVjdC1kZXRhaWwtY29udGFpbmVyL3RhYnMvb2JqZWN0LWRldGFpbC9vYmplY3QtZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFDLFNBQVMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQU1uRCxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDOUYsT0FBTyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7Ozs7QUFRekQsTUFBTSxPQUFPLHFCQUFxQjtJQWlFaEMsWUFDbUIsYUFBNEIsRUFDNUIsS0FBcUIsRUFDckIsTUFBYyxFQUNkLFNBQTJCLEVBQzNCLE1BQXFCLEVBQ3JCLGlCQUFvQyxFQUNwQyx1QkFBZ0Q7UUFOaEQsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNC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c3VJQThIQTs7NEZEL0ZhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtCcmVhZGNydW1iU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge09iamVjdE1hbmFnZW1lbnRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9vYmplY3QtbWFuYWdlbWVudCc7XG5pbXBvcnQge1RvYXN0clNlcnZpY2V9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QsIHRocm93RXJyb3J9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBmaW5hbGl6ZSwgc3dpdGNoTWFwLCB0YWtlLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Rm9ybVR5cGV9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9vYmplY3QubW9kZWwnO1xuaW1wb3J0IHtPYmplY3RTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9vYmplY3Quc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tb2JqZWN0LWRldGFpbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb2JqZWN0LWRldGFpbC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3REZXRhaWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICByZWFkb25seSBsb2FkaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHJlYWRvbmx5IHN1Ym1pc3Npb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHt9KTtcbiAgcmVhZG9ubHkgZm9ybVZhbGlkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzaG93TW9kYWwkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGRpc2FibGVJbnB1dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgc2hvd0RlbGV0ZU1vZGFsJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGRlbGV0ZU9iamVjdFVybCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVmcmVzaE9iamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bGw+KG51bGwpO1xuXG4gIHJlYWRvbmx5IG9iamVjdE1hbmFnZW1lbnRJZCQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMucm91dGUucGFyYW1zLnBpcGUoXG4gICAgbWFwKHBhcmFtcyA9PiBwYXJhbXMub2JqZWN0TWFuYWdlbWVudElkKSxcbiAgICB0YXAob2JqZWN0TWFuYWdlbWVudElkID0+IHtcbiAgICAgIGlmICghdGhpcy5fc2V0dGluZ0JyZWFkY3J1bWIgJiYgb2JqZWN0TWFuYWdlbWVudElkKSB7XG4gICAgICAgIHRoaXMuX3NldHRpbmdCcmVhZGNydW1iID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vYmplY3RNYW5hZ2VtZW50U2VydmljZS5nZXRPYmplY3RCeUlkKG9iamVjdE1hbmFnZW1lbnRJZCkuc3Vic2NyaWJlKG9iamVjdFR5cGUgPT4ge1xuICAgICAgICAgIGlmIChvYmplY3RUeXBlLmlkICYmIG9iamVjdFR5cGUudGl0bGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0QnJlYWRjcnVtYihvYmplY3RUeXBlLmlkLCBvYmplY3RUeXBlLnRpdGxlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pXG4gICk7XG4gIHJlYWRvbmx5IG9iamVjdElkJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5yb3V0ZS5wYXJhbXMucGlwZShtYXAocGFyYW1zID0+IHBhcmFtcy5vYmplY3RJZCkpO1xuXG4gIHJlYWRvbmx5IGZvcm1pb0Zvcm1TdW1tYXJ5JDogT2JzZXJ2YWJsZTxhbnk+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5vYmplY3RNYW5hZ2VtZW50SWQkLFxuICAgIHRoaXMub2JqZWN0SWQkLFxuICAgIHRoaXMucmVmcmVzaE9iamVjdCQsXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbb2JqZWN0TWFuYWdlbWVudElkLCBvYmplY3RJZF0pID0+XG4gICAgICB0aGlzLm9iamVjdFNlcnZpY2VcbiAgICAgICAgLmdldFByZWZpbGxlZE9iamVjdEZyb21PYmplY3RVcmwoe29iamVjdE1hbmFnZW1lbnRJZCwgb2JqZWN0SWQsIGZvcm1UeXBlOiBGb3JtVHlwZS5TVU1NQVJZfSlcbiAgICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiB0aGlzLmhhbmRsZVJldHJpZXZpbmdGb3JtRXJyb3IoKSkpXG4gICAgKSxcbiAgICBtYXAocmVzID0+IHJlcz8uZm9ybURlZmluaXRpb24pLFxuICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpKVxuICApO1xuXG4gIHJlYWRvbmx5IGZvcm1pb0Zvcm1FZGl0JDogT2JzZXJ2YWJsZTxhbnk+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5vYmplY3RNYW5hZ2VtZW50SWQkLFxuICAgIHRoaXMub2JqZWN0SWQkLFxuICAgIHRoaXMucmVmcmVzaE9iamVjdCQsXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbb2JqZWN0TWFuYWdlbWVudElkLCBvYmplY3RJZF0pID0+XG4gICAgICB0aGlzLm9iamVjdFNlcnZpY2VcbiAgICAgICAgLmdldFByZWZpbGxlZE9iamVjdEZyb21PYmplY3RVcmwoe1xuICAgICAgICAgIG9iamVjdE1hbmFnZW1lbnRJZCxcbiAgICAgICAgICBvYmplY3RJZCxcbiAgICAgICAgICBmb3JtVHlwZTogRm9ybVR5cGUuRURJVEZPUk0sXG4gICAgICAgIH0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlSW5wdXQoKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhhbmRsZVJldHJpZXZpbmdGb3JtRXJyb3IoKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgKSxcbiAgICBtYXAocmVzID0+IHJlcz8uZm9ybURlZmluaXRpb24pLFxuICAgIHRhcCgoKSA9PiB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpKVxuICApO1xuXG4gIHByaXZhdGUgX3NldHRpbmdCcmVhZGNydW1iID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBvYmplY3RTZXJ2aWNlOiBPYmplY3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdHI6IFRvYXN0clNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBicmVhZGNydW1iU2VydmljZTogQnJlYWRjcnVtYlNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBvYmplY3RNYW5hZ2VtZW50U2VydmljZTogT2JqZWN0TWFuYWdlbWVudFNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmJyZWFkY3J1bWJTZXJ2aWNlLmNsZWFyU2Vjb25kQnJlYWRjcnVtYigpO1xuICB9XG5cbiAgc2F2ZU9iamVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVJbnB1dCgpO1xuXG4gICAgdGhpcy51cGRhdGVPYmplY3QoKTtcbiAgfVxuXG4gIGRlbGV0ZU9iamVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dEZWxldGVNb2RhbCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIGRlbGV0ZU9iamVjdENvbmZpcm1hdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVJbnB1dCgpO1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMub2JqZWN0TWFuYWdlbWVudElkJCwgdGhpcy5vYmplY3RJZCRdKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKFtvYmplY3RNYW5hZ2VtZW50SWQsIG9iamVjdElkXSkgPT4ge1xuICAgICAgICB0aGlzLm9iamVjdFNlcnZpY2VcbiAgICAgICAgICAuZGVsZXRlT2JqZWN0KHtvYmplY3RNYW5hZ2VtZW50SWQsIG9iamVjdElkfSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogYW55KSA9PiB0aGlzLmhhbmRsZURlbGV0ZU9iamVjdEVycm9yKGVycm9yKSksXG4gICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuZW5hYmxlSW5wdXQoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jbG9zZU1vZGFsKCk7XG4gICAgICAgICAgICB0aGlzLnRvYXN0ci5zdWNjZXNzKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ29iamVjdC5tZXNzYWdlcy5vYmplY3REZWxldGVkJykpO1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2Avb2JqZWN0cy8ke29iamVjdE1hbmFnZW1lbnRJZH1gXSk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG9wZW5Nb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dNb2RhbCQubmV4dCh0cnVlKTtcbiAgICB0aGlzLmVuYWJsZUlucHV0KCk7XG4gIH1cblxuICBvbkZvcm1pb0NoYW5nZShmb3JtaW8pOiB2b2lkIHtcbiAgICBpZiAoZm9ybWlvLmRhdGEgIT0gbnVsbCkge1xuICAgICAgdGhpcy5zdWJtaXNzaW9uJC5uZXh0KGZvcm1pby5kYXRhKTtcbiAgICAgIHRoaXMuZm9ybVZhbGlkJC5uZXh0KGZvcm1pby5pc1ZhbGlkKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZU1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd01vZGFsJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlT2JqZWN0KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZUlucHV0KCk7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5vYmplY3RNYW5hZ2VtZW50SWQkLCB0aGlzLm9iamVjdElkJCwgdGhpcy5zdWJtaXNzaW9uJCwgdGhpcy5mb3JtVmFsaWQkXSlcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKChbb2JqZWN0TWFuYWdlbWVudElkLCBvYmplY3RJZCwgc3VibWlzc2lvbiwgZm9ybVZhbGlkXSkgPT4ge1xuICAgICAgICBpZiAoZm9ybVZhbGlkKSB7XG4gICAgICAgICAgc3VibWlzc2lvbiA9IHRoaXMub2JqZWN0U2VydmljZS5yZW1vdmVFbXB0eVN0cmluZ1ZhbHVlc0Zyb21TdWJtaXNzaW9uKHN1Ym1pc3Npb24pO1xuICAgICAgICAgIHRoaXMub2JqZWN0U2VydmljZVxuICAgICAgICAgICAgLnVwZGF0ZU9iamVjdCh7b2JqZWN0TWFuYWdlbWVudElkLCBvYmplY3RJZH0sIHsuLi5zdWJtaXNzaW9ufSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogYW55KSA9PiB0aGlzLmhhbmRsZVVwZGF0ZU9iamVjdEVycm9yKGVycm9yKSksXG4gICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZUlucHV0KCk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5jbG9zZU1vZGFsKCk7XG4gICAgICAgICAgICAgIHRoaXMucmVmcmVzaE9iamVjdCgpO1xuICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5zdWNjZXNzKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ29iamVjdC5tZXNzYWdlcy5vYmplY3RVcGRhdGVkJykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoT2JqZWN0KCk6IHZvaWQge1xuICAgIHRoaXMucmVmcmVzaE9iamVjdCQubmV4dChudWxsKTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzYWJsZUlucHV0KCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZUlucHV0JC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmFibGVJbnB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVJbnB1dCQubmV4dChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVJldHJpZXZpbmdGb3JtRXJyb3IoKSB7XG4gICAgdGhpcy50b2FzdHIuZXJyb3IodGhpcy50cmFuc2xhdGUuaW5zdGFudCgnb2JqZWN0Lm1lc3NhZ2VzLm9iamVjdFJldHJpZXZpbmdGb3JtRXJyb3InKSk7XG4gICAgdGhpcy5sb2FkaW5nJC5uZXh0KGZhbHNlKTtcbiAgICByZXR1cm4gb2YobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVVwZGF0ZU9iamVjdEVycm9yKGVycm9yOiBhbnkpIHtcbiAgICB0aGlzLmNsb3NlTW9kYWwoKTtcbiAgICB0aGlzLnRvYXN0ci5lcnJvcih0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdvYmplY3QubWVzc2FnZXMub2JqZWN0VXBkYXRlRXJyb3InKSk7XG4gICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVEZWxldGVPYmplY3RFcnJvcihlcnJvcjogYW55KSB7XG4gICAgdGhpcy5jbG9zZU1vZGFsKCk7XG4gICAgdGhpcy50b2FzdHIuZXJyb3IodGhpcy50cmFuc2xhdGUuaW5zdGFudCgnb2JqZWN0Lm1lc3NhZ2VzLm9iamVjdERlbGV0ZUVycm9yJykpO1xuICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QnJlYWRjcnVtYihvYmplY3RUeXBlSWQ6IHN0cmluZywgdGl0bGU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuYnJlYWRjcnVtYlNlcnZpY2Uuc2V0U2Vjb25kQnJlYWRjcnVtYih7XG4gICAgICByb3V0ZTogW2Avb2JqZWN0cy8ke29iamVjdFR5cGVJZH1gXSxcbiAgICAgIGNvbnRlbnQ6IHRpdGxlLFxuICAgICAgaHJlZjogYC9vYmplY3RzLyR7b2JqZWN0VHlwZUlkfWAsXG4gICAgfSk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgZm9ybWlvRm9ybVN1bW1hcnk6IGZvcm1pb0Zvcm1TdW1tYXJ5JCB8IGFzeW5jLFxuICAgIGRpc2FibGVJbnB1dDogZGlzYWJsZUlucHV0JCB8IGFzeW5jLFxuICB9IGFzIG9ic1wiXG4+XG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWQgcHItMCBwbC0wXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1yaWdodFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXAgbWItMVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbnM7IGNvbnRleHQ6IHtvYnM6IG9ic31cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIndpZGdldDsgY29udGV4dDoge29iczogb2JzfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3JlYXRlRWRpdE1vZGFsXCI+PC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZWxldGVNb2RhbFwiPjwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjYnV0dG9ucyBsZXQtb2JzPVwib2JzXCI+XG4gIDxidXR0b24gW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlSW5wdXRcIiAoY2xpY2spPVwib3Blbk1vZGFsKClcIiBjZHNCdXR0b249XCJwcmltYXJ5XCIgc2l6ZT1cIm1kXCI+XG4gICAge3sgJ29iamVjdC5lZGl0T2JqZWN0JyB8IHRyYW5zbGF0ZSB9fVxuICAgIDxzdmcgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiIGNkc0ljb249XCJhZGRcIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgPC9idXR0b24+XG5cbiAgPGJ1dHRvbiAoY2xpY2spPVwiZGVsZXRlT2JqZWN0KClcIiBjZHNCdXR0b249XCJkYW5nZXJcIiBzaXplPVwibWRcIiBjbGFzcz1cIm1sLTNcIj5cbiAgICB7eyAnb2JqZWN0LmRlbGV0ZU9iamVjdCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwidHJhc2gtY2FuXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN3aWRnZXQgbGV0LW9icz1cIm9ic1wiPlxuICA8dmFsdGltby1mb3JtLWlvXG4gICAgKm5nSWY9XCJvYnMuZm9ybWlvRm9ybVN1bW1hcnlcIlxuICAgIFtmb3JtXT1cIm9icy5mb3JtaW9Gb3JtU3VtbWFyeVwiXG4gICAgW3JlYWRPbmx5XT1cInRydWVcIlxuICA+PC92YWx0aW1vLWZvcm0taW8+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NyZWF0ZUVkaXRNb2RhbD5cbiAgPGNkcy1tb2RhbFxuICAgIHZhbHRpbW9DZHNNb2RhbFxuICAgICpuZ0lmPVwie1xuICAgICAgc2hvdzogc2hvd01vZGFsJCB8IGFzeW5jLFxuICAgICAgZm9ybVZhbGlkOiBmb3JtVmFsaWQkIHwgYXN5bmMsXG4gICAgICBkaXNhYmxlSW5wdXQ6IGRpc2FibGVJbnB1dCQgfCBhc3luYyxcbiAgICAgIGZvcm1pb0Zvcm1FZGl0OiBmb3JtaW9Gb3JtRWRpdCQgfCBhc3luYyxcbiAgICB9IGFzIG1vZGFsT2JzXCJcbiAgICBbb3Blbl09XCJtb2RhbE9icy5zaG93XCJcbiAgPlxuICAgIDxjZHMtbW9kYWwtaGVhZGVyIFtzaG93Q2xvc2VCdXR0b25dPVwidHJ1ZVwiIChjbG9zZVNlbGVjdCk9XCJjbG9zZU1vZGFsKClcIj5cbiAgICAgIDxoMyBjZHNNb2RhbEhlYWRlckhlYWRpbmc+XG4gICAgICAgIHt7ICdvYmplY3QuZWRpdE9iamVjdCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvaDM+XG4gICAgPC9jZHMtbW9kYWwtaGVhZGVyPlxuICAgIDxzZWN0aW9uIGNkc01vZGFsQ29udGVudD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2RhbENvbnRlbnQ7IGNvbnRleHQ6IHttb2RhbE9iczogbW9kYWxPYnN9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9zZWN0aW9uPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2RhbEZvb3RlcjsgY29udGV4dDoge21vZGFsT2JzOiBtb2RhbE9ic31cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9jZHMtbW9kYWw+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI21vZGFsQ29udGVudCBsZXQtbW9kYWxPYnM9XCJtb2RhbE9ic1wiPlxuICA8dmFsdGltby1mb3JtLWlvXG4gICAgW2Zvcm1dPVwibW9kYWxPYnMuZm9ybWlvRm9ybUVkaXRcIlxuICAgIChjaGFuZ2UpPVwib25Gb3JtaW9DaGFuZ2UoJGV2ZW50KVwiXG4gID48L3ZhbHRpbW8tZm9ybS1pbz5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbW9kYWxGb290ZXIgbGV0LW1vZGFsT2JzPVwibW9kYWxPYnNcIj5cbiAgPGNkcy1tb2RhbC1mb290ZXI+XG4gICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2RzQnV0dG9uPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgW2F0dHIubW9kYWwtcHJpbWFyeS1mb2N1c109XCJ0cnVlXCJcbiAgICAgICAgKGNsaWNrKT1cImNsb3NlTW9kYWwoKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJtb2RhbE9icy5kaXNhYmxlSW5wdXRcIlxuICAgICAgPlxuICAgICAgICB7eyAnb2JqZWN0LmNsb3NlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNkc0J1dHRvbj1cInByaW1hcnlcIlxuICAgICAgICBbYXR0ci5tb2RhbC1wcmltYXJ5LWZvY3VzXT1cInRydWVcIlxuICAgICAgICAoY2xpY2spPVwic2F2ZU9iamVjdCgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm1vZGFsT2JzLmRpc2FibGVJbnB1dCB8fCBtb2RhbE9icy5mb3JtVmFsaWQgPT09IGZhbHNlXCJcbiAgICAgID5cbiAgICAgICAge3sgJ29iamVjdC5zYXZlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvY2RzLW1vZGFsLWZvb3Rlcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZz5cbiAgPGRpdiBjbGFzcz1cImxvYWRpbmctaWNvblwiPjxjZHMtbG9hZGluZz48L2Nkcy1sb2FkaW5nPjwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWxldGVNb2RhbD5cbiAgPHZhbHRpbW8tY29uZmlybWF0aW9uLW1vZGFsXG4gICAgW3Nob3dNb2RhbFN1YmplY3QkXT1cInNob3dEZWxldGVNb2RhbCRcIlxuICAgIFtvdXRwdXRPbkNvbmZpcm1dPVwiZGVsZXRlT2JqZWN0VXJsJCB8IGFzeW5jXCJcbiAgICAoY29uZmlybUV2ZW50KT1cImRlbGV0ZU9iamVjdENvbmZpcm1hdGlvbigpXCJcbiAgICBjb25maXJtQnV0dG9uVGV4dFRyYW5zbGF0aW9uS2V5PVwib2JqZWN0LmRlbGV0ZU9iamVjdFwiXG4gICAgdGl0bGVUcmFuc2xhdGlvbktleT1cIm9iamVjdC5kZWxldGVPYmplY3RcIlxuICAgIGNvbnRlbnRUcmFuc2xhdGlvbktleT1cIm9iamVjdC5kZWxldGVPYmplY3RDb25maXJtYXRpb25cIlxuICA+PC92YWx0aW1vLWNvbmZpcm1hdGlvbi1tb2RhbD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -250,7 +250,7 @@ export class ObjectListComponent {
|
|
|
250
250
|
return filters;
|
|
251
251
|
}
|
|
252
252
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectListComponent, deps: [{ token: i1.ObjectService }, { token: i2.ObjectColumnService }, { token: i3.ObjectManagementService }, { token: i4.TranslateService }, { token: i5.Router }, { token: i5.ActivatedRoute }, { token: i6.ToastrService }, { token: i4.TranslateService }, { token: i7.PageTitleService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
253
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ObjectListComponent, selector: "valtimo-object-list", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n pagination: pagination$ | async,\n disableInput: disableInput$ | async,\n fields: fields$ | async,\n objectConfiguration: objectConfiguration$ | async,\n } as obs\"\n>\n <div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngTemplateOutlet=\"searchFields; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createNewModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button\n (click)=\"openModal()\"\n cdsButton=\"primary\"\n size=\"md\"\n class=\"ml-3\"\n [disabled]=\"obs.disableInput || obs.loading\"\n >\n {{ 'object.createObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [loading]=\"obs.loading\"\n [searchFields]=\"objectSearchFields$ | async\"\n (doSearch)=\"search($event)\"\n [documentDefinitionName]=\"objectManagementId$ | async\"\n [setValuesSubject$]=\"null\"\n ></valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-carbon-list\n [items]=\"obs.objectConfiguration\"\n [fields]=\"obs.fields\"\n [header]=\"false\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"objectConfigurationList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"redirectToDetails($event)\"\n >\n <ng-container carbonToolbarContent>\n <button cdsButton=\"primary\" (click)=\"openModal()\">\n {{ 'object.createObject' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </ng-container>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #createNewModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n formDefinition: formDefinition$ | async,\n disableInput: disableInput$ | async,\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.createObject' | translate }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <valtimo-form-io\n [form]=\"modalObs.formDefinition\"\n (change)=\"onFormioChange($event)\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"addObject()\"\n [disabled]=\"modalObs.disableInput || modalObs.formValid === false\"\n >\n {{ 'object.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-carbon-list [loading]=\"true\"> </valtimo-carbon-list>\n</ng-template>\n", styles: [".loading-icon{display:flex;justify-content:center}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i9.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i9.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i7.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change", "event"] }, { kind: "component", type: i9.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i9.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i9.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i9.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i9.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "component", type: i7.SearchFieldsComponent, selector: "valtimo-search-fields", inputs: ["loading", "searchFields", "documentDefinitionName", "setValuesSubject$", "clearValuesSubject$", "defaultValues", "inputDisabled", "externalSearchField"], outputs: ["doSearch"] }, { kind: "directive", type: i7.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]" }, { kind: "component", type: i7.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
|
|
253
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ObjectListComponent, selector: "valtimo-object-list", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n pagination: pagination$ | async,\n disableInput: disableInput$ | async,\n fields: fields$ | async,\n objectConfiguration: objectConfiguration$ | async,\n } as obs\"\n>\n <div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngTemplateOutlet=\"searchFields; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createNewModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button\n (click)=\"openModal()\"\n cdsButton=\"primary\"\n size=\"md\"\n class=\"ml-3\"\n [disabled]=\"obs.disableInput || obs.loading\"\n >\n {{ 'object.createObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [loading]=\"obs.loading\"\n [searchFields]=\"objectSearchFields$ | async\"\n (doSearch)=\"search($event)\"\n [documentDefinitionName]=\"objectManagementId$ | async\"\n [setValuesSubject$]=\"null\"\n ></valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-carbon-list\n [items]=\"obs.objectConfiguration\"\n [fields]=\"obs.fields\"\n [header]=\"false\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"objectConfigurationList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"redirectToDetails($event)\"\n >\n <ng-container carbonToolbarContent>\n <button cdsButton=\"primary\" (click)=\"openModal()\">\n {{ 'object.createObject' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </ng-container>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #createNewModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n formDefinition: formDefinition$ | async,\n disableInput: disableInput$ | async,\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.createObject' | translate }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <valtimo-form-io\n [form]=\"modalObs.formDefinition\"\n (change)=\"onFormioChange($event)\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"addObject()\"\n [disabled]=\"modalObs.disableInput || modalObs.formValid === false\"\n >\n {{ 'object.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-carbon-list [loading]=\"true\"> </valtimo-carbon-list>\n</ng-template>\n", styles: [".loading-icon{display:flex;justify-content:center}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i9.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i9.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i7.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change", "event"] }, { kind: "component", type: i9.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i9.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i9.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i9.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i9.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "component", type: i7.SearchFieldsComponent, selector: "valtimo-search-fields", inputs: ["loading", "searchFields", "documentDefinitionName", "setValuesSubject$", "clearValuesSubject$", "defaultValues", "inputDisabled", "externalSearchField"], outputs: ["doSearch"] }, { kind: "directive", type: i7.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["enableOverflow"] }, { kind: "component", type: i7.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
|
|
254
254
|
}
|
|
255
255
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectListComponent, decorators: [{
|
|
256
256
|
type: Component,
|
|
@@ -33,7 +33,7 @@ const routes = [
|
|
|
33
33
|
path: 'objects/:objectManagementId/:objectId',
|
|
34
34
|
canActivate: [AuthGuardService],
|
|
35
35
|
component: ObjectDetailContainerComponent,
|
|
36
|
-
data: { title: '
|
|
36
|
+
data: { title: 'object.header', roles: [ROLE_USER] },
|
|
37
37
|
},
|
|
38
38
|
];
|
|
39
39
|
export class ObjectRoutingModule {
|
|
@@ -49,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
49
49
|
declarations: [],
|
|
50
50
|
}]
|
|
51
51
|
}] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9vYmplY3Qvc3JjL2xpYi9vYmplY3Qtcm91dGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ25GLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHdFQUF3RSxDQUFDOzs7QUFFdEgsTUFBTSxNQUFNLEdBQVc7SUFDckI7UUFDRSxJQUFJLEVBQUUsNkJBQTZCO1FBQ25DLFdBQVcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO1FBQy9CLFNBQVMsRUFBRSxtQkFBbUI7UUFDOUIsSUFBSSxFQUFFLEVBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFDO0tBQ3BFO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsdUNBQXVDO1FBQzdDLFdBQVcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO1FBQy9CLFNBQVMsRUFBRSw4QkFBOEI7UUFDekMsSUFBSSxFQUFFLEVBQUMsS0FBSyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBQztLQUNuRDtDQUNGLENBQUM7QUFPRixNQUFNLE9BQU8sbUJBQW1COytHQUFuQixtQkFBbUI7Z0hBQW5CLG1CQUFtQixZQUpwQixZQUFZLDhCQUNaLFlBQVk7Z0hBR1gsbUJBQW1CLFlBSnBCLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUMzQyxZQUFZOzs0RkFHWCxtQkFBbUI7a0JBTC9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3RELE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsWUFBWSxFQUFFLEVBQUU7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlck1vZHVsZSwgUm91dGVzfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0F1dGhHdWFyZFNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL3NlY3VyaXR5JztcbmltcG9ydCB7Uk9MRV9VU0VSfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuaW1wb3J0IHtPYmplY3RMaXN0Q29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvb2JqZWN0LWxpc3Qvb2JqZWN0LWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7T2JqZWN0RGV0YWlsQ29udGFpbmVyQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvb2JqZWN0LWRldGFpbC1jb250YWluZXIvb2JqZWN0LWRldGFpbC1jb250YWluZXIuY29tcG9uZW50JztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAnb2JqZWN0cy86b2JqZWN0TWFuYWdlbWVudElkJyxcbiAgICBjYW5BY3RpdmF0ZTogW0F1dGhHdWFyZFNlcnZpY2VdLFxuICAgIGNvbXBvbmVudDogT2JqZWN0TGlzdENvbXBvbmVudCxcbiAgICBkYXRhOiB7dGl0bGU6ICdPYmplY3RzJywgcm9sZXM6IFtST0xFX1VTRVJdLCBjdXN0b21QYWdlVGl0bGU6IHRydWV9LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ29iamVjdHMvOm9iamVjdE1hbmFnZW1lbnRJZC86b2JqZWN0SWQnLFxuICAgIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkU2VydmljZV0sXG4gICAgY29tcG9uZW50OiBPYmplY3REZXRhaWxDb250YWluZXJDb21wb25lbnQsXG4gICAgZGF0YToge3RpdGxlOiAnb2JqZWN0LmhlYWRlcicsIHJvbGVzOiBbUk9MRV9VU0VSXX0sXG4gIH0sXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RSb3V0aW5nTW9kdWxlIHt9XG4iXX0=
|
|
@@ -3,7 +3,7 @@ import { Injectable, Component, NgModule } from '@angular/core';
|
|
|
3
3
|
import * as i1 from '@angular/common/http';
|
|
4
4
|
import * as i2 from '@valtimo/config';
|
|
5
5
|
import { ROLE_USER } from '@valtimo/config';
|
|
6
|
-
import * as
|
|
6
|
+
import * as i5 from '@angular/router';
|
|
7
7
|
import { RouterModule } from '@angular/router';
|
|
8
8
|
import * as i8 from '@angular/common';
|
|
9
9
|
import { CommonModule, AsyncPipe } from '@angular/common';
|
|
@@ -14,9 +14,9 @@ import * as i2$1 from '@valtimo/object-management';
|
|
|
14
14
|
import * as i4 from '@ngx-translate/core';
|
|
15
15
|
import { TranslateModule } from '@ngx-translate/core';
|
|
16
16
|
import * as i6 from 'ngx-toastr';
|
|
17
|
-
import * as
|
|
17
|
+
import * as i7 from '@valtimo/components';
|
|
18
18
|
import { WidgetModule, ListModule, SpinnerModule, FormIoModule, TooltipIconModule, ConfirmationModalModule, SearchFieldsModule, ValtimoCdsModalDirectiveModule, CarbonListModule } from '@valtimo/components';
|
|
19
|
-
import * as
|
|
19
|
+
import * as i8$1 from 'carbon-components-angular';
|
|
20
20
|
import { ButtonModule, IconModule, LoadingModule, ModalModule, InputModule } from 'carbon-components-angular';
|
|
21
21
|
import { ReactiveFormsModule } from '@angular/forms';
|
|
22
22
|
|
|
@@ -394,13 +394,13 @@ class ObjectListComponent {
|
|
|
394
394
|
});
|
|
395
395
|
return filters;
|
|
396
396
|
}
|
|
397
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectListComponent, deps: [{ token: ObjectService }, { token: ObjectColumnService }, { token: i2$1.ObjectManagementService }, { token: i4.TranslateService }, { token:
|
|
398
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ObjectListComponent, selector: "valtimo-object-list", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n pagination: pagination$ | async,\n disableInput: disableInput$ | async,\n fields: fields$ | async,\n objectConfiguration: objectConfiguration$ | async,\n } as obs\"\n>\n <div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngTemplateOutlet=\"searchFields; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createNewModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button\n (click)=\"openModal()\"\n cdsButton=\"primary\"\n size=\"md\"\n class=\"ml-3\"\n [disabled]=\"obs.disableInput || obs.loading\"\n >\n {{ 'object.createObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [loading]=\"obs.loading\"\n [searchFields]=\"objectSearchFields$ | async\"\n (doSearch)=\"search($event)\"\n [documentDefinitionName]=\"objectManagementId$ | async\"\n [setValuesSubject$]=\"null\"\n ></valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-carbon-list\n [items]=\"obs.objectConfiguration\"\n [fields]=\"obs.fields\"\n [header]=\"false\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"objectConfigurationList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"redirectToDetails($event)\"\n >\n <ng-container carbonToolbarContent>\n <button cdsButton=\"primary\" (click)=\"openModal()\">\n {{ 'object.createObject' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </ng-container>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #createNewModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n formDefinition: formDefinition$ | async,\n disableInput: disableInput$ | async,\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.createObject' | translate }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <valtimo-form-io\n [form]=\"modalObs.formDefinition\"\n (change)=\"onFormioChange($event)\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"addObject()\"\n [disabled]=\"modalObs.disableInput || modalObs.formValid === false\"\n >\n {{ 'object.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-carbon-list [loading]=\"true\"> </valtimo-carbon-list>\n</ng-template>\n", styles: [".loading-icon{display:flex;justify-content:center}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type:
|
|
397
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectListComponent, deps: [{ token: ObjectService }, { token: ObjectColumnService }, { token: i2$1.ObjectManagementService }, { token: i4.TranslateService }, { token: i5.Router }, { token: i5.ActivatedRoute }, { token: i6.ToastrService }, { token: i4.TranslateService }, { token: i7.PageTitleService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
398
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ObjectListComponent, selector: "valtimo-object-list", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n pagination: pagination$ | async,\n disableInput: disableInput$ | async,\n fields: fields$ | async,\n objectConfiguration: objectConfiguration$ | async,\n } as obs\"\n>\n <div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngTemplateOutlet=\"searchFields; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createNewModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button\n (click)=\"openModal()\"\n cdsButton=\"primary\"\n size=\"md\"\n class=\"ml-3\"\n [disabled]=\"obs.disableInput || obs.loading\"\n >\n {{ 'object.createObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [loading]=\"obs.loading\"\n [searchFields]=\"objectSearchFields$ | async\"\n (doSearch)=\"search($event)\"\n [documentDefinitionName]=\"objectManagementId$ | async\"\n [setValuesSubject$]=\"null\"\n ></valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-carbon-list\n [items]=\"obs.objectConfiguration\"\n [fields]=\"obs.fields\"\n [header]=\"false\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"objectConfigurationList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"redirectToDetails($event)\"\n >\n <ng-container carbonToolbarContent>\n <button cdsButton=\"primary\" (click)=\"openModal()\">\n {{ 'object.createObject' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </ng-container>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #createNewModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n formDefinition: formDefinition$ | async,\n disableInput: disableInput$ | async,\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.createObject' | translate }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <valtimo-form-io\n [form]=\"modalObs.formDefinition\"\n (change)=\"onFormioChange($event)\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"addObject()\"\n [disabled]=\"modalObs.disableInput || modalObs.formValid === false\"\n >\n {{ 'object.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-carbon-list [loading]=\"true\"> </valtimo-carbon-list>\n</ng-template>\n", styles: [".loading-icon{display:flex;justify-content:center}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i8$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i8$1.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i7.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change", "event"] }, { kind: "component", type: i8$1.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i8$1.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i8$1.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i8$1.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i8$1.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "component", type: i7.SearchFieldsComponent, selector: "valtimo-search-fields", inputs: ["loading", "searchFields", "documentDefinitionName", "setValuesSubject$", "clearValuesSubject$", "defaultValues", "inputDisabled", "externalSearchField"], outputs: ["doSearch"] }, { kind: "directive", type: i7.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["enableOverflow"] }, { kind: "component", type: i7.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
|
|
399
399
|
}
|
|
400
400
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectListComponent, decorators: [{
|
|
401
401
|
type: Component,
|
|
402
402
|
args: [{ selector: 'valtimo-object-list', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n pagination: pagination$ | async,\n disableInput: disableInput$ | async,\n fields: fields$ | async,\n objectConfiguration: objectConfiguration$ | async,\n } as obs\"\n>\n <div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngTemplateOutlet=\"searchFields; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createNewModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button\n (click)=\"openModal()\"\n cdsButton=\"primary\"\n size=\"md\"\n class=\"ml-3\"\n [disabled]=\"obs.disableInput || obs.loading\"\n >\n {{ 'object.createObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [loading]=\"obs.loading\"\n [searchFields]=\"objectSearchFields$ | async\"\n (doSearch)=\"search($event)\"\n [documentDefinitionName]=\"objectManagementId$ | async\"\n [setValuesSubject$]=\"null\"\n ></valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-carbon-list\n [items]=\"obs.objectConfiguration\"\n [fields]=\"obs.fields\"\n [header]=\"false\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"objectConfigurationList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"redirectToDetails($event)\"\n >\n <ng-container carbonToolbarContent>\n <button cdsButton=\"primary\" (click)=\"openModal()\">\n {{ 'object.createObject' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </ng-container>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #createNewModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n formDefinition: formDefinition$ | async,\n disableInput: disableInput$ | async,\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.createObject' | translate }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <valtimo-form-io\n [form]=\"modalObs.formDefinition\"\n (change)=\"onFormioChange($event)\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"addObject()\"\n [disabled]=\"modalObs.disableInput || modalObs.formValid === false\"\n >\n {{ 'object.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-carbon-list [loading]=\"true\"> </valtimo-carbon-list>\n</ng-template>\n", styles: [".loading-icon{display:flex;justify-content:center}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
|
|
403
|
-
}], ctorParameters: () => [{ type: ObjectService }, { type: ObjectColumnService }, { type: i2$1.ObjectManagementService }, { type: i4.TranslateService }, { type:
|
|
403
|
+
}], ctorParameters: () => [{ type: ObjectService }, { type: ObjectColumnService }, { type: i2$1.ObjectManagementService }, { type: i4.TranslateService }, { type: i5.Router }, { type: i5.ActivatedRoute }, { type: i6.ToastrService }, { type: i4.TranslateService }, { type: i7.PageTitleService }] });
|
|
404
404
|
|
|
405
405
|
/*
|
|
406
406
|
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
@@ -529,14 +529,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
529
529
|
* limitations under the License.
|
|
530
530
|
*/
|
|
531
531
|
class ObjectDetailComponent {
|
|
532
|
-
constructor(objectService,
|
|
532
|
+
constructor(objectService, route, router, translate, toastr, breadcrumbService, objectManagementService) {
|
|
533
533
|
this.objectService = objectService;
|
|
534
|
-
this.objectState = objectState;
|
|
535
534
|
this.route = route;
|
|
536
535
|
this.router = router;
|
|
537
536
|
this.translate = translate;
|
|
538
537
|
this.toastr = toastr;
|
|
539
|
-
this.pageTitleService = pageTitleService;
|
|
540
538
|
this.breadcrumbService = breadcrumbService;
|
|
541
539
|
this.objectManagementService = objectManagementService;
|
|
542
540
|
this.loading$ = new BehaviorSubject(true);
|
|
@@ -557,9 +555,7 @@ class ObjectDetailComponent {
|
|
|
557
555
|
});
|
|
558
556
|
}
|
|
559
557
|
}));
|
|
560
|
-
this.objectId$ = this.route.params.pipe(map(params => params.objectId)
|
|
561
|
-
this.pageTitleService.setCustomPageTitle(objectId);
|
|
562
|
-
}));
|
|
558
|
+
this.objectId$ = this.route.params.pipe(map(params => params.objectId));
|
|
563
559
|
this.formioFormSummary$ = combineLatest([
|
|
564
560
|
this.objectManagementId$,
|
|
565
561
|
this.objectId$,
|
|
@@ -674,13 +670,13 @@ class ObjectDetailComponent {
|
|
|
674
670
|
href: `/objects/${objectTypeId}`,
|
|
675
671
|
});
|
|
676
672
|
}
|
|
677
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectDetailComponent, deps: [{ token: ObjectService }, { token:
|
|
678
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ObjectDetailComponent, selector: "valtimo-object-detail", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n formioFormSummary: formioFormSummary$ | async,\n disableInput: disableInput$ | async,\n } as obs\"\n>\n <div class=\"container-fluid pr-0 pl-0\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"text-right\">\n <div class=\"btn-group mb-1\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <div class=\"col-12\">\n <ng-container *ngTemplateOutlet=\"widget; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createEditModal\"></ng-container>\n <ng-container *ngTemplateOutlet=\"deleteModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button [disabled]=\"obs.disableInput\" (click)=\"openModal()\" cdsButton=\"primary\" size=\"md\">\n {{ 'object.editObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n\n <button (click)=\"deleteObject()\" cdsButton=\"danger\" size=\"md\" class=\"ml-3\">\n {{ 'object.deleteObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #widget let-obs=\"obs\">\n <valtimo-form-io\n *ngIf=\"obs.formioFormSummary\"\n [form]=\"obs.formioFormSummary\"\n [readOnly]=\"true\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #createEditModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n disableInput: disableInput$ | async,\n formioFormEdit: formioFormEdit$ | async,\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.editObject' | translate }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <valtimo-form-io\n [form]=\"modalObs.formioFormEdit\"\n (change)=\"onFormioChange($event)\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"saveObject()\"\n [disabled]=\"modalObs.disableInput || modalObs.formValid === false\"\n >\n {{ 'object.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-icon\"><cds-loading></cds-loading></div>\n</ng-template>\n\n<ng-template #deleteModal>\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteObjectUrl$ | async\"\n (confirmEvent)=\"deleteObjectConfirmation()\"\n confirmButtonTextTranslationKey=\"object.deleteObject\"\n titleTranslationKey=\"object.deleteObject\"\n contentTranslationKey=\"object.deleteObjectConfirmation\"\n ></valtimo-confirmation-modal>\n</ng-template>\n", styles: [".row{margin:0}.object-schema{resize:none}valtimo-widget::ng-deep .card-border.card-full-default{border:none}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type:
|
|
673
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectDetailComponent, deps: [{ token: ObjectService }, { token: i5.ActivatedRoute }, { token: i5.Router }, { token: i4.TranslateService }, { token: i6.ToastrService }, { token: i7.BreadcrumbService }, { token: i2$1.ObjectManagementService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
674
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ObjectDetailComponent, selector: "valtimo-object-detail", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n formioFormSummary: formioFormSummary$ | async,\n disableInput: disableInput$ | async,\n } as obs\"\n>\n <div class=\"container-fluid pr-0 pl-0\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"text-right\">\n <div class=\"btn-group mb-1\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <div class=\"col-12\">\n <ng-container *ngTemplateOutlet=\"widget; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createEditModal\"></ng-container>\n <ng-container *ngTemplateOutlet=\"deleteModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button [disabled]=\"obs.disableInput\" (click)=\"openModal()\" cdsButton=\"primary\" size=\"md\">\n {{ 'object.editObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n\n <button (click)=\"deleteObject()\" cdsButton=\"danger\" size=\"md\" class=\"ml-3\">\n {{ 'object.deleteObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #widget let-obs=\"obs\">\n <valtimo-form-io\n *ngIf=\"obs.formioFormSummary\"\n [form]=\"obs.formioFormSummary\"\n [readOnly]=\"true\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #createEditModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n disableInput: disableInput$ | async,\n formioFormEdit: formioFormEdit$ | async,\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.editObject' | translate }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <valtimo-form-io\n [form]=\"modalObs.formioFormEdit\"\n (change)=\"onFormioChange($event)\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"saveObject()\"\n [disabled]=\"modalObs.disableInput || modalObs.formValid === false\"\n >\n {{ 'object.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-icon\"><cds-loading></cds-loading></div>\n</ng-template>\n\n<ng-template #deleteModal>\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteObjectUrl$ | async\"\n (confirmEvent)=\"deleteObjectConfirmation()\"\n confirmButtonTextTranslationKey=\"object.deleteObject\"\n titleTranslationKey=\"object.deleteObject\"\n contentTranslationKey=\"object.deleteObjectConfirmation\"\n ></valtimo-confirmation-modal>\n</ng-template>\n", styles: [".row{margin:0}.object-schema{resize:none}valtimo-widget::ng-deep .card-border.card-full-default{border:none}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i8$1.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i8$1.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i8$1.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "component", type: i7.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change", "event"] }, { kind: "component", type: i8$1.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i8$1.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i8$1.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i8$1.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i8$1.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "component", type: i7.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "directive", type: i7.ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["enableOverflow"] }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
|
|
679
675
|
}
|
|
680
676
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectDetailComponent, decorators: [{
|
|
681
677
|
type: Component,
|
|
682
678
|
args: [{ selector: 'valtimo-object-detail', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n formioFormSummary: formioFormSummary$ | async,\n disableInput: disableInput$ | async,\n } as obs\"\n>\n <div class=\"container-fluid pr-0 pl-0\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"text-right\">\n <div class=\"btn-group mb-1\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <div class=\"col-12\">\n <ng-container *ngTemplateOutlet=\"widget; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createEditModal\"></ng-container>\n <ng-container *ngTemplateOutlet=\"deleteModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button [disabled]=\"obs.disableInput\" (click)=\"openModal()\" cdsButton=\"primary\" size=\"md\">\n {{ 'object.editObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n\n <button (click)=\"deleteObject()\" cdsButton=\"danger\" size=\"md\" class=\"ml-3\">\n {{ 'object.deleteObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #widget let-obs=\"obs\">\n <valtimo-form-io\n *ngIf=\"obs.formioFormSummary\"\n [form]=\"obs.formioFormSummary\"\n [readOnly]=\"true\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #createEditModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n disableInput: disableInput$ | async,\n formioFormEdit: formioFormEdit$ | async,\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.editObject' | translate }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <valtimo-form-io\n [form]=\"modalObs.formioFormEdit\"\n (change)=\"onFormioChange($event)\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"saveObject()\"\n [disabled]=\"modalObs.disableInput || modalObs.formValid === false\"\n >\n {{ 'object.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-icon\"><cds-loading></cds-loading></div>\n</ng-template>\n\n<ng-template #deleteModal>\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteObjectUrl$ | async\"\n (confirmEvent)=\"deleteObjectConfirmation()\"\n confirmButtonTextTranslationKey=\"object.deleteObject\"\n titleTranslationKey=\"object.deleteObject\"\n contentTranslationKey=\"object.deleteObjectConfirmation\"\n ></valtimo-confirmation-modal>\n</ng-template>\n", styles: [".row{margin:0}.object-schema{resize:none}valtimo-widget::ng-deep .card-border.card-full-default{border:none}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
|
|
683
|
-
}], ctorParameters: () => [{ type: ObjectService }, { type:
|
|
679
|
+
}], ctorParameters: () => [{ type: ObjectService }, { type: i5.ActivatedRoute }, { type: i5.Router }, { type: i4.TranslateService }, { type: i6.ToastrService }, { type: i7.BreadcrumbService }, { type: i2$1.ObjectManagementService }] });
|
|
684
680
|
|
|
685
681
|
/*
|
|
686
682
|
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
@@ -721,13 +717,13 @@ class ObjectDetailContainerComponent {
|
|
|
721
717
|
this.tabService.currentTab = TabEnum.GENERAL;
|
|
722
718
|
this.tabSubscription?.unsubscribe();
|
|
723
719
|
}
|
|
724
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectDetailContainerComponent, deps: [{ token: ObjectStateService }, { token: ObjectService }, { token:
|
|
725
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ObjectDetailContainerComponent, selector: "valtimo-object-detail-container", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabContent\"></ng-container>\n </valtimo-widget>\n </div>\n </div>\n</div>\n\n<ng-template #title>\n <div class=\"bg-light dossier-header\">\n <h3 class=\"dossier-title\">\n {{ 'object.header' | translate }}\n </h3>\n </div>\n</ng-template>\n\n<ng-template #tabs>\n <ul class=\"nav nav-tabs\">\n <li class=\"nav-item\">\n <a\n id=\"general-tab\"\n class=\"nav-link clickable active\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.GENERAL)\"\n >\n {{ 'object.tabs.general' | translate }}\n </a>\n </li>\n </ul>\n</ng-template>\n\n<ng-template #tabContent>\n <div class=\"pl-1 pr-1 pt-3 bg-white position-relative tab-container\">\n <div *ngIf=\"currentTab && currentTab === TabEnum.GENERAL\">\n <valtimo-object-detail></valtimo-object-detail>\n </div>\n </div>\n</ng-template>\n", styles: [".tab-container{min-height:300px}.dossier-header{height:80px;padding-top:21px;padding-left:18px;padding-right:18px;border-bottom:1px solid rgba(0,0,0,.125)}.dossier-title{margin-top:0;margin-bottom:7px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type:
|
|
720
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectDetailContainerComponent, deps: [{ token: ObjectStateService }, { token: ObjectService }, { token: i5.ActivatedRoute }, { token: i2.ConfigService }, { token: TabService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
721
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ObjectDetailContainerComponent, selector: "valtimo-object-detail-container", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabContent\"></ng-container>\n </valtimo-widget>\n </div>\n </div>\n</div>\n\n<ng-template #title>\n <div class=\"bg-light dossier-header\">\n <h3 class=\"dossier-title\">\n {{ 'object.header' | translate }}\n </h3>\n </div>\n</ng-template>\n\n<ng-template #tabs>\n <ul class=\"nav nav-tabs\">\n <li class=\"nav-item\">\n <a\n id=\"general-tab\"\n class=\"nav-link clickable active\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.GENERAL)\"\n >\n {{ 'object.tabs.general' | translate }}\n </a>\n </li>\n </ul>\n</ng-template>\n\n<ng-template #tabContent>\n <div class=\"pl-1 pr-1 pt-3 bg-white position-relative tab-container\">\n <div *ngIf=\"currentTab && currentTab === TabEnum.GENERAL\">\n <valtimo-object-detail></valtimo-object-detail>\n </div>\n </div>\n</ng-template>\n", styles: [".tab-container{min-height:300px}.dossier-header{height:80px;padding-top:21px;padding-left:18px;padding-right:18px;border-bottom:1px solid rgba(0,0,0,.125)}.dossier-title{margin-top:0;margin-bottom:7px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i7.WidgetComponent, selector: "valtimo-widget", inputs: ["type", "name", "icon", "contrast", "divider", "title", "subtitle", "collapseAble", "collapse", "additionalClasses"] }, { kind: "component", type: ObjectDetailComponent, selector: "valtimo-object-detail" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
|
|
726
722
|
}
|
|
727
723
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectDetailContainerComponent, decorators: [{
|
|
728
724
|
type: Component,
|
|
729
725
|
args: [{ selector: 'valtimo-object-detail-container', template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabContent\"></ng-container>\n </valtimo-widget>\n </div>\n </div>\n</div>\n\n<ng-template #title>\n <div class=\"bg-light dossier-header\">\n <h3 class=\"dossier-title\">\n {{ 'object.header' | translate }}\n </h3>\n </div>\n</ng-template>\n\n<ng-template #tabs>\n <ul class=\"nav nav-tabs\">\n <li class=\"nav-item\">\n <a\n id=\"general-tab\"\n class=\"nav-link clickable active\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.GENERAL)\"\n >\n {{ 'object.tabs.general' | translate }}\n </a>\n </li>\n </ul>\n</ng-template>\n\n<ng-template #tabContent>\n <div class=\"pl-1 pr-1 pt-3 bg-white position-relative tab-container\">\n <div *ngIf=\"currentTab && currentTab === TabEnum.GENERAL\">\n <valtimo-object-detail></valtimo-object-detail>\n </div>\n </div>\n</ng-template>\n", styles: [".tab-container{min-height:300px}.dossier-header{height:80px;padding-top:21px;padding-left:18px;padding-right:18px;border-bottom:1px solid rgba(0,0,0,.125)}.dossier-title{margin-top:0;margin-bottom:7px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
|
|
730
|
-
}], ctorParameters: () => [{ type: ObjectStateService }, { type: ObjectService }, { type:
|
|
726
|
+
}], ctorParameters: () => [{ type: ObjectStateService }, { type: ObjectService }, { type: i5.ActivatedRoute }, { type: i2.ConfigService }, { type: TabService }] });
|
|
731
727
|
|
|
732
728
|
/*
|
|
733
729
|
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
@@ -755,12 +751,12 @@ const routes = [
|
|
|
755
751
|
path: 'objects/:objectManagementId/:objectId',
|
|
756
752
|
canActivate: [AuthGuardService],
|
|
757
753
|
component: ObjectDetailContainerComponent,
|
|
758
|
-
data: { title: '
|
|
754
|
+
data: { title: 'object.header', roles: [ROLE_USER] },
|
|
759
755
|
},
|
|
760
756
|
];
|
|
761
757
|
class ObjectRoutingModule {
|
|
762
758
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
763
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: ObjectRoutingModule, imports: [CommonModule,
|
|
759
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: ObjectRoutingModule, imports: [CommonModule, i5.RouterModule], exports: [RouterModule] }); }
|
|
764
760
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectRoutingModule, imports: [CommonModule, RouterModule.forChild(routes), RouterModule] }); }
|
|
765
761
|
}
|
|
766
762
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ObjectRoutingModule, decorators: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valtimo-object.mjs","sources":["../../../../projects/valtimo/object/src/lib/services/object.service.ts","../../../../projects/valtimo/object/src/lib/models/object.model.ts","../../../../projects/valtimo/object/src/lib/services/object-column.service.ts","../../../../projects/valtimo/object/src/lib/components/object-list/object-list.component.ts","../../../../projects/valtimo/object/src/lib/components/object-list/object-list.component.html","../../../../projects/valtimo/object/src/lib/services/tab.enum.ts","../../../../projects/valtimo/object/src/lib/services/object-state.service.ts","../../../../projects/valtimo/object/src/lib/services/tab.service.ts","../../../../projects/valtimo/object/src/lib/components/object-detail-container/tabs/object-detail/object-detail.component.ts","../../../../projects/valtimo/object/src/lib/components/object-detail-container/tabs/object-detail/object-detail.component.html","../../../../projects/valtimo/object/src/lib/components/object-detail-container/object-detail-container.component.ts","../../../../projects/valtimo/object/src/lib/components/object-detail-container/object-detail-container.component.html","../../../../projects/valtimo/object/src/lib/object-routing.module.ts","../../../../projects/valtimo/object/src/lib/object.module.ts","../../../../projects/valtimo/object/src/public-api.ts","../../../../projects/valtimo/object/src/valtimo-object.ts"],"sourcesContent":["/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {HttpClient} from '@angular/common/http';\nimport {ConfigService} from '@valtimo/config';\nimport {ObjectConfiguration} from '../models/object.model';\nimport {FormDefinition} from '@valtimo/form-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ObjectService {\n private readonly valtimoEndpointUri: string;\n\n constructor(\n private http: HttpClient,\n configService: ConfigService\n ) {\n this.valtimoEndpointUri = configService.config.valtimoApi.endpointUri;\n }\n\n public getObjectsByObjectManagementId(\n objectManagementId: string,\n params?: any\n ): Observable<ObjectConfiguration> {\n return this.http.get<ObjectConfiguration>(\n `${this.valtimoEndpointUri}v1/object/management/configuration/${objectManagementId}/object`,\n {params}\n );\n }\n\n public postObjectsByObjectManagementId(\n objectManagementId: string,\n params?: any,\n payload?: any\n ): Observable<ObjectConfiguration> {\n return this.http.post<ObjectConfiguration>(\n `${this.valtimoEndpointUri}v1/object/management/configuration/${objectManagementId}/object`,\n payload,\n {params}\n );\n }\n\n public createObject(params: {objectManagementId: string}, payload: object): Observable<any> {\n return this.http.post<any>(`${this.valtimoEndpointUri}v1/object`, payload, {params});\n }\n\n public updateObject(\n params: {objectManagementId: string; objectId: string},\n payload: object\n ): Observable<any> {\n return this.http.patch<any>(`${this.valtimoEndpointUri}v1/object`, payload, {params});\n }\n\n public deleteObject(params: {objectManagementId: string; objectId: string}): Observable<any> {\n return this.http.delete<any>(`${this.valtimoEndpointUri}v1/object`, {params});\n }\n\n public getPrefilledObjectFromObjectUrl(params: any): Observable<FormDefinition> {\n return this.http.get<FormDefinition>(`${this.valtimoEndpointUri}v1/object/form`, {params});\n }\n\n public removeEmptyStringValuesFromSubmission(submission) {\n return Object.fromEntries(Object.entries(submission).filter(([_, value]) => value !== ''));\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface ObjectConfiguration {\n content: ObjectConfigurationItem[];\n}\n\ninterface ObjectConfigurationItem {\n id: string;\n items: Item[];\n}\n\ninterface Item {\n key: string;\n value: string;\n}\n\nenum FormType {\n SUMMARY = 'SUMMARY',\n EDITFORM = 'EDITFORM',\n}\n\nenum ColumnType {\n DEFAULT = 'DEFAULT',\n CUSTOM = 'CUSTOM',\n}\n\nexport {ObjectConfiguration, ObjectConfigurationItem, Item, FormType, ColumnType};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService} from '@valtimo/config';\nimport {map, Observable} from 'rxjs';\nimport {ObjectManagementService, SearchColumn, SearchListColumn} from '@valtimo/object-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ObjectColumnService {\n constructor(\n private readonly configService: ConfigService,\n private readonly objectManagementService: ObjectManagementService\n ) {}\n\n getObjectColumns(configurationId: string): Observable<Array<SearchColumn>> {\n return this.objectManagementService\n .getSearchList(configurationId)\n .pipe(\n map(\n objectListColumns =>\n objectListColumns &&\n Array.isArray(objectListColumns) &&\n objectListColumns.length > 0 &&\n this.mapObjectListColumnsToSearchColumns(objectListColumns)\n )\n );\n }\n\n private mapObjectListColumnsToSearchColumns(\n searchListColumns: Array<SearchListColumn>\n ): Array<SearchColumn> {\n return searchListColumns.map(searchListColumn => ({\n translationKey: searchListColumn.key,\n sortable: searchListColumn.sortable,\n defaultSort: searchListColumn.defaultSort,\n viewType: this.getDisplayType(searchListColumn.displayType.type),\n propertyName: searchListColumn.path,\n ...(searchListColumn.title && {title: searchListColumn.title}),\n ...(searchListColumn?.displayType?.displayTypeParameters?.enum && {\n enum: searchListColumn.displayType.displayTypeParameters.enum as any,\n }),\n ...(searchListColumn.displayType?.displayTypeParameters?.dateFormat && {\n format: searchListColumn.displayType?.displayTypeParameters?.dateFormat,\n }),\n }));\n }\n\n private getDisplayType(searchListColumnDisplayType: string): string {\n switch (searchListColumnDisplayType) {\n default:\n return searchListColumnDisplayType;\n }\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {\n BehaviorSubject,\n combineLatest,\n distinctUntilChanged,\n filter,\n map,\n Observable,\n of,\n startWith,\n throwError,\n} from 'rxjs';\nimport {catchError, finalize, switchMap, take, tap} from 'rxjs/operators';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {ObjectService} from '../../services/object.service';\nimport {ListField, PageTitleService, Pagination} from '@valtimo/components';\nimport {ColumnType, FormType} from '../../models/object.model';\nimport {ToastrService} from 'ngx-toastr';\nimport {ObjectColumnService} from '../../services/object-column.service';\nimport {ObjectManagementService, SearchColumn} from '@valtimo/object-management';\nimport {SearchField, SearchFieldValues, SearchFilter, SearchFilterRange} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-object-list',\n templateUrl: './object-list.component.html',\n styleUrls: ['./object-list.component.scss'],\n})\nexport class ObjectListComponent {\n readonly loading$ = new BehaviorSubject<boolean>(true);\n readonly submission$ = new BehaviorSubject<any>({});\n readonly formValid$ = new BehaviorSubject<boolean>(false);\n readonly showModal$ = new BehaviorSubject<boolean>(false);\n readonly disableInput$ = new BehaviorSubject<boolean>(false);\n readonly clearForm$ = new BehaviorSubject<boolean>(false);\n readonly columnType$ = new BehaviorSubject<ColumnType>(ColumnType.DEFAULT);\n\n readonly objectManagementId$: Observable<string> = this.route.params.pipe(\n map(params => params.objectManagementId),\n tap(objectManagementId => {\n if (objectManagementId) {\n this.objectManagementService.getObjectById(objectManagementId).subscribe(objectType => {\n if (objectType.title) {\n this.pageTitleService.setCustomPageTitle(objectType.title);\n }\n });\n }\n })\n );\n\n private readonly refreshObjectList$ = new BehaviorSubject<null>(null);\n\n readonly currentPageAndSize$ = new BehaviorSubject<Partial<Pagination>>({\n page: 0,\n size: 10,\n });\n\n readonly pageSizes$ = new BehaviorSubject<Partial<Pagination>>({\n collectionSize: 0,\n });\n\n readonly pagination$: Observable<Pagination> = combineLatest([\n this.currentPageAndSize$,\n this.pageSizes$,\n ]).pipe(\n map(\n ([currentPage, sizes]) =>\n ({...currentPage, ...sizes, page: currentPage.page + 1}) as Pagination\n )\n );\n\n paginationClicked(newPageNumber): void {\n this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {\n this.currentPageAndSize$.next({...currentPage, page: newPageNumber - 1});\n });\n }\n\n paginationSet(newPageSize): void {\n if (newPageSize) {\n this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {\n this.currentPageAndSize$.next({...currentPage, size: newPageSize});\n });\n }\n }\n\n private readonly searchFieldValues$ = new BehaviorSubject<SearchFieldValues>({});\n readonly objectSearchFields$: Observable<Array<SearchField> | null> =\n this.objectManagementId$.pipe(\n distinctUntilChanged(),\n switchMap(objectManagementId =>\n this.objectManagementService.getSearchField(objectManagementId)\n ),\n map(searchFields =>\n searchFields.map(searchField => {\n // @ts-ignore\n searchField.dataType = searchField.dataType.toLowerCase();\n // @ts-ignore\n searchField.fieldType = searchField.fieldType.toLowerCase();\n return searchField;\n })\n )\n );\n\n readonly objectConfiguration$: Observable<Array<any>> = combineLatest([\n this.objectManagementId$,\n this.currentPageAndSize$,\n this.columnType$,\n this.searchFieldValues$,\n this.translateService.stream('key'),\n this.refreshObjectList$,\n ]).pipe(\n switchMap(([objectManagementId, currentPage, columnType, searchFieldValues]) => {\n const handleError = () => {\n this.disableInput();\n return of(null);\n };\n\n if (columnType === ColumnType.CUSTOM) {\n return this.objectService\n .postObjectsByObjectManagementId(\n objectManagementId,\n {\n page: currentPage.page,\n size: currentPage.size,\n },\n Object.keys(searchFieldValues).length > 0\n ? {otherFilters: this.mapSearchValuesToFilters(searchFieldValues)}\n : {}\n )\n .pipe(catchError(() => handleError()));\n }\n\n return this.objectService\n .getObjectsByObjectManagementId(objectManagementId, {\n page: currentPage.page,\n size: currentPage.size,\n })\n .pipe(catchError(() => handleError()));\n }),\n tap(instanceRes => {\n if (instanceRes != null) {\n this.pageSizes$.pipe(take(1)).subscribe(sizes => {\n // @ts-ignore\n this.pageSizes$.next({...sizes, collectionSize: instanceRes.totalElements});\n });\n }\n }),\n map(res =>\n res?.content?.map(record =>\n record?.items?.reduce(\n (obj, item) => Object.assign(obj, {objectId: record.id}, {[item.key]: item.value}),\n {}\n )\n )\n ),\n tap(() => this.loading$.next(false))\n );\n\n readonly formDefinition$: Observable<any> = combineLatest([\n this.objectManagementId$,\n this.clearForm$,\n ]).pipe(\n switchMap(([objectManagementId]) =>\n this.objectService\n .getPrefilledObjectFromObjectUrl({objectManagementId, formType: FormType.EDITFORM})\n .pipe(\n catchError(error => {\n this.handleRetrievingFormError(error);\n this.disableInput();\n return of(null).pipe(startWith(null));\n })\n )\n ),\n map(res => {\n if (res != null) {\n this.enableInput();\n }\n\n return res?.formDefinition;\n }),\n startWith(null),\n finalize(() => this.loading$.next(false))\n );\n\n private readonly columns$: Observable<Array<SearchColumn>> = this.objectManagementId$.pipe(\n switchMap(objectManagementId => this.objectColumnService.getObjectColumns(objectManagementId)),\n map(res => res)\n );\n\n readonly fields$: Observable<Array<ListField>> = combineLatest([\n this.columns$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([columns]) => {\n if (columns?.length > 0) {\n this.columnType$.next(ColumnType.CUSTOM);\n\n return [\n ...columns.map(column => {\n const translationKey = `fieldLabels.${column.translationKey}`;\n const translation = this.translateService.instant(translationKey);\n const validTranslation = translation !== translationKey && translation;\n return {\n key: column.translationKey,\n label: column.title || validTranslation || column.translationKey,\n sortable: column.sortable,\n ...(column.viewType && {viewType: column.viewType || ''}),\n ...(column.enum && {enum: column.enum}),\n ...(column.format && {format: column.format}),\n };\n }),\n ];\n }\n\n this.columnType$.next(ColumnType.DEFAULT);\n return this.setDefaultFields();\n })\n );\n\n constructor(\n private readonly objectService: ObjectService,\n private readonly objectColumnService: ObjectColumnService,\n private readonly objectManagementService: ObjectManagementService,\n private readonly translateService: TranslateService,\n private readonly router: Router,\n private readonly route: ActivatedRoute,\n private readonly toastr: ToastrService,\n private readonly translate: TranslateService,\n private readonly pageTitleService: PageTitleService\n ) {}\n\n openModal(): void {\n this.showModal$.next(true);\n }\n\n closeModal(): void {\n this.showModal$.next(false);\n this.clearForm$.next(true);\n }\n\n onFormioChange(formio): void {\n if (formio.data != null) {\n this.submission$.next(formio.data);\n this.formValid$.next(formio.isValid);\n }\n }\n\n public addObject(): void {\n this.disableInput();\n combineLatest([this.objectManagementId$, this.submission$, this.formValid$])\n .pipe(\n take(1),\n filter(([objectManagementId, submission, formValid]) => formValid),\n switchMap(([objectManagementId, submission]) =>\n this.objectService\n .createObject(\n {objectManagementId},\n {...this.objectService.removeEmptyStringValuesFromSubmission(submission)}\n )\n .pipe(\n take(1),\n catchError((error: any) => {\n this.handleCreateObjectError(error);\n return throwError(error);\n })\n )\n ),\n finalize(() => {\n this.enableInput();\n })\n )\n .subscribe({\n next: () => {\n this.closeModal();\n this.refreshObjectList();\n this.clearForm$.next(true);\n this.toastr.success(this.translate.instant('object.messages.objectCreated'));\n },\n });\n }\n\n redirectToDetails(record): void {\n const objectId = record.objectUrl ? record.objectUrl.split('/').pop() : record.objectId;\n this.objectManagementId$.pipe(take(1)).subscribe(configurationId => {\n this.router.navigate([`/objects/${configurationId}/${objectId}`]);\n });\n }\n\n search(searchFieldValues: SearchFieldValues): void {\n this.searchFieldValues$.next(searchFieldValues || {});\n }\n\n private refreshObjectList(): void {\n this.refreshObjectList$.next(null);\n }\n\n private disableInput(): void {\n this.disableInput$.next(true);\n }\n\n private enableInput(): void {\n this.disableInput$.next(false);\n }\n\n private setDefaultFields() {\n const keys: Array<string> = ['recordIndex', 'objectUrl'];\n return keys.map(key => ({\n label: `${this.translateService.instant(`object.labels.${key}`)}`,\n key,\n sortable: false,\n type: 'string',\n }));\n }\n\n private handleRetrievingFormError(error: any) {\n this.toastr.error(this.translate.instant('object.messages.objectRetrievingFormError'));\n return throwError(error);\n }\n\n private handleCreateObjectError(error: any) {\n this.toastr.error(this.translate.instant('object.messages.objectCreationError'));\n return throwError(error);\n }\n\n private mapSearchValuesToFilters(\n values: SearchFieldValues\n ): Array<SearchFilter | SearchFilterRange> {\n const filters: Array<SearchFilter | SearchFilterRange> = [];\n\n Object.keys(values).forEach(valueKey => {\n const searchValue = values[valueKey] as any;\n if (searchValue.start) {\n filters.push({key: valueKey, rangeFrom: searchValue.start, rangeTo: searchValue.end});\n } else if (Array.isArray(searchValue)) {\n filters.push({key: valueKey, values: searchValue});\n } else {\n // @ts-ignore\n filters.push({key: valueKey, values: [searchValue]});\n }\n });\n\n return filters;\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n pagination: pagination$ | async,\n disableInput: disableInput$ | async,\n fields: fields$ | async,\n objectConfiguration: objectConfiguration$ | async,\n } as obs\"\n>\n <div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngTemplateOutlet=\"searchFields; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createNewModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button\n (click)=\"openModal()\"\n cdsButton=\"primary\"\n size=\"md\"\n class=\"ml-3\"\n [disabled]=\"obs.disableInput || obs.loading\"\n >\n {{ 'object.createObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [loading]=\"obs.loading\"\n [searchFields]=\"objectSearchFields$ | async\"\n (doSearch)=\"search($event)\"\n [documentDefinitionName]=\"objectManagementId$ | async\"\n [setValuesSubject$]=\"null\"\n ></valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-carbon-list\n [items]=\"obs.objectConfiguration\"\n [fields]=\"obs.fields\"\n [header]=\"false\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"objectConfigurationList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"redirectToDetails($event)\"\n >\n <ng-container carbonToolbarContent>\n <button cdsButton=\"primary\" (click)=\"openModal()\">\n {{ 'object.createObject' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </ng-container>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #createNewModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n formDefinition: formDefinition$ | async,\n disableInput: disableInput$ | async,\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.createObject' | translate }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <valtimo-form-io\n [form]=\"modalObs.formDefinition\"\n (change)=\"onFormioChange($event)\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"addObject()\"\n [disabled]=\"modalObs.disableInput || modalObs.formValid === false\"\n >\n {{ 'object.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-carbon-list [loading]=\"true\"> </valtimo-carbon-list>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport enum TabEnum {\n GENERAL = 'general',\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ObjectStateService {\n private readonly _showModal$ = new Subject();\n private readonly _hideModal$ = new Subject();\n private readonly _refresh$ = new BehaviorSubject<null>(null);\n private readonly _modalType$ = new BehaviorSubject<any>('add');\n\n constructor() {}\n\n get showModal$(): Observable<any> {\n return this._showModal$.asObservable();\n }\n\n get hideModal$(): Observable<any> {\n return this._hideModal$.asObservable();\n }\n\n get refresh$(): Observable<any> {\n return this._refresh$.asObservable();\n }\n\n get modalType$(): Observable<any> {\n return this._modalType$.asObservable();\n }\n\n showModal(): void {\n this._showModal$.next(null);\n }\n\n hideModal(): void {\n this._hideModal$.next(null);\n }\n\n refresh(): void {\n this._refresh$.next(null);\n }\n\n setModalType(type: any): void {\n this._modalType$.next(type);\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {TabEnum} from './tab.enum';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TabService {\n private _currentTab$ = new BehaviorSubject<TabEnum>(TabEnum.GENERAL);\n\n public get currentTab$(): Observable<TabEnum> {\n return this._currentTab$.asObservable();\n }\n\n public set currentTab(tab: TabEnum) {\n this._currentTab$.next(tab);\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy} from '@angular/core';\nimport {BehaviorSubject, combineLatest, map, Observable, of, Subject, throwError} from 'rxjs';\nimport {catchError, finalize, switchMap, take, tap} from 'rxjs/operators';\nimport {ObjectService} from '../../../../services/object.service';\nimport {ObjectStateService} from '../../../../services/object-state.service';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {FormType} from '../../../../models/object.model';\nimport {ToastrService} from 'ngx-toastr';\nimport {TranslateService} from '@ngx-translate/core';\nimport {BreadcrumbService, PageTitleService} from '@valtimo/components';\nimport {ObjectManagementService} from '@valtimo/object-management';\n\n@Component({\n selector: 'valtimo-object-detail',\n templateUrl: './object-detail.component.html',\n styleUrls: ['./object-detail.component.scss'],\n})\nexport class ObjectDetailComponent implements OnDestroy {\n readonly loading$ = new BehaviorSubject<boolean>(true);\n readonly submission$ = new BehaviorSubject<any>({});\n readonly formValid$ = new BehaviorSubject<boolean>(false);\n readonly showModal$ = new BehaviorSubject<boolean>(false);\n readonly disableInput$ = new BehaviorSubject<boolean>(false);\n readonly showDeleteModal$ = new Subject<boolean>();\n readonly deleteObjectUrl$ = new BehaviorSubject<string>('');\n\n private readonly refreshObject$ = new BehaviorSubject<null>(null);\n\n readonly objectManagementId$: Observable<string> = this.route.params.pipe(\n map(params => params.objectManagementId),\n tap(objectManagementId => {\n if (!this._settingBreadcrumb && objectManagementId) {\n this._settingBreadcrumb = true;\n this.objectManagementService.getObjectById(objectManagementId).subscribe(objectType => {\n if (objectType.id && objectType.title) {\n this.setBreadcrumb(objectType.id, objectType.title);\n }\n });\n }\n })\n );\n readonly objectId$: Observable<string> = this.route.params.pipe(\n map(params => params.objectId),\n tap(objectId => {\n this.pageTitleService.setCustomPageTitle(objectId);\n })\n );\n\n readonly formioFormSummary$: Observable<any> = combineLatest([\n this.objectManagementId$,\n this.objectId$,\n this.refreshObject$,\n ]).pipe(\n switchMap(([objectManagementId, objectId]) =>\n this.objectService\n .getPrefilledObjectFromObjectUrl({objectManagementId, objectId, formType: FormType.SUMMARY})\n .pipe(catchError(() => this.handleRetrievingFormError()))\n ),\n map(res => res?.formDefinition),\n tap(() => this.loading$.next(false))\n );\n\n readonly formioFormEdit$: Observable<any> = combineLatest([\n this.objectManagementId$,\n this.objectId$,\n this.refreshObject$,\n ]).pipe(\n switchMap(([objectManagementId, objectId]) =>\n this.objectService\n .getPrefilledObjectFromObjectUrl({\n objectManagementId,\n objectId,\n formType: FormType.EDITFORM,\n })\n .pipe(\n catchError(() => {\n this.disableInput();\n return this.handleRetrievingFormError();\n })\n )\n ),\n map(res => res?.formDefinition),\n tap(() => this.loading$.next(false))\n );\n\n private _settingBreadcrumb = false;\n\n constructor(\n private readonly objectService: ObjectService,\n private readonly objectState: ObjectStateService,\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly translate: TranslateService,\n private readonly toastr: ToastrService,\n private readonly pageTitleService: PageTitleService,\n private readonly breadcrumbService: BreadcrumbService,\n private readonly objectManagementService: ObjectManagementService\n ) {}\n\n public ngOnDestroy(): void {\n this.breadcrumbService.clearSecondBreadcrumb();\n }\n\n saveObject(): void {\n this.disableInput();\n\n this.updateObject();\n }\n\n deleteObject(): void {\n this.showDeleteModal$.next(true);\n }\n\n deleteObjectConfirmation(): void {\n this.disableInput();\n combineLatest([this.objectManagementId$, this.objectId$])\n .pipe(take(1))\n .subscribe(([objectManagementId, objectId]) => {\n this.objectService\n .deleteObject({objectManagementId, objectId})\n .pipe(\n take(1),\n catchError((error: any) => this.handleDeleteObjectError(error)),\n finalize(() => {\n this.enableInput();\n })\n )\n .subscribe(() => {\n this.closeModal();\n this.toastr.success(this.translate.instant('object.messages.objectDeleted'));\n this.router.navigate([`/objects/${objectManagementId}`]);\n });\n });\n }\n\n openModal(): void {\n this.showModal$.next(true);\n this.enableInput();\n }\n\n onFormioChange(formio): void {\n if (formio.data != null) {\n this.submission$.next(formio.data);\n this.formValid$.next(formio.isValid);\n }\n }\n\n closeModal(): void {\n this.showModal$.next(false);\n }\n\n private updateObject(): void {\n this.disableInput();\n combineLatest([this.objectManagementId$, this.objectId$, this.submission$, this.formValid$])\n .pipe(take(1))\n .subscribe(([objectManagementId, objectId, submission, formValid]) => {\n if (formValid) {\n submission = this.objectService.removeEmptyStringValuesFromSubmission(submission);\n this.objectService\n .updateObject({objectManagementId, objectId}, {...submission})\n .pipe(\n take(1),\n catchError((error: any) => this.handleUpdateObjectError(error)),\n finalize(() => {\n this.enableInput();\n })\n )\n .subscribe(() => {\n this.closeModal();\n this.refreshObject();\n this.toastr.success(this.translate.instant('object.messages.objectUpdated'));\n });\n }\n });\n }\n\n private refreshObject(): void {\n this.refreshObject$.next(null);\n }\n\n private disableInput(): void {\n this.disableInput$.next(true);\n }\n\n private enableInput(): void {\n this.disableInput$.next(false);\n }\n\n private handleRetrievingFormError() {\n this.toastr.error(this.translate.instant('object.messages.objectRetrievingFormError'));\n this.loading$.next(false);\n return of(null);\n }\n\n private handleUpdateObjectError(error: any) {\n this.closeModal();\n this.toastr.error(this.translate.instant('object.messages.objectUpdateError'));\n return throwError(error);\n }\n\n private handleDeleteObjectError(error: any) {\n this.closeModal();\n this.toastr.error(this.translate.instant('object.messages.objectDeleteError'));\n return throwError(error);\n }\n\n private setBreadcrumb(objectTypeId: string, title: string): void {\n this.breadcrumbService.setSecondBreadcrumb({\n route: [`/objects/${objectTypeId}`],\n content: title,\n href: `/objects/${objectTypeId}`,\n });\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n formioFormSummary: formioFormSummary$ | async,\n disableInput: disableInput$ | async,\n } as obs\"\n>\n <div class=\"container-fluid pr-0 pl-0\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"text-right\">\n <div class=\"btn-group mb-1\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <div class=\"col-12\">\n <ng-container *ngTemplateOutlet=\"widget; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createEditModal\"></ng-container>\n <ng-container *ngTemplateOutlet=\"deleteModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button [disabled]=\"obs.disableInput\" (click)=\"openModal()\" cdsButton=\"primary\" size=\"md\">\n {{ 'object.editObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n\n <button (click)=\"deleteObject()\" cdsButton=\"danger\" size=\"md\" class=\"ml-3\">\n {{ 'object.deleteObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #widget let-obs=\"obs\">\n <valtimo-form-io\n *ngIf=\"obs.formioFormSummary\"\n [form]=\"obs.formioFormSummary\"\n [readOnly]=\"true\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #createEditModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n disableInput: disableInput$ | async,\n formioFormEdit: formioFormEdit$ | async,\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.editObject' | translate }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <valtimo-form-io\n [form]=\"modalObs.formioFormEdit\"\n (change)=\"onFormioChange($event)\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"saveObject()\"\n [disabled]=\"modalObs.disableInput || modalObs.formValid === false\"\n >\n {{ 'object.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-icon\"><cds-loading></cds-loading></div>\n</ng-template>\n\n<ng-template #deleteModal>\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteObjectUrl$ | async\"\n (confirmEvent)=\"deleteObjectConfirmation()\"\n confirmButtonTextTranslationKey=\"object.deleteObject\"\n titleTranslationKey=\"object.deleteObject\"\n contentTranslationKey=\"object.deleteObjectConfirmation\"\n ></valtimo-confirmation-modal>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {map, Observable, Subscription} from 'rxjs';\nimport {ConfigService} from '@valtimo/config';\nimport {ObjectStateService} from '../../services/object-state.service';\nimport {ObjectService} from '../../services/object.service';\nimport {TabEnum} from '../../services/tab.enum';\nimport {TabService} from '../../services/tab.service';\n\n@Component({\n selector: 'valtimo-object-detail-container',\n templateUrl: './object-detail-container.component.html',\n styleUrls: ['./object-detail-container.component.scss'],\n})\nexport class ObjectDetailContainerComponent implements OnInit, OnDestroy {\n public currentTab: TabEnum;\n public caseListColumn!: boolean;\n\n private tabSubscription: Subscription;\n\n readonly TabEnum = TabEnum;\n\n readonly objectManagementId$: Observable<string> = this.route.params.pipe(\n map(params => params.objectManagementId)\n );\n\n constructor(\n private readonly objectState: ObjectStateService,\n private readonly objectService: ObjectService,\n private readonly route: ActivatedRoute,\n private readonly configService: ConfigService,\n private readonly tabService: TabService\n ) {\n this.caseListColumn = this.configService.config.featureToggles?.caseListColumn ?? true;\n }\n\n ngOnInit(): void {\n this.openCurrentTabSubscription();\n }\n\n displayBodyComponent(tab: TabEnum): void {\n this.tabService.currentTab = tab;\n }\n\n openCurrentTabSubscription(): void {\n this.tabSubscription = this.tabService.currentTab$.subscribe(\n value => (this.currentTab = value)\n );\n }\n\n ngOnDestroy(): void {\n this.tabService.currentTab = TabEnum.GENERAL;\n this.tabSubscription?.unsubscribe();\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabContent\"></ng-container>\n </valtimo-widget>\n </div>\n </div>\n</div>\n\n<ng-template #title>\n <div class=\"bg-light dossier-header\">\n <h3 class=\"dossier-title\">\n {{ 'object.header' | translate }}\n </h3>\n </div>\n</ng-template>\n\n<ng-template #tabs>\n <ul class=\"nav nav-tabs\">\n <li class=\"nav-item\">\n <a\n id=\"general-tab\"\n class=\"nav-link clickable active\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.GENERAL)\"\n >\n {{ 'object.tabs.general' | translate }}\n </a>\n </li>\n </ul>\n</ng-template>\n\n<ng-template #tabContent>\n <div class=\"pl-1 pr-1 pt-3 bg-white position-relative tab-container\">\n <div *ngIf=\"currentTab && currentTab === TabEnum.GENERAL\">\n <valtimo-object-detail></valtimo-object-detail>\n </div>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {ROLE_USER} from '@valtimo/config';\nimport {ObjectListComponent} from './components/object-list/object-list.component';\nimport {ObjectDetailContainerComponent} from './components/object-detail-container/object-detail-container.component';\n\nconst routes: Routes = [\n {\n path: 'objects/:objectManagementId',\n canActivate: [AuthGuardService],\n component: ObjectListComponent,\n data: {title: 'Objects', roles: [ROLE_USER], customPageTitle: true},\n },\n {\n path: 'objects/:objectManagementId/:objectId',\n canActivate: [AuthGuardService],\n component: ObjectDetailContainerComponent,\n data: {title: 'Object details', roles: [ROLE_USER], customPageTitle: true},\n },\n];\n\n@NgModule({\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n declarations: [],\n})\nexport class ObjectRoutingModule {}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {ObjectRoutingModule} from './object-routing.module';\nimport {ObjectListComponent} from './components/object-list/object-list.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {AsyncPipe, CommonModule} from '@angular/common';\nimport {\n ConfirmationModalModule,\n FormIoModule,\n ListModule,\n SearchFieldsModule,\n SpinnerModule,\n ValtimoCdsModalDirectiveModule,\n WidgetModule,\n TooltipIconModule,\n CarbonListModule,\n} from '@valtimo/components';\nimport {ObjectDetailContainerComponent} from './components/object-detail-container/object-detail-container.component';\nimport {ObjectDetailComponent} from './components/object-detail-container/tabs/object-detail/object-detail.component';\nimport {\n ButtonModule,\n IconModule,\n InputModule,\n LoadingModule,\n ModalModule,\n} from 'carbon-components-angular';\nimport {ReactiveFormsModule} from '@angular/forms';\n\n@NgModule({\n declarations: [ObjectListComponent, ObjectDetailContainerComponent, ObjectDetailComponent],\n imports: [\n CommonModule,\n ObjectRoutingModule,\n TranslateModule,\n AsyncPipe,\n WidgetModule,\n ListModule,\n ButtonModule,\n IconModule,\n SpinnerModule,\n LoadingModule,\n FormIoModule,\n ModalModule,\n ReactiveFormsModule,\n InputModule,\n TooltipIconModule,\n ConfirmationModalModule,\n SearchFieldsModule,\n ValtimoCdsModalDirectiveModule,\n CarbonListModule,\n ],\n exports: [],\n})\nexport class ObjectModule {}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of object\n */\n\nexport * from './lib/services/object.service';\nexport * from './lib/object.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.ObjectService","i2.ObjectColumnService","i3","i5","i7","i2.ObjectStateService","i6","i1.ObjectStateService","i2.ObjectService","i4","i5.TabService","i8.ObjectDetailComponent","i9"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"valtimo-object.mjs","sources":["../../../../projects/valtimo/object/src/lib/services/object.service.ts","../../../../projects/valtimo/object/src/lib/models/object.model.ts","../../../../projects/valtimo/object/src/lib/services/object-column.service.ts","../../../../projects/valtimo/object/src/lib/components/object-list/object-list.component.ts","../../../../projects/valtimo/object/src/lib/components/object-list/object-list.component.html","../../../../projects/valtimo/object/src/lib/services/tab.enum.ts","../../../../projects/valtimo/object/src/lib/services/object-state.service.ts","../../../../projects/valtimo/object/src/lib/services/tab.service.ts","../../../../projects/valtimo/object/src/lib/components/object-detail-container/tabs/object-detail/object-detail.component.ts","../../../../projects/valtimo/object/src/lib/components/object-detail-container/tabs/object-detail/object-detail.component.html","../../../../projects/valtimo/object/src/lib/components/object-detail-container/object-detail-container.component.ts","../../../../projects/valtimo/object/src/lib/components/object-detail-container/object-detail-container.component.html","../../../../projects/valtimo/object/src/lib/object-routing.module.ts","../../../../projects/valtimo/object/src/lib/object.module.ts","../../../../projects/valtimo/object/src/public-api.ts","../../../../projects/valtimo/object/src/valtimo-object.ts"],"sourcesContent":["/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {Observable} from 'rxjs';\nimport {HttpClient} from '@angular/common/http';\nimport {ConfigService} from '@valtimo/config';\nimport {ObjectConfiguration} from '../models/object.model';\nimport {FormDefinition} from '@valtimo/form-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ObjectService {\n private readonly valtimoEndpointUri: string;\n\n constructor(\n private http: HttpClient,\n configService: ConfigService\n ) {\n this.valtimoEndpointUri = configService.config.valtimoApi.endpointUri;\n }\n\n public getObjectsByObjectManagementId(\n objectManagementId: string,\n params?: any\n ): Observable<ObjectConfiguration> {\n return this.http.get<ObjectConfiguration>(\n `${this.valtimoEndpointUri}v1/object/management/configuration/${objectManagementId}/object`,\n {params}\n );\n }\n\n public postObjectsByObjectManagementId(\n objectManagementId: string,\n params?: any,\n payload?: any\n ): Observable<ObjectConfiguration> {\n return this.http.post<ObjectConfiguration>(\n `${this.valtimoEndpointUri}v1/object/management/configuration/${objectManagementId}/object`,\n payload,\n {params}\n );\n }\n\n public createObject(params: {objectManagementId: string}, payload: object): Observable<any> {\n return this.http.post<any>(`${this.valtimoEndpointUri}v1/object`, payload, {params});\n }\n\n public updateObject(\n params: {objectManagementId: string; objectId: string},\n payload: object\n ): Observable<any> {\n return this.http.patch<any>(`${this.valtimoEndpointUri}v1/object`, payload, {params});\n }\n\n public deleteObject(params: {objectManagementId: string; objectId: string}): Observable<any> {\n return this.http.delete<any>(`${this.valtimoEndpointUri}v1/object`, {params});\n }\n\n public getPrefilledObjectFromObjectUrl(params: any): Observable<FormDefinition> {\n return this.http.get<FormDefinition>(`${this.valtimoEndpointUri}v1/object/form`, {params});\n }\n\n public removeEmptyStringValuesFromSubmission(submission) {\n return Object.fromEntries(Object.entries(submission).filter(([_, value]) => value !== ''));\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface ObjectConfiguration {\n content: ObjectConfigurationItem[];\n}\n\ninterface ObjectConfigurationItem {\n id: string;\n items: Item[];\n}\n\ninterface Item {\n key: string;\n value: string;\n}\n\nenum FormType {\n SUMMARY = 'SUMMARY',\n EDITFORM = 'EDITFORM',\n}\n\nenum ColumnType {\n DEFAULT = 'DEFAULT',\n CUSTOM = 'CUSTOM',\n}\n\nexport {ObjectConfiguration, ObjectConfigurationItem, Item, FormType, ColumnType};\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {ConfigService} from '@valtimo/config';\nimport {map, Observable} from 'rxjs';\nimport {ObjectManagementService, SearchColumn, SearchListColumn} from '@valtimo/object-management';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ObjectColumnService {\n constructor(\n private readonly configService: ConfigService,\n private readonly objectManagementService: ObjectManagementService\n ) {}\n\n getObjectColumns(configurationId: string): Observable<Array<SearchColumn>> {\n return this.objectManagementService\n .getSearchList(configurationId)\n .pipe(\n map(\n objectListColumns =>\n objectListColumns &&\n Array.isArray(objectListColumns) &&\n objectListColumns.length > 0 &&\n this.mapObjectListColumnsToSearchColumns(objectListColumns)\n )\n );\n }\n\n private mapObjectListColumnsToSearchColumns(\n searchListColumns: Array<SearchListColumn>\n ): Array<SearchColumn> {\n return searchListColumns.map(searchListColumn => ({\n translationKey: searchListColumn.key,\n sortable: searchListColumn.sortable,\n defaultSort: searchListColumn.defaultSort,\n viewType: this.getDisplayType(searchListColumn.displayType.type),\n propertyName: searchListColumn.path,\n ...(searchListColumn.title && {title: searchListColumn.title}),\n ...(searchListColumn?.displayType?.displayTypeParameters?.enum && {\n enum: searchListColumn.displayType.displayTypeParameters.enum as any,\n }),\n ...(searchListColumn.displayType?.displayTypeParameters?.dateFormat && {\n format: searchListColumn.displayType?.displayTypeParameters?.dateFormat,\n }),\n }));\n }\n\n private getDisplayType(searchListColumnDisplayType: string): string {\n switch (searchListColumnDisplayType) {\n default:\n return searchListColumnDisplayType;\n }\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component} from '@angular/core';\nimport {\n BehaviorSubject,\n combineLatest,\n distinctUntilChanged,\n filter,\n map,\n Observable,\n of,\n startWith,\n throwError,\n} from 'rxjs';\nimport {catchError, finalize, switchMap, take, tap} from 'rxjs/operators';\nimport {TranslateService} from '@ngx-translate/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {ObjectService} from '../../services/object.service';\nimport {ListField, PageTitleService, Pagination} from '@valtimo/components';\nimport {ColumnType, FormType} from '../../models/object.model';\nimport {ToastrService} from 'ngx-toastr';\nimport {ObjectColumnService} from '../../services/object-column.service';\nimport {ObjectManagementService, SearchColumn} from '@valtimo/object-management';\nimport {SearchField, SearchFieldValues, SearchFilter, SearchFilterRange} from '@valtimo/config';\n\n@Component({\n selector: 'valtimo-object-list',\n templateUrl: './object-list.component.html',\n styleUrls: ['./object-list.component.scss'],\n})\nexport class ObjectListComponent {\n readonly loading$ = new BehaviorSubject<boolean>(true);\n readonly submission$ = new BehaviorSubject<any>({});\n readonly formValid$ = new BehaviorSubject<boolean>(false);\n readonly showModal$ = new BehaviorSubject<boolean>(false);\n readonly disableInput$ = new BehaviorSubject<boolean>(false);\n readonly clearForm$ = new BehaviorSubject<boolean>(false);\n readonly columnType$ = new BehaviorSubject<ColumnType>(ColumnType.DEFAULT);\n\n readonly objectManagementId$: Observable<string> = this.route.params.pipe(\n map(params => params.objectManagementId),\n tap(objectManagementId => {\n if (objectManagementId) {\n this.objectManagementService.getObjectById(objectManagementId).subscribe(objectType => {\n if (objectType.title) {\n this.pageTitleService.setCustomPageTitle(objectType.title);\n }\n });\n }\n })\n );\n\n private readonly refreshObjectList$ = new BehaviorSubject<null>(null);\n\n readonly currentPageAndSize$ = new BehaviorSubject<Partial<Pagination>>({\n page: 0,\n size: 10,\n });\n\n readonly pageSizes$ = new BehaviorSubject<Partial<Pagination>>({\n collectionSize: 0,\n });\n\n readonly pagination$: Observable<Pagination> = combineLatest([\n this.currentPageAndSize$,\n this.pageSizes$,\n ]).pipe(\n map(\n ([currentPage, sizes]) =>\n ({...currentPage, ...sizes, page: currentPage.page + 1}) as Pagination\n )\n );\n\n paginationClicked(newPageNumber): void {\n this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {\n this.currentPageAndSize$.next({...currentPage, page: newPageNumber - 1});\n });\n }\n\n paginationSet(newPageSize): void {\n if (newPageSize) {\n this.currentPageAndSize$.pipe(take(1)).subscribe(currentPage => {\n this.currentPageAndSize$.next({...currentPage, size: newPageSize});\n });\n }\n }\n\n private readonly searchFieldValues$ = new BehaviorSubject<SearchFieldValues>({});\n readonly objectSearchFields$: Observable<Array<SearchField> | null> =\n this.objectManagementId$.pipe(\n distinctUntilChanged(),\n switchMap(objectManagementId =>\n this.objectManagementService.getSearchField(objectManagementId)\n ),\n map(searchFields =>\n searchFields.map(searchField => {\n // @ts-ignore\n searchField.dataType = searchField.dataType.toLowerCase();\n // @ts-ignore\n searchField.fieldType = searchField.fieldType.toLowerCase();\n return searchField;\n })\n )\n );\n\n readonly objectConfiguration$: Observable<Array<any>> = combineLatest([\n this.objectManagementId$,\n this.currentPageAndSize$,\n this.columnType$,\n this.searchFieldValues$,\n this.translateService.stream('key'),\n this.refreshObjectList$,\n ]).pipe(\n switchMap(([objectManagementId, currentPage, columnType, searchFieldValues]) => {\n const handleError = () => {\n this.disableInput();\n return of(null);\n };\n\n if (columnType === ColumnType.CUSTOM) {\n return this.objectService\n .postObjectsByObjectManagementId(\n objectManagementId,\n {\n page: currentPage.page,\n size: currentPage.size,\n },\n Object.keys(searchFieldValues).length > 0\n ? {otherFilters: this.mapSearchValuesToFilters(searchFieldValues)}\n : {}\n )\n .pipe(catchError(() => handleError()));\n }\n\n return this.objectService\n .getObjectsByObjectManagementId(objectManagementId, {\n page: currentPage.page,\n size: currentPage.size,\n })\n .pipe(catchError(() => handleError()));\n }),\n tap(instanceRes => {\n if (instanceRes != null) {\n this.pageSizes$.pipe(take(1)).subscribe(sizes => {\n // @ts-ignore\n this.pageSizes$.next({...sizes, collectionSize: instanceRes.totalElements});\n });\n }\n }),\n map(res =>\n res?.content?.map(record =>\n record?.items?.reduce(\n (obj, item) => Object.assign(obj, {objectId: record.id}, {[item.key]: item.value}),\n {}\n )\n )\n ),\n tap(() => this.loading$.next(false))\n );\n\n readonly formDefinition$: Observable<any> = combineLatest([\n this.objectManagementId$,\n this.clearForm$,\n ]).pipe(\n switchMap(([objectManagementId]) =>\n this.objectService\n .getPrefilledObjectFromObjectUrl({objectManagementId, formType: FormType.EDITFORM})\n .pipe(\n catchError(error => {\n this.handleRetrievingFormError(error);\n this.disableInput();\n return of(null).pipe(startWith(null));\n })\n )\n ),\n map(res => {\n if (res != null) {\n this.enableInput();\n }\n\n return res?.formDefinition;\n }),\n startWith(null),\n finalize(() => this.loading$.next(false))\n );\n\n private readonly columns$: Observable<Array<SearchColumn>> = this.objectManagementId$.pipe(\n switchMap(objectManagementId => this.objectColumnService.getObjectColumns(objectManagementId)),\n map(res => res)\n );\n\n readonly fields$: Observable<Array<ListField>> = combineLatest([\n this.columns$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([columns]) => {\n if (columns?.length > 0) {\n this.columnType$.next(ColumnType.CUSTOM);\n\n return [\n ...columns.map(column => {\n const translationKey = `fieldLabels.${column.translationKey}`;\n const translation = this.translateService.instant(translationKey);\n const validTranslation = translation !== translationKey && translation;\n return {\n key: column.translationKey,\n label: column.title || validTranslation || column.translationKey,\n sortable: column.sortable,\n ...(column.viewType && {viewType: column.viewType || ''}),\n ...(column.enum && {enum: column.enum}),\n ...(column.format && {format: column.format}),\n };\n }),\n ];\n }\n\n this.columnType$.next(ColumnType.DEFAULT);\n return this.setDefaultFields();\n })\n );\n\n constructor(\n private readonly objectService: ObjectService,\n private readonly objectColumnService: ObjectColumnService,\n private readonly objectManagementService: ObjectManagementService,\n private readonly translateService: TranslateService,\n private readonly router: Router,\n private readonly route: ActivatedRoute,\n private readonly toastr: ToastrService,\n private readonly translate: TranslateService,\n private readonly pageTitleService: PageTitleService\n ) {}\n\n openModal(): void {\n this.showModal$.next(true);\n }\n\n closeModal(): void {\n this.showModal$.next(false);\n this.clearForm$.next(true);\n }\n\n onFormioChange(formio): void {\n if (formio.data != null) {\n this.submission$.next(formio.data);\n this.formValid$.next(formio.isValid);\n }\n }\n\n public addObject(): void {\n this.disableInput();\n combineLatest([this.objectManagementId$, this.submission$, this.formValid$])\n .pipe(\n take(1),\n filter(([objectManagementId, submission, formValid]) => formValid),\n switchMap(([objectManagementId, submission]) =>\n this.objectService\n .createObject(\n {objectManagementId},\n {...this.objectService.removeEmptyStringValuesFromSubmission(submission)}\n )\n .pipe(\n take(1),\n catchError((error: any) => {\n this.handleCreateObjectError(error);\n return throwError(error);\n })\n )\n ),\n finalize(() => {\n this.enableInput();\n })\n )\n .subscribe({\n next: () => {\n this.closeModal();\n this.refreshObjectList();\n this.clearForm$.next(true);\n this.toastr.success(this.translate.instant('object.messages.objectCreated'));\n },\n });\n }\n\n redirectToDetails(record): void {\n const objectId = record.objectUrl ? record.objectUrl.split('/').pop() : record.objectId;\n this.objectManagementId$.pipe(take(1)).subscribe(configurationId => {\n this.router.navigate([`/objects/${configurationId}/${objectId}`]);\n });\n }\n\n search(searchFieldValues: SearchFieldValues): void {\n this.searchFieldValues$.next(searchFieldValues || {});\n }\n\n private refreshObjectList(): void {\n this.refreshObjectList$.next(null);\n }\n\n private disableInput(): void {\n this.disableInput$.next(true);\n }\n\n private enableInput(): void {\n this.disableInput$.next(false);\n }\n\n private setDefaultFields() {\n const keys: Array<string> = ['recordIndex', 'objectUrl'];\n return keys.map(key => ({\n label: `${this.translateService.instant(`object.labels.${key}`)}`,\n key,\n sortable: false,\n type: 'string',\n }));\n }\n\n private handleRetrievingFormError(error: any) {\n this.toastr.error(this.translate.instant('object.messages.objectRetrievingFormError'));\n return throwError(error);\n }\n\n private handleCreateObjectError(error: any) {\n this.toastr.error(this.translate.instant('object.messages.objectCreationError'));\n return throwError(error);\n }\n\n private mapSearchValuesToFilters(\n values: SearchFieldValues\n ): Array<SearchFilter | SearchFilterRange> {\n const filters: Array<SearchFilter | SearchFilterRange> = [];\n\n Object.keys(values).forEach(valueKey => {\n const searchValue = values[valueKey] as any;\n if (searchValue.start) {\n filters.push({key: valueKey, rangeFrom: searchValue.start, rangeTo: searchValue.end});\n } else if (Array.isArray(searchValue)) {\n filters.push({key: valueKey, values: searchValue});\n } else {\n // @ts-ignore\n filters.push({key: valueKey, values: [searchValue]});\n }\n });\n\n return filters;\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n loading: loading$ | async,\n pagination: pagination$ | async,\n disableInput: disableInput$ | async,\n fields: fields$ | async,\n objectConfiguration: objectConfiguration$ | async,\n } as obs\"\n>\n <div class=\"main-content pt-0\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <ng-container *ngIf=\"obs.loading === false; else loading\">\n <ng-container *ngTemplateOutlet=\"searchFields; context: {obs: obs}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"list; context: {obs: obs}\"></ng-container>\n </ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createNewModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button\n (click)=\"openModal()\"\n cdsButton=\"primary\"\n size=\"md\"\n class=\"ml-3\"\n [disabled]=\"obs.disableInput || obs.loading\"\n >\n {{ 'object.createObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #searchFields let-obs=\"obs\">\n <div class=\"mb-3\">\n <valtimo-search-fields\n [loading]=\"obs.loading\"\n [searchFields]=\"objectSearchFields$ | async\"\n (doSearch)=\"search($event)\"\n [documentDefinitionName]=\"objectManagementId$ | async\"\n [setValuesSubject$]=\"null\"\n ></valtimo-search-fields>\n </div>\n</ng-template>\n\n<ng-template #list let-obs=\"obs\">\n <valtimo-carbon-list\n [items]=\"obs.objectConfiguration\"\n [fields]=\"obs.fields\"\n [header]=\"false\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"objectConfigurationList\"\n (paginationClicked)=\"paginationClicked($event)\"\n (paginationSet)=\"paginationSet($event)\"\n (rowClicked)=\"redirectToDetails($event)\"\n >\n <ng-container carbonToolbarContent>\n <button cdsButton=\"primary\" (click)=\"openModal()\">\n {{ 'object.createObject' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n </ng-container>\n </valtimo-carbon-list>\n</ng-template>\n\n<ng-template #createNewModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n formDefinition: formDefinition$ | async,\n disableInput: disableInput$ | async,\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.createObject' | translate }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <valtimo-form-io\n [form]=\"modalObs.formDefinition\"\n (change)=\"onFormioChange($event)\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"addObject()\"\n [disabled]=\"modalObs.disableInput || modalObs.formValid === false\"\n >\n {{ 'object.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <valtimo-carbon-list [loading]=\"true\"> </valtimo-carbon-list>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport enum TabEnum {\n GENERAL = 'general',\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable, Subject} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ObjectStateService {\n private readonly _showModal$ = new Subject();\n private readonly _hideModal$ = new Subject();\n private readonly _refresh$ = new BehaviorSubject<null>(null);\n private readonly _modalType$ = new BehaviorSubject<any>('add');\n\n constructor() {}\n\n get showModal$(): Observable<any> {\n return this._showModal$.asObservable();\n }\n\n get hideModal$(): Observable<any> {\n return this._hideModal$.asObservable();\n }\n\n get refresh$(): Observable<any> {\n return this._refresh$.asObservable();\n }\n\n get modalType$(): Observable<any> {\n return this._modalType$.asObservable();\n }\n\n showModal(): void {\n this._showModal$.next(null);\n }\n\n hideModal(): void {\n this._hideModal$.next(null);\n }\n\n refresh(): void {\n this._refresh$.next(null);\n }\n\n setModalType(type: any): void {\n this._modalType$.next(type);\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {TabEnum} from './tab.enum';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TabService {\n private _currentTab$ = new BehaviorSubject<TabEnum>(TabEnum.GENERAL);\n\n public get currentTab$(): Observable<TabEnum> {\n return this._currentTab$.asObservable();\n }\n\n public set currentTab(tab: TabEnum) {\n this._currentTab$.next(tab);\n }\n}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {Component, OnDestroy} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {TranslateService} from '@ngx-translate/core';\nimport {BreadcrumbService} from '@valtimo/components';\nimport {ObjectManagementService} from '@valtimo/object-management';\nimport {ToastrService} from 'ngx-toastr';\nimport {BehaviorSubject, combineLatest, map, Observable, of, Subject, throwError} from 'rxjs';\nimport {catchError, finalize, switchMap, take, tap} from 'rxjs/operators';\nimport {FormType} from '../../../../models/object.model';\nimport {ObjectService} from '../../../../services/object.service';\n\n@Component({\n selector: 'valtimo-object-detail',\n templateUrl: './object-detail.component.html',\n styleUrls: ['./object-detail.component.scss'],\n})\nexport class ObjectDetailComponent implements OnDestroy {\n readonly loading$ = new BehaviorSubject<boolean>(true);\n readonly submission$ = new BehaviorSubject<any>({});\n readonly formValid$ = new BehaviorSubject<boolean>(false);\n readonly showModal$ = new BehaviorSubject<boolean>(false);\n readonly disableInput$ = new BehaviorSubject<boolean>(false);\n readonly showDeleteModal$ = new Subject<boolean>();\n readonly deleteObjectUrl$ = new BehaviorSubject<string>('');\n\n private readonly refreshObject$ = new BehaviorSubject<null>(null);\n\n readonly objectManagementId$: Observable<string> = this.route.params.pipe(\n map(params => params.objectManagementId),\n tap(objectManagementId => {\n if (!this._settingBreadcrumb && objectManagementId) {\n this._settingBreadcrumb = true;\n this.objectManagementService.getObjectById(objectManagementId).subscribe(objectType => {\n if (objectType.id && objectType.title) {\n this.setBreadcrumb(objectType.id, objectType.title);\n }\n });\n }\n })\n );\n readonly objectId$: Observable<string> = this.route.params.pipe(map(params => params.objectId));\n\n readonly formioFormSummary$: Observable<any> = combineLatest([\n this.objectManagementId$,\n this.objectId$,\n this.refreshObject$,\n ]).pipe(\n switchMap(([objectManagementId, objectId]) =>\n this.objectService\n .getPrefilledObjectFromObjectUrl({objectManagementId, objectId, formType: FormType.SUMMARY})\n .pipe(catchError(() => this.handleRetrievingFormError()))\n ),\n map(res => res?.formDefinition),\n tap(() => this.loading$.next(false))\n );\n\n readonly formioFormEdit$: Observable<any> = combineLatest([\n this.objectManagementId$,\n this.objectId$,\n this.refreshObject$,\n ]).pipe(\n switchMap(([objectManagementId, objectId]) =>\n this.objectService\n .getPrefilledObjectFromObjectUrl({\n objectManagementId,\n objectId,\n formType: FormType.EDITFORM,\n })\n .pipe(\n catchError(() => {\n this.disableInput();\n return this.handleRetrievingFormError();\n })\n )\n ),\n map(res => res?.formDefinition),\n tap(() => this.loading$.next(false))\n );\n\n private _settingBreadcrumb = false;\n\n constructor(\n private readonly objectService: ObjectService,\n private readonly route: ActivatedRoute,\n private readonly router: Router,\n private readonly translate: TranslateService,\n private readonly toastr: ToastrService,\n private readonly breadcrumbService: BreadcrumbService,\n private readonly objectManagementService: ObjectManagementService\n ) {}\n\n public ngOnDestroy(): void {\n this.breadcrumbService.clearSecondBreadcrumb();\n }\n\n saveObject(): void {\n this.disableInput();\n\n this.updateObject();\n }\n\n deleteObject(): void {\n this.showDeleteModal$.next(true);\n }\n\n deleteObjectConfirmation(): void {\n this.disableInput();\n combineLatest([this.objectManagementId$, this.objectId$])\n .pipe(take(1))\n .subscribe(([objectManagementId, objectId]) => {\n this.objectService\n .deleteObject({objectManagementId, objectId})\n .pipe(\n take(1),\n catchError((error: any) => this.handleDeleteObjectError(error)),\n finalize(() => {\n this.enableInput();\n })\n )\n .subscribe(() => {\n this.closeModal();\n this.toastr.success(this.translate.instant('object.messages.objectDeleted'));\n this.router.navigate([`/objects/${objectManagementId}`]);\n });\n });\n }\n\n openModal(): void {\n this.showModal$.next(true);\n this.enableInput();\n }\n\n onFormioChange(formio): void {\n if (formio.data != null) {\n this.submission$.next(formio.data);\n this.formValid$.next(formio.isValid);\n }\n }\n\n closeModal(): void {\n this.showModal$.next(false);\n }\n\n private updateObject(): void {\n this.disableInput();\n combineLatest([this.objectManagementId$, this.objectId$, this.submission$, this.formValid$])\n .pipe(take(1))\n .subscribe(([objectManagementId, objectId, submission, formValid]) => {\n if (formValid) {\n submission = this.objectService.removeEmptyStringValuesFromSubmission(submission);\n this.objectService\n .updateObject({objectManagementId, objectId}, {...submission})\n .pipe(\n take(1),\n catchError((error: any) => this.handleUpdateObjectError(error)),\n finalize(() => {\n this.enableInput();\n })\n )\n .subscribe(() => {\n this.closeModal();\n this.refreshObject();\n this.toastr.success(this.translate.instant('object.messages.objectUpdated'));\n });\n }\n });\n }\n\n private refreshObject(): void {\n this.refreshObject$.next(null);\n }\n\n private disableInput(): void {\n this.disableInput$.next(true);\n }\n\n private enableInput(): void {\n this.disableInput$.next(false);\n }\n\n private handleRetrievingFormError() {\n this.toastr.error(this.translate.instant('object.messages.objectRetrievingFormError'));\n this.loading$.next(false);\n return of(null);\n }\n\n private handleUpdateObjectError(error: any) {\n this.closeModal();\n this.toastr.error(this.translate.instant('object.messages.objectUpdateError'));\n return throwError(error);\n }\n\n private handleDeleteObjectError(error: any) {\n this.closeModal();\n this.toastr.error(this.translate.instant('object.messages.objectDeleteError'));\n return throwError(error);\n }\n\n private setBreadcrumb(objectTypeId: string, title: string): void {\n this.breadcrumbService.setSecondBreadcrumb({\n route: [`/objects/${objectTypeId}`],\n content: title,\n href: `/objects/${objectTypeId}`,\n });\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n<ng-container\n *ngIf=\"{\n formioFormSummary: formioFormSummary$ | async,\n disableInput: disableInput$ | async,\n } as obs\"\n>\n <div class=\"container-fluid pr-0 pl-0\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"text-right\">\n <div class=\"btn-group mb-1\">\n <ng-container *ngTemplateOutlet=\"buttons; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <div class=\"col-12\">\n <ng-container *ngTemplateOutlet=\"widget; context: {obs: obs}\"></ng-container>\n </div>\n </div>\n </div>\n <ng-container *ngTemplateOutlet=\"createEditModal\"></ng-container>\n <ng-container *ngTemplateOutlet=\"deleteModal\"></ng-container>\n</ng-container>\n\n<ng-template #buttons let-obs=\"obs\">\n <button [disabled]=\"obs.disableInput\" (click)=\"openModal()\" cdsButton=\"primary\" size=\"md\">\n {{ 'object.editObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n\n <button (click)=\"deleteObject()\" cdsButton=\"danger\" size=\"md\" class=\"ml-3\">\n {{ 'object.deleteObject' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n</ng-template>\n\n<ng-template #widget let-obs=\"obs\">\n <valtimo-form-io\n *ngIf=\"obs.formioFormSummary\"\n [form]=\"obs.formioFormSummary\"\n [readOnly]=\"true\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #createEditModal>\n <cds-modal\n valtimoCdsModal\n *ngIf=\"{\n show: showModal$ | async,\n formValid: formValid$ | async,\n disableInput: disableInput$ | async,\n formioFormEdit: formioFormEdit$ | async,\n } as modalObs\"\n [open]=\"modalObs.show\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'object.editObject' | translate }}\n </h3>\n </cds-modal-header>\n <section cdsModalContent>\n <ng-container *ngTemplateOutlet=\"modalContent; context: {modalObs: modalObs}\"></ng-container>\n </section>\n <ng-container *ngTemplateOutlet=\"modalFooter; context: {modalObs: modalObs}\"></ng-container>\n </cds-modal>\n</ng-template>\n\n<ng-template #modalContent let-modalObs=\"modalObs\">\n <valtimo-form-io\n [form]=\"modalObs.formioFormEdit\"\n (change)=\"onFormioChange($event)\"\n ></valtimo-form-io>\n</ng-template>\n\n<ng-template #modalFooter let-modalObs=\"modalObs\">\n <cds-modal-footer>\n <ng-container>\n <button\n cdsButton=\"secondary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"closeModal()\"\n [disabled]=\"modalObs.disableInput\"\n >\n {{ 'object.close' | translate }}\n </button>\n <button\n cdsButton=\"primary\"\n [attr.modal-primary-focus]=\"true\"\n (click)=\"saveObject()\"\n [disabled]=\"modalObs.disableInput || modalObs.formValid === false\"\n >\n {{ 'object.save' | translate }}\n </button>\n </ng-container>\n </cds-modal-footer>\n</ng-template>\n\n<ng-template #loading>\n <div class=\"loading-icon\"><cds-loading></cds-loading></div>\n</ng-template>\n\n<ng-template #deleteModal>\n <valtimo-confirmation-modal\n [showModalSubject$]=\"showDeleteModal$\"\n [outputOnConfirm]=\"deleteObjectUrl$ | async\"\n (confirmEvent)=\"deleteObjectConfirmation()\"\n confirmButtonTextTranslationKey=\"object.deleteObject\"\n titleTranslationKey=\"object.deleteObject\"\n contentTranslationKey=\"object.deleteObjectConfirmation\"\n ></valtimo-confirmation-modal>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy, OnInit} from '@angular/core';\nimport {ActivatedRoute} from '@angular/router';\nimport {map, Observable, Subscription} from 'rxjs';\nimport {ConfigService} from '@valtimo/config';\nimport {ObjectStateService} from '../../services/object-state.service';\nimport {ObjectService} from '../../services/object.service';\nimport {TabEnum} from '../../services/tab.enum';\nimport {TabService} from '../../services/tab.service';\n\n@Component({\n selector: 'valtimo-object-detail-container',\n templateUrl: './object-detail-container.component.html',\n styleUrls: ['./object-detail-container.component.scss'],\n})\nexport class ObjectDetailContainerComponent implements OnInit, OnDestroy {\n public currentTab: TabEnum;\n public caseListColumn!: boolean;\n\n private tabSubscription: Subscription;\n\n readonly TabEnum = TabEnum;\n\n readonly objectManagementId$: Observable<string> = this.route.params.pipe(\n map(params => params.objectManagementId)\n );\n\n constructor(\n private readonly objectState: ObjectStateService,\n private readonly objectService: ObjectService,\n private readonly route: ActivatedRoute,\n private readonly configService: ConfigService,\n private readonly tabService: TabService\n ) {\n this.caseListColumn = this.configService.config.featureToggles?.caseListColumn ?? true;\n }\n\n ngOnInit(): void {\n this.openCurrentTabSubscription();\n }\n\n displayBodyComponent(tab: TabEnum): void {\n this.tabService.currentTab = tab;\n }\n\n openCurrentTabSubscription(): void {\n this.tabSubscription = this.tabService.currentTab$.subscribe(\n value => (this.currentTab = value)\n );\n }\n\n ngOnDestroy(): void {\n this.tabService.currentTab = TabEnum.GENERAL;\n this.tabSubscription?.unsubscribe();\n }\n}\n","<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<div class=\"main-content\">\n <div class=\"container-fluid\">\n <div class=\"col-12 px-0 mb-5\">\n <valtimo-widget>\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabs\"></ng-container>\n <ng-container *ngTemplateOutlet=\"tabContent\"></ng-container>\n </valtimo-widget>\n </div>\n </div>\n</div>\n\n<ng-template #title>\n <div class=\"bg-light dossier-header\">\n <h3 class=\"dossier-title\">\n {{ 'object.header' | translate }}\n </h3>\n </div>\n</ng-template>\n\n<ng-template #tabs>\n <ul class=\"nav nav-tabs\">\n <li class=\"nav-item\">\n <a\n id=\"general-tab\"\n class=\"nav-link clickable active\"\n data-toggle=\"tab\"\n (click)=\"displayBodyComponent(TabEnum.GENERAL)\"\n >\n {{ 'object.tabs.general' | translate }}\n </a>\n </li>\n </ul>\n</ng-template>\n\n<ng-template #tabContent>\n <div class=\"pl-1 pr-1 pt-3 bg-white position-relative tab-container\">\n <div *ngIf=\"currentTab && currentTab === TabEnum.GENERAL\">\n <valtimo-object-detail></valtimo-object-detail>\n </div>\n </div>\n</ng-template>\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {ROLE_USER} from '@valtimo/config';\nimport {ObjectListComponent} from './components/object-list/object-list.component';\nimport {ObjectDetailContainerComponent} from './components/object-detail-container/object-detail-container.component';\n\nconst routes: Routes = [\n {\n path: 'objects/:objectManagementId',\n canActivate: [AuthGuardService],\n component: ObjectListComponent,\n data: {title: 'Objects', roles: [ROLE_USER], customPageTitle: true},\n },\n {\n path: 'objects/:objectManagementId/:objectId',\n canActivate: [AuthGuardService],\n component: ObjectDetailContainerComponent,\n data: {title: 'object.header', roles: [ROLE_USER]},\n },\n];\n\n@NgModule({\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n declarations: [],\n})\nexport class ObjectRoutingModule {}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {ObjectRoutingModule} from './object-routing.module';\nimport {ObjectListComponent} from './components/object-list/object-list.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {AsyncPipe, CommonModule} from '@angular/common';\nimport {\n ConfirmationModalModule,\n FormIoModule,\n ListModule,\n SearchFieldsModule,\n SpinnerModule,\n ValtimoCdsModalDirectiveModule,\n WidgetModule,\n TooltipIconModule,\n CarbonListModule,\n} from '@valtimo/components';\nimport {ObjectDetailContainerComponent} from './components/object-detail-container/object-detail-container.component';\nimport {ObjectDetailComponent} from './components/object-detail-container/tabs/object-detail/object-detail.component';\nimport {\n ButtonModule,\n IconModule,\n InputModule,\n LoadingModule,\n ModalModule,\n} from 'carbon-components-angular';\nimport {ReactiveFormsModule} from '@angular/forms';\n\n@NgModule({\n declarations: [ObjectListComponent, ObjectDetailContainerComponent, ObjectDetailComponent],\n imports: [\n CommonModule,\n ObjectRoutingModule,\n TranslateModule,\n AsyncPipe,\n WidgetModule,\n ListModule,\n ButtonModule,\n IconModule,\n SpinnerModule,\n LoadingModule,\n FormIoModule,\n ModalModule,\n ReactiveFormsModule,\n InputModule,\n TooltipIconModule,\n ConfirmationModalModule,\n SearchFieldsModule,\n ValtimoCdsModalDirectiveModule,\n CarbonListModule,\n ],\n exports: [],\n})\nexport class ObjectModule {}\n","/*\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of object\n */\n\nexport * from './lib/services/object.service';\nexport * from './lib/object.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i1.ObjectService","i2.ObjectColumnService","i3","i9","i4","i5","i6","i7","i8","i1.ObjectStateService","i2.ObjectService","i5.TabService","i8.ObjectDetailComponent"],"mappings":"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"}
|
package/lib/components/object-detail-container/tabs/object-detail/object-detail.component.d.ts
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
import { OnDestroy } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, Observable, Subject } from 'rxjs';
|
|
3
|
-
import { ObjectService } from '../../../../services/object.service';
|
|
4
|
-
import { ObjectStateService } from '../../../../services/object-state.service';
|
|
5
2
|
import { ActivatedRoute, Router } from '@angular/router';
|
|
6
|
-
import { ToastrService } from 'ngx-toastr';
|
|
7
3
|
import { TranslateService } from '@ngx-translate/core';
|
|
8
|
-
import { BreadcrumbService
|
|
4
|
+
import { BreadcrumbService } from '@valtimo/components';
|
|
9
5
|
import { ObjectManagementService } from '@valtimo/object-management';
|
|
6
|
+
import { ToastrService } from 'ngx-toastr';
|
|
7
|
+
import { BehaviorSubject, Observable, Subject } from 'rxjs';
|
|
8
|
+
import { ObjectService } from '../../../../services/object.service';
|
|
10
9
|
import * as i0 from "@angular/core";
|
|
11
10
|
export declare class ObjectDetailComponent implements OnDestroy {
|
|
12
11
|
private readonly objectService;
|
|
13
|
-
private readonly objectState;
|
|
14
12
|
private readonly route;
|
|
15
13
|
private readonly router;
|
|
16
14
|
private readonly translate;
|
|
17
15
|
private readonly toastr;
|
|
18
|
-
private readonly pageTitleService;
|
|
19
16
|
private readonly breadcrumbService;
|
|
20
17
|
private readonly objectManagementService;
|
|
21
18
|
readonly loading$: BehaviorSubject<boolean>;
|
|
@@ -31,7 +28,7 @@ export declare class ObjectDetailComponent implements OnDestroy {
|
|
|
31
28
|
readonly formioFormSummary$: Observable<any>;
|
|
32
29
|
readonly formioFormEdit$: Observable<any>;
|
|
33
30
|
private _settingBreadcrumb;
|
|
34
|
-
constructor(objectService: ObjectService,
|
|
31
|
+
constructor(objectService: ObjectService, route: ActivatedRoute, router: Router, translate: TranslateService, toastr: ToastrService, breadcrumbService: BreadcrumbService, objectManagementService: ObjectManagementService);
|
|
35
32
|
ngOnDestroy(): void;
|
|
36
33
|
saveObject(): void;
|
|
37
34
|
deleteObject(): void;
|