From 56dc14a63dc4d1f3a4de09bb08e9917c2ddfbb30 Mon Sep 17 00:00:00 2001 From: Yanmario Menev <49076727+yanmariomenev@users.noreply.github.com> Date: Mon, 28 Apr 2025 15:10:16 +0300 Subject: [PATCH 1/7] chore: refine layout and content of the project --- examples-standalone/kendoangular-landing-page/angular.json | 2 +- .../header/bottom-right/bottom-right.component.css | 4 ++++ .../header/bottom-right/bottom-right.component.html | 2 +- .../transactions-dashboard.component.css | 7 +++++++ .../transactions-dashboard.component.html | 2 +- 5 files changed, 14 insertions(+), 3 deletions(-) diff --git a/examples-standalone/kendoangular-landing-page/angular.json b/examples-standalone/kendoangular-landing-page/angular.json index 9d2e3c4d..8eb2f498 100644 --- a/examples-standalone/kendoangular-landing-page/angular.json +++ b/examples-standalone/kendoangular-landing-page/angular.json @@ -29,7 +29,7 @@ ], "styles": [ { - "input": "node_modules/@progress/kendo-theme-default/dist/default-ocean-blue-a11y.scss" + "input": "node_modules/@progress/kendo-theme-default/dist/default-ocean-blue.scss" }, "src/styles.css" ], diff --git a/examples-standalone/kendoangular-landing-page/src/app/components/header/bottom-right/bottom-right.component.css b/examples-standalone/kendoangular-landing-page/src/app/components/header/bottom-right/bottom-right.component.css index 99566b49..cbb7500b 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/components/header/bottom-right/bottom-right.component.css +++ b/examples-standalone/kendoangular-landing-page/src/app/components/header/bottom-right/bottom-right.component.css @@ -16,8 +16,12 @@ kendo-formfield { .k-radio-list-horizontal { display: flex; + flex-flow: row wrap; gap: 1rem; } +.k-radio-list-horizontal input[type="radio"] { + margin-right: -0.65rem; +} .k-radio:checked, .k-radio.k-checked { diff --git a/examples-standalone/kendoangular-landing-page/src/app/components/header/bottom-right/bottom-right.component.html b/examples-standalone/kendoangular-landing-page/src/app/components/header/bottom-right/bottom-right.component.html index a007a642..6a1f39fb 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/components/header/bottom-right/bottom-right.component.html +++ b/examples-standalone/kendoangular-landing-page/src/app/components/header/bottom-right/bottom-right.component.html @@ -38,7 +38,7 @@ [attr.id]="'water-' + item.value" /> diff --git a/examples-standalone/kendoangular-landing-page/src/app/components/header/transactions-dashboard/transactions-dashboard.component.css b/examples-standalone/kendoangular-landing-page/src/app/components/header/transactions-dashboard/transactions-dashboard.component.css index 6b320fd6..739124af 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/components/header/transactions-dashboard/transactions-dashboard.component.css +++ b/examples-standalone/kendoangular-landing-page/src/app/components/header/transactions-dashboard/transactions-dashboard.component.css @@ -78,4 +78,11 @@ .k-sort-icon { color: #5777EA!important; +} +.k-master-row, +.k-table-row { + --kendo-line-height: 4px; +} +.k-pager-numbers button { + width: 30px; } \ No newline at end of file diff --git a/examples-standalone/kendoangular-landing-page/src/app/components/header/transactions-dashboard/transactions-dashboard.component.html b/examples-standalone/kendoangular-landing-page/src/app/components/header/transactions-dashboard/transactions-dashboard.component.html index 2ac7242f..932d9ea9 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/components/header/transactions-dashboard/transactions-dashboard.component.html +++ b/examples-standalone/kendoangular-landing-page/src/app/components/header/transactions-dashboard/transactions-dashboard.component.html @@ -11,7 +11,7 @@ [navigable]="true" [height]="302" [style.width.px]="586" - size="small" + scrollable="none" > From d6ddce1f65b60f5d6f67749d00c4c4bdbf18d202 Mon Sep 17 00:00:00 2001 From: Yanmario Menev <49076727+yanmariomenev@users.noreply.github.com> Date: Mon, 28 Apr 2025 16:50:58 +0300 Subject: [PATCH 2/7] chore: update scheduler and editor --- .../kendoangular-landing-page/angular.json | 10 +++ .../components/editor/editor.component.html | 3 +- .../app/components/editor/editor.component.ts | 5 +- .../scheduler/scheduler.component.ts | 30 +++++-- .../src/app/services/locale.service.ts | 11 +++ .../app/services/scheduler-message.service.ts | 82 ++++++++++++++++-- .../src/assets/kendoka.png | Bin 0 -> 20597 bytes .../kendoangular-landing-page/src/main.ts | 27 +++--- 8 files changed, 138 insertions(+), 30 deletions(-) create mode 100644 examples-standalone/kendoangular-landing-page/src/app/services/locale.service.ts create mode 100644 examples-standalone/kendoangular-landing-page/src/assets/kendoka.png diff --git a/examples-standalone/kendoangular-landing-page/angular.json b/examples-standalone/kendoangular-landing-page/angular.json index 8eb2f498..96e0e03d 100644 --- a/examples-standalone/kendoangular-landing-page/angular.json +++ b/examples-standalone/kendoangular-landing-page/angular.json @@ -22,6 +22,11 @@ ], "tsConfig": "tsconfig.app.json", "assets": [ + { + "glob": "**/*", + "input": "src/assets/", + "output": "/assets/" + }, { "glob": "**/*", "input": "public" @@ -84,6 +89,11 @@ ], "tsConfig": "tsconfig.spec.json", "assets": [ + { + "glob": "**/*", + "input": "src/assets/", + "output": "/assets/" + }, { "glob": "**/*", "input": "public" diff --git a/examples-standalone/kendoangular-landing-page/src/app/components/editor/editor.component.html b/examples-standalone/kendoangular-landing-page/src/app/components/editor/editor.component.html index ecb26299..ae03d7a6 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/components/editor/editor.component.html +++ b/examples-standalone/kendoangular-landing-page/src/app/components/editor/editor.component.html @@ -1,5 +1,5 @@
- + @@ -58,7 +58,6 @@ -
diff --git a/examples-standalone/kendoangular-landing-page/src/app/components/editor/editor.component.ts b/examples-standalone/kendoangular-landing-page/src/app/components/editor/editor.component.ts index 4b4ed9c1..5c628f2c 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/components/editor/editor.component.ts +++ b/examples-standalone/kendoangular-landing-page/src/app/components/editor/editor.component.ts @@ -10,7 +10,10 @@ import { KENDO_TOOLBAR } from "@progress/kendo-angular-toolbar"; }) export class EditorComponent { public value = ` -

+

+ Angular Kendoka +
+

The Kendo Angular UI Editor allows your users to edit HTML in a familiar, user-friendly way.
In this version, the Editor provides the core HTML editing engine, which includes basic text formatting, hyperlinks and lists. The widget outputs identical HTML across all major browsers, follows diff --git a/examples-standalone/kendoangular-landing-page/src/app/components/scheduler/scheduler.component.ts b/examples-standalone/kendoangular-landing-page/src/app/components/scheduler/scheduler.component.ts index 1674e942..74d6262c 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/components/scheduler/scheduler.component.ts +++ b/examples-standalone/kendoangular-landing-page/src/app/components/scheduler/scheduler.component.ts @@ -1,16 +1,27 @@ -import { Component, OnInit } from "@angular/core"; +import { ChangeDetectorRef, Component, Inject, LOCALE_ID } from "@angular/core"; import { FormBuilder, FormGroup, ReactiveFormsModule } from "@angular/forms"; import { KENDO_DROPDOWNLIST } from "@progress/kendo-angular-dropdowns"; +import { CldrIntlService, IntlService } from "@progress/kendo-angular-intl"; +import { MessageService } from "@progress/kendo-angular-l10n"; import { CreateFormGroupArgs, KENDO_SCHEDULER } from "@progress/kendo-angular-scheduler"; import { KENDO_TOOLBAR } from "@progress/kendo-angular-toolbar"; import { customModelFields, displayDate, sampleDataWithCustomSchema } from "../../data/scheduler-data"; import { SchedulerMessageService } from "../../services/scheduler-message.service"; -import { MessageService } from "@progress/kendo-angular-l10n"; +import "@progress/kendo-angular-intl/locales/en/all"; +import "@progress/kendo-angular-intl/locales/es/all"; + +interface LanguageOption { + text: string; + value: string; +} @Component({ selector: "app-scheduler", imports: [KENDO_SCHEDULER, KENDO_TOOLBAR, KENDO_DROPDOWNLIST, ReactiveFormsModule], - providers: [{ provide: MessageService, useClass: SchedulerMessageService }], + providers: [ + { provide: MessageService, useClass: SchedulerMessageService }, + { provide: LOCALE_ID, useValue: "en" }, + ], templateUrl: "./scheduler.component.html", styleUrls: ["./scheduler.component.css"], }) @@ -47,12 +58,18 @@ export class SchedulerComponent { colorField: "color", }, ]; - public languages: any[] = [ + public languages: LanguageOption[] = [ { text: "English", value: "en" }, { text: "Spanish", value: "es" }, ]; public selectedLanguage: any = { text: "English", value: "en-US" }; - constructor(private formBuilder: FormBuilder, private messages: MessageService) { + constructor( + private formBuilder: FormBuilder, + private messages: MessageService, + @Inject(LOCALE_ID) public localeId: string, + public intlService: IntlService, + private cdr: ChangeDetectorRef + ) { this.createFormGroup = this.createFormGroup.bind(this); } @@ -107,8 +124,9 @@ export class SchedulerComponent { public handleOrientationChange(orientation: "horizontal" | "vertical"): void { this.orientation = orientation; } - public changeLanguage(language: string): void { + public changeLanguage(language: LanguageOption): void { const svc = this.messages; svc.language = svc.language === "es" ? "en" : "es"; + (this.intlService as CldrIntlService).localeId = language.value; } } diff --git a/examples-standalone/kendoangular-landing-page/src/app/services/locale.service.ts b/examples-standalone/kendoangular-landing-page/src/app/services/locale.service.ts new file mode 100644 index 00000000..7ad49595 --- /dev/null +++ b/examples-standalone/kendoangular-landing-page/src/app/services/locale.service.ts @@ -0,0 +1,11 @@ +import { Injectable } from '@angular/core'; +import { CldrIntlService } from '@progress/kendo-angular-intl'; +import '@progress/kendo-angular-intl/locales/es/all'; + +@Injectable() +export class MyService extends CldrIntlService { + constructor() { + super('es-ES'); + } + +} diff --git a/examples-standalone/kendoangular-landing-page/src/app/services/scheduler-message.service.ts b/examples-standalone/kendoangular-landing-page/src/app/services/scheduler-message.service.ts index 8c81576d..29af2450 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/services/scheduler-message.service.ts +++ b/examples-standalone/kendoangular-landing-page/src/app/services/scheduler-message.service.ts @@ -24,15 +24,85 @@ const localizationData: { [key: string]: LocalizationData } = { es: { rtl: false, messages: { - "kendo.scheduler.today": "Hoy", - "kendo.scheduler.allDay": "todo el dia", - "kendo.scheduler.showWorkDay": "Mostrar horas laborables", - "kendo.scheduler.showFullDay": "Mostrar día completo", "kendo.scheduler.agendaViewTitle": "Agenda", - "kendo.scheduler.dayViewTitle": "Día", + "kendo.scheduler.allDay": "todo el día", + "kendo.scheduler.allEvents": "Todos los eventos", + "kendo.scheduler.calendarToday": "Hoy", + "kendo.scheduler.cancel": "Cancelar", + "kendo.scheduler.save": "Save", + "kendo.scheduler.editorEventTitle": "Título", + "kendo.scheduler.editorEventStart": "Inicio", + "kendo.scheduler.editorEventStartTimeZone": "Zona horaria de inicio", + "kendo.scheduler.editorEventEnd": "Fin", + "kendo.scheduler.editorEventEndTimeZone": "Zona horaria final", + "kendo.scheduler.dateHeader": "Fecha", + "kendo.scheduler.dayViewTitle": "Título", + "kendo.scheduler.deleteConfirmation": "¿Está seguro que quiere eliminar este evento?", + "kendo.scheduler.deleteDialogTitle": "Eliminar evento", + "kendo.scheduler.deleteOccurrence": "Delete current occurrence", + "kendo.scheduler.deleteRecurringConfirmation": + "Do you want to delete only this event occurrence or the whole series?", + "kendo.scheduler.deleteRecurringDialogTitle": + "¿Quiere eliminar esta ocurrencia del evento o la serie completa?", + "kendo.scheduler.deleteSeries": "Eliminar la serie", + "kendo.scheduler.deleteTitle": "Eliminar evento", + "kendo.scheduler.destroy": "Eliminar", + "kendo.scheduler.editOccurrence": "Editar ocurrencia actual", + "kendo.scheduler.editorEventAllDay": "Todo el día", + "kendo.scheduler.editorEventDescription": "Descripción", + "kendo.scheduler.editorEventSeparateTimeZones": "Usar zonas horarias separadas para el inicio y el fin", + "kendo.scheduler.editorEventTimeZone": "Zona horaria de fin", + "kendo.scheduler.editorTitle": "Título", + "kendo.scheduler.editRecurringConfirmation": + "¿Quiere editar esta ocurrencia del evento o la serie completa?", + "kendo.scheduler.editRecurringDialogTitle": "Editar elemento recurrente", + "kendo.scheduler.editSeries": "Editar la serie", + "kendo.scheduler.eventHeader": "Evento", + "kendo.scheduler.monthViewTitle": "Mes", + "kendo.scheduler.multiDayViewTitle": "Multi-Day", + "kendo.scheduler.nextTitle": "Siguiente", + "kendo.scheduler.previousTitle": "Anterior", + "kendo.scheduler.recurrenceEditorDailyInterval": "día(s)", + "kendo.scheduler.recurrenceEditorDailyRepeatEvery": "Repetir cada:", + "kendo.scheduler.recurrenceEditorEndAfter": "Después", + "kendo.scheduler.recurrenceEditorEndLabel": "Fin", + "kendo.scheduler.recurrenceEditorEndNever": "Nunca", + "kendo.scheduler.recurrenceEditorEndOccurrence": "ocurrencia(s)", + "kendo.scheduler.recurrenceEditorEndOn": "On", + "kendo.scheduler.recurrenceEditorFrequenciesDaily": "Diariamente", + "kendo.scheduler.recurrenceEditorFrequenciesMonthly": "Mensualmente", + "kendo.scheduler.recurrenceEditorFrequenciesNever": "Nunca", + "kendo.scheduler.recurrenceEditorFrequenciesWeekly": "Semanalmente", + "kendo.scheduler.recurrenceEditorFrequenciesYearly": "Anualmente", + "kendo.scheduler.recurrenceEditorMonthlyDay": "Día", + "kendo.scheduler.recurrenceEditorMonthlyInterval": "mes(es)", + "kendo.scheduler.recurrenceEditorMonthlyRepeatEvery": "Repetir cada:", + "kendo.scheduler.recurrenceEditorMonthlyRepeatOn": "Repetir en:", + "kendo.scheduler.recurrenceEditorOffsetPositionsFirst": "primero", + "kendo.scheduler.recurrenceEditorOffsetPositionsFourth": "cuarto", + "kendo.scheduler.recurrenceEditorOffsetPositionsLast": "último", + "kendo.scheduler.recurrenceEditorOffsetPositionsSecond": "segundo", + "kendo.scheduler.recurrenceEditorOffsetPositionsThird": "tercero", + "kendo.scheduler.recurrenceEditorRepeat": "Repetir", + "kendo.scheduler.recurrenceEditorWeekdaysDay": "día", + "kendo.scheduler.recurrenceEditorWeekdaysWeekday": "día de semana", + "kendo.scheduler.recurrenceEditorWeekdaysWeekendday": "Día de fin de semana", + "kendo.scheduler.recurrenceEditorWeeklyInterval": "semana(s)", + "kendo.scheduler.recurrenceEditorWeeklyRepeatEvery": "Repetir cada:", + "kendo.scheduler.recurrenceEditorWeeklyRepeatOn": "Repetir en:", + "kendo.scheduler.recurrenceEditorYearlyInterval": "año(s)", + "kendo.scheduler.recurrenceEditorYearlyOf": "de", + "kendo.scheduler.recurrenceEditorYearlyRepeatEvery": "Repetir cada:", + "kendo.scheduler.recurrenceEditorYearlyRepeatOn": "Repetir en:", + "kendo.scheduler.showFullDay": "Mostrar día completo", + "kendo.scheduler.showWorkDay": "Mostrar horas laborables", + "kendo.scheduler.timeHeader": "Hora", + "kendo.scheduler.timelineMonthViewTitle": "Timeline Month", + "kendo.scheduler.timelineViewTitle": "Línea de tiempo", + "kendo.scheduler.timelineWeekViewTitle": "Timeline Week", + "kendo.scheduler.today": "Hoy", "kendo.scheduler.weekViewTitle": "Semana", "kendo.scheduler.workWeekViewTitle": "Semana laboral", - "kendo.scheduler.monthViewTitle": "Mes", }, }, }; diff --git a/examples-standalone/kendoangular-landing-page/src/assets/kendoka.png b/examples-standalone/kendoangular-landing-page/src/assets/kendoka.png new file mode 100644 index 0000000000000000000000000000000000000000..89dacef3a665dc6042cc63f2cbebbc70456269b0 GIT binary patch literal 20597 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�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 QGzEmX;ykgn2M%Zd4;H-jsQ>@~ literal 0 HcmV?d00001 diff --git a/examples-standalone/kendoangular-landing-page/src/main.ts b/examples-standalone/kendoangular-landing-page/src/main.ts index f8908bc7..264174ca 100644 --- a/examples-standalone/kendoangular-landing-page/src/main.ts +++ b/examples-standalone/kendoangular-landing-page/src/main.ts @@ -1,18 +1,15 @@ -import { bootstrapApplication } from '@angular/platform-browser'; -import { provideRouter, withHashLocation } from '@angular/router'; -import { APP_BASE_HREF } from '@angular/common'; -import { provideAnimations } from '@angular/platform-browser/animations'; +import { bootstrapApplication } from "@angular/platform-browser"; +import { provideRouter, withHashLocation } from "@angular/router"; +import { APP_BASE_HREF } from "@angular/common"; +import { provideAnimations } from "@angular/platform-browser/animations"; -import { AppComponent } from './app/app.component'; -import { routes } from './app/app.routes'; +import { AppComponent } from "./app/app.component"; +import { routes } from "./app/app.routes"; bootstrapApplication(AppComponent, { - providers: [ - provideRouter( - routes, - withHashLocation() - ), - { provide: APP_BASE_HREF, useValue: '/overview/' }, - provideAnimations() - ] -}).catch(err => console.error(err)); \ No newline at end of file + providers: [ + provideRouter(routes, withHashLocation()), + { provide: APP_BASE_HREF, useValue: "/overview/" }, + provideAnimations(), + ], +}).catch((err) => console.error(err)); From 3a9e83061b515ec7c6d76ad9deac8dd3e6d9f948 Mon Sep 17 00:00:00 2001 From: Yanmario Menev <49076727+yanmariomenev@users.noreply.github.com> Date: Mon, 28 Apr 2025 17:14:04 +0300 Subject: [PATCH 3/7] chore: update dialogs and add prettierr config --- .../kendoangular-landing-page/.prettierignore | 3 + .../kendoangular-landing-page/.prettierrc | 5 ++ .../components/dialogs/dialogs.component.css | 31 +++----- .../components/dialogs/dialogs.component.html | 13 +--- .../components/dialogs/dialogs.component.ts | 30 ++++---- .../scheduler/scheduler.component.ts | 77 +++++++++---------- .../src/app/services/locale.service.ts | 11 --- 7 files changed, 73 insertions(+), 97 deletions(-) create mode 100644 examples-standalone/kendoangular-landing-page/.prettierignore create mode 100644 examples-standalone/kendoangular-landing-page/.prettierrc delete mode 100644 examples-standalone/kendoangular-landing-page/src/app/services/locale.service.ts diff --git a/examples-standalone/kendoangular-landing-page/.prettierignore b/examples-standalone/kendoangular-landing-page/.prettierignore new file mode 100644 index 00000000..01d9367c --- /dev/null +++ b/examples-standalone/kendoangular-landing-page/.prettierignore @@ -0,0 +1,3 @@ +# Add files here to ignore them from prettier formatting + +/dist \ No newline at end of file diff --git a/examples-standalone/kendoangular-landing-page/.prettierrc b/examples-standalone/kendoangular-landing-page/.prettierrc new file mode 100644 index 00000000..af385bcb --- /dev/null +++ b/examples-standalone/kendoangular-landing-page/.prettierrc @@ -0,0 +1,5 @@ +{ + "singleQuote": true, + "printWidth": 120, + "tabWidth": 4 +} diff --git a/examples-standalone/kendoangular-landing-page/src/app/components/dialogs/dialogs.component.css b/examples-standalone/kendoangular-landing-page/src/app/components/dialogs/dialogs.component.css index f88dcb7c..c9714aa5 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/components/dialogs/dialogs.component.css +++ b/examples-standalone/kendoangular-landing-page/src/app/components/dialogs/dialogs.component.css @@ -25,22 +25,14 @@ font-size: 20px; } -.window-content { - padding: 15px; -} - -.window-header { - display: flex; - align-items: center; - margin-bottom: 20px; - padding-bottom: 15px; - border-bottom: 1px solid #eee; +kendo-window { + --kendo-window-titlebar-bg: #3f51b5; + --kendo-window-titlebar-text: white; + margin-top: 0; } -.window-header .k-icon { - font-size: 24px; - margin-right: 10px; - color: #ff6358; +.window-content { + padding: 15px; } .success-message, @@ -57,11 +49,6 @@ border-left-color: #2196f3; } -kendo-window { - --kendo-window-titlebar-bg: #3f51b5; - --kendo-window-titlebar-text: white; -} - .k-form-field { margin-bottom: 15px; } @@ -75,12 +62,14 @@ fieldset { legend { padding: 0 10px; - font-weight: 500; + font-size: 14px; + font-weight: bold; + margin-bottom: 5px; color: #455a64; } .k-actions { - margin-top: 20px; + margin-top: 15px; } @media (max-width: 768px) { diff --git a/examples-standalone/kendoangular-landing-page/src/app/components/dialogs/dialogs.component.html b/examples-standalone/kendoangular-landing-page/src/app/components/dialogs/dialogs.component.html index 4d42870a..de5e5cc4 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/components/dialogs/dialogs.component.html +++ b/examples-standalone/kendoangular-landing-page/src/app/components/dialogs/dialogs.component.html @@ -32,18 +32,13 @@

Kendo Angular Dialog

title="Complete Your Profile" [minWidth]="320" [width]="500" - [height]="590" - [top]="160" + [height]="430" + [top]="80" [resizable]="true" [draggable]="true" (close)="closeWindow()" >
-
- -

Please fill in your profile information to continue

-
-
Personal Information @@ -69,10 +64,6 @@

Kendo Angular Dialog

-
- - -
diff --git a/examples-standalone/kendoangular-landing-page/src/app/components/dialogs/dialogs.component.ts b/examples-standalone/kendoangular-landing-page/src/app/components/dialogs/dialogs.component.ts index 7ef04c92..aefbd42a 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/components/dialogs/dialogs.component.ts +++ b/examples-standalone/kendoangular-landing-page/src/app/components/dialogs/dialogs.component.ts @@ -1,23 +1,23 @@ -import { Component } from "@angular/core"; -import { FormsModule } from "@angular/forms"; -import { KENDO_BUTTONS } from "@progress/kendo-angular-buttons"; -import { KENDO_DATEINPUTS } from "@progress/kendo-angular-dateinputs"; -import { KENDO_DIALOGS } from "@progress/kendo-angular-dialog"; -import { KENDO_INPUTS } from "@progress/kendo-angular-inputs"; +import { Component } from '@angular/core'; +import { FormsModule } from '@angular/forms'; +import { KENDO_BUTTONS } from '@progress/kendo-angular-buttons'; +import { KENDO_DATEINPUTS } from '@progress/kendo-angular-dateinputs'; +import { KENDO_DIALOGS } from '@progress/kendo-angular-dialog'; +import { KENDO_INPUTS } from '@progress/kendo-angular-inputs'; @Component({ - selector: "app-dialogs", + selector: 'app-dialogs', imports: [KENDO_DIALOGS, KENDO_BUTTONS, KENDO_INPUTS, KENDO_DATEINPUTS, FormsModule], - templateUrl: "./dialogs.component.html", - styleUrl: "./dialogs.component.css", + templateUrl: './dialogs.component.html', + styleUrl: './dialogs.component.css', }) export class DialogsComponent { public windowOpened = true; public formSubmitted = false; - public firstName = ""; - public lastName = ""; + public firstName = ''; + public lastName = ''; public dialogOpened = false; - public confirmationResult = ""; + public confirmationResult = ''; public openWindow(): void { this.windowOpened = true; @@ -47,8 +47,8 @@ export class DialogsComponent { public reset(): void { this.formSubmitted = false; - this.confirmationResult = ""; - this.firstName = ""; - this.lastName = ""; + this.confirmationResult = ''; + this.firstName = ''; + this.lastName = ''; } } diff --git a/examples-standalone/kendoangular-landing-page/src/app/components/scheduler/scheduler.component.ts b/examples-standalone/kendoangular-landing-page/src/app/components/scheduler/scheduler.component.ts index 74d6262c..d13b731b 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/components/scheduler/scheduler.component.ts +++ b/examples-standalone/kendoangular-landing-page/src/app/components/scheduler/scheduler.component.ts @@ -1,74 +1,73 @@ -import { ChangeDetectorRef, Component, Inject, LOCALE_ID } from "@angular/core"; -import { FormBuilder, FormGroup, ReactiveFormsModule } from "@angular/forms"; -import { KENDO_DROPDOWNLIST } from "@progress/kendo-angular-dropdowns"; -import { CldrIntlService, IntlService } from "@progress/kendo-angular-intl"; -import { MessageService } from "@progress/kendo-angular-l10n"; -import { CreateFormGroupArgs, KENDO_SCHEDULER } from "@progress/kendo-angular-scheduler"; -import { KENDO_TOOLBAR } from "@progress/kendo-angular-toolbar"; -import { customModelFields, displayDate, sampleDataWithCustomSchema } from "../../data/scheduler-data"; -import { SchedulerMessageService } from "../../services/scheduler-message.service"; +import { Component, Inject, LOCALE_ID } from '@angular/core'; +import { FormBuilder, FormGroup, ReactiveFormsModule } from '@angular/forms'; +import { KENDO_DROPDOWNLIST } from '@progress/kendo-angular-dropdowns'; +import { CldrIntlService, IntlService } from '@progress/kendo-angular-intl'; +import { MessageService } from '@progress/kendo-angular-l10n'; +import { CreateFormGroupArgs, KENDO_SCHEDULER } from '@progress/kendo-angular-scheduler'; +import { KENDO_TOOLBAR } from '@progress/kendo-angular-toolbar'; +import { customModelFields, displayDate, sampleDataWithCustomSchema } from '../../data/scheduler-data'; +import { SchedulerMessageService } from '../../services/scheduler-message.service'; -import "@progress/kendo-angular-intl/locales/en/all"; -import "@progress/kendo-angular-intl/locales/es/all"; +import '@progress/kendo-angular-intl/locales/en/all'; +import '@progress/kendo-angular-intl/locales/es/all'; interface LanguageOption { text: string; value: string; } @Component({ - selector: "app-scheduler", + selector: 'app-scheduler', imports: [KENDO_SCHEDULER, KENDO_TOOLBAR, KENDO_DROPDOWNLIST, ReactiveFormsModule], providers: [ { provide: MessageService, useClass: SchedulerMessageService }, - { provide: LOCALE_ID, useValue: "en" }, + { provide: LOCALE_ID, useValue: 'en' }, ], - templateUrl: "./scheduler.component.html", - styleUrls: ["./scheduler.component.css"], + templateUrl: './scheduler.component.html', + styleUrls: ['./scheduler.component.css'], }) export class SchedulerComponent { public selectedDate: Date = displayDate; public events: any[] = sampleDataWithCustomSchema; - public currentView: string = "day"; + public currentView: string = 'day'; public modelFields = customModelFields; - public orientation: "horizontal" | "vertical" = "horizontal"; + public orientation: 'horizontal' | 'vertical' = 'horizontal'; public formGroup!: FormGroup; - public group: any = { resources: ["Rooms", "Persons"] }; + public group: any = { resources: ['Rooms', 'Persons'] }; public resources = [ { - name: "Rooms", + name: 'Rooms', data: [ - { text: "Meeting Room 101", value: 1, color: "#5392E4" }, - { text: "Meeting Room 201", value: 2, color: "#FF7272" }, + { text: 'Meeting Room 101', value: 1, color: '#5392E4' }, + { text: 'Meeting Room 201', value: 2, color: '#FF7272' }, ], - field: "RoomID", - valueField: "value", - textField: "text", - colorField: "color", + field: 'RoomID', + valueField: 'value', + textField: 'text', + colorField: 'color', }, { - name: "Persons", + name: 'Persons', data: [ - { text: "Peter", value: 1, color: "#5392E4" }, - { text: "Alex", value: 2, color: "#54677B" }, + { text: 'Peter', value: 1, color: '#5392E4' }, + { text: 'Alex', value: 2, color: '#54677B' }, ], - field: "PersonIDs", - valueField: "value", - textField: "text", - colorField: "color", + field: 'PersonIDs', + valueField: 'value', + textField: 'text', + colorField: 'color', }, ]; public languages: LanguageOption[] = [ - { text: "English", value: "en" }, - { text: "Spanish", value: "es" }, + { text: 'English', value: 'en' }, + { text: 'Spanish', value: 'es' }, ]; - public selectedLanguage: any = { text: "English", value: "en-US" }; + public selectedLanguage: any = { text: 'English', value: 'en-US' }; constructor( private formBuilder: FormBuilder, private messages: MessageService, @Inject(LOCALE_ID) public localeId: string, - public intlService: IntlService, - private cdr: ChangeDetectorRef + public intlService: IntlService ) { this.createFormGroup = this.createFormGroup.bind(this); } @@ -121,12 +120,12 @@ export class SchedulerComponent { } } - public handleOrientationChange(orientation: "horizontal" | "vertical"): void { + public handleOrientationChange(orientation: 'horizontal' | 'vertical'): void { this.orientation = orientation; } public changeLanguage(language: LanguageOption): void { const svc = this.messages; - svc.language = svc.language === "es" ? "en" : "es"; + svc.language = svc.language === 'es' ? 'en' : 'es'; (this.intlService as CldrIntlService).localeId = language.value; } } diff --git a/examples-standalone/kendoangular-landing-page/src/app/services/locale.service.ts b/examples-standalone/kendoangular-landing-page/src/app/services/locale.service.ts deleted file mode 100644 index 7ad49595..00000000 --- a/examples-standalone/kendoangular-landing-page/src/app/services/locale.service.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Injectable } from '@angular/core'; -import { CldrIntlService } from '@progress/kendo-angular-intl'; -import '@progress/kendo-angular-intl/locales/es/all'; - -@Injectable() -export class MyService extends CldrIntlService { - constructor() { - super('es-ES'); - } - -} From 71d96acb88d73f6536d7ffd54d1405af2d364c49 Mon Sep 17 00:00:00 2001 From: Georgi Slavov Date: Mon, 28 Apr 2025 19:17:25 +0300 Subject: [PATCH 4/7] chore: fix initial comments for layout, grid, treeview, conversationalui --- .../conversational-ui.component.html | 5 +- .../conversational-ui.component.ts | 114 +--- .../grid/dynamic-grid.component.css | 6 +- .../layout/my-layout.component.html | 10 +- .../treeview/treeview.component.html | 4 +- .../src/app/data/ai-prompt-data.ts | 33 + .../src/app/data/dynamic-data.ts | 623 +++++++++--------- .../src/app/services/data.service.ts | 11 +- .../kendoangular-landing-page/src/styles.css | 2 +- 9 files changed, 394 insertions(+), 414 deletions(-) create mode 100644 examples-standalone/kendoangular-landing-page/src/app/data/ai-prompt-data.ts diff --git a/examples-standalone/kendoangular-landing-page/src/app/components/conversational-ui/conversational-ui.component.html b/examples-standalone/kendoangular-landing-page/src/app/components/conversational-ui/conversational-ui.component.html index 9d4194cf..68789e7e 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/components/conversational-ui/conversational-ui.component.html +++ b/examples-standalone/kendoangular-landing-page/src/app/components/conversational-ui/conversational-ui.component.html @@ -10,15 +10,12 @@ -
diff --git a/examples-standalone/kendoangular-landing-page/src/app/components/conversational-ui/conversational-ui.component.ts b/examples-standalone/kendoangular-landing-page/src/app/components/conversational-ui/conversational-ui.component.ts index 354e12b4..0c3549e1 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/components/conversational-ui/conversational-ui.component.ts +++ b/examples-standalone/kendoangular-landing-page/src/app/components/conversational-ui/conversational-ui.component.ts @@ -1,85 +1,42 @@ -import { CommonModule } from "@angular/common"; -import { Component } from "@angular/core"; +import { CommonModule } from '@angular/common'; +import { Component } from '@angular/core'; -import { KENDO_BUTTONS } from "@progress/kendo-angular-buttons"; +import { KENDO_BUTTONS } from '@progress/kendo-angular-buttons'; +import { guid } from '@progress/kendo-angular-common'; import { - CommandExecuteEvent, KENDO_CONVERSATIONALUI, Message, - PromptCommand, PromptOutput, PromptRequestEvent, SendMessageEvent, User, -} from "@progress/kendo-angular-conversational-ui"; -import { KENDO_INPUTS } from "@progress/kendo-angular-inputs"; -import { KENDO_LAYOUT } from "@progress/kendo-angular-layout"; -import { - bellIcon, - eyeIcon, - infoCircleIcon, - questionCircleIcon, - SVGIcon, - warningCircleIcon, - xIcon, -} from "@progress/kendo-svg-icons"; - -import { from, merge, Observable, Subject } from "rxjs"; -import { map, scan } from "rxjs/operators"; -import { ChatService } from "./chat.service"; +} from '@progress/kendo-angular-conversational-ui'; +import { KENDO_INPUTS } from '@progress/kendo-angular-inputs'; +import { KENDO_LAYOUT } from '@progress/kendo-angular-layout'; +import { eyeIcon, SVGIcon, xIcon } from '@progress/kendo-svg-icons'; +import { from, merge, Observable, Subject } from 'rxjs'; +import { map, scan } from 'rxjs/operators'; +import { defaultResponse, promptData } from '../../data/ai-prompt-data'; +import { ChatService } from './chat.service'; @Component({ - selector: "app-conversational-ui", + selector: 'app-conversational-ui', imports: [CommonModule, KENDO_CONVERSATIONALUI, KENDO_BUTTONS, KENDO_INPUTS, KENDO_LAYOUT], providers: [ChatService], - templateUrl: "./conversational-ui.component.html", - styleUrl: "./conversational-ui.component.css", + templateUrl: './conversational-ui.component.html', + styleUrl: './conversational-ui.component.css', }) export class ConversationalUiComponent { - public closeIcon: SVGIcon = xIcon; - public eye: SVGIcon = eyeIcon; public feed: Observable; - + public promptOutputs: PromptOutput[] = []; + public activeView: number = 0; public readonly user: User = { id: 1, }; - public readonly bot: User = { id: 0, }; - - public promptOutputs: PromptOutput[] = []; - public activeView: number = 0; - public idCounter = 0; - - public commands: PromptCommand[] = [ - { - text: "Command text 1", - id: 0, - icon: "bell", - svgIcon: bellIcon, - }, - { - text: "Command text 2", - id: 1, - icon: "info", - svgIcon: infoCircleIcon, - }, - { - text: "Command text 3", - id: 2, - icon: "question", - svgIcon: questionCircleIcon, - }, - { - text: "Command text 4", - id: 3, - icon: "warning", - svgIcon: warningCircleIcon, - }, - ]; - - public suggestions: string[] = ["Generate out-of-office email template", "Write a LinkedIn post on the importance of work/life balance"]; + public promptSuggestions = promptData.map((s) => s.suggestion); private local: Subject = new Subject(); @@ -88,16 +45,16 @@ export class ConversationalUiComponent { author: this.bot, suggestedActions: [ { - type: "reply", - value: "Neat!", + type: 'reply', + value: 'Neat!', }, { - type: "reply", - value: "Thanks, but this is boring.", + type: 'reply', + value: 'Thanks, but this is boring.', }, ], timestamp: new Date(), - text: "Hello, this is a demo bot. I don`t do much, but I can count symbols!", + text: 'Hello, this is a demo bot. I don`t do much, but I can count symbols!', }; this.feed = merge( @@ -135,23 +92,18 @@ export class ConversationalUiComponent { this.activeView = 1; } - public onCommandExecute(ev: CommandExecuteEvent): void { - this.createPromptOutput(ev); - this.activeView = 1; - } + private createPromptOutput(ev: PromptRequestEvent): void { + const response = promptData.find((s) => s.suggestion === ev.prompt); - private createPromptOutput(ev: PromptRequestEvent | CommandExecuteEvent): void { - this.idCounter += 1; - const newOutput = { - title: ev.isRetry ? "Retry test title" : "Test title", - id: this.idCounter, - prompt: (ev as PromptRequestEvent).prompt - ? (ev as PromptRequestEvent).prompt - : (ev as CommandExecuteEvent).command.text, - output: "Test content", + const output: PromptOutput = { + id: guid(), + title: ev.prompt, + output: response?.response || defaultResponse, + prompt: ev.prompt, isRetry: ev.isRetry, - commandId: (ev as PromptRequestEvent).prompt ? null : (ev as CommandExecuteEvent).command.id, }; - this.promptOutputs.unshift(newOutput as PromptOutput); + + this.promptOutputs.unshift(output); + this.activeView = 1; } } diff --git a/examples-standalone/kendoangular-landing-page/src/app/components/grid/dynamic-grid.component.css b/examples-standalone/kendoangular-landing-page/src/app/components/grid/dynamic-grid.component.css index 22357cb2..383ba1ae 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/components/grid/dynamic-grid.component.css +++ b/examples-standalone/kendoangular-landing-page/src/app/components/grid/dynamic-grid.component.css @@ -15,12 +15,12 @@ } .red { - color: #f31700; + color: #d51923; } .green { - color: #37b400; + color: #278200; } .k-grid .k-table-row.k-table-alt-row { background-color: transparent; -} \ No newline at end of file +} diff --git a/examples-standalone/kendoangular-landing-page/src/app/components/layout/my-layout.component.html b/examples-standalone/kendoangular-landing-page/src/app/components/layout/my-layout.component.html index 78d0fecc..9e5e7eae 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/components/layout/my-layout.component.html +++ b/examples-standalone/kendoangular-landing-page/src/app/components/layout/my-layout.component.html @@ -5,7 +5,15 @@ - + diff --git a/examples-standalone/kendoangular-landing-page/src/app/components/treeview/treeview.component.html b/examples-standalone/kendoangular-landing-page/src/app/components/treeview/treeview.component.html index 46cd72e5..f9e091bc 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/components/treeview/treeview.component.html +++ b/examples-standalone/kendoangular-landing-page/src/app/components/treeview/treeview.component.html @@ -1,6 +1,6 @@
-

TreeView - Multiple Selection Mode with Checkboxes

+

Multiple Selection Mode with Checkboxes

-

TreeView - Drag and Drop Support

+

Drag and Drop Support

({ - id: index + 1, - assetType: assetTypes[Math.floor(Math.random() * assetTypes.length)], - status: statuses[Math.floor(Math.random() * statuses.length)], - company: companies[Math.floor(Math.random() * companies.length)], - price: prices[Math.floor(Math.random() * prices.length)], - change: changes[Math.floor(Math.random() * changes.length)], -})); diff --git a/examples-standalone/kendoangular-landing-page/src/app/services/data.service.ts b/examples-standalone/kendoangular-landing-page/src/app/services/data.service.ts index d0e22049..887b7235 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/services/data.service.ts +++ b/examples-standalone/kendoangular-landing-page/src/app/services/data.service.ts @@ -1,11 +1,10 @@ import { Injectable } from '@angular/core'; -import { Observable, BehaviorSubject, from } from 'rxjs'; -import { delay, map, take } from 'rxjs/operators'; -import { data, prices, changes, assetTypes, statuses, companies } from '../data/dynamic-data'; -import { DynamicGridItem } from '../models/dynamic-grid-item'; -import { CompositeFilterDescriptor, FilterDescriptor, SortDescriptor, State } from '@progress/kendo-data-query'; -import { process, orderBy, filterBy } from '@progress/kendo-data-query'; import { GridDataResult } from '@progress/kendo-angular-grid'; +import { process, State } from '@progress/kendo-data-query'; +import { BehaviorSubject, Observable } from 'rxjs'; +import { map } from 'rxjs/operators'; +import { assetTypes, changes, companies, prices, statuses } from '../data/dynamic-data'; +import { DynamicGridItem } from '../models/dynamic-grid-item'; @Injectable({ providedIn: 'root', diff --git a/examples-standalone/kendoangular-landing-page/src/styles.css b/examples-standalone/kendoangular-landing-page/src/styles.css index 47d12d97..7f8d5954 100644 --- a/examples-standalone/kendoangular-landing-page/src/styles.css +++ b/examples-standalone/kendoangular-landing-page/src/styles.css @@ -1,5 +1,5 @@ :root { - --kendo-font-family: "Roboto", sans-serif; + --kendo-font-family: 'Roboto', sans-serif; } body { font-family: var(--kendo-font-family); From e8dba29784bff2c3978f20df0479434ea9017d98 Mon Sep 17 00:00:00 2001 From: Yanmario Menev <49076727+yanmariomenev@users.noreply.github.com> Date: Tue, 29 Apr 2025 17:27:30 +0300 Subject: [PATCH 5/7] chore: update chip styling --- .../grid/dynamic-grid.component.css | 32 +++++++++++++++++++ .../grid/dynamic-grid.component.html | 8 +++-- .../components/grid/dynamic-grid.component.ts | 13 -------- 3 files changed, 37 insertions(+), 16 deletions(-) diff --git a/examples-standalone/kendoangular-landing-page/src/app/components/grid/dynamic-grid.component.css b/examples-standalone/kendoangular-landing-page/src/app/components/grid/dynamic-grid.component.css index 383ba1ae..3231414e 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/components/grid/dynamic-grid.component.css +++ b/examples-standalone/kendoangular-landing-page/src/app/components/grid/dynamic-grid.component.css @@ -21,6 +21,38 @@ .green { color: #278200; } + .k-grid .k-table-row.k-table-alt-row { background-color: transparent; } + +.status-chip-filled, +.status-chip-filled:hover { + background-color: rgb(0, 88, 233); + border-color: var(--kendo-color-info-emphasis, #4082ef); + color: rgb(255, 255, 255); +} + +.status-chip-open, +.status-chip-open:hover { + background-color: rgb(40, 133, 0); + border-color: var(--kendo-color-success-emphasis, #37b400); + color: rgb(255, 255, 255); +} + +.status-chip-rejected, +.status-chip-rejected:hover { + background-color: rgb(235, 23, 0); + border-color: var(--kendo-color-error-emphasis, #d51923); + color: rgb(255, 255, 255); +} +.k-chip { + width: 45px; + height: 10px; +} +.k-chip-content { + justify-content: center; + font-weight: 400; + font-size: 10px; + font-family: 'Roboto', sans-serif; +} diff --git a/examples-standalone/kendoangular-landing-page/src/app/components/grid/dynamic-grid.component.html b/examples-standalone/kendoangular-landing-page/src/app/components/grid/dynamic-grid.component.html index 51bfa95b..10af831f 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/components/grid/dynamic-grid.component.html +++ b/examples-standalone/kendoangular-landing-page/src/app/components/grid/dynamic-grid.component.html @@ -115,9 +115,11 @@ {{ column.title }} - {{ - dataItem.status - }} + + {{ dataItem.status }} + diff --git a/examples-standalone/kendoangular-landing-page/src/app/components/grid/dynamic-grid.component.ts b/examples-standalone/kendoangular-landing-page/src/app/components/grid/dynamic-grid.component.ts index 71c8d3d8..e7b13e09 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/components/grid/dynamic-grid.component.ts +++ b/examples-standalone/kendoangular-landing-page/src/app/components/grid/dynamic-grid.component.ts @@ -107,19 +107,6 @@ export class DynamicGridComponent implements OnInit, OnDestroy { this.dataService.updateRefreshInterval(event); } - public getThemeColor(status: string): ChipThemeColor { - switch (status) { - case 'Filled': - return 'info'; - case 'Open': - return 'success'; - case 'Rejected': - return 'error'; - default: - return 'base'; - } - } - public getAssetTypeIcon(assetType: string): SafeHtml { if (assetType === 'Real Estate') { return this.domSanitizer.bypassSecurityTrustHtml(realEstateIcon); From 82fe0f59f7f3397fbbeddd2e7ff95ff8d5410de1 Mon Sep 17 00:00:00 2001 From: Yanmario Menev <49076727+yanmariomenev@users.noreply.github.com> Date: Tue, 29 Apr 2025 17:47:03 +0300 Subject: [PATCH 6/7] chore: update layout demo --- .../components/layout/my-layout.component.css | 19 +++++++++++++----- .../layout/my-layout.component.html | 8 +++++++- .../components/layout/my-layout.component.ts | 6 ++++-- .../src/assets/kendoka-angular.png | Bin 0 -> 12967 bytes 4 files changed, 25 insertions(+), 8 deletions(-) create mode 100644 examples-standalone/kendoangular-landing-page/src/assets/kendoka-angular.png diff --git a/examples-standalone/kendoangular-landing-page/src/app/components/layout/my-layout.component.css b/examples-standalone/kendoangular-landing-page/src/app/components/layout/my-layout.component.css index 8859b9d0..9188b0b6 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/components/layout/my-layout.component.css +++ b/examples-standalone/kendoangular-landing-page/src/app/components/layout/my-layout.component.css @@ -31,21 +31,30 @@ html { .custom-toolbar { width: 100%; - background-color: #f6f6f6; - line-height: 10px; + height: 48px; + background-color: #757575; border-bottom: inset; border-bottom-width: 1px; padding: 3px; - color: #656565; + color: #ffffff; flex-shrink: 0; + display: flex; + justify-content: space-between; + align-items: center; +} + +.custom-toolbar kendo-avatar { + margin-right: 10px; } + .mail-box { font-weight: bold; font-size: 17px; + padding-left: 8px; } h5 { - font-size: 1.25rem!important; + font-size: 1.25rem !important; font-weight: 500; margin: 0; padding: 0; -} \ No newline at end of file +} diff --git a/examples-standalone/kendoangular-landing-page/src/app/components/layout/my-layout.component.html b/examples-standalone/kendoangular-landing-page/src/app/components/layout/my-layout.component.html index 9e5e7eae..cd95e427 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/components/layout/my-layout.component.html +++ b/examples-standalone/kendoangular-landing-page/src/app/components/layout/my-layout.component.html @@ -1,8 +1,14 @@
+
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 literal 0 HcmV?d00001 From 08c44d71dd8b75b7caca0c44c4350f9c8f317a3a Mon Sep 17 00:00:00 2001 From: Yanmario Menev <49076727+yanmariomenev@users.noreply.github.com> Date: Tue, 29 Apr 2025 17:52:54 +0300 Subject: [PATCH 7/7] chore: minor size adjustment --- .../src/app/components/layout/my-layout.component.css | 2 +- .../src/app/components/layout/my-layout.component.html | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples-standalone/kendoangular-landing-page/src/app/components/layout/my-layout.component.css b/examples-standalone/kendoangular-landing-page/src/app/components/layout/my-layout.component.css index 9188b0b6..a5c0ef84 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/components/layout/my-layout.component.css +++ b/examples-standalone/kendoangular-landing-page/src/app/components/layout/my-layout.component.css @@ -31,7 +31,7 @@ html { .custom-toolbar { width: 100%; - height: 48px; + height: 41px; background-color: #757575; border-bottom: inset; border-bottom-width: 1px; diff --git a/examples-standalone/kendoangular-landing-page/src/app/components/layout/my-layout.component.html b/examples-standalone/kendoangular-landing-page/src/app/components/layout/my-layout.component.html index cd95e427..2cc8a421 100644 --- a/examples-standalone/kendoangular-landing-page/src/app/components/layout/my-layout.component.html +++ b/examples-standalone/kendoangular-landing-page/src/app/components/layout/my-layout.component.html @@ -6,8 +6,8 @@

Drawer component