@indigina/ui-kit 1.1.189 → 1.1.191

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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Input, ChangeDetectionStrategy, Component, input, EventEmitter, Output, ViewEncapsulation, NgModule, effect, inject, ElementRef, NgZone, Renderer2, Directive, forwardRef, viewChild, HostListener, signal, TemplateRef, ViewChild, ContentChild, Injectable, output, Host, Self, Inject, model, computed, contentChildren, ContentChildren, viewChildren, ViewContainerRef, InjectionToken, contentChild, Optional } from '@angular/core';
2
+ import { Input, ChangeDetectionStrategy, Component, input, EventEmitter, Output, ViewEncapsulation, NgModule, effect, inject, ElementRef, NgZone, Renderer2, Directive, forwardRef, viewChild, HostListener, signal, TemplateRef, ViewChild, ContentChild, Injectable, output, Host, Self, Inject, model, computed, contentChildren, ContentChildren, viewChildren, InjectionToken, ViewContainerRef, contentChild, Optional } from '@angular/core';
3
3
  import * as i1 from '@progress/kendo-angular-buttons';
4
4
  import { ButtonModule, ButtonGroupModule } from '@progress/kendo-angular-buttons';
5
5
  import * as i1$1 from '@angular/common';
@@ -23,7 +23,7 @@ import * as i1$6 from 'ngx-toastr';
23
23
  import { DefaultGlobalConfig, TOAST_CONFIG, ToastrModule } from 'ngx-toastr';
24
24
  import * as i1$7 from '@angular/router';
25
25
  import { RouterModule, NavigationEnd, RouterLink } from '@angular/router';
26
- import { BehaviorSubject, filter, Subject, startWith, pairwise, takeUntil, debounceTime, distinctUntilChanged, tap, map, take, switchMap, of, catchError } from 'rxjs';
26
+ import { BehaviorSubject, filter, Subject, startWith, pairwise, takeUntil, tap, map, debounceTime, distinctUntilChanged, take, switchMap, of, catchError } from 'rxjs';
27
27
  import { v4 } from 'uuid';
28
28
  import * as i1$8 from '@progress/kendo-angular-dialog';
29
29
  import { KENDO_DIALOGS, DialogActionsComponent, DialogContentBase, DialogCloseResult, DialogRef } from '@progress/kendo-angular-dialog';
@@ -4999,6 +4999,27 @@ class KitTabsComponent {
4999
4999
  * Defines the reference to the tabs content
5000
5000
  */
5001
5001
  this.tabs = contentChildren(KitTabComponent);
5002
+ this.interceptInputKeys = (event) => {
5003
+ const target = event.target;
5004
+ const isTextInput = [
5005
+ 'INPUT',
5006
+ 'TEXTAREA',
5007
+ ].includes(target.nodeName) || target.hasAttribute('contenteditable');
5008
+ const keysToProtect = [
5009
+ 'ArrowLeft',
5010
+ 'ArrowRight',
5011
+ 'Backspace',
5012
+ ];
5013
+ if (isTextInput && keysToProtect.includes(event.key)) {
5014
+ event.stopImmediatePropagation();
5015
+ }
5016
+ };
5017
+ }
5018
+ ngOnInit() {
5019
+ document.addEventListener('keydown', this.interceptInputKeys, true);
5020
+ }
5021
+ ngOnDestroy() {
5022
+ document.removeEventListener('keydown', this.interceptInputKeys, true);
5002
5023
  }
5003
5024
  onTabSelect(event) {
5004
5025
  this.tabSelected.emit({
@@ -6535,6 +6556,57 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
6535
6556
  type: Input
6536
6557
  }] } });
6537
6558
 
