@progress/kendo-angular-dialog 19.3.0-develop.9 → 19.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/common/util.d.ts CHANGED
@@ -11,21 +11,6 @@ export declare const isPresent: (value: any) => boolean;
11
11
  * @hidden
12
12
  */
13
13
  export declare const isTruthy: (value: any) => boolean;
14
- /**
15
- * @hidden
16
- */
17
- export declare enum Keys {
18
- 'esc' = 27,
19
- 'tab' = 9,
20
- 'enter' = 13,
21
- 'space' = 32,
22
- 'ctrl' = 17,
23
- 'shift' = 16,
24
- 'left' = 37,
25
- 'up' = 38,
26
- 'right' = 39,
27
- 'down' = 40
28
- }
29
14
  /**
30
15
  * @hidden
31
16
  */
@@ -151,6 +151,10 @@ export declare class DialogComponent implements AfterContentInit, AfterViewInit,
151
151
  * @hidden
152
152
  */
153
153
  showLicenseWatermark: boolean;
154
+ /**
155
+ * @hidden
156
+ */
157
+ licenseMessage?: string;
154
158
  /**
155
159
  * Emits when the user clicks an action button in the Dialog. Fires only if you specify action buttons through the `actions` option.
156
160
  *
@@ -14,22 +14,6 @@ export const isPresent = (value) => value !== null && value !== undefined;
14
14
  export const isTruthy = (value) => !!value;
15
15
  const toClassList = (classNames) => String(classNames).trim().split(' ');
16
16
  const focusableRegex = /^(?:a|input|select|textarea|button|object)$/i;
17
- /**
18
- * @hidden
19
- */
20
- export var Keys;
21
- (function (Keys) {
22
- Keys[Keys["esc"] = 27] = "esc";
23
- Keys[Keys["tab"] = 9] = "tab";
24
- Keys[Keys["enter"] = 13] = "enter";
25
- Keys[Keys["space"] = 32] = "space";
26
- Keys[Keys["ctrl"] = 17] = "ctrl";
27
- Keys[Keys["shift"] = 16] = "shift";
28
- Keys[Keys["left"] = 37] = "left";
29
- Keys[Keys["up"] = 38] = "up";
30
- Keys[Keys["right"] = 39] = "right";
31
- Keys[Keys["down"] = 40] = "down";
32
- })(Keys || (Keys = {}));
33
17
  /**
34
18
  * @hidden
35
19
  */
@@ -10,8 +10,8 @@ import { DialogTitleBarComponent } from './dialog-titlebar.component';
10
10
  import { LocalizationService, L10N_PREFIX } from '@progress/kendo-angular-l10n';
11
11
  import { validatePackage } from '@progress/kendo-licensing';
12
12
  import { packageMetadata } from '../package-metadata';
13
- import { hasClasses, Keys, isPresent, isFocusable, DIALOG_ELEMENTS_HANDLING_ARROWS, DIALOG_ELEMENTS_HANDLING_ESC_KEY, createValueWithUnit, parseCSSClassNames, findPrimaryButton } from '../common/util';
14
- import { focusableSelector, shouldShowValidationUI, setHTMLAttributes } from '@progress/kendo-angular-common';
13
+ import { hasClasses, isPresent, isFocusable, DIALOG_ELEMENTS_HANDLING_ARROWS, DIALOG_ELEMENTS_HANDLING_ESC_KEY, createValueWithUnit, parseCSSClassNames, findPrimaryButton } from '../common/util';
14
+ import { focusableSelector, shouldShowValidationUI, getLicenseMessage, setHTMLAttributes, Keys, normalizeNumpadKeys } from '@progress/kendo-angular-common';
15
15
  import { DialogCloseResult } from './models/dialog-close-result';
16
16
  import { DIALOG_LOCALIZATION_SERVICE } from './../localization/dialog-localization.service';
17
17
  import { take } from 'rxjs/operators';
