Telerik Forums
Kendo UI for Angular Forum
0 answers
5 views

I am trying to ensure that only leaf (child) nodes can be selected in the Kendo DropDownTree for Angular. If a parent node is clicked, the selection should be cleared and the input should display as empty (no value/placeholder).

What I am experiencing:

  • After selecting a child node (leaf), the value is set correctly.

  • If I later click a parent node, I set value = null in the valueChange event handler.

  • However, when I close and reopen the dialog containing the DropDownTree, the input always shows the last selected child (even though value is null).

  • The value for the input box is not showing null; the last valid child selection keeps coming back after reopening.

Summary of what I have tried:

  • Handled valueChange to only accept leaf node selections and set value = null for parents.

     

  • Verified that value is null when closing the dialog.

Expected behavior:
When a parent node is clicked, any selection should be cleared, and upon reopening the dialog, the DropDownTree input should remain empty (showing no last selection).

Actual behavior:
After clicking a parent and setting value = null, closing and reopening the dialog always shows the last selected child in the DropDownTree input.





<mnp-dialog
    class="feedback-dialog-wrapper"
    [width]="width"
    [height]="height"
    [isOpen]="isOpen"
    [title]="confirmationTitle"
    (close)="close()">
    <div class="feedback">
        <div>{{ confirmationMessage }}</div>
        <div class="k-form-field-wrap">
            <kendo-dropdowntree
                kendoDropDownTreeExpandable
                [kendoDropDownTreeHierarchyBinding]="data"
                childrenField="items"
                textField="text"
                valueField="id"
                [valuePrimitive]="true"
                [(value)]="value"
                [filterable]="true"
                (valueChange)="onValueChange($event)"
                (close)="closeEvent($event)"
                >
                <ng-template kendoDropDownTreeValueTemplate let-dataItem>
                    <ng-container *ngIf="!dataItem?.items || dataItem?.items.length === 0">
                        <span class="template">{{ dataItem?.text }}</span>
                    </ng-container>
                </ng-template>
                <ng-template kendoDropDownTreeNodeTemplate let-dataItem let-index="index">
                    <span
                        [ngClass]="{
                            'parent-node': dataItem.items?.length > 0,
                            'child-node': !dataItem.items || dataItem.items.length === 0
                        }">
                        {{ dataItem.text }}
                    </span>
                </ng-template>
            </kendo-dropdowntree>
        </div>
    </div>
    <kendo-dialog-actions>
        <mnp-button id="confirmaion-cancel-btn" fillMode="outline" (click)="close()">{{
            confirmationCancelBtn
        }}</mnp-button>
        <mnp-button id="confirmaion-submit-btn"  [disabled]="value === null" (click)="submit()">{{ confirmationSubmitBtn }}</mnp-button>
    </kendo-dialog-actions>
</mnp-dialog>


import { CommonModule } from '@angular/common';
import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
import { TranslocoModule } from '@jsverse/transloco';
import { ActionsLayout, KENDO_DIALOGS } from '@progress/kendo-angular-dialog';
import { ButtonComponent, DialogComponent, LabelComponent } from '@mnp-firm-it/angular-ui-components';
import { KENDO_DROPDOWNS } from '@progress/kendo-angular-dropdowns';
import { KENDO_LABELS } from '@progress/kendo-angular-label';
import { HierarchicalItem } from '../../../models/contract-models';

@Component({
    selector: 'app-manual-confirmation',
    templateUrl: './manual-confirmation.component.html',
    styleUrls: ['./manual-confirmation.component.scss'],
    standalone: true,
    encapsulation: ViewEncapsulation.None,
    imports: [
        CommonModule,
        DialogComponent,
        KENDO_DROPDOWNS,
        KENDO_DIALOGS,
        ButtonComponent,
        TranslocoModule,
        KENDO_LABELS
    ]
})
export class ManualConfirmationComponent {
    @Input() actionsLayout: ActionsLayout = 'stretched';
    @Input() isOpen = false;
    @Input() confirmationTitle = 'title';
    @Input() confirmationMessage = 'message';
    @Input() confirmationCancelBtn = 'Cancel';
    @Input() confirmationSubmitBtn = 'Submit';
    @Input() data: HierarchicalItem[] = [];
    @Input() width = '250';
    @Input() height = '250';
    @Output() closed = new EventEmitter<void>();

    value: number | null = null;
    @Output() submitted = new EventEmitter<boolean>();