6559
+ class FetchUserPermissions {
6560
+ static { this.type = '[User] FetchPermissions'; }
6561
+ }
6562
+
6563
+ const KIT_BASE_PATH = new InjectionToken('kitBasePath');
6564
+
6565
+ class KitPermissionsApiService {
6566
+ constructor(httpClient, basePath) {
6567
+ this.httpClient = httpClient;
6568
+ this.basePath = basePath;
6569
+ }
6570
+ getUserPermissions() {
6571
+ const url = `${this.basePath}/user/permissions`;
6572
+ return this.httpClient.get(url);
6573
+ }
6574
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: KitPermissionsApiService, deps: [{ token: i1$c.HttpClient }, { token: KIT_BASE_PATH }], target: i0.ɵɵFactoryTarget.Injectable }); }
6575
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: KitPermissionsApiService, providedIn: 'root' }); }
6576
+ }
6577
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: KitPermissionsApiService, decorators: [{
6578
+ type: Injectable,
6579
+ args: [{
6580
+ providedIn: 'root',
6581
+ }]
6582
+ }], ctorParameters: () => [{ type: i1$c.HttpClient }, { type: undefined, decorators: [{
6583
+ type: Inject,
6584
+ args: [KIT_BASE_PATH]
6585
+ }] }] });
6586
+
6587
+ const KIT_USER_PERMISSIONS_STATE_TOKEN = new StateToken('userPermissions');
6588
+ let KitUserPermissionsState = class KitUserPermissionsState {
6589
+ constructor(kitPermissionsApiService) {
6590
+ this.kitPermissionsApiService = kitPermissionsApiService;
6591
+ }
6592
+ fetchUserPermissions(ctx) {
6593
+ return this.kitPermissionsApiService.getUserPermissions().pipe(tap(userPermissions => ctx.setState(userPermissions)));
6594
+ }
6595
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: KitUserPermissionsState, deps: [{ token: KitPermissionsApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
6596
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: KitUserPermissionsState }); }
6597
+ };
6598
+ __decorate([
6599
+ Action(FetchUserPermissions)
6600
+ ], KitUserPermissionsState.prototype, "fetchUserPermissions", null);
6601
+ KitUserPermissionsState = __decorate([
6602
+ State({
6603
+ name: KIT_USER_PERMISSIONS_STATE_TOKEN,
6604
+ })
6605
+ ], KitUserPermissionsState);
6606
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: KitUserPermissionsState, decorators: [{
6607
+ type: Injectable
6608
+ }], ctorParameters: () => [{ type: KitPermissionsApiService }], propDecorators: { fetchUserPermissions: [] } });
6609
+
6538
6610
  class KitGlobalSearchComponent {
6539
6611
  documentClick(event) {
6540
6612
  if (!this.popup()?.isPopupOpen) {
@@ -6545,8 +6617,9 @@ class KitGlobalSearchComponent {
6545
6617
  this.clearSearch();
6546
6618
  }
6547
6619
  }
6548
- constructor(router) {
6620
+ constructor(router, store) {
6549
6621
  this.router = router;
6622
+ this.store = store;
6550
6623
  this.searchFn = input.required();
6551
6624
  this.displayedLineItemsNumber = input(3);
6552
6625
  this.prompts = input.required();
@@ -6563,8 +6636,9 @@ class KitGlobalSearchComponent {
6563
6636
  this.dateFormat = KIT_DATE_FORMAT;
6564
6637
  this.popupClass = 'kit-global-search-popup';
6565
6638
  this.searchResults = signal([]);
6566
- this.value = '';
6639
+ this.searchValue = '';
6567
6640
  this.showPropmts = signal(true);
6641
+ this.userPermissions$ = this.store.select(KIT_USER_PERMISSIONS_STATE_TOKEN).pipe(map(data => data.permissions));
6568
6642
  }
6569
6643
  ngOnInit() {
6570
6644
  this.textbox().valueChange.pipe(debounceTime(500), distinctUntilChanged(), filter((val) => val.length > 2)).subscribe(searchText => {
@@ -6578,7 +6652,7 @@ class KitGlobalSearchComponent {
6578
6652
  return !!this.popup()?.isPopupOpen;
6579
6653
  }
6580
6654
  clearSearch() {
6581
- this.value = '';
6655
+ this.searchValue = '';
6582
6656
  this.textbox().valueChange.emit('');
6583
6657
  this.textbox().clearValue();
6584
6658
  this.searchResults.set([]);
@@ -6601,16 +6675,20 @@ class KitGlobalSearchComponent {
6601
6675
  if (!link) {
6602
6676
  return;
6603
6677
  }
6604
- this.router.navigate(link);
6678
+ this.router.navigate(link, {
6679
+ queryParams: {
6680
+ search: this.searchValue,
6681
+ },
6682
+ queryParamsHandling: 'replace',
6683
+ });
6605
6684
  this.clearSearch();
6606
6685
  }
6607
6686
  onSelectPrompt(prompt) {
6608
- prompt.searchFn().subscribe(searchRusult => {
6609
- this.searchResults.set(searchRusult.filter(Boolean));
6610
- });
6687
+ this.router.navigate(prompt.link);
6688
+ this.popup()?.close();
6611
6689
  }
6612
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: KitGlobalSearchComponent, deps: [{ token: i1$7.Router }], target: i0.ɵɵFactoryTarget.Component }); }
6613
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: KitGlobalSearchComponent, isStandalone: true, selector: "kit-global-search", inputs: { searchFn: { classPropertyName: "searchFn", publicName: "searchFn", isSignal: true, isRequired: true, transformFunction: null }, displayedLineItemsNumber: { classPropertyName: "displayedLineItemsNumber", publicName: "displayedLineItemsNumber", isSignal: true, isRequired: false, transformFunction: null }, prompts: { classPropertyName: "prompts", publicName: "prompts", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "document:click": "documentClick($event)" } }, viewQueries: [{ propertyName: "textbox", first: true, predicate: TextBoxComponent, descendants: true, isSignal: true }, { propertyName: "anchor", first: true, predicate: TextBoxComponent, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "popup", first: true, predicate: ["popup"], descendants: true, read: KitPopupComponent, isSignal: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "<div #container\n class=\"global-search\">\n <kendo-textbox #textbox\n class=\"textbox\"\n [class.expanded]=\"isPopupOpen\"\n [placeholder]=\"'kit.globalSearch.placeholder' | translate\"\n [size]=\"'none'\"\n [(ngModel)]=\"value\"\n (click)=\"openPopup()\">\n <ng-template kendoTextBoxPrefixTemplate>\n <kit-svg-icon [icon]=\"kitSvgIcon.SEARCH\"/>\n </ng-template>\n <ng-template kendoTextBoxSuffixTemplate>\n <kit-svg-icon [icon]=\"kitSvgIcon.CIRCLE_CROSS_THIN\" \n (click)=\"clearSearch()\"/>\n </ng-template>\n </kendo-textbox>\n\n <kit-popup #popup\n [popupClass]=\"popupClass\"\n [anchor]=\"anchor()\"\n [content]=\"content\"\n [closeOnOutsideClick]=\"false\" />\n\n <ng-template #content>\n <div class=\"popup-content\">\n <div class=\"search-results\">\n @if (searchResults().length) {\n @for (category of searchResults(); track category?.name) {\n @if (category) {\n <div class=\"category\">\n <p class=\"header\"\n [class.empty]=\"!category.total\">\n <kit-svg-icon [icon]=\"kitSvgIcon.CHECK_STICKER\"/>\n <span class=\"title\">{{ category.name.toUpperCase() }} ({{ category.total }})</span>\n </p>\n\n @for (lineItem of category.items.slice(0, this.displayedLineItemsNumber()); track $index) {\n <div class=\"line-item\"\n [class.has-link]=\"lineItem.link\"\n (click)=\"navigate(lineItem.link)\">\n <div class=\"title\">\n <kit-truncate-text>{{ lineItem.title }}</kit-truncate-text>\n </div>\n <div class=\"subtitle\">\n <kit-truncate-text>{{ lineItem.subtitle }}</kit-truncate-text>\n </div>\n @if (lineItem.routePath?.from || lineItem.routePath?.to) {\n <kit-route-path class=\"route\"\n [containerMode]=\"lineItem.routePath?.containerMode\"\n [destinationPort]=\"lineItem.routePath?.to\"\n [originPort]=\"lineItem.routePath?.from\"\n [type]=\"lineItem.routePath?.type\"/>\n }\n @if (lineItem.dates?.firstDate.value) {\n <div class=\"dates first-date\">\n <kit-svg-icon [icon]=\"kitSvgIcon.CALENDAR\"/>\n <kit-truncate-text>{{ lineItem.dates?.firstDate.label }} \n <span class=\"date\">{{ lineItem.dates?.firstDate.value | date: dateFormat : 'UTC' }}</span>\n </kit-truncate-text>\n </div>\n }\n @if (lineItem.dates?.secondDate.value) {\n <div class=\"dates second-date\">\n <kit-svg-icon [icon]=\"kitSvgIcon.CALENDAR\"/>\n <kit-truncate-text>{{ lineItem.dates?.secondDate.label }} \n <span class=\"date\">{{ lineItem.dates?.secondDate.value | date: dateFormat : 'UTC' }}</span>\n </kit-truncate-text>\n </div>\n }\n </div>\n }\n \n @if (category.total > this.displayedLineItemsNumber()) {\n <kit-button [label]=\"'kit.globalSearch.showMore' | translate\"\n [type]=\"kitButtonType.GHOST\"\n [kind]=\"kitButtonKind.SMALL\"\n (clicked)=\"navigate(category.categoryLink)\"/>\n }\n </div>\n }\n }\n } @else if (showPropmts()) {\n <div class=\"prompts\">\n @for (prompt of prompts(); track prompt) {\n <kit-pill [theme]=\"kitPillTheme.MAIN\"\n [selectable]=\"true\" \n (clicked)=\"onSelectPrompt(prompt)\">\n {{ prompt.label }}\n </kit-pill>\n }\n </div>\n } @else {\n <kit-empty-section class=\"empty-section\"\n [text]=\"'kit.globalSearch.noData' | translate\"/>\n }\n </div>\n </div>\n </ng-template>\n</div>\n", styles: [":host{position:relative}:host .global-search{max-width:360px}:host .global-search:has(.textbox.expanded){max-width:100%}:host .global-search .textbox{border-color:var(--ui-kit-color-grey-11);box-shadow:none;border-radius:8px}:host .global-search .textbox.k-focus{border-color:var(--ui-kit-color-main)}:host ::ng-deep:has(.textbox.k-focus) .kit-global-search-popup{display:inherit}:host ::ng-deep .k-animation-container{width:100%}:host ::ng-deep .kit-global-search-popup{overflow-y:auto}:host ::ng-deep .global-search .k-textbox.k-input .k-input-inner{padding:11px 8px}:host ::ng-deep .global-search .k-textbox.k-input .kit-svg-icon .search-icon{width:37px;height:37px;fill:none;stroke:var(--ui-kit-color-grey-10);padding-left:12px}:host ::ng-deep .global-search .k-textbox.k-input .kit-svg-icon .circle-cross-thin-icon{width:30px;height:30px;fill:none;stroke:var(--ui-kit-color-grey-12);padding-right:12px;cursor:pointer}:host ::ng-deep .search-results .category:not(:last-child){margin-bottom:20px}:host ::ng-deep .search-results .category .header{display:flex;align-items:center;margin:0 0 20px}:host ::ng-deep .search-results .category .header .icon.check-sticker-icon{width:16px;height:16px;fill:var(--ui-kit-color-main);margin-right:10px}:host ::ng-deep .search-results .category .header .title{color:var(--ui-kit-color-main)}:host ::ng-deep .search-results .category .header.empty{margin:0}:host ::ng-deep .search-results .category .header.empty .icon.check-sticker-icon{fill:var(--ui-kit-color-grey-12)}:host ::ng-deep .search-results .category .header.empty .title{color:var(--ui-kit-color-grey-12)}:host ::ng-deep .search-results .category .line-item{display:grid;grid-template-columns:minmax(50px,190px) minmax(50px,190px) minmax(200px,300px) minmax(65px,130px) minmax(65px,130px);justify-content:space-between;gap:20px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--ui-kit-color-grey-11)}:host ::ng-deep .search-results .category .line-item.has-link{cursor:pointer}:host ::ng-deep .search-results .category .line-item.has-link:hover{opacity:.7}:host ::ng-deep .search-results .category .line-item .title{font-size:16px;line-height:22px;font-weight:500}:host ::ng-deep .search-results .category .line-item .title,:host ::ng-deep .search-results .category .line-item .subtitle{color:var(--ui-kit-color-grey-10)}:host ::ng-deep .search-results .category .line-item .icon.calendar-icon{width:18px;height:18px;fill:var(--ui-kit-color-grey-12);margin-right:3px}:host ::ng-deep .search-results .category .line-item .dates{display:flex;align-items:center;font-size:12px;line-height:14px}:host ::ng-deep .search-results .category .line-item .dates .date{font-size:14px;line-height:20px;font-weight:500}:host ::ng-deep .search-results .category .line-item .dates.first-date{color:var(--ui-kit-color-grey-14)}:host ::ng-deep .search-results .category .line-item .dates.second-date{color:var(--ui-kit-color-grey-10)}:host ::ng-deep .search-results .prompts{display:flex;gap:10px}:host ::ng-deep .empty-section{container:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }, { kind: "ngmodule", type: KitTextboxModule }, { kind: "ngmodule", type: KitSvgIconModule }, { kind: "component", type: KitSvgIconComponent, selector: "kit-svg-icon", inputs: ["icon", "iconClass"] }, { kind: "component", type: i1$3.TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "directive", type: i1$3.TextBoxSuffixTemplateDirective, selector: "[kendoTextBoxSuffixTemplate]", inputs: ["showSeparator"] }, { kind: "directive", type: i1$3.TextBoxPrefixTemplateDirective, selector: "[kendoTextBoxPrefixTemplate]", inputs: ["showSeparator"] }, { kind: "component", type: KitPopupComponent, selector: "kit-popup", inputs: ["anchor", "content", "closeOnOutsideClick", "showFooter", "cancelButtonLabel", "applyButtonLabel", "isApplyButtonDisabled", "positionMode", "popupClass", "closePopupOnCancel"], outputs: ["onCancel", "onApply", "onOpen", "onClose"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: KitRoutePathComponent, selector: "kit-route-path", inputs: ["originPort", "destinationPort", "type", "containerMode"] }, { kind: "ngmodule", type: KitButtonModule }, { kind: "component", type: KitButtonComponent, selector: "kit-button", inputs: ["disabled", "label", "type", "icon", "iconType", "kind", "state", "iconPosition", "buttonClass", "active"], outputs: ["clicked"] }, { kind: "component", type: KitTruncateTextComponent, selector: "kit-truncate-text" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$a.TranslatePipe, name: "translate" }, { kind: "component", type: KitEmptySectionComponent, selector: "kit-empty-section", inputs: ["text"] }, { kind: "component", type: KitPillComponent, selector: "kit-pill", inputs: ["removable", "selectable", "selected", "type", "theme", "icon", "iconType"], outputs: ["clicked", "removed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6690
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: KitGlobalSearchComponent, deps: [{ token: i1$7.Router }, { token: i1$d.Store }], target: i0.ɵɵFactoryTarget.Component }); }
6691
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: KitGlobalSearchComponent, isStandalone: true, selector: "kit-global-search", inputs: { searchFn: { classPropertyName: "searchFn", publicName: "searchFn", isSignal: true, isRequired: true, transformFunction: null }, displayedLineItemsNumber: { classPropertyName: "displayedLineItemsNumber", publicName: "displayedLineItemsNumber", isSignal: true, isRequired: false, transformFunction: null }, prompts: { classPropertyName: "prompts", publicName: "prompts", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "document:click": "documentClick($event)" } }, viewQueries: [{ propertyName: "textbox", first: true, predicate: TextBoxComponent, descendants: true, isSignal: true }, { propertyName: "anchor", first: true, predicate: TextBoxComponent, descendants: true, read: ElementRef, isSignal: true }, { propertyName: "popup", first: true, predicate: ["popup"], descendants: true, read: KitPopupComponent, isSignal: true }, { propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, isSignal: true }], ngImport: i0, template: "<div #container\n class=\"global-search\">\n <kendo-textbox #textbox\n class=\"textbox\"\n [class.expanded]=\"isPopupOpen\"\n [placeholder]=\"'kit.globalSearch.placeholder' | translate\"\n [size]=\"'none'\"\n [(ngModel)]=\"searchValue\"\n (click)=\"openPopup()\">\n <ng-template kendoTextBoxPrefixTemplate>\n <kit-svg-icon [icon]=\"kitSvgIcon.SEARCH\"/>\n </ng-template>\n <ng-template kendoTextBoxSuffixTemplate>\n <kit-svg-icon [icon]=\"kitSvgIcon.CIRCLE_CROSS_THIN\" \n (click)=\"clearSearch()\"/>\n </ng-template>\n </kendo-textbox>\n\n <kit-popup #popup\n [popupClass]=\"popupClass\"\n [anchor]=\"anchor()\"\n [content]=\"content\"\n [closeOnOutsideClick]=\"false\" />\n\n <ng-template #content>\n @if (userPermissions$ | async; as userPermissions) {\n <div class=\"popup-content\">\n <div class=\"search-results\">\n @if (searchResults().length) {\n @for (category of searchResults(); track category?.name) {\n @if (category) {\n <div class=\"category\">\n <p class=\"header\"\n [class.empty]=\"!category.total\">\n <kit-svg-icon [icon]=\"kitSvgIcon.CHECK_STICKER\"/>\n <span class=\"title\">{{ category.name.toUpperCase() }} ({{ category.total }})</span>\n </p>\n\n @for (lineItem of category.items.slice(0, this.displayedLineItemsNumber()); track $index) {\n <div class=\"line-item\"\n [class.has-link]=\"lineItem.link\"\n (click)=\"navigate(lineItem.link)\">\n <div class=\"title\">\n <kit-truncate-text>{{ lineItem.title }}</kit-truncate-text>\n </div>\n <div class=\"subtitle\">\n <kit-truncate-text>{{ lineItem.subtitle }}</kit-truncate-text>\n </div>\n @if (lineItem.routePath?.from || lineItem.routePath?.to) {\n <kit-route-path class=\"route\"\n [containerMode]=\"lineItem.routePath?.containerMode\"\n [destinationPort]=\"lineItem.routePath?.to\"\n [originPort]=\"lineItem.routePath?.from\"\n [type]=\"lineItem.routePath?.type\"/>\n }\n @if (lineItem.dates?.firstDate.value) {\n <div class=\"dates first-date\">\n <kit-svg-icon [icon]=\"kitSvgIcon.CALENDAR\"/>\n <kit-truncate-text>{{ lineItem.dates?.firstDate.label }} \n <span class=\"date\">{{ lineItem.dates?.firstDate.value | date: dateFormat : 'UTC' }}</span>\n </kit-truncate-text>\n </div>\n }\n @if (lineItem.dates?.secondDate.value) {\n <div class=\"dates second-date\">\n <kit-svg-icon [icon]=\"kitSvgIcon.CALENDAR\"/>\n <kit-truncate-text>{{ lineItem.dates?.secondDate.label }} \n <span class=\"date\">{{ lineItem.dates?.secondDate.value | date: dateFormat : 'UTC' }}</span>\n </kit-truncate-text>\n </div>\n }\n </div>\n }\n \n @if (category.total > this.displayedLineItemsNumber()) {\n <kit-button [label]=\"'kit.globalSearch.showResults' | translate\"\n [type]=\"kitButtonType.GHOST\"\n [kind]=\"kitButtonKind.SMALL\"\n (clicked)=\"navigate(category.categoryLink)\"/>\n }\n </div>\n }\n }\n } @else if (showPropmts()) {\n <div class=\"prompts\">\n @for (prompt of prompts(); track prompt) {\n @if (userPermissions.includes(prompt.permission)) {\n <kit-pill [theme]=\"kitPillTheme.MAIN\"\n [selectable]=\"true\" \n (clicked)=\"onSelectPrompt(prompt)\">\n {{ prompt.label }}\n </kit-pill>\n }\n }\n </div>\n } @else {\n <kit-empty-section class=\"empty-section\"\n [text]=\"'kit.globalSearch.noData' | translate\"/>\n }\n </div>\n </div>\n }\n </ng-template>\n</div>\n", styles: [":host{position:relative}:host .global-search{max-width:360px}:host .global-search:has(.textbox.expanded){max-width:100%}:host .global-search .textbox{border-color:var(--ui-kit-color-grey-11);box-shadow:none;border-radius:8px}:host .global-search .textbox.k-focus{border-color:var(--ui-kit-color-main)}:host ::ng-deep:has(.textbox.k-focus) .kit-global-search-popup{display:inherit}:host ::ng-deep .k-animation-container{width:100%}:host ::ng-deep .kit-global-search-popup{overflow-y:auto}:host ::ng-deep .global-search .k-textbox.k-input .k-input-inner{padding:11px 8px}:host ::ng-deep .global-search .k-textbox.k-input .kit-svg-icon .search-icon{width:37px;height:37px;fill:none;stroke:var(--ui-kit-color-grey-10);padding-left:12px}:host ::ng-deep .global-search .k-textbox.k-input .kit-svg-icon .circle-cross-thin-icon{width:30px;height:30px;fill:none;stroke:var(--ui-kit-color-grey-12);padding-right:12px;cursor:pointer}:host ::ng-deep .search-results .category:not(:last-child){margin-bottom:20px}:host ::ng-deep .search-results .category .header{display:flex;align-items:center;margin:0 0 20px}:host ::ng-deep .search-results .category .header .icon.check-sticker-icon{width:16px;height:16px;fill:var(--ui-kit-color-main);margin-right:10px}:host ::ng-deep .search-results .category .header .title{color:var(--ui-kit-color-main)}:host ::ng-deep .search-results .category .header.empty{margin:0}:host ::ng-deep .search-results .category .header.empty .icon.check-sticker-icon{fill:var(--ui-kit-color-grey-12)}:host ::ng-deep .search-results .category .header.empty .title{color:var(--ui-kit-color-grey-12)}:host ::ng-deep .search-results .category .line-item{display:grid;grid-template-columns:minmax(50px,190px) minmax(50px,190px) minmax(200px,300px) minmax(65px,130px) minmax(65px,130px);justify-content:space-between;gap:20px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--ui-kit-color-grey-11)}:host ::ng-deep .search-results .category .line-item.has-link{cursor:pointer}:host ::ng-deep .search-results .category .line-item.has-link:hover{opacity:.7}:host ::ng-deep .search-results .category .line-item .title{font-size:16px;line-height:22px;font-weight:500}:host ::ng-deep .search-results .category .line-item .title,:host ::ng-deep .search-results .category .line-item .subtitle{color:var(--ui-kit-color-grey-10)}:host ::ng-deep .search-results .category .line-item .icon.calendar-icon{width:18px;height:18px;fill:var(--ui-kit-color-grey-12);margin-right:3px}:host ::ng-deep .search-results .category .line-item .dates{display:flex;align-items:center;font-size:12px;line-height:14px}:host ::ng-deep .search-results .category .line-item .dates .date{font-size:14px;line-height:20px;font-weight:500}:host ::ng-deep .search-results .category .line-item .dates.first-date{color:var(--ui-kit-color-grey-14)}:host ::ng-deep .search-results .category .line-item .dates.second-date{color:var(--ui-kit-color-grey-10)}:host ::ng-deep .search-results .prompts{display:flex;gap:10px}:host ::ng-deep .empty-section{container:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1$1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$1.DatePipe, name: "date" }, { kind: "ngmodule", type: KitTextboxModule }, { kind: "ngmodule", type: KitSvgIconModule }, { kind: "component", type: KitSvgIconComponent, selector: "kit-svg-icon", inputs: ["icon", "iconClass"] }, { kind: "component", type: i1$3.TextBoxComponent, selector: "kendo-textbox", inputs: ["focusableId", "title", "type", "disabled", "readonly", "tabindex", "value", "selectOnFocus", "showSuccessIcon", "showErrorIcon", "clearButton", "successIcon", "successSvgIcon", "errorIcon", "errorSvgIcon", "clearButtonIcon", "clearButtonSvgIcon", "size", "rounded", "fillMode", "tabIndex", "placeholder", "maxlength", "inputAttributes"], outputs: ["valueChange", "inputFocus", "inputBlur", "focus", "blur"], exportAs: ["kendoTextBox"] }, { kind: "directive", type: i1$3.TextBoxSuffixTemplateDirective, selector: "[kendoTextBoxSuffixTemplate]", inputs: ["showSeparator"] }, { kind: "directive", type: i1$3.TextBoxPrefixTemplateDirective, selector: "[kendoTextBoxPrefixTemplate]", inputs: ["showSeparator"] }, { kind: "component", type: KitPopupComponent, selector: "kit-popup", inputs: ["anchor", "content", "closeOnOutsideClick", "showFooter", "cancelButtonLabel", "applyButtonLabel", "isApplyButtonDisabled", "positionMode", "popupClass", "closePopupOnCancel"], outputs: ["onCancel", "onApply", "onOpen", "onClose"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: KitRoutePathComponent, selector: "kit-route-path", inputs: ["originPort", "destinationPort", "type", "containerMode"] }, { kind: "ngmodule", type: KitButtonModule }, { kind: "component", type: KitButtonComponent, selector: "kit-button", inputs: ["disabled", "label", "type", "icon", "iconType", "kind", "state", "iconPosition", "buttonClass", "active"], outputs: ["clicked"] }, { kind: "component", type: KitTruncateTextComponent, selector: "kit-truncate-text" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$a.TranslatePipe, name: "translate" }, { kind: "component", type: KitEmptySectionComponent, selector: "kit-empty-section", inputs: ["text"] }, { kind: "component", type: KitPillComponent, selector: "kit-pill", inputs: ["removable", "selectable", "selected", "type", "theme", "icon", "iconType"], outputs: ["clicked", "removed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6614
6692
  }
6615
6693
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: KitGlobalSearchComponent, decorators: [{
6616
6694
  type: Component,
@@ -6629,63 +6707,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
6629
6707
  TranslateModule,
6630
6708
  KitEmptySectionComponent,
6631
6709
  KitPillComponent,
6632
- ], template: "<div #container\n class=\"global-search\">\n <kendo-textbox #textbox\n class=\"textbox\"\n [class.expanded]=\"isPopupOpen\"\n [placeholder]=\"'kit.globalSearch.placeholder' | translate\"\n [size]=\"'none'\"\n [(ngModel)]=\"value\"\n (click)=\"openPopup()\">\n <ng-template kendoTextBoxPrefixTemplate>\n <kit-svg-icon [icon]=\"kitSvgIcon.SEARCH\"/>\n </ng-template>\n <ng-template kendoTextBoxSuffixTemplate>\n <kit-svg-icon [icon]=\"kitSvgIcon.CIRCLE_CROSS_THIN\" \n (click)=\"clearSearch()\"/>\n </ng-template>\n </kendo-textbox>\n\n <kit-popup #popup\n [popupClass]=\"popupClass\"\n [anchor]=\"anchor()\"\n [content]=\"content\"\n [closeOnOutsideClick]=\"false\" />\n\n <ng-template #content>\n <div class=\"popup-content\">\n <div class=\"search-results\">\n @if (searchResults().length) {\n @for (category of searchResults(); track category?.name) {\n @if (category) {\n <div class=\"category\">\n <p class=\"header\"\n [class.empty]=\"!category.total\">\n <kit-svg-icon [icon]=\"kitSvgIcon.CHECK_STICKER\"/>\n <span class=\"title\">{{ category.name.toUpperCase() }} ({{ category.total }})</span>\n </p>\n\n @for (lineItem of category.items.slice(0, this.displayedLineItemsNumber()); track $index) {\n <div class=\"line-item\"\n [class.has-link]=\"lineItem.link\"\n (click)=\"navigate(lineItem.link)\">\n <div class=\"title\">\n <kit-truncate-text>{{ lineItem.title }}</kit-truncate-text>\n </div>\n <div class=\"subtitle\">\n <kit-truncate-text>{{ lineItem.subtitle }}</kit-truncate-text>\n </div>\n @if (lineItem.routePath?.from || lineItem.routePath?.to) {\n <kit-route-path class=\"route\"\n [containerMode]=\"lineItem.routePath?.containerMode\"\n [destinationPort]=\"lineItem.routePath?.to\"\n [originPort]=\"lineItem.routePath?.from\"\n [type]=\"lineItem.routePath?.type\"/>\n }\n @if (lineItem.dates?.firstDate.value) {\n <div class=\"dates first-date\">\n <kit-svg-icon [icon]=\"kitSvgIcon.CALENDAR\"/>\n <kit-truncate-text>{{ lineItem.dates?.firstDate.label }} \n <span class=\"date\">{{ lineItem.dates?.firstDate.value | date: dateFormat : 'UTC' }}</span>\n </kit-truncate-text>\n </div>\n }\n @if (lineItem.dates?.secondDate.value) {\n <div class=\"dates second-date\">\n <kit-svg-icon [icon]=\"kitSvgIcon.CALENDAR\"/>\n <kit-truncate-text>{{ lineItem.dates?.secondDate.label }} \n <span class=\"date\">{{ lineItem.dates?.secondDate.value | date: dateFormat : 'UTC' }}</span>\n </kit-truncate-text>\n </div>\n }\n </div>\n }\n \n @if (category.total > this.displayedLineItemsNumber()) {\n <kit-button [label]=\"'kit.globalSearch.showMore' | translate\"\n [type]=\"kitButtonType.GHOST\"\n [kind]=\"kitButtonKind.SMALL\"\n (clicked)=\"navigate(category.categoryLink)\"/>\n }\n </div>\n }\n }\n } @else if (showPropmts()) {\n <div class=\"prompts\">\n @for (prompt of prompts(); track prompt) {\n <kit-pill [theme]=\"kitPillTheme.MAIN\"\n [selectable]=\"true\" \n (clicked)=\"onSelectPrompt(prompt)\">\n {{ prompt.label }}\n </kit-pill>\n }\n </div>\n } @else {\n <kit-empty-section class=\"empty-section\"\n [text]=\"'kit.globalSearch.noData' | translate\"/>\n }\n </div>\n </div>\n </ng-template>\n</div>\n", styles: [":host{position:relative}:host .global-search{max-width:360px}:host .global-search:has(.textbox.expanded){max-width:100%}:host .global-search .textbox{border-color:var(--ui-kit-color-grey-11);box-shadow:none;border-radius:8px}:host .global-search .textbox.k-focus{border-color:var(--ui-kit-color-main)}:host ::ng-deep:has(.textbox.k-focus) .kit-global-search-popup{display:inherit}:host ::ng-deep .k-animation-container{width:100%}:host ::ng-deep .kit-global-search-popup{overflow-y:auto}:host ::ng-deep .global-search .k-textbox.k-input .k-input-inner{padding:11px 8px}:host ::ng-deep .global-search .k-textbox.k-input .kit-svg-icon .search-icon{width:37px;height:37px;fill:none;stroke:var(--ui-kit-color-grey-10);padding-left:12px}:host ::ng-deep .global-search .k-textbox.k-input .kit-svg-icon .circle-cross-thin-icon{width:30px;height:30px;fill:none;stroke:var(--ui-kit-color-grey-12);padding-right:12px;cursor:pointer}:host ::ng-deep .search-results .category:not(:last-child){margin-bottom:20px}:host ::ng-deep .search-results .category .header{display:flex;align-items:center;margin:0 0 20px}:host ::ng-deep .search-results .category .header .icon.check-sticker-icon{width:16px;height:16px;fill:var(--ui-kit-color-main);margin-right:10px}:host ::ng-deep .search-results .category .header .title{color:var(--ui-kit-color-main)}:host ::ng-deep .search-results .category .header.empty{margin:0}:host ::ng-deep .search-results .category .header.empty .icon.check-sticker-icon{fill:var(--ui-kit-color-grey-12)}:host ::ng-deep .search-results .category .header.empty .title{color:var(--ui-kit-color-grey-12)}:host ::ng-deep .search-results .category .line-item{display:grid;grid-template-columns:minmax(50px,190px) minmax(50px,190px) minmax(200px,300px) minmax(65px,130px) minmax(65px,130px);justify-content:space-between;gap:20px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--ui-kit-color-grey-11)}:host ::ng-deep .search-results .category .line-item.has-link{cursor:pointer}:host ::ng-deep .search-results .category .line-item.has-link:hover{opacity:.7}:host ::ng-deep .search-results .category .line-item .title{font-size:16px;line-height:22px;font-weight:500}:host ::ng-deep .search-results .category .line-item .title,:host ::ng-deep .search-results .category .line-item .subtitle{color:var(--ui-kit-color-grey-10)}:host ::ng-deep .search-results .category .line-item .icon.calendar-icon{width:18px;height:18px;fill:var(--ui-kit-color-grey-12);margin-right:3px}:host ::ng-deep .search-results .category .line-item .dates{display:flex;align-items:center;font-size:12px;line-height:14px}:host ::ng-deep .search-results .category .line-item .dates .date{font-size:14px;line-height:20px;font-weight:500}:host ::ng-deep .search-results .category .line-item .dates.first-date{color:var(--ui-kit-color-grey-14)}:host ::ng-deep .search-results .category .line-item .dates.second-date{color:var(--ui-kit-color-grey-10)}:host ::ng-deep .search-results .prompts{display:flex;gap:10px}:host ::ng-deep .empty-section{container:none}\n"] }]
6633
- }], ctorParameters: () => [{ type: i1$7.Router }], propDecorators: { documentClick: [{
6710
+ ], template: "<div #container\n class=\"global-search\">\n <kendo-textbox #textbox\n class=\"textbox\"\n [class.expanded]=\"isPopupOpen\"\n [placeholder]=\"'kit.globalSearch.placeholder' | translate\"\n [size]=\"'none'\"\n [(ngModel)]=\"searchValue\"\n (click)=\"openPopup()\">\n <ng-template kendoTextBoxPrefixTemplate>\n <kit-svg-icon [icon]=\"kitSvgIcon.SEARCH\"/>\n </ng-template>\n <ng-template kendoTextBoxSuffixTemplate>\n <kit-svg-icon [icon]=\"kitSvgIcon.CIRCLE_CROSS_THIN\" \n (click)=\"clearSearch()\"/>\n </ng-template>\n </kendo-textbox>\n\n <kit-popup #popup\n [popupClass]=\"popupClass\"\n [anchor]=\"anchor()\"\n [content]=\"content\"\n [closeOnOutsideClick]=\"false\" />\n\n <ng-template #content>\n @if (userPermissions$ | async; as userPermissions) {\n <div class=\"popup-content\">\n <div class=\"search-results\">\n @if (searchResults().length) {\n @for (category of searchResults(); track category?.name) {\n @if (category) {\n <div class=\"category\">\n <p class=\"header\"\n [class.empty]=\"!category.total\">\n <kit-svg-icon [icon]=\"kitSvgIcon.CHECK_STICKER\"/>\n <span class=\"title\">{{ category.name.toUpperCase() }} ({{ category.total }})</span>\n </p>\n\n @for (lineItem of category.items.slice(0, this.displayedLineItemsNumber()); track $index) {\n <div class=\"line-item\"\n [class.has-link]=\"lineItem.link\"\n (click)=\"navigate(lineItem.link)\">\n <div class=\"title\">\n <kit-truncate-text>{{ lineItem.title }}</kit-truncate-text>\n </div>\n <div class=\"subtitle\">\n <kit-truncate-text>{{ lineItem.subtitle }}</kit-truncate-text>\n </div>\n @if (lineItem.routePath?.from || lineItem.routePath?.to) {\n <kit-route-path class=\"route\"\n [containerMode]=\"lineItem.routePath?.containerMode\"\n [destinationPort]=\"lineItem.routePath?.to\"\n [originPort]=\"lineItem.routePath?.from\"\n [type]=\"lineItem.routePath?.type\"/>\n }\n @if (lineItem.dates?.firstDate.value) {\n <div class=\"dates first-date\">\n <kit-svg-icon [icon]=\"kitSvgIcon.CALENDAR\"/>\n <kit-truncate-text>{{ lineItem.dates?.firstDate.label }} \n <span class=\"date\">{{ lineItem.dates?.firstDate.value | date: dateFormat : 'UTC' }}</span>\n </kit-truncate-text>\n </div>\n }\n @if (lineItem.dates?.secondDate.value) {\n <div class=\"dates second-date\">\n <kit-svg-icon [icon]=\"kitSvgIcon.CALENDAR\"/>\n <kit-truncate-text>{{ lineItem.dates?.secondDate.label }} \n <span class=\"date\">{{ lineItem.dates?.secondDate.value | date: dateFormat : 'UTC' }}</span>\n </kit-truncate-text>\n </div>\n }\n </div>\n }\n \n @if (category.total > this.displayedLineItemsNumber()) {\n <kit-button [label]=\"'kit.globalSearch.showResults' | translate\"\n [type]=\"kitButtonType.GHOST\"\n [kind]=\"kitButtonKind.SMALL\"\n (clicked)=\"navigate(category.categoryLink)\"/>\n }\n </div>\n }\n }\n } @else if (showPropmts()) {\n <div class=\"prompts\">\n @for (prompt of prompts(); track prompt) {\n @if (userPermissions.includes(prompt.permission)) {\n <kit-pill [theme]=\"kitPillTheme.MAIN\"\n [selectable]=\"true\" \n (clicked)=\"onSelectPrompt(prompt)\">\n {{ prompt.label }}\n </kit-pill>\n }\n }\n </div>\n } @else {\n <kit-empty-section class=\"empty-section\"\n [text]=\"'kit.globalSearch.noData' | translate\"/>\n }\n </div>\n </div>\n }\n </ng-template>\n</div>\n", styles: [":host{position:relative}:host .global-search{max-width:360px}:host .global-search:has(.textbox.expanded){max-width:100%}:host .global-search .textbox{border-color:var(--ui-kit-color-grey-11);box-shadow:none;border-radius:8px}:host .global-search .textbox.k-focus{border-color:var(--ui-kit-color-main)}:host ::ng-deep:has(.textbox.k-focus) .kit-global-search-popup{display:inherit}:host ::ng-deep .k-animation-container{width:100%}:host ::ng-deep .kit-global-search-popup{overflow-y:auto}:host ::ng-deep .global-search .k-textbox.k-input .k-input-inner{padding:11px 8px}:host ::ng-deep .global-search .k-textbox.k-input .kit-svg-icon .search-icon{width:37px;height:37px;fill:none;stroke:var(--ui-kit-color-grey-10);padding-left:12px}:host ::ng-deep .global-search .k-textbox.k-input .kit-svg-icon .circle-cross-thin-icon{width:30px;height:30px;fill:none;stroke:var(--ui-kit-color-grey-12);padding-right:12px;cursor:pointer}:host ::ng-deep .search-results .category:not(:last-child){margin-bottom:20px}:host ::ng-deep .search-results .category .header{display:flex;align-items:center;margin:0 0 20px}:host ::ng-deep .search-results .category .header .icon.check-sticker-icon{width:16px;height:16px;fill:var(--ui-kit-color-main);margin-right:10px}:host ::ng-deep .search-results .category .header .title{color:var(--ui-kit-color-main)}:host ::ng-deep .search-results .category .header.empty{margin:0}:host ::ng-deep .search-results .category .header.empty .icon.check-sticker-icon{fill:var(--ui-kit-color-grey-12)}:host ::ng-deep .search-results .category .header.empty .title{color:var(--ui-kit-color-grey-12)}:host ::ng-deep .search-results .category .line-item{display:grid;grid-template-columns:minmax(50px,190px) minmax(50px,190px) minmax(200px,300px) minmax(65px,130px) minmax(65px,130px);justify-content:space-between;gap:20px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--ui-kit-color-grey-11)}:host ::ng-deep .search-results .category .line-item.has-link{cursor:pointer}:host ::ng-deep .search-results .category .line-item.has-link:hover{opacity:.7}:host ::ng-deep .search-results .category .line-item .title{font-size:16px;line-height:22px;font-weight:500}:host ::ng-deep .search-results .category .line-item .title,:host ::ng-deep .search-results .category .line-item .subtitle{color:var(--ui-kit-color-grey-10)}:host ::ng-deep .search-results .category .line-item .icon.calendar-icon{width:18px;height:18px;fill:var(--ui-kit-color-grey-12);margin-right:3px}:host ::ng-deep .search-results .category .line-item .dates{display:flex;align-items:center;font-size:12px;line-height:14px}:host ::ng-deep .search-results .category .line-item .dates .date{font-size:14px;line-height:20px;font-weight:500}:host ::ng-deep .search-results .category .line-item .dates.first-date{color:var(--ui-kit-color-grey-14)}:host ::ng-deep .search-results .category .line-item .dates.second-date{color:var(--ui-kit-color-grey-10)}:host ::ng-deep .search-results .prompts{display:flex;gap:10px}:host ::ng-deep .empty-section{container:none}\n"] }]
6711
+ }], ctorParameters: () => [{ type: i1$7.Router }, { type: i1$d.Store }], propDecorators: { documentClick: [{
6634
6712
  type: HostListener,
6635
6713
  args: ['document:click', ['$event']]
6636
6714
  }] } });