@@ -182,6 +182,10 @@ export class DialogComponent {
182
182
  * @hidden
183
183
  */
184
184
  showLicenseWatermark = false;
185
+ /**
186
+ * @hidden
187
+ */
188
+ licenseMessage;
185
189
  /**
186
190
  * Emits when the user clicks an action button in the Dialog. Fires only if you specify action buttons through the `actions` option.
187
191
  *
@@ -215,6 +219,7 @@ export class DialogComponent {
215
219
  this.ngZone = ngZone;
216
220
  this.builder = builder;
217
221
  const isValid = validatePackage(packageMetadata);
222
+ this.licenseMessage = getLicenseMessage(packageMetadata);
218
223
  this.showLicenseWatermark = shouldShowValidationUI(isValid);
219
224
  this.direction = localization.rtl ? 'rtl' : 'ltr';
220
225
  this.subscriptions.push(localization.changes.subscribe(({ rtl }) => (this.direction = rtl ? 'rtl' : 'ltr')));
@@ -302,20 +307,21 @@ export class DialogComponent {
302
307
  onKeyDown(event) {
303
308
  const target = event.target;
304
309
  const parent = target.parentElement;
310
+ const code = normalizeNumpadKeys(event);
305
311
  if (hasClasses(target, DIALOG_ELEMENTS_HANDLING_ESC_KEY) || hasClasses(parent, DIALOG_ELEMENTS_HANDLING_ESC_KEY)) {
306
- if (event.keyCode === Keys.esc) {
312
+ if (code === Keys.Escape) {
307
313
  this.ngZone.run(() => {
308
314
  this.close.emit(new DialogCloseResult());
309
315
  });
310
316
  }
311
317
  }
312
318
  if (hasClasses(target, 'k-button') && hasClasses(parent, DIALOG_ELEMENTS_HANDLING_ARROWS) &&
313
- (event.keyCode === Keys.left || event.keyCode === Keys.right)) {
319
+ (code === Keys.ArrowLeft || code === Keys.ArrowRight)) {
314
320
  this.ngZone.run(() => {
315
- this.handleActionButtonFocus(parent, event.keyCode);
321
+ this.handleActionButtonFocus(parent, code);
316
322
  });
317
323
  }
318
- if (event.keyCode === Keys.tab) {
324
+ if (code === Keys.Tab) {
319
325
  this.ngZone.run(() => {
320
326
  this.keepFocusWithinComponent(target, event);
321
327
  });
@@ -368,11 +374,11 @@ export class DialogComponent {
368
374
  for (let i = 0; i < focusableActionButtons.length; i++) {
369
375
  const current = focusableActionButtons[i];
370
376
  if (current === document.activeElement) {
371
- if (key === Keys.left && i > 0) {
377
+ if (key === Keys.ArrowLeft && i > 0) {
372
378
  focusableActionButtons[i - 1].focus();
373
379
  break;
374
380
  }
375
- if (key === Keys.right && i < focusableActionButtons.length - 1) {
381
+ if (key === Keys.ArrowRight && i < focusableActionButtons.length - 1) {
376
382
  focusableActionButtons[i + 1].focus();
377
383
  break;
378
384
  }
@@ -505,10 +511,10 @@ export class DialogComponent {
505
511
  <ng-content select="kendo-dialog-actions" *ngIf="!actions"></ng-content>
506
512
  <kendo-dialog-actions *ngIf="actions" [actions]="actions" [layout]="actionsLayout"> </kendo-dialog-actions>
507
513
 
508
- <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
514
+ <div kendoWatermarkOverlay *ngIf="showLicenseWatermark" [licenseMessage]="licenseMessage"></div>
509
515
  </div>
510
516
  </ng-container>
511
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDialogLocalizedMessages],\n [kendoWindowLocalizedMessages],\n [kendoDialogTitleBarLocalizedMessages]\n " }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DialogTitleBarComponent, selector: "kendo-dialog-titlebar", inputs: ["id", "closeTitle"], outputs: ["close"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }], animations: [
517
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDialogLocalizedMessages],\n [kendoWindowLocalizedMessages],\n [kendoDialogTitleBarLocalizedMessages]\n " }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DialogTitleBarComponent, selector: "kendo-dialog-titlebar", inputs: ["id", "closeTitle"], outputs: ["close"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]", inputs: ["licenseMessage"] }], animations: [
512
518
  trigger('overlayAppear', [
513
519
  state('in', style({ opacity: 1 })),
514
520
  transition('void => *', [style({ opacity: 0.1 }), animate('.3s cubic-bezier(.2, .6, .4, 1)')])
@@ -557,7 +563,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
557
563
  <ng-content select="kendo-dialog-actions" *ngIf="!actions"></ng-content>
558
564
  <kendo-dialog-actions *ngIf="actions" [actions]="actions" [layout]="actionsLayout"> </kendo-dialog-actions>
559
565
 
560
- <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
566
+ <div kendoWatermarkOverlay *ngIf="showLicenseWatermark" [licenseMessage]="licenseMessage"></div>
561
567
  </div>
562
568
  </ng-container>
563
569
  `,
@@ -10,7 +10,7 @@ export const packageMetadata = {
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCode: 'KENDOUIANGULAR',
12
12
  productCodes: ['KENDOUIANGULAR'],
13
- publishDate: 1752672102,
14
- version: '19.3.0-develop.9',
13
+ publishDate: 1755030380,
14
+ version: '19.3.0',
15
15
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
16
16
  };
@@ -4,7 +4,8 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Injectable, NgZone } from "@angular/core";
6
6
  import { DragResizeService } from './drag-resize.service';
7
- import { isPresent, OFFSET_STYLES, Keys, WINDOW_CLASSES, hasClasses, WINDOW_ELEMENTS_HANDLING_ESC_KEY } from '../common/util';
7
+ import { isPresent, OFFSET_STYLES, WINDOW_CLASSES, hasClasses, WINDOW_ELEMENTS_HANDLING_ESC_KEY } from '../common/util';
8
+ import { Keys, normalizeNumpadKeys } from "@progress/kendo-angular-common";
8
9
  import * as i0 from "@angular/core";
9
10
  import * as i1 from "./drag-resize.service";
10
11
  /**
@@ -18,13 +19,13 @@ export class NavigationService {
18
19
  this.ngZone = ngZone;
19
20
  }
20
21
  process(ev) {
21
- const key = ev.keyCode;
22
+ const key = normalizeNumpadKeys(ev);
22
23
  const target = ev.target;
23
24
  switch (key) {
24
- case Keys.up:
25
- case Keys.down:
26
- case Keys.left:
27
- case Keys.right: {
25
+ case Keys.ArrowUp:
26
+ case Keys.ArrowDown:
27
+ case Keys.ArrowLeft:
28
+ case Keys.ArrowRight: {
28
29
  if (hasClasses(target, WINDOW_CLASSES)) {
29
30
  ev.preventDefault();
30
31
  this.ngZone.run(() => {
@@ -33,7 +34,7 @@ export class NavigationService {
33
34
  }
34
35
  break;
35
36
  }
36
- case Keys.esc:
37
+ case Keys.Escape:
37
38
  if (hasClasses(target, WINDOW_ELEMENTS_HANDLING_ESC_KEY)) {
38
39
  this.ngZone.run(() => {
39
40
  this.handleEscape();
@@ -69,18 +70,18 @@ export class NavigationService {
69
70
  const restoreOptions = this.window.restoreOptions;
70
71
  const ev = {};
71
72
  let delta = 10;
72
- if (key === Keys.left || key === Keys.up) {
73
+ if (key === Keys.ArrowLeft || key === Keys.ArrowUp) {
73
74
  delta *= -1;
74
75
  }
75
76
  switch (key) {
76
- case Keys.left:
77
- case Keys.right: {
77
+ case Keys.ArrowLeft:
78
+ case Keys.ArrowRight: {
78
79
  ev.left = offset.x + delta;
79
80
  options.left = ev.left;
80
81
  break;
81
82
  }
82
- case Keys.up:
83
- case Keys.down: {
83
+ case Keys.ArrowUp:
84
+ case Keys.ArrowDown: {
84
85
  ev.top = offset.y + delta;
85
86
  options.top = ev.top;
86
87
  break;
@@ -104,20 +105,20 @@ export class NavigationService {
104
105
  let newHeight;
105
106
  const ev = {};
106
107
  let delta = 10;
107
- if (key === Keys.left || key === Keys.up) {
108
+ if (key === Keys.ArrowLeft || key === Keys.ArrowUp) {
108
109
  delta *= -1;
109
110
  }
110
111
  switch (key) {
111
- case Keys.left:
112
- case Keys.right: {
112
+ case Keys.ArrowLeft:
113
+ case Keys.ArrowRight: {
113
114
  newWidth = offset.width + delta;
114
115
  if (newWidth !== options.width && newWidth >= options.minWidth) {
115
116
  ev.width = newWidth;
116
117
  }
117
118
  break;
118
119
  }
119
- case Keys.up:
120
- case Keys.down: {
120
+ case Keys.ArrowUp:
121
+ case Keys.ArrowDown: {
121
122
  newHeight = offset.height + delta;
122
123
  if (newHeight !== options.height && newHeight >= options.minHeight) {
123
124
  ev.height = newHeight;
@@ -137,16 +138,16 @@ export class NavigationService {
137
138
  }
138
139
  }
139
140
  handleStateChange(key, state) {
140
- if ((state === 'minimized' && key === Keys.up) ||
141
- (state === 'maximized' && key === Keys.down)) {
141
+ if ((state === 'minimized' && key === Keys.ArrowUp) ||
142
+ (state === 'maximized' && key === Keys.ArrowDown)) {
142
143
  this.window.restoreAction();
143
144
  return;
144
145
  }
145
146
  if (state === 'default') {
146
- if (key === Keys.up) {
147
+ if (key === Keys.ArrowUp) {
147
148
  this.window.maximizeAction();
148
149
  }
149
- else if (key === Keys.down) {
150
+ else if (key === Keys.ArrowDown) {
150
151
  this.window.minimizeAction();
151
152
  }
152
153
  }
@@ -4,7 +4,7 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Component, Input, Output, HostBinding, EventEmitter, ContentChild, ElementRef, Renderer2, ViewChildren, QueryList, HostListener, NgZone, ViewChild } from '@angular/core';
6
6
  import { L10N_PREFIX, LocalizationService } from '@progress/kendo-angular-l10n';
7
- import { isChanged, isDocumentAvailable, shouldShowValidationUI, setHTMLAttributes } from '@progress/kendo-angular-common';
7
+ import { isChanged, isDocumentAvailable, shouldShowValidationUI, getLicenseMessage, setHTMLAttributes } from '@progress/kendo-angular-common';
8
8
  import { validatePackage } from '@progress/kendo-licensing';
9
9
  import { Subscription } from 'rxjs';
10
10
  import { take } from 'rxjs/operators';
@@ -262,6 +262,10 @@ export class WindowComponent {
262
262
  * @hidden
263
263
  */
264
264
  showLicenseWatermark = false;
265
+ /**
266
+ * @hidden
267
+ */
268
+ licenseMessage;
265
269
  tabIndex = 0;
266
270
  role = 'dialog';
267
271
  hostClass = true;
@@ -293,6 +297,7 @@ export class WindowComponent {
293
297
  this.ngZone = ngZone;
294
298
  this.localization = localization;
295
299
  const isValid = validatePackage(packageMetadata);
300
+ this.licenseMessage = getLicenseMessage(packageMetadata);
296
301
  this.showLicenseWatermark = shouldShowValidationUI(isValid);
297
302
  this.direction = this.localization.rtl ? 'rtl' : 'ltr';
298
303
  this.localizationChangeSubscription = this.localization.changes
@@ -642,8 +647,8 @@ export class WindowComponent {
642
647
  </div>
643
648
  </ng-template>
644
649
 
645
- <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
646
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDialogLocalizedMessages],\n [kendoWindowLocalizedMessages],\n [kendoDialogTitleBarLocalizedMessages]\n " }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: WindowTitleBarComponent, selector: "kendo-window-titlebar", inputs: ["template", "id"] }, { kind: "component", type: WindowMinimizeActionDirective, selector: "button[kendoWindowMinimizeAction]", inputs: ["window"], exportAs: ["kendoWindowMinimizeAction"] }, { kind: "component", type: WindowMaximizeActionDirective, selector: "button[kendoWindowMaximizeAction]", inputs: ["window"], exportAs: ["kendoWindowMaximizeAction"] }, { kind: "component", type: WindowRestoreActionDirective, selector: "button[kendoWindowRestoreAction]", inputs: ["window"], exportAs: ["kendoWindowRestoreAction"] }, { kind: "component", type: WindowCloseActionDirective, selector: "button[kendoWindowCloseAction]", inputs: ["window"], exportAs: ["kendoWindowCloseAction"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ResizeHandleDirective, selector: "[kendoWindowResizeHandle]", inputs: ["direction"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }] });
650
+ <div kendoWatermarkOverlay *ngIf="showLicenseWatermark" [licenseMessage]="licenseMessage"></div>
651
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDialogLocalizedMessages],\n [kendoWindowLocalizedMessages],\n [kendoDialogTitleBarLocalizedMessages]\n " }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: WindowTitleBarComponent, selector: "kendo-window-titlebar", inputs: ["template", "id"] }, { kind: "component", type: WindowMinimizeActionDirective, selector: "button[kendoWindowMinimizeAction]", inputs: ["window"], exportAs: ["kendoWindowMinimizeAction"] }, { kind: "component", type: WindowMaximizeActionDirective, selector: "button[kendoWindowMaximizeAction]", inputs: ["window"], exportAs: ["kendoWindowMaximizeAction"] }, { kind: "component", type: WindowRestoreActionDirective, selector: "button[kendoWindowRestoreAction]", inputs: ["window"], exportAs: ["kendoWindowRestoreAction"] }, { kind: "component", type: WindowCloseActionDirective, selector: "button[kendoWindowCloseAction]", inputs: ["window"], exportAs: ["kendoWindowCloseAction"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ResizeHandleDirective, selector: "[kendoWindowResizeHandle]", inputs: ["direction"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]", inputs: ["licenseMessage"] }] });
647
652
  }