    close() {
        this.value = null;
        this.closed.emit();
        this.submitted.emit(false);
    }

    submit() {
        this.submitted.emit(true);
        this.close();
    }

    onValueChange(selectedId: any) {
        this.value = null;
        const findItem = (items: any[]): any =>
            items.reduce((acc, item) => {
                if (item.id === selectedId) return item;
                if (item.items) {
                    const found = findItem(item.items);
                    if (found) return found;
                }
                return acc;
            }, null);

        const selectedItem = findItem(this.data);
        console.log('Selected Item:', selectedItem);

        if (!selectedItem.items) {
            this.value = selectedId;
        } else {
            console.log('iam here');
            this.value = null;
        }
    }

    closeEvent(event: any): void {
        if (this.value === null) {
            event.preventDefault();
        }
    }
 
}

Layth
Top achievements
Rank 1
Iron
 updated question on 25 Jun 2025
1 answer
4 views
Hi, I am trying to use FilterDescriptor/DataSourceRequest to filter a list property to see if it contains a certain value.  I don't see any filter options for this.  I did see that NestedPropertyTextFilterDescriptor exists for a different one of your products so I wondered if something like that exists in Kendo for Angular.  Or if some other out-of-the-box solution exists???
Martin Bechev
Telerik team
 answered on 20 Jun 2025
1 answer
13 views

Hey,

I tried to play around with the new Toolbar inside the Grid.

From the documentation I copied:

<kendo-grid
    [data]="gridData"
    [selectable]="false"
    (selectionChange)="onRowSelected()"
    [filterable]="true"
  >

<kendo-toolbar overflow="scroll">
      <kendo-toolbar-button kendoGridFilterTool></kendo-toolbar-button>
      <kendo-toolbar-button kendoGridSortTool></kendo-toolbar-button>
      <kendo-toolbar-button kendoGridGroupTool></kendo-toolbar-button>
      <kendo-toolbar-separator></kendo-toolbar-separator>
      <kendo-toolbar-button kendoGridColumnChooserTool></kendo-toolbar-button>
      <kendo-toolbar-spacer></kendo-toolbar-spacer>
      <kendo-toolbar-button kendoGridPDFTool></kendo-toolbar-button>
      <kendo-toolbar-button kendoGridExcelTool></kendo-toolbar-button>
    </kendo-toolbar>

...

Sadly, I can't seem to get the first three directives (kendoGridFilterTool, kendoGridSortTool, kendoGridGroupTool) to work.

I'm in Webstorm which tells me: "Attribute kendoGridFilterTool is not allowed here".


Am I missing an import or something?

Please help.

Yanmario
Telerik team
 answered on 20 Jun 2025
1 answer
9 views

I have two date series with different interval between timestamps, within the same time range. I'd like them to be lines with a gap instead of empty/missing values. The problem is, that to fulfil both requirements, I obviously need to create two axes - with different base unit step (otherwise one serie is continuous and the other is discrete).

As in this example: https://dojo.telerik.com/ZhgHEaJP

My question is whether there is a way how to 'merge' the two axes together to have just a single axis, as they are similar (except the base unit step), and to see the points at the same timestamp directly above.

Yanmario
Telerik team
 answered on 17 Jun 2025
0 answers
16 views

Hi,

 

i tried to use kendo ui at angular V19, i got the below errors when i ran ng server:

 

X [ERROR] TS2322: Type 'readonly [typeof TextBoxDirective, typeof TextBoxComponent, typeof InputSeparatorComponent, typeof TextBoxSuffixTemplateDirective, ... 49 more ..., typeof OTPInputCustomMessagesComponent]' is not assignable to type 'any[] | Type$1<any> | ModuleWithProviders<{}>'.
  The type 'readonly [typeof TextBoxDirective, typeof TextBoxComponent, typeof InputSeparatorComponent, typeof TextBoxSuffixTemplateDirective, ... 49 more ..., typeof OTPInputCustomMessagesComponent]' is 'readonly' and cannot be assigned to the mutable type 'any[]'. [plugin angular-compiler]

 

my package.json:

 

