@progress/kendo-angular-dialog 21.4.1-develop.1 → 22.0.0-develop.1

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.
Files changed (62) hide show
  1. package/dialog/dialog-content-base.d.ts +1 -1
  2. package/fesm2022/progress-kendo-angular-dialog.mjs +84 -84
  3. package/localization/messages.d.ts +1 -1
  4. package/package.json +11 -19
  5. package/schematics/ngAdd/index.js +1 -1
  6. package/esm2022/common/actions-layout.mjs +0 -5
  7. package/esm2022/common/animation-types.mjs +0 -5
  8. package/esm2022/common/dialog-animation-direction.mjs +0 -5
  9. package/esm2022/common/preventable-event.mjs +0 -30
  10. package/esm2022/common/util.mjs +0 -167
  11. package/esm2022/dialog/dialog-actions.component.mjs +0 -182
  12. package/esm2022/dialog/dialog-animations/animate-content.mjs +0 -19
  13. package/esm2022/dialog/dialog-animations/animations.mjs +0 -69
  14. package/esm2022/dialog/dialog-animations/create-animation-player.mjs +0 -18
  15. package/esm2022/dialog/dialog-container.directive.mjs +0 -31
  16. package/esm2022/dialog/dialog-container.service.mjs +0 -26
  17. package/esm2022/dialog/dialog-content-base.mjs +0 -57
  18. package/esm2022/dialog/dialog-titlebar.component.mjs +0 -170
  19. package/esm2022/dialog/dialog.component.mjs +0 -650
  20. package/esm2022/dialog/dialog.service.mjs +0 -210
  21. package/esm2022/dialog/models/dialog-action-divider.mjs +0 -5
  22. package/esm2022/dialog/models/dialog-action.mjs +0 -40
  23. package/esm2022/dialog/models/dialog-animation.mjs +0 -5
  24. package/esm2022/dialog/models/dialog-close-result.mjs +0 -12
  25. package/esm2022/dialog/models/dialog-ref.mjs +0 -39
  26. package/esm2022/dialog/models/dialog-result.mjs +0 -5
  27. package/esm2022/dialog/models/dialog-settings.mjs +0 -95
  28. package/esm2022/dialog/models/index.mjs +0 -12
  29. package/esm2022/dialog/models/theme-color.mjs +0 -5
  30. package/esm2022/dialog.module.mjs +0 -49
  31. package/esm2022/dialogs.module.mjs +0 -59
  32. package/esm2022/directives.mjs +0 -95
  33. package/esm2022/index.mjs +0 -33
  34. package/esm2022/localization/custom-messages.component.mjs +0 -65
  35. package/esm2022/localization/dialog-localization.service.mjs +0 -9
  36. package/esm2022/localization/localized-messages.directive.mjs +0 -43
  37. package/esm2022/localization/messages.mjs +0 -45
  38. package/esm2022/localization/titlebar-localization.service.mjs +0 -45
  39. package/esm2022/package-metadata.mjs +0 -16
  40. package/esm2022/progress-kendo-angular-dialog.mjs +0 -8
  41. package/esm2022/window/actions/window-close-action.directive.mjs +0 -119
  42. package/esm2022/window/actions/window-maximize-action.directive.mjs +0 -125
  43. package/esm2022/window/actions/window-minimize-action.directive.mjs +0 -125
  44. package/esm2022/window/actions/window-restore-action.directive.mjs +0 -125
  45. package/esm2022/window/drag-resize.service.mjs +0 -335
  46. package/esm2022/window/models/index.mjs +0 -11
  47. package/esm2022/window/models/theme-color.mjs +0 -5
  48. package/esm2022/window/models/window-close-result.mjs +0 -10
  49. package/esm2022/window/models/window-messages.mjs +0 -5
  50. package/esm2022/window/models/window-options.mjs +0 -5
  51. package/esm2022/window/models/window-ref.mjs +0 -25
  52. package/esm2022/window/models/window-settings.mjs +0 -92
  53. package/esm2022/window/models/window-types.mjs +0 -5
  54. package/esm2022/window/navigation.service.mjs +0 -160
  55. package/esm2022/window/window-container.directive.mjs +0 -31
  56. package/esm2022/window/window-container.service.mjs +0 -26
  57. package/esm2022/window/window-events.mjs +0 -5
  58. package/esm2022/window/window-resize-handle.directive.mjs +0 -74
  59. package/esm2022/window/window-titlebar.component.mjs +0 -173
  60. package/esm2022/window/window.component.mjs +0 -831
  61. package/esm2022/window/window.service.mjs +0 -206
  62. package/esm2022/window.module.mjs +0 -53
