@valtimo/dashboard-management 12.0.0 → 12.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,7 +7,7 @@ import { Validators, ReactiveFormsModule } from '@angular/forms';
7
7
  import * as i2$1 from '@ngx-translate/core';
8
8
  import { TranslateModule } from '@ngx-translate/core';
9
9
  import * as i4 from '@valtimo/components';
10
- import { CARBON_CONSTANTS, MoveRowDirection, ViewType, ListModule, SpinnerModule, RenderInPageHeaderDirectiveModule, ConfirmationModalModule, CarbonListModule } from '@valtimo/components';
10
+ import { CARBON_CONSTANTS, ViewType, ListModule, SpinnerModule, RenderInPageHeaderDirectiveModule, ConfirmationModalModule, CarbonListModule } from '@valtimo/components';
11
11
  import * as i3 from 'carbon-components-angular';
12
12
  import { NotificationService, ButtonModule, DropdownModule, InputModule, ModalModule, NotificationModule, IconModule } from 'carbon-components-angular';
13
13
  import { ArrowDown16, ArrowUp16, Edit16 } from '@carbon/icons';
@@ -436,7 +436,8 @@ class WidgetModalComponent {
436
436
  const selectedDataSource = dataSources.find(source => source.key === selectedDataSourceKey);
437
437
  const availableDataFeatures = selectedDataSource?.dataFeatures;
438
438
  const compatibleDisplayTypes = supportedDisplayTypes.filter(displayType => {
439
- const supportedDataFeatures = displayType.requiredDataFeatures.filter(feature => availableDataFeatures?.includes(feature));
439
+ const supportedDataFeatures = displayType.requiredDataFeatures.filter(requiredDataFeature => !!availableDataFeatures?.some(availableDataFeature => this.trimAndToUpperCase(availableDataFeature) ===
440
+ this.trimAndToUpperCase(requiredDataFeature)));
440
441
  return supportedDataFeatures.length === displayType.requiredDataFeatures.length;
441
442
  });
442
443
  this._compatibleDisplayTypes$.next(compatibleDisplayTypes);
@@ -450,6 +451,9 @@ class WidgetModalComponent {
450
451
  this.disabled$.next(false);
451
452
  this.form.enable();
452
453
  }
454
+ trimAndToUpperCase(text) {
455
+ return `${text}`.trim().toUpperCase();
456
+ }
453
457
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: WidgetModalComponent, deps: [{ token: DOCUMENT }, { token: i1$1.FormBuilder }, { token: i2$1.TranslateService }, { token: i3.NotificationService }, { token: DashboardManagementService }, { token: i5.WidgetService }, { token: i5.WidgetTranslationService }], target: i0.ɵɵFactoryTarget.Component }); }
454
458
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: WidgetModalComponent, selector: "valtimo-widget-modal", inputs: { showModal$: "showModal$", type: "type", dashboard: "dashboard", widgetKey: "widgetKey", editWidgetConfiguration: "editWidgetConfiguration" }, outputs: { saveEvent: "saveEvent" }, providers: [NotificationService], 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 disabled: disabled$ | async,\n isCreate: type === 'create',\n isDelete: type === 'delete',\n isEdit: type === 'edit',\n open: open$ | async\n } as vars\"\n>\n <ng-container\n *ngIf=\"{\n create: vars.isCreate && ('dashboardManagement.widgets.add' | translate),\n delete: vars.isDelete && ('dashboardManagement.widgets.delete' | translate),\n edit: vars.isEdit && ('dashboardManagement.widgets.edit' | translate)\n } as titles\"\n >\n <cds-modal\n *ngIf=\"{\n title: titles.edit || titles.create || titles.delete\n } as translations\"\n valtimoCdsModal\n [open]=\"vars.open\"\n showFooter=\"true\"\n size=\"md\"\n title=\"{{ translations.title }}\"\n class=\"widget-modal\"\n >\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ translations.title }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <ng-container *ngIf=\"vars.isDelete\">\n {{ 'dashboardManagement.widgets.deleteDescription' | translate }}</ng-container\n >\n\n <ng-container *ngIf=\"vars.isEdit || vars.isCreate\">\n <ng-container *ngTemplateOutlet=\"widgetForm; context: {vars: vars}\"></ng-container>\n </ng-container>\n </section>\n\n <cds-modal-footer>\n <ng-container *ngIf=\"vars.isEdit || vars.isCreate\">\n <ng-container *ngTemplateOutlet=\"editButtons; context: {vars: vars}\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"vars.isDelete\">\n <ng-container *ngTemplateOutlet=\"deleteButtons; context: {vars: vars}\"></ng-container>\n </ng-container>\n </cds-modal-footer>\n </cds-modal>\n </ng-container>\n</ng-container>\n\n<ng-template #widgetForm let-vars=\"vars\">\n <form\n *ngIf=\"\n form && {\n dataSourceItems: dataSourceItems$ | async,\n displayTypeDropdownDisabled: displayTypeDropdownDisabled$ | async,\n displayTypeItems: displayTypeItems$ | async,\n selectedDataSourceKey: selectedDataSourceKey$ | async,\n selectedDisplayTypeKey: selectedDisplayTypeKey$ | async\n } as obs\n \"\n [formGroup]=\"form\"\n class=\"dashboard-modal__form\"\n >\n <div class=\"form__element\">\n <cds-label\n [helperText]=\"'dashboardManagement.widgets.form.titleHelperText' | translate\"\n [invalidText]=\"'dashboardManagement.widgets.form.titleHelperText' | translate\"\n [invalid]=\"title.dirty && title.invalid\"\n >\n {{ 'dashboardManagement.widgets.form.title' | translate }}\n\n <input\n cdsText\n formControlName=\"title\"\n [invalid]=\"title.dirty && title.invalid\"\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-label>\n </div>\n\n <div class=\"form__element\" *ngIf=\"obs.dataSourceItems\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"dataSource\"\n [helperText]=\"'dashboardManagement.widgets.form.dataSourceHelperText' | translate\"\n [invalidText]=\"'dashboardManagement.widgets.form.dateSourceHelperText' | translate\"\n [invalid]=\"dataSource.dirty && dataSource.invalid\"\n [label]=\"'dashboardManagement.widgets.form.dataSource' | translate\"\n (selected)=\"dataSourceSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.dataSourceItems\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <valtimo-widget-configuration-container\n *ngIf=\"obs.selectedDataSourceKey\"\n [dataSourceKey]=\"obs.selectedDataSourceKey\"\n [disabled]=\"vars.disabled\"\n [prefillConfiguration]=\"dataSourcePrefillConfig$ | async\"\n (configurationEvent)=\"dataSourceConfiguration($event)\"\n ></valtimo-widget-configuration-container>\n\n <div class=\"form__element\" *ngIf=\"obs.displayTypeItems\">\n <cds-dropdown\n [appendInline]=\"true\"\n formControlName=\"displayType\"\n [helperText]=\"'dashboardManagement.widgets.form.displayTypeHelperText' | translate\"\n [invalid]=\"displayType.dirty && displayType.invalid\"\n [invalidText]=\"'dashboardManagement.widgets.form.displayTypeHelperText' | translate\"\n [label]=\"'dashboardManagement.widgets.form.displayType' | translate\"\n (selected)=\"displayTypeSelected($event)\"\n >\n <cds-dropdown-list [items]=\"obs.displayTypeItems\" type=\"multi\"></cds-dropdown-list>\n </cds-dropdown>\n </div>\n\n <valtimo-widget-configuration-container\n *ngIf=\"obs.selectedDisplayTypeKey\"\n [disabled]=\"vars.disabled\"\n [displayTypeKey]=\"obs.selectedDisplayTypeKey\"\n [prefillConfiguration]=\"displayTypePrefillConfig$ | async\"\n (configurationEvent)=\"displayTypeConfiguration($event)\"\n ></valtimo-widget-configuration-container>\n </form>\n</ng-template>\n\n<ng-template #editButtons let-vars=\"vars\">\n <ng-container\n *ngIf=\"{\n dataSourceConfiguration: dataSourceConfiguration$ | async,\n displayTypeConfiguration: displayTypeConfiguration$ | async\n } as obs\"\n >\n <button cdsButton=\"ghost\" [disabled]=\"vars.disabled\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.widgets.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"\n form.invalid ||\n !obs.dataSourceConfiguration.valid ||\n !obs.displayTypeConfiguration.valid ||\n vars.disabled\n \"\n (click)=\"save()\"\n >\n {{ 'dashboardManagement.widgets.save' | translate }}\n </button>\n </ng-container>\n</ng-template>\n\n<ng-template #deleteButtons let-vars=\"vars\">\n <button cdsButton=\"secondary\" [disabled]=\"vars.disabled\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.widgets.cancel' | translate }}\n </button>\n\n <button cdsButton=\"danger\" [disabled]=\"vars.disabled\" (click)=\"delete()\">\n {{ 'dashboardManagement.widgets.delete' | translate }}\n </button>\n</ng-template>\n", styles: [".widget-modal .form__row{display:flex;flex-direction:row;justify-content:space-between;align-items:flex-start}.widget-modal .form__spacer{width:32px}.widget-modal .form__element{width:100%;margin-bottom:32px}.widget-modal .form__element.--with-button{display:flex;align-items:flex-end;flex-direction:row}.widget-modal .form__element.--with-button button{margin-left:16px}.widget-modal .form__element.--readonly input{background-color:transparent}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i3.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "component", type: i3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "component", type: i3.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i3.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i3.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i3.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i3.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: WidgetConfigurationContainerComponent, selector: "valtimo-widget-configuration-container", inputs: ["dataSourceKey", "displayTypeKey", "disabled", "prefillConfiguration"], outputs: ["configurationEvent"] }, { kind: "pipe", type: i2$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
455
459
  }
