@valtimo/components 13.52.0 → 13.54.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/assets/css/formio-carbon.scss +5 -2
- package/fesm2022/valtimo-components.mjs +297 -37
- package/fesm2022/valtimo-components.mjs.map +1 -1
- package/lib/components/carbon-list/action-item-hidden.pipe.d.ts +10 -0
- package/lib/components/carbon-list/action-item-hidden.pipe.d.ts.map +1 -0
- package/lib/components/carbon-list/carbon-list.module.d.ts +16 -15
- package/lib/components/carbon-list/carbon-list.module.d.ts.map +1 -1
- package/lib/components/carbon-list/services/carbon-list-drag-and-drop.service.d.ts +2 -0
- package/lib/components/carbon-list/services/carbon-list-drag-and-drop.service.d.ts.map +1 -1
- package/lib/components/color-picker/color-picker.component.d.ts +1 -0
- package/lib/components/color-picker/color-picker.component.d.ts.map +1 -1
- package/lib/components/left-sidebar/left-sidebar.component.d.ts +3 -0
- package/lib/components/left-sidebar/left-sidebar.component.d.ts.map +1 -1
- package/lib/components/left-sidebar/left-sidebar.module.d.ts +6 -1
- package/lib/components/left-sidebar/left-sidebar.module.d.ts.map +1 -1
- package/lib/components/menu/menu-configuration.resolver.d.ts.map +1 -1
- package/lib/components/menu/menu-route-match.util.d.ts +8 -0
- package/lib/components/menu/menu-route-match.util.d.ts.map +1 -0
- package/lib/components/menu/services/menu.service.d.ts.map +1 -1
- package/lib/components/quick-search/modal/quick-search-modal.component.d.ts +9 -0
- package/lib/components/quick-search/modal/quick-search-modal.component.d.ts.map +1 -1
- package/lib/components/quick-search/quick-search.component.d.ts +9 -0
- package/lib/components/quick-search/quick-search.component.d.ts.map +1 -1
- package/lib/components/search-fields/search-fields.component.d.ts.map +1 -1
- package/lib/components/status-selector/status-selector.component.d.ts +3 -0
- package/lib/components/status-selector/status-selector.component.d.ts.map +1 -1
- package/lib/constants/components.test-ids.d.ts +15 -0
- package/lib/constants/components.test-ids.d.ts.map +1 -1
- package/lib/directives/expand-on-active/expand-on-active.directive.d.ts +15 -0
- package/lib/directives/expand-on-active/expand-on-active.directive.d.ts.map +1 -0
- package/lib/directives/submenu-title-click/submenu-title-click.directive.d.ts +22 -0
- package/lib/directives/submenu-title-click/submenu-title-click.directive.d.ts.map +1 -0
- package/lib/models/carbon-list.model.d.ts +1 -0
- package/lib/models/carbon-list.model.d.ts.map +1 -1
- package/package.json +2 -2
- package/public_api.d.ts +1 -0
- package/public_api.d.ts.map +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, Pipe, NgModule, Injectable, RendererStyleFlags2, Inject, signal, computed, Input, Component, Directive, EventEmitter, Output, ViewContainerRef, ViewChild, HostBinding, HostListener, ChangeDetectionStrategy, ContentChildren, ViewEncapsulation, effect, inject, TemplateRef, ContentChild, ElementRef, forwardRef } from '@angular/core';
|
|
2
|
+
import { InjectionToken, Pipe, NgModule, Injectable, RendererStyleFlags2, Inject, signal, computed, Input, Component, Directive, EventEmitter, Output, ViewContainerRef, ViewChild, HostBinding, HostListener, ChangeDetectionStrategy, ContentChildren, ViewEncapsulation, effect, inject, ChangeDetectorRef, TemplateRef, ContentChild, ElementRef, forwardRef } from '@angular/core';
|
|
3
3
|
import { combineLatest, map, BehaviorSubject, switchMap, catchError, of, shareReplay, tap, Subscription, Observable, filter as filter$1, fromEvent, Subject, take as take$1, interval, distinctUntilChanged, takeUntil, merge, isObservable, startWith, debounceTime as debounceTime$1, timer, first } from 'rxjs';
|
|
4
4
|
import * as i1 from '@ngx-translate/core';
|
|
5
5
|
import { TranslateModule, TranslateLoader, TranslateService, TranslatePipe } from '@ngx-translate/core';
|
|
6
6
|
import * as i1$2 from '@valtimo/shared';
|
|
7
|
-
import { BaseApiService, IncludeFunction, ROLE_USER, ROLE_ADMIN, ROLE_DEVELOPER, VERSIONS, HttpLoaderFactory, getContextObservable, getCaseManagementRouteParams, getBuildingBlockManagementRouteParams, sanitizeKey, toKebabCase } from '@valtimo/shared';
|
|
7
|
+
import { BaseApiService, IncludeFunction, ROLE_USER, ROLE_ADMIN, ROLE_DEVELOPER, VERSIONS, HttpLoaderFactory, CASES_MENU_ITEM_ID, getContextObservable, getCaseManagementRouteParams, getBuildingBlockManagementRouteParams, sanitizeKey, toKebabCase } from '@valtimo/shared';
|
|
8
8
|
import * as i1$1 from '@angular/common/http';
|
|
9
9
|
import { HttpClient, HttpParams } from '@angular/common/http';
|
|
10
10
|
import { filter, map as map$1, take, tap as tap$1, debounceTime, distinctUntilChanged as distinctUntilChanged$1, takeUntil as takeUntil$1, startWith as startWith$1, switchMap as switchMap$1, delay } from 'rxjs/operators';
|
|
@@ -24,7 +24,7 @@ import moment from 'moment';
|
|
|
24
24
|
import User20 from '@carbon/icons/es/user/20';
|
|
25
25
|
import * as i2$2 from 'keycloak-angular';
|
|
26
26
|
import * as i2$3 from 'carbon-components-angular';
|
|
27
|
-
import { UIShellModule, IconModule, LinkModule, GridModule, TabsModule, StructuredListModule, ToggleModule, TagModule, DropdownModule, LayerModule, ButtonModule, TooltipModule as TooltipModule$1, SkeletonModule, LoadingModule, Table, TableHeaderItem, TableModel, TableItem, PaginationModule, TableModule as TableModule$1, ContentSwitcherModule, DialogModule, ModalModule as ModalModule$1, BreadcrumbModule, InputModule as InputModule$1, ComboBoxModule, ComboBox, CheckboxModule, AccordionModule, DatePickerModule as DatePickerModule$1, TimePickerModule, ModalButtonType, TilesModule, SelectModule as SelectModule$1, RadioModule as RadioModule$1, ModalService as ModalService$1, NotificationModule, ContextMenuModule, ToggletipModule } from 'carbon-components-angular';
|
|
27
|
+
import { UIShellModule, IconModule, LinkModule, GridModule, TabsModule, StructuredListModule, ToggleModule, TagModule, DropdownModule, LayerModule, ButtonModule, TooltipModule as TooltipModule$1, SideNavMenu, SkeletonModule, LoadingModule, Table, TableHeaderItem, TableModel, TableItem, PaginationModule, TableModule as TableModule$1, ContentSwitcherModule, DialogModule, ModalModule as ModalModule$1, BreadcrumbModule, InputModule as InputModule$1, ComboBoxModule, ComboBox, CheckboxModule, AccordionModule, DatePickerModule as DatePickerModule$1, TimePickerModule, ModalButtonType, TilesModule, SelectModule as SelectModule$1, RadioModule as RadioModule$1, ModalService as ModalService$1, NotificationModule, ContextMenuModule, ToggletipModule } from 'carbon-components-angular';
|
|
28
28
|
import * as i6 from '@angular/platform-browser';
|
|
29
29
|
import * as i2$1 from 'ngx-skeleton-loader';
|
|
30
30
|
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
|
|
@@ -1177,6 +1177,21 @@ const RIGHT_SIDEBAR_TEST_IDS = {
|
|
|
1177
1177
|
languageDropdown: 'rightSidebarLanguageDropdown',
|
|
1178
1178
|
themeDropdown: 'rightSidebarThemeDropdown',
|
|
1179
1179
|
};
|
|
1180
|
+
const STATUS_SELECTOR_TEST_IDS = {
|
|
1181
|
+
dropdown: 'statusSelectorDropdown',
|
|
1182
|
+
};
|
|
1183
|
+
const QUICK_SEARCH_TEST_IDS = {
|
|
1184
|
+
item: 'quickSearchItem',
|
|
1185
|
+
deleteOption: 'quickSearchDeleteOption',
|
|
1186
|
+
modal: 'quickSearchModal',
|
|
1187
|
+
titleInput: 'quickSearchTitleInput',
|
|
1188
|
+
duplicateError: 'quickSearchDuplicateError',
|
|
1189
|
+
cancelButton: 'quickSearchCancelButton',
|
|
1190
|
+
saveButton: 'quickSearchSaveButton',
|
|
1191
|
+
};
|
|
1192
|
+
const LEFT_SIDEBAR_TEST_IDS = {
|
|
1193
|
+
submenuChevron: 'leftSidebarSubmenuChevron',
|
|
1194
|
+
};
|
|
1180
1195
|
const COLOR_PICKER_TEST_IDS = {
|
|
1181
1196
|
label: 'colorPickerLabel',
|
|
1182
1197
|
container: 'colorPickerContainer',
|
|
@@ -4578,6 +4593,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
4578
4593
|
}]
|
|
4579
4594
|
}] });
|
|
4580
4595
|
|
|
4596
|
+
/*
|
|
4597
|
+
* Copyright 2015-2026 Ritense BV, the Netherlands.
|
|
4598
|
+
*
|
|
4599
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
4600
|
+
* you may not use this file except in compliance with the License.
|
|
4601
|
+
* You may obtain a copy of the License at
|
|
4602
|
+
*
|
|
4603
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
4604
|
+
*
|
|
4605
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
4606
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
4607
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
4608
|
+
* See the License for the specific language governing permissions and
|
|
4609
|
+
* limitations under the License.
|
|
4610
|
+
*/
|
|
4611
|
+
// The root route normalizes to ''.
|
|
4612
|
+
const normalizeMenuPath = (value) => ('/' +
|
|
4613
|
+
decodeURIComponent(value.split(/[?#]/)[0])
|
|
4614
|
+
.toLowerCase()
|
|
4615
|
+
.replace(/\/{2,}/g, '/')
|
|
4616
|
+
.replace(/^\/+/, '')).replace(/\/+$/, '');
|
|
4617
|
+
/**
|
|
4618
|
+
* How well a menu link matches the current url: the length of the link when the url is the link
|
|
4619
|
+
* itself or lies below it, 0 otherwise. Matches whole path segments, so `/cases/a` does not match
|
|
4620
|
+
* `/cases/a-b`.
|
|
4621
|
+
*/
|
|
4622
|
+
const getMenuLinkMatchScore = (currentUrl, link) => {
|
|
4623
|
+
const current = normalizeMenuPath(currentUrl);
|
|
4624
|
+
const normalizedLink = normalizeMenuPath(link);
|
|
4625
|
+
// The root link would prefix every url; only the root route is its own.
|
|
4626
|
+
if (normalizedLink === '')
|
|
4627
|
+
return current === '' ? 1 : 0;
|
|
4628
|
+
return current === normalizedLink || current.startsWith(normalizedLink + '/')
|
|
4629
|
+
? normalizedLink.length
|
|
4630
|
+
: 0;
|
|
4631
|
+
};
|
|
4632
|
+
|
|
4581
4633
|
/*
|
|
4582
4634
|
* Copyright 2015-2025 Ritense BV, the Netherlands.
|
|
4583
4635
|
*
|
|
@@ -4625,13 +4677,12 @@ class MenuService {
|
|
|
4625
4677
|
}
|
|
4626
4678
|
get closestSequence$() {
|
|
4627
4679
|
return combineLatest([this.currentRoute$, this.menuItems$]).pipe(filter(() => !this.pendingChangesService.pendingChanges), map$1(([currentRoute, menuItems]) => {
|
|
4628
|
-
|
|
4680
|
+
// No match means no highlight. Defaulting to '0' marked the first item -- the dashboard --
|
|
4681
|
+
// as active on every route no item owns.
|
|
4682
|
+
let closestSequence = '';
|
|
4629
4683
|
let highestDiff = 0;
|
|
4630
|
-
const normalize = (value) => ('/' + decodeURIComponent(value).toLowerCase().replace(/^\/+/, '')).replace(/\/+$/, '');
|
|
4631
|
-
const normalizedCurrent = normalize(currentRoute);
|
|
4632
4684
|
const checkItemMatch = (rawUrl, seq, parentSeq) => {
|
|
4633
|
-
const
|
|
4634
|
-
const diff = normalizedCurrent.length - normalizedCurrent.replace(normalizedUrl, '').length;
|
|
4685
|
+
const diff = getMenuLinkMatchScore(currentRoute, rawUrl);
|
|
4635
4686
|
if (diff > highestDiff) {
|
|
4636
4687
|
highestDiff = diff;
|
|
4637
4688
|
closestSequence = seq;
|
|
@@ -4641,6 +4692,11 @@ class MenuService {
|
|
|
4641
4692
|
menuItems.forEach(item => {
|
|
4642
4693
|
const topLink = Array.isArray(item.link) ? item.link.join('/') : '';
|
|
4643
4694
|
checkItemMatch(topLink, `${item.sequence}`);
|
|
4695
|
+
// Parent sequence is passed as its own parent, so the item shows up as a breadcrumb.
|
|
4696
|
+
if (Array.isArray(item.titleLink))
|
|
4697
|
+
checkItemMatch(item.titleLink.join('/'), `${item.sequence}`, `${item.sequence}`);
|
|
4698
|
+
// Routes the item owns without having a menu entry of their own, e.g. an unpinned group.
|
|
4699
|
+
item.sectionLinks?.forEach(sectionLink => checkItemMatch(sectionLink, `${item.sequence}`, `${item.sequence}`));
|
|
4644
4700
|
item.children?.forEach(child => {
|
|
4645
4701
|
if (Array.isArray(child.link)) {
|
|
4646
4702
|
const fullLink = [...(item.link || []), ...child.link].join('/');
|
|
@@ -5131,11 +5187,11 @@ class MenuItemTextComponent {
|
|
|
5131
5187
|
this.openInNewTab.emit();
|
|
5132
5188
|
}
|
|
5133
5189
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MenuItemTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5134
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: MenuItemTextComponent, isStandalone: false, selector: "valtimo-menu-item-text", inputs: { menuItem: "menuItem", accent: "accent", showOverFlowMenu: "showOverFlowMenu" }, outputs: { overflowMenuClosed: "overflowMenuClosed", openInNewTab: "openInNewTab" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2026 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<v-overflow-menu\n *ngIf=\"{titleTranslation: menuItem | menuItemTranslate | async} as obs\"\n class=\"menu-item-text-overflow\"\n [open]=\"showOverFlowMenu\"\n placement=\"right-start\"\n [menuWidth]=\"208\"\n [useHostAsReference]=\"true\"\n [portalToBody]=\"true\"\n (openChange)=\"onOpenChange($event)\"\n>\n <div overflowTrigger class=\"menu-item-text-container\" id=\"{{ menuItem?.id }}\">\n <span
|
|
5190
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: MenuItemTextComponent, isStandalone: false, selector: "valtimo-menu-item-text", inputs: { menuItem: "menuItem", accent: "accent", showOverFlowMenu: "showOverFlowMenu" }, outputs: { overflowMenuClosed: "overflowMenuClosed", openInNewTab: "openInNewTab" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2026 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<v-overflow-menu\n *ngIf=\"{titleTranslation: menuItem | menuItemTranslate | async} as obs\"\n class=\"menu-item-text-overflow\"\n [open]=\"showOverFlowMenu\"\n placement=\"right-start\"\n [menuWidth]=\"208\"\n [useHostAsReference]=\"true\"\n [portalToBody]=\"true\"\n (openChange)=\"onOpenChange($event)\"\n>\n <div overflowTrigger class=\"menu-item-text-container\" id=\"{{ menuItem?.id }}\">\n <span\n *ngIf=\"obs.titleTranslation\"\n [ngClass]=\"{'cds--link empty-menu-icon-text': accent}\"\n class=\"menu-item-label\"\n >\n <div class=\"menu-item-icon-container\">\n <i class=\"{{ menuItem.iconClass }}\"></i>\n </div>\n\n <span\n *ngIf=\"menuItem?.color\"\n class=\"menu-item-dot\"\n [style.background-color]=\"menuItem.color\"\n ></span>\n\n <span class=\"menu-item-title\">{{ obs.titleTranslation + (accent ? ' >' : '') }}</span>\n </span>\n </div>\n\n <v-overflow-menu-option (selected)=\"onSelectOpenInNewTab()\">{{\n 'interface.openInNewTab' | translate\n }}</v-overflow-menu-option>\n</v-overflow-menu>\n", styles: [".menu-item-text-overflow{width:100%;pointer-events:none;position:static!important}.menu-item-text-overflow .v-overflow-menu,.menu-item-text-overflow .v-overflow-menu__trigger,.menu-item-text-overflow .v-overflow-menu__trigger *{pointer-events:none}.menu-item-text-overflow .v-overflow-menu__pane{pointer-events:auto}.menu-item-text-overflow .v-overflow-menu,.menu-item-text-overflow .v-overflow-menu__trigger,.menu-item-text-container{display:flex;width:100%;min-width:0}.menu-item-text-container .menu-item-label{display:inline-flex;align-items:center;min-width:0}.menu-item-text-container .menu-item-title{align-self:baseline;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-item-text-container .menu-item-icon-container{position:absolute;margin-left:-.75rem;transform:translate(-100%)}.menu-item-text-container .empty-menu-icon-text{font-weight:600!important}.menu-item-text-container .menu-item-dot{display:inline-block;width:.5rem;height:.5rem;margin-right:.375rem;flex-shrink:0;align-self:center;border-radius:50%}\n/*!\n * Copyright 2015-2026 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: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: OverflowMenuComponent, selector: "v-overflow-menu", inputs: ["open", "placement", "menuWidth", "offsetX", "offsetY", "closeOnSelect", "useHostAsReference", "portalToBody"], outputs: ["openChange"] }, { kind: "component", type: OverflowMenuOptionComponent, selector: "v-overflow-menu-option", inputs: ["disabled", "type", "testId", "optionId"], outputs: ["selected"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: MenuItemTranslationPipe, name: "menuItemTranslate" }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
5135
5191
|
}
|
|
5136
5192
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: MenuItemTextComponent, decorators: [{
|
|
5137
5193
|
type: Component,
|
|
5138
|
-
args: [{ selector: 'valtimo-menu-item-text', encapsulation: ViewEncapsulation.None, standalone: false, template: "<!--\n ~ Copyright 2015-2026 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<v-overflow-menu\n *ngIf=\"{titleTranslation: menuItem | menuItemTranslate | async} as obs\"\n class=\"menu-item-text-overflow\"\n [open]=\"showOverFlowMenu\"\n placement=\"right-start\"\n [menuWidth]=\"208\"\n [useHostAsReference]=\"true\"\n [portalToBody]=\"true\"\n (openChange)=\"onOpenChange($event)\"\n>\n <div overflowTrigger class=\"menu-item-text-container\" id=\"{{ menuItem?.id }}\">\n <span
|
|
5194
|
+
args: [{ selector: 'valtimo-menu-item-text', encapsulation: ViewEncapsulation.None, standalone: false, template: "<!--\n ~ Copyright 2015-2026 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<v-overflow-menu\n *ngIf=\"{titleTranslation: menuItem | menuItemTranslate | async} as obs\"\n class=\"menu-item-text-overflow\"\n [open]=\"showOverFlowMenu\"\n placement=\"right-start\"\n [menuWidth]=\"208\"\n [useHostAsReference]=\"true\"\n [portalToBody]=\"true\"\n (openChange)=\"onOpenChange($event)\"\n>\n <div overflowTrigger class=\"menu-item-text-container\" id=\"{{ menuItem?.id }}\">\n <span\n *ngIf=\"obs.titleTranslation\"\n [ngClass]=\"{'cds--link empty-menu-icon-text': accent}\"\n class=\"menu-item-label\"\n >\n <div class=\"menu-item-icon-container\">\n <i class=\"{{ menuItem.iconClass }}\"></i>\n </div>\n\n <span\n *ngIf=\"menuItem?.color\"\n class=\"menu-item-dot\"\n [style.background-color]=\"menuItem.color\"\n ></span>\n\n <span class=\"menu-item-title\">{{ obs.titleTranslation + (accent ? ' >' : '') }}</span>\n </span>\n </div>\n\n <v-overflow-menu-option (selected)=\"onSelectOpenInNewTab()\">{{\n 'interface.openInNewTab' | translate\n }}</v-overflow-menu-option>\n</v-overflow-menu>\n", styles: [".menu-item-text-overflow{width:100%;pointer-events:none;position:static!important}.menu-item-text-overflow .v-overflow-menu,.menu-item-text-overflow .v-overflow-menu__trigger,.menu-item-text-overflow .v-overflow-menu__trigger *{pointer-events:none}.menu-item-text-overflow .v-overflow-menu__pane{pointer-events:auto}.menu-item-text-overflow .v-overflow-menu,.menu-item-text-overflow .v-overflow-menu__trigger,.menu-item-text-container{display:flex;width:100%;min-width:0}.menu-item-text-container .menu-item-label{display:inline-flex;align-items:center;min-width:0}.menu-item-text-container .menu-item-title{align-self:baseline;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-item-text-container .menu-item-icon-container{position:absolute;margin-left:-.75rem;transform:translate(-100%)}.menu-item-text-container .empty-menu-icon-text{font-weight:600!important}.menu-item-text-container .menu-item-dot{display:inline-block;width:.5rem;height:.5rem;margin-right:.375rem;flex-shrink:0;align-self:center;border-radius:50%}\n/*!\n * Copyright 2015-2026 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"] }]
|
|
5139
5195
|
}], propDecorators: { menuItem: [{
|
|
5140
5196
|
type: Input
|
|
5141
5197
|
}], accent: [{
|
|
@@ -5703,6 +5759,7 @@ function resolveCatalogItem(item, logger) {
|
|
|
5703
5759
|
?.map(child => resolveMenuConfigurationItem(child, logger))
|
|
5704
5760
|
.filter((child) => child !== null);
|
|
5705
5761
|
return buildMenuItem({
|
|
5762
|
+
id: item.itemId,
|
|
5706
5763
|
title: item.title ?? entry.defaultTitleKey,
|
|
5707
5764
|
link: stringToLink(entry.link),
|
|
5708
5765
|
iconClass: item.icon ?? entry.defaultIcon,
|
|
@@ -5770,6 +5827,8 @@ function menuContainsLink(items, normalisedLink) {
|
|
|
5770
5827
|
/** Builds a `MenuItem` with only the keys that are actually set, so resolved items match the static menu shape. */
|
|
5771
5828
|
function buildMenuItem(parts) {
|
|
5772
5829
|
const item = { title: parts.title };
|
|
5830
|
+
if (parts.id)
|
|
5831
|
+
item.id = parts.id;
|
|
5773
5832
|
const roles = parts.roles ?? [ROLE_USER];
|
|
5774
5833
|
item.roles = roles;
|
|
5775
5834
|
if (parts.link)
|
|
@@ -6561,6 +6620,134 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
6561
6620
|
args: ['ctrl-click']
|
|
6562
6621
|
}] } });
|
|
6563
6622
|
|
|
6623
|
+
/*
|
|
6624
|
+
* Copyright 2015-2026 Ritense BV, the Netherlands.
|
|
6625
|
+
*
|
|
6626
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
6627
|
+
* you may not use this file except in compliance with the License.
|
|
6628
|
+
* You may obtain a copy of the License at
|
|
6629
|
+
*
|
|
6630
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
6631
|
+
*
|
|
6632
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
6633
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
6634
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
6635
|
+
* See the License for the specific language governing permissions and
|
|
6636
|
+
* limitations under the License.
|
|
6637
|
+
*/
|
|
6638
|
+
const SUBMENU_SELECTOR = '.cds--side-nav__submenu';
|
|
6639
|
+
const SUBMENU_CHEVRON_SELECTOR = '.cds--side-nav__submenu-chevron';
|
|
6640
|
+
/**
|
|
6641
|
+
* Adds a title action to a `cds-sidenav-menu` header: a click on the header outside the chevron
|
|
6642
|
+
* emits `submenuTitleClickEvent` and still toggles the submenu. The chevron only toggles.
|
|
6643
|
+
* A right-click on the header emits `submenuTitleContextMenuEvent` instead of the browser menu.
|
|
6644
|
+
*/
|
|
6645
|
+
class SubmenuTitleClickDirective {
|
|
6646
|
+
constructor(element) {
|
|
6647
|
+
this.element = element;
|
|
6648
|
+
this.valtimoSubmenuTitleClick = false;
|
|
6649
|
+
this.submenuTitleClickEvent = new EventEmitter();
|
|
6650
|
+
this.submenuTitleContextMenuEvent = new EventEmitter();
|
|
6651
|
+
this.onCaptureClick = (event) => {
|
|
6652
|
+
if (!this.valtimoSubmenuTitleClick)
|
|
6653
|
+
return;
|
|
6654
|
+
// detail 0 = keyboard activation: toggle only, no title action.
|
|
6655
|
+
if (event.detail === 0)
|
|
6656
|
+
return;
|
|
6657
|
+
const target = event.target;
|
|
6658
|
+
if (!target.closest(SUBMENU_SELECTOR) || target.closest(SUBMENU_CHEVRON_SELECTOR))
|
|
6659
|
+
return;
|
|
6660
|
+
this.submenuTitleClickEvent.emit(event);
|
|
6661
|
+
};
|
|
6662
|
+
// Child items handle their own right-click; only the header itself is ours.
|
|
6663
|
+
this.onContextMenu = (event) => {
|
|
6664
|
+
if (!this.valtimoSubmenuTitleClick)
|
|
6665
|
+
return;
|
|
6666
|
+
if (!event.target.closest(SUBMENU_SELECTOR))
|
|
6667
|
+
return;
|
|
6668
|
+
event.preventDefault();
|
|
6669
|
+
this.submenuTitleContextMenuEvent.emit(event);
|
|
6670
|
+
};
|
|
6671
|
+
}
|
|
6672
|
+
ngOnInit() {
|
|
6673
|
+
this.element.nativeElement.addEventListener('click', this.onCaptureClick, true);
|
|
6674
|
+
this.element.nativeElement.addEventListener('contextmenu', this.onContextMenu);
|
|
6675
|
+
}
|
|
6676
|
+
ngAfterViewInit() {
|
|
6677
|
+
// Chevron lives in Carbon's template
|
|
6678
|
+
this.element.nativeElement
|
|
6679
|
+
.querySelector(SUBMENU_CHEVRON_SELECTOR)
|
|
6680
|
+
?.setAttribute('data-test-id', LEFT_SIDEBAR_TEST_IDS.submenuChevron);
|
|
6681
|
+
}
|
|
6682
|
+
ngOnDestroy() {
|
|
6683
|
+
this.element.nativeElement.removeEventListener('click', this.onCaptureClick, true);
|
|
6684
|
+
this.element.nativeElement.removeEventListener('contextmenu', this.onContextMenu);
|
|
6685
|
+
}
|
|
6686
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: SubmenuTitleClickDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6687
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.25", type: SubmenuTitleClickDirective, isStandalone: true, selector: "[valtimoSubmenuTitleClick]", inputs: { valtimoSubmenuTitleClick: "valtimoSubmenuTitleClick" }, outputs: { submenuTitleClickEvent: "submenuTitleClickEvent", submenuTitleContextMenuEvent: "submenuTitleContextMenuEvent" }, ngImport: i0 }); }
|
|
6688
|
+
}
|
|
6689
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: SubmenuTitleClickDirective, decorators: [{
|
|
6690
|
+
type: Directive,
|
|
6691
|
+
args: [{
|
|
6692
|
+
selector: '[valtimoSubmenuTitleClick]',
|
|
6693
|
+
standalone: true,
|
|
6694
|
+
}]
|
|
6695
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { valtimoSubmenuTitleClick: [{
|
|
6696
|
+
type: Input
|
|
6697
|
+
}], submenuTitleClickEvent: [{
|
|
6698
|
+
type: Output
|
|
6699
|
+
}], submenuTitleContextMenuEvent: [{
|
|
6700
|
+
type: Output
|
|
6701
|
+
}] } });
|
|
6702
|
+
|
|
6703
|
+
/*
|
|
6704
|
+
* Copyright 2015-2026 Ritense BV, the Netherlands.
|
|
6705
|
+
*
|
|
6706
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
6707
|
+
* you may not use this file except in compliance with the License.
|
|
6708
|
+
* You may obtain a copy of the License at
|
|
6709
|
+
*
|
|
6710
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
6711
|
+
*
|
|
6712
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
6713
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
6714
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
6715
|
+
* See the License for the specific language governing permissions and
|
|
6716
|
+
* limitations under the License.
|
|
6717
|
+
*/
|
|
6718
|
+
/**
|
|
6719
|
+
* Expands the host `cds-sidenav-menu` whenever its section becomes active. It never collapses the
|
|
6720
|
+
* menu, so the user can still toggle it freely while staying in the section.
|
|
6721
|
+
*/
|
|
6722
|
+
class ExpandOnActiveDirective {
|
|
6723
|
+
constructor() {
|
|
6724
|
+
this.valtimoExpandOnActive = false;
|
|
6725
|
+
this.menu = inject(SideNavMenu, { self: true });
|
|
6726
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
6727
|
+
}
|
|
6728
|
+
ngOnChanges(changes) {
|
|
6729
|
+
const change = changes['valtimoExpandOnActive'];
|
|
6730
|
+
if (change?.currentValue === true && !change.previousValue) {
|
|
6731
|
+
// Deferred: a title click activates the section before Carbon's own toggle() handles it.
|
|
6732
|
+
setTimeout(() => {
|
|
6733
|
+
this.menu.expanded = true;
|
|
6734
|
+
this.cdr.markForCheck();
|
|
6735
|
+
});
|
|
6736
|
+
}
|
|
6737
|
+
}
|
|
6738
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: ExpandOnActiveDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6739
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.25", type: ExpandOnActiveDirective, isStandalone: true, selector: "[valtimoExpandOnActive]", inputs: { valtimoExpandOnActive: "valtimoExpandOnActive" }, usesOnChanges: true, ngImport: i0 }); }
|
|
6740
|
+
}
|
|
6741
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: ExpandOnActiveDirective, decorators: [{
|
|
6742
|
+
type: Directive,
|
|
6743
|
+
args: [{
|
|
6744
|
+
selector: '[valtimoExpandOnActive]',
|
|
6745
|
+
standalone: true,
|
|
6746
|
+
}]
|
|
6747
|
+
}], propDecorators: { valtimoExpandOnActive: [{
|
|
6748
|
+
type: Input
|
|
6749
|
+
}] } });
|
|
6750
|
+
|
|
6564
6751
|
class LeftSidebarComponent {
|
|
6565
6752
|
onPageClick(targetElement) {
|
|
6566
6753
|
combineLatest([
|
|
@@ -6586,9 +6773,11 @@ class LeftSidebarComponent {
|
|
|
6586
6773
|
this.configService = configService;
|
|
6587
6774
|
this.includeFunctionObservables = {};
|
|
6588
6775
|
this.menuItems$ = this.menuService.menuItems$;
|
|
6776
|
+
this.casesMenuItemId = CASES_MENU_ITEM_ID;
|
|
6589
6777
|
this.menuItemsLoaded$ = this.menuService.menuItemsLoaded$;
|
|
6590
6778
|
this.sideBarExpanded$ = this.shellService.sideBarExpanded$;
|
|
6591
6779
|
this.closestSequence$ = this.menuService.closestSequence$;
|
|
6780
|
+
this.activeParentSequence$ = this.menuService.activeParentSequenceNumber$;
|
|
6592
6781
|
this.overflowMenuSequence$ = new BehaviorSubject('');
|
|
6593
6782
|
this._breakpointsInitialized = false;
|
|
6594
6783
|
this._menuCollapsedByDefaultInitialized = false;
|
|
@@ -6636,6 +6825,15 @@ class LeftSidebarComponent {
|
|
|
6636
6825
|
});
|
|
6637
6826
|
}
|
|
6638
6827
|
}
|
|
6828
|
+
onSubmenuTitleClick(menuItem, event) {
|
|
6829
|
+
if (!menuItem.titleLink)
|
|
6830
|
+
return;
|
|
6831
|
+
if (event.ctrlKey || event.metaKey) {
|
|
6832
|
+
this.openInNewTab(menuItem.titleLink);
|
|
6833
|
+
return;
|
|
6834
|
+
}
|
|
6835
|
+
this.navigateToRoute(menuItem.titleLink, event);
|
|
6836
|
+
}
|
|
6639
6837
|
onRightClick(sequence) {
|
|
6640
6838
|
this.overflowMenuSequence$.next(sequence);
|
|
6641
6839
|
return false;
|
|
@@ -6703,11 +6901,11 @@ class LeftSidebarComponent {
|
|
|
6703
6901
|
});
|
|
6704
6902
|
}
|
|
6705
6903
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: LeftSidebarComponent, deps: [{ token: i0.ElementRef }, { token: MenuService }, { token: ShellService }, { token: i3$1.BreakpointObserver }, { token: i1$3.Router }, { token: i1$2.ConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6706
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: LeftSidebarComponent, isStandalone: false, selector: "valtimo-left-sidebar", host: { listeners: { "document:click": "onPageClick($event.target)" } }, viewQueries: [{ propertyName: "toggleButtonRef", first: true, predicate: ["toggleButton"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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-sidenav\n *ngIf=\"{\n closestSequence: closestSequence$ | async,\n overflowMenuSequence: overflowMenuSequence$ | async,\n sideBarExpanded: sideBarExpanded$ | async,\n menuItemsLoaded: menuItemsLoaded$ | async,\n menuItems: menuItems$ | async,\n } as obs\"\n [allowExpansion]=\"false\"\n [expanded]=\"obs.sideBarExpanded\"\n>\n <ng-container *ngIf=\"obs.menuItemsLoaded; else loadingTemplate\">\n <ng-container *ngFor=\"let menuItem of obs.menuItems; trackBy: trackByMenuItem\">\n <ng-container *ngIf=\"!menuItem.children\">\n <ng-container\n *ngTemplateOutlet=\"\n topMenuItem;\n context: {\n menuItem: menuItem,\n closestSequence: obs.closestSequence,\n overflowMenuSequence: obs.overflowMenuSequence,\n }\n \"\n ></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"menuItem.children\">\n <ng-container\n *ngTemplateOutlet=\"\n topMenuItem;\n context: {\n closestSequence: obs.closestSequence,\n menuItem: menuItem,\n overflowMenuSequence: obs.overflowMenuSequence,\n }\n \"\n ></ng-container>\n\n <div [ngClass]=\"{\n 'menu-item--hidden': menuItem.includeFunction !== undefined,\n 'menu-item--visible':\n menuItem.includeFunction !== undefined &&\n (includeFunctionObservables[menuItem.title] | async),\n }\">\n <ng-container *ngTemplateOutlet=\"subMenuIcon; context: {menuItem: menuItem}\"></ng-container>\n\n <cds-sidenav-menu\n [title]=\"menuItem | menuItemTranslate | async\"\n [attr.data-testid]=\"'sidenav-item-' + menuItem.title\"\n >\n <ng-container\n *ngFor=\"let childMenuItem of menuItem.children; trackBy: trackByMenuItem\"\n >\n <ng-container\n *ngIf=\"{\n disableCaseCount: disableCaseCount$ | async,\n count: childMenuItem?.count$ && (childMenuItem?.count$ | async),\n sequence: '' + menuItem.sequence + '.' + childMenuItem.sequence,\n } as vars\"\n >\n <cds-sidenav-item\n [attr.data-testid]=\"'sidenav-item-' + childMenuItem?.title\"\n [title]=\"\n menuItem.title === 'Cases' || menuItem.title === 'Dossiers'\n ? (childMenuItem | menuItemTranslate | async)\n : null\n \"\n [ngClass]=\"{\n 'cds--side-nav__item--empty': !childMenuItem.link,\n 'menu-item--hidden': childMenuItem.includeFunction !== undefined,\n 'menu-item--visible':\n childMenuItem.includeFunction !== undefined &&\n (includeFunctionObservables[childMenuItem.title] | async),\n }\"\n [active]=\"vars.sequence === obs.closestSequence\"\n [href]=\"vars?.count ? 'javascript:return false;' : 'javascript:void(0);'\"\n (click)=\"navigateToRoute(childMenuItem.link, $event)\"\n (contextmenu)=\"onRightClick(vars.sequence)\"\n (ctrl-click)=\"openInNewTab(childMenuItem.link)\"\n >\n <valtimo-menu-item-text\n [accent]=\"!childMenuItem.link\"\n [menuItem]=\"childMenuItem\"\n [showOverFlowMenu]=\"obs.overflowMenuSequence === vars.sequence\"\n (openInNewTab)=\"openInNewTab(childMenuItem.link)\"\n (overflowMenuClosed)=\"onOverflowMenuClosed(vars.sequence)\"\n ></valtimo-menu-item-text>\n\n <ng-container\n *ngTemplateOutlet=\"countTemplate; context: {count: vars.count, disableCaseCount: vars.disableCaseCount}\"\n ></ng-container>\n </cds-sidenav-item>\n </ng-container>\n </ng-container>\n </cds-sidenav-menu>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n</cds-sidenav>\n\n<ng-template #subMenuIcon let-menuItem=\"menuItem\">\n <div class=\"menu-item-icon-container\"><i class=\"{{ menuItem.iconClass }}\"></i></div>\n</ng-template>\n\n<ng-template\n #topMenuItem\n let-closestSequence=\"closestSequence\"\n let-menuItem=\"menuItem\"\n let-overflowMenuSequence=\"overflowMenuSequence\"\n>\n <ng-container *ngIf=\"{sequence: '' + menuItem.sequence} as vars\"\n ><cds-sidenav-item\n *ngIf=\"!menuItem.children\"\n [attr.data-testid]=\"'sidenav-item-' + menuItem.title\"\n [ngClass]=\"{\n 'menu-item--hidden': menuItem.includeFunction !== undefined,\n 'menu-item--visible':\n menuItem.includeFunction !== undefined &&\n (includeFunctionObservables[menuItem.title] | async),\n }\"\n [active]=\"vars.sequence === closestSequence\"\n (click)=\"navigateToRoute(menuItem.link, $event)\"\n (contextmenu)=\"onRightClick(vars.sequence)\"\n (ctrl-click)=\"openInNewTab(menuItem.link.link)\"\n href=\"javascript:void(0)\"\n >\n <valtimo-menu-item-text\n [menuItem]=\"menuItem\"\n [showOverFlowMenu]=\"overflowMenuSequence === vars.sequence\"\n (openInNewTab)=\"openInNewTab(menuItem.link.link)\"\n (overflowMenuClosed)=\"onOverflowMenuClosed(vars.sequence)\"\n ></valtimo-menu-item-text>\n </cds-sidenav-item>\n </ng-container>\n</ng-template>\n\n<ng-template #countTemplate let-count=\"count\" let-disableCaseCount=\"disableCaseCount\">\n <ng-container *ngIf=\"count && !disableCaseCount\">\n <span class=\"case-count\">\n {{ count | caseCount }}\n </span>\n </ng-container>\n</ng-template>\n\n<ng-template #loadingTemplate>\n <div class=\"loading-container\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n</ng-template>\n", styles: ["@media screen and (max-width:767px){.be-left-sidebar{width:100%!important}}.be-left-sidebar .left-sidebar-toggle{padding:20px}.be-left-sidebar .left-sidebar-toggle:before{font-size:1.615rem}.be-left-sidebar .sidebar-elements>li>a.be-toggle-left-sidebar{height:32px;display:flex;align-items:center}.be-left-sidebar .left-sidebar-content{padding-top:20px}.be-toggle-left-sidebar svg{margin-right:7px;min-width:21px;height:auto;overflow:visible}.be-toggle-left-sidebar svg path{transition:.27s ease;fill:#696969}::ng-deep .resize-border{position:absolute;width:3px;height:100%;top:0;right:0;cursor:col-resize;background-color:var(--cds-border-strong);opacity:0;transition:opacity .11s cubic-bezier(.2,0,1,.9)}::ng-deep .resize-hover{opacity:1}::ng-deep .resize-border--invisible{display:none}.no-transition{transition:none}.d-1{d:path(\"M3 18v-2h13v2z\")}.d-1-flipped{d:path(\"M3 18v-2h11v2z\")}.d-2{d:path(\"M3 13v-2h10v2H3\")}.d-2-flipped{d:path(\"M3 13v-2h12v2H3\")}.d-3{d:path(\"M3 6h13v2H3V6\")}.d-3-flipped{d:path(\"M3 6h11v2H3V6\")}.d-4{d:path(\"M21 15.61L19.59 17l-5.01-5 5.01-5L21 8.39 17.44 12 21 15.61\")}.d-4-flipped{d:path(\"M15.58 15.61L16.99 17 22 12l-5.01-5-1.41 1.39L19.14 12l-3.56 3.61\")}::ng-deep .cds--side-nav__menu{padding-left:0}::ng-deep .cds--side-nav__navigation{border-right:1px solid #e0e0e0;height:100%}::ng-deep .cds--side-nav--ux{width:0}::ng-deep .cds--side-nav--expanded{width:16rem}::ng-deep .cds--side-nav__header-divider{display:none!important}.menu-item-icon-container{position:relative;top:8px;left:13px;height:0}.menu-item-icon-container i{width:0px;height:16px}.menu-item--hidden{display:none}.menu-item--visible{display:block}::ng-deep .cds--side-nav__item--empty{pointer-events:none}::ng-deep .cds--side-nav__item--empty .menu-item-icon-container{display:none}::ng-deep .cds--side-nav__link[href*=\"javascript:return false;\"]{padding-right:3rem!important}.case-count{position:absolute;right:0;padding-right:1rem;height:100%;top:0;display:flex;align-items:center;justify-content:center;font-size:.875rem;letter-spacing:.1px;line-height:1.25rem;font-weight:500!important}::ng-deep .cds--side-nav__icon{margin-left:-16px}::ng-deep .cds--side-nav__item.cds--side-nav__item--icon a.cds--side-nav__link{padding-left:3.5rem}::ng-deep .cds--side-nav__submenu-title{padding-right:1.5rem}::ng-deep .cds--side-nav__items{display:flex!important;flex-direction:column!important;overflow:visible!important}::ng-deep .cds--side-nav__navigation{top:3rem;height:calc(100% - 3rem)!important;overflow-x:hidden!important;overflow-y:auto!important}::ng-deep .cds--side-nav__navigation:not(.cds--side-nav--expanded){width:0}.loading-container{display:flex;width:100%;justify-content:center}\n/*!\n * Copyright 2015-2025 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: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MenuItemTextComponent, selector: "valtimo-menu-item-text", inputs: ["menuItem", "accent", "showOverFlowMenu"], outputs: ["overflowMenuClosed", "openInNewTab"] }, { kind: "component", type: i2$3.SideNav, selector: "cds-sidenav, ibm-sidenav", inputs: ["ariaLabel", "expanded", "hidden", "rail", "allowExpansion", "navigationItems", "useRouter"] }, { kind: "component", type: i2$3.SideNavItem, selector: "cds-sidenav-item, ibm-sidenav-item", inputs: ["href", "useRouter", "active", "route", "isSubMenu", "routeExtras", "title"], outputs: ["navigation", "selected"] }, { kind: "component", type: i2$3.SideNavMenu, selector: "cds-sidenav-menu, ibm-sidenav-menu", inputs: ["useRouter", "title", "expanded", "hasActiveChild", "menuItems"] }, { kind: "directive", type: CtrlClickDirective, selector: "[ctrl-click]", outputs: ["ctrl-click"] }, { kind: "component", type: i2$3.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: MenuItemTranslationPipe, name: "menuItemTranslate" }, { kind: "pipe", type: CaseCountPipe, name: "caseCount" }] }); }
|
|
6904
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: LeftSidebarComponent, isStandalone: false, selector: "valtimo-left-sidebar", host: { listeners: { "document:click": "onPageClick($event.target)" } }, viewQueries: [{ propertyName: "toggleButtonRef", first: true, predicate: ["toggleButton"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2026 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-sidenav\n *ngIf=\"{\n closestSequence: closestSequence$ | async,\n activeParentSequence: activeParentSequence$ | async,\n overflowMenuSequence: overflowMenuSequence$ | async,\n sideBarExpanded: sideBarExpanded$ | async,\n menuItemsLoaded: menuItemsLoaded$ | async,\n menuItems: menuItems$ | async,\n } as obs\"\n [allowExpansion]=\"false\"\n [expanded]=\"obs.sideBarExpanded\"\n>\n <ng-container *ngIf=\"obs.menuItemsLoaded; else loadingTemplate\">\n <ng-container *ngFor=\"let menuItem of obs.menuItems; trackBy: trackByMenuItem\">\n <ng-container *ngIf=\"!menuItem.children\">\n <ng-container\n *ngTemplateOutlet=\"\n topMenuItem;\n context: {\n menuItem: menuItem,\n closestSequence: obs.closestSequence,\n overflowMenuSequence: obs.overflowMenuSequence,\n }\n \"\n ></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"menuItem.children\">\n <ng-container\n *ngTemplateOutlet=\"\n topMenuItem;\n context: {\n closestSequence: obs.closestSequence,\n menuItem: menuItem,\n overflowMenuSequence: obs.overflowMenuSequence,\n }\n \"\n ></ng-container>\n\n <div [ngClass]=\"{\n 'menu-item--hidden': menuItem.includeFunction !== undefined,\n 'menu-item--visible':\n menuItem.includeFunction !== undefined &&\n (includeFunctionObservables[menuItem.title] | async),\n }\">\n <ng-container *ngTemplateOutlet=\"subMenuIcon; context: {menuItem: menuItem}\"></ng-container>\n\n <v-overflow-menu\n *ngIf=\"menuItem.titleLink\"\n class=\"submenu-title-overflow\"\n [menuWidth]=\"208\"\n [open]=\"obs.overflowMenuSequence === '' + menuItem.sequence\"\n placement=\"right-start\"\n [portalToBody]=\"true\"\n [useHostAsReference]=\"true\"\n (openChange)=\"!$event && onOverflowMenuClosed('' + menuItem.sequence)\"\n >\n <v-overflow-menu-option (selected)=\"openInNewTab(menuItem.titleLink)\">{{\n 'interface.openInNewTab' | translate\n }}</v-overflow-menu-option>\n </v-overflow-menu>\n\n <cds-sidenav-menu\n [valtimoExpandOnActive]=\"obs.activeParentSequence === '' + menuItem.sequence\"\n [ngClass]=\"{\n 'menu-item--section-active': obs.activeParentSequence === '' + menuItem.sequence,\n 'menu-item--section-current': obs.closestSequence === '' + menuItem.sequence,\n }\"\n [title]=\"menuItem | menuItemTranslate | async\"\n [valtimoSubmenuTitleClick]=\"!!menuItem.titleLink\"\n (submenuTitleClickEvent)=\"onSubmenuTitleClick(menuItem, $event)\"\n (submenuTitleContextMenuEvent)=\"onRightClick('' + menuItem.sequence)\"\n [attr.data-testid]=\"'sidenav-item-' + menuItem.title\"\n [attr.data-test-id]=\"menuItem.testId\"\n >\n <ng-container\n *ngFor=\"let childMenuItem of menuItem.children; trackBy: trackByMenuItem\"\n >\n <ng-container\n *ngIf=\"{\n disableCaseCount: disableCaseCount$ | async,\n count: childMenuItem?.count$ && (childMenuItem?.count$ | async),\n sequence: '' + menuItem.sequence + '.' + childMenuItem.sequence,\n } as vars\"\n >\n <cds-sidenav-item\n [attr.data-testid]=\"'sidenav-item-' + childMenuItem?.title\"\n [attr.data-test-id]=\"childMenuItem?.testId\"\n [title]=\"\n menuItem.id === casesMenuItemId\n ? (childMenuItem | menuItemTranslate | async)\n : null\n \"\n [ngClass]=\"{\n 'cds--side-nav__item--empty': !childMenuItem.link,\n 'menu-item--hidden': childMenuItem.includeFunction !== undefined,\n 'menu-item--visible':\n childMenuItem.includeFunction !== undefined &&\n (includeFunctionObservables[childMenuItem.title] | async),\n }\"\n [active]=\"vars.sequence === obs.closestSequence\"\n [href]=\"vars?.count ? 'javascript:return false;' : 'javascript:void(0);'\"\n (click)=\"navigateToRoute(childMenuItem.link, $event)\"\n (contextmenu)=\"onRightClick(vars.sequence)\"\n (ctrl-click)=\"openInNewTab(childMenuItem.link)\"\n >\n <valtimo-menu-item-text\n [accent]=\"!childMenuItem.link\"\n [menuItem]=\"childMenuItem\"\n [showOverFlowMenu]=\"obs.overflowMenuSequence === vars.sequence\"\n (openInNewTab)=\"openInNewTab(childMenuItem.link)\"\n (overflowMenuClosed)=\"onOverflowMenuClosed(vars.sequence)\"\n ></valtimo-menu-item-text>\n\n <ng-container\n *ngTemplateOutlet=\"countTemplate; context: {count: vars.count, disableCaseCount: vars.disableCaseCount}\"\n ></ng-container>\n </cds-sidenav-item>\n </ng-container>\n </ng-container>\n </cds-sidenav-menu>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n</cds-sidenav>\n\n<ng-template #subMenuIcon let-menuItem=\"menuItem\">\n <div class=\"menu-item-icon-container\"><i class=\"{{ menuItem.iconClass }}\"></i></div>\n</ng-template>\n\n<ng-template\n #topMenuItem\n let-closestSequence=\"closestSequence\"\n let-menuItem=\"menuItem\"\n let-overflowMenuSequence=\"overflowMenuSequence\"\n>\n <ng-container *ngIf=\"{sequence: '' + menuItem.sequence} as vars\"\n ><cds-sidenav-item\n *ngIf=\"!menuItem.children\"\n [attr.data-testid]=\"'sidenav-item-' + menuItem.title\"\n [attr.data-test-id]=\"menuItem.testId\"\n [ngClass]=\"{\n 'menu-item--hidden': menuItem.includeFunction !== undefined,\n 'menu-item--visible':\n menuItem.includeFunction !== undefined &&\n (includeFunctionObservables[menuItem.title] | async),\n }\"\n [active]=\"vars.sequence === closestSequence\"\n (click)=\"navigateToRoute(menuItem.link, $event)\"\n (contextmenu)=\"onRightClick(vars.sequence)\"\n (ctrl-click)=\"openInNewTab(menuItem.link.link)\"\n href=\"javascript:void(0)\"\n >\n <valtimo-menu-item-text\n [menuItem]=\"menuItem\"\n [showOverFlowMenu]=\"overflowMenuSequence === vars.sequence\"\n (openInNewTab)=\"openInNewTab(menuItem.link.link)\"\n (overflowMenuClosed)=\"onOverflowMenuClosed(vars.sequence)\"\n ></valtimo-menu-item-text>\n </cds-sidenav-item>\n </ng-container>\n</ng-template>\n\n<ng-template #countTemplate let-count=\"count\" let-disableCaseCount=\"disableCaseCount\">\n <ng-container *ngIf=\"count && !disableCaseCount\">\n <span class=\"case-count\">\n {{ count | caseCount }}\n </span>\n </ng-container>\n</ng-template>\n\n<ng-template #loadingTemplate>\n <div class=\"loading-container\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n</ng-template>\n", styles: ["@media screen and (max-width:767px){.be-left-sidebar{width:100%!important}}.be-left-sidebar .left-sidebar-toggle{padding:20px}.be-left-sidebar .left-sidebar-toggle:before{font-size:1.615rem}.be-left-sidebar .sidebar-elements>li>a.be-toggle-left-sidebar{height:32px;display:flex;align-items:center}.be-left-sidebar .left-sidebar-content{padding-top:20px}.be-toggle-left-sidebar svg{margin-right:7px;min-width:21px;height:auto;overflow:visible}.be-toggle-left-sidebar svg path{transition:.27s ease;fill:#696969}::ng-deep .resize-border{position:absolute;width:3px;height:100%;top:0;right:0;cursor:col-resize;background-color:var(--cds-border-strong);opacity:0;transition:opacity .11s cubic-bezier(.2,0,1,.9)}::ng-deep .resize-hover{opacity:1}::ng-deep .resize-border--invisible{display:none}.no-transition{transition:none}.d-1{d:path(\"M3 18v-2h13v2z\")}.d-1-flipped{d:path(\"M3 18v-2h11v2z\")}.d-2{d:path(\"M3 13v-2h10v2H3\")}.d-2-flipped{d:path(\"M3 13v-2h12v2H3\")}.d-3{d:path(\"M3 6h13v2H3V6\")}.d-3-flipped{d:path(\"M3 6h11v2H3V6\")}.d-4{d:path(\"M21 15.61L19.59 17l-5.01-5 5.01-5L21 8.39 17.44 12 21 15.61\")}.d-4-flipped{d:path(\"M15.58 15.61L16.99 17 22 12l-5.01-5-1.41 1.39L19.14 12l-3.56 3.61\")}::ng-deep .cds--side-nav__menu{padding-left:0}::ng-deep .cds--side-nav__navigation{border-right:1px solid #e0e0e0;height:100%}::ng-deep .cds--side-nav--ux{width:0}::ng-deep .cds--side-nav--expanded{width:16rem}::ng-deep .cds--side-nav__header-divider{display:none!important}.menu-item-icon-container{position:relative;top:8px;left:13px;height:0;pointer-events:none}.menu-item-icon-container i{width:0px;height:16px}.submenu-title-overflow{display:block;width:100%;height:0;pointer-events:none}.menu-item--hidden{display:none}.menu-item--visible{display:block}::ng-deep .cds--side-nav__item--empty{pointer-events:none}::ng-deep .cds--side-nav__item--empty .menu-item-icon-container{display:none}::ng-deep .cds--side-nav__menu .cds--side-nav__menu-item a.cds--side-nav__link:has(.menu-item-dot){padding-left:2.625rem}::ng-deep .cds--side-nav__link[href*=\"javascript:return false;\"]{padding-right:3rem!important}.case-count{position:absolute;right:0;padding-right:1rem;height:100%;top:0;display:flex;align-items:center;justify-content:center;font-size:.875rem;letter-spacing:.1px;line-height:1.25rem;font-weight:500!important}::ng-deep .cds--side-nav__icon{margin-left:-16px}::ng-deep .cds--side-nav__item.cds--side-nav__item--icon a.cds--side-nav__link{padding-left:3.5rem}::ng-deep .cds--side-nav__submenu-title{flex:1 1 auto;min-width:0;padding-right:1.5rem}::ng-deep .cds--side-nav__submenu .cds--side-nav__submenu-chevron{flex:0 0 auto;padding-left:1rem}::ng-deep .cds--side-nav__items{display:flex!important;flex-direction:column!important;overflow:visible!important}::ng-deep .cds--side-nav__navigation{top:3rem;height:calc(100% - 3rem)!important;overflow-x:hidden!important;overflow-y:auto!important}::ng-deep .cds--side-nav__navigation:not(.cds--side-nav--expanded){width:0}.loading-container{display:flex;width:100%;justify-content:center}::ng-deep cds-sidenav-menu.menu-item--section-active .cds--side-nav__submenu{background-color:var(--cds-background-selected);color:var(--cds-text-primary)}::ng-deep cds-sidenav-menu.menu-item--section-active .cds--side-nav__submenu-title{color:var(--cds-text-primary);font-weight:600}::ng-deep cds-sidenav-menu.menu-item--section-current .cds--side-nav__submenu{position:relative}::ng-deep cds-sidenav-menu.menu-item--section-current .cds--side-nav__submenu:before{position:absolute;background-color:var(--cds-border-interactive);content:\"\";inline-size:3px;inset-block:0;inset-inline-start:0}\n/*!\n * Copyright 2015-2025 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: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MenuItemTextComponent, selector: "valtimo-menu-item-text", inputs: ["menuItem", "accent", "showOverFlowMenu"], outputs: ["overflowMenuClosed", "openInNewTab"] }, { kind: "component", type: i2$3.SideNav, selector: "cds-sidenav, ibm-sidenav", inputs: ["ariaLabel", "expanded", "hidden", "rail", "allowExpansion", "navigationItems", "useRouter"] }, { kind: "component", type: i2$3.SideNavItem, selector: "cds-sidenav-item, ibm-sidenav-item", inputs: ["href", "useRouter", "active", "route", "isSubMenu", "routeExtras", "title"], outputs: ["navigation", "selected"] }, { kind: "component", type: i2$3.SideNavMenu, selector: "cds-sidenav-menu, ibm-sidenav-menu", inputs: ["useRouter", "title", "expanded", "hasActiveChild", "menuItems"] }, { kind: "directive", type: CtrlClickDirective, selector: "[ctrl-click]", outputs: ["ctrl-click"] }, { kind: "directive", type: SubmenuTitleClickDirective, selector: "[valtimoSubmenuTitleClick]", inputs: ["valtimoSubmenuTitleClick"], outputs: ["submenuTitleClickEvent", "submenuTitleContextMenuEvent"] }, { kind: "directive", type: ExpandOnActiveDirective, selector: "[valtimoExpandOnActive]", inputs: ["valtimoExpandOnActive"] }, { kind: "component", type: i2$3.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "component", type: OverflowMenuComponent, selector: "v-overflow-menu", inputs: ["open", "placement", "menuWidth", "offsetX", "offsetY", "closeOnSelect", "useHostAsReference", "portalToBody"], outputs: ["openChange"] }, { kind: "component", type: OverflowMenuOptionComponent, selector: "v-overflow-menu-option", inputs: ["disabled", "type", "testId", "optionId"], outputs: ["selected"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: MenuItemTranslationPipe, name: "menuItemTranslate" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: CaseCountPipe, name: "caseCount" }] }); }
|
|
6707
6905
|
}
|
|
6708
6906
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: LeftSidebarComponent, decorators: [{
|
|
6709
6907
|
type: Component,
|
|
6710
|
-
args: [{ selector: 'valtimo-left-sidebar', standalone: false, template: "<!--\n ~ Copyright 2015-2025 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-sidenav\n *ngIf=\"{\n closestSequence: closestSequence$ | async,\n overflowMenuSequence: overflowMenuSequence$ | async,\n sideBarExpanded: sideBarExpanded$ | async,\n menuItemsLoaded: menuItemsLoaded$ | async,\n menuItems: menuItems$ | async,\n } as obs\"\n [allowExpansion]=\"false\"\n [expanded]=\"obs.sideBarExpanded\"\n>\n <ng-container *ngIf=\"obs.menuItemsLoaded; else loadingTemplate\">\n <ng-container *ngFor=\"let menuItem of obs.menuItems; trackBy: trackByMenuItem\">\n <ng-container *ngIf=\"!menuItem.children\">\n <ng-container\n *ngTemplateOutlet=\"\n topMenuItem;\n context: {\n menuItem: menuItem,\n closestSequence: obs.closestSequence,\n overflowMenuSequence: obs.overflowMenuSequence,\n }\n \"\n ></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"menuItem.children\">\n <ng-container\n *ngTemplateOutlet=\"\n topMenuItem;\n context: {\n closestSequence: obs.closestSequence,\n menuItem: menuItem,\n overflowMenuSequence: obs.overflowMenuSequence,\n }\n \"\n ></ng-container>\n\n <div [ngClass]=\"{\n 'menu-item--hidden': menuItem.includeFunction !== undefined,\n 'menu-item--visible':\n menuItem.includeFunction !== undefined &&\n (includeFunctionObservables[menuItem.title] | async),\n }\">\n <ng-container *ngTemplateOutlet=\"subMenuIcon; context: {menuItem: menuItem}\"></ng-container>\n\n <cds-sidenav-menu\n [title]=\"menuItem | menuItemTranslate | async\"\n [attr.data-testid]=\"'sidenav-item-' + menuItem.title\"\n >\n <ng-container\n *ngFor=\"let childMenuItem of menuItem.children; trackBy: trackByMenuItem\"\n >\n <ng-container\n *ngIf=\"{\n disableCaseCount: disableCaseCount$ | async,\n count: childMenuItem?.count$ && (childMenuItem?.count$ | async),\n sequence: '' + menuItem.sequence + '.' + childMenuItem.sequence,\n } as vars\"\n >\n <cds-sidenav-item\n [attr.data-testid]=\"'sidenav-item-' + childMenuItem?.title\"\n [title]=\"\n menuItem.title === 'Cases' || menuItem.title === 'Dossiers'\n ? (childMenuItem | menuItemTranslate | async)\n : null\n \"\n [ngClass]=\"{\n 'cds--side-nav__item--empty': !childMenuItem.link,\n 'menu-item--hidden': childMenuItem.includeFunction !== undefined,\n 'menu-item--visible':\n childMenuItem.includeFunction !== undefined &&\n (includeFunctionObservables[childMenuItem.title] | async),\n }\"\n [active]=\"vars.sequence === obs.closestSequence\"\n [href]=\"vars?.count ? 'javascript:return false;' : 'javascript:void(0);'\"\n (click)=\"navigateToRoute(childMenuItem.link, $event)\"\n (contextmenu)=\"onRightClick(vars.sequence)\"\n (ctrl-click)=\"openInNewTab(childMenuItem.link)\"\n >\n <valtimo-menu-item-text\n [accent]=\"!childMenuItem.link\"\n [menuItem]=\"childMenuItem\"\n [showOverFlowMenu]=\"obs.overflowMenuSequence === vars.sequence\"\n (openInNewTab)=\"openInNewTab(childMenuItem.link)\"\n (overflowMenuClosed)=\"onOverflowMenuClosed(vars.sequence)\"\n ></valtimo-menu-item-text>\n\n <ng-container\n *ngTemplateOutlet=\"countTemplate; context: {count: vars.count, disableCaseCount: vars.disableCaseCount}\"\n ></ng-container>\n </cds-sidenav-item>\n </ng-container>\n </ng-container>\n </cds-sidenav-menu>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n</cds-sidenav>\n\n<ng-template #subMenuIcon let-menuItem=\"menuItem\">\n <div class=\"menu-item-icon-container\"><i class=\"{{ menuItem.iconClass }}\"></i></div>\n</ng-template>\n\n<ng-template\n #topMenuItem\n let-closestSequence=\"closestSequence\"\n let-menuItem=\"menuItem\"\n let-overflowMenuSequence=\"overflowMenuSequence\"\n>\n <ng-container *ngIf=\"{sequence: '' + menuItem.sequence} as vars\"\n ><cds-sidenav-item\n *ngIf=\"!menuItem.children\"\n [attr.data-testid]=\"'sidenav-item-' + menuItem.title\"\n [ngClass]=\"{\n 'menu-item--hidden': menuItem.includeFunction !== undefined,\n 'menu-item--visible':\n menuItem.includeFunction !== undefined &&\n (includeFunctionObservables[menuItem.title] | async),\n }\"\n [active]=\"vars.sequence === closestSequence\"\n (click)=\"navigateToRoute(menuItem.link, $event)\"\n (contextmenu)=\"onRightClick(vars.sequence)\"\n (ctrl-click)=\"openInNewTab(menuItem.link.link)\"\n href=\"javascript:void(0)\"\n >\n <valtimo-menu-item-text\n [menuItem]=\"menuItem\"\n [showOverFlowMenu]=\"overflowMenuSequence === vars.sequence\"\n (openInNewTab)=\"openInNewTab(menuItem.link.link)\"\n (overflowMenuClosed)=\"onOverflowMenuClosed(vars.sequence)\"\n ></valtimo-menu-item-text>\n </cds-sidenav-item>\n </ng-container>\n</ng-template>\n\n<ng-template #countTemplate let-count=\"count\" let-disableCaseCount=\"disableCaseCount\">\n <ng-container *ngIf=\"count && !disableCaseCount\">\n <span class=\"case-count\">\n {{ count | caseCount }}\n </span>\n </ng-container>\n</ng-template>\n\n<ng-template #loadingTemplate>\n <div class=\"loading-container\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n</ng-template>\n", styles: ["@media screen and (max-width:767px){.be-left-sidebar{width:100%!important}}.be-left-sidebar .left-sidebar-toggle{padding:20px}.be-left-sidebar .left-sidebar-toggle:before{font-size:1.615rem}.be-left-sidebar .sidebar-elements>li>a.be-toggle-left-sidebar{height:32px;display:flex;align-items:center}.be-left-sidebar .left-sidebar-content{padding-top:20px}.be-toggle-left-sidebar svg{margin-right:7px;min-width:21px;height:auto;overflow:visible}.be-toggle-left-sidebar svg path{transition:.27s ease;fill:#696969}::ng-deep .resize-border{position:absolute;width:3px;height:100%;top:0;right:0;cursor:col-resize;background-color:var(--cds-border-strong);opacity:0;transition:opacity .11s cubic-bezier(.2,0,1,.9)}::ng-deep .resize-hover{opacity:1}::ng-deep .resize-border--invisible{display:none}.no-transition{transition:none}.d-1{d:path(\"M3 18v-2h13v2z\")}.d-1-flipped{d:path(\"M3 18v-2h11v2z\")}.d-2{d:path(\"M3 13v-2h10v2H3\")}.d-2-flipped{d:path(\"M3 13v-2h12v2H3\")}.d-3{d:path(\"M3 6h13v2H3V6\")}.d-3-flipped{d:path(\"M3 6h11v2H3V6\")}.d-4{d:path(\"M21 15.61L19.59 17l-5.01-5 5.01-5L21 8.39 17.44 12 21 15.61\")}.d-4-flipped{d:path(\"M15.58 15.61L16.99 17 22 12l-5.01-5-1.41 1.39L19.14 12l-3.56 3.61\")}::ng-deep .cds--side-nav__menu{padding-left:0}::ng-deep .cds--side-nav__navigation{border-right:1px solid #e0e0e0;height:100%}::ng-deep .cds--side-nav--ux{width:0}::ng-deep .cds--side-nav--expanded{width:16rem}::ng-deep .cds--side-nav__header-divider{display:none!important}.menu-item-icon-container{position:relative;top:8px;left:13px;height:0}.menu-item-icon-container i{width:0px;height:16px}.menu-item--hidden{display:none}.menu-item--visible{display:block}::ng-deep .cds--side-nav__item--empty{pointer-events:none}::ng-deep .cds--side-nav__item--empty .menu-item-icon-container{display:none}::ng-deep .cds--side-nav__link[href*=\"javascript:return false;\"]{padding-right:3rem!important}.case-count{position:absolute;right:0;padding-right:1rem;height:100%;top:0;display:flex;align-items:center;justify-content:center;font-size:.875rem;letter-spacing:.1px;line-height:1.25rem;font-weight:500!important}::ng-deep .cds--side-nav__icon{margin-left:-16px}::ng-deep .cds--side-nav__item.cds--side-nav__item--icon a.cds--side-nav__link{padding-left:3.5rem}::ng-deep .cds--side-nav__submenu-title{padding-right:1.5rem}::ng-deep .cds--side-nav__items{display:flex!important;flex-direction:column!important;overflow:visible!important}::ng-deep .cds--side-nav__navigation{top:3rem;height:calc(100% - 3rem)!important;overflow-x:hidden!important;overflow-y:auto!important}::ng-deep .cds--side-nav__navigation:not(.cds--side-nav--expanded){width:0}.loading-container{display:flex;width:100%;justify-content:center}\n/*!\n * Copyright 2015-2025 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"] }]
|
|
6908
|
+
args: [{ selector: 'valtimo-left-sidebar', standalone: false, template: "<!--\n ~ Copyright 2015-2026 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-sidenav\n *ngIf=\"{\n closestSequence: closestSequence$ | async,\n activeParentSequence: activeParentSequence$ | async,\n overflowMenuSequence: overflowMenuSequence$ | async,\n sideBarExpanded: sideBarExpanded$ | async,\n menuItemsLoaded: menuItemsLoaded$ | async,\n menuItems: menuItems$ | async,\n } as obs\"\n [allowExpansion]=\"false\"\n [expanded]=\"obs.sideBarExpanded\"\n>\n <ng-container *ngIf=\"obs.menuItemsLoaded; else loadingTemplate\">\n <ng-container *ngFor=\"let menuItem of obs.menuItems; trackBy: trackByMenuItem\">\n <ng-container *ngIf=\"!menuItem.children\">\n <ng-container\n *ngTemplateOutlet=\"\n topMenuItem;\n context: {\n menuItem: menuItem,\n closestSequence: obs.closestSequence,\n overflowMenuSequence: obs.overflowMenuSequence,\n }\n \"\n ></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"menuItem.children\">\n <ng-container\n *ngTemplateOutlet=\"\n topMenuItem;\n context: {\n closestSequence: obs.closestSequence,\n menuItem: menuItem,\n overflowMenuSequence: obs.overflowMenuSequence,\n }\n \"\n ></ng-container>\n\n <div [ngClass]=\"{\n 'menu-item--hidden': menuItem.includeFunction !== undefined,\n 'menu-item--visible':\n menuItem.includeFunction !== undefined &&\n (includeFunctionObservables[menuItem.title] | async),\n }\">\n <ng-container *ngTemplateOutlet=\"subMenuIcon; context: {menuItem: menuItem}\"></ng-container>\n\n <v-overflow-menu\n *ngIf=\"menuItem.titleLink\"\n class=\"submenu-title-overflow\"\n [menuWidth]=\"208\"\n [open]=\"obs.overflowMenuSequence === '' + menuItem.sequence\"\n placement=\"right-start\"\n [portalToBody]=\"true\"\n [useHostAsReference]=\"true\"\n (openChange)=\"!$event && onOverflowMenuClosed('' + menuItem.sequence)\"\n >\n <v-overflow-menu-option (selected)=\"openInNewTab(menuItem.titleLink)\">{{\n 'interface.openInNewTab' | translate\n }}</v-overflow-menu-option>\n </v-overflow-menu>\n\n <cds-sidenav-menu\n [valtimoExpandOnActive]=\"obs.activeParentSequence === '' + menuItem.sequence\"\n [ngClass]=\"{\n 'menu-item--section-active': obs.activeParentSequence === '' + menuItem.sequence,\n 'menu-item--section-current': obs.closestSequence === '' + menuItem.sequence,\n }\"\n [title]=\"menuItem | menuItemTranslate | async\"\n [valtimoSubmenuTitleClick]=\"!!menuItem.titleLink\"\n (submenuTitleClickEvent)=\"onSubmenuTitleClick(menuItem, $event)\"\n (submenuTitleContextMenuEvent)=\"onRightClick('' + menuItem.sequence)\"\n [attr.data-testid]=\"'sidenav-item-' + menuItem.title\"\n [attr.data-test-id]=\"menuItem.testId\"\n >\n <ng-container\n *ngFor=\"let childMenuItem of menuItem.children; trackBy: trackByMenuItem\"\n >\n <ng-container\n *ngIf=\"{\n disableCaseCount: disableCaseCount$ | async,\n count: childMenuItem?.count$ && (childMenuItem?.count$ | async),\n sequence: '' + menuItem.sequence + '.' + childMenuItem.sequence,\n } as vars\"\n >\n <cds-sidenav-item\n [attr.data-testid]=\"'sidenav-item-' + childMenuItem?.title\"\n [attr.data-test-id]=\"childMenuItem?.testId\"\n [title]=\"\n menuItem.id === casesMenuItemId\n ? (childMenuItem | menuItemTranslate | async)\n : null\n \"\n [ngClass]=\"{\n 'cds--side-nav__item--empty': !childMenuItem.link,\n 'menu-item--hidden': childMenuItem.includeFunction !== undefined,\n 'menu-item--visible':\n childMenuItem.includeFunction !== undefined &&\n (includeFunctionObservables[childMenuItem.title] | async),\n }\"\n [active]=\"vars.sequence === obs.closestSequence\"\n [href]=\"vars?.count ? 'javascript:return false;' : 'javascript:void(0);'\"\n (click)=\"navigateToRoute(childMenuItem.link, $event)\"\n (contextmenu)=\"onRightClick(vars.sequence)\"\n (ctrl-click)=\"openInNewTab(childMenuItem.link)\"\n >\n <valtimo-menu-item-text\n [accent]=\"!childMenuItem.link\"\n [menuItem]=\"childMenuItem\"\n [showOverFlowMenu]=\"obs.overflowMenuSequence === vars.sequence\"\n (openInNewTab)=\"openInNewTab(childMenuItem.link)\"\n (overflowMenuClosed)=\"onOverflowMenuClosed(vars.sequence)\"\n ></valtimo-menu-item-text>\n\n <ng-container\n *ngTemplateOutlet=\"countTemplate; context: {count: vars.count, disableCaseCount: vars.disableCaseCount}\"\n ></ng-container>\n </cds-sidenav-item>\n </ng-container>\n </ng-container>\n </cds-sidenav-menu>\n </div>\n </ng-container>\n </ng-container>\n </ng-container>\n</cds-sidenav>\n\n<ng-template #subMenuIcon let-menuItem=\"menuItem\">\n <div class=\"menu-item-icon-container\"><i class=\"{{ menuItem.iconClass }}\"></i></div>\n</ng-template>\n\n<ng-template\n #topMenuItem\n let-closestSequence=\"closestSequence\"\n let-menuItem=\"menuItem\"\n let-overflowMenuSequence=\"overflowMenuSequence\"\n>\n <ng-container *ngIf=\"{sequence: '' + menuItem.sequence} as vars\"\n ><cds-sidenav-item\n *ngIf=\"!menuItem.children\"\n [attr.data-testid]=\"'sidenav-item-' + menuItem.title\"\n [attr.data-test-id]=\"menuItem.testId\"\n [ngClass]=\"{\n 'menu-item--hidden': menuItem.includeFunction !== undefined,\n 'menu-item--visible':\n menuItem.includeFunction !== undefined &&\n (includeFunctionObservables[menuItem.title] | async),\n }\"\n [active]=\"vars.sequence === closestSequence\"\n (click)=\"navigateToRoute(menuItem.link, $event)\"\n (contextmenu)=\"onRightClick(vars.sequence)\"\n (ctrl-click)=\"openInNewTab(menuItem.link.link)\"\n href=\"javascript:void(0)\"\n >\n <valtimo-menu-item-text\n [menuItem]=\"menuItem\"\n [showOverFlowMenu]=\"overflowMenuSequence === vars.sequence\"\n (openInNewTab)=\"openInNewTab(menuItem.link.link)\"\n (overflowMenuClosed)=\"onOverflowMenuClosed(vars.sequence)\"\n ></valtimo-menu-item-text>\n </cds-sidenav-item>\n </ng-container>\n</ng-template>\n\n<ng-template #countTemplate let-count=\"count\" let-disableCaseCount=\"disableCaseCount\">\n <ng-container *ngIf=\"count && !disableCaseCount\">\n <span class=\"case-count\">\n {{ count | caseCount }}\n </span>\n </ng-container>\n</ng-template>\n\n<ng-template #loadingTemplate>\n <div class=\"loading-container\">\n <cds-loading size=\"sm\"></cds-loading>\n </div>\n</ng-template>\n", styles: ["@media screen and (max-width:767px){.be-left-sidebar{width:100%!important}}.be-left-sidebar .left-sidebar-toggle{padding:20px}.be-left-sidebar .left-sidebar-toggle:before{font-size:1.615rem}.be-left-sidebar .sidebar-elements>li>a.be-toggle-left-sidebar{height:32px;display:flex;align-items:center}.be-left-sidebar .left-sidebar-content{padding-top:20px}.be-toggle-left-sidebar svg{margin-right:7px;min-width:21px;height:auto;overflow:visible}.be-toggle-left-sidebar svg path{transition:.27s ease;fill:#696969}::ng-deep .resize-border{position:absolute;width:3px;height:100%;top:0;right:0;cursor:col-resize;background-color:var(--cds-border-strong);opacity:0;transition:opacity .11s cubic-bezier(.2,0,1,.9)}::ng-deep .resize-hover{opacity:1}::ng-deep .resize-border--invisible{display:none}.no-transition{transition:none}.d-1{d:path(\"M3 18v-2h13v2z\")}.d-1-flipped{d:path(\"M3 18v-2h11v2z\")}.d-2{d:path(\"M3 13v-2h10v2H3\")}.d-2-flipped{d:path(\"M3 13v-2h12v2H3\")}.d-3{d:path(\"M3 6h13v2H3V6\")}.d-3-flipped{d:path(\"M3 6h11v2H3V6\")}.d-4{d:path(\"M21 15.61L19.59 17l-5.01-5 5.01-5L21 8.39 17.44 12 21 15.61\")}.d-4-flipped{d:path(\"M15.58 15.61L16.99 17 22 12l-5.01-5-1.41 1.39L19.14 12l-3.56 3.61\")}::ng-deep .cds--side-nav__menu{padding-left:0}::ng-deep .cds--side-nav__navigation{border-right:1px solid #e0e0e0;height:100%}::ng-deep .cds--side-nav--ux{width:0}::ng-deep .cds--side-nav--expanded{width:16rem}::ng-deep .cds--side-nav__header-divider{display:none!important}.menu-item-icon-container{position:relative;top:8px;left:13px;height:0;pointer-events:none}.menu-item-icon-container i{width:0px;height:16px}.submenu-title-overflow{display:block;width:100%;height:0;pointer-events:none}.menu-item--hidden{display:none}.menu-item--visible{display:block}::ng-deep .cds--side-nav__item--empty{pointer-events:none}::ng-deep .cds--side-nav__item--empty .menu-item-icon-container{display:none}::ng-deep .cds--side-nav__menu .cds--side-nav__menu-item a.cds--side-nav__link:has(.menu-item-dot){padding-left:2.625rem}::ng-deep .cds--side-nav__link[href*=\"javascript:return false;\"]{padding-right:3rem!important}.case-count{position:absolute;right:0;padding-right:1rem;height:100%;top:0;display:flex;align-items:center;justify-content:center;font-size:.875rem;letter-spacing:.1px;line-height:1.25rem;font-weight:500!important}::ng-deep .cds--side-nav__icon{margin-left:-16px}::ng-deep .cds--side-nav__item.cds--side-nav__item--icon a.cds--side-nav__link{padding-left:3.5rem}::ng-deep .cds--side-nav__submenu-title{flex:1 1 auto;min-width:0;padding-right:1.5rem}::ng-deep .cds--side-nav__submenu .cds--side-nav__submenu-chevron{flex:0 0 auto;padding-left:1rem}::ng-deep .cds--side-nav__items{display:flex!important;flex-direction:column!important;overflow:visible!important}::ng-deep .cds--side-nav__navigation{top:3rem;height:calc(100% - 3rem)!important;overflow-x:hidden!important;overflow-y:auto!important}::ng-deep .cds--side-nav__navigation:not(.cds--side-nav--expanded){width:0}.loading-container{display:flex;width:100%;justify-content:center}::ng-deep cds-sidenav-menu.menu-item--section-active .cds--side-nav__submenu{background-color:var(--cds-background-selected);color:var(--cds-text-primary)}::ng-deep cds-sidenav-menu.menu-item--section-active .cds--side-nav__submenu-title{color:var(--cds-text-primary);font-weight:600}::ng-deep cds-sidenav-menu.menu-item--section-current .cds--side-nav__submenu{position:relative}::ng-deep cds-sidenav-menu.menu-item--section-current .cds--side-nav__submenu:before{position:absolute;background-color:var(--cds-border-interactive);content:\"\";inline-size:3px;inset-block:0;inset-inline-start:0}\n/*!\n * Copyright 2015-2025 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"] }]
|
|
6711
6909
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: MenuService }, { type: ShellService }, { type: i3$1.BreakpointObserver }, { type: i1$3.Router }, { type: i1$2.ConfigService }], propDecorators: { toggleButtonRef: [{
|
|
6712
6910
|
type: ViewChild,
|
|
6713
6911
|
args: ['toggleButton']
|
|
@@ -6869,7 +7067,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
6869
7067
|
}] });
|
|
6870
7068
|
|
|
6871
7069
|
/*
|
|
6872
|
-
* Copyright 2015-
|
|
7070
|
+
* Copyright 2015-2026 Ritense BV, the Netherlands.
|
|
6873
7071
|
*
|
|
6874
7072
|
* Licensed under EUPL, Version 1.2 (the "License");
|
|
6875
7073
|
* you may not use this file except in compliance with the License.
|
|
@@ -6892,14 +7090,20 @@ class LeftSidebarModule {
|
|
|
6892
7090
|
UIShellModule,
|
|
6893
7091
|
ComponentsPipesModule,
|
|
6894
7092
|
CtrlClickDirective,
|
|
6895
|
-
|
|
7093
|
+
SubmenuTitleClickDirective,
|
|
7094
|
+
ExpandOnActiveDirective,
|
|
7095
|
+
LoadingModule,
|
|
7096
|
+
OverflowMenuComponent,
|
|
7097
|
+
OverflowMenuOptionComponent,
|
|
7098
|
+
TranslateModule], exports: [LeftSidebarComponent] }); }
|
|
6896
7099
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: LeftSidebarModule, imports: [CommonModule,
|
|
6897
7100
|
MenuModule,
|
|
6898
7101
|
PageTitleModule,
|
|
6899
7102
|
IconModule,
|
|
6900
7103
|
UIShellModule,
|
|
6901
7104
|
ComponentsPipesModule,
|
|
6902
|
-
LoadingModule
|
|
7105
|
+
LoadingModule,
|
|
7106
|
+
TranslateModule] }); }
|
|
6903
7107
|
}
|
|
6904
7108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: LeftSidebarModule, decorators: [{
|
|
6905
7109
|
type: NgModule,
|
|
@@ -6913,7 +7117,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
6913
7117
|
UIShellModule,
|
|
6914
7118
|
ComponentsPipesModule,
|
|
6915
7119
|
CtrlClickDirective,
|
|
7120
|
+
SubmenuTitleClickDirective,
|
|
7121
|
+
ExpandOnActiveDirective,
|
|
6916
7122
|
LoadingModule,
|
|
7123
|
+
OverflowMenuComponent,
|
|
7124
|
+
OverflowMenuOptionComponent,
|
|
7125
|
+
TranslateModule,
|
|
6917
7126
|
],
|
|
6918
7127
|
exports: [LeftSidebarComponent],
|
|
6919
7128
|
}]
|
|
@@ -6971,6 +7180,7 @@ class CarbonListDragAndDropService {
|
|
|
6971
7180
|
constructor() {
|
|
6972
7181
|
this.dragAndDropEvents$ = new Subject();
|
|
6973
7182
|
this._ROW_DRAG_CLASS = 'valtimo-carbon-list__drag-table-row';
|
|
7183
|
+
this._CHILD_ROW_ATTRIBUTE = 'data-child-row';
|
|
6974
7184
|
this._carbonListElementRefSubject$ = new BehaviorSubject(null);
|
|
6975
7185
|
this._tableRowsSubject$ = new BehaviorSubject(null);
|
|
6976
7186
|
this._tableRowToMoveStartIndex$ = new BehaviorSubject(0);
|
|
@@ -7021,16 +7231,21 @@ class CarbonListDragAndDropService {
|
|
|
7021
7231
|
this._tableRowToMove$,
|
|
7022
7232
|
this._mouseMoveDirection$,
|
|
7023
7233
|
]).subscribe(([pauseSwap, tableRowMouseOver, tableRowToMove, mouseMoveDirection]) => {
|
|
7024
|
-
if (tableRowMouseOver
|
|
7234
|
+
if (tableRowMouseOver === tableRowToMove || pauseSwap)
|
|
7235
|
+
return;
|
|
7236
|
+
const movingUp = mouseMoveDirection === MoveRowDirection.UP;
|
|
7237
|
+
// Moving down: land after the hovered row's expanded child row, not between the two.
|
|
7238
|
+
const insertBeforeNode = movingUp
|
|
7239
|
+
? tableRowMouseOver
|
|
7240
|
+
: (this.getChildRow(tableRowMouseOver) ?? tableRowMouseOver).nextSibling;
|
|
7241
|
+
if (insertBeforeNode) {
|
|
7025
7242
|
this.pauseSwap();
|
|
7026
|
-
|
|
7027
|
-
|
|
7028
|
-
|
|
7029
|
-
|
|
7030
|
-
else if (tableRowMouseOver.nextSibling) {
|
|
7031
|
-
tableRowToMove.parentNode.insertBefore(tableRowToMove, tableRowMouseOver.nextSibling);
|
|
7032
|
-
this.continueSwap();
|
|
7243
|
+
const childRowToMove = this.getChildRow(tableRowToMove);
|
|
7244
|
+
tableRowToMove.parentNode.insertBefore(tableRowToMove, insertBeforeNode);
|
|
7245
|
+
if (childRowToMove) {
|
|
7246
|
+
tableRowToMove.parentNode.insertBefore(childRowToMove, tableRowToMove.nextSibling);
|
|
7033
7247
|
}
|
|
7248
|
+
this.continueSwap();
|
|
7034
7249
|
}
|
|
7035
7250
|
});
|
|
7036
7251
|
}
|
|
@@ -7048,6 +7263,10 @@ class CarbonListDragAndDropService {
|
|
|
7048
7263
|
this._tableRowMouseOverSubject$.next(findTableRow);
|
|
7049
7264
|
});
|
|
7050
7265
|
}
|
|
7266
|
+
getChildRow(row) {
|
|
7267
|
+
const next = row.nextElementSibling;
|
|
7268
|
+
return next?.hasAttribute(this._CHILD_ROW_ATTRIBUTE) ? next : null;
|
|
7269
|
+
}
|
|
7051
7270
|
pauseSwap() {
|
|
7052
7271
|
this._pauseSwap$.next(true);
|
|
7053
7272
|
}
|
|
@@ -7090,8 +7309,9 @@ class CarbonListDragAndDropService {
|
|
|
7090
7309
|
const htmlTableElement = tableElementChildren?.find(child => child.localName === 'table');
|
|
7091
7310
|
const htmlTableElementChildren = htmlTableElement?.children && Array.from(htmlTableElement?.children);
|
|
7092
7311
|
const htmlTableBodyElement = htmlTableElementChildren?.find(child => child.localName === 'tbody');
|
|
7312
|
+
// Expanded-row children are separate <tr>s; leave them out so indexes match the items.
|
|
7093
7313
|
const htmlTableRowElements = htmlTableBodyElement?.children &&
|
|
7094
|
-
Array.from(htmlTableBodyElement.children);
|
|
7314
|
+
Array.from(htmlTableBodyElement.children).filter(row => !row.hasAttribute(this._CHILD_ROW_ATTRIBUTE));
|
|
7095
7315
|
return htmlTableRowElements || null;
|
|
7096
7316
|
}
|
|
7097
7317
|
setTableRows(tableRowToMoveIndex) {
|
|
@@ -7960,6 +8180,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
7960
8180
|
args: [{ name: 'actionItemDisabled', standalone: false }]
|
|
7961
8181
|
}] });
|
|
7962
8182
|
|
|
8183
|
+
/*
|
|
8184
|
+
* Copyright 2015-2026 Ritense BV, the Netherlands.
|
|
8185
|
+
*
|
|
8186
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
8187
|
+
* you may not use this file except in compliance with the License.
|
|
8188
|
+
* You may obtain a copy of the License at
|
|
8189
|
+
*
|
|
8190
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
8191
|
+
*
|
|
8192
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
8193
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
8194
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
8195
|
+
* See the License for the specific language governing permissions and
|
|
8196
|
+
* limitations under the License.
|
|
8197
|
+
*/
|
|
8198
|
+
class ActionItemHiddenPipe {
|
|
8199
|
+
transform(action, item) {
|
|
8200
|
+
if (action.hidden$) {
|
|
8201
|
+
// hide by default while the check is pending, so the item doesn't flash in then disappear
|
|
8202
|
+
return action.hidden$(item).pipe(startWith$1(true));
|
|
8203
|
+
}
|
|
8204
|
+
return of(false);
|
|
8205
|
+
}
|
|
8206
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: ActionItemHiddenPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
8207
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.25", ngImport: i0, type: ActionItemHiddenPipe, isStandalone: false, name: "actionItemHidden" }); }
|
|
8208
|
+
}
|
|
8209
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: ActionItemHiddenPipe, decorators: [{
|
|
8210
|
+
type: Pipe,
|
|
8211
|
+
args: [{ name: 'actionItemHidden', standalone: false }]
|
|
8212
|
+
}] });
|
|
8213
|
+
|
|
7963
8214
|
/*
|
|
7964
8215
|
* Copyright 2015-2026 Ritense BV, the Netherlands.
|
|
7965
8216
|
*
|
|
@@ -8760,11 +9011,11 @@ class CarbonListComponent {
|
|
|
8760
9011
|
}
|
|
8761
9012
|
}
|
|
8762
9013
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: CarbonListComponent, deps: [{ token: EllipsisPipe }, { token: CarbonListFilterPipe }, { token: i2$3.IconService }, { token: i4.NGXLogger }, { token: i1.TranslateService }, { token: ViewContentService }, { token: KeyStateService }, { token: CarbonListDragAndDropService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8763
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: CarbonListComponent, isStandalone: false, selector: "valtimo-carbon-list", inputs: { items: "items", fields: "fields", tableTranslations: "tableTranslations", paginatorConfig: "paginatorConfig", pagination: "pagination", loading: "loading", skeletonRowCount: "skeletonRowCount", actions: "actions", actionItems: "actionItems", showActionItems: "showActionItems", header: "header", hideColumnHeader: "hideColumnHeader", initialSortState: "initialSortState", sortState: "sortState", isSearchable: "isSearchable", initialSearchValue: "initialSearchValue", searchDebounceMs: "searchDebounceMs", invalidSearchFields: "invalidSearchFields", searchFields: "searchFields", enableSingleSelection: "enableSingleSelection", lastColumnTemplate: "lastColumnTemplate", paginationIdentifier: "paginationIdentifier", showSelectionColumn: "showSelectionColumn", striped: "striped", hideToolbar: "hideToolbar", lockedTooltipTranslationKey: "lockedTooltipTranslationKey", movingRowsEnabled: "movingRowsEnabled", dragAndDrop: "dragAndDrop", dragAndDropDisabled: "dragAndDropDisabled", expandedRowTemplate: "expandedRowTemplate", expandedRowKey: "expandedRowKey", trackByKey: "trackByKey" }, outputs: { rowClicked: "rowClicked", paginationClicked: "paginationClicked", paginationSet: "paginationSet", search: "search", sortChanged: "sortChanged", moveRow: "moveRow", itemsReordered: "itemsReordered" }, providers: [CarbonListFilterPipe, CarbonListDragAndDropService], viewQueries: [{ propertyName: "actionsMenuTemplate", first: true, predicate: ["actionsMenuTemplate"], descendants: true }, { propertyName: "actionTemplate", first: true, predicate: ["actionTemplate"], descendants: true }, { propertyName: "booleanTemplate", first: true, predicate: ["booleanTemplate"], descendants: true }, { propertyName: "moveRowsTemplate", first: true, predicate: ["moveRowsTemplate"], descendants: true }, { propertyName: "dragAndDropTemplate", first: true, predicate: ["dragAndDropTemplate"], descendants: true }, { propertyName: "rowDisabled", first: true, predicate: ["rowDisabled"], descendants: true }, { propertyName: "tagTemplate", first: true, predicate: ["tagTemplate"], descendants: true }, { propertyName: "defaultTemplate", first: true, predicate: ["defaultTemplate"], descendants: true }, { propertyName: "_table", first: true, predicate: Table, descendants: true }], ngImport: i0, template: "<!--\n ~ /*\n ~ * Copyright 2015-2026 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-table-container\n *ngIf=\"{\n sort: sort$ | async,\n model: model$ | async,\n viewInitialized: viewInitialized$ | async,\n } as obs\"\n class=\"valtimo-carbon-list\"\n>\n <cds-table-header *ngIf=\"header\">\n <ng-content select=\"[header]\"></ng-content>\n </cds-table-header>\n\n <ng-content select=\"[tabs]\"></ng-content>\n\n <cds-table-toolbar\n *ngIf=\"!hideToolbar\"\n class=\"valtimo-carbon-list__toolbar\"\n [model]=\"obs.model\"\n [batchText]=\"batchText$ | async\"\n >\n <cds-table-toolbar-actions>\n <ng-content select=\"[carbonToolbarActions]\"> </ng-content>\n </cds-table-toolbar-actions>\n\n <cds-table-toolbar-content>\n <div *ngIf=\"isSearchable\" class=\"valtimo-search-container\" (focusout)=\"onSearchFocusOut($event)\">\n <cds-table-toolbar-search\n #toolbarSearch\n [expandable]=\"false\"\n [formControl]=\"searchFormControl\"\n [ngClass]=\"{'valtimo-search--invalid': invalidSearchFields.length > 0}\"\n data-test-id=\"carbonListSearch\"\n (input)=\"updateAutocomplete()\"\n (keydown)=\"onSearchKeydown($event)\"\n (clear)=\"onSearchClear()\"\n (open)=\"onSearchOpenChange($event)\"\n ></cds-table-toolbar-search>\n <div\n class=\"valtimo-search-overlay\"\n aria-hidden=\"true\"\n ><span\n *ngFor=\"let segment of getSearchSegments()\"\n [class.valtimo-search-overlay__invalid]=\"segment.isInvalid\"\n >{{ segment.text }}</span></div>\n <ul *ngIf=\"showAutocomplete && filteredSuggestions.length\" class=\"valtimo-search-autocomplete\" [style.left.px]=\"autocompleteLeft\">\n <li\n *ngFor=\"let field of filteredSuggestions; let i = index\"\n [class.selected]=\"i === selectedSuggestionIndex\"\n (mousedown)=\"selectSuggestion(field)\"\n >{{ field.title || field.key }}</li>\n </ul>\n </div>\n\n <ng-content select=\"[carbonToolbarContent]\"> </ng-content>\n </cds-table-toolbar-content>\n </cds-table-toolbar>\n\n <cds-table\n *ngIf=\"!!obs.sort\"\n [ngClass]=\"{\n 'valtimo-carbon-list__header--hidden': hideColumnHeader,\n 'valtimo-carbon-list--unclickable': !this.rowClicked.observed,\n }\"\n [enableSingleSelect]=\"enableSingleSelect\"\n [model]=\"loading || !obs.viewInitialized ? skeletonModel : obs.model\"\n [showSelectionColumn]=\"showSelectionColumn\"\n [skeleton]=\"loading\"\n [striped]=\"striped\"\n (sort)=\"onSort(obs.model.header[$event])\"\n (rowClick)=\"onRowClick($event)\"\n >\n <tbody cdsTableBody>\n <tr class=\"valtimo-carbon-list__no-results\" data-test-id=\"carbonListNoResults\">\n <td [attr.colspan]=\"obs.model.header.length + (showSelectionColumn ? 1 : 0)\">\n <ng-content></ng-content>\n </td>\n\n <td [attr.colspan]=\"obs.model.header.length + (showSelectionColumn ? 1 : 0)\">\n {{ 'list.noResults' | translate }}\n </td>\n </tr>\n </tbody>\n </cds-table>\n\n <cds-pagination\n *ngIf=\"paginationModel && items?.length\"\n [itemsPerPageOptions]=\"paginatorConfig.itemsPerPageOptions\"\n [model]=\"paginationModel\"\n [showPageInput]=\"paginatorConfig.showPageInput\"\n [skeleton]=\"loading\"\n [translations]=\"paginationTranslations$ | async\"\n (selectPage)=\"onSelectPage($event)\"\n data-test-id=\"carbonListPagination\"\n ></cds-pagination>\n</cds-table-container>\n\n<ng-template #actionTemplate let-data=\"data\">\n <i\n class=\"clickable\"\n [ngClass]=\"data.iconClass\"\n (click)=\"$event.stopPropagation(); data.callback(data.item)\"\n ></i>\n</ng-template>\n\n<ng-template #booleanTemplate let-data=\"data\">\n {{ data | translate }}\n</ng-template>\n\n<ng-template #actionsMenuTemplate let-data=\"data\">\n <v-overflow-menu\n *ngIf=\"showActionItems\"\n [open]=\"currentOpenActionId === data.item\"\n [portalToBody]=\"true\"\n (openChange)=\"handleActionOpenChange(data.item, $event)\"\n placement=\"bottom-end\"\n [portalToBody]=\"true\"\n (click)=\"$event.stopPropagation()\"\n >\n <v-overflow-menu-trigger overflowTrigger></v-overflow-menu-trigger>\n @for (action of data.actions; track action.label) {\n <v-overflow-menu-option\n [disabled]=\"action | actionItemDisabled: data.item | async\"\n [type]=\"action.type\"\n (selected)=\"action.callback(data.item)\"\n >\n <i *ngIf=\"!!action.iconClass\" [ngClass]=\"action.iconClass\"></i>\n\n {{ action.label | translate }}\n </v-overflow-menu-option>\n }\n </v-overflow-menu>\n</ng-template>\n\n<ng-template #rowDisabled let-data=\"data\">\n <div *ngIf=\"data.locked\" class=\"locked\">\n <span\n class=\"float-right badge badge-pill badge-secondary bg-grey\"\n ngbTooltip=\"{{ lockedTooltipTranslationKey | translate }}\"\n >\n <i class=\"icon mdi mdi-lock\"></i>\n </span>\n </div>\n</ng-template>\n\n<ng-template #moveRowsTemplate let-data=\"data\">\n <div class=\"valtimo-carbon-list__move-rows\">\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === 0\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onMoveUpClick($event, data)\"\n data-test-id=\"carbonListMoveUp\"\n >\n <svg cdsIcon=\"arrow--up\" size=\"16\"></svg>\n </button>\n\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === data.length - 1\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onMoveDownClick($event, data)\"\n data-test-id=\"carbonListMoveDown\"\n >\n <svg cdsIcon=\"arrow--down\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #dragAndDropTemplate let-data=\"data\">\n <div class=\"valtimo-carbon-list__draggable\">\n <button\n cdsButton=\"ghost\"\n [disabled]=\"dragAndDropDisabled\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (mousedown)=\"onDragStart($event, data)\"\n data-test-id=\"carbonListDragHandle\"\n >\n <svg cdsIcon=\"draggable\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #tagTemplate let-data=\"data\">\n @if (!data.tags) {\n -\n } @else {\n <div class=\"tag-template\">\n @if (data.tags.length === 0) {\n -\n } @else {\n @for (tag of data.tags.slice(0, data.tagAmount); track tag) {\n <cds-tag class=\"cds-tag--no-margin\" [type]=\"tag.type\">\n {{ tag.ellipsisContent ?? tag.content }}\n </cds-tag>\n }\n\n <cds-tag\n *ngIf=\"data.tags.length > data.tagAmount\"\n class=\"cds-tag--no-margin valtimo-carbon-list__expand-tag\"\n type=\"high-contrast\"\n (click)=\"onTagClick($event, data.tags)\"\n data-test-id=\"carbonListExpandTags\"\n >\n {{ data.tags.length - data.tagAmount }} <svg cdsIcon=\"add\" size=\"16\"></svg>\n </cds-tag>\n }\n </div>\n }\n</ng-template>\n\n<ng-template #defaultTemplate let-data=\"data\">\n <span>{{ data }}</span>\n</ng-template>\n\n<valtimo-tags-modal\n [open]=\"tagModalOpen$ | async\"\n [tags]=\"tagModalData$ | async\"\n (closeEvent)=\"onCloseEvent()\"\n></valtimo-tags-modal>\n", styles: [".clickable{cursor:pointer}.container-fluid{background-color:var(--cds-layer)}.tile-holder{background-color:#f5f5f5;border:1px solid transparent}.tile-holder:hover{background-color:#eee;border:1px solid #dee2e6}th:first-child,td:first-child{padding-left:25px}::ng-deep tr:has(>td .locked){cursor:not-allowed}::ng-deep tr:has(>td .locked) td{color:var(--cds-text-on-color-disabled)}::ng-deep .valtimo-carbon-list__header--hidden thead{display:none}::ng-deep .valtimo-carbon-list--unclickable tr{cursor:default}.valtimo-carbon-list__toolbar:empty{display:none}.valtimo-carbon-list__no-results{cursor:default}.valtimo-carbon-list__no-results td:empty,.valtimo-carbon-list__no-results td:not(:empty)+td{display:none}.valtimo-carbon-list__move-rows,.valtimo-carbon-list__draggable{width:100%;justify-content:flex-end;display:flex;flex-direction:row;position:relative}.valtimo-carbon-list__move-rows button:not(:last-child),.valtimo-carbon-list__draggable button:not(:last-child){margin-right:8px}.valtimo-carbon-list__expand-tag{cursor:pointer}.valtimo-carbon-list label{margin-bottom:0!important}.valtimo-carbon-list ::ng-deep .tag-template .cds--tag{margin:0}.valtimo-carbon-list ::ng-deep .tag-template .cds--tag svg{fill:var(--cds-background)}.valtimo-carbon-list ::ng-deep .tag-template>*:not(:last-child){margin-right:8px}.valtimo-carbon-list ::ng-deep .cds--tag{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;line-height:24px}.valtimo-carbon-list ::ng-deep .valtimo-carbon-list__draggable .cds--btn--ghost{cursor:move!important;padding-top:8px!important;padding-bottom:8px!important}::ng-deep .valtimo-carbon-list__drag-table-row{cursor:move!important}::ng-deep .valtimo-carbon-list__drag-table-row .valtimo-carbon-list__draggable .cds--btn--ghost{outline:0;border-color:var(--cds-button-focus-color, var(--cds-focus, var(--vcds-color-60)));box-shadow:inset 0 0 0 1px var(--cds-button-focus-color, var(--cds-focus, var(--vcds-color-60))),inset 0 0 0 2px var(--cds-background, #f4f4f4)}.valtimo-carbon-list ::ng-deep cds-table{display:block;overflow-x:auto;overflow-y:hidden}.valtimo-carbon-list ::ng-deep .cds--expandable-row:not(.cds--parent-row) td{border-top:none;border-bottom-width:2px}.valtimo-carbon-list ::ng-deep tbody .cds--expandable-row.cds--parent-row td{border-bottom-width:2px}.valtimo-carbon-list ::ng-deep tbody tr:first-child td{border-top:none!important}.valtimo-search-container{position:relative;flex:1}.valtimo-search-container ::ng-deep cds-table-toolbar-search{display:flex;justify-content:flex-end;width:100%}.valtimo-search-container ::ng-deep cds-table-toolbar-search .cds--toolbar-search-container-active{width:100%}.valtimo-search-container ::ng-deep .cds--toolbar-search-container-active input{color:transparent!important;caret-color:var(--cds-text-primary, #161616)}.valtimo-search-overlay{position:absolute;inset:0;display:flex;align-items:center;height:3rem;padding:0 3rem;font-family:IBM Plex Sans,Helvetica Neue,Arial,sans-serif;font-size:.875rem;font-weight:400;letter-spacing:.16px;line-height:1.28572;color:var(--cds-text-primary, #161616);white-space:pre;pointer-events:none;overflow:hidden}.valtimo-search-overlay__invalid{text-decoration:underline wavy var(--cds-support-error, #da1e28);text-decoration-skip-ink:none;text-underline-offset:3px}.valtimo-search-autocomplete{position:absolute;top:100%;max-height:150px;min-width:120px;max-width:250px;width:auto;overflow-y:auto;background:var(--cds-layer);border:1px solid var(--cds-border-subtle);box-shadow:0 2px 6px #0000001a;z-index:9000;list-style:none;margin:0;padding:0}.valtimo-search-autocomplete li{padding:6px 12px;cursor:pointer;font-size:.875rem;white-space:nowrap}.valtimo-search-autocomplete li:hover,.valtimo-search-autocomplete li.selected{background:var(--cds-layer-hover)}\n/*!\n * Copyright 2015-2026 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: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i2$3.Pagination, selector: "cds-pagination, ibm-pagination", inputs: ["skeleton", "model", "disabled", "pageInputDisabled", "showPageInput", "pagesUnknown", "pageSelectThreshold", "translations", "itemsPerPageOptions"], outputs: ["selectPage"] }, { kind: "component", type: i2$3.TableToolbar, selector: "cds-table-toolbar, ibm-table-toolbar", inputs: ["model", "batchText", "ariaLabel", "cancelText", "size"], outputs: ["cancel"] }, { kind: "component", type: i2$3.TableContainer, selector: "cds-table-container, ibm-table-container" }, { kind: "component", type: i2$3.TableHeader, selector: "cds-table-header, ibm-table-header" }, { kind: "component", type: i2$3.TableToolbarActions, selector: "cds-table-toolbar-actions, ibm-table-toolbar-actions" }, { kind: "component", type: i2$3.TableToolbarSearch, selector: "cds-table-toolbar-search, ibm-table-toolbar-search" }, { kind: "component", type: i2$3.TableToolbarContent, selector: "cds-table-toolbar-content, ibm-table-toolbar-content" }, { kind: "component", type: i2$3.Table, selector: "cds-table, ibm-table", inputs: ["ariaLabelledby", "ariaDescribedby", "model", "size", "skeleton", "isDataGrid", "sortable", "noBorder", "showExpandAllToggle", "showSelectionColumn", "enableSingleSelect", "scrollLoadDistance", "expandButtonAriaLabel", "sortDescendingLabel", "sortAscendingLabel", "translations", "striped", "stickyHeader", "footerTemplate", "selectionLabelColumn"], outputs: ["sort", "selectAll", "deselectAll", "selectRow", "deselectRow", "rowClick", "scrollLoad"] }, { kind: "component", type: i2$3.TableBody, selector: "[cdsTableBody], [ibmTableBody]", inputs: ["model", "enableSingleSelect", "expandButtonAriaLabel", "checkboxRowLabel", "showSelectionColumn", "size", "selectionLabelColumn", "skeleton"], outputs: ["selectRow", "deselectRow", "rowClick"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "directive", type: i2$3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i11.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: i2$3.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class", "skeleton"] }, { kind: "component", type: OverflowMenuComponent, selector: "v-overflow-menu", inputs: ["open", "placement", "menuWidth", "offsetX", "offsetY", "closeOnSelect", "useHostAsReference", "portalToBody"], outputs: ["openChange"] }, { kind: "component", type: OverflowMenuOptionComponent, selector: "v-overflow-menu-option", inputs: ["disabled", "type", "testId", "optionId"], outputs: ["selected"] }, { kind: "component", type: OverflowMenuTriggerComponent, selector: "v-overflow-menu-trigger", inputs: ["compact", "label"] }, { kind: "component", type: CarbonTagsModalComponent, selector: "valtimo-tags-modal", inputs: ["open", "tags"], outputs: ["closeEvent"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: ActionItemDisabledPipe, name: "actionItemDisabled" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
9014
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: CarbonListComponent, isStandalone: false, selector: "valtimo-carbon-list", inputs: { items: "items", fields: "fields", tableTranslations: "tableTranslations", paginatorConfig: "paginatorConfig", pagination: "pagination", loading: "loading", skeletonRowCount: "skeletonRowCount", actions: "actions", actionItems: "actionItems", showActionItems: "showActionItems", header: "header", hideColumnHeader: "hideColumnHeader", initialSortState: "initialSortState", sortState: "sortState", isSearchable: "isSearchable", initialSearchValue: "initialSearchValue", searchDebounceMs: "searchDebounceMs", invalidSearchFields: "invalidSearchFields", searchFields: "searchFields", enableSingleSelection: "enableSingleSelection", lastColumnTemplate: "lastColumnTemplate", paginationIdentifier: "paginationIdentifier", showSelectionColumn: "showSelectionColumn", striped: "striped", hideToolbar: "hideToolbar", lockedTooltipTranslationKey: "lockedTooltipTranslationKey", movingRowsEnabled: "movingRowsEnabled", dragAndDrop: "dragAndDrop", dragAndDropDisabled: "dragAndDropDisabled", expandedRowTemplate: "expandedRowTemplate", expandedRowKey: "expandedRowKey", trackByKey: "trackByKey" }, outputs: { rowClicked: "rowClicked", paginationClicked: "paginationClicked", paginationSet: "paginationSet", search: "search", sortChanged: "sortChanged", moveRow: "moveRow", itemsReordered: "itemsReordered" }, providers: [CarbonListFilterPipe, CarbonListDragAndDropService], viewQueries: [{ propertyName: "actionsMenuTemplate", first: true, predicate: ["actionsMenuTemplate"], descendants: true }, { propertyName: "actionTemplate", first: true, predicate: ["actionTemplate"], descendants: true }, { propertyName: "booleanTemplate", first: true, predicate: ["booleanTemplate"], descendants: true }, { propertyName: "moveRowsTemplate", first: true, predicate: ["moveRowsTemplate"], descendants: true }, { propertyName: "dragAndDropTemplate", first: true, predicate: ["dragAndDropTemplate"], descendants: true }, { propertyName: "rowDisabled", first: true, predicate: ["rowDisabled"], descendants: true }, { propertyName: "tagTemplate", first: true, predicate: ["tagTemplate"], descendants: true }, { propertyName: "defaultTemplate", first: true, predicate: ["defaultTemplate"], descendants: true }, { propertyName: "_table", first: true, predicate: Table, descendants: true }], ngImport: i0, template: "<!--\n ~ /*\n ~ * Copyright 2015-2026 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-table-container\n *ngIf=\"{\n sort: sort$ | async,\n model: model$ | async,\n viewInitialized: viewInitialized$ | async,\n } as obs\"\n class=\"valtimo-carbon-list\"\n>\n <cds-table-header *ngIf=\"header\">\n <ng-content select=\"[header]\"></ng-content>\n </cds-table-header>\n\n <ng-content select=\"[tabs]\"></ng-content>\n\n <cds-table-toolbar\n *ngIf=\"!hideToolbar\"\n class=\"valtimo-carbon-list__toolbar\"\n [model]=\"obs.model\"\n [batchText]=\"batchText$ | async\"\n >\n <cds-table-toolbar-actions>\n <ng-content select=\"[carbonToolbarActions]\"> </ng-content>\n </cds-table-toolbar-actions>\n\n <cds-table-toolbar-content>\n <div *ngIf=\"isSearchable\" class=\"valtimo-search-container\" (focusout)=\"onSearchFocusOut($event)\">\n <cds-table-toolbar-search\n #toolbarSearch\n [expandable]=\"false\"\n [formControl]=\"searchFormControl\"\n [ngClass]=\"{'valtimo-search--invalid': invalidSearchFields.length > 0}\"\n data-test-id=\"carbonListSearch\"\n (input)=\"updateAutocomplete()\"\n (keydown)=\"onSearchKeydown($event)\"\n (clear)=\"onSearchClear()\"\n (open)=\"onSearchOpenChange($event)\"\n ></cds-table-toolbar-search>\n <div\n class=\"valtimo-search-overlay\"\n aria-hidden=\"true\"\n ><span\n *ngFor=\"let segment of getSearchSegments()\"\n [class.valtimo-search-overlay__invalid]=\"segment.isInvalid\"\n >{{ segment.text }}</span></div>\n <ul *ngIf=\"showAutocomplete && filteredSuggestions.length\" class=\"valtimo-search-autocomplete\" [style.left.px]=\"autocompleteLeft\">\n <li\n *ngFor=\"let field of filteredSuggestions; let i = index\"\n [class.selected]=\"i === selectedSuggestionIndex\"\n (mousedown)=\"selectSuggestion(field)\"\n >{{ field.title || field.key }}</li>\n </ul>\n </div>\n\n <ng-content select=\"[carbonToolbarContent]\"> </ng-content>\n </cds-table-toolbar-content>\n </cds-table-toolbar>\n\n <cds-table\n *ngIf=\"!!obs.sort\"\n [ngClass]=\"{\n 'valtimo-carbon-list__header--hidden': hideColumnHeader,\n 'valtimo-carbon-list--unclickable': !this.rowClicked.observed,\n }\"\n [enableSingleSelect]=\"enableSingleSelect\"\n [model]=\"loading || !obs.viewInitialized ? skeletonModel : obs.model\"\n [showSelectionColumn]=\"showSelectionColumn\"\n [skeleton]=\"loading\"\n [striped]=\"striped\"\n (sort)=\"onSort(obs.model.header[$event])\"\n (rowClick)=\"onRowClick($event)\"\n >\n <tbody cdsTableBody>\n <tr class=\"valtimo-carbon-list__no-results\" data-test-id=\"carbonListNoResults\">\n <td [attr.colspan]=\"obs.model.header.length + (showSelectionColumn ? 1 : 0)\">\n <ng-content></ng-content>\n </td>\n\n <td [attr.colspan]=\"obs.model.header.length + (showSelectionColumn ? 1 : 0)\">\n {{ 'list.noResults' | translate }}\n </td>\n </tr>\n </tbody>\n </cds-table>\n\n <cds-pagination\n *ngIf=\"paginationModel && items?.length\"\n [itemsPerPageOptions]=\"paginatorConfig.itemsPerPageOptions\"\n [model]=\"paginationModel\"\n [showPageInput]=\"paginatorConfig.showPageInput\"\n [skeleton]=\"loading\"\n [translations]=\"paginationTranslations$ | async\"\n (selectPage)=\"onSelectPage($event)\"\n data-test-id=\"carbonListPagination\"\n ></cds-pagination>\n</cds-table-container>\n\n<ng-template #actionTemplate let-data=\"data\">\n <i\n class=\"clickable\"\n [ngClass]=\"data.iconClass\"\n (click)=\"$event.stopPropagation(); data.callback(data.item)\"\n ></i>\n</ng-template>\n\n<ng-template #booleanTemplate let-data=\"data\">\n {{ data | translate }}\n</ng-template>\n\n<ng-template #actionsMenuTemplate let-data=\"data\">\n <v-overflow-menu\n *ngIf=\"showActionItems\"\n [open]=\"currentOpenActionId === data.item\"\n [portalToBody]=\"true\"\n (openChange)=\"handleActionOpenChange(data.item, $event)\"\n placement=\"bottom-end\"\n [portalToBody]=\"true\"\n (click)=\"$event.stopPropagation()\"\n >\n <v-overflow-menu-trigger overflowTrigger></v-overflow-menu-trigger>\n @for (action of data.actions; track action.label) {\n @if (!(action | actionItemHidden: data.item | async)) {\n <v-overflow-menu-option\n [disabled]=\"action | actionItemDisabled: data.item | async\"\n [type]=\"action.type\"\n (selected)=\"action.callback(data.item)\"\n >\n <i *ngIf=\"!!action.iconClass\" [ngClass]=\"action.iconClass\"></i>\n\n {{ action.label | translate }}\n </v-overflow-menu-option>\n }\n }\n </v-overflow-menu>\n</ng-template>\n\n<ng-template #rowDisabled let-data=\"data\">\n <div *ngIf=\"data.locked\" class=\"locked\">\n <span\n class=\"float-right badge badge-pill badge-secondary bg-grey\"\n ngbTooltip=\"{{ lockedTooltipTranslationKey | translate }}\"\n >\n <i class=\"icon mdi mdi-lock\"></i>\n </span>\n </div>\n</ng-template>\n\n<ng-template #moveRowsTemplate let-data=\"data\">\n <div class=\"valtimo-carbon-list__move-rows\">\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === 0\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onMoveUpClick($event, data)\"\n data-test-id=\"carbonListMoveUp\"\n >\n <svg cdsIcon=\"arrow--up\" size=\"16\"></svg>\n </button>\n\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === data.length - 1\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onMoveDownClick($event, data)\"\n data-test-id=\"carbonListMoveDown\"\n >\n <svg cdsIcon=\"arrow--down\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #dragAndDropTemplate let-data=\"data\">\n <div class=\"valtimo-carbon-list__draggable\">\n <button\n cdsButton=\"ghost\"\n [disabled]=\"dragAndDropDisabled\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (mousedown)=\"onDragStart($event, data)\"\n data-test-id=\"carbonListDragHandle\"\n >\n <svg cdsIcon=\"draggable\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #tagTemplate let-data=\"data\">\n @if (!data.tags) {\n -\n } @else {\n <div class=\"tag-template\">\n @if (data.tags.length === 0) {\n -\n } @else {\n @for (tag of data.tags.slice(0, data.tagAmount); track tag) {\n <cds-tag class=\"cds-tag--no-margin\" [type]=\"tag.type\">\n {{ tag.ellipsisContent ?? tag.content }}\n </cds-tag>\n }\n\n <cds-tag\n *ngIf=\"data.tags.length > data.tagAmount\"\n class=\"cds-tag--no-margin valtimo-carbon-list__expand-tag\"\n type=\"high-contrast\"\n (click)=\"onTagClick($event, data.tags)\"\n data-test-id=\"carbonListExpandTags\"\n >\n {{ data.tags.length - data.tagAmount }} <svg cdsIcon=\"add\" size=\"16\"></svg>\n </cds-tag>\n }\n </div>\n }\n</ng-template>\n\n<ng-template #defaultTemplate let-data=\"data\">\n <span>{{ data }}</span>\n</ng-template>\n\n<valtimo-tags-modal\n [open]=\"tagModalOpen$ | async\"\n [tags]=\"tagModalData$ | async\"\n (closeEvent)=\"onCloseEvent()\"\n></valtimo-tags-modal>\n", styles: [".clickable{cursor:pointer}.container-fluid{background-color:var(--cds-layer)}.tile-holder{background-color:#f5f5f5;border:1px solid transparent}.tile-holder:hover{background-color:#eee;border:1px solid #dee2e6}th:first-child,td:first-child{padding-left:25px}::ng-deep tr:has(>td .locked){cursor:not-allowed}::ng-deep tr:has(>td .locked) td{color:var(--cds-text-on-color-disabled)}::ng-deep .valtimo-carbon-list__header--hidden thead{display:none}::ng-deep .valtimo-carbon-list--unclickable tr{cursor:default}.valtimo-carbon-list__toolbar:empty{display:none}.valtimo-carbon-list__no-results{cursor:default}.valtimo-carbon-list__no-results td:empty,.valtimo-carbon-list__no-results td:not(:empty)+td{display:none}.valtimo-carbon-list__move-rows,.valtimo-carbon-list__draggable{width:100%;justify-content:flex-end;display:flex;flex-direction:row;position:relative}.valtimo-carbon-list__move-rows button:not(:last-child),.valtimo-carbon-list__draggable button:not(:last-child){margin-right:8px}.valtimo-carbon-list__expand-tag{cursor:pointer}.valtimo-carbon-list label{margin-bottom:0!important}.valtimo-carbon-list ::ng-deep .tag-template .cds--tag{margin:0}.valtimo-carbon-list ::ng-deep .tag-template .cds--tag svg{fill:var(--cds-background)}.valtimo-carbon-list ::ng-deep .tag-template>*:not(:last-child){margin-right:8px}.valtimo-carbon-list ::ng-deep .cds--tag{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;line-height:24px}.valtimo-carbon-list ::ng-deep .valtimo-carbon-list__draggable .cds--btn--ghost{cursor:move!important;padding-top:8px!important;padding-bottom:8px!important}::ng-deep .valtimo-carbon-list__drag-table-row{cursor:move!important}::ng-deep .valtimo-carbon-list__drag-table-row .valtimo-carbon-list__draggable .cds--btn--ghost{outline:0;border-color:var(--cds-button-focus-color, var(--cds-focus, var(--vcds-color-60)));box-shadow:inset 0 0 0 1px var(--cds-button-focus-color, var(--cds-focus, var(--vcds-color-60))),inset 0 0 0 2px var(--cds-background, #f4f4f4)}.valtimo-carbon-list ::ng-deep cds-table{display:block;overflow-x:auto;overflow-y:hidden}.valtimo-carbon-list ::ng-deep .cds--expandable-row:not(.cds--parent-row) td{border-top:none;border-bottom-width:2px}.valtimo-carbon-list ::ng-deep tbody .cds--expandable-row.cds--parent-row td{border-bottom-width:2px}.valtimo-carbon-list ::ng-deep tbody tr:first-child td{border-top:none!important}.valtimo-search-container{position:relative;flex:1}.valtimo-search-container ::ng-deep cds-table-toolbar-search{display:flex;justify-content:flex-end;width:100%}.valtimo-search-container ::ng-deep cds-table-toolbar-search .cds--toolbar-search-container-active{width:100%}.valtimo-search-container ::ng-deep .cds--toolbar-search-container-active input{color:transparent!important;caret-color:var(--cds-text-primary, #161616)}.valtimo-search-overlay{position:absolute;inset:0;display:flex;align-items:center;height:3rem;padding:0 3rem;font-family:IBM Plex Sans,Helvetica Neue,Arial,sans-serif;font-size:.875rem;font-weight:400;letter-spacing:.16px;line-height:1.28572;color:var(--cds-text-primary, #161616);white-space:pre;pointer-events:none;overflow:hidden}.valtimo-search-overlay__invalid{text-decoration:underline wavy var(--cds-support-error, #da1e28);text-decoration-skip-ink:none;text-underline-offset:3px}.valtimo-search-autocomplete{position:absolute;top:100%;max-height:150px;min-width:120px;max-width:250px;width:auto;overflow-y:auto;background:var(--cds-layer);border:1px solid var(--cds-border-subtle);box-shadow:0 2px 6px #0000001a;z-index:9000;list-style:none;margin:0;padding:0}.valtimo-search-autocomplete li{padding:6px 12px;cursor:pointer;font-size:.875rem;white-space:nowrap}.valtimo-search-autocomplete li:hover,.valtimo-search-autocomplete li.selected{background:var(--cds-layer-hover)}\n/*!\n * Copyright 2015-2026 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: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i2$3.Pagination, selector: "cds-pagination, ibm-pagination", inputs: ["skeleton", "model", "disabled", "pageInputDisabled", "showPageInput", "pagesUnknown", "pageSelectThreshold", "translations", "itemsPerPageOptions"], outputs: ["selectPage"] }, { kind: "component", type: i2$3.TableToolbar, selector: "cds-table-toolbar, ibm-table-toolbar", inputs: ["model", "batchText", "ariaLabel", "cancelText", "size"], outputs: ["cancel"] }, { kind: "component", type: i2$3.TableContainer, selector: "cds-table-container, ibm-table-container" }, { kind: "component", type: i2$3.TableHeader, selector: "cds-table-header, ibm-table-header" }, { kind: "component", type: i2$3.TableToolbarActions, selector: "cds-table-toolbar-actions, ibm-table-toolbar-actions" }, { kind: "component", type: i2$3.TableToolbarSearch, selector: "cds-table-toolbar-search, ibm-table-toolbar-search" }, { kind: "component", type: i2$3.TableToolbarContent, selector: "cds-table-toolbar-content, ibm-table-toolbar-content" }, { kind: "component", type: i2$3.Table, selector: "cds-table, ibm-table", inputs: ["ariaLabelledby", "ariaDescribedby", "model", "size", "skeleton", "isDataGrid", "sortable", "noBorder", "showExpandAllToggle", "showSelectionColumn", "enableSingleSelect", "scrollLoadDistance", "expandButtonAriaLabel", "sortDescendingLabel", "sortAscendingLabel", "translations", "striped", "stickyHeader", "footerTemplate", "selectionLabelColumn"], outputs: ["sort", "selectAll", "deselectAll", "selectRow", "deselectRow", "rowClick", "scrollLoad"] }, { kind: "component", type: i2$3.TableBody, selector: "[cdsTableBody], [ibmTableBody]", inputs: ["model", "enableSingleSelect", "expandButtonAriaLabel", "checkboxRowLabel", "showSelectionColumn", "size", "selectionLabelColumn", "skeleton"], outputs: ["selectRow", "deselectRow", "rowClick"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2$3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "directive", type: i2$3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i11.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "triggers", "container", "disableTooltip", "tooltipClass", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "component", type: i2$3.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class", "skeleton"] }, { kind: "component", type: OverflowMenuComponent, selector: "v-overflow-menu", inputs: ["open", "placement", "menuWidth", "offsetX", "offsetY", "closeOnSelect", "useHostAsReference", "portalToBody"], outputs: ["openChange"] }, { kind: "component", type: OverflowMenuOptionComponent, selector: "v-overflow-menu-option", inputs: ["disabled", "type", "testId", "optionId"], outputs: ["selected"] }, { kind: "component", type: OverflowMenuTriggerComponent, selector: "v-overflow-menu-trigger", inputs: ["compact", "label"] }, { kind: "component", type: CarbonTagsModalComponent, selector: "valtimo-tags-modal", inputs: ["open", "tags"], outputs: ["closeEvent"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: ActionItemDisabledPipe, name: "actionItemDisabled" }, { kind: "pipe", type: ActionItemHiddenPipe, name: "actionItemHidden" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8764
9015
|
}
|
|
8765
9016
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: CarbonListComponent, decorators: [{
|
|
8766
9017
|
type: Component,
|
|
8767
|
-
args: [{ selector: 'valtimo-carbon-list', changeDetection: ChangeDetectionStrategy.OnPush, providers: [CarbonListFilterPipe, CarbonListDragAndDropService], standalone: false, template: "<!--\n ~ /*\n ~ * Copyright 2015-2026 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-table-container\n *ngIf=\"{\n sort: sort$ | async,\n model: model$ | async,\n viewInitialized: viewInitialized$ | async,\n } as obs\"\n class=\"valtimo-carbon-list\"\n>\n <cds-table-header *ngIf=\"header\">\n <ng-content select=\"[header]\"></ng-content>\n </cds-table-header>\n\n <ng-content select=\"[tabs]\"></ng-content>\n\n <cds-table-toolbar\n *ngIf=\"!hideToolbar\"\n class=\"valtimo-carbon-list__toolbar\"\n [model]=\"obs.model\"\n [batchText]=\"batchText$ | async\"\n >\n <cds-table-toolbar-actions>\n <ng-content select=\"[carbonToolbarActions]\"> </ng-content>\n </cds-table-toolbar-actions>\n\n <cds-table-toolbar-content>\n <div *ngIf=\"isSearchable\" class=\"valtimo-search-container\" (focusout)=\"onSearchFocusOut($event)\">\n <cds-table-toolbar-search\n #toolbarSearch\n [expandable]=\"false\"\n [formControl]=\"searchFormControl\"\n [ngClass]=\"{'valtimo-search--invalid': invalidSearchFields.length > 0}\"\n data-test-id=\"carbonListSearch\"\n (input)=\"updateAutocomplete()\"\n (keydown)=\"onSearchKeydown($event)\"\n (clear)=\"onSearchClear()\"\n (open)=\"onSearchOpenChange($event)\"\n ></cds-table-toolbar-search>\n <div\n class=\"valtimo-search-overlay\"\n aria-hidden=\"true\"\n ><span\n *ngFor=\"let segment of getSearchSegments()\"\n [class.valtimo-search-overlay__invalid]=\"segment.isInvalid\"\n >{{ segment.text }}</span></div>\n <ul *ngIf=\"showAutocomplete && filteredSuggestions.length\" class=\"valtimo-search-autocomplete\" [style.left.px]=\"autocompleteLeft\">\n <li\n *ngFor=\"let field of filteredSuggestions; let i = index\"\n [class.selected]=\"i === selectedSuggestionIndex\"\n (mousedown)=\"selectSuggestion(field)\"\n >{{ field.title || field.key }}</li>\n </ul>\n </div>\n\n <ng-content select=\"[carbonToolbarContent]\"> </ng-content>\n </cds-table-toolbar-content>\n </cds-table-toolbar>\n\n <cds-table\n *ngIf=\"!!obs.sort\"\n [ngClass]=\"{\n 'valtimo-carbon-list__header--hidden': hideColumnHeader,\n 'valtimo-carbon-list--unclickable': !this.rowClicked.observed,\n }\"\n [enableSingleSelect]=\"enableSingleSelect\"\n [model]=\"loading || !obs.viewInitialized ? skeletonModel : obs.model\"\n [showSelectionColumn]=\"showSelectionColumn\"\n [skeleton]=\"loading\"\n [striped]=\"striped\"\n (sort)=\"onSort(obs.model.header[$event])\"\n (rowClick)=\"onRowClick($event)\"\n >\n <tbody cdsTableBody>\n <tr class=\"valtimo-carbon-list__no-results\" data-test-id=\"carbonListNoResults\">\n <td [attr.colspan]=\"obs.model.header.length + (showSelectionColumn ? 1 : 0)\">\n <ng-content></ng-content>\n </td>\n\n <td [attr.colspan]=\"obs.model.header.length + (showSelectionColumn ? 1 : 0)\">\n {{ 'list.noResults' | translate }}\n </td>\n </tr>\n </tbody>\n </cds-table>\n\n <cds-pagination\n *ngIf=\"paginationModel && items?.length\"\n [itemsPerPageOptions]=\"paginatorConfig.itemsPerPageOptions\"\n [model]=\"paginationModel\"\n [showPageInput]=\"paginatorConfig.showPageInput\"\n [skeleton]=\"loading\"\n [translations]=\"paginationTranslations$ | async\"\n (selectPage)=\"onSelectPage($event)\"\n data-test-id=\"carbonListPagination\"\n ></cds-pagination>\n</cds-table-container>\n\n<ng-template #actionTemplate let-data=\"data\">\n <i\n class=\"clickable\"\n [ngClass]=\"data.iconClass\"\n (click)=\"$event.stopPropagation(); data.callback(data.item)\"\n ></i>\n</ng-template>\n\n<ng-template #booleanTemplate let-data=\"data\">\n {{ data | translate }}\n</ng-template>\n\n<ng-template #actionsMenuTemplate let-data=\"data\">\n <v-overflow-menu\n *ngIf=\"showActionItems\"\n [open]=\"currentOpenActionId === data.item\"\n [portalToBody]=\"true\"\n (openChange)=\"handleActionOpenChange(data.item, $event)\"\n placement=\"bottom-end\"\n [portalToBody]=\"true\"\n (click)=\"$event.stopPropagation()\"\n >\n <v-overflow-menu-trigger overflowTrigger></v-overflow-menu-trigger>\n @for (action of data.actions; track action.label) {\n <v-overflow-menu-option\n [disabled]=\"action | actionItemDisabled: data.item | async\"\n [type]=\"action.type\"\n (selected)=\"action.callback(data.item)\"\n >\n <i *ngIf=\"!!action.iconClass\" [ngClass]=\"action.iconClass\"></i>\n\n {{ action.label | translate }}\n </v-overflow-menu-option>\n }\n </v-overflow-menu>\n</ng-template>\n\n<ng-template #rowDisabled let-data=\"data\">\n <div *ngIf=\"data.locked\" class=\"locked\">\n <span\n class=\"float-right badge badge-pill badge-secondary bg-grey\"\n ngbTooltip=\"{{ lockedTooltipTranslationKey | translate }}\"\n >\n <i class=\"icon mdi mdi-lock\"></i>\n </span>\n </div>\n</ng-template>\n\n<ng-template #moveRowsTemplate let-data=\"data\">\n <div class=\"valtimo-carbon-list__move-rows\">\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === 0\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onMoveUpClick($event, data)\"\n data-test-id=\"carbonListMoveUp\"\n >\n <svg cdsIcon=\"arrow--up\" size=\"16\"></svg>\n </button>\n\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === data.length - 1\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onMoveDownClick($event, data)\"\n data-test-id=\"carbonListMoveDown\"\n >\n <svg cdsIcon=\"arrow--down\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #dragAndDropTemplate let-data=\"data\">\n <div class=\"valtimo-carbon-list__draggable\">\n <button\n cdsButton=\"ghost\"\n [disabled]=\"dragAndDropDisabled\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (mousedown)=\"onDragStart($event, data)\"\n data-test-id=\"carbonListDragHandle\"\n >\n <svg cdsIcon=\"draggable\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #tagTemplate let-data=\"data\">\n @if (!data.tags) {\n -\n } @else {\n <div class=\"tag-template\">\n @if (data.tags.length === 0) {\n -\n } @else {\n @for (tag of data.tags.slice(0, data.tagAmount); track tag) {\n <cds-tag class=\"cds-tag--no-margin\" [type]=\"tag.type\">\n {{ tag.ellipsisContent ?? tag.content }}\n </cds-tag>\n }\n\n <cds-tag\n *ngIf=\"data.tags.length > data.tagAmount\"\n class=\"cds-tag--no-margin valtimo-carbon-list__expand-tag\"\n type=\"high-contrast\"\n (click)=\"onTagClick($event, data.tags)\"\n data-test-id=\"carbonListExpandTags\"\n >\n {{ data.tags.length - data.tagAmount }} <svg cdsIcon=\"add\" size=\"16\"></svg>\n </cds-tag>\n }\n </div>\n }\n</ng-template>\n\n<ng-template #defaultTemplate let-data=\"data\">\n <span>{{ data }}</span>\n</ng-template>\n\n<valtimo-tags-modal\n [open]=\"tagModalOpen$ | async\"\n [tags]=\"tagModalData$ | async\"\n (closeEvent)=\"onCloseEvent()\"\n></valtimo-tags-modal>\n", styles: [".clickable{cursor:pointer}.container-fluid{background-color:var(--cds-layer)}.tile-holder{background-color:#f5f5f5;border:1px solid transparent}.tile-holder:hover{background-color:#eee;border:1px solid #dee2e6}th:first-child,td:first-child{padding-left:25px}::ng-deep tr:has(>td .locked){cursor:not-allowed}::ng-deep tr:has(>td .locked) td{color:var(--cds-text-on-color-disabled)}::ng-deep .valtimo-carbon-list__header--hidden thead{display:none}::ng-deep .valtimo-carbon-list--unclickable tr{cursor:default}.valtimo-carbon-list__toolbar:empty{display:none}.valtimo-carbon-list__no-results{cursor:default}.valtimo-carbon-list__no-results td:empty,.valtimo-carbon-list__no-results td:not(:empty)+td{display:none}.valtimo-carbon-list__move-rows,.valtimo-carbon-list__draggable{width:100%;justify-content:flex-end;display:flex;flex-direction:row;position:relative}.valtimo-carbon-list__move-rows button:not(:last-child),.valtimo-carbon-list__draggable button:not(:last-child){margin-right:8px}.valtimo-carbon-list__expand-tag{cursor:pointer}.valtimo-carbon-list label{margin-bottom:0!important}.valtimo-carbon-list ::ng-deep .tag-template .cds--tag{margin:0}.valtimo-carbon-list ::ng-deep .tag-template .cds--tag svg{fill:var(--cds-background)}.valtimo-carbon-list ::ng-deep .tag-template>*:not(:last-child){margin-right:8px}.valtimo-carbon-list ::ng-deep .cds--tag{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;line-height:24px}.valtimo-carbon-list ::ng-deep .valtimo-carbon-list__draggable .cds--btn--ghost{cursor:move!important;padding-top:8px!important;padding-bottom:8px!important}::ng-deep .valtimo-carbon-list__drag-table-row{cursor:move!important}::ng-deep .valtimo-carbon-list__drag-table-row .valtimo-carbon-list__draggable .cds--btn--ghost{outline:0;border-color:var(--cds-button-focus-color, var(--cds-focus, var(--vcds-color-60)));box-shadow:inset 0 0 0 1px var(--cds-button-focus-color, var(--cds-focus, var(--vcds-color-60))),inset 0 0 0 2px var(--cds-background, #f4f4f4)}.valtimo-carbon-list ::ng-deep cds-table{display:block;overflow-x:auto;overflow-y:hidden}.valtimo-carbon-list ::ng-deep .cds--expandable-row:not(.cds--parent-row) td{border-top:none;border-bottom-width:2px}.valtimo-carbon-list ::ng-deep tbody .cds--expandable-row.cds--parent-row td{border-bottom-width:2px}.valtimo-carbon-list ::ng-deep tbody tr:first-child td{border-top:none!important}.valtimo-search-container{position:relative;flex:1}.valtimo-search-container ::ng-deep cds-table-toolbar-search{display:flex;justify-content:flex-end;width:100%}.valtimo-search-container ::ng-deep cds-table-toolbar-search .cds--toolbar-search-container-active{width:100%}.valtimo-search-container ::ng-deep .cds--toolbar-search-container-active input{color:transparent!important;caret-color:var(--cds-text-primary, #161616)}.valtimo-search-overlay{position:absolute;inset:0;display:flex;align-items:center;height:3rem;padding:0 3rem;font-family:IBM Plex Sans,Helvetica Neue,Arial,sans-serif;font-size:.875rem;font-weight:400;letter-spacing:.16px;line-height:1.28572;color:var(--cds-text-primary, #161616);white-space:pre;pointer-events:none;overflow:hidden}.valtimo-search-overlay__invalid{text-decoration:underline wavy var(--cds-support-error, #da1e28);text-decoration-skip-ink:none;text-underline-offset:3px}.valtimo-search-autocomplete{position:absolute;top:100%;max-height:150px;min-width:120px;max-width:250px;width:auto;overflow-y:auto;background:var(--cds-layer);border:1px solid var(--cds-border-subtle);box-shadow:0 2px 6px #0000001a;z-index:9000;list-style:none;margin:0;padding:0}.valtimo-search-autocomplete li{padding:6px 12px;cursor:pointer;font-size:.875rem;white-space:nowrap}.valtimo-search-autocomplete li:hover,.valtimo-search-autocomplete li.selected{background:var(--cds-layer-hover)}\n/*!\n * Copyright 2015-2026 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"] }]
|
|
9018
|
+
args: [{ selector: 'valtimo-carbon-list', changeDetection: ChangeDetectionStrategy.OnPush, providers: [CarbonListFilterPipe, CarbonListDragAndDropService], standalone: false, template: "<!--\n ~ /*\n ~ * Copyright 2015-2026 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-table-container\n *ngIf=\"{\n sort: sort$ | async,\n model: model$ | async,\n viewInitialized: viewInitialized$ | async,\n } as obs\"\n class=\"valtimo-carbon-list\"\n>\n <cds-table-header *ngIf=\"header\">\n <ng-content select=\"[header]\"></ng-content>\n </cds-table-header>\n\n <ng-content select=\"[tabs]\"></ng-content>\n\n <cds-table-toolbar\n *ngIf=\"!hideToolbar\"\n class=\"valtimo-carbon-list__toolbar\"\n [model]=\"obs.model\"\n [batchText]=\"batchText$ | async\"\n >\n <cds-table-toolbar-actions>\n <ng-content select=\"[carbonToolbarActions]\"> </ng-content>\n </cds-table-toolbar-actions>\n\n <cds-table-toolbar-content>\n <div *ngIf=\"isSearchable\" class=\"valtimo-search-container\" (focusout)=\"onSearchFocusOut($event)\">\n <cds-table-toolbar-search\n #toolbarSearch\n [expandable]=\"false\"\n [formControl]=\"searchFormControl\"\n [ngClass]=\"{'valtimo-search--invalid': invalidSearchFields.length > 0}\"\n data-test-id=\"carbonListSearch\"\n (input)=\"updateAutocomplete()\"\n (keydown)=\"onSearchKeydown($event)\"\n (clear)=\"onSearchClear()\"\n (open)=\"onSearchOpenChange($event)\"\n ></cds-table-toolbar-search>\n <div\n class=\"valtimo-search-overlay\"\n aria-hidden=\"true\"\n ><span\n *ngFor=\"let segment of getSearchSegments()\"\n [class.valtimo-search-overlay__invalid]=\"segment.isInvalid\"\n >{{ segment.text }}</span></div>\n <ul *ngIf=\"showAutocomplete && filteredSuggestions.length\" class=\"valtimo-search-autocomplete\" [style.left.px]=\"autocompleteLeft\">\n <li\n *ngFor=\"let field of filteredSuggestions; let i = index\"\n [class.selected]=\"i === selectedSuggestionIndex\"\n (mousedown)=\"selectSuggestion(field)\"\n >{{ field.title || field.key }}</li>\n </ul>\n </div>\n\n <ng-content select=\"[carbonToolbarContent]\"> </ng-content>\n </cds-table-toolbar-content>\n </cds-table-toolbar>\n\n <cds-table\n *ngIf=\"!!obs.sort\"\n [ngClass]=\"{\n 'valtimo-carbon-list__header--hidden': hideColumnHeader,\n 'valtimo-carbon-list--unclickable': !this.rowClicked.observed,\n }\"\n [enableSingleSelect]=\"enableSingleSelect\"\n [model]=\"loading || !obs.viewInitialized ? skeletonModel : obs.model\"\n [showSelectionColumn]=\"showSelectionColumn\"\n [skeleton]=\"loading\"\n [striped]=\"striped\"\n (sort)=\"onSort(obs.model.header[$event])\"\n (rowClick)=\"onRowClick($event)\"\n >\n <tbody cdsTableBody>\n <tr class=\"valtimo-carbon-list__no-results\" data-test-id=\"carbonListNoResults\">\n <td [attr.colspan]=\"obs.model.header.length + (showSelectionColumn ? 1 : 0)\">\n <ng-content></ng-content>\n </td>\n\n <td [attr.colspan]=\"obs.model.header.length + (showSelectionColumn ? 1 : 0)\">\n {{ 'list.noResults' | translate }}\n </td>\n </tr>\n </tbody>\n </cds-table>\n\n <cds-pagination\n *ngIf=\"paginationModel && items?.length\"\n [itemsPerPageOptions]=\"paginatorConfig.itemsPerPageOptions\"\n [model]=\"paginationModel\"\n [showPageInput]=\"paginatorConfig.showPageInput\"\n [skeleton]=\"loading\"\n [translations]=\"paginationTranslations$ | async\"\n (selectPage)=\"onSelectPage($event)\"\n data-test-id=\"carbonListPagination\"\n ></cds-pagination>\n</cds-table-container>\n\n<ng-template #actionTemplate let-data=\"data\">\n <i\n class=\"clickable\"\n [ngClass]=\"data.iconClass\"\n (click)=\"$event.stopPropagation(); data.callback(data.item)\"\n ></i>\n</ng-template>\n\n<ng-template #booleanTemplate let-data=\"data\">\n {{ data | translate }}\n</ng-template>\n\n<ng-template #actionsMenuTemplate let-data=\"data\">\n <v-overflow-menu\n *ngIf=\"showActionItems\"\n [open]=\"currentOpenActionId === data.item\"\n [portalToBody]=\"true\"\n (openChange)=\"handleActionOpenChange(data.item, $event)\"\n placement=\"bottom-end\"\n [portalToBody]=\"true\"\n (click)=\"$event.stopPropagation()\"\n >\n <v-overflow-menu-trigger overflowTrigger></v-overflow-menu-trigger>\n @for (action of data.actions; track action.label) {\n @if (!(action | actionItemHidden: data.item | async)) {\n <v-overflow-menu-option\n [disabled]=\"action | actionItemDisabled: data.item | async\"\n [type]=\"action.type\"\n (selected)=\"action.callback(data.item)\"\n >\n <i *ngIf=\"!!action.iconClass\" [ngClass]=\"action.iconClass\"></i>\n\n {{ action.label | translate }}\n </v-overflow-menu-option>\n }\n }\n </v-overflow-menu>\n</ng-template>\n\n<ng-template #rowDisabled let-data=\"data\">\n <div *ngIf=\"data.locked\" class=\"locked\">\n <span\n class=\"float-right badge badge-pill badge-secondary bg-grey\"\n ngbTooltip=\"{{ lockedTooltipTranslationKey | translate }}\"\n >\n <i class=\"icon mdi mdi-lock\"></i>\n </span>\n </div>\n</ng-template>\n\n<ng-template #moveRowsTemplate let-data=\"data\">\n <div class=\"valtimo-carbon-list__move-rows\">\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === 0\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onMoveUpClick($event, data)\"\n data-test-id=\"carbonListMoveUp\"\n >\n <svg cdsIcon=\"arrow--up\" size=\"16\"></svg>\n </button>\n\n <button\n cdsButton=\"tertiary\"\n [disabled]=\"data.index === data.length - 1\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (click)=\"onMoveDownClick($event, data)\"\n data-test-id=\"carbonListMoveDown\"\n >\n <svg cdsIcon=\"arrow--down\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #dragAndDropTemplate let-data=\"data\">\n <div class=\"valtimo-carbon-list__draggable\">\n <button\n cdsButton=\"ghost\"\n [disabled]=\"dragAndDropDisabled\"\n [iconOnly]=\"true\"\n size=\"sm\"\n (mousedown)=\"onDragStart($event, data)\"\n data-test-id=\"carbonListDragHandle\"\n >\n <svg cdsIcon=\"draggable\" size=\"16\"></svg>\n </button>\n </div>\n</ng-template>\n\n<ng-template #tagTemplate let-data=\"data\">\n @if (!data.tags) {\n -\n } @else {\n <div class=\"tag-template\">\n @if (data.tags.length === 0) {\n -\n } @else {\n @for (tag of data.tags.slice(0, data.tagAmount); track tag) {\n <cds-tag class=\"cds-tag--no-margin\" [type]=\"tag.type\">\n {{ tag.ellipsisContent ?? tag.content }}\n </cds-tag>\n }\n\n <cds-tag\n *ngIf=\"data.tags.length > data.tagAmount\"\n class=\"cds-tag--no-margin valtimo-carbon-list__expand-tag\"\n type=\"high-contrast\"\n (click)=\"onTagClick($event, data.tags)\"\n data-test-id=\"carbonListExpandTags\"\n >\n {{ data.tags.length - data.tagAmount }} <svg cdsIcon=\"add\" size=\"16\"></svg>\n </cds-tag>\n }\n </div>\n }\n</ng-template>\n\n<ng-template #defaultTemplate let-data=\"data\">\n <span>{{ data }}</span>\n</ng-template>\n\n<valtimo-tags-modal\n [open]=\"tagModalOpen$ | async\"\n [tags]=\"tagModalData$ | async\"\n (closeEvent)=\"onCloseEvent()\"\n></valtimo-tags-modal>\n", styles: [".clickable{cursor:pointer}.container-fluid{background-color:var(--cds-layer)}.tile-holder{background-color:#f5f5f5;border:1px solid transparent}.tile-holder:hover{background-color:#eee;border:1px solid #dee2e6}th:first-child,td:first-child{padding-left:25px}::ng-deep tr:has(>td .locked){cursor:not-allowed}::ng-deep tr:has(>td .locked) td{color:var(--cds-text-on-color-disabled)}::ng-deep .valtimo-carbon-list__header--hidden thead{display:none}::ng-deep .valtimo-carbon-list--unclickable tr{cursor:default}.valtimo-carbon-list__toolbar:empty{display:none}.valtimo-carbon-list__no-results{cursor:default}.valtimo-carbon-list__no-results td:empty,.valtimo-carbon-list__no-results td:not(:empty)+td{display:none}.valtimo-carbon-list__move-rows,.valtimo-carbon-list__draggable{width:100%;justify-content:flex-end;display:flex;flex-direction:row;position:relative}.valtimo-carbon-list__move-rows button:not(:last-child),.valtimo-carbon-list__draggable button:not(:last-child){margin-right:8px}.valtimo-carbon-list__expand-tag{cursor:pointer}.valtimo-carbon-list label{margin-bottom:0!important}.valtimo-carbon-list ::ng-deep .tag-template .cds--tag{margin:0}.valtimo-carbon-list ::ng-deep .tag-template .cds--tag svg{fill:var(--cds-background)}.valtimo-carbon-list ::ng-deep .tag-template>*:not(:last-child){margin-right:8px}.valtimo-carbon-list ::ng-deep .cds--tag{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;line-height:24px}.valtimo-carbon-list ::ng-deep .valtimo-carbon-list__draggable .cds--btn--ghost{cursor:move!important;padding-top:8px!important;padding-bottom:8px!important}::ng-deep .valtimo-carbon-list__drag-table-row{cursor:move!important}::ng-deep .valtimo-carbon-list__drag-table-row .valtimo-carbon-list__draggable .cds--btn--ghost{outline:0;border-color:var(--cds-button-focus-color, var(--cds-focus, var(--vcds-color-60)));box-shadow:inset 0 0 0 1px var(--cds-button-focus-color, var(--cds-focus, var(--vcds-color-60))),inset 0 0 0 2px var(--cds-background, #f4f4f4)}.valtimo-carbon-list ::ng-deep cds-table{display:block;overflow-x:auto;overflow-y:hidden}.valtimo-carbon-list ::ng-deep .cds--expandable-row:not(.cds--parent-row) td{border-top:none;border-bottom-width:2px}.valtimo-carbon-list ::ng-deep tbody .cds--expandable-row.cds--parent-row td{border-bottom-width:2px}.valtimo-carbon-list ::ng-deep tbody tr:first-child td{border-top:none!important}.valtimo-search-container{position:relative;flex:1}.valtimo-search-container ::ng-deep cds-table-toolbar-search{display:flex;justify-content:flex-end;width:100%}.valtimo-search-container ::ng-deep cds-table-toolbar-search .cds--toolbar-search-container-active{width:100%}.valtimo-search-container ::ng-deep .cds--toolbar-search-container-active input{color:transparent!important;caret-color:var(--cds-text-primary, #161616)}.valtimo-search-overlay{position:absolute;inset:0;display:flex;align-items:center;height:3rem;padding:0 3rem;font-family:IBM Plex Sans,Helvetica Neue,Arial,sans-serif;font-size:.875rem;font-weight:400;letter-spacing:.16px;line-height:1.28572;color:var(--cds-text-primary, #161616);white-space:pre;pointer-events:none;overflow:hidden}.valtimo-search-overlay__invalid{text-decoration:underline wavy var(--cds-support-error, #da1e28);text-decoration-skip-ink:none;text-underline-offset:3px}.valtimo-search-autocomplete{position:absolute;top:100%;max-height:150px;min-width:120px;max-width:250px;width:auto;overflow-y:auto;background:var(--cds-layer);border:1px solid var(--cds-border-subtle);box-shadow:0 2px 6px #0000001a;z-index:9000;list-style:none;margin:0;padding:0}.valtimo-search-autocomplete li{padding:6px 12px;cursor:pointer;font-size:.875rem;white-space:nowrap}.valtimo-search-autocomplete li:hover,.valtimo-search-autocomplete li.selected{background:var(--cds-layer-hover)}\n/*!\n * Copyright 2015-2026 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"] }]
|
|
8768
9019
|
}], ctorParameters: () => [{ type: EllipsisPipe }, { type: CarbonListFilterPipe }, { type: i2$3.IconService }, { type: i4.NGXLogger }, { type: i1.TranslateService }, { type: ViewContentService }, { type: KeyStateService }, { type: CarbonListDragAndDropService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { actionsMenuTemplate: [{
|
|
8769
9020
|
type: ViewChild,
|
|
8770
9021
|
args: ['actionsMenuTemplate']
|
|
@@ -8985,6 +9236,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
8985
9236
|
class CarbonListModule {
|
|
8986
9237
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: CarbonListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8987
9238
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.25", ngImport: i0, type: CarbonListModule, declarations: [ActionItemDisabledPipe,
|
|
9239
|
+
ActionItemHiddenPipe,
|
|
8988
9240
|
CarbonListComponent,
|
|
8989
9241
|
CarbonListFilterPipe,
|
|
8990
9242
|
CarbonNoResultsComponent,
|
|
@@ -9029,6 +9281,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
9029
9281
|
args: [{
|
|
9030
9282
|
declarations: [
|
|
9031
9283
|
ActionItemDisabledPipe,
|
|
9284
|
+
ActionItemHiddenPipe,
|
|
9032
9285
|
CarbonListComponent,
|
|
9033
9286
|
CarbonListFilterPipe,
|
|
9034
9287
|
CarbonNoResultsComponent,
|
|
@@ -17826,6 +18079,8 @@ class SearchFieldsComponent {
|
|
|
17826
18079
|
?.filter(searchField => searchField.dropdownDataProvider)
|
|
17827
18080
|
.map(searchField => this.documentService
|
|
17828
18081
|
.getDropdownData(searchField.dropdownDataProvider, caseDefinitionKey, searchField.key)
|
|
18082
|
+
// Unknown provider: render an empty dropdown instead of a bare label
|
|
18083
|
+
.pipe(catchError(() => of(null)))
|
|
17829
18084
|
.subscribe(dropdownData => {
|
|
17830
18085
|
if (dropdownData) {
|
|
17831
18086
|
this.dropdownSelectItemsMap[searchField.key] = Object.keys(dropdownData).map(dropdownFieldKey => ({
|
|
@@ -19086,6 +19341,7 @@ class StatusSelectorComponent {
|
|
|
19086
19341
|
this._statuses$ = new BehaviorSubject([]);
|
|
19087
19342
|
this._selectedStatusKeys$ = new BehaviorSubject([]);
|
|
19088
19343
|
this.CASES_WITHOUT_STATUS_KEY = CASES_WITHOUT_STATUS_KEY;
|
|
19344
|
+
this.testIds = STATUS_SELECTOR_TEST_IDS;
|
|
19089
19345
|
this.listItems$ = combineLatest([
|
|
19090
19346
|
this._statuses$,
|
|
19091
19347
|
this._selectedStatusKeys$,
|
|
@@ -19110,11 +19366,11 @@ class StatusSelectorComponent {
|
|
|
19110
19366
|
});
|
|
19111
19367
|
}
|
|
19112
19368
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: StatusSelectorComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19113
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: StatusSelectorComponent, isStandalone: true, selector: "valtimo-status-selector", inputs: { statuses: "statuses", selectedStatusKeys: "selectedStatusKeys", carbonTheme: "carbonTheme", disabled: "disabled" }, outputs: { selectedStatusesChangeEvent: "selectedStatusesChangeEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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-label class=\"status-selector\" *ngIf=\"listItems$ | async as listItems\">\n {{ 'caseManagement.statuses.searchFieldTitle' | translate }}\n\n <cds-dropdown\n [appendInline]=\"false\"\n type=\"multi\"\n [disabled]=\"disabled\"\n selectionFeedback=\"fixed\"\n (selected)=\"itemSelected($event)\"\n >\n <cds-dropdown-list\n [items]=\"listItems\"\n [listTpl]=\"colorDropdownItemTemplate\"\n ></cds-dropdown-list>\n </cds-dropdown>\n</cds-label>\n\n<ng-template #colorDropdownItemTemplate let-item=\"item\">\n <div class=\"status-selector-dropdown-template\">\n <cds-checkbox [checked]=\"item.selected\"></cds-checkbox>\n\n <span *ngIf=\"item.key === CASES_WITHOUT_STATUS_KEY\" class=\"generic-span\">{{\n item?.content\n }}</span>\n\n <cds-tag\n *ngIf=\"item.key !== CASES_WITHOUT_STATUS_KEY\"\n class=\"cds-tag--no-margin\"\n [type]=\"item?.tagType\"\n [title]=\"item?.content\"\n >\n {{ item?.content }}\n </cds-tag>\n </div>\n</ng-template>\n", styles: ["::ng-deep .status-selector .cds--label{width:100%;margin-bottom:0!important}::ng-deep .status-selector .cds--multiselect{margin-top:8px}::ng-deep .status-selector .cds--list-box__selection--multi{pointer-events:none}::ng-deep .status-selector .cds--list-box__selection--multi svg{pointer-events:auto}::ng-deep .status-selector-dropdown-template{display:flex;margin-top:-4px}::ng-deep .status-selector-dropdown-template .cds--tag{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;line-height:24px;max-width:100%}::ng-deep .status-selector-dropdown-template .generic-span{display:flex;align-items:center}\n/*!\n * Copyright 2015-2025 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: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i2$3.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "readonly", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp", "fluid"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i2$3.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i2$3.Checkbox, selector: "cds-checkbox, ibm-checkbox", inputs: ["disabled", "skeleton", "hideLabel", "name", "id", "required", "value", "ariaLabel", "ariaLabelledby", "indeterminate", "checked"], outputs: ["click", "checkedChange", "indeterminateChange"] }, { kind: "ngmodule", type: InputModule$1 }, { kind: "component", type: i2$3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i2$3.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class", "skeleton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
19369
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: StatusSelectorComponent, isStandalone: true, selector: "valtimo-status-selector", inputs: { statuses: "statuses", selectedStatusKeys: "selectedStatusKeys", carbonTheme: "carbonTheme", disabled: "disabled" }, outputs: { selectedStatusesChangeEvent: "selectedStatusesChangeEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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-label class=\"status-selector\" *ngIf=\"listItems$ | async as listItems\">\n {{ 'caseManagement.statuses.searchFieldTitle' | translate }}\n\n <cds-dropdown\n [appendInline]=\"false\"\n type=\"multi\"\n [disabled]=\"disabled\"\n selectionFeedback=\"fixed\"\n (selected)=\"itemSelected($event)\"\n [attr.data-test-id]=\"testIds.dropdown\"\n >\n <cds-dropdown-list\n [items]=\"listItems\"\n [listTpl]=\"colorDropdownItemTemplate\"\n ></cds-dropdown-list>\n </cds-dropdown>\n</cds-label>\n\n<ng-template #colorDropdownItemTemplate let-item=\"item\">\n <div class=\"status-selector-dropdown-template\">\n <cds-checkbox [checked]=\"item.selected\"></cds-checkbox>\n\n <span *ngIf=\"item.key === CASES_WITHOUT_STATUS_KEY\" class=\"generic-span\">{{\n item?.content\n }}</span>\n\n <cds-tag\n *ngIf=\"item.key !== CASES_WITHOUT_STATUS_KEY\"\n class=\"cds-tag--no-margin\"\n [type]=\"item?.tagType\"\n [title]=\"item?.content\"\n >\n {{ item?.content }}\n </cds-tag>\n </div>\n</ng-template>\n", styles: ["::ng-deep .status-selector .cds--label{width:100%;margin-bottom:0!important}::ng-deep .status-selector .cds--multiselect{margin-top:8px}::ng-deep .status-selector .cds--list-box__selection--multi{pointer-events:none}::ng-deep .status-selector .cds--list-box__selection--multi svg{pointer-events:auto}::ng-deep .status-selector-dropdown-template{display:flex;margin-top:-4px}::ng-deep .status-selector-dropdown-template .cds--tag{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;line-height:24px;max-width:100%}::ng-deep .status-selector-dropdown-template .generic-span{display:flex;align-items:center}\n/*!\n * Copyright 2015-2025 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: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: DropdownModule }, { kind: "component", type: i2$3.Dropdown, selector: "cds-dropdown, ibm-dropdown", inputs: ["id", "label", "hideLabel", "helperText", "placeholder", "displayValue", "clearText", "size", "type", "theme", "disabled", "readonly", "skeleton", "inline", "disableArrowKeys", "invalid", "invalidText", "warn", "warnText", "appendInline", "scrollableContainer", "itemValueKey", "selectionFeedback", "menuButtonLabel", "selectedLabel", "dropUp", "fluid"], outputs: ["selected", "onClose", "close"] }, { kind: "component", type: i2$3.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i2$3.Checkbox, selector: "cds-checkbox, ibm-checkbox", inputs: ["disabled", "skeleton", "hideLabel", "name", "id", "required", "value", "ariaLabel", "ariaLabelledby", "indeterminate", "checked"], outputs: ["click", "checkedChange", "indeterminateChange"] }, { kind: "ngmodule", type: InputModule$1 }, { kind: "component", type: i2$3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i2$3.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class", "skeleton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
19114
19370
|
}
|
|
19115
19371
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: StatusSelectorComponent, decorators: [{
|
|
19116
19372
|
type: Component,
|
|
19117
|
-
args: [{ selector: 'valtimo-status-selector', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, DropdownModule, CheckboxModule, InputModule$1, TranslateModule, TagModule], template: "<!--\n ~ Copyright 2015-2025 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-label class=\"status-selector\" *ngIf=\"listItems$ | async as listItems\">\n {{ 'caseManagement.statuses.searchFieldTitle' | translate }}\n\n <cds-dropdown\n [appendInline]=\"false\"\n type=\"multi\"\n [disabled]=\"disabled\"\n selectionFeedback=\"fixed\"\n (selected)=\"itemSelected($event)\"\n >\n <cds-dropdown-list\n [items]=\"listItems\"\n [listTpl]=\"colorDropdownItemTemplate\"\n ></cds-dropdown-list>\n </cds-dropdown>\n</cds-label>\n\n<ng-template #colorDropdownItemTemplate let-item=\"item\">\n <div class=\"status-selector-dropdown-template\">\n <cds-checkbox [checked]=\"item.selected\"></cds-checkbox>\n\n <span *ngIf=\"item.key === CASES_WITHOUT_STATUS_KEY\" class=\"generic-span\">{{\n item?.content\n }}</span>\n\n <cds-tag\n *ngIf=\"item.key !== CASES_WITHOUT_STATUS_KEY\"\n class=\"cds-tag--no-margin\"\n [type]=\"item?.tagType\"\n [title]=\"item?.content\"\n >\n {{ item?.content }}\n </cds-tag>\n </div>\n</ng-template>\n", styles: ["::ng-deep .status-selector .cds--label{width:100%;margin-bottom:0!important}::ng-deep .status-selector .cds--multiselect{margin-top:8px}::ng-deep .status-selector .cds--list-box__selection--multi{pointer-events:none}::ng-deep .status-selector .cds--list-box__selection--multi svg{pointer-events:auto}::ng-deep .status-selector-dropdown-template{display:flex;margin-top:-4px}::ng-deep .status-selector-dropdown-template .cds--tag{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;line-height:24px;max-width:100%}::ng-deep .status-selector-dropdown-template .generic-span{display:flex;align-items:center}\n/*!\n * Copyright 2015-2025 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"] }]
|
|
19373
|
+
args: [{ selector: 'valtimo-status-selector', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, DropdownModule, CheckboxModule, InputModule$1, TranslateModule, TagModule], template: "<!--\n ~ Copyright 2015-2025 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-label class=\"status-selector\" *ngIf=\"listItems$ | async as listItems\">\n {{ 'caseManagement.statuses.searchFieldTitle' | translate }}\n\n <cds-dropdown\n [appendInline]=\"false\"\n type=\"multi\"\n [disabled]=\"disabled\"\n selectionFeedback=\"fixed\"\n (selected)=\"itemSelected($event)\"\n [attr.data-test-id]=\"testIds.dropdown\"\n >\n <cds-dropdown-list\n [items]=\"listItems\"\n [listTpl]=\"colorDropdownItemTemplate\"\n ></cds-dropdown-list>\n </cds-dropdown>\n</cds-label>\n\n<ng-template #colorDropdownItemTemplate let-item=\"item\">\n <div class=\"status-selector-dropdown-template\">\n <cds-checkbox [checked]=\"item.selected\"></cds-checkbox>\n\n <span *ngIf=\"item.key === CASES_WITHOUT_STATUS_KEY\" class=\"generic-span\">{{\n item?.content\n }}</span>\n\n <cds-tag\n *ngIf=\"item.key !== CASES_WITHOUT_STATUS_KEY\"\n class=\"cds-tag--no-margin\"\n [type]=\"item?.tagType\"\n [title]=\"item?.content\"\n >\n {{ item?.content }}\n </cds-tag>\n </div>\n</ng-template>\n", styles: ["::ng-deep .status-selector .cds--label{width:100%;margin-bottom:0!important}::ng-deep .status-selector .cds--multiselect{margin-top:8px}::ng-deep .status-selector .cds--list-box__selection--multi{pointer-events:none}::ng-deep .status-selector .cds--list-box__selection--multi svg{pointer-events:auto}::ng-deep .status-selector-dropdown-template{display:flex;margin-top:-4px}::ng-deep .status-selector-dropdown-template .cds--tag{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;line-height:24px;max-width:100%}::ng-deep .status-selector-dropdown-template .generic-span{display:flex;align-items:center}\n/*!\n * Copyright 2015-2025 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"] }]
|
|
19118
19374
|
}], ctorParameters: () => [{ type: i1.TranslateService }], propDecorators: { statuses: [{
|
|
19119
19375
|
type: Input
|
|
19120
19376
|
}], selectedStatusKeys: [{
|
|
@@ -20733,6 +20989,7 @@ class QuickSearchModalComponent {
|
|
|
20733
20989
|
this.closeEvent = new EventEmitter();
|
|
20734
20990
|
this.$modalOpen = this.quickSearchStateService.$modalOpen;
|
|
20735
20991
|
this.$showDuplicateError = signal(false);
|
|
20992
|
+
this.testIds = QUICK_SEARCH_TEST_IDS;
|
|
20736
20993
|
this.formGroup = this.fb.group({
|
|
20737
20994
|
title: this.fb.control('', [
|
|
20738
20995
|
Validators.required,
|
|
@@ -20775,7 +21032,7 @@ class QuickSearchModalComponent {
|
|
|
20775
21032
|
};
|
|
20776
21033
|
}
|
|
20777
21034
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: QuickSearchModalComponent, deps: [{ token: i2.FormBuilder }, { token: i2$3.IconService }, { token: QuickSearchStateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20778
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: QuickSearchModalComponent, isStandalone: true, selector: "valtimo-quick-search-modal", inputs: { existingItems: "existingItems" }, outputs: { closeEvent: "closeEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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-modal\n valtimoCdsModal\n [minContentHeight]=\"0\"\n [open]=\"$modalOpen()\"\n size=\"sm\"\n showFooter=\"true\"\n (close)=\"closeModal()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'quickSearch.addItem' | translate }}</h3>\n </cds-modal-header>\n\n <form cdsModalContent class=\"valtimo-qiuck-search-modal__content\" [formGroup]=\"formGroup\">\n <cds-text-label>\n {{ 'interface.title' | translate }}\n\n <input\n formControlName=\"title\"\n cdsText\n type=\"text\"\n maxlength=\"50\"\n [placeholder]=\"'interface.title' | translate\"\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-text-label>\n\n <div
|
|
21035
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.25", type: QuickSearchModalComponent, isStandalone: true, selector: "valtimo-quick-search-modal", inputs: { existingItems: "existingItems" }, outputs: { closeEvent: "closeEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2025 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-modal\n valtimoCdsModal\n [minContentHeight]=\"0\"\n [open]=\"$modalOpen()\"\n size=\"sm\"\n showFooter=\"true\"\n (close)=\"closeModal()\"\n [attr.data-test-id]=\"testIds.modal\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'quickSearch.addItem' | translate }}</h3>\n </cds-modal-header>\n\n <form cdsModalContent class=\"valtimo-qiuck-search-modal__content\" [formGroup]=\"formGroup\">\n <cds-text-label>\n {{ 'interface.title' | translate }}\n\n <input\n formControlName=\"title\"\n cdsText\n type=\"text\"\n maxlength=\"50\"\n [placeholder]=\"'interface.title' | translate\"\n [attr.modal-primary-focus]=\"true\"\n [attr.data-test-id]=\"testIds.titleInput\"\n />\n </cds-text-label>\n\n <div\n *ngIf=\"$showDuplicateError()\"\n class=\"valtimo-qiuck-search-modal__error\"\n [attr.data-test-id]=\"testIds.duplicateError\"\n >\n <svg cdsIcon=\"warning--filled\" size=\"16\"></svg>\n\n {{ 'quickSearch.duplicateError' | translate }}\n </div>\n\n <cds-inline-notification\n [notificationObj]=\"{\n type: 'info',\n message: 'quickSearch.deleteHelperText' | translate,\n showClose: false,\n lowContrast: true,\n }\"\n ></cds-inline-notification>\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\" [attr.data-test-id]=\"testIds.cancelButton\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n [disabled]=\"formGroup.invalid\"\n cdsButton=\"primary\"\n (click)=\"closeModal(true)\"\n [attr.data-test-id]=\"testIds.saveButton\"\n >\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-qiuck-search-modal__content{display:flex;flex-direction:column;gap:16px}.valtimo-qiuck-search-modal__error{color:#da1e28;fill:#da1e28;display:flex;align-items:center;gap:8px}\n/*!\n * Copyright 2015-2025 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: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ModalModule$1 }, { kind: "component", type: i2$3.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i2$3.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i2$3.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i2$3.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i2$3.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2$3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: ValtimoCdsModalDirective, selector: "[valtimoCdsModal]", inputs: ["minContentHeight"] }, { kind: "ngmodule", type: InputModule$1 }, { kind: "component", type: i2$3.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel", "fluid"] }, { kind: "directive", type: i2$3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: NotificationModule }, { kind: "component", type: i2$3.Notification, selector: "cds-notification, cds-inline-notification, ibm-notification, ibm-inline-notification", inputs: ["notificationObj"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i2$3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20779
21036
|
}
|
|
20780
21037
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: QuickSearchModalComponent, decorators: [{
|
|
20781
21038
|
type: Component,
|
|
@@ -20789,7 +21046,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
20789
21046
|
InputModule$1,
|
|
20790
21047
|
NotificationModule,
|
|
20791
21048
|
IconModule,
|
|
20792
|
-
], template: "<!--\n ~ Copyright 2015-2025 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-modal\n valtimoCdsModal\n [minContentHeight]=\"0\"\n [open]=\"$modalOpen()\"\n size=\"sm\"\n showFooter=\"true\"\n (close)=\"closeModal()\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'quickSearch.addItem' | translate }}</h3>\n </cds-modal-header>\n\n <form cdsModalContent class=\"valtimo-qiuck-search-modal__content\" [formGroup]=\"formGroup\">\n <cds-text-label>\n {{ 'interface.title' | translate }}\n\n <input\n formControlName=\"title\"\n cdsText\n type=\"text\"\n maxlength=\"50\"\n [placeholder]=\"'interface.title' | translate\"\n [attr.modal-primary-focus]=\"true\"\n />\n </cds-text-label>\n\n <div
|
|
21049
|
+
], template: "<!--\n ~ Copyright 2015-2025 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-modal\n valtimoCdsModal\n [minContentHeight]=\"0\"\n [open]=\"$modalOpen()\"\n size=\"sm\"\n showFooter=\"true\"\n (close)=\"closeModal()\"\n [attr.data-test-id]=\"testIds.modal\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"closeModal()\">\n <h3 cdsModalHeaderHeading>{{ 'quickSearch.addItem' | translate }}</h3>\n </cds-modal-header>\n\n <form cdsModalContent class=\"valtimo-qiuck-search-modal__content\" [formGroup]=\"formGroup\">\n <cds-text-label>\n {{ 'interface.title' | translate }}\n\n <input\n formControlName=\"title\"\n cdsText\n type=\"text\"\n maxlength=\"50\"\n [placeholder]=\"'interface.title' | translate\"\n [attr.modal-primary-focus]=\"true\"\n [attr.data-test-id]=\"testIds.titleInput\"\n />\n </cds-text-label>\n\n <div\n *ngIf=\"$showDuplicateError()\"\n class=\"valtimo-qiuck-search-modal__error\"\n [attr.data-test-id]=\"testIds.duplicateError\"\n >\n <svg cdsIcon=\"warning--filled\" size=\"16\"></svg>\n\n {{ 'quickSearch.duplicateError' | translate }}\n </div>\n\n <cds-inline-notification\n [notificationObj]=\"{\n type: 'info',\n message: 'quickSearch.deleteHelperText' | translate,\n showClose: false,\n lowContrast: true,\n }\"\n ></cds-inline-notification>\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"closeModal()\" [attr.data-test-id]=\"testIds.cancelButton\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n [disabled]=\"formGroup.invalid\"\n cdsButton=\"primary\"\n (click)=\"closeModal(true)\"\n [attr.data-test-id]=\"testIds.saveButton\"\n >\n {{ 'interface.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".valtimo-qiuck-search-modal__content{display:flex;flex-direction:column;gap:16px}.valtimo-qiuck-search-modal__error{color:#da1e28;fill:#da1e28;display:flex;align-items:center;gap:8px}\n/*!\n * Copyright 2015-2025 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"] }]
|
|
20793
21050
|
}], ctorParameters: () => [{ type: i2.FormBuilder }, { type: i2$3.IconService }, { type: QuickSearchStateService }], propDecorators: { existingItems: [{
|
|
20794
21051
|
type: Input
|
|
20795
21052
|
}], closeEvent: [{
|
|
@@ -20827,6 +21084,7 @@ class QuickSearchComponent {
|
|
|
20827
21084
|
this.paramsToSave$ = this.quickSearchStateService.paramsToSave$;
|
|
20828
21085
|
this.quickSearchEvent = new EventEmitter();
|
|
20829
21086
|
this.TOOLTIP_DELAY = 1500;
|
|
21087
|
+
this.testIds = QUICK_SEARCH_TEST_IDS;
|
|
20830
21088
|
this.iconService.register(TrashCan16);
|
|
20831
21089
|
}
|
|
20832
21090
|
deleteItem(item) {
|
|
@@ -20854,7 +21112,7 @@ class QuickSearchComponent {
|
|
|
20854
21112
|
.subscribe(() => this._refresh$.next(null));
|
|
20855
21113
|
}
|
|
20856
21114
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: QuickSearchComponent, deps: [{ token: i2$3.IconService }, { token: QuickSearchStateService }, { token: QUICK_SEARCH_SERVICE }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20857
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: QuickSearchComponent, isStandalone: true, selector: "valtimo-quick-search", outputs: { quickSearchEvent: "quickSearchEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2026 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=\"{paramsToSave: paramsToSave$ | async, quickSearchItems: quickSearchItems$ | async} as obs\"\n>\n @for (item of obs.quickSearchItems; track item.title) {\n <cds-tooltip\n autoAlign=\"true\"\n align=\"bottom-left\"\n [description]=\"'quickSearch.rightClickTooltip' | translate\"\n [enterDelayMs]=\"TOOLTIP_DELAY\"\n >\n <cds-tag\n type=\"blue\"\n [valtimoContextMenu]=\"contextMenuTpl\"\n [contextData]=\"item\"\n (click)=\"onItemClick(item)\"\n >\n {{ item.title }}\n </cds-tag>\n </cds-tooltip>\n }\n\n <valtimo-quick-search-modal\n [existingItems]=\"obs.quickSearchItems\"\n (closeEvent)=\"onModalCloseEvent($event, obs.paramsToSave)\"\n ></valtimo-quick-search-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"quickSearch.deleteModalContent\"\n [outputOnConfirm]=\"$itemToDelete()\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"quickSearch.deleteModalTitle\"\n (confirmEvent)=\"onDeleteConfirm($event)\"\n ></valtimo-confirmation-modal>\n\n <ng-template #contextMenuTpl let-data=\"data\" let-close=\"close\">\n <v-overflow-menu-option
|
|
21115
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: QuickSearchComponent, isStandalone: true, selector: "valtimo-quick-search", outputs: { quickSearchEvent: "quickSearchEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2026 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=\"{paramsToSave: paramsToSave$ | async, quickSearchItems: quickSearchItems$ | async} as obs\"\n>\n @for (item of obs.quickSearchItems; track item.title) {\n <cds-tooltip\n autoAlign=\"true\"\n align=\"bottom-left\"\n [description]=\"'quickSearch.rightClickTooltip' | translate\"\n [enterDelayMs]=\"TOOLTIP_DELAY\"\n >\n <cds-tag\n type=\"blue\"\n [valtimoContextMenu]=\"contextMenuTpl\"\n [contextData]=\"item\"\n (click)=\"onItemClick(item)\"\n [attr.data-test-id]=\"testIds.item\"\n >\n {{ item.title }}\n </cds-tag>\n </cds-tooltip>\n }\n\n <valtimo-quick-search-modal\n [existingItems]=\"obs.quickSearchItems\"\n (closeEvent)=\"onModalCloseEvent($event, obs.paramsToSave)\"\n ></valtimo-quick-search-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"quickSearch.deleteModalContent\"\n [outputOnConfirm]=\"$itemToDelete()\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"quickSearch.deleteModalTitle\"\n (confirmEvent)=\"onDeleteConfirm($event)\"\n ></valtimo-confirmation-modal>\n\n <ng-template #contextMenuTpl let-data=\"data\" let-close=\"close\">\n <v-overflow-menu-option\n (selected)=\"deleteItem(data); close()\"\n [attr.data-test-id]=\"testIds.deleteOption\"\n >\n {{ 'interface.delete' | translate }}\n\n <svg cdsIcon=\"trash-can\" size=\"16\"></svg>\n </v-overflow-menu-option>\n </ng-template>\n</ng-container>\n", styles: ["cds-tag{cursor:pointer}cds-overflow-menu-option{background:var(--cds-layer)}\n/*!\n * Copyright 2015-2025 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: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: QuickSearchModalComponent, selector: "valtimo-quick-search-modal", inputs: ["existingItems"], outputs: ["closeEvent"] }, { kind: "ngmodule", type: TagModule }, { kind: "component", type: i2$3.Tag, selector: "cds-tag, ibm-tag", inputs: ["type", "size", "class", "skeleton"] }, { kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: 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: "ngmodule", type: ContextMenuModule }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i2$3.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "directive", type: ContextMenuDirective, selector: "[valtimoContextMenu]", inputs: ["valtimoContextMenu", "contextData", "positions"] }, { kind: "ngmodule", type: TooltipModule$1 }, { kind: "component", type: i2$3.Tooltip, selector: "cds-tooltip, ibm-tooltip", inputs: ["id", "enterDelayMs", "leaveDelayMs", "disabled", "description", "templateContext"] }, { kind: "component", type: OverflowMenuOptionComponent, selector: "v-overflow-menu-option", inputs: ["disabled", "type", "testId", "optionId"], outputs: ["selected"] }] }); }
|
|
20858
21116
|
}
|
|
20859
21117
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: QuickSearchComponent, decorators: [{
|
|
20860
21118
|
type: Component,
|
|
@@ -20869,7 +21127,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
20869
21127
|
ContextMenuDirective,
|
|
20870
21128
|
TooltipModule$1,
|
|
20871
21129
|
OverflowMenuOptionComponent,
|
|
20872
|
-
], template: "<!--\n ~ Copyright 2015-2026 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=\"{paramsToSave: paramsToSave$ | async, quickSearchItems: quickSearchItems$ | async} as obs\"\n>\n @for (item of obs.quickSearchItems; track item.title) {\n <cds-tooltip\n autoAlign=\"true\"\n align=\"bottom-left\"\n [description]=\"'quickSearch.rightClickTooltip' | translate\"\n [enterDelayMs]=\"TOOLTIP_DELAY\"\n >\n <cds-tag\n type=\"blue\"\n [valtimoContextMenu]=\"contextMenuTpl\"\n [contextData]=\"item\"\n (click)=\"onItemClick(item)\"\n >\n {{ item.title }}\n </cds-tag>\n </cds-tooltip>\n }\n\n <valtimo-quick-search-modal\n [existingItems]=\"obs.quickSearchItems\"\n (closeEvent)=\"onModalCloseEvent($event, obs.paramsToSave)\"\n ></valtimo-quick-search-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"quickSearch.deleteModalContent\"\n [outputOnConfirm]=\"$itemToDelete()\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"quickSearch.deleteModalTitle\"\n (confirmEvent)=\"onDeleteConfirm($event)\"\n ></valtimo-confirmation-modal>\n\n <ng-template #contextMenuTpl let-data=\"data\" let-close=\"close\">\n <v-overflow-menu-option
|
|
21130
|
+
], template: "<!--\n ~ Copyright 2015-2026 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=\"{paramsToSave: paramsToSave$ | async, quickSearchItems: quickSearchItems$ | async} as obs\"\n>\n @for (item of obs.quickSearchItems; track item.title) {\n <cds-tooltip\n autoAlign=\"true\"\n align=\"bottom-left\"\n [description]=\"'quickSearch.rightClickTooltip' | translate\"\n [enterDelayMs]=\"TOOLTIP_DELAY\"\n >\n <cds-tag\n type=\"blue\"\n [valtimoContextMenu]=\"contextMenuTpl\"\n [contextData]=\"item\"\n (click)=\"onItemClick(item)\"\n [attr.data-test-id]=\"testIds.item\"\n >\n {{ item.title }}\n </cds-tag>\n </cds-tooltip>\n }\n\n <valtimo-quick-search-modal\n [existingItems]=\"obs.quickSearchItems\"\n (closeEvent)=\"onModalCloseEvent($event, obs.paramsToSave)\"\n ></valtimo-quick-search-modal>\n\n <valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"quickSearch.deleteModalContent\"\n [outputOnConfirm]=\"$itemToDelete()\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"quickSearch.deleteModalTitle\"\n (confirmEvent)=\"onDeleteConfirm($event)\"\n ></valtimo-confirmation-modal>\n\n <ng-template #contextMenuTpl let-data=\"data\" let-close=\"close\">\n <v-overflow-menu-option\n (selected)=\"deleteItem(data); close()\"\n [attr.data-test-id]=\"testIds.deleteOption\"\n >\n {{ 'interface.delete' | translate }}\n\n <svg cdsIcon=\"trash-can\" size=\"16\"></svg>\n </v-overflow-menu-option>\n </ng-template>\n</ng-container>\n", styles: ["cds-tag{cursor:pointer}cds-overflow-menu-option{background:var(--cds-layer)}\n/*!\n * Copyright 2015-2025 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"] }]
|
|
20873
21131
|
}], ctorParameters: () => [{ type: i2$3.IconService }, { type: QuickSearchStateService }, { type: undefined, decorators: [{
|
|
20874
21132
|
type: Inject,
|
|
20875
21133
|
args: [QUICK_SEARCH_SERVICE]
|
|
@@ -22520,6 +22778,7 @@ class ColorPickerComponent {
|
|
|
22520
22778
|
this.clearEvent = new EventEmitter();
|
|
22521
22779
|
this.$disabled = signal(false);
|
|
22522
22780
|
this.testIds = COLOR_PICKER_TEST_IDS;
|
|
22781
|
+
this.DEFAULT_COLOR = '#000000';
|
|
22523
22782
|
this._pickr = null;
|
|
22524
22783
|
this._value = null;
|
|
22525
22784
|
this._initialized = false;
|
|
@@ -22544,10 +22803,11 @@ class ColorPickerComponent {
|
|
|
22544
22803
|
}
|
|
22545
22804
|
writeValue(value) {
|
|
22546
22805
|
this._value = value || null;
|
|
22806
|
+
// Silent: a non-silent setColor emits 'save', which would re-save the incoming value.
|
|
22807
|
+
// Silent setColor skips applyColor, so repaint the button explicitly.
|
|
22547
22808
|
if (this._pickr && this._initialized) {
|
|
22548
|
-
|
|
22549
|
-
|
|
22550
|
-
}
|
|
22809
|
+
this._pickr.setColor(value || this.DEFAULT_COLOR, true);
|
|
22810
|
+
this._pickr.applyColor(true);
|
|
22551
22811
|
}
|
|
22552
22812
|
}
|
|
22553
22813
|
registerOnChange(fn) {
|
|
@@ -22591,7 +22851,7 @@ class ColorPickerComponent {
|
|
|
22591
22851
|
this._pickr = Pickr.create({
|
|
22592
22852
|
el: this.pickrAnchorRef.nativeElement,
|
|
22593
22853
|
theme: 'monolith',
|
|
22594
|
-
default: this._value ||
|
|
22854
|
+
default: this._value || this.DEFAULT_COLOR,
|
|
22595
22855
|
container: 'body',
|
|
22596
22856
|
appClass: 'valtimo-pickr',
|
|
22597
22857
|
position: this.config.position || 'bottom-start',
|
|
@@ -22730,5 +22990,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImpo
|
|
|
22730
22990
|
* Generated bundle index. Do not edit.
|
|
22731
22991
|
*/
|
|
22732
22992
|
|
|
22733
|
-
export { ARBITRARY_AMOUNT_VALUE_TEST_IDS, AUTO_KEY_INPUT_TEST_IDS, AdminSettingsService, Alert, AlertComponent, AlertModule, AlertService, AlertType, AlertsOptionsImpl, AssignmentComponent, AutoKeyInputComponent, BOOLEAN_CONVERTER_VALUES, BpmnJsDiagramComponent, BpmnJsDiagramModule, BreadcrumbNavigationComponent, BreadcrumbNavigationModule, BreadcrumbService, CARBON_CONSTANTS, CARBON_THEME, CASES_WITHOUT_STATUS_KEY, COLOR_PICKER_TEST_IDS, CONFIRMATION_MODAL_TEST_IDS, CamundaFormComponent, CamundaFormModule, CarbonListComponent, CarbonListFilterPipe, CarbonListModule, CarbonMultiInputComponent, CarbonMultiInputModule, CarbonNoResultsComponent, CaseCountPipe, CaseTagsSelectorComponent, CdsThemeService, ChoiceFieldService, ColorPickerComponent, ComponentsPipesModule, ConfirmationModalComponent, ConfirmationModalModule, ContextMenuDirective, CtrlClickDirective, CurrentCarbonTheme, DEFAULT_LIST_TRANSLATIONS, DEFAULT_PAGINATION, DEFAULT_PAGINATOR_CONFIG, DataListComponent, DataListModule, DatePickerComponent, DatePickerModule, DateTimePickerComponent, DigitOnlyDirective, DragDropListComponent, DropzoneComponent, DropzoneModule, EditorComponent, EditorModule, EllipsisPipe, ExpansionPanelComponent, ExpansionPanelModule, FieldAutoFocusDirective, FieldAutoFocusModule, FileSizeModule, FileSizePipe, FilterSidebarComponent, FilterSidebarModule, FitPageDirective, FormComponent, FormIoCurrencyComponent, FormIoCurrentUserComponent, FormIoDomService, FormIoIbanComponent, FormIoMailPreviewComponent, FormIoModule, FormIoStateService, FormIoTagsService, FormIoUploaderComponent, FormModule, FormioBuilderComponent, FormioComponent, FormioDummyComponent, FormioOptionsImpl, FormioValueResolverSelectorComponent, InputComponent, InputLabelComponent, InputLabelModule, InputModule, IsArrayPipe, JSON_EDITOR_TEST_IDS, JsonEditorComponent, KEY_DROPDOWN_VALUE_TEST_IDS, KEY_VALUE_PATH_SELECTOR_TEST_IDS, KEY_VALUE_TEST_IDS, KeyGeneratorService, LeftSidebarComponent, LeftSidebarModule, ListColumnViewComponent, MENU_CONFIGURATION_VERSION, MENU_ITEM_CATALOG, MULTI_INPUT_TEST_IDS, MdiIconSelectorComponent, MdiIconViewerComponent, MenuItemTextComponent, MenuItemTranslationPipe, MenuModule, MenuRoutingModule, MenuService, ModalComponent, ModalModule, ModalService, MonacoTheme, MoveRowDirection, MultiInputFormComponent, MultiInputFormModule, MultiselectDropdownComponent, MultiselectDropdownModule, MuuriDirective, MuuriDirectiveModule, MuuriItemComponent, ObjectManagementSelectComponent, ObjectManagementSelectService, ObserveSizeDirective, OverflowMenuComponent, OverflowMenuModule, OverflowMenuOptionComponent, OverflowMenuTriggerComponent, PLUGIN_PAGE_ROUTE, POPULAR_MDI_ICONS, PageHeaderComponent, PageHeaderModule, PageHeaderService, PageSubtitleService, PageTitleComponent, PageTitleModule, PageTitleService, ParagraphComponent, ParagraphModule, PendingChangesComponent, PendingChangesService, ProgressBarComponent, ProgressBarModule, PromptComponent, PromptModule, PromptService, QUICK_SEARCH_SERVICE, QuickSearchComponent, QuickSearchStateService, RIGHT_SIDEBAR_TEST_IDS, RadioComponent, RadioModule, ReadOnlyDirective, RemoveClassnamesDirective, RenderInBodyComponent, RenderInPageHeaderDirective, RenderPageHeaderDirective, RightSidebarComponent, RightSidebarModule, SCHEMA_EDITOR_REQUIRED_PROPERTY_TEST_ID_PREFIX, SCHEMA_EDITOR_TEST_IDS, SEARCH_FIELDS_TEST_IDS, SEARCH_FIELD_TEST_ID_PREFIX, SECTION_HEADER_TEXT_CLASS, SIDE_PANEL_TEST_IDS, SINGLE_VALUE_TEST_IDS, STEPPER_FOOTER_STEP_TEST_IDS, SchemaEditorComponent, SearchFieldsComponent, SearchFieldsModule, SelectComponent, SelectModule, SelectableCarbonTheme, ShellService, SidePanelComponent, SidePanelService, SpinnerComponent, SpinnerModule, StatusSelectorComponent, StepperContainerComponent, StepperContentComponent, StepperFooterComponent, StepperFooterStepComponent, StepperHeaderComponent, StepperModule, StepperService, StepperStepComponent, TAG_ELLIPSIS_LIMIT, TableComponent, TableModule, TimelineComponent, TimelineItemImpl, TimelineModule, TooltipComponent, TooltipDirective, TooltipIconComponent, TooltipIconModule, TooltipModule, TopbarComponent, TopbarModule, UploaderComponent, UploaderDragDropDirective, UploaderModule, UserInterfaceService, VALUE_CONDITION_TREE_TEST_IDS, VALUE_PATH_SELECTOR_DROPDOWN_VALUE_TEST_IDS, VALUE_PATH_SELECTOR_TEST_IDS, VALUE_PATH_SELECTOR_VALUE_TEST_IDS, VModalComponent, VModalModule, ValtimoCdsModalDirective, ValtimoModalService, ValueConditionTreeComponent, ValueConditionTreeService, ValuePathSelectorComponent, ValuePathSelectorInputMode, ValuePathSelectorPrefix, ValuePathSelectorService, ValuePathType, ViewContentService, ViewType, WIDGET_LAYOUT_TRANSLATION_KEYS, WIDGET_LAYOUT_VALUES, WIDGET_ROW_HEIGHT_DEFAULT, WIDGET_ROW_HEIGHT_GAP_FREE, WebcamComponent, WebcamModule, WidgetComponent, WidgetLayout, WidgetLayoutInfoComponent, WidgetModule, applyDataGridPatch, borderBoxWidth, buildMenuConfigurationFromRuntimeMenu, collectObjectLevels, contentBoxWidth, createCustomFormioComponent, customUploaderType, enableCustomFormioComponents, findMenuCatalogEntryByLink, findMenuCatalogGroupEntryByTitle, fromMutationObserver, fromResizeObserver, getMenuCatalogEntry, hasSavedMenuConfiguration, includeFunctionToName, menuInitializer, menuLinkToString, muuriGapFreeLayout, normaliseMenuLink, parseIncludeFunction, pendingChangesGuard, registerCustomFormioComponent, registerCustomTag, registerFormioCurrencyComponent, registerFormioCurrentUserComponent, registerFormioFileSelectorComponent, registerFormioIbanComponent, registerFormioMailPreviewComponent, registerFormioUploadComponent, registerFormioValueResolverSelectorComponent, registerObjectManagementSelectFormioComponent, resolveMenuConfiguration, resolveWidgetLayout, runAfterCarbonModalClosed, serializeIncludeFunction, setRequiredOnSchema };
|
|
22993
|
+
export { ARBITRARY_AMOUNT_VALUE_TEST_IDS, AUTO_KEY_INPUT_TEST_IDS, AdminSettingsService, Alert, AlertComponent, AlertModule, AlertService, AlertType, AlertsOptionsImpl, AssignmentComponent, AutoKeyInputComponent, BOOLEAN_CONVERTER_VALUES, BpmnJsDiagramComponent, BpmnJsDiagramModule, BreadcrumbNavigationComponent, BreadcrumbNavigationModule, BreadcrumbService, CARBON_CONSTANTS, CARBON_THEME, CASES_WITHOUT_STATUS_KEY, COLOR_PICKER_TEST_IDS, CONFIRMATION_MODAL_TEST_IDS, CamundaFormComponent, CamundaFormModule, CarbonListComponent, CarbonListFilterPipe, CarbonListModule, CarbonMultiInputComponent, CarbonMultiInputModule, CarbonNoResultsComponent, CaseCountPipe, CaseTagsSelectorComponent, CdsThemeService, ChoiceFieldService, ColorPickerComponent, ComponentsPipesModule, ConfirmationModalComponent, ConfirmationModalModule, ContextMenuDirective, CtrlClickDirective, CurrentCarbonTheme, DEFAULT_LIST_TRANSLATIONS, DEFAULT_PAGINATION, DEFAULT_PAGINATOR_CONFIG, DataListComponent, DataListModule, DatePickerComponent, DatePickerModule, DateTimePickerComponent, DigitOnlyDirective, DragDropListComponent, DropzoneComponent, DropzoneModule, EditorComponent, EditorModule, EllipsisPipe, ExpansionPanelComponent, ExpansionPanelModule, FieldAutoFocusDirective, FieldAutoFocusModule, FileSizeModule, FileSizePipe, FilterSidebarComponent, FilterSidebarModule, FitPageDirective, FormComponent, FormIoCurrencyComponent, FormIoCurrentUserComponent, FormIoDomService, FormIoIbanComponent, FormIoMailPreviewComponent, FormIoModule, FormIoStateService, FormIoTagsService, FormIoUploaderComponent, FormModule, FormioBuilderComponent, FormioComponent, FormioDummyComponent, FormioOptionsImpl, FormioValueResolverSelectorComponent, InputComponent, InputLabelComponent, InputLabelModule, InputModule, IsArrayPipe, JSON_EDITOR_TEST_IDS, JsonEditorComponent, KEY_DROPDOWN_VALUE_TEST_IDS, KEY_VALUE_PATH_SELECTOR_TEST_IDS, KEY_VALUE_TEST_IDS, KeyGeneratorService, LEFT_SIDEBAR_TEST_IDS, LeftSidebarComponent, LeftSidebarModule, ListColumnViewComponent, MENU_CONFIGURATION_VERSION, MENU_ITEM_CATALOG, MULTI_INPUT_TEST_IDS, MdiIconSelectorComponent, MdiIconViewerComponent, MenuItemTextComponent, MenuItemTranslationPipe, MenuModule, MenuRoutingModule, MenuService, ModalComponent, ModalModule, ModalService, MonacoTheme, MoveRowDirection, MultiInputFormComponent, MultiInputFormModule, MultiselectDropdownComponent, MultiselectDropdownModule, MuuriDirective, MuuriDirectiveModule, MuuriItemComponent, ObjectManagementSelectComponent, ObjectManagementSelectService, ObserveSizeDirective, OverflowMenuComponent, OverflowMenuModule, OverflowMenuOptionComponent, OverflowMenuTriggerComponent, PLUGIN_PAGE_ROUTE, POPULAR_MDI_ICONS, PageHeaderComponent, PageHeaderModule, PageHeaderService, PageSubtitleService, PageTitleComponent, PageTitleModule, PageTitleService, ParagraphComponent, ParagraphModule, PendingChangesComponent, PendingChangesService, ProgressBarComponent, ProgressBarModule, PromptComponent, PromptModule, PromptService, QUICK_SEARCH_SERVICE, QUICK_SEARCH_TEST_IDS, QuickSearchComponent, QuickSearchStateService, RIGHT_SIDEBAR_TEST_IDS, RadioComponent, RadioModule, ReadOnlyDirective, RemoveClassnamesDirective, RenderInBodyComponent, RenderInPageHeaderDirective, RenderPageHeaderDirective, RightSidebarComponent, RightSidebarModule, SCHEMA_EDITOR_REQUIRED_PROPERTY_TEST_ID_PREFIX, SCHEMA_EDITOR_TEST_IDS, SEARCH_FIELDS_TEST_IDS, SEARCH_FIELD_TEST_ID_PREFIX, SECTION_HEADER_TEXT_CLASS, SIDE_PANEL_TEST_IDS, SINGLE_VALUE_TEST_IDS, STATUS_SELECTOR_TEST_IDS, STEPPER_FOOTER_STEP_TEST_IDS, SchemaEditorComponent, SearchFieldsComponent, SearchFieldsModule, SelectComponent, SelectModule, SelectableCarbonTheme, ShellService, SidePanelComponent, SidePanelService, SpinnerComponent, SpinnerModule, StatusSelectorComponent, StepperContainerComponent, StepperContentComponent, StepperFooterComponent, StepperFooterStepComponent, StepperHeaderComponent, StepperModule, StepperService, StepperStepComponent, SubmenuTitleClickDirective, TAG_ELLIPSIS_LIMIT, TableComponent, TableModule, TimelineComponent, TimelineItemImpl, TimelineModule, TooltipComponent, TooltipDirective, TooltipIconComponent, TooltipIconModule, TooltipModule, TopbarComponent, TopbarModule, UploaderComponent, UploaderDragDropDirective, UploaderModule, UserInterfaceService, VALUE_CONDITION_TREE_TEST_IDS, VALUE_PATH_SELECTOR_DROPDOWN_VALUE_TEST_IDS, VALUE_PATH_SELECTOR_TEST_IDS, VALUE_PATH_SELECTOR_VALUE_TEST_IDS, VModalComponent, VModalModule, ValtimoCdsModalDirective, ValtimoModalService, ValueConditionTreeComponent, ValueConditionTreeService, ValuePathSelectorComponent, ValuePathSelectorInputMode, ValuePathSelectorPrefix, ValuePathSelectorService, ValuePathType, ViewContentService, ViewType, WIDGET_LAYOUT_TRANSLATION_KEYS, WIDGET_LAYOUT_VALUES, WIDGET_ROW_HEIGHT_DEFAULT, WIDGET_ROW_HEIGHT_GAP_FREE, WebcamComponent, WebcamModule, WidgetComponent, WidgetLayout, WidgetLayoutInfoComponent, WidgetModule, applyDataGridPatch, borderBoxWidth, buildMenuConfigurationFromRuntimeMenu, collectObjectLevels, contentBoxWidth, createCustomFormioComponent, customUploaderType, enableCustomFormioComponents, findMenuCatalogEntryByLink, findMenuCatalogGroupEntryByTitle, fromMutationObserver, fromResizeObserver, getMenuCatalogEntry, hasSavedMenuConfiguration, includeFunctionToName, menuInitializer, menuLinkToString, muuriGapFreeLayout, normaliseMenuLink, parseIncludeFunction, pendingChangesGuard, registerCustomFormioComponent, registerCustomTag, registerFormioCurrencyComponent, registerFormioCurrentUserComponent, registerFormioFileSelectorComponent, registerFormioIbanComponent, registerFormioMailPreviewComponent, registerFormioUploadComponent, registerFormioValueResolverSelectorComponent, registerObjectManagementSelectFormioComponent, resolveMenuConfiguration, resolveWidgetLayout, runAfterCarbonModalClosed, serializeIncludeFunction, setRequiredOnSchema };
|
|
22734
22994
|
//# sourceMappingURL=valtimo-components.mjs.map
|