@indigina/ui-kit 1.1.156 → 1.1.158

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.
@@ -23,7 +23,7 @@ import * as i1$6 from 'ngx-toastr';
23
23
  import { ToastrModule, TOAST_CONFIG, DefaultGlobalConfig } 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, of, tap, map, combineLatest, combineLatestWith, distinctUntilChanged, debounceTime, switchMap } from 'rxjs';
26
+ import { BehaviorSubject, filter, Subject, startWith, pairwise, takeUntil, of, tap, map, debounceTime, switchMap } 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';
@@ -6770,7 +6770,7 @@ class KitGridUrlStateService {
6770
6770
  take: params?.take && Number(params.take),
6771
6771
  sort: params?.sort && JSON.parse(params.sort),
6772
6772
  filter: params?.filter && JSON.parse(params.filter),
6773
- search: params?.search && JSON.parse(params.search),
6773
+ search: params?.search,
6774
6774
  columns: [],
6775
6775
  };
6776
6776
  }
@@ -6786,6 +6786,7 @@ class KitGridUrlStateService {
6786
6786
  relativeTo: this.activatedRoute,
6787
6787
  queryParams,
6788
6788
  queryParamsHandling: 'merge',
6789
+ replaceUrl: true,
6789
6790
  });
6790
6791
  }