@@ -601,24 +605,24 @@ class DashboardDetailsComponent {
601
605
  }));
602
606
  this.lastItemIndex$ = new BehaviorSubject(0);
603
607
  this.loading$ = new BehaviorSubject(true);
608
+ this.dragAndDropDisabled$ = new BehaviorSubject(false);
604
609
  this._refreshWidgetsSubject$ = new BehaviorSubject(null);
605
610
  this._widgetData = null;
606
611
  this.widgetData$ = combineLatest([
607
612
  this._dashboardKey$,
608
613
  this._refreshWidgetsSubject$,
609
614
  ]).pipe(switchMap(([dashboardKey, refreshWidgets]) => {
610
- this.loading$.next(true);
611
615
  if (!this._widgetData || !refreshWidgets) {
616
+ this.loading$.next(true);
612
617
  return this.dashboardManagementService.getDashboardWidgetConfiguration(dashboardKey);
613
618
  }
614
- const { direction, index } = refreshWidgets;
615
- return this.dashboardManagementService.updateDashboardWidgetConfigurations(dashboardKey, direction === MoveRowDirection.UP
616
- ? this.swapWidgets(this._widgetData, index - 1, index)
617
- : this.swapWidgets(this._widgetData, index, index + 1));
619
+ this.dragAndDropDisabled$.next(true);
620
+ return this.dashboardManagementService.updateDashboardWidgetConfigurations(dashboardKey, refreshWidgets);
618
621
  }), tap((data) => {
619
622
  this._widgetData = data;
620
623
  this.lastItemIndex$.next(data.length - 1);
621
624
  this.loading$.next(false);
625
+ this.dragAndDropDisabled$.next(false);
622
626
  }));