6637
6715
 
6638
- class FetchUserPermissions {
6639
- static { this.type = '[User] FetchPermissions'; }
6640
- }
6641
-
6642
- const KIT_BASE_PATH = new InjectionToken('kitBasePath');
6643
-
6644
- class KitPermissionsApiService {
6645
- constructor(httpClient, basePath) {
6646
- this.httpClient = httpClient;
6647
- this.basePath = basePath;
6648
- }
6649
- getUserPermissions() {
6650
- const url = `${this.basePath}/user/permissions`;
6651
- return this.httpClient.get(url);
6652
- }
6653
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: KitPermissionsApiService, deps: [{ token: i1$c.HttpClient }, { token: KIT_BASE_PATH }], target: i0.ɵɵFactoryTarget.Injectable }); }
6654
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: KitPermissionsApiService, providedIn: 'root' }); }
6655
- }
6656
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: KitPermissionsApiService, decorators: [{
6657
- type: Injectable,
6658
- args: [{
6659
- providedIn: 'root',
6660
- }]
6661
- }], ctorParameters: () => [{ type: i1$c.HttpClient }, { type: undefined, decorators: [{
6662
- type: Inject,
6663
- args: [KIT_BASE_PATH]
6664
- }] }] });
6665
-
6666
- const KIT_USER_PERMISSIONS_STATE_TOKEN = new StateToken('userPermissions');
6667
- let KitUserPermissionsState = class KitUserPermissionsState {
6668
- constructor(kitPermissionsApiService) {
6669
- this.kitPermissionsApiService = kitPermissionsApiService;
6670
- }
6671
- fetchUserPermissions(ctx) {
6672
- return this.kitPermissionsApiService.getUserPermissions().pipe(tap(userPermissions => ctx.setState(userPermissions)));
6673
- }
6674
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: KitUserPermissionsState, deps: [{ token: KitPermissionsApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
6675
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: KitUserPermissionsState }); }
6676
- };
6677
- __decorate([
6678
- Action(FetchUserPermissions)
6679
- ], KitUserPermissionsState.prototype, "fetchUserPermissions", null);
6680
- KitUserPermissionsState = __decorate([
6681
- State({
6682
- name: KIT_USER_PERMISSIONS_STATE_TOKEN,
6683
- })
6684
- ], KitUserPermissionsState);
6685
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: KitUserPermissionsState, decorators: [{
6686
- type: Injectable
6687
- }], ctorParameters: () => [{ type: KitPermissionsApiService }], propDecorators: { fetchUserPermissions: [] } });
6688
-
6689
6716
  const mapGlobalSearchResult = (store, requiredPermission, dataFetcher, categoryName, categoryLink, itemMapper) => {
6690
6717
  return store.select(KIT_USER_PERMISSIONS_STATE_TOKEN).pipe(map(state => state.permissions), tap(permissions => {
6691
6718
  if (!permissions) {
@@ -6829,7 +6856,7 @@ const kitTranslations = {
6829
6856
  },
6830
6857
  globalSearch: {
6831
6858
  placeholder: 'Global Search',
6832
- showMore: 'Show More',
6859
+ showResults: 'Show Results',
6833
6860
  noData: 'No data found',
6834
6861
  },
6835
6862
  columns: {