6791
6792
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: KitGridUrlStateService, deps: [{ token: i1$7.ActivatedRoute }, { token: i1$7.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -6806,9 +6807,13 @@ const filterDuplicateGridViews = (views) => views.filter((item, index, arr) => {
6806
6807
  const duplicateItems = arr.filter(i => i.title === item.title);
6807
6808
  return duplicateItems.length <= 1 || item.type !== KitGridViewType.SYSTEM;
6808
6809
  });
6809
- const findGridViewByName = (views, name) => views.find(view => view.title === name && view.type === KitGridViewType.USER && !view.hidden) ??
6810
- views.find(view => view.title === name && !view.hidden) ??
6811
- null;
6810
+ const findGridViewByName = (views, name, type) => {
6811
+ const matches = views.filter(view => view.title === name && !view.hidden);
6812
+ if (type) {
6813
+ return matches.find(view => view.type === type) ?? matches[0] ?? null;
6814
+ }
6815
+ return matches.find(view => view.type === KitGridViewType.USER) ?? matches[0] ?? null;
6816
+ };
6812
6817
  const buildGridViewColumns = (columns) => columns.map(column => ({
6813
6818
  field: column.field,
6814
6819
  hidden: column.hidden,
@@ -7143,6 +7148,7 @@ class KitGridViewsSaveComponent {
7143
7148
  this.viewGroup = input.required();
7144
7149
  this.views = input.required();
7145
7150
  this.viewsAutocompleteItems = input.required();
7151
+ this.resetQueryParams = output();
7146
7152
  this.anchor = viewChild.required('toggleButton', { read: ElementRef });
7147
7153
  this.popup = viewChild('popup', { read: KitPopupComponent });
7148
7154
  this.viewName = signal('');
@@ -7195,6 +7201,7 @@ class KitGridViewsSaveComponent {
7195
7201
  this.store.dispatch(new AddGridView(view)).subscribe(() => {
7196
7202
  this.hasUnsavedChanges.set(false);
7197
7203
  const path = kitEncodeViewNameToUrl(this.viewName().toLowerCase());
7204
+ this.resetQueryParams.emit();
7198
7205
  return this.router.navigate([`../${path}`], { relativeTo: this.activatedRoute }).then(() => {
7199
7206
  this.viewName.set('');
7200
7207
  this.popup()?.close();
@@ -7209,7 +7216,7 @@ class KitGridViewsSaveComponent {
7209
7216
  this.viewName.set(value);
7210
7217
  }
7211
7218
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: KitGridViewsSaveComponent, deps: [{ token: i1$d.Store }, { token: i1$7.Router }, { token: i1$7.ActivatedRoute }, { token: i1$a.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
7212
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.1.4", type: KitGridViewsSaveComponent, isStandalone: true, selector: "kit-grid-views-save", inputs: { viewGroup: { classPropertyName: "viewGroup", publicName: "viewGroup", isSignal: true, isRequired: true, transformFunction: null }, views: { classPropertyName: "views", publicName: "views", isSignal: true, isRequired: true, transformFunction: null }, viewsAutocompleteItems: { classPropertyName: "viewsAutocompleteItems", publicName: "viewsAutocompleteItems", isSignal: true, isRequired: true, transformFunction: null } }, viewQueries: [{ propertyName: "anchor", first: true, predicate: ["toggleButton"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "popup", first: true, predicate: ["popup"], descendants: true, read: KitPopupComponent, isSignal: true }], ngImport: i0, template: "<kit-button #toggleButton\n kitTooltip\n class=\"grid-views-save-btn\"\n kitTooltipFilter=\".grid-views-save-btn\"\n [kitTooltipPosition]=\"kitTooltipPosition.TOP\"\n [title]=\"hasUnsavedChanges() ? '' : ('kit.views.noUnsavedChanges' | translate)\"\n [label]=\"'kit.views.save' | translate\"\n [active]=\"popup.isPopupOpen\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [icon]=\"kitSvgIcon.DISKETTE\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"\n [disabled]=\"!hasUnsavedChanges()\"\n (clicked)=\"onPopupToggle()\"\n></kit-button>\n\n<kit-popup #popup\n popupClass=\"grid-views-save\"\n [anchor]=\"anchor()\"\n [content]=\"content\"\n [showFooter]=\"true\"\n [applyButtonLabel]=\"'kit.views.save' | translate\"\n [cancelButtonLabel]=\"'kit.views.cancel' | translate\"\n [isApplyButtonDisabled]=\"!viewName() || !isViewNameValid\"\n (onApply)=\"onViewSave()\">\n</kit-popup>\n\n<ng-template #content>\n <kit-autocomplete [placeholder]=\"'kit.views.enterText' | translate\"\n [allowCustom]=\"true\"\n [items]=\"viewsAutocompleteItems() ?? []\"\n [closePopupIfDataNotFound]=\"true\"\n [invalid]=\"!isViewNameValid\"\n [messageText]=\"inputMessage\"\n (filterChanged)=\"onValueChange($event)\"\n (valueChanged)=\"viewName.set($event)\"\n (selectionChanged)=\"onValueChange($event)\"\n ></kit-autocomplete>\n</ng-template>\n", styles: ["::ng-deep .grid-views-save{display:flex;flex-direction:column;width:344px}::ng-deep .grid-views-save .k-popup .footer{margin-top:30px;padding-top:30px}\n"], dependencies: [{ 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: KitPopupComponent, selector: "kit-popup", inputs: ["anchor", "content", "closeOnOutsideClick", "showFooter", "cancelButtonLabel", "applyButtonLabel", "isApplyButtonDisabled", "positionMode", "popupClass", "closePopupOnCancel"], outputs: ["onCancel", "onApply", "onOpen", "onClose"] }, { kind: "ngmodule", type: KitAutocompleteModule }, { kind: "component", type: KitAutocompleteComponent, selector: "kit-autocomplete", inputs: ["label", "placeholder", "items", "selectedValue", "disabled", "loaderVisible", "messageIcon", "messageText", "invalid", "allowCustom", "closePopupIfDataNotFound"], outputs: ["filterChanged", "valueChanged", "selectionChanged", "blured", "focused"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$a.TranslatePipe, name: "translate" }, { kind: "directive", type: KitTooltipDirective, selector: "[kitTooltip]", inputs: ["kitTooltipPosition", "kitTooltipFilter", "kitTooltipTemplateRef", "kitTooltipVisible"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7219
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.1.4", type: KitGridViewsSaveComponent, isStandalone: true, selector: "kit-grid-views-save", inputs: { viewGroup: { classPropertyName: "viewGroup", publicName: "viewGroup", isSignal: true, isRequired: true, transformFunction: null }, views: { classPropertyName: "views", publicName: "views", isSignal: true, isRequired: true, transformFunction: null }, viewsAutocompleteItems: { classPropertyName: "viewsAutocompleteItems", publicName: "viewsAutocompleteItems", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { resetQueryParams: "resetQueryParams" }, viewQueries: [{ propertyName: "anchor", first: true, predicate: ["toggleButton"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "popup", first: true, predicate: ["popup"], descendants: true, read: KitPopupComponent, isSignal: true }], ngImport: i0, template: "<kit-button #toggleButton\n kitTooltip\n class=\"grid-views-save-btn\"\n kitTooltipFilter=\".grid-views-save-btn\"\n [kitTooltipPosition]=\"kitTooltipPosition.TOP\"\n [title]=\"hasUnsavedChanges() ? '' : ('kit.views.noUnsavedChanges' | translate)\"\n [label]=\"'kit.views.save' | translate\"\n [active]=\"popup.isPopupOpen\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [icon]=\"kitSvgIcon.DISKETTE\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"\n [disabled]=\"!hasUnsavedChanges()\"\n (clicked)=\"onPopupToggle()\"\n></kit-button>\n\n<kit-popup #popup\n popupClass=\"grid-views-save\"\n [anchor]=\"anchor()\"\n [content]=\"content\"\n [showFooter]=\"true\"\n [applyButtonLabel]=\"'kit.views.save' | translate\"\n [cancelButtonLabel]=\"'kit.views.cancel' | translate\"\n [isApplyButtonDisabled]=\"!viewName() || !isViewNameValid\"\n (onApply)=\"onViewSave()\">\n</kit-popup>\n\n<ng-template #content>\n <kit-autocomplete [placeholder]=\"'kit.views.enterText' | translate\"\n [allowCustom]=\"true\"\n [items]=\"viewsAutocompleteItems() ?? []\"\n [closePopupIfDataNotFound]=\"true\"\n [invalid]=\"!isViewNameValid\"\n [messageText]=\"inputMessage\"\n (filterChanged)=\"onValueChange($event)\"\n (valueChanged)=\"viewName.set($event)\"\n (selectionChanged)=\"onValueChange($event)\"\n ></kit-autocomplete>\n</ng-template>\n", styles: ["::ng-deep .grid-views-save{display:flex;flex-direction:column;width:344px}::ng-deep .grid-views-save .k-popup .footer{margin-top:30px;padding-top:30px}\n"], dependencies: [{ 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: KitPopupComponent, selector: "kit-popup", inputs: ["anchor", "content", "closeOnOutsideClick", "showFooter", "cancelButtonLabel", "applyButtonLabel", "isApplyButtonDisabled", "positionMode", "popupClass", "closePopupOnCancel"], outputs: ["onCancel", "onApply", "onOpen", "onClose"] }, { kind: "ngmodule", type: KitAutocompleteModule }, { kind: "component", type: KitAutocompleteComponent, selector: "kit-autocomplete", inputs: ["label", "placeholder", "items", "selectedValue", "disabled", "loaderVisible", "messageIcon", "messageText", "invalid", "allowCustom", "closePopupIfDataNotFound"], outputs: ["filterChanged", "valueChanged", "selectionChanged", "blured", "focused"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$a.TranslatePipe, name: "translate" }, { kind: "directive", type: KitTooltipDirective, selector: "[kitTooltip]", inputs: ["kitTooltipPosition", "kitTooltipFilter", "kitTooltipTemplateRef", "kitTooltipVisible"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7213
7220
  }
7214
7221
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: KitGridViewsSaveComponent, decorators: [{
7215
7222
  type: Component,
@@ -7317,10 +7324,6 @@ class KitGridViewsComponent {
7317
7324
  this.collapsedList = viewChild((KitCollapsedListComponent));
7318
7325
  this.createNewViewPopup = viewChild('popup', { read: KitPopupComponent });
7319
7326
  this.createNewViewName = signal('');
7320
- this.currentViewName$ = combineLatest([
7321
- this.activatedRoute.params.pipe(map(params => params['view'] && decodeViewNameFromUrl(params['view']))),
7322
- this.activatedRoute.data.pipe(map(data => data['view'])),
7323
- ]).pipe(map(([viewParam, viewData,]) => viewParam ?? viewData));
7324
7327
  this.viewsState$ = this.store.select(KIT_GRID_VIEWS_STATE_TOKEN);
7325
7328
  this.views$ = this.store.select(KitGridViewsState.getViews());
7326
7329
  this.views = this.store.selectSignal(KitGridViewsState.getViews());
@@ -7338,21 +7341,17 @@ class KitGridViewsComponent {
7338
7341
  this.kitTextboxState = KitTextboxState;
7339
7342
  this.selectedView = this.store.selectSignal(KitGridViewsState.selectedView);
7340
7343
  this.collapsedListDropdownText = signal(this.translateService.instant('kit.views.newView'));
7344
+ this.skipQueryParamsUpdate = signal(false);
7345
+ this.needToResetQueryParams = signal(false);
7341
7346
  effect(() => {
7342
7347
  this.collapsedListDropdownText.set(this.translateService.instant(this.collapsedList()?.dropdownItems().length ? 'kit.views.moreViews' : 'kit.views.newView'));
7343
7348
  });
7344
7349
  }
7345
7350
  ngOnInit() {
7346
7351
  this.fetchViews();
7347
- this.handleViewOnRouteChange();
7348
- this.store.select(KitGridViewsState.selectedView).pipe(filter(Boolean), takeUntilDestroyed(this.destroyRef)).subscribe(view => {
7349
- const item = this.collapsedListItems().find(item => item.value === this.getCollapsedListItem(view).value);
7350
- item && this.collapsedList()?.setSelectedItem(item);
7351
- this.updateGridState(view);
7352
- });
7353
- this.views$.subscribe((views) => {
7354
- this.collapsedListItems.set(views.filter(view => !view.hidden).map(view => this.getCollapsedListItem(view)));
7355
- });
7352
+ this.handleViewsOnRouteChange();
7353
+ this.handelCollapsedListItems();
7354
+ this.handleSelectedView();
7356
7355
  }
7357
7356
  ngOnDestroy() {
7358
7357
  this.store.dispatch(new StateReset(KitGridViewsState));
@@ -7365,7 +7364,8 @@ class KitGridViewsComponent {
7365
7364
  return messageKey && this.translateService.instant(messageKey) || '';
7366
7365
  }
7367
7366
  onSelectView(selectedView) {
7368
- this.navigateToView(selectedView.title).then(() => this.store.dispatch(new SetSelectedView(selectedView)));
7367
+ this.resetQueryParams();
7368
+ this.navigateToView(selectedView.title, selectedView.type);
7369
7369
  }
7370
7370
  openViewsManagerModal() {
7371
7371
  this.kitDialogService.openDialog({
@@ -7377,13 +7377,14 @@ class KitGridViewsComponent {
7377
7377
  signalSetFn(this.kitDialogService.dialogInstance.configGroup[SIGNAL], this.viewConfigGroup());
7378
7378
  this.kitDialogService.dialogRef?.result.pipe(filter(result => !(result instanceof DialogCloseResult))).subscribe(() => {
7379
7379
  const views = this.store.selectSnapshot(KitGridViewsState.getViews());
7380
- const view = findGridViewByName(views, this.selectedView()?.title ?? '');
7380
+ const view = findGridViewByName(views, this.selectedView()?.title ?? '', this.selectedView()?.type);
7381
7381
  if (view) {
7382
7382
  this.store.dispatch(new SetSelectedView(view));
7383
7383
  }
7384
7384
  else {
7385
7385
  const defaultView = findGridViewByName(views, this.defaultViewName());
7386
- this.navigateToView(this.defaultViewName()).then(() => {
7386
+ this.resetQueryParams();
7387
+ this.navigateToView(this.defaultViewName(), this.selectedView()?.type).then(() => {
7387
7388
  defaultView && this.store.dispatch(new SetSelectedView(defaultView));
7388
7389
  });
7389
7390
  }
@@ -7401,6 +7402,7 @@ class KitGridViewsComponent {
7401
7402
  },
7402
7403
  };
7403
7404
  this.store.dispatch(new AddGridView(view)).subscribe(() => {
7405
+ this.resetQueryParams();
7404
7406
  this.navigateToView(this.createNewViewName()).then(() => {
7405
7407
  this.createNewViewName.set('');
7406
7408
  this.createNewViewPopup()?.close();
@@ -7413,6 +7415,9 @@ class KitGridViewsComponent {
7413
7415
  this.collapsedList()?.kitDropdownComponent()?.dropdown?.toggle();
7414
7416
  requestAnimationFrame(() => this.createNewViewPopup()?.toggle());
7415
7417
  }
7418
+ resetQueryParams() {
7419
+ this.needToResetQueryParams.set(true);
7420
+ }
7416
7421
  fetchViews() {
7417
7422
  this.store.dispatch([
7418
7423
  new FetchGridViews({
@@ -7420,35 +7425,69 @@ class KitGridViewsComponent {
7420
7425
  defaultItems: this.systemViews(),
7421
7426
  }),
7422
7427
  new FetchGridViewsConfig(this.viewConfigGroup()),
7423
- ]);
7428
+ ]).subscribe(() => {
7429
+ this.resetQueryParams();
7430
+ const views = this.store.selectSnapshot(KitGridViewsState.getViews());
7431
+ const viewName = this.activatedRoute.snapshot.params['view'] ?? this.activatedRoute.snapshot.data['view'];
7432
+ this.handleViewChange(viewName, views);
7433
+ });
7424
7434
  }
7425
- handleViewOnRouteChange() {
7426
- this.currentViewName$.pipe(combineLatestWith(this.views$), filter(([_, views,]) => !!views.length), distinctUntilChanged(([prevViewName], [currViewName]) => prevViewName === currViewName), takeUntilDestroyed(this.destroyRef)).subscribe(([viewName, views,]) => this.handleViewChange(viewName, views));
7435
+ handleViewsOnRouteChange() {
7436
+ this.router.events.pipe(filter(event => event instanceof NavigationEnd), takeUntilDestroyed(this.destroyRef)).subscribe(() => {
7437
+ if (this.skipQueryParamsUpdate()) {
7438
+ this.skipQueryParamsUpdate.set(false);
7439
+ return;
7440
+ }
7441
+ const views = this.store.selectSnapshot(KitGridViewsState.getViews());
7442
+ const viewName = decodeViewNameFromUrl(this.activatedRoute.snapshot.params['view'])
7443
+ ?? this.activatedRoute.snapshot.data['view'];
7444
+ this.handleViewChange(viewName, views);
7445
+ });
7446
+ }
7447
+ handelCollapsedListItems() {
7448
+ this.views$.subscribe((views) => {
7449
+ this.collapsedListItems.set(views.filter(view => !view.hidden).map(view => this.getCollapsedListItem(view)));
7450
+ });
7451
+ }
7452
+ handleSelectedView() {
7453
+ this.store.select(KitGridViewsState.selectedView).pipe(filter(Boolean), takeUntilDestroyed(this.destroyRef)).subscribe(view => {
7454
+ const item = this.collapsedListItems().find(item => item.value === this.getCollapsedListItem(view).value);
7455
+ item && this.collapsedList()?.setSelectedItem(item);
7456
+ });
7427
7457
  }
7428
7458
  handleViewChange(viewName, views) {
7429
7459
  if (viewName !== viewName.toLowerCase()) {
7430
- this.navigateToView(viewName);
7460
+ this.navigateToView(viewName, this.selectedView()?.type);
7431
7461
  return;
7432
7462
  }
7433
- const currentView = findGridViewByName(views, viewName);
7463
+ const queryType = this.activatedRoute.snapshot.queryParams['type'];
7464
+ const preferredType = queryType ?? KitGridViewType.USER;
7465
+ const currentView = findGridViewByName(views, decodeViewNameFromUrl(viewName), preferredType);
7434
7466
  if (!currentView) {
7435
- this.navigateToView(this.defaultViewName());
7467
+ this.navigateToView(this.defaultViewName(), this.selectedView()?.type);
7436
7468
  return;
7437
7469
  }
7438
- if (!this.store.selectSnapshot(KitGridViewsState.selectedView)) {
7439
- this.store.dispatch(new SetSelectedView(currentView));
7440
- }
7470
+ this.store.dispatch(new SetSelectedView(currentView)).subscribe(() => {
7471
+ this.updateGridState(currentView);
7472
+ });
7441
7473
  }
7442
7474
  updateGridState(view) {
7443
7475
  const urlState = this.kitGridUrlStateService.getGridStateFromUrl();
7476
+ const state = this.buildGridDataState(view, urlState);
7444
7477
  this.store.dispatch([
7445
- new SetGridSort(urlState.sort ?? view?.viewState?.sort ?? this.defaultSorting()),
7446
- new SetGridFilters(convertFilterStringDate(urlState.filter ?? view?.viewState?.filter ?? [])),
7447
- new SetGridColumns(buildGridColumns(this.defaultColumns(), view?.viewState?.columns ?? this.defaultColumns())),
7448
- new SetGridSkip(urlState.skip ?? 0),
7449
- new SetGridTake(urlState.take ?? 10),
7450
- new SetGridSearch(urlState.search),
7451
- ]).subscribe(() => this.viewChanged.emit());
7478
+ new SetGridSort(state.sort),
7479
+ new SetGridFilters(state.filter),
7480
+ new SetGridColumns(state.columns),
7481
+ new SetGridSkip(state.skip),
7482
+ new SetGridTake(state.take),
7483
+ new SetGridSearch(state.search),
7484
+ ]).subscribe(() => {
7485
+ if (urlState?.skip === undefined) {
7486
+ this.skipQueryParamsUpdate.set(true);
7487
+ this.kitGridUrlStateService.setGridStateToUrl(this.store.selectSnapshot(KIT_GRID_STATE_TOKEN));
7488
+ }
7489
+ this.viewChanged.emit();
7490
+ });
7452
7491
  }
7453
7492
  getCollapsedListItem(view) {
7454
7493
  return {
@@ -7457,16 +7496,41 @@ class KitGridViewsComponent {
7457
7496
  value: `${view.title}_${view.group}_${view.type}`,
7458
7497
  };
7459
7498
  }
7460
- navigateToView(viewName) {
7499
+ navigateToView(viewName, type = KitGridViewType.USER) {
7461
7500
  const routePath = kitEncodeViewNameToUrl(viewName.toLowerCase());
7462
- return this.router.navigate([`../${routePath}`], { relativeTo: this.activatedRoute });
7501
+ return this.router.navigate([`../${routePath}`], {
7502
+ relativeTo: this.activatedRoute,
7503
+ queryParams: { type },
7504
+ });
7463
7505
  }
7464
7506
  ;
7507
+ buildGridDataState(view, urlState) {
7508
+ const viewState = view.viewState ?? {};
7509
+ const reset = this.needToResetQueryParams();
7510
+ const defaults = {
7511
+ skip: 0,
7512
+ take: 10,
7513
+ sort: this.defaultSorting(),
7514
+ filter: [],
7515
+ columns: this.defaultColumns(),
7516
+ };
7517
+ const skip = urlState.skip ?? defaults.skip;
7518
+ const take = urlState.take ?? defaults.take;
7519
+ const sort = reset ? viewState.sort ?? defaults.sort : urlState.sort ?? defaults.sort;
7520
+ const filterSource = reset ? viewState.filter : urlState.filter ?? null;
7521
+ const filter = convertFilterStringDate(filterSource ?? []);
7522
+ const columns = buildGridColumns(defaults.columns, viewState.columns ?? defaults.columns);
7523
+ const search = urlState.search ?? undefined;
7524
+ if (reset) {
7525
+ this.needToResetQueryParams.set(false);
7526
+ }
7527
+ return { skip, take, sort, filter, columns, search };
7528
+ }
7465
7529
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: KitGridViewsComponent, deps: [{ token: i1$d.Store }, { token: i1$7.ActivatedRoute }, { token: i1$7.Router }, { token: i0.DestroyRef }, { token: i1$1.TitleCasePipe }, { token: KitDialogService }, { token: i1$a.TranslateService }, { token: i0.ViewContainerRef }, { token: KitGridUrlStateService }], target: i0.ɵɵFactoryTarget.Component }); }
7466
7530
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.4", type: KitGridViewsComponent, isStandalone: true, selector: "kit-grid-views", inputs: { viewGroup: { classPropertyName: "viewGroup", publicName: "viewGroup", isSignal: true, isRequired: true, transformFunction: null }, viewConfigGroup: { classPropertyName: "viewConfigGroup", publicName: "viewConfigGroup", isSignal: true, isRequired: true, transformFunction: null }, defaultColumns: { classPropertyName: "defaultColumns", publicName: "defaultColumns", isSignal: true, isRequired: true, transformFunction: null }, defaultViewName: { classPropertyName: "defaultViewName", publicName: "defaultViewName", isSignal: true, isRequired: true, transformFunction: null }, defaultSorting: { classPropertyName: "defaultSorting", publicName: "defaultSorting", isSignal: true, isRequired: true, transformFunction: null }, systemViews: { classPropertyName: "systemViews", publicName: "systemViews", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { viewChanged: "viewChanged" }, providers: [
7467
7531
  TitleCasePipe,
7468
7532
  KitGridUrlStateService,
7469
- ], viewQueries: [{ propertyName: "collapsedList", first: true, predicate: (KitCollapsedListComponent), descendants: true, isSignal: true }, { propertyName: "createNewViewPopup", first: true, predicate: ["popup"], descendants: true, read: KitPopupComponent, isSignal: true }], ngImport: i0, template: "<div class=\"kit-grid-views\">\n @if (viewsState$ | async; as viewsState) {\n @if (!viewsState.loading) {\n @if (views$ | async; as views) {\n <div class=\"views-list\">\n <kit-collapsed-list #toggleButton\n [itemList]=\"collapsedListItems()\"\n [dropdownDefaultValueText]=\"collapsedListDropdownText()\"\n [lineHeight]=\"32\"\n [itemTemplate]=\"collapsedListItem\"\n [dropdownFooterTemplate]=\"dropdownFooter\"\n [dropdownItemTemplate]=\"dropdownItem\"\n [alwaysShowDropdown]=\"true\"\n (onSelectItem)=\"onSelectView($event)\"/>\n </div>\n\n <kit-grid-views-save [viewGroup]=\"viewGroup()\"\n [views]=\"views\"\n [viewsAutocompleteItems]=\"viewsAutocompleteItems$ | async\"\n ></kit-grid-views-save>\n }\n } @else {\n <kit-skeleton [width]=\"200\"\n [height]=\"32\"\n ></kit-skeleton>\n }\n }\n</div>\n\n<ng-template #collapsedListItem let-item>\n <kit-button class=\"views-item\"\n [ngClass]=\"item.type\"\n [active]=\"item.title === selectedView()?.title && item.type === selectedView()?.type\"\n [label]=\"item.title | titlecase\"\n [type]=\"kitButtonType.GHOST\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [icon]=\"item.type === gridViewType.SYSTEM && kitSvgIcon.GLOBAL || kitSvgIcon.USER\"\n [iconType]=\"item.type === gridViewType.SYSTEM && kitSvgIconType.STROKE || kitSvgIconType.FILL\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"/>\n</ng-template>\n\n<ng-template #dropdownFooter>\n <div class=\"dropdown-footer\">\n <kit-button [label]=\"'kit.views.newView' | translate\"\n [type]=\"kitButtonType.TEXT\"\n [kind]=\"kitButtonKind.SMALL\"\n [icon]=\"kitSvgIcon.PLUS\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"\n (clicked)=\"onPopupToggle()\"/>\n <kit-button [label]=\"'kit.views.manageViews' | translate\"\n [type]=\"kitButtonType.TEXT\"\n [kind]=\"kitButtonKind.SMALL\"\n [icon]=\"kitSvgIcon.PLUS\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"\n [disabled]=\"views().length < 2\"\n (clicked)=\"openViewsManagerModal()\"/>\n </div>\n</ng-template>\n\n<kit-popup #popup\n popupClass=\"kit-grid-new-view-popup\"\n [anchor]=\"$any(collapsedList()?.dropdown())\"\n [content]=\"content\">\n</kit-popup>\n\n<ng-template #content>\n <div class=\"new-view\">\n <kit-textbox [defaultValue]=\"createNewViewName()\"\n [placeholder]=\"'kit.views.enterText' | translate\"\n [state]=\"isViewNameValid && kitTextboxState.DEFAULT || kitTextboxState.ERROR\"\n [messageText]=\"inputMessage\"\n (changed)=\"createNewViewName.set($event)\"\n ></kit-textbox>\n <div class=\"new-view-action\">\n <kit-button [label]=\"'kit.views.cancel' | translate\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [type]=\"kitButtonType.GHOST\"\n (clicked)=\"createNewViewPopup()?.close()\"\n ></kit-button>\n <kit-button [label]=\"'kit.views.save' | translate\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [disabled]=\"!createNewViewName() || !isViewNameValid\"\n (clicked)=\"onViewCreate()\"\n ></kit-button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #dropdownItem let-dataItem>\n <div class=\"views-item\"\n [ngClass]=\"dataItem.type\"\n [class.active]=\"dataItem.title === selectedView()?.title && dataItem.type === selectedView()?.type\">\n <kit-svg-icon class=\"view-icon\"\n [icon]=\"dataItem.type === gridViewType.SYSTEM && kitSvgIcon.GLOBAL || kitSvgIcon.USER\"\n ></kit-svg-icon>\n <div class=\"item-name\">{{ dataItem.title | titlecase }}</div>\n <kit-svg-icon class=\"check-icon\"\n [icon]=\"kitSvgIcon.CHECK\"\n ></kit-svg-icon>\n </div>\n</ng-template>\n", styles: [".kit-grid-views{display:flex}.kit-grid-views .views-list{width:100%;min-width:0;margin-right:16px}::ng-deep .views-list .views-item.system .k-button{color:var(--ui-kit-color-blue)}::ng-deep .views-list .views-item.system .k-button .kit-button-icon{stroke:var(--ui-kit-color-blue);fill:none}::ng-deep .views-list .views-item.system .k-button:hover .kit-button-icon{stroke:var(--ui-kit-color-main)}::ng-deep .views-list .views-item.user .k-button{color:var(--ui-kit-color-grey-10)}::ng-deep .views-list .views-item.user .k-button .kit-button-icon{fill:var(--ui-kit-color-grey-12);stroke:none}::ng-deep .views-list .views-item.user .k-button:hover .kit-button-icon{fill:var(--ui-kit-color-main)}::ng-deep .views-list .views-item:hover .k-button{color:var(--ui-kit-color-main)}::ng-deep .views-list .views-item .k-button.active{color:var(--ui-kit-color-main)}::ng-deep .views-list .collapsed-list-dropdown .dropdown .k-input-inner{padding:0 16px}::ng-deep .views-list .collapsed-list-dropdown .dropdown .k-input-inner .value-icon{margin-left:5px}::ng-deep .kit-grid-views .views-list .wrapper-inner .collapsed-list-dropdown.selected .k-dropdownlist.dropdown:not(.k-popup){color:var(--ui-kit-color-main);border-color:var(--ui-kit-color-main);background:var(--ui-kit-color-background)}::ng-deep .kit-grid-views .views-list .wrapper-inner .collapsed-list-dropdown.selected .k-dropdownlist.dropdown:not(.k-popup) .k-input-value-text span{color:var(--ui-kit-color-main)}::ng-deep .kit-grid-views .views-list .wrapper-inner .collapsed-list-dropdown.selected .k-dropdownlist.dropdown:not(.k-popup) .k-input-value-text svg{stroke:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup{width:360px;padding:24px}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .k-list-item.k-selected{color:var(--ui-kit-color-main);border:1px solid var(--ui-kit-color-main);background:var(--ui-kit-color-background)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .k-list-item:hover:not(.k-selected){background:var(--ui-kit-color-grey-13)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .k-list-item:hover:not(.k-selected) .views-item{color:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .k-list-item:hover:not(.k-selected) .views-item.user .view-icon{fill:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .k-list-item:hover:not(.k-selected) .views-item.system .view-icon{stroke:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item{width:100%;display:flex;align-items:center;gap:8px;padding:6px 0;font-size:14px;font-weight:400;line-height:20px;border-radius:4px;cursor:pointer}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.system{color:var(--ui-kit-color-blue)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.system .view-icon{stroke:var(--ui-kit-color-blue);fill:none}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.system.active .view-icon{stroke:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.user .view-icon{fill:var(--ui-kit-color-grey-12);stroke:none}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.user.active .view-icon{fill:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.active{color:var(--ui-kit-color-main);border-color:var(--ui-kit-color-main);background:var(--ui-kit-color-background)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.active .check-icon{display:block}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item .item-name{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item .check-icon{display:none;flex-shrink:0;width:14px;height:14px;fill:none;stroke:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item .view-icon{width:16px;height:16px}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .dropdown-footer{display:flex;flex-direction:column;gap:12px;padding-top:12px;margin-top:12px;border-top:1px solid var(--ui-kit-color-grey-11)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup:has(.k-no-data) .k-no-data{display:none}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup:has(.k-no-data) .dropdown-footer{margin-top:0;padding-top:0;border:none}::ng-deep .grid-views-manager-dialog.kit-dialog .k-dialog-content{padding:24px}::ng-deep .kit-popup.kit-grid-new-view-popup{width:360px}::ng-deep .kit-popup.kit-grid-new-view-popup .new-view{display:flex;flex-direction:column;gap:15px}::ng-deep .kit-popup.kit-grid-new-view-popup .new-view-action{display:flex;align-items:center;justify-content:space-between;padding-top:15px;border-top:1px solid var(--ui-kit-color-grey-11)}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: KitSkeletonModule }, { kind: "component", type: KitSkeletonComponent, selector: "kit-skeleton", inputs: ["width", "height", "shape", "animation"] }, { kind: "component", type: KitGridViewsSaveComponent, selector: "kit-grid-views-save", inputs: ["viewGroup", "views", "viewsAutocompleteItems"] }, { kind: "component", type: KitCollapsedListComponent, selector: "kit-collapsed-list", inputs: ["itemList", "lineHeight", "dropdownDefaultValueText", "gap", "disableActions", "itemTemplate", "dropdownFooterTemplate", "dropdownItemTemplate", "dropdownNoDataTemplate", "appendTo", "alwaysShowDropdown"], outputs: ["onSelectItem"] }, { kind: "ngmodule", type: KitSvgIconModule }, { kind: "component", type: KitSvgIconComponent, selector: "kit-svg-icon", inputs: ["icon", "iconClass"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: TitleCasePipe, name: "titlecase" }, { 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: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$a.TranslatePipe, name: "translate" }, { 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: KitTextboxModule }, { kind: "component", type: KitTextboxComponent, selector: "kit-textbox", inputs: ["placeholder", "label", "defaultValue", "messageIcon", "messageText", "disabled", "maxlength", "state", "size", "icon"], outputs: ["blured", "changed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7533
+ ], viewQueries: [{ propertyName: "collapsedList", first: true, predicate: (KitCollapsedListComponent), descendants: true, isSignal: true }, { propertyName: "createNewViewPopup", first: true, predicate: ["popup"], descendants: true, read: KitPopupComponent, isSignal: true }], ngImport: i0, template: "<div class=\"kit-grid-views\">\n @if (viewsState$ | async; as viewsState) {\n @if (!viewsState.loading) {\n @if (views$ | async; as views) {\n <div class=\"views-list\">\n <kit-collapsed-list #toggleButton\n [itemList]=\"collapsedListItems()\"\n [dropdownDefaultValueText]=\"collapsedListDropdownText()\"\n [lineHeight]=\"32\"\n [itemTemplate]=\"collapsedListItem\"\n [dropdownFooterTemplate]=\"dropdownFooter\"\n [dropdownItemTemplate]=\"dropdownItem\"\n [alwaysShowDropdown]=\"true\"\n (onSelectItem)=\"onSelectView($event)\"/>\n </div>\n\n <kit-grid-views-save [viewGroup]=\"viewGroup()\"\n [views]=\"views\"\n [viewsAutocompleteItems]=\"viewsAutocompleteItems$ | async\"\n (resetQueryParams)=\"resetQueryParams()\"\n ></kit-grid-views-save>\n }\n } @else {\n <kit-skeleton [width]=\"200\"\n [height]=\"32\"\n ></kit-skeleton>\n }\n }\n</div>\n\n<ng-template #collapsedListItem let-item>\n <kit-button class=\"views-item\"\n [ngClass]=\"item.type\"\n [active]=\"item.title === selectedView()?.title && item.type === selectedView()?.type\"\n [label]=\"item.title | titlecase\"\n [type]=\"kitButtonType.GHOST\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [icon]=\"item.type === gridViewType.SYSTEM && kitSvgIcon.GLOBAL || kitSvgIcon.USER\"\n [iconType]=\"item.type === gridViewType.SYSTEM && kitSvgIconType.STROKE || kitSvgIconType.FILL\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"/>\n</ng-template>\n\n<ng-template #dropdownFooter>\n <div class=\"dropdown-footer\">\n <kit-button [label]=\"'kit.views.newView' | translate\"\n [type]=\"kitButtonType.TEXT\"\n [kind]=\"kitButtonKind.SMALL\"\n [icon]=\"kitSvgIcon.PLUS\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"\n (clicked)=\"onPopupToggle()\"/>\n <kit-button [label]=\"'kit.views.manageViews' | translate\"\n [type]=\"kitButtonType.TEXT\"\n [kind]=\"kitButtonKind.SMALL\"\n [icon]=\"kitSvgIcon.PLUS\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"\n [disabled]=\"views().length < 2\"\n (clicked)=\"openViewsManagerModal()\"/>\n </div>\n</ng-template>\n\n<kit-popup #popup\n popupClass=\"kit-grid-new-view-popup\"\n [anchor]=\"$any(collapsedList()?.dropdown())\"\n [content]=\"content\">\n</kit-popup>\n\n<ng-template #content>\n <div class=\"new-view\">\n <kit-textbox [defaultValue]=\"createNewViewName()\"\n [placeholder]=\"'kit.views.enterText' | translate\"\n [state]=\"isViewNameValid && kitTextboxState.DEFAULT || kitTextboxState.ERROR\"\n [messageText]=\"inputMessage\"\n (changed)=\"createNewViewName.set($event)\"\n ></kit-textbox>\n <div class=\"new-view-action\">\n <kit-button [label]=\"'kit.views.cancel' | translate\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [type]=\"kitButtonType.GHOST\"\n (clicked)=\"createNewViewPopup()?.close()\"\n ></kit-button>\n <kit-button [label]=\"'kit.views.save' | translate\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [disabled]=\"!createNewViewName() || !isViewNameValid\"\n (clicked)=\"onViewCreate()\"\n ></kit-button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #dropdownItem let-dataItem>\n <div class=\"views-item\"\n [ngClass]=\"dataItem.type\"\n [class.active]=\"dataItem.title === selectedView()?.title && dataItem.type === selectedView()?.type\">\n <kit-svg-icon class=\"view-icon\"\n [icon]=\"dataItem.type === gridViewType.SYSTEM && kitSvgIcon.GLOBAL || kitSvgIcon.USER\"\n ></kit-svg-icon>\n <div class=\"item-name\">{{ dataItem.title | titlecase }}</div>\n <kit-svg-icon class=\"check-icon\"\n [icon]=\"kitSvgIcon.CHECK\"\n ></kit-svg-icon>\n </div>\n</ng-template>\n", styles: [".kit-grid-views{display:flex}.kit-grid-views .views-list{width:100%;min-width:0;margin-right:16px}::ng-deep .views-list .views-item.system .k-button{color:var(--ui-kit-color-blue)}::ng-deep .views-list .views-item.system .k-button .kit-button-icon{stroke:var(--ui-kit-color-blue);fill:none}::ng-deep .views-list .views-item.system .k-button:hover .kit-button-icon{stroke:var(--ui-kit-color-main)}::ng-deep .views-list .views-item.user .k-button{color:var(--ui-kit-color-grey-10)}::ng-deep .views-list .views-item.user .k-button .kit-button-icon{fill:var(--ui-kit-color-grey-12);stroke:none}::ng-deep .views-list .views-item.user .k-button:hover .kit-button-icon{fill:var(--ui-kit-color-main)}::ng-deep .views-list .views-item:hover .k-button{color:var(--ui-kit-color-main)}::ng-deep .views-list .views-item .k-button.active{color:var(--ui-kit-color-main)}::ng-deep .views-list .collapsed-list-dropdown .dropdown .k-input-inner{padding:0 16px}::ng-deep .views-list .collapsed-list-dropdown .dropdown .k-input-inner .value-icon{margin-left:5px}::ng-deep .kit-grid-views .views-list .wrapper-inner .collapsed-list-dropdown.selected .k-dropdownlist.dropdown:not(.k-popup){color:var(--ui-kit-color-main);border-color:var(--ui-kit-color-main);background:var(--ui-kit-color-background)}::ng-deep .kit-grid-views .views-list .wrapper-inner .collapsed-list-dropdown.selected .k-dropdownlist.dropdown:not(.k-popup) .k-input-value-text span{color:var(--ui-kit-color-main)}::ng-deep .kit-grid-views .views-list .wrapper-inner .collapsed-list-dropdown.selected .k-dropdownlist.dropdown:not(.k-popup) .k-input-value-text svg{stroke:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup{width:360px;padding:24px}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .k-list-item.k-selected{color:var(--ui-kit-color-main);border:1px solid var(--ui-kit-color-main);background:var(--ui-kit-color-background)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .k-list-item:hover:not(.k-selected){background:var(--ui-kit-color-grey-13)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .k-list-item:hover:not(.k-selected) .views-item{color:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .k-list-item:hover:not(.k-selected) .views-item.user .view-icon{fill:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .k-list-item:hover:not(.k-selected) .views-item.system .view-icon{stroke:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item{width:100%;display:flex;align-items:center;gap:8px;padding:6px 0;font-size:14px;font-weight:400;line-height:20px;border-radius:4px;cursor:pointer}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.system{color:var(--ui-kit-color-blue)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.system .view-icon{stroke:var(--ui-kit-color-blue);fill:none}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.system.active .view-icon{stroke:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.user .view-icon{fill:var(--ui-kit-color-grey-12);stroke:none}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.user.active .view-icon{fill:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.active{color:var(--ui-kit-color-main);border-color:var(--ui-kit-color-main);background:var(--ui-kit-color-background)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.active .check-icon{display:block}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item .item-name{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item .check-icon{display:none;flex-shrink:0;width:14px;height:14px;fill:none;stroke:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item .view-icon{width:16px;height:16px}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .dropdown-footer{display:flex;flex-direction:column;gap:12px;padding-top:12px;margin-top:12px;border-top:1px solid var(--ui-kit-color-grey-11)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup:has(.k-no-data) .k-no-data{display:none}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup:has(.k-no-data) .dropdown-footer{margin-top:0;padding-top:0;border:none}::ng-deep .grid-views-manager-dialog.kit-dialog .k-dialog-content{padding:24px}::ng-deep .kit-popup.kit-grid-new-view-popup{width:360px}::ng-deep .kit-popup.kit-grid-new-view-popup .new-view{display:flex;flex-direction:column;gap:15px}::ng-deep .kit-popup.kit-grid-new-view-popup .new-view-action{display:flex;align-items:center;justify-content:space-between;padding-top:15px;border-top:1px solid var(--ui-kit-color-grey-11)}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: KitSkeletonModule }, { kind: "component", type: KitSkeletonComponent, selector: "kit-skeleton", inputs: ["width", "height", "shape", "animation"] }, { kind: "component", type: KitGridViewsSaveComponent, selector: "kit-grid-views-save", inputs: ["viewGroup", "views", "viewsAutocompleteItems"], outputs: ["resetQueryParams"] }, { kind: "component", type: KitCollapsedListComponent, selector: "kit-collapsed-list", inputs: ["itemList", "lineHeight", "dropdownDefaultValueText", "gap", "disableActions", "itemTemplate", "dropdownFooterTemplate", "dropdownItemTemplate", "dropdownNoDataTemplate", "appendTo", "alwaysShowDropdown"], outputs: ["onSelectItem"] }, { kind: "ngmodule", type: KitSvgIconModule }, { kind: "component", type: KitSvgIconComponent, selector: "kit-svg-icon", inputs: ["icon", "iconClass"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: TitleCasePipe, name: "titlecase" }, { 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: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$a.TranslatePipe, name: "translate" }, { 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: KitTextboxModule }, { kind: "component", type: KitTextboxComponent, selector: "kit-textbox", inputs: ["placeholder", "label", "defaultValue", "messageIcon", "messageText", "disabled", "maxlength", "state", "size", "icon"], outputs: ["blured", "changed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7470
7534
  }
7471
7535
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: KitGridViewsComponent, decorators: [{
7472
7536
  type: Component,
@@ -7485,7 +7549,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
7485
7549
  ], providers: [
7486
7550
  TitleCasePipe,
7487
7551
  KitGridUrlStateService,
7488
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"kit-grid-views\">\n @if (viewsState$ | async; as viewsState) {\n @if (!viewsState.loading) {\n @if (views$ | async; as views) {\n <div class=\"views-list\">\n <kit-collapsed-list #toggleButton\n [itemList]=\"collapsedListItems()\"\n [dropdownDefaultValueText]=\"collapsedListDropdownText()\"\n [lineHeight]=\"32\"\n [itemTemplate]=\"collapsedListItem\"\n [dropdownFooterTemplate]=\"dropdownFooter\"\n [dropdownItemTemplate]=\"dropdownItem\"\n [alwaysShowDropdown]=\"true\"\n (onSelectItem)=\"onSelectView($event)\"/>\n </div>\n\n <kit-grid-views-save [viewGroup]=\"viewGroup()\"\n [views]=\"views\"\n [viewsAutocompleteItems]=\"viewsAutocompleteItems$ | async\"\n ></kit-grid-views-save>\n }\n } @else {\n <kit-skeleton [width]=\"200\"\n [height]=\"32\"\n ></kit-skeleton>\n }\n }\n</div>\n\n<ng-template #collapsedListItem let-item>\n <kit-button class=\"views-item\"\n [ngClass]=\"item.type\"\n [active]=\"item.title === selectedView()?.title && item.type === selectedView()?.type\"\n [label]=\"item.title | titlecase\"\n [type]=\"kitButtonType.GHOST\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [icon]=\"item.type === gridViewType.SYSTEM && kitSvgIcon.GLOBAL || kitSvgIcon.USER\"\n [iconType]=\"item.type === gridViewType.SYSTEM && kitSvgIconType.STROKE || kitSvgIconType.FILL\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"/>\n</ng-template>\n\n<ng-template #dropdownFooter>\n <div class=\"dropdown-footer\">\n <kit-button [label]=\"'kit.views.newView' | translate\"\n [type]=\"kitButtonType.TEXT\"\n [kind]=\"kitButtonKind.SMALL\"\n [icon]=\"kitSvgIcon.PLUS\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"\n (clicked)=\"onPopupToggle()\"/>\n <kit-button [label]=\"'kit.views.manageViews' | translate\"\n [type]=\"kitButtonType.TEXT\"\n [kind]=\"kitButtonKind.SMALL\"\n [icon]=\"kitSvgIcon.PLUS\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"\n [disabled]=\"views().length < 2\"\n (clicked)=\"openViewsManagerModal()\"/>\n </div>\n</ng-template>\n\n<kit-popup #popup\n popupClass=\"kit-grid-new-view-popup\"\n [anchor]=\"$any(collapsedList()?.dropdown())\"\n [content]=\"content\">\n</kit-popup>\n\n<ng-template #content>\n <div class=\"new-view\">\n <kit-textbox [defaultValue]=\"createNewViewName()\"\n [placeholder]=\"'kit.views.enterText' | translate\"\n [state]=\"isViewNameValid && kitTextboxState.DEFAULT || kitTextboxState.ERROR\"\n [messageText]=\"inputMessage\"\n (changed)=\"createNewViewName.set($event)\"\n ></kit-textbox>\n <div class=\"new-view-action\">\n <kit-button [label]=\"'kit.views.cancel' | translate\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [type]=\"kitButtonType.GHOST\"\n (clicked)=\"createNewViewPopup()?.close()\"\n ></kit-button>\n <kit-button [label]=\"'kit.views.save' | translate\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [disabled]=\"!createNewViewName() || !isViewNameValid\"\n (clicked)=\"onViewCreate()\"\n ></kit-button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #dropdownItem let-dataItem>\n <div class=\"views-item\"\n [ngClass]=\"dataItem.type\"\n [class.active]=\"dataItem.title === selectedView()?.title && dataItem.type === selectedView()?.type\">\n <kit-svg-icon class=\"view-icon\"\n [icon]=\"dataItem.type === gridViewType.SYSTEM && kitSvgIcon.GLOBAL || kitSvgIcon.USER\"\n ></kit-svg-icon>\n <div class=\"item-name\">{{ dataItem.title | titlecase }}</div>\n <kit-svg-icon class=\"check-icon\"\n [icon]=\"kitSvgIcon.CHECK\"\n ></kit-svg-icon>\n </div>\n</ng-template>\n", styles: [".kit-grid-views{display:flex}.kit-grid-views .views-list{width:100%;min-width:0;margin-right:16px}::ng-deep .views-list .views-item.system .k-button{color:var(--ui-kit-color-blue)}::ng-deep .views-list .views-item.system .k-button .kit-button-icon{stroke:var(--ui-kit-color-blue);fill:none}::ng-deep .views-list .views-item.system .k-button:hover .kit-button-icon{stroke:var(--ui-kit-color-main)}::ng-deep .views-list .views-item.user .k-button{color:var(--ui-kit-color-grey-10)}::ng-deep .views-list .views-item.user .k-button .kit-button-icon{fill:var(--ui-kit-color-grey-12);stroke:none}::ng-deep .views-list .views-item.user .k-button:hover .kit-button-icon{fill:var(--ui-kit-color-main)}::ng-deep .views-list .views-item:hover .k-button{color:var(--ui-kit-color-main)}::ng-deep .views-list .views-item .k-button.active{color:var(--ui-kit-color-main)}::ng-deep .views-list .collapsed-list-dropdown .dropdown .k-input-inner{padding:0 16px}::ng-deep .views-list .collapsed-list-dropdown .dropdown .k-input-inner .value-icon{margin-left:5px}::ng-deep .kit-grid-views .views-list .wrapper-inner .collapsed-list-dropdown.selected .k-dropdownlist.dropdown:not(.k-popup){color:var(--ui-kit-color-main);border-color:var(--ui-kit-color-main);background:var(--ui-kit-color-background)}::ng-deep .kit-grid-views .views-list .wrapper-inner .collapsed-list-dropdown.selected .k-dropdownlist.dropdown:not(.k-popup) .k-input-value-text span{color:var(--ui-kit-color-main)}::ng-deep .kit-grid-views .views-list .wrapper-inner .collapsed-list-dropdown.selected .k-dropdownlist.dropdown:not(.k-popup) .k-input-value-text svg{stroke:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup{width:360px;padding:24px}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .k-list-item.k-selected{color:var(--ui-kit-color-main);border:1px solid var(--ui-kit-color-main);background:var(--ui-kit-color-background)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .k-list-item:hover:not(.k-selected){background:var(--ui-kit-color-grey-13)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .k-list-item:hover:not(.k-selected) .views-item{color:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .k-list-item:hover:not(.k-selected) .views-item.user .view-icon{fill:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .k-list-item:hover:not(.k-selected) .views-item.system .view-icon{stroke:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item{width:100%;display:flex;align-items:center;gap:8px;padding:6px 0;font-size:14px;font-weight:400;line-height:20px;border-radius:4px;cursor:pointer}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.system{color:var(--ui-kit-color-blue)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.system .view-icon{stroke:var(--ui-kit-color-blue);fill:none}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.system.active .view-icon{stroke:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.user .view-icon{fill:var(--ui-kit-color-grey-12);stroke:none}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.user.active .view-icon{fill:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.active{color:var(--ui-kit-color-main);border-color:var(--ui-kit-color-main);background:var(--ui-kit-color-background)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.active .check-icon{display:block}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item .item-name{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item .check-icon{display:none;flex-shrink:0;width:14px;height:14px;fill:none;stroke:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item .view-icon{width:16px;height:16px}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .dropdown-footer{display:flex;flex-direction:column;gap:12px;padding-top:12px;margin-top:12px;border-top:1px solid var(--ui-kit-color-grey-11)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup:has(.k-no-data) .k-no-data{display:none}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup:has(.k-no-data) .dropdown-footer{margin-top:0;padding-top:0;border:none}::ng-deep .grid-views-manager-dialog.kit-dialog .k-dialog-content{padding:24px}::ng-deep .kit-popup.kit-grid-new-view-popup{width:360px}::ng-deep .kit-popup.kit-grid-new-view-popup .new-view{display:flex;flex-direction:column;gap:15px}::ng-deep .kit-popup.kit-grid-new-view-popup .new-view-action{display:flex;align-items:center;justify-content:space-between;padding-top:15px;border-top:1px solid var(--ui-kit-color-grey-11)}\n"] }]
7552
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"kit-grid-views\">\n @if (viewsState$ | async; as viewsState) {\n @if (!viewsState.loading) {\n @if (views$ | async; as views) {\n <div class=\"views-list\">\n <kit-collapsed-list #toggleButton\n [itemList]=\"collapsedListItems()\"\n [dropdownDefaultValueText]=\"collapsedListDropdownText()\"\n [lineHeight]=\"32\"\n [itemTemplate]=\"collapsedListItem\"\n [dropdownFooterTemplate]=\"dropdownFooter\"\n [dropdownItemTemplate]=\"dropdownItem\"\n [alwaysShowDropdown]=\"true\"\n (onSelectItem)=\"onSelectView($event)\"/>\n </div>\n\n <kit-grid-views-save [viewGroup]=\"viewGroup()\"\n [views]=\"views\"\n [viewsAutocompleteItems]=\"viewsAutocompleteItems$ | async\"\n (resetQueryParams)=\"resetQueryParams()\"\n ></kit-grid-views-save>\n }\n } @else {\n <kit-skeleton [width]=\"200\"\n [height]=\"32\"\n ></kit-skeleton>\n }\n }\n</div>\n\n<ng-template #collapsedListItem let-item>\n <kit-button class=\"views-item\"\n [ngClass]=\"item.type\"\n [active]=\"item.title === selectedView()?.title && item.type === selectedView()?.type\"\n [label]=\"item.title | titlecase\"\n [type]=\"kitButtonType.GHOST\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [icon]=\"item.type === gridViewType.SYSTEM && kitSvgIcon.GLOBAL || kitSvgIcon.USER\"\n [iconType]=\"item.type === gridViewType.SYSTEM && kitSvgIconType.STROKE || kitSvgIconType.FILL\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"/>\n</ng-template>\n\n<ng-template #dropdownFooter>\n <div class=\"dropdown-footer\">\n <kit-button [label]=\"'kit.views.newView' | translate\"\n [type]=\"kitButtonType.TEXT\"\n [kind]=\"kitButtonKind.SMALL\"\n [icon]=\"kitSvgIcon.PLUS\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"\n (clicked)=\"onPopupToggle()\"/>\n <kit-button [label]=\"'kit.views.manageViews' | translate\"\n [type]=\"kitButtonType.TEXT\"\n [kind]=\"kitButtonKind.SMALL\"\n [icon]=\"kitSvgIcon.PLUS\"\n [iconPosition]=\"kitButtonIconPosition.LEADING\"\n [disabled]=\"views().length < 2\"\n (clicked)=\"openViewsManagerModal()\"/>\n </div>\n</ng-template>\n\n<kit-popup #popup\n popupClass=\"kit-grid-new-view-popup\"\n [anchor]=\"$any(collapsedList()?.dropdown())\"\n [content]=\"content\">\n</kit-popup>\n\n<ng-template #content>\n <div class=\"new-view\">\n <kit-textbox [defaultValue]=\"createNewViewName()\"\n [placeholder]=\"'kit.views.enterText' | translate\"\n [state]=\"isViewNameValid && kitTextboxState.DEFAULT || kitTextboxState.ERROR\"\n [messageText]=\"inputMessage\"\n (changed)=\"createNewViewName.set($event)\"\n ></kit-textbox>\n <div class=\"new-view-action\">\n <kit-button [label]=\"'kit.views.cancel' | translate\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [type]=\"kitButtonType.GHOST\"\n (clicked)=\"createNewViewPopup()?.close()\"\n ></kit-button>\n <kit-button [label]=\"'kit.views.save' | translate\"\n [kind]=\"kitButtonKind.MEDIUM\"\n [disabled]=\"!createNewViewName() || !isViewNameValid\"\n (clicked)=\"onViewCreate()\"\n ></kit-button>\n </div>\n </div>\n</ng-template>\n\n<ng-template #dropdownItem let-dataItem>\n <div class=\"views-item\"\n [ngClass]=\"dataItem.type\"\n [class.active]=\"dataItem.title === selectedView()?.title && dataItem.type === selectedView()?.type\">\n <kit-svg-icon class=\"view-icon\"\n [icon]=\"dataItem.type === gridViewType.SYSTEM && kitSvgIcon.GLOBAL || kitSvgIcon.USER\"\n ></kit-svg-icon>\n <div class=\"item-name\">{{ dataItem.title | titlecase }}</div>\n <kit-svg-icon class=\"check-icon\"\n [icon]=\"kitSvgIcon.CHECK\"\n ></kit-svg-icon>\n </div>\n</ng-template>\n", styles: [".kit-grid-views{display:flex}.kit-grid-views .views-list{width:100%;min-width:0;margin-right:16px}::ng-deep .views-list .views-item.system .k-button{color:var(--ui-kit-color-blue)}::ng-deep .views-list .views-item.system .k-button .kit-button-icon{stroke:var(--ui-kit-color-blue);fill:none}::ng-deep .views-list .views-item.system .k-button:hover .kit-button-icon{stroke:var(--ui-kit-color-main)}::ng-deep .views-list .views-item.user .k-button{color:var(--ui-kit-color-grey-10)}::ng-deep .views-list .views-item.user .k-button .kit-button-icon{fill:var(--ui-kit-color-grey-12);stroke:none}::ng-deep .views-list .views-item.user .k-button:hover .kit-button-icon{fill:var(--ui-kit-color-main)}::ng-deep .views-list .views-item:hover .k-button{color:var(--ui-kit-color-main)}::ng-deep .views-list .views-item .k-button.active{color:var(--ui-kit-color-main)}::ng-deep .views-list .collapsed-list-dropdown .dropdown .k-input-inner{padding:0 16px}::ng-deep .views-list .collapsed-list-dropdown .dropdown .k-input-inner .value-icon{margin-left:5px}::ng-deep .kit-grid-views .views-list .wrapper-inner .collapsed-list-dropdown.selected .k-dropdownlist.dropdown:not(.k-popup){color:var(--ui-kit-color-main);border-color:var(--ui-kit-color-main);background:var(--ui-kit-color-background)}::ng-deep .kit-grid-views .views-list .wrapper-inner .collapsed-list-dropdown.selected .k-dropdownlist.dropdown:not(.k-popup) .k-input-value-text span{color:var(--ui-kit-color-main)}::ng-deep .kit-grid-views .views-list .wrapper-inner .collapsed-list-dropdown.selected .k-dropdownlist.dropdown:not(.k-popup) .k-input-value-text svg{stroke:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup{width:360px;padding:24px}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .k-list-item.k-selected{color:var(--ui-kit-color-main);border:1px solid var(--ui-kit-color-main);background:var(--ui-kit-color-background)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .k-list-item:hover:not(.k-selected){background:var(--ui-kit-color-grey-13)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .k-list-item:hover:not(.k-selected) .views-item{color:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .k-list-item:hover:not(.k-selected) .views-item.user .view-icon{fill:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .k-list-item:hover:not(.k-selected) .views-item.system .view-icon{stroke:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item{width:100%;display:flex;align-items:center;gap:8px;padding:6px 0;font-size:14px;font-weight:400;line-height:20px;border-radius:4px;cursor:pointer}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.system{color:var(--ui-kit-color-blue)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.system .view-icon{stroke:var(--ui-kit-color-blue);fill:none}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.system.active .view-icon{stroke:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.user .view-icon{fill:var(--ui-kit-color-grey-12);stroke:none}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.user.active .view-icon{fill:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.active{color:var(--ui-kit-color-main);border-color:var(--ui-kit-color-main);background:var(--ui-kit-color-background)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item.active .check-icon{display:block}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item .item-name{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item .check-icon{display:none;flex-shrink:0;width:14px;height:14px;fill:none;stroke:var(--ui-kit-color-main)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .views-item .view-icon{width:16px;height:16px}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup .dropdown-footer{display:flex;flex-direction:column;gap:12px;padding-top:12px;margin-top:12px;border-top:1px solid var(--ui-kit-color-grey-11)}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup:has(.k-no-data) .k-no-data{display:none}::ng-deep .kit-dropdown-popup.k-popup.collapsed-list-popup:has(.k-no-data) .dropdown-footer{margin-top:0;padding-top:0;border:none}::ng-deep .grid-views-manager-dialog.kit-dialog .k-dialog-content{padding:24px}::ng-deep .kit-popup.kit-grid-new-view-popup{width:360px}::ng-deep .kit-popup.kit-grid-new-view-popup .new-view{display:flex;flex-direction:column;gap:15px}::ng-deep .kit-popup.kit-grid-new-view-popup .new-view-action{display:flex;align-items:center;justify-content:space-between;padding-top:15px;border-top:1px solid var(--ui-kit-color-grey-11)}\n"] }]
7489
7553
  }], ctorParameters: () => [{ type: i1$d.Store }, { type: i1$7.ActivatedRoute }, { type: i1$7.Router }, { type: i0.DestroyRef }, { type: i1$1.TitleCasePipe }, { type: KitDialogService }, { type: i1$a.TranslateService }, { type: i0.ViewContainerRef }, { type: KitGridUrlStateService }], propDecorators: { viewChanged: [{
7490
7554
  type: Output
7491
7555
  }] } });
@@ -8037,7 +8101,6 @@ class KitGridFiltersComponent {
8037
8101
  this.excludedColumns = input.required();
8038
8102
  this.columns = input.required();
8039
8103
  this.filterListConfig = input.required();
8040
- this.filterChanged = output();
8041
8104
  this.kitFilterType = KitFilterType;
8042
8105
  this.filters = toSignal(this.store.select(KIT_GRID_STATE_TOKEN).pipe(map(gridData => gridData.filter)), { initialValue: [] });
8043
8106
  this.filterSelectorItems = computed(() => this.columns()
@@ -8056,7 +8119,6 @@ class KitGridFiltersComponent {
8056
8119
  removeFilter(field) {
8057
8120
  this.store.dispatch(new RemoveGridFilter(field)).subscribe(() => {
8058
8121
  this.kitGridUrlStateService.setGridStateToUrl(this.store.selectSnapshot(KIT_GRID_STATE_TOKEN));
8059
- this.filterChanged.emit();
8060
8122
  });
8061
8123
  }
8062
8124
  applyFilter(filter, values) {
@@ -8068,7 +8130,6 @@ class KitGridFiltersComponent {
8068
8130
  new SetGridSkip(0),
8069
8131
  ]).subscribe(() => {
8070
8132
  this.kitGridUrlStateService.setGridStateToUrl(this.store.selectSnapshot(KIT_GRID_STATE_TOKEN));
8071
- this.filterChanged.emit();
8072
8133
  });
8073
8134
  }
8074
8135
  buildFilterSelectorItem(item, filters) {
@@ -8084,9 +8145,7 @@ class KitGridFiltersComponent {
8084
8145
  return filters.some(filter => filter.field === item.field);
8085
8146
  }
8086
8147
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: KitGridFiltersComponent, deps: [{ token: i1$d.Store }, { token: KitGridUrlStateService }], target: i0.ɵɵFactoryTarget.Component }); }
8087
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.4", type: KitGridFiltersComponent, isStandalone: true, selector: "kit-grid-filters", inputs: { excludedColumns: { classPropertyName: "excludedColumns", publicName: "excludedColumns", isSignal: true, isRequired: true, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: true, transformFunction: null }, filterListConfig: { classPropertyName: "filterListConfig", publicName: "filterListConfig", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { filterChanged: "filterChanged" }, providers: [
8088
- KitGridUrlStateService,
8089
- ], ngImport: i0, template: "<div class=\"kit-grid-filters\">\n @for (item of filters(); track item) {\n @switch (item.type) {\n @case (kitFilterType.CHECKBOX) {\n <kit-filter-checkbox [filter]=\"item\"\n [items]=\"filterListConfig()[item.field].items\"\n [translateKeyPrefix]=\"filterListConfig()[item.field].translateKeyPrefix\"\n (filterRemoved)=\"removeFilter(item.field)\"\n (filterChanged)=\"applyFilter(item, $event)\"\n ></kit-filter-checkbox>\n }\n @case (kitFilterType.RADIO) {\n <kit-filter-radio [filter]=\"item\"\n [items]=\"filterListConfig()?.[item.field].items\"\n [translateKeyPrefix]=\"filterListConfig()?.[item.field].translateKeyPrefix\"\n (filterRemoved)=\"removeFilter(item.field)\"\n (filterChanged)=\"applyFilter(item, $event)\"\n ></kit-filter-radio>\n }\n @case (kitFilterType.DATE) {\n <kit-filter-date [filter]=\"item\"\n (filterRemoved)=\"removeFilter(item.field)\"\n (filterChanged)=\"applyFilter(item, $event)\"\n ></kit-filter-date>\n }\n @case (kitFilterType.TEXT) {\n <kit-filter-input [filterInputType]=\"kitFilterType.TEXT\"\n [filter]=\"item\"\n (filterRemoved)=\"removeFilter(item.field)\"\n (filterChanged)=\"applyFilter(item, $event)\"\n ></kit-filter-input>\n }\n @case (kitFilterType.NUMERIC) {\n <kit-filter-input [filterInputType]=\"kitFilterType.NUMERIC\"\n [filter]=\"item\"\n (filterRemoved)=\"removeFilter(item.field)\"\n (filterChanged)=\"applyFilter(item, $event)\"\n ></kit-filter-input>\n }\n }\n }\n\n <kit-filter-selector [items]=\"filterSelectorItems()\"\n (itemSelected)=\"addFilter($event)\"\n ></kit-filter-selector>\n</div>\n", styles: [".kit-grid-filters{display:flex;flex-wrap:wrap;gap:10px}\n"], dependencies: [{ kind: "component", type: KitFilterSelectorComponent, selector: "kit-filter-selector", inputs: ["items"], outputs: ["itemSelected"] }, { kind: "component", type: KitFilterCheckboxComponent, selector: "kit-filter-checkbox", inputs: ["filter", "translateKeyPrefix", "items", "showPopupOnInit"], outputs: ["itemsChange", "filterRemoved", "filterChanged"] }, { kind: "component", type: KitFilterDateComponent, selector: "kit-filter-date", inputs: ["filter"], outputs: ["filterRemoved", "filterChanged"] }, { kind: "component", type: KitFilterRadioComponent, selector: "kit-filter-radio", inputs: ["filter", "translateKeyPrefix", "items"], outputs: ["itemsChange", "filterRemoved", "filterChanged"] }, { kind: "component", type: KitFilterInputComponent, selector: "kit-filter-input", inputs: ["filter", "filterInputType"], outputs: ["filterRemoved", "filterChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8148
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.4", type: KitGridFiltersComponent, isStandalone: true, selector: "kit-grid-filters", inputs: { excludedColumns: { classPropertyName: "excludedColumns", publicName: "excludedColumns", isSignal: true, isRequired: true, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: true, transformFunction: null }, filterListConfig: { classPropertyName: "filterListConfig", publicName: "filterListConfig", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div class=\"kit-grid-filters\">\n @for (item of filters(); track item) {\n @switch (item.type) {\n @case (kitFilterType.CHECKBOX) {\n <kit-filter-checkbox [filter]=\"item\"\n [items]=\"filterListConfig()[item.field].items\"\n [translateKeyPrefix]=\"filterListConfig()[item.field].translateKeyPrefix\"\n (filterRemoved)=\"removeFilter(item.field)\"\n (filterChanged)=\"applyFilter(item, $event)\"\n ></kit-filter-checkbox>\n }\n @case (kitFilterType.RADIO) {\n <kit-filter-radio [filter]=\"item\"\n [items]=\"filterListConfig()?.[item.field].items\"\n [translateKeyPrefix]=\"filterListConfig()?.[item.field].translateKeyPrefix\"\n (filterRemoved)=\"removeFilter(item.field)\"\n (filterChanged)=\"applyFilter(item, $event)\"\n ></kit-filter-radio>\n }\n @case (kitFilterType.DATE) {\n <kit-filter-date [filter]=\"item\"\n (filterRemoved)=\"removeFilter(item.field)\"\n (filterChanged)=\"applyFilter(item, $event)\"\n ></kit-filter-date>\n }\n @case (kitFilterType.TEXT) {\n <kit-filter-input [filterInputType]=\"kitFilterType.TEXT\"\n [filter]=\"item\"\n (filterRemoved)=\"removeFilter(item.field)\"\n (filterChanged)=\"applyFilter(item, $event)\"\n ></kit-filter-input>\n }\n @case (kitFilterType.NUMERIC) {\n <kit-filter-input [filterInputType]=\"kitFilterType.NUMERIC\"\n [filter]=\"item\"\n (filterRemoved)=\"removeFilter(item.field)\"\n (filterChanged)=\"applyFilter(item, $event)\"\n ></kit-filter-input>\n }\n }\n }\n\n <kit-filter-selector [items]=\"filterSelectorItems()\"\n (itemSelected)=\"addFilter($event)\"\n ></kit-filter-selector>\n</div>\n", styles: [".kit-grid-filters{display:flex;flex-wrap:wrap;gap:10px}\n"], dependencies: [{ kind: "component", type: KitFilterSelectorComponent, selector: "kit-filter-selector", inputs: ["items"], outputs: ["itemSelected"] }, { kind: "component", type: KitFilterCheckboxComponent, selector: "kit-filter-checkbox", inputs: ["filter", "translateKeyPrefix", "items", "showPopupOnInit"], outputs: ["itemsChange", "filterRemoved", "filterChanged"] }, { kind: "component", type: KitFilterDateComponent, selector: "kit-filter-date", inputs: ["filter"], outputs: ["filterRemoved", "filterChanged"] }, { kind: "component", type: KitFilterRadioComponent, selector: "kit-filter-radio", inputs: ["filter", "translateKeyPrefix", "items"], outputs: ["itemsChange", "filterRemoved", "filterChanged"] }, { kind: "component", type: KitFilterInputComponent, selector: "kit-filter-input", inputs: ["filter", "filterInputType"], outputs: ["filterRemoved", "filterChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8090
8149
  }
8091
8150
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: KitGridFiltersComponent, decorators: [{
8092
8151
  type: Component,
@@ -8096,8 +8155,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
8096
8155
  KitFilterDateComponent,
8097
8156
  KitFilterRadioComponent,
8098
8157
  KitFilterInputComponent,
8099
- ], providers: [
8100
- KitGridUrlStateService,
8101
8158
  ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"kit-grid-filters\">\n @for (item of filters(); track item) {\n @switch (item.type) {\n @case (kitFilterType.CHECKBOX) {\n <kit-filter-checkbox [filter]=\"item\"\n [items]=\"filterListConfig()[item.field].items\"\n [translateKeyPrefix]=\"filterListConfig()[item.field].translateKeyPrefix\"\n (filterRemoved)=\"removeFilter(item.field)\"\n (filterChanged)=\"applyFilter(item, $event)\"\n ></kit-filter-checkbox>\n }\n @case (kitFilterType.RADIO) {\n <kit-filter-radio [filter]=\"item\"\n [items]=\"filterListConfig()?.[item.field].items\"\n [translateKeyPrefix]=\"filterListConfig()?.[item.field].translateKeyPrefix\"\n (filterRemoved)=\"removeFilter(item.field)\"\n (filterChanged)=\"applyFilter(item, $event)\"\n ></kit-filter-radio>\n }\n @case (kitFilterType.DATE) {\n <kit-filter-date [filter]=\"item\"\n (filterRemoved)=\"removeFilter(item.field)\"\n (filterChanged)=\"applyFilter(item, $event)\"\n ></kit-filter-date>\n }\n @case (kitFilterType.TEXT) {\n <kit-filter-input [filterInputType]=\"kitFilterType.TEXT\"\n [filter]=\"item\"\n (filterRemoved)=\"removeFilter(item.field)\"\n (filterChanged)=\"applyFilter(item, $event)\"\n ></kit-filter-input>\n }\n @case (kitFilterType.NUMERIC) {\n <kit-filter-input [filterInputType]=\"kitFilterType.NUMERIC\"\n [filter]=\"item\"\n (filterRemoved)=\"removeFilter(item.field)\"\n (filterChanged)=\"applyFilter(item, $event)\"\n ></kit-filter-input>\n }\n }\n }\n\n <kit-filter-selector [items]=\"filterSelectorItems()\"\n (itemSelected)=\"addFilter($event)\"\n ></kit-filter-selector>\n</div>\n", styles: [".kit-grid-filters{display:flex;flex-wrap:wrap;gap:10px}\n"] }]
8102
8159
  }], ctorParameters: () => [{ type: i1$d.Store }, { type: KitGridUrlStateService }] });
8103
8160
 
@@ -8379,29 +8436,24 @@ class KitGridSearchComponent {
8379
8436
  constructor(store, kitGridUrlStateService) {
8380
8437
  this.store = store;
8381
8438
  this.kitGridUrlStateService = kitGridUrlStateService;
8382
- this.onSearchChanged = output();
8383
8439
  this.kitSearchBarComponent = viewChild.required(KitSearchBarComponent);
8384
8440
  this.gridState$ = this.store.select(KIT_GRID_STATE_TOKEN);
8385
8441
  }
8386
8442
  ngAfterViewInit() {
8387
8443
  this.kitSearchBarComponent().changed.pipe(debounceTime(500), switchMap(value => value && this.store.dispatch(new SetGridSearch(value)) || this.store.dispatch(new RemoveGridSearch()))).subscribe(() => {
8388
8444
  this.kitGridUrlStateService.setGridStateToUrl(this.store.selectSnapshot(KIT_GRID_STATE_TOKEN));
8389
- this.onSearchChanged.emit();
8390
8445
  });
8391
8446
  }
8392
8447
  closeButtonClick() {
8393
8448
  this.store.dispatch(new RemoveGridSearch()).subscribe(() => {
8394
8449
  this.kitGridUrlStateService.setGridStateToUrl(this.store.selectSnapshot(KIT_GRID_STATE_TOKEN));
8395
- this.onSearchChanged.emit();
8396
8450
  });
8397
8451
  }
8398
8452
  closeSearch() {
8399
8453
  this.kitSearchBarComponent().onCloseButtonClick();
8400
8454
  }
8401
8455
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: KitGridSearchComponent, deps: [{ token: i1$d.Store }, { token: KitGridUrlStateService }], target: i0.ɵɵFactoryTarget.Component }); }
8402
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.1.4", type: KitGridSearchComponent, isStandalone: true, selector: "kit-grid-search", outputs: { onSearchChanged: "onSearchChanged" }, providers: [
8403
- KitGridUrlStateService,
8404
- ], viewQueries: [{ propertyName: "kitSearchBarComponent", first: true, predicate: KitSearchBarComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<kit-search-bar [placeholder]=\"'kit.search.placeholder' | translate\"\n [searchButtonLabel]=\"'kit.search.searchButtonLabel' | translate\"\n [searchString]=\"(gridState$ | async)?.search\"\n [closeButtonLabel]=\"'kit.search.closeButtonLabel' | translate\"\n (closeButtonClick)=\"closeButtonClick()\"\n></kit-search-bar>\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$a.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: KitSearchBarModule }, { kind: "component", type: KitSearchBarComponent, selector: "kit-search-bar", inputs: ["placeholder", "searchButtonLabel", "closeButtonLabel", "searchString"], outputs: ["changed", "searchButtonClick", "closeButtonClick"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8456
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.1.4", type: KitGridSearchComponent, isStandalone: true, selector: "kit-grid-search", viewQueries: [{ propertyName: "kitSearchBarComponent", first: true, predicate: KitSearchBarComponent, descendants: true, isSignal: true }], ngImport: i0, template: "<kit-search-bar [placeholder]=\"'kit.search.placeholder' | translate\"\n [searchButtonLabel]=\"'kit.search.searchButtonLabel' | translate\"\n [searchString]=\"(gridState$ | async)?.search\"\n [closeButtonLabel]=\"'kit.search.closeButtonLabel' | translate\"\n (closeButtonClick)=\"closeButtonClick()\"\n></kit-search-bar>\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$a.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: KitSearchBarModule }, { kind: "component", type: KitSearchBarComponent, selector: "kit-search-bar", inputs: ["placeholder", "searchButtonLabel", "closeButtonLabel", "searchString"], outputs: ["changed", "searchButtonClick", "closeButtonClick"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8405
8457
  }
8406
8458
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: KitGridSearchComponent, decorators: [{
8407
8459
  type: Component,
@@ -8409,8 +8461,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.4", ngImpor
8409
8461
  TranslateModule,
8410
8462
  KitSearchBarModule,
8411
8463
  AsyncPipe,
8412
- ], providers: [
8413
- KitGridUrlStateService,
8414
8464
  ], template: "<kit-search-bar [placeholder]=\"'kit.search.placeholder' | translate\"\n [searchButtonLabel]=\"'kit.search.searchButtonLabel' | translate\"\n [searchString]=\"(gridState$ | async)?.search\"\n [closeButtonLabel]=\"'kit.search.closeButtonLabel' | translate\"\n (closeButtonClick)=\"closeButtonClick()\"\n></kit-search-bar>\n" }]
8415
8465
  }], ctorParameters: () => [{ type: i1$d.Store }, { type: KitGridUrlStateService }] });
8416
8466