@valtimo/dossier 11.3.2 → 12.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/dossier-assign-user/dossier-assign-user.component.mjs +7 -7
- package/esm2022/lib/components/dossier-bulk-assign-modal/dossier-bulk-assign-modal.component.mjs +7 -7
- package/esm2022/lib/components/dossier-detail/dossier-detail.component.mjs +55 -16
- package/esm2022/lib/components/dossier-detail/tab/audit/audit.component.mjs +7 -7
- package/esm2022/lib/components/dossier-detail/tab/documents/documents.component.mjs +52 -16
- package/esm2022/lib/components/dossier-detail/tab/formio/formio.component.mjs +7 -7
- package/esm2022/lib/components/dossier-detail/tab/not-found/not-found.component.mjs +28 -0
- package/esm2022/lib/components/dossier-detail/tab/notes/notes.component.mjs +14 -9
- package/esm2022/lib/components/dossier-detail/tab/progress/progress.component.mjs +8 -12
- package/esm2022/lib/components/dossier-detail/tab/s3-documents/s3-documents.component.mjs +8 -9
- package/esm2022/lib/components/dossier-detail/tab/summary/summary.component.mjs +15 -80
- package/esm2022/lib/components/dossier-detail/tab/widgets/components/collection/widget-collection.component.mjs +192 -0
- package/esm2022/lib/components/dossier-detail/tab/widgets/components/custom/widget-custom.component.mjs +80 -0
- package/esm2022/lib/components/dossier-detail/tab/widgets/components/field/widget-field.component.mjs +116 -0
- package/esm2022/lib/components/dossier-detail/tab/widgets/components/formio/widget-formio.component.mjs +67 -0
- package/esm2022/lib/components/dossier-detail/tab/widgets/components/table/widget-table.component.mjs +126 -0
- package/esm2022/lib/components/dossier-detail/tab/widgets/components/widget-block/widget-block.component.mjs +154 -0
- package/esm2022/lib/components/dossier-detail/tab/widgets/components/widgets-container/widgets-container.component.mjs +74 -0
- package/esm2022/lib/components/dossier-detail/tab/widgets/widgets.component.mjs +74 -0
- package/esm2022/lib/components/dossier-detail-task-list/dossier-detail-task-list.component.mjs +131 -0
- package/esm2022/lib/components/dossier-list/dossier-list.component.mjs +80 -55
- package/esm2022/lib/components/dossier-list-actions/dossier-list-actions.component.mjs +7 -7
- package/esm2022/lib/components/dossier-process-start-modal/dossier-process-start-modal.component.mjs +60 -18
- package/esm2022/lib/components/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.mjs +9 -9
- package/esm2022/lib/components/dossier-update/dossier-update.component.mjs +7 -7
- package/esm2022/lib/components/note-modal/note-modal.component.mjs +7 -7
- package/esm2022/lib/constants/case-status.constants.mjs +26 -0
- package/esm2022/lib/constants/case-tab-token.mjs +2 -2
- package/esm2022/lib/constants/case-widget.constants.mjs +19 -0
- package/esm2022/lib/{models/zaakobjecten.model.mjs → constants/custom-case-widget-token.mjs} +5 -3
- package/esm2022/lib/constants/dossier-list.constants.mjs +39 -0
- package/esm2022/lib/constants/index.mjs +20 -1
- package/esm2022/lib/constants/tab.mjs +2 -6
- package/esm2022/lib/dossier-routing.module.mjs +6 -6
- package/esm2022/lib/dossier.module.mjs +40 -29
- package/esm2022/lib/models/candidate-user.model.mjs +2 -2
- package/esm2022/lib/models/case-widget-content.model.mjs +17 -0
- package/esm2022/lib/models/case-widget-display.model.mjs +13 -0
- package/esm2022/lib/models/case-widget.model.mjs +25 -0
- package/esm2022/lib/models/dossier-detail-tab.model.mjs +2 -4
- package/esm2022/lib/models/dossier-parameters.model.mjs +2 -2
- package/esm2022/lib/models/index.mjs +7 -5
- package/esm2022/lib/models/notes.model.mjs +2 -2
- package/esm2022/lib/models/search.model.mjs +2 -2
- package/esm2022/lib/models/tab-api.model.mjs +3 -2
- package/esm2022/lib/models/tabs.model.mjs +17 -8
- package/esm2022/lib/permissions/dossier-detail.permissions.mjs +2 -2
- package/esm2022/lib/permissions/index.mjs +2 -2
- package/esm2022/lib/pipes/index.mjs +2 -2
- package/esm2022/lib/pipes/tab-translate/index.mjs +2 -2
- package/esm2022/lib/pipes/tab-translate/tab-translate-pipe.module.mjs +6 -6
- package/esm2022/lib/pipes/tab-translate/tab-translate.pipe.mjs +6 -6
- package/esm2022/lib/services/dossier-bulk-assign.service.mjs +5 -5
- package/esm2022/lib/services/dossier-column.service.mjs +7 -7
- package/esm2022/lib/services/dossier-list-assignee.service.mjs +6 -6
- package/esm2022/lib/services/dossier-list-pagination.service.mjs +6 -6
- package/esm2022/lib/services/dossier-list-search.service.mjs +6 -6
- package/esm2022/lib/services/dossier-list-status.service.mjs +62 -0
- package/esm2022/lib/services/dossier-list.service.mjs +6 -6
- package/esm2022/lib/services/dossier-parameter.service.mjs +44 -18
- package/esm2022/lib/services/dossier-tab-api.service.mjs +34 -13
- package/esm2022/lib/services/dossier-tab.service.mjs +57 -21
- package/esm2022/lib/services/dossier-widgets-api.service.mjs +46 -0
- package/esm2022/lib/services/dossier-widgets-layout.service.mjs +97 -0
- package/esm2022/lib/services/dossier.service.mjs +6 -6
- package/esm2022/lib/services/index.mjs +6 -3
- package/esm2022/lib/services/notes.service.mjs +6 -6
- package/esm2022/lib/services/start-modal.service.mjs +23 -8
- package/esm2022/public_api.mjs +2 -4
- package/fesm2022/valtimo-dossier.mjs +1941 -985
- package/fesm2022/valtimo-dossier.mjs.map +1 -1
- package/lib/components/dossier-detail/dossier-detail.component.d.ts +15 -3
- package/lib/components/dossier-detail/dossier-detail.component.d.ts.map +1 -1
- package/lib/components/dossier-detail/tab/documents/documents.component.d.ts +16 -6
- package/lib/components/dossier-detail/tab/documents/documents.component.d.ts.map +1 -1
- package/lib/components/dossier-detail/tab/not-found/not-found.component.d.ts +6 -0
- package/lib/components/dossier-detail/tab/not-found/not-found.component.d.ts.map +1 -0
- package/lib/components/dossier-detail/tab/notes/notes.component.d.ts +2 -1
- package/lib/components/dossier-detail/tab/notes/notes.component.d.ts.map +1 -1
- package/lib/components/dossier-detail/tab/progress/progress.component.d.ts.map +1 -1
- package/lib/components/dossier-detail/tab/s3-documents/s3-documents.component.d.ts +1 -2
- package/lib/components/dossier-detail/tab/s3-documents/s3-documents.component.d.ts.map +1 -1
- package/lib/components/dossier-detail/tab/summary/summary.component.d.ts +7 -26
- package/lib/components/dossier-detail/tab/summary/summary.component.d.ts.map +1 -1
- package/lib/components/dossier-detail/tab/widgets/components/collection/widget-collection.component.d.ts +47 -0
- package/lib/components/dossier-detail/tab/widgets/components/collection/widget-collection.component.d.ts.map +1 -0
- package/lib/components/dossier-detail/tab/widgets/components/custom/widget-custom.component.d.ts +22 -0
- package/lib/components/dossier-detail/tab/widgets/components/custom/widget-custom.component.d.ts.map +1 -0
- package/lib/components/dossier-detail/tab/widgets/components/field/widget-field.component.d.ts +31 -0
- package/lib/components/dossier-detail/tab/widgets/components/field/widget-field.component.d.ts.map +1 -0
- package/lib/components/dossier-detail/tab/widgets/components/formio/widget-formio.component.d.ts +21 -0
- package/lib/components/dossier-detail/tab/widgets/components/formio/widget-formio.component.d.ts.map +1 -0
- package/lib/components/dossier-detail/tab/widgets/components/table/widget-table.component.d.ts +31 -0
- package/lib/components/dossier-detail/tab/widgets/components/table/widget-table.component.d.ts.map +1 -0
- package/lib/components/dossier-detail/tab/widgets/components/widget-block/widget-block.component.d.ts +43 -0
- package/lib/components/dossier-detail/tab/widgets/components/widget-block/widget-block.component.d.ts.map +1 -0
- package/lib/components/dossier-detail/tab/widgets/components/widgets-container/widgets-container.component.d.ts +20 -0
- package/lib/components/dossier-detail/tab/widgets/components/widgets-container/widgets-container.component.d.ts.map +1 -0
- package/lib/components/dossier-detail/tab/widgets/widgets.component.d.ts +25 -0
- package/lib/components/dossier-detail/tab/widgets/widgets.component.d.ts.map +1 -0
- package/lib/components/dossier-detail-task-list/dossier-detail-task-list.component.d.ts +26 -0
- package/lib/components/dossier-detail-task-list/dossier-detail-task-list.component.d.ts.map +1 -0
- package/lib/components/dossier-list/dossier-list.component.d.ts +15 -16
- package/lib/components/dossier-list/dossier-list.component.d.ts.map +1 -1
- package/lib/components/dossier-process-start-modal/dossier-process-start-modal.component.d.ts +14 -7
- package/lib/components/dossier-process-start-modal/dossier-process-start-modal.component.d.ts.map +1 -1
- package/lib/components/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.d.ts +1 -1
- package/lib/components/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.d.ts.map +1 -1
- package/lib/constants/case-status.constants.d.ts +5 -0
- package/lib/constants/case-status.constants.d.ts.map +1 -0
- package/lib/constants/case-widget.constants.d.ts +4 -0
- package/lib/constants/case-widget.constants.d.ts.map +1 -0
- package/lib/constants/custom-case-widget-token.d.ts +5 -0
- package/lib/constants/custom-case-widget-token.d.ts.map +1 -0
- package/lib/constants/dossier-list.constants.d.ts +7 -0
- package/lib/constants/dossier-list.constants.d.ts.map +1 -0
- package/lib/constants/index.d.ts +4 -0
- package/lib/constants/index.d.ts.map +1 -1
- package/lib/constants/tab.d.ts.map +1 -1
- package/lib/dossier.module.d.ts +25 -26
- package/lib/dossier.module.d.ts.map +1 -1
- package/lib/models/case-widget-content.model.d.ts +51 -0
- package/lib/models/case-widget-content.model.d.ts.map +1 -0
- package/lib/models/case-widget-display.model.d.ts +44 -0
- package/lib/models/case-widget-display.model.d.ts.map +1 -0
- package/lib/models/case-widget.model.d.ts +105 -0
- package/lib/models/case-widget.model.d.ts.map +1 -0
- package/lib/models/dossier-detail-tab.model.d.ts +0 -2
- package/lib/models/dossier-detail-tab.model.d.ts.map +1 -1
- package/lib/models/dossier-parameters.model.d.ts +1 -0
- package/lib/models/dossier-parameters.model.d.ts.map +1 -1
- package/lib/models/index.d.ts +5 -3
- package/lib/models/index.d.ts.map +1 -1
- package/lib/models/tab-api.model.d.ts +13 -2
- package/lib/models/tab-api.model.d.ts.map +1 -1
- package/lib/models/tabs.model.d.ts +6 -1
- package/lib/models/tabs.model.d.ts.map +1 -1
- package/lib/services/dossier-list-status.service.d.ts +21 -0
- package/lib/services/dossier-list-status.service.d.ts.map +1 -0
- package/lib/services/dossier-list.service.d.ts +1 -1
- package/lib/services/dossier-list.service.d.ts.map +1 -1
- package/lib/services/dossier-parameter.service.d.ts +4 -2
- package/lib/services/dossier-parameter.service.d.ts.map +1 -1
- package/lib/services/dossier-tab-api.service.d.ts +6 -7
- package/lib/services/dossier-tab-api.service.d.ts.map +1 -1
- package/lib/services/dossier-tab.service.d.ts +15 -4
- package/lib/services/dossier-tab.service.d.ts.map +1 -1
- package/lib/services/dossier-widgets-api.service.d.ts +15 -0
- package/lib/services/dossier-widgets-api.service.d.ts.map +1 -0
- package/lib/services/dossier-widgets-layout.service.d.ts +35 -0
- package/lib/services/dossier-widgets-layout.service.d.ts.map +1 -0
- package/lib/services/index.d.ts +4 -1
- package/lib/services/index.d.ts.map +1 -1
- package/lib/services/start-modal.service.d.ts.map +1 -1
- package/package.json +8 -6
- package/public_api.d.ts +0 -2
- package/public_api.d.ts.map +1 -1
- package/esm2022/lib/components/dossier-detail/tab/contact-moments/contact-moments.component.mjs +0 -86
- package/esm2022/lib/components/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.mjs +0 -144
- package/esm2022/lib/components/dossier-detail/tab/object-type/object-type.component.mjs +0 -121
- package/esm2022/lib/components/dossier-detail/tab/zaakobjecten/zaakobjecten.component.mjs +0 -112
- package/esm2022/lib/services/file-sort.service.mjs +0 -39
- package/esm2022/lib/services/zaakobjecten.service.mjs +0 -44
- package/lib/components/dossier-detail/tab/contact-moments/contact-moments.component.d.ts +0 -30
- package/lib/components/dossier-detail/tab/contact-moments/contact-moments.component.d.ts.map +0 -1
- package/lib/components/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.d.ts +0 -55
- package/lib/components/dossier-detail/tab/documenten-api-documents/documenten-api-documents.component.d.ts.map +0 -1
- package/lib/components/dossier-detail/tab/object-type/object-type.component.d.ts +0 -32
- package/lib/components/dossier-detail/tab/object-type/object-type.component.d.ts.map +0 -1
- package/lib/components/dossier-detail/tab/zaakobjecten/zaakobjecten.component.d.ts +0 -32
- package/lib/components/dossier-detail/tab/zaakobjecten/zaakobjecten.component.d.ts.map +0 -1
- package/lib/models/zaakobjecten.model.d.ts +0 -26
- package/lib/models/zaakobjecten.model.d.ts.map +0 -1
- package/lib/services/file-sort.service.d.ts +0 -11
- package/lib/services/file-sort.service.d.ts.map +0 -1
- package/lib/services/zaakobjecten.service.d.ts +0 -17
- package/lib/services/zaakobjecten.service.d.ts.map +0 -1
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
17
|
+
import { CommonModule } from '@angular/common';
|
|
18
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
19
|
+
import { BehaviorSubject, combineLatest, filter, map, of, switchMap, tap } from 'rxjs';
|
|
20
|
+
import { FormIoModule } from '@valtimo/components';
|
|
21
|
+
import * as i0 from "@angular/core";
|
|
22
|
+
import * as i1 from "@valtimo/form";
|
|
23
|
+
import * as i2 from "../../../../../../services";
|
|
24
|
+
import * as i3 from "@angular/common";
|
|
25
|
+
import * as i4 from "@valtimo/components";
|
|
26
|
+
export class WidgetFormioComponent {
|
|
27
|
+
set documentId(value) {
|
|
28
|
+
if (value)
|
|
29
|
+
this._documentIdSubject$.next(value);
|
|
30
|
+
}
|
|
31
|
+
set widgetConfiguration(value) {
|
|
32
|
+
if (!value)
|
|
33
|
+
return;
|
|
34
|
+
this.layoutService.setWidgetWithExternalData(value.uuid);
|
|
35
|
+
this._widgetConfigurationSubject$.next(value);
|
|
36
|
+
}
|
|
37
|
+
get widgetConfiguration$() {
|
|
38
|
+
return this._widgetConfigurationSubject$.pipe(filter(config => !!config));
|
|
39
|
+
}
|
|
40
|
+
get _documentId$() {
|
|
41
|
+
return this._documentIdSubject$.pipe(filter(id => !!id));
|
|
42
|
+
}
|
|
43
|
+
constructor(formService, layoutService) {
|
|
44
|
+
this.formService = formService;
|
|
45
|
+
this.layoutService = layoutService;
|
|
46
|
+
this._widgetConfigurationSubject$ = new BehaviorSubject(null);
|
|
47
|
+
this._documentIdSubject$ = new BehaviorSubject('');
|
|
48
|
+
this.prefilledFormDefinition$ = combineLatest([
|
|
49
|
+
this.widgetConfiguration$,
|
|
50
|
+
this._documentId$,
|
|
51
|
+
]).pipe(switchMap(([config, documentId]) => combineLatest([
|
|
52
|
+
this.formService.getFormDefinitionByNamePreFilled(config.properties.formDefinitionName, documentId),
|
|
53
|
+
of(config),
|
|
54
|
+
])), tap(([_, config]) => this.layoutService.setWidgetWithExternalDataReady(config.uuid)), map(([formDef]) => formDef));
|
|
55
|
+
}
|
|
56
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetFormioComponent, deps: [{ token: i1.FormService }, { token: i2.DossierWidgetsLayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
57
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: WidgetFormioComponent, isStandalone: true, selector: "valtimo-widget-formio", inputs: { documentId: "documentId", widgetConfiguration: "widgetConfiguration" }, 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=\"formio-widget\" *ngIf=\"prefilledFormDefinition$ | async as prefilledFormDefinition\">\n <h4 class=\"formio-widget__title\">{{ (widgetConfiguration$ | async)?.title || '-' }}</h4>\n\n <valtimo-form-io [form]=\"prefilledFormDefinition\"></valtimo-form-io>\n</div>\n", styles: [".formio-widget{padding:24px}.formio-widget__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px;margin-bottom:16px}\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: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: FormIoModule }, { kind: "component", type: i4.FormioComponent, selector: "valtimo-form-io", inputs: ["options", "submission", "form", "readOnly", "formRefresh$"], outputs: ["submit", "change"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
58
|
+
}
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetFormioComponent, decorators: [{
|
|
60
|
+
type: Component,
|
|
61
|
+
args: [{ selector: 'valtimo-widget-formio', standalone: true, imports: [CommonModule, TranslateModule, FormIoModule], changeDetection: ChangeDetectionStrategy.OnPush, 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=\"formio-widget\" *ngIf=\"prefilledFormDefinition$ | async as prefilledFormDefinition\">\n <h4 class=\"formio-widget__title\">{{ (widgetConfiguration$ | async)?.title || '-' }}</h4>\n\n <valtimo-form-io [form]=\"prefilledFormDefinition\"></valtimo-form-io>\n</div>\n", styles: [".formio-widget{padding:24px}.formio-widget__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px;margin-bottom:16px}\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"] }]
|
|
62
|
+
}], ctorParameters: () => [{ type: i1.FormService }, { type: i2.DossierWidgetsLayoutService }], propDecorators: { documentId: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}], widgetConfiguration: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}] } });
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWZvcm1pby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rvc3NpZXIvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItZGV0YWlsL3RhYi93aWRnZXRzL2NvbXBvbmVudHMvZm9ybWlvL3dpZGdldC1mb3JtaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvd2lkZ2V0cy9jb21wb25lbnRzL2Zvcm1pby93aWRnZXQtZm9ybWlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVwRCxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBSWpHLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBVWpELE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsSUFBb0IsVUFBVSxDQUFDLEtBQWE7UUFDMUMsSUFBSSxLQUFLO1lBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQ0QsSUFBb0IsbUJBQW1CLENBQUMsS0FBcUM7UUFDM0UsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPO1FBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUlELElBQVcsb0JBQW9CO1FBQzdCLE9BQU8sSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBR0QsSUFBWSxZQUFZO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBbUJELFlBQ21CLFdBQXdCLEVBQ3hCLGFBQTBDO1FBRDFDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGtCQUFhLEdBQWIsYUFBYSxDQUE2QjtRQTlCNUMsaUNBQTRCLEdBQzNDLElBQUksZUFBZSxDQUF3QyxJQUFJLENBQUMsQ0FBQztRQUtsRCx3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUt2RCw2QkFBd0IsR0FBMkIsYUFBYSxDQUFDO1lBQy9FLElBQUksQ0FBQyxvQkFBb0I7WUFDekIsSUFBSSxDQUFDLFlBQVk7U0FDbEIsQ0FBQyxDQUFDLElBQUksQ0FDTCxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLENBQ2pDLGFBQWEsQ0FBQztZQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsZ0NBQWdDLENBQy9DLE1BQU0sQ0FBQyxVQUFVLENBQUMsa0JBQWtCLEVBQ3BDLFVBQVUsQ0FDWDtZQUNELEVBQUUsQ0FBQyxNQUFNLENBQUM7U0FDWCxDQUFDLENBQ0gsRUFDRCxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyw4QkFBOEIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFDcEYsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQzVCLENBQUM7SUFLQyxDQUFDOzhHQXpDTyxxQkFBcUI7a0dBQXJCLHFCQUFxQixtS0NsQ2xDLHk2QkFxQkEsNDBCRFVZLFlBQVksdUxBQUUsZUFBZSw4QkFBRSxZQUFZOzsyRkFHMUMscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNFLHVCQUF1QixjQUdyQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLFlBQVksQ0FBQyxtQkFDckMsdUJBQXVCLENBQUMsTUFBTTswSEFHM0IsVUFBVTtzQkFBN0IsS0FBSztnQkFHYyxtQkFBbUI7c0JBQXRDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtGb3JtaW9DYXNlV2lkZ2V0V2lkZ2V0V2l0aFV1aWR9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0Zvcm1TZXJ2aWNlfSBmcm9tICdAdmFsdGltby9mb3JtJztcbmltcG9ydCB7RG9zc2llcldpZGdldHNMYXlvdXRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge0Zvcm1pb0Zvcm19IGZyb20gJ0Bmb3JtaW8vYW5ndWxhcic7XG5pbXBvcnQge0Zvcm1Jb01vZHVsZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8td2lkZ2V0LWZvcm1pbycsXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtZm9ybWlvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd2lkZ2V0LWZvcm1pby5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIEZvcm1Jb01vZHVsZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRGb3JtaW9Db21wb25lbnQge1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IGRvY3VtZW50SWQodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSkgdGhpcy5fZG9jdW1lbnRJZFN1YmplY3QkLm5leHQodmFsdWUpO1xuICB9XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgd2lkZ2V0Q29uZmlndXJhdGlvbih2YWx1ZTogRm9ybWlvQ2FzZVdpZGdldFdpZGdldFdpdGhVdWlkKSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuICAgIHRoaXMubGF5b3V0U2VydmljZS5zZXRXaWRnZXRXaXRoRXh0ZXJuYWxEYXRhKHZhbHVlLnV1aWQpO1xuICAgIHRoaXMuX3dpZGdldENvbmZpZ3VyYXRpb25TdWJqZWN0JC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3dpZGdldENvbmZpZ3VyYXRpb25TdWJqZWN0JCA9XG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtaW9DYXNlV2lkZ2V0V2lkZ2V0V2l0aFV1aWQgfCBudWxsPihudWxsKTtcbiAgcHVibGljIGdldCB3aWRnZXRDb25maWd1cmF0aW9uJCgpOiBPYnNlcnZhYmxlPEZvcm1pb0Nhc2VXaWRnZXRXaWRnZXRXaXRoVXVpZD4ge1xuICAgIHJldHVybiB0aGlzLl93aWRnZXRDb25maWd1cmF0aW9uU3ViamVjdCQucGlwZShmaWx0ZXIoY29uZmlnID0+ICEhY29uZmlnKSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF9kb2N1bWVudElkU3ViamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICBwcml2YXRlIGdldCBfZG9jdW1lbnRJZCQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5fZG9jdW1lbnRJZFN1YmplY3QkLnBpcGUoZmlsdGVyKGlkID0+ICEhaWQpKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBwcmVmaWxsZWRGb3JtRGVmaW5pdGlvbiQ6IE9ic2VydmFibGU8Rm9ybWlvRm9ybT4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLndpZGdldENvbmZpZ3VyYXRpb24kLFxuICAgIHRoaXMuX2RvY3VtZW50SWQkLFxuICBdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW2NvbmZpZywgZG9jdW1lbnRJZF0pID0+XG4gICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS5nZXRGb3JtRGVmaW5pdGlvbkJ5TmFtZVByZUZpbGxlZChcbiAgICAgICAgICBjb25maWcucHJvcGVydGllcy5mb3JtRGVmaW5pdGlvbk5hbWUsXG4gICAgICAgICAgZG9jdW1lbnRJZFxuICAgICAgICApLFxuICAgICAgICBvZihjb25maWcpLFxuICAgICAgXSlcbiAgICApLFxuICAgIHRhcCgoW18sIGNvbmZpZ10pID0+IHRoaXMubGF5b3V0U2VydmljZS5zZXRXaWRnZXRXaXRoRXh0ZXJuYWxEYXRhUmVhZHkoY29uZmlnLnV1aWQpKSxcbiAgICBtYXAoKFtmb3JtRGVmXSkgPT4gZm9ybURlZilcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxheW91dFNlcnZpY2U6IERvc3NpZXJXaWRnZXRzTGF5b3V0U2VydmljZVxuICApIHt9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxkaXYgY2xhc3M9XCJmb3JtaW8td2lkZ2V0XCIgKm5nSWY9XCJwcmVmaWxsZWRGb3JtRGVmaW5pdGlvbiQgfCBhc3luYyBhcyBwcmVmaWxsZWRGb3JtRGVmaW5pdGlvblwiPlxuICA8aDQgY2xhc3M9XCJmb3JtaW8td2lkZ2V0X190aXRsZVwiPnt7ICh3aWRnZXRDb25maWd1cmF0aW9uJCB8IGFzeW5jKT8udGl0bGUgfHwgJy0nIH19PC9oND5cblxuICA8dmFsdGltby1mb3JtLWlvIFtmb3JtXT1cInByZWZpbGxlZEZvcm1EZWZpbml0aW9uXCI+PC92YWx0aW1vLWZvcm0taW8+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { CommonModule } from '@angular/common';
|
|
17
|
+
import { ChangeDetectionStrategy, Component, Input, signal, ViewEncapsulation, } from '@angular/core';
|
|
18
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
19
|
+
import { CarbonListModule, ViewType } from '@valtimo/components';
|
|
20
|
+
import { PaginationModel, PaginationModule, TilesModule } from 'carbon-components-angular';
|
|
21
|
+
import { BehaviorSubject, combineLatest, filter, map, of, switchMap } from 'rxjs';
|
|
22
|
+
import * as i0 from "@angular/core";
|
|
23
|
+
import * as i1 from "../../../../../../services";
|
|
24
|
+
import * as i2 from "@angular/common";
|
|
25
|
+
import * as i3 from "@valtimo/components";
|
|
26
|
+
import * as i4 from "carbon-components-angular";
|
|
27
|
+
import * as i5 from "@ngx-translate/core";
|
|
28
|
+
export class WidgetTableComponent {
|
|
29
|
+
set widgetConfiguration(value) {
|
|
30
|
+
this._widgetConfiguration = value;
|
|
31
|
+
this.fields$.next(value.properties.columns.map((column, index) => ({
|
|
32
|
+
key: column.key,
|
|
33
|
+
label: column.title,
|
|
34
|
+
viewType: column.displayProperties?.type ?? ViewType.TEXT,
|
|
35
|
+
className: `valtimo-widget-table--transparent ${index === 0 && value.properties.firstColumnAsTitle ? 'valtimo-widget-table--title' : ''}`,
|
|
36
|
+
...(!!column.displayProperties?.['format'] && {
|
|
37
|
+
format: column.displayProperties['format'],
|
|
38
|
+
}),
|
|
39
|
+
...(!!column.displayProperties?.['digitsInfo'] && {
|
|
40
|
+
digitsInfo: column.displayProperties['digitsInfo'],
|
|
41
|
+
}),
|
|
42
|
+
...(!!column.displayProperties?.['display'] && {
|
|
43
|
+
display: column.displayProperties['display'],
|
|
44
|
+
}),
|
|
45
|
+
...(!!column.displayProperties?.['currencyCode'] && {
|
|
46
|
+
currencyCode: column.displayProperties['currencyCode'],
|
|
47
|
+
}),
|
|
48
|
+
})));
|
|
49
|
+
this.cdr.detectChanges();
|
|
50
|
+
}
|
|
51
|
+
get widgetConfiguration() {
|
|
52
|
+
return this._widgetConfiguration;
|
|
53
|
+
}
|
|
54
|
+
get _initialNumberOfElements$() {
|
|
55
|
+
return this._initialNumberOfElementsSubject$.pipe(filter(numberOfElements => numberOfElements !== null));
|
|
56
|
+
}
|
|
57
|
+
set widgetData(value) {
|
|
58
|
+
if (!value)
|
|
59
|
+
return;
|
|
60
|
+
this.showPagination$.next(value.totalElements > value.size);
|
|
61
|
+
this._initialNumberOfElementsSubject$.next(value.numberOfElements);
|
|
62
|
+
this._widgetData$.next(value.content);
|
|
63
|
+
this.paginationModel.set(value.totalPages < 2
|
|
64
|
+
? null
|
|
65
|
+
: {
|
|
66
|
+
currentPage: 1,
|
|
67
|
+
totalDataLength: Math.ceil(value.totalElements / value.size),
|
|
68
|
+
pageLength: value.size,
|
|
69
|
+
});
|
|
70
|
+
this.cdr.detectChanges();
|
|
71
|
+
}
|
|
72
|
+
constructor(dossierWidgetsApiService, cdr) {
|
|
73
|
+
this.dossierWidgetsApiService = dossierWidgetsApiService;
|
|
74
|
+
this.cdr = cdr;
|
|
75
|
+
this._initialNumberOfElementsSubject$ = new BehaviorSubject(null);
|
|
76
|
+
this.showPagination$ = new BehaviorSubject(false);
|
|
77
|
+
this._widgetData$ = new BehaviorSubject(null);
|
|
78
|
+
this.fields$ = new BehaviorSubject([]);
|
|
79
|
+
this._queryParams$ = new BehaviorSubject(null);
|
|
80
|
+
this.paginationModel = signal(new PaginationModel());
|
|
81
|
+
this.widgetData$ = combineLatest([
|
|
82
|
+
this._widgetData$,
|
|
83
|
+
this._queryParams$,
|
|
84
|
+
this._initialNumberOfElements$,
|
|
85
|
+
]).pipe(switchMap(([data, queryParams, initialNumberOfElements]) => combineLatest([
|
|
86
|
+
!queryParams
|
|
87
|
+
? of(data)
|
|
88
|
+
: this.dossierWidgetsApiService
|
|
89
|
+
.getWidgetData(this.documentId, this.tabKey, this.widgetConfiguration.key, queryParams)
|
|
90
|
+
.pipe(map((res) => res.content)),
|
|
91
|
+
of(initialNumberOfElements),
|
|
92
|
+
])), filter(([items]) => !!items), map(([items, initialNumberOfElements]) => {
|
|
93
|
+
if (items.length === initialNumberOfElements) {
|
|
94
|
+
return items;
|
|
95
|
+
}
|
|
96
|
+
const rows = new Array(initialNumberOfElements).fill(null);
|
|
97
|
+
return rows.map((_, index) => items[index] || {});
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
100
|
+
onSelectPage(page) {
|
|
101
|
+
this._queryParams$.next(`page=${page - 1}&size=${this.paginationModel().pageLength}`);
|
|
102
|
+
this.paginationModel.update((model) => ({
|
|
103
|
+
...model,
|
|
104
|
+
currentPage: page,
|
|
105
|
+
}));
|
|
106
|
+
}
|
|
107
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetTableComponent, deps: [{ token: i1.DossierWidgetsApiService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
108
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: WidgetTableComponent, isStandalone: true, selector: "valtimo-widget-table", inputs: { documentId: "documentId", tabKey: "tabKey", widgetConfiguration: "widgetConfiguration", widgetData: "widgetData" }, 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<cds-tile\n *ngIf=\"{\n fields: fields$ | async,\n widgetData: widgetData$ | async\n } as obs\"\n class=\"valtimo-widget-table\"\n>\n <span class=\"widget-title\">{{ widgetConfiguration?.title }}</span>\n\n @if (obs.widgetData && obs.fields && obs.widgetData.length) {\n <section class=\"valtimo-widget-table__content\">\n <valtimo-carbon-list\n [header]=\"false\"\n [hideToolbar]=\"true\"\n [fields]=\"obs.fields\"\n [items]=\"obs.widgetData\"\n >\n </valtimo-carbon-list>\n\n <cds-pagination-nav\n *ngIf=\"paginationModel()\"\n class=\"valtimo-widget-table__pagination\"\n [model]=\"paginationModel()\"\n (selectPage)=\"onSelectPage($event)\"\n >\n </cds-pagination-nav>\n </section>\n } @else {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n }\n</cds-tile>\n", styles: [".valtimo-widget-table{padding:24px;display:flex;flex-direction:column;gap:16px}.valtimo-widget-table__content{display:flex;align-items:center;flex-direction:column}.valtimo-widget-table__content valtimo-carbon-list{width:100%}.valtimo-widget-table__pagination{padding:8px 0}.valtimo-widget-table .cds--data-table>thead{background:transparent!important}.valtimo-widget-table .cds--data-table td,.valtimo-widget-table .cds--data-table tr,.valtimo-widget-table .cds--data-table th{display:flex;width:100%}.valtimo-widget-table .cds--data-table td{white-space:nowrap;overflow:hidden}.valtimo-widget-table .cds--data-table td span{text-overflow:ellipsis;overflow:hidden}.valtimo-widget-table .cds--data-table tr{gap:16px}.valtimo-widget-table .cds--table-header-label>span{font-weight:400;font-size:12px;color:var(--cds-text-secondary)}.valtimo-widget-table--transparent{background:transparent!important}.valtimo-widget-table--title{border:none!important;font-style:italic}.valtimo-widget-table .widget-title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i3.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: "component", type: i3.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: PaginationModule }, { kind: "component", type: i4.PaginationNav, selector: "cds-pagination-nav, ibm-pagination-navm", inputs: ["model", "disabled", "numOfItemsToShow", "translations"], outputs: ["selectPage"] }, { kind: "ngmodule", type: TilesModule }, { kind: "component", type: i4.Tile, selector: "cds-tile, ibm-tile", inputs: ["theme"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
109
|
+
}
|
|
110
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetTableComponent, decorators: [{
|
|
111
|
+
type: Component,
|
|
112
|
+
args: [{ selector: 'valtimo-widget-table', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule, CarbonListModule, PaginationModule, TilesModule, TranslateModule], 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<cds-tile\n *ngIf=\"{\n fields: fields$ | async,\n widgetData: widgetData$ | async\n } as obs\"\n class=\"valtimo-widget-table\"\n>\n <span class=\"widget-title\">{{ widgetConfiguration?.title }}</span>\n\n @if (obs.widgetData && obs.fields && obs.widgetData.length) {\n <section class=\"valtimo-widget-table__content\">\n <valtimo-carbon-list\n [header]=\"false\"\n [hideToolbar]=\"true\"\n [fields]=\"obs.fields\"\n [items]=\"obs.widgetData\"\n >\n </valtimo-carbon-list>\n\n <cds-pagination-nav\n *ngIf=\"paginationModel()\"\n class=\"valtimo-widget-table__pagination\"\n [model]=\"paginationModel()\"\n (selectPage)=\"onSelectPage($event)\"\n >\n </cds-pagination-nav>\n </section>\n } @else {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n }\n</cds-tile>\n", styles: [".valtimo-widget-table{padding:24px;display:flex;flex-direction:column;gap:16px}.valtimo-widget-table__content{display:flex;align-items:center;flex-direction:column}.valtimo-widget-table__content valtimo-carbon-list{width:100%}.valtimo-widget-table__pagination{padding:8px 0}.valtimo-widget-table .cds--data-table>thead{background:transparent!important}.valtimo-widget-table .cds--data-table td,.valtimo-widget-table .cds--data-table tr,.valtimo-widget-table .cds--data-table th{display:flex;width:100%}.valtimo-widget-table .cds--data-table td{white-space:nowrap;overflow:hidden}.valtimo-widget-table .cds--data-table td span{text-overflow:ellipsis;overflow:hidden}.valtimo-widget-table .cds--data-table tr{gap:16px}.valtimo-widget-table .cds--table-header-label>span{font-weight:400;font-size:12px;color:var(--cds-text-secondary)}.valtimo-widget-table--transparent{background:transparent!important}.valtimo-widget-table--title{border:none!important;font-style:italic}.valtimo-widget-table .widget-title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}\n"] }]
|
|
113
|
+
}], ctorParameters: () => [{ type: i1.DossierWidgetsApiService }, { type: i0.ChangeDetectorRef }], propDecorators: { documentId: [{
|
|
114
|
+
type: Input,
|
|
115
|
+
args: [{ required: true }]
|
|
116
|
+
}], tabKey: [{
|
|
117
|
+
type: Input,
|
|
118
|
+
args: [{ required: true }]
|
|
119
|
+
}], widgetConfiguration: [{
|
|
120
|
+
type: Input,
|
|
121
|
+
args: [{ required: true }]
|
|
122
|
+
}], widgetData: [{
|
|
123
|
+
type: Input,
|
|
124
|
+
args: [{ required: true }]
|
|
125
|
+
}] } });
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1kZXRhaWwvdGFiL3dpZGdldHMvY29tcG9uZW50cy90YWJsZS93aWRnZXQtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvd2lkZ2V0cy9jb21wb25lbnRzL3RhYmxlL3dpZGdldC10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFpQixnQkFBZ0IsRUFBZ0IsUUFBUSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFN0YsT0FBTyxFQUFDLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RixPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFhNUYsTUFBTSxPQUFPLG9CQUFvQjtJQUsvQixJQUFvQyxtQkFBbUIsQ0FBQyxLQUFzQjtRQUM1RSxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxD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UyxNQUFNO3NCQUFyQyxLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztnQkFHYSxtQkFBbUI7c0JBQXRELEtBQUs7dUJBQUMsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDO2dCQXVDTSxVQUFVO3NCQUF0QyxLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgc2lnbmFsLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0NhcmJvbkxpc3RJdGVtLCBDYXJib25MaXN0TW9kdWxlLCBDb2x1bW5Db25maWcsIFZpZXdUeXBlfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7UGFnZX0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7UGFnaW5hdGlvbk1vZGVsLCBQYWdpbmF0aW9uTW9kdWxlLCBUaWxlc01vZHVsZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGaWVsZHNDYXNlV2lkZ2V0VmFsdWUsIFRhYmxlQ2FzZVdpZGdldH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7RG9zc2llcldpZGdldHNBcGlTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8td2lkZ2V0LXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dpZGdldC10YWJsZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQ2FyYm9uTGlzdE1vZHVsZSwgUGFnaW5hdGlvbk1vZHVsZSwgVGlsZXNNb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFdpZGdldFRhYmxlQ29tcG9uZW50IHtcbiAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIHB1YmxpYyBkb2N1bWVudElkOiBzdHJpbmc7XG4gIEBJbnB1dCh7cmVxdWlyZWQ6IHRydWV9KSBwdWJsaWMgdGFiS2V5OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfd2lkZ2V0Q29uZmlndXJhdGlvbjogVGFibGVDYXNlV2lkZ2V0O1xuICBASW5wdXQoe3JlcXVpcmVkOiB0cnVlfSkgcHVibGljIHNldCB3aWRnZXRDb25maWd1cmF0aW9uKHZhbHVlOiBUYWJsZUNhc2VXaWRnZXQpIHtcbiAgICB0aGlzLl93aWRnZXRDb25maWd1cmF0aW9uID0gdmFsdWU7XG4gICAgdGhpcy5maWVsZHMkLm5leHQoXG4gICAgICB2YWx1ZS5wcm9wZXJ0aWVzLmNvbHVtbnMubWFwKChjb2x1bW46IEZpZWxkc0Nhc2VXaWRnZXRWYWx1ZSwgaW5kZXg6IG51bWJlcikgPT4gKHtcbiAgICAgICAga2V5OiBjb2x1bW4ua2V5LFxuICAgICAgICBsYWJlbDogY29sdW1uLnRpdGxlLFxuICAgICAgICB2aWV3VHlwZTogY29sdW1uLmRpc3BsYXlQcm9wZXJ0aWVzPy50eXBlID8/IFZpZXdUeXBlLlRFWFQsXG4gICAgICAgIGNsYXNzTmFtZTogYHZhbHRpbW8td2lkZ2V0LXRhYmxlLS10cmFuc3BhcmVudCAke2luZGV4ID09PSAwICYmIHZhbHVlLnByb3BlcnRpZXMuZmlyc3RDb2x1bW5Bc1RpdGxlID8gJ3ZhbHRpbW8td2lkZ2V0LXRhYmxlLS10aXRsZScgOiAnJ31gLFxuICAgICAgICAuLi4oISFjb2x1bW4uZGlzcGxheVByb3BlcnRpZXM/LlsnZm9ybWF0J10gJiYge1xuICAgICAgICAgIGZvcm1hdDogY29sdW1uLmRpc3BsYXlQcm9wZXJ0aWVzWydmb3JtYXQnXSxcbiAgICAgICAgfSksXG4gICAgICAgIC4uLighIWNvbHVtbi5kaXNwbGF5UHJvcGVydGllcz8uWydkaWdpdHNJbmZvJ10gJiYge1xuICAgICAgICAgIGRpZ2l0c0luZm86IGNvbHVtbi5kaXNwbGF5UHJvcGVydGllc1snZGlnaXRzSW5mbyddLFxuICAgICAgICB9KSxcbiAgICAgICAgLi4uKCEhY29sdW1uLmRpc3BsYXlQcm9wZXJ0aWVzPy5bJ2Rpc3BsYXknXSAmJiB7XG4gICAgICAgICAgZGlzcGxheTogY29sdW1uLmRpc3BsYXlQcm9wZXJ0aWVzWydkaXNwbGF5J10sXG4gICAgICAgIH0pLFxuICAgICAgICAuLi4oISFjb2x1bW4uZGlzcGxheVByb3BlcnRpZXM/LlsnY3VycmVuY3lDb2RlJ10gJiYge1xuICAgICAgICAgIGN1cnJlbmN5Q29kZTogY29sdW1uLmRpc3BsYXlQcm9wZXJ0aWVzWydjdXJyZW5jeUNvZGUnXSxcbiAgICAgICAgfSksXG4gICAgICB9KSlcbiAgICApO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHdpZGdldENvbmZpZ3VyYXRpb24oKTogVGFibGVDYXNlV2lkZ2V0IHtcbiAgICByZXR1cm4gdGhpcy5fd2lkZ2V0Q29uZmlndXJhdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2luaXRpYWxOdW1iZXJPZkVsZW1lbnRzU3ViamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4obnVsbCk7XG5cbiAgcHJpdmF0ZSBnZXQgX2luaXRpYWxOdW1iZXJPZkVsZW1lbnRzJCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLl9pbml0aWFsTnVtYmVyT2ZFbGVtZW50c1N1YmplY3QkLnBpcGUoXG4gICAgICBmaWx0ZXIobnVtYmVyT2ZFbGVtZW50cyA9PiBudW1iZXJPZkVsZW1lbnRzICE9PSBudWxsKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgc2hvd1BhZ2luYXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSBfd2lkZ2V0RGF0YSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENhcmJvbkxpc3RJdGVtW10gfCBudWxsPihudWxsKTtcbiAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIHNldCB3aWRnZXREYXRhKHZhbHVlOiBQYWdlPENhcmJvbkxpc3RJdGVtPiB8IG51bGwpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG5cbiAgICB0aGlzLnNob3dQYWdpbmF0aW9uJC5uZXh0KHZhbHVlLnRvdGFsRWxlbWVudHMgPiB2YWx1ZS5zaXplKTtcbiAgICB0aGlzLl9pbml0aWFsTnVtYmVyT2ZFbGVtZW50c1N1YmplY3QkLm5leHQodmFsdWUubnVtYmVyT2ZFbGVtZW50cyk7XG4gICAgdGhpcy5fd2lkZ2V0RGF0YSQubmV4dCh2YWx1ZS5jb250ZW50KTtcblxuICAgIHRoaXMucGFnaW5hdGlvbk1vZGVsLnNldChcbiAgICAgIHZhbHVlLnRvdGFsUGFnZXMgPCAyXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IHtcbiAgICAgICAgICAgIGN1cnJlbnRQYWdlOiAxLFxuICAgICAgICAgICAgdG90YWxEYXRhTGVuZ3RoOiBNYXRoLmNlaWwodmFsdWUudG90YWxFbGVtZW50cyAvIHZhbHVlLnNpemUpLFxuICAgICAgICAgICAgcGFnZUxlbmd0aDogdmFsdWUuc2l6ZSxcbiAgICAgICAgICB9XG4gICAgKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgZmllbGRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29sdW1uQ29uZmlnW10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcXVlcnlQYXJhbXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcGFnaW5hdGlvbk1vZGVsID0gc2lnbmFsPFBhZ2luYXRpb25Nb2RlbD4obmV3IFBhZ2luYXRpb25Nb2RlbCgpKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgd2lkZ2V0RGF0YSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLl93aWRnZXREYXRhJCxcbiAgICB0aGlzLl9xdWVyeVBhcmFtcyQsXG4gICAgdGhpcy5faW5pdGlhbE51bWJlck9mRWxlbWVudHMkLFxuICBdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW2RhdGEsIHF1ZXJ5UGFyYW1zLCBpbml0aWFsTnVtYmVyT2ZFbGVtZW50c10pID0+XG4gICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgIXF1ZXJ5UGFyYW1zXG4gICAgICAgICAgPyBvZihkYXRhKVxuICAgICAgICAgIDogdGhpcy5kb3NzaWVyV2lkZ2V0c0FwaVNlcnZpY2VcbiAgICAgICAgICAgICAgLmdldFdpZGdldERhdGEoXG4gICAgICAgICAgICAgICAgdGhpcy5kb2N1bWVudElkLFxuICAgICAgICAgICAgICAgIHRoaXMudGFiS2V5LFxuICAgICAgICAgICAgICAgIHRoaXMud2lkZ2V0Q29uZmlndXJhdGlvbi5rZXksXG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbXNcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAucGlwZShtYXAoKHJlczogUGFnZTxDYXJib25MaXN0SXRlbT4pID0+IHJlcy5jb250ZW50KSksXG4gICAgICAgIG9mKGluaXRpYWxOdW1iZXJPZkVsZW1lbnRzKSxcbiAgICAgIF0pXG4gICAgKSxcbiAgICBmaWx0ZXIoKFtpdGVtc10pID0+ICEhaXRlbXMpLFxuICAgIG1hcCgoW2l0ZW1zLCBpbml0aWFsTnVtYmVyT2ZFbGVtZW50c10pID0+IHtcbiAgICAgIGlmIChpdGVtcy5sZW5ndGggPT09IGluaXRpYWxOdW1iZXJPZkVsZW1lbnRzKSB7XG4gICAgICAgIHJldHVybiBpdGVtcztcbiAgICAgIH1cblxuICAgICAgY29uc3Qgcm93cyA9IG5ldyBBcnJheTxudW1iZXI+KGluaXRpYWxOdW1iZXJPZkVsZW1lbnRzKS5maWxsKG51bGwpO1xuXG4gICAgICByZXR1cm4gcm93cy5tYXAoKF8sIGluZGV4KSA9PiBpdGVtc1tpbmRleF0gfHwge30pO1xuICAgIH0pXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb3NzaWVyV2lkZ2V0c0FwaVNlcnZpY2U6IERvc3NpZXJXaWRnZXRzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIHB1YmxpYyBvblNlbGVjdFBhZ2UocGFnZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fcXVlcnlQYXJhbXMkLm5leHQoYHBhZ2U9JHtwYWdlIC0gMX0mc2l6ZT0ke3RoaXMucGFnaW5hdGlvbk1vZGVsKCkucGFnZUxlbmd0aH1gKTtcbiAgICB0aGlzLnBhZ2luYXRpb25Nb2RlbC51cGRhdGUoKG1vZGVsOiBQYWdpbmF0aW9uTW9kZWwpID0+ICh7XG4gICAgICAuLi5tb2RlbCxcbiAgICAgIGN1cnJlbnRQYWdlOiBwYWdlLFxuICAgIH0pKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48Y2RzLXRpbGVcbiAgKm5nSWY9XCJ7XG4gICAgZmllbGRzOiBmaWVsZHMkIHwgYXN5bmMsXG4gICAgd2lkZ2V0RGF0YTogd2lkZ2V0RGF0YSQgfCBhc3luY1xuICB9IGFzIG9ic1wiXG4gIGNsYXNzPVwidmFsdGltby13aWRnZXQtdGFibGVcIlxuPlxuICA8c3BhbiBjbGFzcz1cIndpZGdldC10aXRsZVwiPnt7IHdpZGdldENvbmZpZ3VyYXRpb24/LnRpdGxlIH19PC9zcGFuPlxuXG4gIEBpZiAob2JzLndpZGdldERhdGEgJiYgb2JzLmZpZWxkcyAmJiBvYnMud2lkZ2V0RGF0YS5sZW5ndGgpIHtcbiAgICA8c2VjdGlvbiBjbGFzcz1cInZhbHRpbW8td2lkZ2V0LXRhYmxlX19jb250ZW50XCI+XG4gICAgICA8dmFsdGltby1jYXJib24tbGlzdFxuICAgICAgICBbaGVhZGVyXT1cImZhbHNlXCJcbiAgICAgICAgW2hpZGVUb29sYmFyXT1cInRydWVcIlxuICAgICAgICBbZmllbGRzXT1cIm9icy5maWVsZHNcIlxuICAgICAgICBbaXRlbXNdPVwib2JzLndpZGdldERhdGFcIlxuICAgICAgPlxuICAgICAgPC92YWx0aW1vLWNhcmJvbi1saXN0PlxuXG4gICAgICA8Y2RzLXBhZ2luYXRpb24tbmF2XG4gICAgICAgICpuZ0lmPVwicGFnaW5hdGlvbk1vZGVsKClcIlxuICAgICAgICBjbGFzcz1cInZhbHRpbW8td2lkZ2V0LXRhYmxlX19wYWdpbmF0aW9uXCJcbiAgICAgICAgW21vZGVsXT1cInBhZ2luYXRpb25Nb2RlbCgpXCJcbiAgICAgICAgKHNlbGVjdFBhZ2UpPVwib25TZWxlY3RQYWdlKCRldmVudClcIlxuICAgICAgPlxuICAgICAgPC9jZHMtcGFnaW5hdGlvbi1uYXY+XG4gICAgPC9zZWN0aW9uPlxuICB9IEBlbHNlIHtcbiAgICA8dmFsdGltby1uby1yZXN1bHRzXG4gICAgICBbY29sbGFwc2VWZXJ0aWNhbGx5XT1cInRydWVcIlxuICAgICAgW2Rlc2NyaXB0aW9uXT1cIidkb3NzaWVyLndpZGdldHMubm9EYXRhJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbc21hbGxQYWRkaW5nXT1cInRydWVcIlxuICAgID48L3ZhbHRpbW8tbm8tcmVzdWx0cz5cbiAgfVxuPC9jZHMtdGlsZT5cbiJdfQ==
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { CommonModule } from '@angular/common';
|
|
17
|
+
import { ChangeDetectionStrategy, Component, Input, ViewChild, } from '@angular/core';
|
|
18
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
19
|
+
import { CARBON_THEME, CarbonListModule, CurrentCarbonTheme, } from '@valtimo/components';
|
|
20
|
+
import { LoadingModule, TilesModule } from 'carbon-components-angular';
|
|
21
|
+
import { BehaviorSubject, catchError, combineLatest, filter, map, of, Subscription, switchMap, tap, } from 'rxjs';
|
|
22
|
+
import { CaseWidgetType } from '../../../../../../models';
|
|
23
|
+
import { WidgetCustomComponent } from '../custom/widget-custom.component';
|
|
24
|
+
import { WidgetFieldComponent } from '../field/widget-field.component';
|
|
25
|
+
import { WidgetFormioComponent } from '../formio/widget-formio.component';
|
|
26
|
+
import { WidgetTableComponent } from '../table/widget-table.component';
|
|
27
|
+
import { WidgetCollectionComponent } from '../collection/widget-collection.component';
|
|
28
|
+
import { WIDGET_HEIGHT_1X } from '../../../../../../constants';
|
|
29
|
+
import * as i0 from "@angular/core";
|
|
30
|
+
import * as i1 from "../../../../../../services";
|
|
31
|
+
import * as i2 from "@angular/router";
|
|
32
|
+
import * as i3 from "@valtimo/components";
|
|
33
|
+
import * as i4 from "@angular/common";
|
|
34
|
+
import * as i5 from "@ngx-translate/core";
|
|
35
|
+
export class WidgetBlockComponent {
|
|
36
|
+
set widget(value) {
|
|
37
|
+
this._widgetUuid = value.uuid;
|
|
38
|
+
this._widget$.next(value);
|
|
39
|
+
}
|
|
40
|
+
get widget$() {
|
|
41
|
+
return this._widget$.pipe(filter(widget => widget !== null));
|
|
42
|
+
}
|
|
43
|
+
get _viewContainerRef$() {
|
|
44
|
+
return this._viewContainerRefSubject$.pipe(filter(ref => !!ref));
|
|
45
|
+
}
|
|
46
|
+
constructor(dossierWidgetsLayoutService, dossierTabService, route, widgetsApiService, cdsThemeService, renderer, viewRef) {
|
|
47
|
+
this.dossierWidgetsLayoutService = dossierWidgetsLayoutService;
|
|
48
|
+
this.dossierTabService = dossierTabService;
|
|
49
|
+
this.route = route;
|
|
50
|
+
this.widgetsApiService = widgetsApiService;
|
|
51
|
+
this.cdsThemeService = cdsThemeService;
|
|
52
|
+
this.renderer = renderer;
|
|
53
|
+
this.viewRef = viewRef;
|
|
54
|
+
this._widget$ = new BehaviorSubject(null);
|
|
55
|
+
this._viewContainerRefSubject$ = new BehaviorSubject(null);
|
|
56
|
+
this._contentHeight$ = new BehaviorSubject(0);
|
|
57
|
+
this.blockHeightPx$ = combineLatest([
|
|
58
|
+
this._contentHeight$,
|
|
59
|
+
this._viewContainerRef$,
|
|
60
|
+
]).pipe(filter(([contentHeight]) => contentHeight !== 0), tap(([contentHeight, viewRef]) => {
|
|
61
|
+
const blockHeight = Math.ceil((contentHeight + 16) / WIDGET_HEIGHT_1X) * WIDGET_HEIGHT_1X;
|
|
62
|
+
this.renderer.setStyle(viewRef.element.nativeElement, 'height', `${blockHeight}px`);
|
|
63
|
+
this.dossierWidgetsLayoutService.triggerMuuriLayout();
|
|
64
|
+
}));
|
|
65
|
+
this.blockWidthPercentage$ = combineLatest([
|
|
66
|
+
this.dossierWidgetsLayoutService.amountOfColumns$,
|
|
67
|
+
this.widget$,
|
|
68
|
+
this._viewContainerRef$,
|
|
69
|
+
]).pipe(tap(([amountOfColumns, widget, viewRef]) => {
|
|
70
|
+
const percentage = widget.width > amountOfColumns ? 100 : (widget.width / amountOfColumns) * 100;
|
|
71
|
+
this.renderer.setStyle(viewRef.element.nativeElement, 'width', `${percentage}%`);
|
|
72
|
+
this.dossierWidgetsLayoutService.triggerMuuriLayout();
|
|
73
|
+
}));
|
|
74
|
+
this.CaseWidgetType = CaseWidgetType;
|
|
75
|
+
this.documentId$ = this.route.params.pipe(map(params => params?.documentId), filter(documentId => !!documentId));
|
|
76
|
+
this.tabKey$ = this.dossierTabService.activeTabKey$;
|
|
77
|
+
this.widgetData$ = combineLatest([
|
|
78
|
+
this.widget$,
|
|
79
|
+
this.tabKey$,
|
|
80
|
+
this.documentId$,
|
|
81
|
+
]).pipe(switchMap(([widget, tabkey, documentId]) =>
|
|
82
|
+
// custom component and formio widgets do not fetch additional data
|
|
83
|
+
widget.type === CaseWidgetType.CUSTOM || widget.type === CaseWidgetType.FORMIO
|
|
84
|
+
? of({})
|
|
85
|
+
: this.widgetsApiService.getWidgetData(documentId, tabkey, widget.key, widget.type === CaseWidgetType.TABLE || widget.type === CaseWidgetType.COLLECTION
|
|
86
|
+
? this.getPageSizeParam(widget)
|
|
87
|
+
: undefined)), tap(() => {
|
|
88
|
+
this.dossierWidgetsLayoutService.setCaseWidgetDataLoaded(this._widgetUuid);
|
|
89
|
+
}), catchError((error) => {
|
|
90
|
+
if (error.status === 404)
|
|
91
|
+
this.dossierWidgetsLayoutService.setCaseWidgetDataLoaded(this._widgetUuid);
|
|
92
|
+
return of(null);
|
|
93
|
+
}));
|
|
94
|
+
this.theme$ = combineLatest([this.cdsThemeService.currentTheme$, this.widget$]).pipe(map(([currentTheme, widgetConfiguration]) => {
|
|
95
|
+
return currentTheme === CurrentCarbonTheme.G10
|
|
96
|
+
? widgetConfiguration.highContrast
|
|
97
|
+
? CARBON_THEME.G100
|
|
98
|
+
: CARBON_THEME.G10
|
|
99
|
+
: widgetConfiguration.highContrast
|
|
100
|
+
? CARBON_THEME.WHITE
|
|
101
|
+
: CARBON_THEME.G90;
|
|
102
|
+
}));
|
|
103
|
+
this._subscriptions = new Subscription();
|
|
104
|
+
}
|
|
105
|
+
ngAfterViewInit() {
|
|
106
|
+
this._viewContainerRefSubject$.next(this.viewRef);
|
|
107
|
+
this.openContentHeightObserver();
|
|
108
|
+
}
|
|
109
|
+
ngOnDestroy() {
|
|
110
|
+
this._subscriptions.unsubscribe();
|
|
111
|
+
this._observer?.disconnect();
|
|
112
|
+
}
|
|
113
|
+
openContentHeightObserver() {
|
|
114
|
+
this._observer = new ResizeObserver(event => {
|
|
115
|
+
this.observerMutation(event);
|
|
116
|
+
});
|
|
117
|
+
this._observer.observe(this._widgetBlockContentRef.nativeElement);
|
|
118
|
+
}
|
|
119
|
+
observerMutation(event) {
|
|
120
|
+
const widgetContentHeight = event[0]?.borderBoxSize[0]?.blockSize;
|
|
121
|
+
if (typeof widgetContentHeight === 'number' && widgetContentHeight !== 0) {
|
|
122
|
+
this._contentHeight$.next(widgetContentHeight);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
getPageSizeParam(widgetConfiguration) {
|
|
126
|
+
return `size=${widgetConfiguration.properties.defaultPageSize}`;
|
|
127
|
+
}
|
|
128
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetBlockComponent, deps: [{ token: i1.DossierWidgetsLayoutService }, { token: i1.DossierTabService }, { token: i2.ActivatedRoute }, { token: i1.DossierWidgetsApiService }, { token: i3.CdsThemeService }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
129
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: WidgetBlockComponent, isStandalone: true, selector: "valtimo-dossier-widget-block", inputs: { widget: "widget" }, viewQueries: [{ propertyName: "_widgetBlockContentRef", first: true, predicate: ["widgetBlockContent"], descendants: true }, { propertyName: "_widgetBlockRef", first: true, predicate: ["widgetBlock"], descendants: true }], 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<ng-container\n *ngIf=\"{\n documentId: documentId$ | async,\n tabKey: tabKey$ | async,\n widgetConfiguration: widget$ | async,\n widgetData: widgetData$ | async,\n theme: theme$ | async,\n blockHeightPx: blockHeightPx$ | async,\n blockWidthPercentage: blockWidthPercentage$ | async\n } as obs\"\n>\n <div #widgetBlock class=\"widget-block\" [attr.data-carbon-theme]=\"obs.theme\">\n <div #widgetBlockContent class=\"widget-block__content\">\n @if (obs.widgetData) {\n @switch (obs.widgetConfiguration.type) {\n @case (CaseWidgetType.TABLE) {\n <valtimo-widget-table\n [documentId]=\"obs.documentId\"\n [tabKey]=\"obs.tabKey\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n ></valtimo-widget-table>\n }\n\n @case (CaseWidgetType.COLLECTION) {\n <valtimo-widget-collection\n [documentId]=\"obs.documentId\"\n [tabKey]=\"obs.tabKey\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n ></valtimo-widget-collection>\n }\n\n @case (CaseWidgetType.CUSTOM) {\n <valtimo-widget-custom [widgetConfig]=\"obs.widgetConfiguration\"></valtimo-widget-custom>\n }\n\n @case (CaseWidgetType.FIELDS) {\n <valtimo-widget-field\n [collapseVertically]=\"true\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n ></valtimo-widget-field>\n }\n\n @case (CaseWidgetType.FORMIO) {\n <valtimo-widget-formio\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [documentId]=\"obs.documentId\"\n ></valtimo-widget-formio>\n }\n\n @default {\n <div class=\"widget-block__not-available\">\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noWidget' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n </div>\n }\n }\n } @else {\n <div class=\"widget-block__not-available\">\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n </div>\n }\n </div>\n </div>\n</ng-container>\n", styles: [":host{display:block;position:absolute}.widget-block{width:100%;height:100%;box-sizing:border-box;padding:8px;overflow-wrap:break-word;background-color:var(--cds-layer-01);background-clip:content-box}.widget-block__not-available{padding:16px}\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: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: LoadingModule }, { kind: "component", type: WidgetTableComponent, selector: "valtimo-widget-table", inputs: ["documentId", "tabKey", "widgetConfiguration", "widgetData"] }, { kind: "component", type: WidgetCustomComponent, selector: "valtimo-widget-custom", inputs: ["widgetConfig"] }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i3.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TilesModule }, { kind: "component", type: WidgetFieldComponent, selector: "valtimo-widget-field", inputs: ["collapseVertically", "widgetConfiguration", "widgetData"] }, { kind: "component", type: WidgetFormioComponent, selector: "valtimo-widget-formio", inputs: ["documentId", "widgetConfiguration"] }, { kind: "component", type: WidgetCollectionComponent, selector: "valtimo-widget-collection", inputs: ["documentId", "tabKey", "widgetConfiguration", "widgetData"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
130
|
+
}
|
|
131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetBlockComponent, decorators: [{
|
|
132
|
+
type: Component,
|
|
133
|
+
args: [{ selector: 'valtimo-dossier-widget-block', standalone: true, imports: [
|
|
134
|
+
CommonModule,
|
|
135
|
+
LoadingModule,
|
|
136
|
+
WidgetTableComponent,
|
|
137
|
+
WidgetCustomComponent,
|
|
138
|
+
CarbonListModule,
|
|
139
|
+
TranslateModule,
|
|
140
|
+
TilesModule,
|
|
141
|
+
WidgetFieldComponent,
|
|
142
|
+
WidgetFormioComponent,
|
|
143
|
+
WidgetCollectionComponent,
|
|
144
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, 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<ng-container\n *ngIf=\"{\n documentId: documentId$ | async,\n tabKey: tabKey$ | async,\n widgetConfiguration: widget$ | async,\n widgetData: widgetData$ | async,\n theme: theme$ | async,\n blockHeightPx: blockHeightPx$ | async,\n blockWidthPercentage: blockWidthPercentage$ | async\n } as obs\"\n>\n <div #widgetBlock class=\"widget-block\" [attr.data-carbon-theme]=\"obs.theme\">\n <div #widgetBlockContent class=\"widget-block__content\">\n @if (obs.widgetData) {\n @switch (obs.widgetConfiguration.type) {\n @case (CaseWidgetType.TABLE) {\n <valtimo-widget-table\n [documentId]=\"obs.documentId\"\n [tabKey]=\"obs.tabKey\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n ></valtimo-widget-table>\n }\n\n @case (CaseWidgetType.COLLECTION) {\n <valtimo-widget-collection\n [documentId]=\"obs.documentId\"\n [tabKey]=\"obs.tabKey\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n ></valtimo-widget-collection>\n }\n\n @case (CaseWidgetType.CUSTOM) {\n <valtimo-widget-custom [widgetConfig]=\"obs.widgetConfiguration\"></valtimo-widget-custom>\n }\n\n @case (CaseWidgetType.FIELDS) {\n <valtimo-widget-field\n [collapseVertically]=\"true\"\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [widgetData]=\"obs.widgetData\"\n ></valtimo-widget-field>\n }\n\n @case (CaseWidgetType.FORMIO) {\n <valtimo-widget-formio\n [widgetConfiguration]=\"obs.widgetConfiguration\"\n [documentId]=\"obs.documentId\"\n ></valtimo-widget-formio>\n }\n\n @default {\n <div class=\"widget-block__not-available\">\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noWidget' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n </div>\n }\n }\n } @else {\n <div class=\"widget-block__not-available\">\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n </div>\n }\n </div>\n </div>\n</ng-container>\n", styles: [":host{display:block;position:absolute}.widget-block{width:100%;height:100%;box-sizing:border-box;padding:8px;overflow-wrap:break-word;background-color:var(--cds-layer-01);background-clip:content-box}.widget-block__not-available{padding:16px}\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"] }]
|
|
145
|
+
}], ctorParameters: () => [{ type: i1.DossierWidgetsLayoutService }, { type: i1.DossierTabService }, { type: i2.ActivatedRoute }, { type: i1.DossierWidgetsApiService }, { type: i3.CdsThemeService }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }], propDecorators: { _widgetBlockContentRef: [{
|
|
146
|
+
type: ViewChild,
|
|
147
|
+
args: ['widgetBlockContent']
|
|
148
|
+
}], _widgetBlockRef: [{
|
|
149
|
+
type: ViewChild,
|
|
150
|
+
args: ['widgetBlock']
|
|
151
|
+
}], widget: [{
|
|
152
|
+
type: Input
|
|
153
|
+
}] } });
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWJsb2NrLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1kZXRhaWwvdGFiL3dpZGdldHMvY29tcG9uZW50cy93aWRnZXQtYmxvY2svd2lkZ2V0LWJsb2NrLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1kZXRhaWwvdGFiL3dpZGdldHMvY29tcG9uZW50cy93aWRnZXQtYmxvY2svd2lkZ2V0LWJsb2NrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULEtBQUssRUFHTCxTQUFTLEdBRVYsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxZQUFZLEVBQ1osZ0JBQWdCLEVBRWhCLGtCQUFrQixHQUNuQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBQyxhQUFhLEVBQUUsV0FBVyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUNMLGVBQWUsRUFDZixVQUFVLEVBQ1YsYUFBYSxFQUNiLE1BQU0sRUFDTixHQUFHLEVBRUgsRUFBRSxFQUNGLFlBQVksRUFDWixTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFDLGNBQWMsRUFBeUMsTUFBTSwwQkFBMEIsQ0FBQztBQU1oRyxPQUFPLEVBQUMscUJB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YUFBYSwrQkFDYixvQkFBb0Isd0lBQ3BCLHFCQUFxQiwyRkFDckIsZ0JBQWdCLG9QQUNoQixlQUFlLDJGQUNmLFdBQVcsK0JBQ1gsb0JBQW9CLHNJQUNwQixxQkFBcUIsaUhBQ3JCLHlCQUF5Qjs7MkZBSWhCLG9CQUFvQjtrQkFuQmhDLFNBQVM7K0JBQ0UsOEJBQThCLGNBRzVCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2Isb0JBQW9CO3dCQUNwQixxQkFBcUI7d0JBQ3JCLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixXQUFXO3dCQUNYLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQix5QkFBeUI7cUJBQzFCLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNO3lSQUdOLHNCQUFzQjtzQkFBOUQsU0FBUzt1QkFBQyxvQkFBb0I7Z0JBQ0csZUFBZTtzQkFBaEQsU0FBUzt1QkFBQyxhQUFhO2dCQUVKLE1BQU07c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0h0dHBFcnJvclJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ0FSQk9OX1RIRU1FLFxuICBDYXJib25MaXN0TW9kdWxlLFxuICBDZHNUaGVtZVNlcnZpY2UsXG4gIEN1cnJlbnRDYXJib25UaGVtZSxcbn0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0xvYWRpbmdNb2R1bGUsIFRpbGVzTW9kdWxlfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY2F0Y2hFcnJvcixcbiAgY29tYmluZUxhdGVzdCxcbiAgZmlsdGVyLFxuICBtYXAsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBTdWJzY3JpcHRpb24sXG4gIHN3aXRjaE1hcCxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q2FzZVdpZGdldFR5cGUsIENhc2VXaWRnZXRXaXRoVXVpZCwgV2lkZ2V0VGFibGVDb250ZW50fSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgRG9zc2llclRhYlNlcnZpY2UsXG4gIERvc3NpZXJXaWRnZXRzQXBpU2VydmljZSxcbiAgRG9zc2llcldpZGdldHNMYXlvdXRTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge1dpZGdldEN1c3RvbUNvbXBvbmVudH0gZnJvbSAnLi4vY3VzdG9tL3dpZGdldC1jdXN0b20uY29tcG9uZW50JztcbmltcG9ydCB7V2lkZ2V0RmllbGRDb21wb25lbnR9IGZyb20gJy4uL2ZpZWxkL3dpZGdldC1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHtXaWRnZXRGb3JtaW9Db21wb25lbnR9IGZyb20gJy4uL2Zvcm1pby93aWRnZXQtZm9ybWlvLmNvbXBvbmVudCc7XG5pbXBvcnQge1dpZGdldFRhYmxlQ29tcG9uZW50fSBmcm9tICcuLi90YWJsZS93aWRnZXQtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7V2lkZ2V0Q29sbGVjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi4vY29sbGVjdGlvbi93aWRnZXQtY29sbGVjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtXSURHRVRfSEVJR0hUXzFYfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9jb25zdGFudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLWRvc3NpZXItd2lkZ2V0LWJsb2NrJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC1ibG9jay5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dpZGdldC1ibG9jay5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIExvYWRpbmdNb2R1bGUsXG4gICAgV2lkZ2V0VGFibGVDb21wb25lbnQsXG4gICAgV2lkZ2V0Q3VzdG9tQ29tcG9uZW50LFxuICAgIENhcmJvbkxpc3RNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIFRpbGVzTW9kdWxlLFxuICAgIFdpZGdldEZpZWxkQ29tcG9uZW50LFxuICAgIFdpZGdldEZvcm1pb0NvbXBvbmVudCxcbiAgICBXaWRnZXRDb2xsZWN0aW9uQ29tcG9uZW50LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0QmxvY2tDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCd3aWRnZXRCbG9ja0NvbnRlbnQnKSBwcml2YXRlIF93aWRnZXRCbG9ja0NvbnRlbnRSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCd3aWRnZXRCbG9jaycpIHByaXZhdGUgX3dpZGdldEJsb2NrUmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHdpZGdldCh2YWx1ZTogQ2FzZVdpZGdldFdpdGhVdWlkKSB7XG4gICAgdGhpcy5fd2lkZ2V0VXVpZCA9IHZhbHVlLnV1aWQ7XG4gICAgdGhpcy5fd2lkZ2V0JC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3dpZGdldCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENhc2VXaWRnZXRXaXRoVXVpZCB8IG51bGw+KG51bGwpO1xuXG4gIHB1YmxpYyBnZXQgd2lkZ2V0JCgpOiBPYnNlcnZhYmxlPENhc2VXaWRnZXRXaXRoVXVpZD4ge1xuICAgIHJldHVybiB0aGlzLl93aWRnZXQkLnBpcGUoZmlsdGVyKHdpZGdldCA9PiB3aWRnZXQgIT09IG51bGwpKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWZTdWJqZWN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Vmlld0NvbnRhaW5lclJlZiB8IG51bGw+KG51bGwpO1xuXG4gIHByaXZhdGUgZ2V0IF92aWV3Q29udGFpbmVyUmVmJCgpOiBPYnNlcnZhYmxlPFZpZXdDb250YWluZXJSZWY+IHtcbiAgICByZXR1cm4gdGhpcy5fdmlld0NvbnRhaW5lclJlZlN1YmplY3QkLnBpcGUoZmlsdGVyKHJlZiA9PiAhIXJlZikpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfY29udGVudEhlaWdodCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGJsb2NrSGVpZ2h0UHgkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5fY29udGVudEhlaWdodCQsXG4gICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZiQsXG4gIF0pLnBpcGUoXG4gICAgZmlsdGVyKChbY29udGVudEhlaWdodF0pID0+IGNvbnRlbnRIZWlnaHQgIT09IDApLFxuICAgIHRhcCgoW2NvbnRlbnRIZWlnaHQsIHZpZXdSZWZdKSA9PiB7XG4gICAgICBjb25zdCBibG9ja0hlaWdodCA9IE1hdGguY2VpbCgoY29udGVudEhlaWdodCArIDE2KSAvIFdJREdFVF9IRUlHSFRfMVgpICogV0lER0VUX0hFSUdIVF8xWDtcblxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh2aWV3UmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2Jsb2NrSGVpZ2h0fXB4YCk7XG4gICAgICB0aGlzLmRvc3NpZXJXaWRnZXRzTGF5b3V0U2VydmljZS50cmlnZ2VyTXV1cmlMYXlvdXQoKTtcbiAgICB9KVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBibG9ja1dpZHRoUGVyY2VudGFnZSQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLmRvc3NpZXJXaWRnZXRzTGF5b3V0U2VydmljZS5hbW91bnRPZkNvbHVtbnMkLFxuICAgIHRoaXMud2lkZ2V0JCxcbiAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmJCxcbiAgXSkucGlwZShcbiAgICB0YXAoKFthbW91bnRPZkNvbHVtbnMsIHdpZGdldCwgdmlld1JlZl0pID0+IHtcbiAgICAgIGNvbnN0IHBlcmNlbnRhZ2UgPVxuICAgICAgICB3aWRnZXQud2lkdGggPiBhbW91bnRPZkNvbHVtbnMgPyAxMDAgOiAod2lkZ2V0LndpZHRoIC8gYW1vdW50T2ZDb2x1bW5zKSAqIDEwMDtcblxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh2aWV3UmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgYCR7cGVyY2VudGFnZX0lYCk7XG4gICAgICB0aGlzLmRvc3NpZXJXaWRnZXRzTGF5b3V0U2VydmljZS50cmlnZ2VyTXV1cmlMYXlvdXQoKTtcbiAgICB9KVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBDYXNlV2lkZ2V0VHlwZSA9IENhc2VXaWRnZXRUeXBlO1xuXG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudElkJCA9IHRoaXMucm91dGUucGFyYW1zLnBpcGUoXG4gICAgbWFwKHBhcmFtcyA9PiBwYXJhbXM/LmRvY3VtZW50SWQpLFxuICAgIGZpbHRlcihkb2N1bWVudElkID0+ICEhZG9jdW1lbnRJZClcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgdGFiS2V5JDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5kb3NzaWVyVGFiU2VydmljZS5hY3RpdmVUYWJLZXkkO1xuXG4gIHB1YmxpYyByZWFkb25seSB3aWRnZXREYXRhJDogT2JzZXJ2YWJsZTxhbnlbXSB8IHt9IHwgbnVsbD4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLndpZGdldCQsXG4gICAgdGhpcy50YWJLZXkkLFxuICAgIHRoaXMuZG9jdW1lbnRJZCQsXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbd2lkZ2V0LCB0YWJrZXksIGRvY3VtZW50SWRdKSA9PlxuICAgICAgLy8gY3VzdG9tIGNvbXBvbmVudCBhbmQgZm9ybWlvIHdpZGdldHMgZG8gbm90IGZldGNoIGFkZGl0aW9uYWwgZGF0YVxuICAgICAgd2lkZ2V0LnR5cGUgPT09IENhc2VXaWRnZXRUeXBlLkNVU1RPTSB8fCB3aWRnZXQudHlwZSA9PT0gQ2FzZVdpZGdldFR5cGUuRk9STUlPXG4gICAgICAgID8gb2Yoe30pXG4gICAgICAgIDogdGhpcy53aWRnZXRzQXBpU2VydmljZS5nZXRXaWRnZXREYXRhKFxuICAgICAgICAgICAgZG9jdW1lbnRJZCxcbiAgICAgICAgICAgIHRhYmtleSxcbiAgICAgICAgICAgIHdpZGdldC5rZXksXG4gICAgICAgICAgICB3aWRnZXQudHlwZSA9PT0gQ2FzZVdpZGdldFR5cGUuVEFCTEUgfHwgd2lkZ2V0LnR5cGUgPT09IENhc2VXaWRnZXRUeXBlLkNPTExFQ1RJT05cbiAgICAgICAgICAgICAgPyB0aGlzLmdldFBhZ2VTaXplUGFyYW0od2lkZ2V0KVxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgIClcbiAgICApLFxuICAgIHRhcCgoKSA9PiB7XG4gICAgICB0aGlzLmRvc3NpZXJXaWRnZXRzTGF5b3V0U2VydmljZS5zZXRDYXNlV2lkZ2V0RGF0YUxvYWRlZCh0aGlzLl93aWRnZXRVdWlkKTtcbiAgICB9KSxcbiAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQwNClcbiAgICAgICAgdGhpcy5kb3NzaWVyV2lkZ2V0c0xheW91dFNlcnZpY2Uuc2V0Q2FzZVdpZGdldERhdGFMb2FkZWQodGhpcy5fd2lkZ2V0VXVpZCk7XG5cbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9KVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSB0aGVtZSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmNkc1RoZW1lU2VydmljZS5jdXJyZW50VGhlbWUkLCB0aGlzLndpZGdldCRdKS5waXBlKFxuICAgIG1hcCgoW2N1cnJlbnRUaGVtZSwgd2lkZ2V0Q29uZmlndXJhdGlvbl0pID0+IHtcbiAgICAgIHJldHVybiBjdXJyZW50VGhlbWUgPT09IEN1cnJlbnRDYXJib25UaGVtZS5HMTBcbiAgICAgICAgPyB3aWRnZXRDb25maWd1cmF0aW9uLmhpZ2hDb250cmFzdFxuICAgICAgICAgID8gQ0FSQk9OX1RIRU1FLkcxMDBcbiAgICAgICAgICA6IENBUkJPTl9USEVNRS5HMTBcbiAgICAgICAgOiB3aWRnZXRDb25maWd1cmF0aW9uLmhpZ2hDb250cmFzdFxuICAgICAgICAgID8gQ0FSQk9OX1RIRU1FLldISVRFXG4gICAgICAgICAgOiBDQVJCT05fVEhFTUUuRzkwO1xuICAgIH0pXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBwcml2YXRlIF9vYnNlcnZlciE6IFJlc2l6ZU9ic2VydmVyO1xuXG4gIHByaXZhdGUgX3dpZGdldFV1aWQhOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBkb3NzaWVyV2lkZ2V0c0xheW91dFNlcnZpY2U6IERvc3NpZXJXaWRnZXRzTGF5b3V0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvc3NpZXJUYWJTZXJ2aWNlOiBEb3NzaWVyVGFiU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpZGdldHNBcGlTZXJ2aWNlOiBEb3NzaWVyV2lkZ2V0c0FwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHNUaGVtZVNlcnZpY2U6IENkc1RoZW1lU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3UmVmOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge31cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWZTdWJqZWN0JC5uZXh0KHRoaXMudmlld1JlZik7XG4gICAgdGhpcy5vcGVuQ29udGVudEhlaWdodE9ic2VydmVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX29ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5Db250ZW50SGVpZ2h0T2JzZXJ2ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5fb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoZXZlbnQgPT4ge1xuICAgICAgdGhpcy5vYnNlcnZlck11dGF0aW9uKGV2ZW50KTtcbiAgICB9KTtcbiAgICB0aGlzLl9vYnNlcnZlci5vYnNlcnZlKHRoaXMuX3dpZGdldEJsb2NrQ29udGVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZXJNdXRhdGlvbihldmVudDogQXJyYXk8UmVzaXplT2JzZXJ2ZXJFbnRyeT4pOiB2b2lkIHtcbiAgICBjb25zdCB3aWRnZXRDb250ZW50SGVpZ2h0ID0gZXZlbnRbMF0/LmJvcmRlckJveFNpemVbMF0/LmJsb2NrU2l6ZTtcblxuICAgIGlmICh0eXBlb2Ygd2lkZ2V0Q29udGVudEhlaWdodCA9PT0gJ251bWJlcicgJiYgd2lkZ2V0Q29udGVudEhlaWdodCAhPT0gMCkge1xuICAgICAgdGhpcy5fY29udGVudEhlaWdodCQubmV4dCh3aWRnZXRDb250ZW50SGVpZ2h0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFBhZ2VTaXplUGFyYW0od2lkZ2V0Q29uZmlndXJhdGlvbjogQ2FzZVdpZGdldFdpdGhVdWlkKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYHNpemU9JHsod2lkZ2V0Q29uZmlndXJhdGlvbi5wcm9wZXJ0aWVzIGFzIFdpZGdldFRhYmxlQ29udGVudCkuZGVmYXVsdFBhZ2VTaXplfWA7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPG5nLWNvbnRhaW5lclxuICAqbmdJZj1cIntcbiAgICBkb2N1bWVudElkOiBkb2N1bWVudElkJCB8IGFzeW5jLFxuICAgIHRhYktleTogdGFiS2V5JCB8IGFzeW5jLFxuICAgIHdpZGdldENvbmZpZ3VyYXRpb246IHdpZGdldCQgfCBhc3luYyxcbiAgICB3aWRnZXREYXRhOiB3aWRnZXREYXRhJCB8IGFzeW5jLFxuICAgIHRoZW1lOiB0aGVtZSQgfCBhc3luYyxcbiAgICBibG9ja0hlaWdodFB4OiBibG9ja0hlaWdodFB4JCB8IGFzeW5jLFxuICAgIGJsb2NrV2lkdGhQZXJjZW50YWdlOiBibG9ja1dpZHRoUGVyY2VudGFnZSQgfCBhc3luY1xuICB9IGFzIG9ic1wiXG4+XG4gIDxkaXYgI3dpZGdldEJsb2NrIGNsYXNzPVwid2lkZ2V0LWJsb2NrXCIgW2F0dHIuZGF0YS1jYXJib24tdGhlbWVdPVwib2JzLnRoZW1lXCI+XG4gICAgPGRpdiAjd2lkZ2V0QmxvY2tDb250ZW50IGNsYXNzPVwid2lkZ2V0LWJsb2NrX19jb250ZW50XCI+XG4gICAgICBAaWYgKG9icy53aWRnZXREYXRhKSB7XG4gICAgICAgIEBzd2l0Y2ggKG9icy53aWRnZXRDb25maWd1cmF0aW9uLnR5cGUpIHtcbiAgICAgICAgICBAY2FzZSAoQ2FzZVdpZGdldFR5cGUuVEFCTEUpIHtcbiAgICAgICAgICAgIDx2YWx0aW1vLXdpZGdldC10YWJsZVxuICAgICAgICAgICAgICBbZG9jdW1lbnRJZF09XCJvYnMuZG9jdW1lbnRJZFwiXG4gICAgICAgICAgICAgIFt0YWJLZXldPVwib2JzLnRhYktleVwiXG4gICAgICAgICAgICAgIFt3aWRnZXRDb25maWd1cmF0aW9uXT1cIm9icy53aWRnZXRDb25maWd1cmF0aW9uXCJcbiAgICAgICAgICAgICAgW3dpZGdldERhdGFdPVwib2JzLndpZGdldERhdGFcIlxuICAgICAgICAgICAgPjwvdmFsdGltby13aWRnZXQtdGFibGU+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGNhc2UgKENhc2VXaWRnZXRUeXBlLkNPTExFQ1RJT04pIHtcbiAgICAgICAgICAgIDx2YWx0aW1vLXdpZGdldC1jb2xsZWN0aW9uXG4gICAgICAgICAgICAgIFtkb2N1bWVudElkXT1cIm9icy5kb2N1bWVudElkXCJcbiAgICAgICAgICAgICAgW3RhYktleV09XCJvYnMudGFiS2V5XCJcbiAgICAgICAgICAgICAgW3dpZGdldENvbmZpZ3VyYXRpb25dPVwib2JzLndpZGdldENvbmZpZ3VyYXRpb25cIlxuICAgICAgICAgICAgICBbd2lkZ2V0RGF0YV09XCJvYnMud2lkZ2V0RGF0YVwiXG4gICAgICAgICAgICA+PC92YWx0aW1vLXdpZGdldC1jb2xsZWN0aW9uPlxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBjYXNlIChDYXNlV2lkZ2V0VHlwZS5DVVNUT00pIHtcbiAgICAgICAgICAgIDx2YWx0aW1vLXdpZGdldC1jdXN0b20gW3dpZGdldENvbmZpZ109XCJvYnMud2lkZ2V0Q29uZmlndXJhdGlvblwiPjwvdmFsdGltby13aWRnZXQtY3VzdG9tPlxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBjYXNlIChDYXNlV2lkZ2V0VHlwZS5GSUVMRFMpIHtcbiAgICAgICAgICAgIDx2YWx0aW1vLXdpZGdldC1maWVsZFxuICAgICAgICAgICAgICBbY29sbGFwc2VWZXJ0aWNhbGx5XT1cInRydWVcIlxuICAgICAgICAgICAgICBbd2lkZ2V0Q29uZmlndXJhdGlvbl09XCJvYnMud2lkZ2V0Q29uZmlndXJhdGlvblwiXG4gICAgICAgICAgICAgIFt3aWRnZXREYXRhXT1cIm9icy53aWRnZXREYXRhXCJcbiAgICAgICAgICAgID48L3ZhbHRpbW8td2lkZ2V0LWZpZWxkPlxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBjYXNlIChDYXNlV2lkZ2V0VHlwZS5GT1JNSU8pIHtcbiAgICAgICAgICAgIDx2YWx0aW1vLXdpZGdldC1mb3JtaW9cbiAgICAgICAgICAgICAgW3dpZGdldENvbmZpZ3VyYXRpb25dPVwib2JzLndpZGdldENvbmZpZ3VyYXRpb25cIlxuICAgICAgICAgICAgICBbZG9jdW1lbnRJZF09XCJvYnMuZG9jdW1lbnRJZFwiXG4gICAgICAgICAgICA+PC92YWx0aW1vLXdpZGdldC1mb3JtaW8+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndpZGdldC1ibG9ja19fbm90LWF2YWlsYWJsZVwiPlxuICAgICAgICAgICAgICA8dmFsdGltby1uby1yZXN1bHRzXG4gICAgICAgICAgICAgICAgW2NvbGxhcHNlVmVydGljYWxseV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbZGVzY3JpcHRpb25dPVwiJ2Rvc3NpZXIud2lkZ2V0cy5ub1dpZGdldCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtzbWFsbFBhZGRpbmddPVwidHJ1ZVwiXG4gICAgICAgICAgICAgID48L3ZhbHRpbW8tbm8tcmVzdWx0cz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtYmxvY2tfX25vdC1hdmFpbGFibGVcIj5cbiAgICAgICAgICA8dmFsdGltby1uby1yZXN1bHRzXG4gICAgICAgICAgICBbY29sbGFwc2VWZXJ0aWNhbGx5XT1cInRydWVcIlxuICAgICAgICAgICAgW2Rlc2NyaXB0aW9uXT1cIidkb3NzaWVyLndpZGdldHMubm9EYXRhJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbc21hbGxQYWRkaW5nXT1cInRydWVcIlxuICAgICAgICAgID48L3ZhbHRpbW8tbm8tcmVzdWx0cz5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { ChangeDetectionStrategy, Component, Input, ViewChild, } from '@angular/core';
|
|
17
|
+
import { CommonModule } from '@angular/common';
|
|
18
|
+
import { WidgetBlockComponent } from '../widget-block/widget-block.component';
|
|
19
|
+
import { v4 as uuid } from 'uuid';
|
|
20
|
+
import { BehaviorSubject, delay, take } from 'rxjs';
|
|
21
|
+
import Muuri from 'muuri';
|
|
22
|
+
import * as i0 from "@angular/core";
|
|
23
|
+
import * as i1 from "../../../../../../services";
|
|
24
|
+
import * as i2 from "@angular/common";
|
|
25
|
+
export class WidgetsContainerComponent {
|
|
26
|
+
set widgets(value) {
|
|
27
|
+
const widgetsWithUuids = value.map(widget => ({ ...widget, uuid: uuid() }));
|
|
28
|
+
this.dossierWidgetsLayoutService.setWidgets(widgetsWithUuids);
|
|
29
|
+
this.widgetsWithUuids$.next(widgetsWithUuids);
|
|
30
|
+
}
|
|
31
|
+
constructor(dossierWidgetsLayoutService) {
|
|
32
|
+
this.dossierWidgetsLayoutService = dossierWidgetsLayoutService;
|
|
33
|
+
this.widgetsWithUuids$ = new BehaviorSubject([]);
|
|
34
|
+
}
|
|
35
|
+
ngAfterViewInit() {
|
|
36
|
+
this._observer = new ResizeObserver(event => {
|
|
37
|
+
this.observerMutation(event);
|
|
38
|
+
});
|
|
39
|
+
this._observer.observe(this._widgetsContainerRef.nativeElement);
|
|
40
|
+
this.initMuuri();
|
|
41
|
+
}
|
|
42
|
+
ngOnDestroy() {
|
|
43
|
+
this._observer?.disconnect();
|
|
44
|
+
}
|
|
45
|
+
observerMutation(event) {
|
|
46
|
+
const containerWidth = event[0]?.borderBoxSize[0]?.inlineSize;
|
|
47
|
+
if (typeof containerWidth === 'number' && containerWidth !== 0) {
|
|
48
|
+
this.dossierWidgetsLayoutService.setContainerWidth(containerWidth);
|
|
49
|
+
this.dossierWidgetsLayoutService.triggerMuuriLayout();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
initMuuri() {
|
|
53
|
+
this.dossierWidgetsLayoutService.loaded$.pipe(take(1), delay(300)).subscribe(() => {
|
|
54
|
+
this.dossierWidgetsLayoutService.setMuuri(new Muuri(this._widgetsContainerRef.nativeElement, {
|
|
55
|
+
layout: {
|
|
56
|
+
fillGaps: true,
|
|
57
|
+
},
|
|
58
|
+
layoutOnResize: false,
|
|
59
|
+
}));
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetsContainerComponent, deps: [{ token: i1.DossierWidgetsLayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
63
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.3", type: WidgetsContainerComponent, isStandalone: true, selector: "valtimo-dossier-widgets-container", inputs: { widgets: "widgets" }, viewQueries: [{ propertyName: "_widgetsContainerRef", first: true, predicate: ["widgetsContainer"], descendants: true }], 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 #widgetsContainer class=\"widgets-container\">\n @for (widget of widgetsWithUuids$ | async; track widget.uuid) {\n <valtimo-dossier-widget-block [widget]=\"widget\"></valtimo-dossier-widget-block>\n }\n</div>\n", styles: [".widgets-container{position:relative;width:calc(100% + 16px);margin-left:-8px;margin-top:-8px}\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: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "component", type: WidgetBlockComponent, selector: "valtimo-dossier-widget-block", inputs: ["widget"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
64
|
+
}
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetsContainerComponent, decorators: [{
|
|
66
|
+
type: Component,
|
|
67
|
+
args: [{ selector: 'valtimo-dossier-widgets-container', standalone: true, imports: [CommonModule, WidgetBlockComponent], changeDetection: ChangeDetectionStrategy.OnPush, 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 #widgetsContainer class=\"widgets-container\">\n @for (widget of widgetsWithUuids$ | async; track widget.uuid) {\n <valtimo-dossier-widget-block [widget]=\"widget\"></valtimo-dossier-widget-block>\n }\n</div>\n", styles: [".widgets-container{position:relative;width:calc(100% + 16px);margin-left:-8px;margin-top:-8px}\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"] }]
|
|
68
|
+
}], ctorParameters: () => [{ type: i1.DossierWidgetsLayoutService }], propDecorators: { _widgetsContainerRef: [{
|
|
69
|
+
type: ViewChild,
|
|
70
|
+
args: ['widgetsContainer']
|
|
71
|
+
}], widgets: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}] } });
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0cy1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvd2lkZ2V0cy9jb21wb25lbnRzL3dpZGdldHMtY29udGFpbmVyL3dpZGdldHMtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1kZXRhaWwvdGFiL3dpZGdldHMvY29tcG9uZW50cy93aWRnZXRzLWNvbnRhaW5lci93aWRnZXRzLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULEtBQUssRUFFTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBRTVFLE9BQU8sRUFBQyxFQUFFLElBQUksSUFBSSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7Ozs7QUFVMUIsTUFBTSxPQUFPLHlCQUF5QjtJQUtwQyxJQUFvQixPQUFPLENBQUMsS0FBbUI7UUFDN0MsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLEdBQUcsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsMkJBQTJCLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFJRCxZQUE2QiwyQkFBd0Q7UUFBeEQsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtRQVZyRSxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBdUIsRUFBRSxDQUFDLENBQUM7SUFVTSxDQUFDO0lBRWxGLGVBQWU7UUFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFaEUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQWlDO1FBQ3hELE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDO1FBRTlELElBQUksT0FBTyxjQUFjLEtBQUssUUFBUSxJQUFJLGNBQWMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvRCxJQUFJLENBQUMsMkJBQTJCLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDbkUsSUFBSSxDQUFDLDJCQUEyQixDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDeEQsQ0FBQztJQUNILENBQUM7SUFFTyxTQUFTO1FBQ2YsSUFBSSxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDaEYsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFFBQVEsQ0FDdkMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsRUFBRTtnQkFDakQsTUFBTSxFQUFFO29CQUNOLFFBQVEsRUFBRSxJQUFJO2lCQUNmO2dCQUNELGNBQWMsRUFBRSxLQUFLO2FBQ3RCLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQWhEVSx5QkFBeUI7a0dBQXpCLHlCQUF5Qix1UEN6Q3RDLDgyQkFxQkEsdXhCRGlCWSxZQUFZLG9GQUFFLG9CQUFvQjs7MkZBR2pDLHlCQUF5QjtrQkFSckMsU0FBUzsrQkFDRSxtQ0FBbUMsY0FHakMsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLG1CQUM1Qix1QkFBdUIsQ0FBQyxNQUFNO2dHQUdSLG9CQUFvQjtzQkFBMUQsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBSVQsT0FBTztzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2FzZVdpZGdldCwgQ2FzZVdpZGdldFdpdGhVdWlkfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtXaWRnZXRCbG9ja0NvbXBvbmVudH0gZnJvbSAnLi4vd2lkZ2V0LWJsb2NrL3dpZGdldC1ibG9jay5jb21wb25lbnQnO1xuaW1wb3J0IHtEb3NzaWVyV2lkZ2V0c0xheW91dFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7djQgYXMgdXVpZH0gZnJvbSAndXVpZCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgZGVsYXksIHRha2V9IGZyb20gJ3J4anMnO1xuaW1wb3J0IE11dXJpIGZyb20gJ211dXJpJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1kb3NzaWVyLXdpZGdldHMtY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldHMtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd2lkZ2V0cy1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgV2lkZ2V0QmxvY2tDb21wb25lbnRdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0c0NvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ3dpZGdldHNDb250YWluZXInKSBwcml2YXRlIF93aWRnZXRzQ29udGFpbmVyUmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBwdWJsaWMgcmVhZG9ubHkgd2lkZ2V0c1dpdGhVdWlkcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENhc2VXaWRnZXRXaXRoVXVpZFtdPihbXSk7XG5cbiAgQElucHV0KCkgcHVibGljIHNldCB3aWRnZXRzKHZhbHVlOiBDYXNlV2lkZ2V0W10pIHtcbiAgICBjb25zdCB3aWRnZXRzV2l0aFV1aWRzID0gdmFsdWUubWFwKHdpZGdldCA9PiAoey4uLndpZGdldCwgdXVpZDogdXVpZCgpfSkpO1xuICAgIHRoaXMuZG9zc2llcldpZGdldHNMYXlvdXRTZXJ2aWNlLnNldFdpZGdldHMod2lkZ2V0c1dpdGhVdWlkcyk7XG4gICAgdGhpcy53aWRnZXRzV2l0aFV1aWRzJC5uZXh0KHdpZGdldHNXaXRoVXVpZHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb2JzZXJ2ZXIhOiBSZXNpemVPYnNlcnZlcjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRvc3NpZXJXaWRnZXRzTGF5b3V0U2VydmljZTogRG9zc2llcldpZGdldHNMYXlvdXRTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoZXZlbnQgPT4ge1xuICAgICAgdGhpcy5vYnNlcnZlck11dGF0aW9uKGV2ZW50KTtcbiAgICB9KTtcbiAgICB0aGlzLl9vYnNlcnZlci5vYnNlcnZlKHRoaXMuX3dpZGdldHNDb250YWluZXJSZWYubmF0aXZlRWxlbWVudCk7XG5cbiAgICB0aGlzLmluaXRNdXVyaSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX29ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVyTXV0YXRpb24oZXZlbnQ6IEFycmF5PFJlc2l6ZU9ic2VydmVyRW50cnk+KTogdm9pZCB7XG4gICAgY29uc3QgY29udGFpbmVyV2lkdGggPSBldmVudFswXT8uYm9yZGVyQm94U2l6ZVswXT8uaW5saW5lU2l6ZTtcblxuICAgIGlmICh0eXBlb2YgY29udGFpbmVyV2lkdGggPT09ICdudW1iZXInICYmIGNvbnRhaW5lcldpZHRoICE9PSAwKSB7XG4gICAgICB0aGlzLmRvc3NpZXJXaWRnZXRzTGF5b3V0U2VydmljZS5zZXRDb250YWluZXJXaWR0aChjb250YWluZXJXaWR0aCk7XG4gICAgICB0aGlzLmRvc3NpZXJXaWRnZXRzTGF5b3V0U2VydmljZS50cmlnZ2VyTXV1cmlMYXlvdXQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRNdXVyaSgpOiB2b2lkIHtcbiAgICB0aGlzLmRvc3NpZXJXaWRnZXRzTGF5b3V0U2VydmljZS5sb2FkZWQkLnBpcGUodGFrZSgxKSwgZGVsYXkoMzAwKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZG9zc2llcldpZGdldHNMYXlvdXRTZXJ2aWNlLnNldE11dXJpKFxuICAgICAgICBuZXcgTXV1cmkodGhpcy5fd2lkZ2V0c0NvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICBmaWxsR2FwczogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxheW91dE9uUmVzaXplOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPGRpdiAjd2lkZ2V0c0NvbnRhaW5lciBjbGFzcz1cIndpZGdldHMtY29udGFpbmVyXCI+XG4gIEBmb3IgKHdpZGdldCBvZiB3aWRnZXRzV2l0aFV1aWRzJCB8IGFzeW5jOyB0cmFjayB3aWRnZXQudXVpZCkge1xuICAgIDx2YWx0aW1vLWRvc3NpZXItd2lkZ2V0LWJsb2NrIFt3aWRnZXRdPVwid2lkZ2V0XCI+PC92YWx0aW1vLWRvc3NpZXItd2lkZ2V0LWJsb2NrPlxuICB9XG48L2Rpdj5cbiJdfQ==
|