{
  "name": "kendo-angular-app",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "watch": "ng build --watch --configuration development",
    "test": "ng test"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^19.0.0",
    "@angular/common": "^19.0.0",
    "@angular/compiler": "^19.0.0",
    "@angular/core": "^19.0.0",
    "@angular/forms": "^19.0.0",
    "@angular/localize": "^19.0.0",
    "@angular/platform-browser": "^19.0.0",
    "@angular/platform-browser-dynamic": "^19.0.0",
    "@angular/router": "^19.0.0",
    "@progress/kendo-angular-buttons": "19.1.1",
    "@progress/kendo-angular-charts": "^19.1.1",
    "@progress/kendo-angular-common": "19.1.1",
    "@progress/kendo-angular-dateinputs": "19.1.1",
    "@progress/kendo-angular-dialog": "19.1.1",
    "@progress/kendo-angular-dropdowns": "19.1.1",
    "@progress/kendo-angular-excel-export": "19.1.1",
    "@progress/kendo-angular-grid": "^19.1.1",
    "@progress/kendo-angular-icons": "19.1.1",
    "@progress/kendo-angular-inputs": "19.1.1",
    "@progress/kendo-angular-intl": "19.1.1",
    "@progress/kendo-angular-l10n": "19.1.1",
    "@progress/kendo-angular-label": "19.1.1",
    "@progress/kendo-angular-layout": "19.1.1",
    "@progress/kendo-angular-navigation": "19.1.1",
    "@progress/kendo-angular-pager": "19.1.1",
    "@progress/kendo-angular-pdf-export": "19.1.1",
    "@progress/kendo-angular-popup": "19.1.1",
    "@progress/kendo-angular-progressbar": "19.1.1",
    "@progress/kendo-angular-toolbar": "19.1.1",
    "@progress/kendo-angular-treeview": "19.1.1",
    "@progress/kendo-angular-utils": "19.1.1",
    "@progress/kendo-data-query": "^1.0.0",
    "@progress/kendo-drawing": "^1.21.0",
    "@progress/kendo-licensing": "^1.5.0",
    "@progress/kendo-svg-icons": "^4.0.0",
    "@progress/kendo-theme-bootstrap": "^11.0.2",
    "rxjs": "~7.8.0",
    "tslib": "^2.3.0",
    "zone.js": "~0.15.0"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^19.0.6",
    "@angular/cli": "^19.0.6",
    "@angular/compiler-cli": "^19.0.0",
    "@types/jasmine": "~5.1.0",
    "jasmine-core": "~5.4.0",
    "karma": "~6.4.0",
    "karma-chrome-launcher": "~3.2.0",
    "karma-coverage": "~2.2.0",
    "karma-jasmine": "~5.1.0",
    "karma-jasmine-html-reporter": "~2.1.0",
    "typescript": "~5.6.2"
  }
}

 

can you please help ?

 

 

David
Top achievements
Rank 1
Iron
 asked on 14 Jun 2025
2 answers
25 views

I was previously setting primary, secondary, and error colors and then importing the all.scss from kendo-theme-material - it worked great.

Now, I'm trying to import the material-2.scss and most of the controls have styling issues, almost like it is still trying to render Material 3 styles which take up a lot more space.

If I want to import like this, am I doing something wrong, or is the material-2 scss simply not working yet?

 

$kendo-color-primary: COLORGOESHERE;
$kendo-color-secondary: COLORGOESHERE;
$kendo-color-error: COLORGOESHERE;
@import '@progress/kendo-theme-material/dist/material-2.scss';
//@import '@progress/kendo-theme-material/dist/all.scss';
Emil
Telerik team
 answered on 13 Jun 2025
1 answer
12 views

 

We want to use "kendo-angular-pdfviewer" package with 13.0.0 version only as we have other exiting kendo packages with "11.6.0" version. If we use latest "kendo-angular-pdfviewer" packages ( which has able to customize pdf toolbar) then we need to change all other packages also which we are not willing to change now. In pdf viewer component, we want to display download button based on some conditions. 

 