623
627
  this.showModal$ = new BehaviorSubject(false);
624
628
  this.showEditDashboardModal$ = new BehaviorSubject(false);
@@ -643,8 +647,15 @@ class DashboardDetailsComponent {
643
647
  refreshDashboard() {
644
648
  this._refreshDashboardSubject$.next(null);
645
649
  }
646
- onMoveRowClick(moveEvent) {
647
- this._refreshWidgetsSubject$.next(moveEvent);
650
+ onItemsReordered(items) {
651
+ if (!items)
652
+ return;
653
+ this._refreshWidgetsSubject$.next(items);
654
+ }
655
+ editWidget(event) {
656
+ this.editWidgetConfiguration$.next({ ...event });
657
+ this.modalType = 'edit';
658
+ this.showModal();
648
659
  }
649
660
  setFields() {
650
661
  this.fields = [
@@ -655,11 +666,6 @@ class DashboardDetailsComponent {
655
666
  },
656
667
  ];
657
668
  }
658
- editWidget(event) {
659
- this.editWidgetConfiguration$.next({ ...event });
660
- this.modalType = 'edit';
661
- this.showModal();
662
- }
663
669
  deleteWidget(event) {
664
670
  this.editWidgetConfiguration$.next({ ...event });
665
671
  this.modalType = 'delete';
@@ -671,17 +677,12 @@ class DashboardDetailsComponent {
671
677
  showEditDashboardModal() {
672
678
  this.showEditDashboardModal$.next(true);
673
679
  }
674
- swapWidgets(dashboardWidgets, index1, index2) {
675
- const temp = [...dashboardWidgets];
676
- temp[index1] = temp.splice(index2, 1, temp[index1])[0];
677
- return temp;
678
- }
679
680
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DashboardDetailsComponent, deps: [{ token: DashboardManagementService }, { token: i2$2.DatePipe }, { token: i3.IconService }, { token: i4.PageTitleService }, { token: i5$1.ActivatedRoute }, { token: i2$1.TranslateService }, { token: i4.PageHeaderService }], target: i0.ɵɵFactoryTarget.Component }); }
680
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DashboardDetailsComponent, selector: "ng-component", 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 fields && {\n currentDashboard: currentDashboard$ | async,\n editWidgetConfiguration: editWidgetConfiguration$ | async,\n loading: loading$ | async,\n widgetData: widgetData$ | async\n } as obs\n \"\n>\n <div class=\"dashboard-detail-table\">\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [fields]=\"fields\"\n [header]=\"false\"\n [items]=\"obs.widgetData\"\n [loading]=\"obs.loading\"\n [movingRowsEnabled]=\"true\"\n (moveRow)=\"onMoveRowClick($event)\"\n >\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addWidgetButton\"></ng-container>\n </div>\n\n <valtimo-no-results\n [action]=\"addWidgetButton\"\n description=\"{{ 'dashboardManagement.widgets.noResults.description' | translate }}\"\n title=\"{{ 'dashboardManagement.widgets.noResults.title' | translate }}\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n </div>\n\n <valtimo-widget-modal\n [dashboard]=\"obs.currentDashboard\"\n [editWidgetConfiguration]=\"obs.editWidgetConfiguration\"\n [showModal$]=\"showModal$\"\n [type]=\"modalType\"\n [widgetKey]=\"obs.editWidgetConfiguration?.key\"\n (saveEvent)=\"refreshWidgets()\"\n ></valtimo-widget-modal>\n\n <valtimo-edit-dashboard-modal\n [dashboard]=\"obs.currentDashboard\"\n [showModal$]=\"showEditDashboardModal$\"\n (saveEvent)=\"refreshDashboard()\"\n >\n </valtimo-edit-dashboard-modal>\n</ng-container>\n\n<ng-container renderInPageHeader>\n <ng-template>\n <button\n cdsButton=\"tertiary\"\n [size]=\"(compactMode$ | async) ? 'sm' : 'md'\"\n (click)=\"editDashboard()\"\n >\n {{ 'dashboardManagement.widgets.editButton' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"edit\" size=\"16\"></svg>\n </button>\n </ng-template>\n</ng-container>\n\n<ng-template #addWidgetButton>\n <button cdsButton=\"primary\" [disabled]=\"loading$ | async\" (click)=\"addWidget()\">\n {{ 'dashboardManagement.widgets.add' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n", styles: [".dashboard-detail-table .move-buttons-container{width:100%;justify-content:flex-end;display:flex;flex-direction:row;right:-1rem;position:relative}.dashboard-detail-table .move-buttons-container button:not(:last-child){margin-right:8px}.dashboard-detail-table__actions{width:1px}.dashboard-detail-table-no-results{display:flex;justify-content:space-around;padding:6.25rem 0;gap:4rem}.dashboard-detail-table-no-results__title{font-size:1.75rem}.dashboard-detail-table-no-results__content{display:flex;flex-direction:column;justify-content:space-around}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i4.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i4.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title"] }, { kind: "component", type: WidgetModalComponent, selector: "valtimo-widget-modal", inputs: ["showModal$", "type", "dashboard", "widgetKey", "editWidgetConfiguration"], outputs: ["saveEvent"] }, { kind: "component", type: EditDashboardModalComponent, selector: "valtimo-edit-dashboard-modal", inputs: ["showModal$", "dashboard"], outputs: ["saveEvent"] }, { kind: "pipe", type: i2$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
681
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DashboardDetailsComponent, selector: "ng-component", 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 fields && {\n currentDashboard: currentDashboard$ | async,\n editWidgetConfiguration: editWidgetConfiguration$ | async,\n loading: loading$ | async,\n widgetData: widgetData$ | async,\n dragAndDropDisabled: dragAndDropDisabled$ | async\n } as obs\n \"\n>\n <div class=\"dashboard-detail-table\">\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [fields]=\"fields\"\n [header]=\"false\"\n [items]=\"obs.widgetData\"\n [loading]=\"obs.loading\"\n [dragAndDrop]=\"true\"\n [dragAndDropDisabled]=\"obs.dragAndDropDisabled\"\n (itemsReordered)=\"onItemsReordered($event)\"\n (rowClicked)=\"editWidget($event)\"\n >\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addWidgetButton\"></ng-container>\n </div>\n\n <valtimo-no-results\n [action]=\"addWidgetButton\"\n description=\"{{ 'dashboardManagement.widgets.noResults.description' | translate }}\"\n title=\"{{ 'dashboardManagement.widgets.noResults.title' | translate }}\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n </div>\n\n <valtimo-widget-modal\n [dashboard]=\"obs.currentDashboard\"\n [editWidgetConfiguration]=\"obs.editWidgetConfiguration\"\n [showModal$]=\"showModal$\"\n [type]=\"modalType\"\n [widgetKey]=\"obs.editWidgetConfiguration?.key\"\n (saveEvent)=\"refreshWidgets()\"\n ></valtimo-widget-modal>\n\n <valtimo-edit-dashboard-modal\n [dashboard]=\"obs.currentDashboard\"\n [showModal$]=\"showEditDashboardModal$\"\n (saveEvent)=\"refreshDashboard()\"\n >\n </valtimo-edit-dashboard-modal>\n</ng-container>\n\n<ng-container renderInPageHeader>\n <ng-template>\n <button\n cdsButton=\"tertiary\"\n [size]=\"(compactMode$ | async) ? 'sm' : 'md'\"\n (click)=\"editDashboard()\"\n >\n {{ 'dashboardManagement.widgets.editButton' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"edit\" size=\"16\"></svg>\n </button>\n </ng-template>\n</ng-container>\n\n<ng-template #addWidgetButton>\n <button cdsButton=\"primary\" [disabled]=\"loading$ | async\" (click)=\"addWidget()\">\n {{ 'dashboardManagement.widgets.add' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n", styles: [".dashboard-detail-table .move-buttons-container{width:100%;justify-content:flex-end;display:flex;flex-direction:row;right:-1rem;position:relative}.dashboard-detail-table .move-buttons-container button:not(:last-child){margin-right:8px}.dashboard-detail-table__actions{width:1px}.dashboard-detail-table-no-results{display:flex;justify-content:space-around;padding:6.25rem 0;gap:4rem}.dashboard-detail-table-no-results__title{font-size:1.75rem}.dashboard-detail-table-no-results__content{display:flex;flex-direction:column;justify-content:space-around}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i4.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: i4.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "component", type: WidgetModalComponent, selector: "valtimo-widget-modal", inputs: ["showModal$", "type", "dashboard", "widgetKey", "editWidgetConfiguration"], outputs: ["saveEvent"] }, { kind: "component", type: EditDashboardModalComponent, selector: "valtimo-edit-dashboard-modal", inputs: ["showModal$", "dashboard"], outputs: ["saveEvent"] }, { kind: "pipe", type: i2$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None }); }
681
682
  }
682
683
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DashboardDetailsComponent, decorators: [{
683
684
  type: Component,
684
- args: [{ encapsulation: ViewEncapsulation.None, 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 fields && {\n currentDashboard: currentDashboard$ | async,\n editWidgetConfiguration: editWidgetConfiguration$ | async,\n loading: loading$ | async,\n widgetData: widgetData$ | async\n } as obs\n \"\n>\n <div class=\"dashboard-detail-table\">\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [fields]=\"fields\"\n [header]=\"false\"\n [items]=\"obs.widgetData\"\n [loading]=\"obs.loading\"\n [movingRowsEnabled]=\"true\"\n (moveRow)=\"onMoveRowClick($event)\"\n >\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addWidgetButton\"></ng-container>\n </div>\n\n <valtimo-no-results\n [action]=\"addWidgetButton\"\n description=\"{{ 'dashboardManagement.widgets.noResults.description' | translate }}\"\n title=\"{{ 'dashboardManagement.widgets.noResults.title' | translate }}\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n </div>\n\n <valtimo-widget-modal\n [dashboard]=\"obs.currentDashboard\"\n [editWidgetConfiguration]=\"obs.editWidgetConfiguration\"\n [showModal$]=\"showModal$\"\n [type]=\"modalType\"\n [widgetKey]=\"obs.editWidgetConfiguration?.key\"\n (saveEvent)=\"refreshWidgets()\"\n ></valtimo-widget-modal>\n\n <valtimo-edit-dashboard-modal\n [dashboard]=\"obs.currentDashboard\"\n [showModal$]=\"showEditDashboardModal$\"\n (saveEvent)=\"refreshDashboard()\"\n >\n </valtimo-edit-dashboard-modal>\n</ng-container>\n\n<ng-container renderInPageHeader>\n <ng-template>\n <button\n cdsButton=\"tertiary\"\n [size]=\"(compactMode$ | async) ? 'sm' : 'md'\"\n (click)=\"editDashboard()\"\n >\n {{ 'dashboardManagement.widgets.editButton' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"edit\" size=\"16\"></svg>\n </button>\n </ng-template>\n</ng-container>\n\n<ng-template #addWidgetButton>\n <button cdsButton=\"primary\" [disabled]=\"loading$ | async\" (click)=\"addWidget()\">\n {{ 'dashboardManagement.widgets.add' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n", styles: [".dashboard-detail-table .move-buttons-container{width:100%;justify-content:flex-end;display:flex;flex-direction:row;right:-1rem;position:relative}.dashboard-detail-table .move-buttons-container button:not(:last-child){margin-right:8px}.dashboard-detail-table__actions{width:1px}.dashboard-detail-table-no-results{display:flex;justify-content:space-around;padding:6.25rem 0;gap:4rem}.dashboard-detail-table-no-results__title{font-size:1.75rem}.dashboard-detail-table-no-results__content{display:flex;flex-direction:column;justify-content:space-around}\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"] }]
685
+ args: [{ encapsulation: ViewEncapsulation.None, 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 fields && {\n currentDashboard: currentDashboard$ | async,\n editWidgetConfiguration: editWidgetConfiguration$ | async,\n loading: loading$ | async,\n widgetData: widgetData$ | async,\n dragAndDropDisabled: dragAndDropDisabled$ | async\n } as obs\n \"\n>\n <div class=\"dashboard-detail-table\">\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [fields]=\"fields\"\n [header]=\"false\"\n [items]=\"obs.widgetData\"\n [loading]=\"obs.loading\"\n [dragAndDrop]=\"true\"\n [dragAndDropDisabled]=\"obs.dragAndDropDisabled\"\n (itemsReordered)=\"onItemsReordered($event)\"\n (rowClicked)=\"editWidget($event)\"\n >\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addWidgetButton\"></ng-container>\n </div>\n\n <valtimo-no-results\n [action]=\"addWidgetButton\"\n description=\"{{ 'dashboardManagement.widgets.noResults.description' | translate }}\"\n title=\"{{ 'dashboardManagement.widgets.noResults.title' | translate }}\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n </div>\n\n <valtimo-widget-modal\n [dashboard]=\"obs.currentDashboard\"\n [editWidgetConfiguration]=\"obs.editWidgetConfiguration\"\n [showModal$]=\"showModal$\"\n [type]=\"modalType\"\n [widgetKey]=\"obs.editWidgetConfiguration?.key\"\n (saveEvent)=\"refreshWidgets()\"\n ></valtimo-widget-modal>\n\n <valtimo-edit-dashboard-modal\n [dashboard]=\"obs.currentDashboard\"\n [showModal$]=\"showEditDashboardModal$\"\n (saveEvent)=\"refreshDashboard()\"\n >\n </valtimo-edit-dashboard-modal>\n</ng-container>\n\n<ng-container renderInPageHeader>\n <ng-template>\n <button\n cdsButton=\"tertiary\"\n [size]=\"(compactMode$ | async) ? 'sm' : 'md'\"\n (click)=\"editDashboard()\"\n >\n {{ 'dashboardManagement.widgets.editButton' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"edit\" size=\"16\"></svg>\n </button>\n </ng-template>\n</ng-container>\n\n<ng-template #addWidgetButton>\n <button cdsButton=\"primary\" [disabled]=\"loading$ | async\" (click)=\"addWidget()\">\n {{ 'dashboardManagement.widgets.add' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n", styles: [".dashboard-detail-table .move-buttons-container{width:100%;justify-content:flex-end;display:flex;flex-direction:row;right:-1rem;position:relative}.dashboard-detail-table .move-buttons-container button:not(:last-child){margin-right:8px}.dashboard-detail-table__actions{width:1px}.dashboard-detail-table-no-results{display:flex;justify-content:space-around;padding:6.25rem 0;gap:4rem}.dashboard-detail-table-no-results__title{font-size:1.75rem}.dashboard-detail-table-no-results__content{display:flex;flex-direction:column;justify-content:space-around}\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"] }]
685
686
  }], ctorParameters: () => [{ type: DashboardManagementService }, { type: i2$2.DatePipe }, { type: i3.IconService }, { type: i4.PageTitleService }, { type: i5$1.ActivatedRoute }, { type: i2$1.TranslateService }, { type: i4.PageHeaderService }] });