@@ -1,831 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { Component, Input, Output, HostBinding, EventEmitter, ContentChild, ElementRef, Renderer2, ViewChildren, QueryList, HostListener, NgZone, ViewChild } from '@angular/core';
6
- import { L10N_PREFIX, LocalizationService } from '@progress/kendo-angular-l10n';
7
- import { isChanged, isDocumentAvailable, shouldShowValidationUI, getLicenseMessage, setHTMLAttributes } from '@progress/kendo-angular-common';
8
- import { validatePackage } from '@progress/kendo-licensing';
9
- import { Subscription } from 'rxjs';
10
- import { take } from 'rxjs/operators';
11
- import { packageMetadata } from '../package-metadata';
12
- import { DragResizeService } from './drag-resize.service';
13
- import { OFFSET_STYLES, isPresent, isTruthy, parseCSSClassNames } from '../common/util';
14
- import { RESIZE_DIRECTIONS } from "../common/util";
15
- import { ResizeHandleDirective } from './window-resize-handle.directive';
16
- import { WindowTitleBarComponent } from './window-titlebar.component';
17
- import { NavigationService } from './navigation.service';
18
- import { WatermarkOverlayComponent, DraggableDirective } from '@progress/kendo-angular-common';
19
- import { WindowCloseActionDirective } from './actions/window-close-action.directive';
20
- import { WindowRestoreActionDirective } from './actions/window-restore-action.directive';
21
- import { WindowMaximizeActionDirective } from './actions/window-maximize-action.directive';
22
- import { WindowMinimizeActionDirective } from './actions/window-minimize-action.directive';
23
- import { NgTemplateOutlet } from '@angular/common';
24
- import { LocalizedMessagesDirective } from '../localization/localized-messages.directive';
25
- import * as i0 from "@angular/core";
26
- import * as i1 from "./drag-resize.service";
27
- import * as i2 from "./navigation.service";
28
- import * as i3 from "@progress/kendo-angular-l10n";
29
- /**
30
- * Represents the [Kendo UI Window component for Angular]({% slug overview_window_dialogs %}).
31
- *
32
- * @example
33
- * ```html
34
- * <kendo-window title="My Window" [width]="400" [height]="300">
35
- * </kendo-window>
36
- * ```
37
- *
38
- * @remarks
39
- * Supported children components are: {@link CustomMessagesComponent}, {@link WindowTitleBarComponent}.
40
- */
41
- export class WindowComponent {
42
- el;
43
- renderer;
44
- service;
45
- navigation;
46
- ngZone;
47
- localization;
48
- /**
49
- * Specifies the query selector used to set the initial focus ([see examples]({% slug initial_focus_window %})).
50
- */
51
- autoFocusedElement;
52
- /**
53
- * Sets the text in the title bar.
54
- */
55
- title;
56
- /**
57
- * Specifies if the user can drag the component.
58
- * @default true
59
- */
60
- set draggable(value) {
61
- this.options.draggable = value;
62
- }
63
- get draggable() {
64
- return this.options.draggable;
65
- }
66
- /**
67
- * Specifies if the user can resize the component.
68
- * @default true
69
- */
70
- set resizable(value) {
71
- this.options.resizable = value;
72
- }
73
- get resizable() {
74
- return this.options.resizable;
75
- }
76
- /**
77
- * Sets the predefined theme color for the Window. The color applies to the title bar background and border, and updates the text color.
78
- */
79
- set themeColor(themeColor) {
80
- this.handleThemeColorClass(this.themeColor, themeColor);
81
- this._themeColor = themeColor;
82
- }
83
- get themeColor() {
84
- return this._themeColor;
85
- }
86
- /**
87
- * @hidden
88
- */
89
- set cssClass(classes) {
90
- this.setServiceClasses(this._cssClass, classes);
91
- this._cssClass = classes;
92
- }
93
- get cssClass() {
94
- return this._cssClass;
95
- }
96
- /**
97
- * @hidden
98
- */
99
- set htmlAttributes(attributes) {
100
- setHTMLAttributes(attributes, this.renderer, this.el.nativeElement);
101
- const el = this.el.nativeElement;
102
- const dir = el.getAttribute('dir');
103
- const tIndex = el.getAttribute('tabindex');
104
- if (this.direction !== dir) {
105
- this.direction = dir;
106
- }
107
- if (this.tabIndex !== tIndex) {
108
- this.tabIndex = tIndex;
109
- }
110
- this._htmlAttributes = attributes;
111
- }
112
- get htmlAttributes() {
113
- return this._htmlAttributes;
114
- }
115
- /**
116
- * Specifies if the content stays in the DOM when minimized.
117
- * @default false
118
- */
119
- keepContent = false;
120
- /**
121
- * Sets the initial state of the Window.
122
- */
123
- set state(value) {
124
- this.options.state = value;
125
- }
126
- get state() {
127
- return this.options.state;
128
- }
129
- /**
130
- * Sets the minimum width in pixels.
131
- * @default 120
132
- */
133
- set minWidth(value) {
134
- this.setOption('minWidth', value);
135
- }
136
- get minWidth() {
137
- return this.options.minWidth;
138
- }
139
- /**
140
- * Sets the minimum height in pixels.
141
- * @default 100
142
- */
143
- set minHeight(value) {
144
- this.setOption('minHeight', value);
145
- }
146
- get minHeight() {
147
- return this.options.minHeight;
148
- }
149
- /**
150
- * Sets the width in pixels.
151
- */
152
- set width(value) {
153
- this.setOption('width', value);
154
- }
155
- get width() {
156
- return this.options.width;
157
- }
158
- /**
159
- * Sets the height in pixels.
160
- */
161
- set height(value) {
162
- this.setOption('height', value);
163
- }
164
- get height() {
165
- return this.options.height;
166
- }
167
- /**
168
- * Sets the initial top offset in pixels.
169
- */
170
- set top(value) {
171
- this.setOption('top', value);
172
- }
173
- get top() {
174
- return this.options.top;
175
- }
176
- /**
177
- * Sets the initial left offset in pixels.
178
- */
179
- set left(value) {
180
- this.setOption('left', value);
181
- }
182
- get left() {
183
- return this.options.left;
184
- }
185
- get closeButtonTitle() {
186
- if (this.messages && this.messages.closeTitle) {
187
- return this.messages.closeTitle;
188
- }
189
- return this.localization.get('closeTitle');
190
- }
191
- get restoreButtonTitle() {
192
- if (this.messages && this.messages.restoreTitle) {
193
- return this.messages.restoreTitle;
194
- }
195
- return this.localization.get('restoreTitle');
196
- }
197
- get maximizeButtonTitle() {
198
- if (this.messages && this.messages.maximizeTitle) {
199
- return this.messages.maximizeTitle;
200
- }
201
- return this.localization.get('maximizeTitle');
202
- }
203
- get minimizeButtonTitle() {
204
- if (this.messages && this.messages.minimizeTitle) {
205
- return this.messages.minimizeTitle;
206
- }
207
- return this.localization.get('minimizeTitle');
208
- }
209
- /**
210
- * Fires when the user starts to move the Window.
211
- */
212
- dragStart = new EventEmitter();
213
- /**
214
- * Fires after the Window has been moved by the user.
215
- */
216
- dragEnd = new EventEmitter();
217
- /**
218
- * Fires when the user starts to resize the Window.
219
- */
220
- resizeStart = new EventEmitter();
221
- /**
222
- * Fires after the Window has been resized by the user.
223
- */
224
- resizeEnd = new EventEmitter();
225
- /**
226
- * Fires when the user closes the Window.
227
- */
228
- close = new EventEmitter();
229
- /**
230
- * Fires when the `width` property is updated after resizing. The event data contains the new width. Allows two-way binding of the `width` property.
231
- */
232
- widthChange = new EventEmitter();
233
- /**
234
- * Fires when the `height` property is updated after resizing. The event data contains the new height. Allows two-way binding of the `height` property.
235
- */
236
- heightChange = new EventEmitter();
237
- /**
238
- * Fires when the `top` property is updated after dragging or resizing. The event data contains the new top offset. Allows two-way binding of the `top` property.
239
- */
240
- topChange = new EventEmitter();
241
- /**
242
- * Fires when the `left` property is updated after dragging or resizing. The event data contains the new left offset. Allows two-way binding of the `left` property.
243
- */
244
- leftChange = new EventEmitter();
245
- /**
246
- * Fires when the `state` property is updated. The event data contains the new state. Allows two-way binding of the `state` property.
247
- */
248
- stateChange = new EventEmitter();
249
- /**
250
- * @hidden
251
- */
252
- contentTemplate;
253
- /**
254
- * @hidden
255
- */
256
- titleBarTemplate;
257
- /**
258
- * @hidden
259
- */
260
- messages = {};
261
- /**
262
- * @hidden
263
- */
264
- showLicenseWatermark = false;
265
- /**
266
- * @hidden
267
- */
268
- licenseMessage;
269
- tabIndex = 0;
270
- role = 'dialog';
271
- hostClass = true;
272
- get dir() {
273
- return this.direction;
274
- }
275
- titleBarView;
276
- titleBarContent;
277
- resizeHandles;
278
- resizeDirections;
279
- /**
280
- * @hidden
281
- */
282
- titleId = null;
283
- _htmlAttributes;
284
- _cssClass;
285
- _themeColor = null;
286
- direction;
287
- draged = false;
288
- resized = false;
289
- windowSubscription = new Subscription();
290
- domSubs = new Subscription();
291
- localizationChangeSubscription;
292
- constructor(el, renderer, service, navigation, ngZone, localization) {
293
- this.el = el;
294
- this.renderer = renderer;
295
- this.service = service;
296
- this.navigation = navigation;
297
- this.ngZone = ngZone;
298
- this.localization = localization;
299
- const isValid = validatePackage(packageMetadata);
300
- this.licenseMessage = getLicenseMessage(packageMetadata);
301
- this.showLicenseWatermark = shouldShowValidationUI(isValid);
302
- this.direction = this.localization.rtl ? 'rtl' : 'ltr';
303
- this.localizationChangeSubscription = this.localization.changes
304
- .subscribe(({ rtl }) => this.direction = rtl ? 'rtl' : 'ltr');
305
- this.resizeDirections = RESIZE_DIRECTIONS;
306
- this.subscribeEvents();
307
- this.titleId = this.generateTitleId();
308
- }
309
- ngAfterViewInit() {
310
- if (!isDocumentAvailable()) {
311
- return;
312
- }
313
- this.setNextZIndex();
314
- this.ngZone.onStable.pipe(take(1)).subscribe(() => {
315
- this.handleInitialFocus();
316
- });
317
- this.ngZone.runOutsideAngular(() => Promise.resolve(null).then(() => this.setInitialOffset()));
318
- this.initDomEvents();
319
- if (this.titleBarView || this.titleBarContent) {
320
- this.renderer.setAttribute(this.el.nativeElement, 'aria-labelledby', this.titleId);
321
- }
322
- this.handleThemeColorClass(null, this.themeColor);
323
- }
324
- ngOnInit() {
325
- this.renderer.removeAttribute(this.el.nativeElement, 'title');
326
- this.service.init(this.el);
327
- }
328
- ngOnChanges(changes) {
329
- OFFSET_STYLES.forEach((style) => {
330
- if (isChanged(style, changes)) {
331
- this.setStyle(style, this.options[style]);
332
- }
333
- });
334
- if (isChanged('draggable', changes)) {
335
- const titleBar = isPresent(this.titleBarContent) ? this.titleBarContent : this.titleBarView;
336
- if (isTruthy(changes['draggable'].currentValue)) {
337
- titleBar.subscribeDrag();
338
- }
339
- else {
340
- titleBar.unsubscribeDrag();
341
- }
342
- }
343
- if (isChanged('state', changes)) {
344
- if (isPresent(this.service.lastAction)) {
345
- this.service.lastAction = null;
346
- }
347
- else {
348
- this.service.applyManualState();
349
- this.updateAllOffset();
350
- }
351
- }
352
- }
353
- ngOnDestroy() {
354
- if (this.windowSubscription) {
355
- this.windowSubscription.unsubscribe();
356
- }
357
- if (this.domSubs) {
358
- this.domSubs.unsubscribe();
359
- }
360
- this.localizationChangeSubscription.unsubscribe();
361
- }
362
- /**
363
- * Focuses the wrapper of the Window component.
364
- */
365
- focus() {
366
- const wrapper = this.el.nativeElement;
367
- if (isPresent(wrapper)) {
368
- wrapper.focus({ preventScroll: true });
369
- }
370
- }
371
- /**
372
- * Brings the current Window component on top of other Window components on the page.
373
- */
374
- bringToFront() {
375
- this.setNextZIndex();
376
- }
377
- /**
378
- * Manually updates the `width` or `height` option of the Window.
379
- * The required style will be applied to the Window wrapper element and the
380
- * corresponding property of the component instance will be updated.
381
- * This method is intended to be used for sizing dynamically created components using the
382
- * [`WindowService`]({% slug api_dialog_windowservice %})
383
- * @param dimension The option to update.
384
- * @param value The value in pixels.
385
- */
386
- setDimension(dimension, value) {
387
- this.setOption(dimension, value);
388
- this.setStyle(dimension, value);
389
- }
390
- /**
391
- * Manually updates the `top` or `left` offset of the Window.
392
- * The required style will be applied to the Window wrapper element and the
393
- * corresponding property of the component instance will be updated.
394
- * This method is intended to be used for positioning dynamically created components using the
395
- * [`WindowService`]({% slug api_dialog_windowservice %})
396
- * @param offset The option to update.
397
- * @param value The value in pixels.
398
- */
399
- setOffset(offset, value) {
400
- this.setOption(offset, value);
401
- this.setStyle(offset, value);
402
- }
403
- get showDefaultTitleBar() {
404
- return !isPresent(this.titleBarContent);
405
- }
406
- get styleMinWidth() {
407
- return this.minWidth + 'px';
408
- }
409
- get styleMinHeight() {
410
- return this.minHeight + 'px';
411
- }
412
- get stylePosition() {
413
- return this.options.position;
414
- }
415
- get wrapperMaximizedClass() {
416
- return this.state === 'maximized';
417
- }
418
- get wrapperMinimizedClass() {
419
- return this.state === 'minimized';
420
- }
421
- /**
422
- * @hidden
423
- */
424
- onComponentFocus() {
425
- this.renderer.addClass(this.el.nativeElement, 'k-focus');
426
- this.setNextZIndex();
427
- }
428
- /**
429
- * @hidden
430
- */
431
- onComponentBlur() {
432
- this.renderer.removeClass(this.el.nativeElement, 'k-focus');
433
- }
434
- subscribeEvents() {
435
- if (!isDocumentAvailable()) {
436
- return;
437
- }
438
- this.windowSubscription.add(this.service.focus.subscribe(() => {
439
- this.el.nativeElement.focus();
440
- }));
441
- this.windowSubscription.add(this.service.dragStart.subscribe(() => {
442
- this.draged = true;
443
- this.ngZone.run(() => {
444
- this.dragStart.emit();
445
- });
446
- }));
447
- this.windowSubscription.add(this.service.dragEnd.subscribe(() => {
448
- if (this.draged) {
449
- this.draged = false;
450
- this.ngZone.run(() => {
451
- this.dragEnd.emit();
452
- });
453
- }
454
- }));
455
- this.windowSubscription.add(this.service.close.subscribe(() => {
456
- this.close.emit();
457
- }));
458
- this.windowSubscription.add(this.service.resizeStart.subscribe(() => {
459
- this.resized = true;
460
- this.ngZone.run(() => {
461
- this.resizeStart.emit();
462
- });
463
- }));
464
- this.windowSubscription.add(this.service.resizeEnd.subscribe(() => {
465
- if (this.resized) {
466
- this.resized = false;
467
- this.ngZone.run(() => {
468
- this.resizeEnd.emit();
469
- });
470
- }
471
- }));
472
- this.windowSubscription.add(this.service.change.subscribe((ev) => {
473
- OFFSET_STYLES.forEach((style) => {
474
- if (isPresent(ev[style])) {
475
- this.setStyle(style, ev[style]);
476
- if (this.state !== 'maximized') {
477
- const emitter = this[style + 'Change'];
478
- if (emitter.observers.length) {
479
- this.ngZone.run(() => {
480
- emitter.emit(ev[style]);
481
- });
482
- }
483
- }
484
- }
485
- });
486
- }));
487
- this.windowSubscription.add(this.service.stateChange.subscribe((state) => {
488
- if (isPresent(this.service.lastAction)) {
489
- this.updateAllOffset();
490
- this.stateChange.emit(state);
491
- }
492
- }));
493
- }
494
- initDomEvents() {
495
- if (!this.el) {
496
- return;
497
- }
498
- this.ngZone.runOutsideAngular(() => {
499
- this.domSubs.add(this.renderer.listen(this.el.nativeElement, 'keydown', (ev) => {
500
- this.onKeyDown(ev);
501
- }));
502
- });
503
- }
504
- onKeyDown(event) {
505
- this.navigation.process(event);
506
- }
507
- setServiceClasses(prevValue, value) {
508
- const el = this.el.nativeElement;
509
- if (prevValue) {
510
- parseCSSClassNames(prevValue).forEach(className => {
511
- this.renderer.removeClass(el, className);
512
- });
513
- }
514
- if (value) {
515
- parseCSSClassNames(value).forEach(className => {
516
- this.renderer.addClass(el, className);
517
- });
518
- }
519
- }
520
- setNextZIndex() {
521
- const currentZIndex = this.el.nativeElement.style['z-index'];
522
- const nextPossibleZIndex = this.service.nextPossibleZIndex;
523
- if (!currentZIndex || (nextPossibleZIndex - currentZIndex > 1)) {
524
- this.renderer.setStyle(this.el.nativeElement, "z-index", this.service.nextZIndex);
525
- }
526
- }
527
- setInitialOffset() {
528
- if (this.state !== 'maximized') {
529
- this.updateAllOffset();
530
- if (!isPresent(this.left) || !isPresent(this.top)) {
531
- this.service.center();
532
- }
533
- }
534
- else {
535
- const viewPort = this.service.windowViewPort;
536
- this.setStyle('width', viewPort.width);
537
- this.setStyle('height', viewPort.height);
538
- this.setStyle('top', 0);
539
- this.setStyle('left', 0);
540
- }
541
- }
542
- updateAllOffset() {
543
- OFFSET_STYLES.forEach((style) => {
544
- if (isPresent(this[style])) {
545
- this.setStyle(style, this[style]);
546
- }
547
- else {
548
- this.removeStyle(style);
549
- }
550
- });
551
- }
552
- setStyle(style, value) {
553
- this.renderer.setStyle(this.el.nativeElement, style, value + 'px');
554
- }
555
- removeStyle(style) {
556
- this.renderer.removeStyle(this.el.nativeElement, style);
557
- }
558
- get options() {
559
- return this.service.options;
560
- }
561
- setOption(style, value) {
562
- if (typeof value !== 'number' && typeof value !== 'string') {
563
- return;
564
- }
565
- const parsedValue = (typeof value === 'number') ? value : parseInt(value, 10);
566
- this.options[style] = parsedValue;
567
- this.service.setRestoreOption(style, parsedValue);
568
- }
569
- handleInitialFocus() {
570
- const wrapper = this.el.nativeElement;
571
- if (this.autoFocusedElement) {
572
- const initiallyFocusedElement = wrapper.querySelector(this.autoFocusedElement);
573
- if (initiallyFocusedElement) {
574
- initiallyFocusedElement.focus({ preventScroll: true });
575
- }
576
- }
577
- else {
578
- this.focus();
579
- }
580
- }
581
- /**
582
- * @hidden
583
- */
584
- generateTitleId() {
585
- return 'kendo-window-title-' + Math.ceil(Math.random() * 1000000).toString();
586
- }
587
- handleThemeColorClass(previousValue, currentValue) {
588
- const wrapper = this.el.nativeElement;
589
- if (previousValue) {
590
- const classToRemove = `k-window-${previousValue}`;
591
- this.renderer.removeClass(wrapper, classToRemove);
592
- }
593
- if (currentValue) {
594
- const classToAdd = `k-window-${currentValue}`;
595
- this.renderer.addClass(wrapper, classToAdd);
596
- }
597
- }
598
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WindowComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.DragResizeService }, { token: i2.NavigationService }, { token: i0.NgZone }, { token: i3.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
599
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: WindowComponent, isStandalone: true, selector: "kendo-window", inputs: { autoFocusedElement: "autoFocusedElement", title: "title", draggable: "draggable", resizable: "resizable", themeColor: "themeColor", keepContent: "keepContent", state: "state", minWidth: "minWidth", minHeight: "minHeight", width: "width", height: "height", top: "top", left: "left" }, outputs: { dragStart: "dragStart", dragEnd: "dragEnd", resizeStart: "resizeStart", resizeEnd: "resizeEnd", close: "close", widthChange: "widthChange", heightChange: "heightChange", topChange: "topChange", leftChange: "leftChange", stateChange: "stateChange" }, host: { listeners: { "focus": "onComponentFocus()", "blur": "onComponentBlur()" }, properties: { "attr.tabIndex": "this.tabIndex", "attr.role": "this.role", "class.k-window": "this.hostClass", "attr.dir": "this.dir", "style.minWidth": "this.styleMinWidth", "style.minHeight": "this.styleMinHeight", "style.position": "this.stylePosition", "class.k-window-maximized": "this.wrapperMaximizedClass", "class.k-window-minimized": "this.wrapperMinimizedClass" } }, providers: [
600
- DragResizeService,
601
- NavigationService,
602
- LocalizationService,
603
- {
604
- provide: L10N_PREFIX,
605
- useValue: 'kendo.window'
606
- }
607
- ], queries: [{ propertyName: "titleBarContent", first: true, predicate: WindowTitleBarComponent, descendants: true }], viewQueries: [{ propertyName: "titleBarView", first: true, predicate: WindowTitleBarComponent, descendants: true }, { propertyName: "resizeHandles", predicate: ResizeHandleDirective, descendants: true }], exportAs: ["kendoWindow"], usesOnChanges: true, ngImport: i0, template: `
608
- <ng-container kendoWindowLocalizedMessages
609
- i18n-closeTitle="kendo.window.closeTitle|The title of the close button"
610
- closeTitle="Close"
611
-
612
- i18n-restoreTitle="kendo.window.restoreTitle|The title of the restore button"
613
- restoreTitle="Restore"
614
-
615
- i18n-maximizeTitle="kendo.window.maximizeTitle|The title of the maximize button"
616
- maximizeTitle="Maximize"
617
-
618
- i18n-minimizeTitle="kendo.window.minimizeTitle|The title of the minimize button"
619
- minimizeTitle="Minimize"
620
- >
621
- <ng-container>
622
-
623
- @if (showDefaultTitleBar) {
624
- <kendo-window-titlebar [template]="titleBarTemplate" [id]="titleId">
625
- <span class="k-window-title">{{ title }}</span>
626
- <div class="k-window-titlebar-actions">
627
- <button kendoWindowMinimizeAction [attr.title]="minimizeButtonTitle" [attr.aria-label]="minimizeButtonTitle"></button>
628
- <button kendoWindowMaximizeAction [attr.title]="maximizeButtonTitle" [attr.aria-label]="maximizeButtonTitle"></button>
629
- <button kendoWindowRestoreAction [attr.title]="restoreButtonTitle" [attr.aria-label]="restoreButtonTitle"></button>
630
- <button kendoWindowCloseAction [attr.title]="closeButtonTitle" [attr.aria-label]="closeButtonTitle"></button>
631
- </div>
632
- </kendo-window-titlebar>
633
- }
634
- @if (!showDefaultTitleBar) {
635
- <ng-content select="kendo-window-titlebar"></ng-content>
636
- }
637
-
638
- @if (state !== 'minimized' || keepContent) {
639
- <div
640
- [hidden]="state === 'minimized' && keepContent"
641
- class="k-window-content"
642
- >
643
- @if (!contentTemplate) {
644
- <ng-content></ng-content>
645
- }
646
- @if (contentTemplate) {
647
- <ng-template [ngTemplateOutlet]="contentTemplate"></ng-template>
648
- }
649
- </div>
650
- }
651
-
652
- @if (resizable) {
653
- @for (dir of resizeDirections; track dir) {
654
- <div
655
- [direction]="dir"
656
- kendoWindowResizeHandle
657
- kendoDraggable>
658
- </div>
659
- }
660
- }
661
-
662
- @if (showLicenseWatermark) {
663
- <div kendoWatermarkOverlay [licenseMessage]="licenseMessage"></div>
664
- }
665
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "\n [kendoDialogLocalizedMessages],\n [kendoWindowLocalizedMessages],\n [kendoDialogTitleBarLocalizedMessages]\n " }, { 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: 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"] }] });
666
- }
667
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WindowComponent, decorators: [{
668
- type: Component,
669
- args: [{
670
- exportAs: 'kendoWindow',
671
- providers: [
672
- DragResizeService,
673
- NavigationService,
674
- LocalizationService,
675
- {
676
- provide: L10N_PREFIX,
677
- useValue: 'kendo.window'
678
- }
679
- ],
680
- selector: 'kendo-window',
681
- template: `
682
- <ng-container kendoWindowLocalizedMessages
683
- i18n-closeTitle="kendo.window.closeTitle|The title of the close button"
684
- closeTitle="Close"
685
-
686
- i18n-restoreTitle="kendo.window.restoreTitle|The title of the restore button"
687
- restoreTitle="Restore"
688
-
689
- i18n-maximizeTitle="kendo.window.maximizeTitle|The title of the maximize button"
690
- maximizeTitle="Maximize"
691
-
692
- i18n-minimizeTitle="kendo.window.minimizeTitle|The title of the minimize button"
693
- minimizeTitle="Minimize"
694
- >
695
- <ng-container>
696
-
697
- @if (showDefaultTitleBar) {
698
- <kendo-window-titlebar [template]="titleBarTemplate" [id]="titleId">
699
- <span class="k-window-title">{{ title }}</span>
700
- <div class="k-window-titlebar-actions">
701
- <button kendoWindowMinimizeAction [attr.title]="minimizeButtonTitle" [attr.aria-label]="minimizeButtonTitle"></button>
702
- <button kendoWindowMaximizeAction [attr.title]="maximizeButtonTitle" [attr.aria-label]="maximizeButtonTitle"></button>
703
- <button kendoWindowRestoreAction [attr.title]="restoreButtonTitle" [attr.aria-label]="restoreButtonTitle"></button>
704
- <button kendoWindowCloseAction [attr.title]="closeButtonTitle" [attr.aria-label]="closeButtonTitle"></button>
705
- </div>
706
- </kendo-window-titlebar>
707
- }
708
- @if (!showDefaultTitleBar) {
709
- <ng-content select="kendo-window-titlebar"></ng-content>
710
- }
711
-
712
- @if (state !== 'minimized' || keepContent) {
713
- <div
714
- [hidden]="state === 'minimized' && keepContent"
715
- class="k-window-content"
716
- >
717
- @if (!contentTemplate) {
718
- <ng-content></ng-content>
719
- }
720
- @if (contentTemplate) {
721
- <ng-template [ngTemplateOutlet]="contentTemplate"></ng-template>
722
- }
723
- </div>
724
- }
725
-
726
- @if (resizable) {
727
- @for (dir of resizeDirections; track dir) {
728
- <div
729
- [direction]="dir"
730
- kendoWindowResizeHandle
731
- kendoDraggable>
732
- </div>
733
- }
734
- }
735
-
736
- @if (showLicenseWatermark) {
737
- <div kendoWatermarkOverlay [licenseMessage]="licenseMessage"></div>
738
- }
739
- `,
740
- standalone: true,
741
- imports: [LocalizedMessagesDirective, WindowTitleBarComponent, WindowMinimizeActionDirective, WindowMaximizeActionDirective, WindowRestoreActionDirective, WindowCloseActionDirective, NgTemplateOutlet, ResizeHandleDirective, DraggableDirective, WatermarkOverlayComponent]
742
- }]
743
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.DragResizeService }, { type: i2.NavigationService }, { type: i0.NgZone }, { type: i3.LocalizationService }], propDecorators: { autoFocusedElement: [{
744
- type: Input
745
- }], title: [{
746
- type: Input
747
- }], draggable: [{
748
- type: Input
749
- }], resizable: [{
750
- type: Input
751
- }], themeColor: [{
752
- type: Input
753
- }], keepContent: [{
754
- type: Input
755
- }], state: [{
756
- type: Input
757
- }], minWidth: [{
758
- type: Input
759
- }], minHeight: [{
760
- type: Input
761
- }], width: [{
762
- type: Input
763
- }], height: [{
764
- type: Input
765
- }], top: [{
766
- type: Input
767
- }], left: [{
768
- type: Input
769
- }], dragStart: [{
770
- type: Output
771
- }], dragEnd: [{
772
- type: Output
773
- }], resizeStart: [{
774
- type: Output
775
- }], resizeEnd: [{
776
- type: Output
777
- }], close: [{
778
- type: Output
779
- }], widthChange: [{
780
- type: Output
781
- }], heightChange: [{
782
- type: Output
783
- }], topChange: [{
784
- type: Output
785
- }], leftChange: [{
786
- type: Output
787
- }], stateChange: [{
788
- type: Output
789
- }], tabIndex: [{
790
- type: HostBinding,
791
- args: ['attr.tabIndex']
792
- }], role: [{
793
- type: HostBinding,
794
- args: ['attr.role']
795
- }], hostClass: [{
796
- type: HostBinding,
797
- args: ['class.k-window']
798
- }], dir: [{
799
- type: HostBinding,
800
- args: ['attr.dir']
801
- }], titleBarView: [{
802
- type: ViewChild,
803
- args: [WindowTitleBarComponent, { static: false }]
804
- }], titleBarContent: [{
805
- type: ContentChild,
806
- args: [WindowTitleBarComponent, { static: false }]
807
- }], resizeHandles: [{
808
- type: ViewChildren,
809
- args: [ResizeHandleDirective]
810
- }], styleMinWidth: [{
811
- type: HostBinding,
812
- args: ['style.minWidth']
813
- }], styleMinHeight: [{
814
- type: HostBinding,
815
- args: ['style.minHeight']
816
- }], stylePosition: [{
817
- type: HostBinding,
818
- args: ['style.position']
819
- }], wrapperMaximizedClass: [{
820
- type: HostBinding,
821
- args: ['class.k-window-maximized']
822
- }], wrapperMinimizedClass: [{
823
- type: HostBinding,
824
- args: ['class.k-window-minimized']
825
- }], onComponentFocus: [{
826
- type: HostListener,
827
- args: ['focus']
828
- }], onComponentBlur: [{
829
- type: HostListener,
830
- args: ['blur']
831
- }] } });