"dependencies": {
    "@angular/animations": "^15.2.6",
    "@angular/common": "^15.2.6",
    "@angular/compiler": "^15.2.6",
    "@angular/core": "^15.2.6",
    "@angular/forms": "^15.2.6",
    "@angular/platform-browser": "^15.2.6",
    "@angular/platform-browser-dynamic": "^15.2.6",
    "@angular/router": "^15.2.6",
    "@ngx-translate/core": "^14.0.0",
    "@ngx-translate/http-loader": "^7.0.0",
    "@progress/kendo-angular-buttons": "^11.6.0",
    "@progress/kendo-angular-common": "^11.6.0",
    "@progress/kendo-angular-dateinputs": "^11.6.0",
    "@progress/kendo-angular-dialog": "^11.6.0",
    "@progress/kendo-angular-dropdowns": "^11.6.0",
    "@progress/kendo-angular-excel-export": "^11.6.0",
    "@progress/kendo-angular-grid": "^11.6.0",
    "@progress/kendo-angular-inputs": "^11.6.0",
    "@progress/kendo-angular-intl": "^11.6.0",
    "@progress/kendo-angular-l10n": "^11.6.0",
    "@progress/kendo-angular-layout": "^11.6.0",
    "@progress/kendo-angular-listview": "^11.6.0",
    "@progress/kendo-angular-messages": "^1.44.0",
    "@progress/kendo-angular-notification": "^11.6.0",
    "@progress/kendo-angular-pdfviewer": "^13.0.0",
    "@progress/kendo-angular-popup": "^11.6.0",
    "@progress/kendo-angular-treeview": "^11.6.0",
    "@progress/kendo-data-query": "^1.6.0",
    "@progress/kendo-drawing": "^1.17.5",
    "@progress/kendo-licensing": "^1.3.5",
    "@progress/kendo-theme-default": "^6.2.0",
    "@rxjs/rx": "^4.1.0",
    "auto-complete": "^1.0.0",
    "bootstrap": "^3.3.7",
    "cldr-data": "^36.0.1",
    "core-js": "^3.30.0",
    "file-saver": "^2.0.5",
    "font-awesome": "^4.7.0",
    "jquery": "^3.6.4",
    "moment": "^2.29.4",
    "rxjs": "^7.8.0",
    "rxjs-compat": "^6.6.7",
    "stream-to-string": "^1.2.1",
    "zone.js": "^0.12.0"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~15.2.5",
    "@angular/cli": "~15.2.5",
    "@angular/compiler-cli": "^15.2.6",
    "@angular/language-service": "^15.2.6",
    "@angular/localize": "^15.2.6",
    "@types/jasmine": "~4.3.1",
    "@types/jasminewd2": "~2.0.10",
    "@types/node": "~18.15.11",
    "codelyzer": "~6.0.2",
    "jasmine-core": "~4.6.0",
    "jasmine-spec-reporter": "~7.0.0",
    "karma": "~6.4.1",
    "karma-chrome-launcher": "~3.1.1",
    "karma-coverage-istanbul-reporter": "~3.0.3",
    "karma-jasmine": "~5.1.0",
    "karma-jasmine-html-reporter": "^2.0.0",
    "protractor": "~7.0.0",
    "ts-node": "~10.9.1",
    "tslint": "~5.20.1",
    "typescript": "~4.9.4"
  }

 

 

 

 

Please let us know if there is any way to acheive our requirement to display download button based on conditions and with out impacting other kendo packages.

Zornitsa
Telerik team
 answered on 11 Jun 2025
1 answer
15 views
Telerik Treelist not working for save,edit,delete on telerik website  URL:  https://demos.telerik.com/kendo-angular-ui/demos/treelist/editing/in-cell-editing?theme=default-ocean-blue-a11y
Martin Bechev
Telerik team
 answered on 10 Jun 2025
1 answer
31 views
In version 19, if a grid is selectable you can't type spaces into inputs inside of a cell detail template inside the grid.  With the template below I am not able to type spaces in the textarea.  If I change selectable to false, the text area allows spaces. If I revert to version 18 it works as expected.
<kendo-grid [selectable]="true" [kendoGridBinding]="[{name: 'bill', age: 55}]">
  <kendo-grid-column field="name" title="Name"></kendo-grid-column>
  <kendo-grid-column field="age" title="Age"></kendo-grid-column>
  <ng-template kendoGridDetailTemplate>
    <textarea rows="3"></textarea>
  </ng-template>
  
</kendo-grid>

Martin Bechev
Telerik team
 answered on 04 Jun 2025
0 answers
28 views

Angular v20 introduced the ability to go zonless with "provideZonelessChangeDetection" but the popup placement of kendoTooltip with zoneless is offset.  If I add back the zone.js dependency then it works fine, but of course that's not ideal.

Code to reproduce is very simple:

<button kendoTooltip title="test tooltip">
  hi there
</button>

or here's a code sandbox sample forked from the tooltip overview example


Would you please modify this to work with zoneless?

Thank You.

Bryce
Top achievements
Rank 1
 updated question on 03 Jun 2025
Narrow your results
Selected tags
Tags
+? more
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?