686
687
 
687
688
  /*
@@ -777,7 +778,7 @@ class DashboardManagementComponent {
777
778
  this.showDeleteModal$.next(true);
778
779
  }
779
780
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DashboardManagementComponent, deps: [{ token: DashboardManagementService }, { token: i1$1.FormBuilder }, { token: i5$1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
780
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DashboardManagementComponent, selector: "ng-component", 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 *ngIf=\"tableData$ | async as data\">\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [header]=\"false\"\n [items]=\"data.items\"\n [loading]=\"data.loading\"\n [fields]=\"fields\"\n (rowClicked)=\"onRowClick($event)\"\n class=\"valtimo-dashboard-management__table\"\n >\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addDashboardButton\"></ng-container>\n </div>\n\n <valtimo-no-results\n [action]=\"addDashboardButton\"\n description=\"{{ 'dashboardManagement.noResults.description' | translate }}\"\n title=\"{{ 'dashboardManagement.noResults.title' | translate }}\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n</ng-container>\n\n<cds-modal\n valtimoCdsModal\n [open]=\"openModal$ | async\"\n showFooter=\"true\"\n title=\"{{ 'dashboardManagement.addDashboard' | translate }}\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'dashboardManagement.addDashboard' | translate }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form [formGroup]=\"form\" class=\"valtimo-dashboard-management__form\">\n <cds-label [invalid]=\"getControlInvalid('title')\">\n {{ 'dashboardManagement.addModal.name' | translate }}\n\n <input\n [attr.modal-primary-focus]=\"true\"\n [invalid]=\"getControlInvalid('title')\"\n formControlName=\"title\"\n cdsText\n placeholder=\"{{ 'dashboardManagement.addModal.namePlaceholder' | translate }}\"\n />\n </cds-label>\n\n <cds-label\n [helperText]=\"'dashboardManagement.addModal.descriptionHelperText' | translate\"\n [invalid]=\"getControlInvalid('description')\"\n >\n {{ 'dashboardManagement.description' | translate }}\n\n <input\n [invalid]=\"getControlInvalid('description')\"\n formControlName=\"description\"\n cdsText\n placeholder=\"{{ 'dashboardManagement.addModal.descriptionPlaceholder' | translate }}\"\n />\n </cds-label>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.cancel' | translate }}\n </button>\n\n <button [disabled]=\"this.form.invalid\" cdsButton=\"primary\" (click)=\"createDashboard()\">\n {{ 'dashboardManagement.create' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"dashboardManagement.deleteModal.confirm\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"dashboardManagement.deleteModalContent\"\n [outputOnConfirm]=\"deleteRowKey$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"dashboardManagement.delete\"\n (confirmEvent)=\"onConfirmEvent($event)\"\n></valtimo-confirmation-modal>\n\n<ng-template #addDashboardButton>\n <button cdsButton=\"primary\" (click)=\"openModal()\">\n {{ 'dashboardManagement.addDashboard' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n</ng-template>\n", styles: [".valtimo-dashboard-management__actions{width:1px}.valtimo-dashboard-management__form>*:not(:last-child){margin-bottom:32px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "component", type: i3.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i3.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i3.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i3.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i3.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i4.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i4.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title"] }, { kind: "pipe", type: i2$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
781
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: DashboardManagementComponent, selector: "ng-component", 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 *ngIf=\"tableData$ | async as data\">\n <valtimo-carbon-list\n [actionItems]=\"actionItems\"\n [header]=\"false\"\n [items]=\"data.items\"\n [loading]=\"data.loading\"\n [fields]=\"fields\"\n (rowClicked)=\"onRowClick($event)\"\n class=\"valtimo-dashboard-management__table\"\n >\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addDashboardButton\"></ng-container>\n </div>\n\n <valtimo-no-results\n [action]=\"addDashboardButton\"\n description=\"{{ 'dashboardManagement.noResults.description' | translate }}\"\n title=\"{{ 'dashboardManagement.noResults.title' | translate }}\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n</ng-container>\n\n<cds-modal\n valtimoCdsModal\n [open]=\"openModal$ | async\"\n showFooter=\"true\"\n title=\"{{ 'dashboardManagement.addDashboard' | translate }}\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'dashboardManagement.addDashboard' | translate }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form [formGroup]=\"form\" class=\"valtimo-dashboard-management__form\">\n <cds-label [invalid]=\"getControlInvalid('title')\">\n {{ 'dashboardManagement.addModal.name' | translate }}\n\n <input\n [attr.modal-primary-focus]=\"true\"\n [invalid]=\"getControlInvalid('title')\"\n formControlName=\"title\"\n cdsText\n placeholder=\"{{ 'dashboardManagement.addModal.namePlaceholder' | translate }}\"\n />\n </cds-label>\n\n <cds-label\n [helperText]=\"'dashboardManagement.addModal.descriptionHelperText' | translate\"\n [invalid]=\"getControlInvalid('description')\"\n >\n {{ 'dashboardManagement.description' | translate }}\n\n <input\n [invalid]=\"getControlInvalid('description')\"\n formControlName=\"description\"\n cdsText\n placeholder=\"{{ 'dashboardManagement.addModal.descriptionPlaceholder' | translate }}\"\n />\n </cds-label>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\">\n {{ 'dashboardManagement.cancel' | translate }}\n </button>\n\n <button [disabled]=\"this.form.invalid\" cdsButton=\"primary\" (click)=\"createDashboard()\">\n {{ 'dashboardManagement.create' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"dashboardManagement.deleteModal.confirm\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"dashboardManagement.deleteModalContent\"\n [outputOnConfirm]=\"deleteRowKey$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"dashboardManagement.delete\"\n (confirmEvent)=\"onConfirmEvent($event)\"\n></valtimo-confirmation-modal>\n\n<ng-template #addDashboardButton>\n <button cdsButton=\"primary\" (click)=\"openModal()\">\n {{ 'dashboardManagement.addDashboard' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n</ng-template>\n", styles: [".valtimo-dashboard-management__actions{width:1px}.valtimo-dashboard-management__form>*:not(:last-child){margin-bottom:32px}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "component", type: i3.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i3.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i3.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i3.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i3.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }, { kind: "directive", type: i3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i4.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: i4.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "pipe", type: i2$2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
781
782
  }
782
783
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: DashboardManagementComponent, decorators: [{
783
784
  type: Component,