648
653
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WindowComponent, decorators: [{
649
654
  type: Component,
@@ -702,7 +707,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
702
707
  </div>
703
708
  </ng-template>
704
709
 
705
- <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
710
+ <div kendoWatermarkOverlay *ngIf="showLicenseWatermark" [licenseMessage]="licenseMessage"></div>
706
711
  `,
707
712
  standalone: true,
708
713
  imports: [LocalizedMessagesDirective, NgIf, WindowTitleBarComponent, WindowMinimizeActionDirective, WindowMaximizeActionDirective, WindowRestoreActionDirective, WindowCloseActionDirective, NgTemplateOutlet, NgFor, ResizeHandleDirective, DraggableDirective, WatermarkOverlayComponent]
@@ -16,7 +16,7 @@ import { xIcon, windowRestoreIcon, windowIcon, windowMinimizeIcon } from '@progr
16
16
  import { validatePackage } from '@progress/kendo-licensing';
17
17
  import { of, Subscription, Subject, merge } from 'rxjs';
18
18
  import * as i1$2 from '@progress/kendo-angular-common';
19
- import { setHTMLAttributes, shouldShowValidationUI, isDocumentAvailable, focusableSelector, WatermarkOverlayComponent, DraggableDirective, isChanged } from '@progress/kendo-angular-common';
19
+ import { setHTMLAttributes, getLicenseMessage, shouldShowValidationUI, isDocumentAvailable, normalizeNumpadKeys, Keys, focusableSelector, WatermarkOverlayComponent, DraggableDirective, isChanged } from '@progress/kendo-angular-common';
20
20
  import { offset, scrollPosition, positionWithScroll, getDocumentElement, getWindowViewPort } from '@progress/kendo-popup-common';
21
21
  import { IconWrapperComponent, IconsService } from '@progress/kendo-angular-icons';
22
22
 
@@ -498,8 +498,8 @@ const packageMetadata = {
498
498
  productName: 'Kendo UI for Angular',
499
499
  productCode: 'KENDOUIANGULAR',
500
500
  productCodes: ['KENDOUIANGULAR'],
501
- publishDate: 1752672102,
502
- version: '19.3.0-develop.9',
501
+ publishDate: 1755030380,
502
+ version: '19.3.0',
503
503
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
504
504
  };
505
505
 
@@ -513,22 +513,6 @@ const isPresent = (value) => value !== null && value !== undefined;
513
513
  const isTruthy = (value) => !!value;
514
514
  const toClassList = (classNames) => String(classNames).trim().split(' ');
515
515
  const focusableRegex = /^(?:a|input|select|textarea|button|object)$/i;
516
- /**
517
- * @hidden
518
- */
519
- var Keys;
520
- (function (Keys) {
521
- Keys[Keys["esc"] = 27] = "esc";
522
- Keys[Keys["tab"] = 9] = "tab";
523
- Keys[Keys["enter"] = 13] = "enter";
524
- Keys[Keys["space"] = 32] = "space";
525
- Keys[Keys["ctrl"] = 17] = "ctrl";
526
- Keys[Keys["shift"] = 16] = "shift";
527
- Keys[Keys["left"] = 37] = "left";
528
- Keys[Keys["up"] = 38] = "up";
529
- Keys[Keys["right"] = 39] = "right";
530
- Keys[Keys["down"] = 40] = "down";
531
- })(Keys || (Keys = {}));
532
516
  /**
533
517
  * @hidden
534
518
  */
@@ -944,6 +928,10 @@ class DialogComponent {
944
928
  * @hidden
945
929
  */
946
930
  showLicenseWatermark = false;
931
+ /**
932
+ * @hidden
933
+ */
934
+ licenseMessage;
947
935
  /**
948
936
  * Emits when the user clicks an action button in the Dialog. Fires only if you specify action buttons through the `actions` option.
949
937
  *
@@ -977,6 +965,7 @@ class DialogComponent {
977
965
  this.ngZone = ngZone;
978
966
  this.builder = builder;
979
967
  const isValid = validatePackage(packageMetadata);
968
+ this.licenseMessage = getLicenseMessage(packageMetadata);
980
969
  this.showLicenseWatermark = shouldShowValidationUI(isValid);
981
970
  this.direction = localization.rtl ? 'rtl' : 'ltr';
982
971
  this.subscriptions.push(localization.changes.subscribe(({ rtl }) => (this.direction = rtl ? 'rtl' : 'ltr')));
@@ -1064,20 +1053,21 @@ class DialogComponent {
1064
1053
  onKeyDown(event) {
1065
1054
  const target = event.target;
1066
1055
  const parent = target.parentElement;
1056
+ const code = normalizeNumpadKeys(event);
1067
1057
  if (hasClasses(target, DIALOG_ELEMENTS_HANDLING_ESC_KEY) || hasClasses(parent, DIALOG_ELEMENTS_HANDLING_ESC_KEY)) {
1068
- if (event.keyCode === Keys.esc) {
1058
+ if (code === Keys.Escape) {
1069
1059
  this.ngZone.run(() => {
1070
1060
  this.close.emit(new DialogCloseResult());
1071
1061
  });
1072
1062
  }
1073
1063
  }
1074
1064
  if (hasClasses(target, 'k-button') && hasClasses(parent, DIALOG_ELEMENTS_HANDLING_ARROWS) &&
1075
- (event.keyCode === Keys.left || event.keyCode === Keys.right)) {
1065
+ (code === Keys.ArrowLeft || code === Keys.ArrowRight)) {
1076
1066
  this.ngZone.run(() => {
1077
- this.handleActionButtonFocus(parent, event.keyCode);
1067
+ this.handleActionButtonFocus(parent, code);
1078
1068
  });
1079
1069
  }
1080
- if (event.keyCode === Keys.tab) {
1070
+ if (code === Keys.Tab) {
1081
1071
  this.ngZone.run(() => {
1082
1072
  this.keepFocusWithinComponent(target, event);
1083
1073
  });
@@ -1130,11 +1120,11 @@ class DialogComponent {
1130
1120
  for (let i = 0; i < focusableActionButtons.length; i++) {
1131
1121
  const current = focusableActionButtons[i];
1132
1122
  if (current === document.activeElement) {
1133
- if (key === Keys.left && i > 0) {
1123
+ if (key === Keys.ArrowLeft && i > 0) {
1134
1124
  focusableActionButtons[i - 1].focus();
1135
1125
  break;
1136
1126
  }
1137
- if (key === Keys.right && i < focusableActionButtons.length - 1) {
1127
+ if (key === Keys.ArrowRight && i < focusableActionButtons.length - 1) {
1138
1128
  focusableActionButtons[i + 1].focus();
1139
1129
  break;
1140
1130
  }
@@ -1267,10 +1257,10 @@ class DialogComponent {
1267
1257
  <ng-content select="kendo-dialog-actions" *ngIf="!actions"></ng-content>
1268
1258
  <kendo-dialog-actions *ngIf="actions" [actions]="actions" [layout]="actionsLayout"> </kendo-dialog-actions>
1269
1259
 
1270
- <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
1260
+ <div kendoWatermarkOverlay *ngIf="showLicenseWatermark" [licenseMessage]="licenseMessage"></div>
1271
1261
  </div>
1272
1262
  </ng-container>
1273
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDialogLocalizedMessages],\n [kendoWindowLocalizedMessages],\n [kendoDialogTitleBarLocalizedMessages]\n " }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DialogTitleBarComponent, selector: "kendo-dialog-titlebar", inputs: ["id", "closeTitle"], outputs: ["close"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }], animations: [
1263
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDialogLocalizedMessages],\n [kendoWindowLocalizedMessages],\n [kendoDialogTitleBarLocalizedMessages]\n " }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DialogTitleBarComponent, selector: "kendo-dialog-titlebar", inputs: ["id", "closeTitle"], outputs: ["close"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]", inputs: ["licenseMessage"] }], animations: [
1274
1264
  trigger('overlayAppear', [
1275
1265
  state('in', style({ opacity: 1 })),
1276
1266
  transition('void => *', [style({ opacity: 0.1 }), animate('.3s cubic-bezier(.2, .6, .4, 1)')])
@@ -1319,7 +1309,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1319
1309
  <ng-content select="kendo-dialog-actions" *ngIf="!actions"></ng-content>
1320
1310
  <kendo-dialog-actions *ngIf="actions" [actions]="actions" [layout]="actionsLayout"> </kendo-dialog-actions>
1321
1311
 
1322
- <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
1312
+ <div kendoWatermarkOverlay *ngIf="showLicenseWatermark" [licenseMessage]="licenseMessage"></div>
1323
1313
  </div>
1324
1314
  </ng-container>
1325
1315
  `,
@@ -2360,13 +2350,13 @@ class NavigationService {
2360
2350
  this.ngZone = ngZone;
2361
2351
  }
2362
2352
  process(ev) {
2363
- const key = ev.keyCode;
2353
+ const key = normalizeNumpadKeys(ev);
2364
2354
  const target = ev.target;
2365
2355
  switch (key) {
2366
- case Keys.up:
2367
- case Keys.down:
2368
- case Keys.left:
2369
- case Keys.right: {
2356
+ case Keys.ArrowUp:
2357
+ case Keys.ArrowDown:
2358
+ case Keys.ArrowLeft:
2359
+ case Keys.ArrowRight: {
2370
2360
  if (hasClasses(target, WINDOW_CLASSES)) {
2371
2361
  ev.preventDefault();
2372
2362
  this.ngZone.run(() => {
@@ -2375,7 +2365,7 @@ class NavigationService {
2375
2365
  }
2376
2366
  break;
2377
2367
  }
2378
- case Keys.esc:
2368
+ case Keys.Escape:
2379
2369
  if (hasClasses(target, WINDOW_ELEMENTS_HANDLING_ESC_KEY)) {
2380
2370
  this.ngZone.run(() => {
2381
2371
  this.handleEscape();
@@ -2411,18 +2401,18 @@ class NavigationService {
2411
2401
  const restoreOptions = this.window.restoreOptions;
2412
2402
  const ev = {};
2413
2403
  let delta = 10;
2414
- if (key === Keys.left || key === Keys.up) {
2404
+ if (key === Keys.ArrowLeft || key === Keys.ArrowUp) {
2415
2405
  delta *= -1;
2416
2406
  }
2417
2407
  switch (key) {
2418
- case Keys.left:
2419
- case Keys.right: {
2408
+ case Keys.ArrowLeft:
2409
+ case Keys.ArrowRight: {
2420
2410
  ev.left = offset.x + delta;
2421
2411
  options.left = ev.left;
2422
2412
  break;
2423
2413
  }
2424
- case Keys.up:
2425
- case Keys.down: {
2414
+ case Keys.ArrowUp:
2415
+ case Keys.ArrowDown: {
2426
2416
  ev.top = offset.y + delta;
2427
2417
  options.top = ev.top;
2428
2418
  break;
@@ -2446,20 +2436,20 @@ class NavigationService {
2446
2436
  let newHeight;
2447
2437
  const ev = {};
2448
2438
  let delta = 10;
2449
- if (key === Keys.left || key === Keys.up) {
2439
+ if (key === Keys.ArrowLeft || key === Keys.ArrowUp) {
2450
2440
  delta *= -1;
2451
2441
  }
2452
2442
  switch (key) {
2453
- case Keys.left:
2454
- case Keys.right: {
2443
+ case Keys.ArrowLeft:
2444
+ case Keys.ArrowRight: {
2455
2445
  newWidth = offset.width + delta;
2456
2446
  if (newWidth !== options.width && newWidth >= options.minWidth) {
2457
2447
  ev.width = newWidth;
2458
2448
  }
2459
2449
  break;
2460
2450
  }
2461
- case Keys.up:
2462
- case Keys.down: {
2451
+ case Keys.ArrowUp:
2452
+ case Keys.ArrowDown: {
2463
2453
  newHeight = offset.height + delta;
2464
2454
  if (newHeight !== options.height && newHeight >= options.minHeight) {
2465
2455
  ev.height = newHeight;
@@ -2479,16 +2469,16 @@ class NavigationService {
2479
2469
  }
2480
2470
  }
2481
2471
  handleStateChange(key, state) {
2482
- if ((state === 'minimized' && key === Keys.up) ||
2483
- (state === 'maximized' && key === Keys.down)) {
2472
+ if ((state === 'minimized' && key === Keys.ArrowUp) ||
2473
+ (state === 'maximized' && key === Keys.ArrowDown)) {
2484
2474
  this.window.restoreAction();
2485
2475
  return;
2486
2476
  }
2487
2477
  if (state === 'default') {
2488
- if (key === Keys.up) {
2478
+ if (key === Keys.ArrowUp) {
2489
2479
  this.window.maximizeAction();
2490
2480
  }
2491
- else if (key === Keys.down) {
2481
+ else if (key === Keys.ArrowDown) {
2492
2482
  this.window.minimizeAction();
2493
2483
  }
2494
2484
  }
@@ -3138,6 +3128,10 @@ class WindowComponent {
3138
3128
  * @hidden
3139
3129
  */
3140
3130
  showLicenseWatermark = false;
3131
+ /**
3132
+ * @hidden
3133
+ */
3134
+ licenseMessage;
3141
3135
  tabIndex = 0;
3142
3136
  role = 'dialog';
3143
3137
  hostClass = true;
@@ -3169,6 +3163,7 @@ class WindowComponent {
3169
3163
  this.ngZone = ngZone;
3170
3164
  this.localization = localization;
3171
3165
  const isValid = validatePackage(packageMetadata);
3166
+ this.licenseMessage = getLicenseMessage(packageMetadata);
3172
3167
  this.showLicenseWatermark = shouldShowValidationUI(isValid);
3173
3168
  this.direction = this.localization.rtl ? 'rtl' : 'ltr';
3174
3169
  this.localizationChangeSubscription = this.localization.changes
@@ -3518,8 +3513,8 @@ class WindowComponent {
3518
3513
  </div>
3519
3514
  </ng-template>
3520
3515
 
3521
- <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
3522
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDialogLocalizedMessages],\n [kendoWindowLocalizedMessages],\n [kendoDialogTitleBarLocalizedMessages]\n " }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: WindowTitleBarComponent, selector: "kendo-window-titlebar", inputs: ["template", "id"] }, { kind: "component", type: WindowMinimizeActionDirective, selector: "button[kendoWindowMinimizeAction]", inputs: ["window"], exportAs: ["kendoWindowMinimizeAction"] }, { kind: "component", type: WindowMaximizeActionDirective, selector: "button[kendoWindowMaximizeAction]", inputs: ["window"], exportAs: ["kendoWindowMaximizeAction"] }, { kind: "component", type: WindowRestoreActionDirective, selector: "button[kendoWindowRestoreAction]", inputs: ["window"], exportAs: ["kendoWindowRestoreAction"] }, { kind: "component", type: WindowCloseActionDirective, selector: "button[kendoWindowCloseAction]", inputs: ["window"], exportAs: ["kendoWindowCloseAction"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ResizeHandleDirective, selector: "[kendoWindowResizeHandle]", inputs: ["direction"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }] });
3516
+ <div kendoWatermarkOverlay *ngIf="showLicenseWatermark" [licenseMessage]="licenseMessage"></div>
3517
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDialogLocalizedMessages],\n [kendoWindowLocalizedMessages],\n [kendoDialogTitleBarLocalizedMessages]\n " }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: WindowTitleBarComponent, selector: "kendo-window-titlebar", inputs: ["template", "id"] }, { kind: "component", type: WindowMinimizeActionDirective, selector: "button[kendoWindowMinimizeAction]", inputs: ["window"], exportAs: ["kendoWindowMinimizeAction"] }, { kind: "component", type: WindowMaximizeActionDirective, selector: "button[kendoWindowMaximizeAction]", inputs: ["window"], exportAs: ["kendoWindowMaximizeAction"] }, { kind: "component", type: WindowRestoreActionDirective, selector: "button[kendoWindowRestoreAction]", inputs: ["window"], exportAs: ["kendoWindowRestoreAction"] }, { kind: "component", type: WindowCloseActionDirective, selector: "button[kendoWindowCloseAction]", inputs: ["window"], exportAs: ["kendoWindowCloseAction"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: ResizeHandleDirective, selector: "[kendoWindowResizeHandle]", inputs: ["direction"] }, { kind: "directive", type: DraggableDirective, selector: "[kendoDraggable]", inputs: ["enableDrag"], outputs: ["kendoPress", "kendoDrag", "kendoRelease"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]", inputs: ["licenseMessage"] }] });
3523
3518
  }
3524
3519
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WindowComponent, decorators: [{
3525
3520
  type: Component,
@@ -3578,7 +3573,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3578
3573
  </div>
3579
3574
  </ng-template>
3580
3575
 
3581
- <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
3576
+ <div kendoWatermarkOverlay *ngIf="showLicenseWatermark" [licenseMessage]="licenseMessage"></div>
3582
3577
  `,
3583
3578
  standalone: true,
3584
3579
  imports: [LocalizedMessagesDirective, NgIf, WindowTitleBarComponent, WindowMinimizeActionDirective, WindowMaximizeActionDirective, WindowRestoreActionDirective, WindowCloseActionDirective, NgTemplateOutlet, NgFor, ResizeHandleDirective, DraggableDirective, WatermarkOverlayComponent]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-dialog",
3
- "version": "19.3.0-develop.9",
3
+ "version": "19.3.0",
4
4
  "description": "Dialog Package for Angular",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -23,7 +23,7 @@
23
23
  "package": {
24
24
  "productName": "Kendo UI for Angular",
25
25
  "productCode": "KENDOUIANGULAR",
26
- "publishDate": 1752672102,
26
+ "publishDate": 1755030380,
27
27
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
28
28
  }
29
29
  },
@@ -32,16 +32,16 @@
32
32
  "@angular/common": "16 - 20",
33
33
  "@angular/core": "16 - 20",
34
34
  "@angular/platform-browser": "16 - 20",
35
- "@progress/kendo-licensing": "^1.5.0",
36
- "@progress/kendo-angular-buttons": "19.3.0-develop.9",
37
- "@progress/kendo-angular-common": "19.3.0-develop.9",
38
- "@progress/kendo-angular-icons": "19.3.0-develop.9",
39
- "@progress/kendo-angular-l10n": "19.3.0-develop.9",
35
+ "@progress/kendo-licensing": "^1.7.0",
36
+ "@progress/kendo-angular-buttons": "19.3.0",
37
+ "@progress/kendo-angular-common": "19.3.0",
38
+ "@progress/kendo-angular-icons": "19.3.0",
39
+ "@progress/kendo-angular-l10n": "19.3.0",
40
40
  "rxjs": "^6.5.3 || ^7.0.0"
41
41
  },
42
42
  "dependencies": {
43
43
  "tslib": "^2.3.1",
44
- "@progress/kendo-angular-schematics": "19.3.0-develop.9",
44
+ "@progress/kendo-angular-schematics": "19.3.0",
45
45
  "@progress/kendo-popup-common": "^1.7.0"
46
46
  },
47
47
  "schematics": "./schematics/collection.json",
@@ -4,7 +4,7 @@ const schematics_1 = require("@angular-devkit/schematics");
4
4
  function default_1(options) {
5
5
  const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'DialogsModule', package: 'dialog', peerDependencies: {
6
6
  // Peer dependency of buttons
7
- '@progress/kendo-angular-popup': '19.3.0-develop.9',
7
+ '@progress/kendo-angular-popup': '19.3.0',
8
8
  // Peer dependency of icons
9
9
  '@progress/kendo-svg-icons': '^4.0.0'
10
10
  } });
@@ -6,6 +6,15 @@
6
6
  * @hidden
7
7
  */
8
8
  export type WindowPosition = 'absolute' | 'fixed';
9
+ /**
10
+ * Represents the possible states of the Window component.
11
+ */
9
12
  export type WindowState = 'minimized' | 'maximized' | 'default';
13
+ /**
14
+ * Represents the dimensions of the Window that can be resized dynamically.
15
+ */
10
16
  export type WindowDimensionSetting = 'width' | 'height';
17
+ /**
18
+ * Represents the offset of the Window that can be set dynamically.
19
+ */
11
20
  export type WindowOffsetSetting = 'top' | 'left';
@@ -13,12 +13,12 @@ export declare class NavigationService {
13
13
  private window;
14
14
  private ngZone;
15
15
  constructor(window: DragResizeService, ngZone: NgZone);
16
- process(ev: any): void;
17
- handleArrow(key: number, ev: KeyboardEvent): void;
16
+ process(ev: KeyboardEvent): void;
17
+ handleArrow(key: string, ev: KeyboardEvent): void;
18
18
  handleEscape(): void;
19
- handleDrag(key: number): void;
20
- handleResize(key: number): void;
21
- handleStateChange(key: number, state: WindowState): void;
19
+ handleDrag(key: string): void;
20
+ handleResize(key: string): void;
21
+ handleStateChange(key: string, state: WindowState): void;
22
22
  static ɵfac: i0.ɵɵFactoryDeclaration<NavigationService, never>;
23
23
  static ɵprov: i0.ɵɵInjectableDeclaration<NavigationService>;
24
24
  }
@@ -172,6 +172,10 @@ export declare class WindowComponent implements OnInit, OnDestroy, OnChanges, Af
172
172
  * @hidden
173
173
  */
174
174
  showLicenseWatermark: boolean;
175
+ /**
176
+ * @hidden
177
+ */
178
+ licenseMessage?: string;
175
179
  tabIndex: number;
176
180
  role: string;
177
181
  hostClass: boolean;