@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.
- package/dialog/dialog-content-base.d.ts +1 -1
- package/fesm2022/progress-kendo-angular-dialog.mjs +84 -84
- package/localization/messages.d.ts +1 -1
- package/package.json +11 -19
- package/schematics/ngAdd/index.js +1 -1
- package/esm2022/common/actions-layout.mjs +0 -5
- package/esm2022/common/animation-types.mjs +0 -5
- package/esm2022/common/dialog-animation-direction.mjs +0 -5
- package/esm2022/common/preventable-event.mjs +0 -30
- package/esm2022/common/util.mjs +0 -167
- package/esm2022/dialog/dialog-actions.component.mjs +0 -182
- package/esm2022/dialog/dialog-animations/animate-content.mjs +0 -19
- package/esm2022/dialog/dialog-animations/animations.mjs +0 -69
- package/esm2022/dialog/dialog-animations/create-animation-player.mjs +0 -18
- package/esm2022/dialog/dialog-container.directive.mjs +0 -31
- package/esm2022/dialog/dialog-container.service.mjs +0 -26
- package/esm2022/dialog/dialog-content-base.mjs +0 -57
- package/esm2022/dialog/dialog-titlebar.component.mjs +0 -170
- package/esm2022/dialog/dialog.component.mjs +0 -650
- package/esm2022/dialog/dialog.service.mjs +0 -210
- package/esm2022/dialog/models/dialog-action-divider.mjs +0 -5
- package/esm2022/dialog/models/dialog-action.mjs +0 -40
- package/esm2022/dialog/models/dialog-animation.mjs +0 -5
- package/esm2022/dialog/models/dialog-close-result.mjs +0 -12
- package/esm2022/dialog/models/dialog-ref.mjs +0 -39
- package/esm2022/dialog/models/dialog-result.mjs +0 -5
- package/esm2022/dialog/models/dialog-settings.mjs +0 -95
- package/esm2022/dialog/models/index.mjs +0 -12
- package/esm2022/dialog/models/theme-color.mjs +0 -5
- package/esm2022/dialog.module.mjs +0 -49
- package/esm2022/dialogs.module.mjs +0 -59
- package/esm2022/directives.mjs +0 -95
- package/esm2022/index.mjs +0 -33
- package/esm2022/localization/custom-messages.component.mjs +0 -65
- package/esm2022/localization/dialog-localization.service.mjs +0 -9
- package/esm2022/localization/localized-messages.directive.mjs +0 -43
- package/esm2022/localization/messages.mjs +0 -45
- package/esm2022/localization/titlebar-localization.service.mjs +0 -45
- package/esm2022/package-metadata.mjs +0 -16
- package/esm2022/progress-kendo-angular-dialog.mjs +0 -8
- package/esm2022/window/actions/window-close-action.directive.mjs +0 -119
- package/esm2022/window/actions/window-maximize-action.directive.mjs +0 -125
- package/esm2022/window/actions/window-minimize-action.directive.mjs +0 -125
- package/esm2022/window/actions/window-restore-action.directive.mjs +0 -125
- package/esm2022/window/drag-resize.service.mjs +0 -335
- package/esm2022/window/models/index.mjs +0 -11
- package/esm2022/window/models/theme-color.mjs +0 -5
- package/esm2022/window/models/window-close-result.mjs +0 -10
- package/esm2022/window/models/window-messages.mjs +0 -5
- package/esm2022/window/models/window-options.mjs +0 -5
- package/esm2022/window/models/window-ref.mjs +0 -25
- package/esm2022/window/models/window-settings.mjs +0 -92
- package/esm2022/window/models/window-types.mjs +0 -5
- package/esm2022/window/navigation.service.mjs +0 -160
- package/esm2022/window/window-container.directive.mjs +0 -31
- package/esm2022/window/window-container.service.mjs +0 -26
- package/esm2022/window/window-events.mjs +0 -5
- package/esm2022/window/window-resize-handle.directive.mjs +0 -74
- package/esm2022/window/window-titlebar.component.mjs +0 -173
- package/esm2022/window/window.component.mjs +0 -831
- package/esm2022/window/window.service.mjs +0 -206
- package/esm2022/window.module.mjs +0 -53
|
@@ -1,5 +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
|
-
export {};
|
|
@@ -1,30 +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
|
-
/**
|
|
6
|
-
* Represents a preventable event in Dialog and Window components.
|
|
7
|
-
*
|
|
8
|
-
*/
|
|
9
|
-
export class PreventableEvent {
|
|
10
|
-
prevented = false;
|
|
11
|
-
/**
|
|
12
|
-
* @hidden
|
|
13
|
-
*/
|
|
14
|
-
constructor() { }
|
|
15
|
-
/**
|
|
16
|
-
* Prevents the default action for a specified event.
|
|
17
|
-
* In this way, the source component suppresses the built-in behavior that follows the event.
|
|
18
|
-
*/
|
|
19
|
-
preventDefault() {
|
|
20
|
-
this.prevented = true;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* If the event is prevented by any of its subscribers, returns `true`.
|
|
24
|
-
*
|
|
25
|
-
* @returns `true` if the default action was prevented. Otherwise, returns `false`.
|
|
26
|
-
*/
|
|
27
|
-
isDefaultPrevented() {
|
|
28
|
-
return this.prevented;
|
|
29
|
-
}
|
|
30
|
-
}
|
package/esm2022/common/util.mjs
DELETED
|
@@ -1,167 +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 { of } from 'rxjs';
|
|
6
|
-
import { delay, takeUntil } from 'rxjs/operators';
|
|
7
|
-
/**
|
|
8
|
-
* @hidden
|
|
9
|
-
*/
|
|
10
|
-
export const isPresent = (value) => value !== null && value !== undefined;
|
|
11
|
-
/**
|
|
12
|
-
* @hidden
|
|
13
|
-
*/
|
|
14
|
-
export const isTruthy = (value) => !!value;
|
|
15
|
-
const toClassList = (classNames) => String(classNames).trim().split(' ');
|
|
16
|
-
const focusableRegex = /^(?:a|input|select|textarea|button|object)$/i;
|
|
17
|
-
/**
|
|
18
|
-
* @hidden
|
|
19
|
-
*/
|
|
20
|
-
export const DIALOG_ELEMENTS_HANDLING_ESC_KEY = 'k-dialog-wrapper k-actions k-dialog-titlebar-action';
|
|
21
|
-
/**
|
|
22
|
-
* @hidden
|
|
23
|
-
*/
|
|
24
|
-
export const DIALOG_ELEMENTS_HANDLING_ARROWS = 'k-actions';
|
|
25
|
-
/**
|
|
26
|
-
* @hidden
|
|
27
|
-
*/
|
|
28
|
-
export const WINDOW_CLASSES = 'k-window';
|
|
29
|
-
/**
|
|
30
|
-
* @hidden
|
|
31
|
-
*/
|
|
32
|
-
export const WINDOW_ELEMENTS_HANDLING_ESC_KEY = 'k-window k-window-titlebar-action';
|
|
33
|
-
/**
|
|
34
|
-
* @hidden
|
|
35
|
-
*/
|
|
36
|
-
export const hasClasses = (element, classNames) => {
|
|
37
|
-
const namesList = toClassList(classNames);
|
|
38
|
-
return Boolean(toClassList(element.className).find((className) => namesList.indexOf(className) >= 0));
|
|
39
|
-
};
|
|
40
|
-
/**
|
|
41
|
-
* @hidden
|
|
42
|
-
*/
|
|
43
|
-
export const isVisible = (element) => {
|
|
44
|
-
const rect = element.getBoundingClientRect();
|
|
45
|
-
return !!(rect.width && rect.height) && window.getComputedStyle(element).visibility !== 'hidden';
|
|
46
|
-
};
|
|
47
|
-
/**
|
|
48
|
-
* @hidden
|
|
49
|
-
*/
|
|
50
|
-
export const isFocusable = (element, checkVisibility = true) => {
|
|
51
|
-
if (element.tagName) {
|
|
52
|
-
const tagName = element.tagName.toLowerCase();
|
|
53
|
-
const tabIndex = element.getAttribute('tabIndex');
|
|
54
|
-
const validTabIndex = tabIndex !== null && !isNaN(tabIndex) && tabIndex > -1;
|
|
55
|
-
let focusable = false;
|
|
56
|
-
if (focusableRegex.test(tagName)) {
|
|
57
|
-
focusable = !element.disabled;
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
focusable = validTabIndex;
|
|
61
|
-
}
|
|
62
|
-
return focusable && (!checkVisibility || isVisible(element));
|
|
63
|
-
}
|
|
64
|
-
return false;
|
|
65
|
-
};
|
|
66
|
-
/**
|
|
67
|
-
* Receives CSS class declarations either as an object, string or array and returns an array of the class names.
|
|
68
|
-
*
|
|
69
|
-
* @hidden
|
|
70
|
-
*/
|
|
71
|
-
export const parseCSSClassNames = (value) => {
|
|
72
|
-
if (isObject(value)) {
|
|
73
|
-
return parseObjectClassNames(value);
|
|
74
|
-
}
|
|
75
|
-
if (isString(value)) {
|
|
76
|
-
return parseStringClassNames(value);
|
|
77
|
-
}
|
|
78
|
-
if (Array.isArray(value)) {
|
|
79
|
-
return parseArrayClassNames(value);
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
const parseObjectClassNames = (value) => {
|
|
83
|
-
const classes = [];
|
|
84
|
-
Object.keys(value).forEach(className => {
|
|
85
|
-
const currentClassName = splitStringToArray(className);
|
|
86
|
-
if (value[className] && currentClassName[0]) {
|
|
87
|
-
classes.push(...currentClassName);
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
return classes;
|
|
91
|
-
};
|
|
92
|
-
const parseStringClassNames = (value) => {
|
|
93
|
-
const classes = [];
|
|
94
|
-
const classesArray = splitStringToArray(value);
|
|
95
|
-
classesArray.forEach(className => {
|
|
96
|
-
classes.push(className);
|
|
97
|
-
});
|
|
98
|
-
return classes;
|
|
99
|
-
};
|
|
100
|
-
const parseArrayClassNames = (value) => {
|
|
101
|
-
const classes = [];
|
|
102
|
-
value.forEach((className) => {
|
|
103
|
-
const current = splitStringToArray(className);
|
|
104
|
-
if (current[0]) {
|
|
105
|
-
classes.push(...current);
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
return classes;
|
|
109
|
-
};
|
|
110
|
-
/**
|
|
111
|
-
* @hidden
|
|
112
|
-
*/
|
|
113
|
-
export const preventDefault = ({ originalEvent: event }) => {
|
|
114
|
-
event.stopPropagation();
|
|
115
|
-
event.preventDefault();
|
|
116
|
-
};
|
|
117
|
-
/**
|
|
118
|
-
* @hidden
|
|
119
|
-
*/
|
|
120
|
-
export const isWindowAvailable = () => {
|
|
121
|
-
return typeof window !== 'undefined';
|
|
122
|
-
};
|
|
123
|
-
/**
|
|
124
|
-
* @hidden
|
|
125
|
-
*/
|
|
126
|
-
export const preventOnDblClick = release => (mouseDown) => of(mouseDown).pipe(delay(150), takeUntil(release));
|
|
127
|
-
/**
|
|
128
|
-
* @hidden
|
|
129
|
-
*/
|
|
130
|
-
export const RESIZE_DIRECTIONS = ['n', 'e', 's', 'w', 'se', 'sw', 'ne', 'nw'];
|
|
131
|
-
/**
|
|
132
|
-
* @hidden
|
|
133
|
-
*/
|
|
134
|
-
export const OFFSET_STYLES = ['top', 'left', 'width', 'height'];
|
|
135
|
-
/**
|
|
136
|
-
* @hidden
|
|
137
|
-
*/
|
|
138
|
-
export const isString = (value) => value instanceof String || typeof value === 'string';
|
|
139
|
-
/**
|
|
140
|
-
* @hidden
|
|
141
|
-
*/
|
|
142
|
-
export const isObject = (value) => isPresent(value) && !Array.isArray(value) && typeof value === 'object';
|
|
143
|
-
/**
|
|
144
|
-
* @hidden
|
|
145
|
-
*/
|
|
146
|
-
export const isNumber = (value) => typeof value === 'number' && isFinite(value);
|
|
147
|
-
/**
|
|
148
|
-
* @hidden
|
|
149
|
-
*/
|
|
150
|
-
export const createValueWithUnit = (value) => value + (isNumber(value) ? 'px' : '');
|
|
151
|
-
/**
|
|
152
|
-
* @hidden
|
|
153
|
-
*/
|
|
154
|
-
export const splitStringToArray = (value) => value.trim().replace(/\s+/g, " ").split(' ');
|
|
155
|
-
/**
|
|
156
|
-
* @hidden
|
|
157
|
-
*/
|
|
158
|
-
export const findPrimaryButton = (buttons) => {
|
|
159
|
-
for (let i = buttons.length - 1; i >= 0; i--) {
|
|
160
|
-
const classList = buttons[i].classList;
|
|
161
|
-
for (let j = 0; j < classList.length; j++) {
|
|
162
|
-
if (classList[j].endsWith('-primary')) {
|
|
163
|
-
return buttons[i];
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
};
|
|
@@ -1,182 +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, EventEmitter, HostBinding, TemplateRef, Input, Output, ElementRef } from '@angular/core';
|
|
6
|
-
import { NgClass, NgTemplateOutlet } from '@angular/common';
|
|
7
|
-
import { KENDO_BUTTON } from '@progress/kendo-angular-buttons';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@progress/kendo-angular-buttons";
|
|
10
|
-
/**
|
|
11
|
-
* Represents the action buttons of the Dialog.
|
|
12
|
-
* ([See example.]({% slug actionbuttons_dialog %}))
|
|
13
|
-
*
|
|
14
|
-
* ```html
|
|
15
|
-
* <kendo-dialog>
|
|
16
|
-
* <kendo-dialog-actions>
|
|
17
|
-
* <button kendoButton fillMode="flat" themeColor="primary" (click)="onPrimaryActionClick()">
|
|
18
|
-
* Primary Action
|
|
19
|
-
* </button>
|
|
20
|
-
* </kendo-dialog-actions>
|
|
21
|
-
* </kendo-dialog>
|
|
22
|
-
* ```
|
|
23
|
-
*/
|
|
24
|
-
export class DialogActionsComponent {
|
|
25
|
-
el;
|
|
26
|
-
/**
|
|
27
|
-
* Allows the declarative specification of the Dialog `actions`.
|
|
28
|
-
*/
|
|
29
|
-
set actions(value) {
|
|
30
|
-
if (value instanceof TemplateRef) {
|
|
31
|
-
this.actionsTemplate = value;
|
|
32
|
-
}
|
|
33
|
-
else if (Array.isArray(value)) {
|
|
34
|
-
this.actionsArray = value;
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
throw new Error('"actions" must be either TemplateRef or DialogAction[] instance.');
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* @hidden
|
|
42
|
-
*/
|
|
43
|
-
actionsArray;
|
|
44
|
-
/**
|
|
45
|
-
* @hidden
|
|
46
|
-
*/
|
|
47
|
-
actionsTemplate;
|
|
48
|
-
/**
|
|
49
|
-
* Sets the possible layout of the action buttons.
|
|
50
|
-
* @default 'stretched'
|
|
51
|
-
*/
|
|
52
|
-
layout = 'stretched';
|
|
53
|
-
/**
|
|
54
|
-
* Fires when the user clicks an action button.
|
|
55
|
-
*/
|
|
56
|
-
action = new EventEmitter();
|
|
57
|
-
hostClasses = true;
|
|
58
|
-
get startClassName() {
|
|
59
|
-
return this.layout === 'start';
|
|
60
|
-
}
|
|
61
|
-
get centerClassName() {
|
|
62
|
-
return this.layout === 'center';
|
|
63
|
-
}
|
|
64
|
-
get endClassName() {
|
|
65
|
-
return this.layout === 'end';
|
|
66
|
-
}
|
|
67
|
-
get stretchedClassName() {
|
|
68
|
-
return this.layout === 'stretched';
|
|
69
|
-
}
|
|
70
|
-
constructor(el) {
|
|
71
|
-
this.el = el;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* @hidden
|
|
75
|
-
*/
|
|
76
|
-
onButtonClick(action, _e) {
|
|
77
|
-
this.action.emit(action);
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* @hidden
|
|
81
|
-
*/
|
|
82
|
-
isDivider(action) {
|
|
83
|
-
return action === 'spacer';
|
|
84
|
-
}
|
|
85
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DialogActionsComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
86
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DialogActionsComponent, isStandalone: true, selector: "kendo-dialog-actions", inputs: { actions: "actions", layout: "layout" }, outputs: { action: "action" }, host: { properties: { "class.k-actions": "this.hostClasses", "class.k-actions-horizontal": "this.hostClasses", "class.k-window-actions": "this.hostClasses", "class.k-dialog-actions": "this.hostClasses", "class.k-actions-start": "this.startClassName", "class.k-actions-center": "this.centerClassName", "class.k-actions-end": "this.endClassName", "class.k-actions-stretched": "this.stretchedClassName" } }, ngImport: i0, template: `
|
|
87
|
-
@if (!actions) {
|
|
88
|
-
<ng-content></ng-content>
|
|
89
|
-
}
|
|
90
|
-
@if (actionsArray) {
|
|
91
|
-
@for (action of actionsArray; track action) {
|
|
92
|
-
@if (isDivider(action)) {
|
|
93
|
-
<span class="k-spacer"></span>
|
|
94
|
-
} @else {
|
|
95
|
-
<button
|
|
96
|
-
type="button"
|
|
97
|
-
kendoButton
|
|
98
|
-
[disabled]="action.disabled"
|
|
99
|
-
[fillMode]="action.fillMode"
|
|
100
|
-
[themeColor]="action.themeColor"
|
|
101
|
-
[ngClass]="action.cssClass"
|
|
102
|
-
(click)="onButtonClick(action, $event)"
|
|
103
|
-
[attr.aria-label]="action.text"
|
|
104
|
-
[svgIcon]="action.svgIcon"
|
|
105
|
-
[icon]="action.icon"
|
|
106
|
-
>
|
|
107
|
-
{{ action.text }}
|
|
108
|
-
</button>
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
} @else {
|
|
112
|
-
<ng-container [ngTemplateOutlet]="actionsTemplate"></ng-container>
|
|
113
|
-
}
|
|
114
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
|
|
115
|
-
}
|
|
116
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DialogActionsComponent, decorators: [{
|
|
117
|
-
type: Component,
|
|
118
|
-
args: [{
|
|
119
|
-
selector: 'kendo-dialog-actions',
|
|
120
|
-
template: `
|
|
121
|
-
@if (!actions) {
|
|
122
|
-
<ng-content></ng-content>
|
|
123
|
-
}
|
|
124
|
-
@if (actionsArray) {
|
|
125
|
-
@for (action of actionsArray; track action) {
|
|
126
|
-
@if (isDivider(action)) {
|
|
127
|
-
<span class="k-spacer"></span>
|
|
128
|
-
} @else {
|
|
129
|
-
<button
|
|
130
|
-
type="button"
|
|
131
|
-
kendoButton
|
|
132
|
-
[disabled]="action.disabled"
|
|
133
|
-
[fillMode]="action.fillMode"
|
|
134
|
-
[themeColor]="action.themeColor"
|
|
135
|
-
[ngClass]="action.cssClass"
|
|
136
|
-
(click)="onButtonClick(action, $event)"
|
|
137
|
-
[attr.aria-label]="action.text"
|
|
138
|
-
[svgIcon]="action.svgIcon"
|
|
139
|
-
[icon]="action.icon"
|
|
140
|
-
>
|
|
141
|
-
{{ action.text }}
|
|
142
|
-
</button>
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
} @else {
|
|
146
|
-
<ng-container [ngTemplateOutlet]="actionsTemplate"></ng-container>
|
|
147
|
-
}
|
|
148
|
-
`,
|
|
149
|
-
standalone: true,
|
|
150
|
-
imports: [NgClass, NgTemplateOutlet, KENDO_BUTTON]
|
|
151
|
-
}]
|
|
152
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { actions: [{
|
|
153
|
-
type: Input
|
|
154
|
-
}], layout: [{
|
|
155
|
-
type: Input
|
|
156
|
-
}], action: [{
|
|
157
|
-
type: Output
|
|
158
|
-
}], hostClasses: [{
|
|
159
|
-
type: HostBinding,
|
|
160
|
-
args: ['class.k-actions']
|
|
161
|
-
}, {
|
|
162
|
-
type: HostBinding,
|
|
163
|
-
args: ['class.k-actions-horizontal']
|
|
164
|
-
}, {
|
|
165
|
-
type: HostBinding,
|
|
166
|
-
args: ['class.k-window-actions']
|
|
167
|
-
}, {
|
|
168
|
-
type: HostBinding,
|
|
169
|
-
args: ['class.k-dialog-actions']
|
|
170
|
-
}], startClassName: [{
|
|
171
|
-
type: HostBinding,
|
|
172
|
-
args: ['class.k-actions-start']
|
|
173
|
-
}], centerClassName: [{
|
|
174
|
-
type: HostBinding,
|
|
175
|
-
args: ['class.k-actions-center']
|
|
176
|
-
}], endClassName: [{
|
|
177
|
-
type: HostBinding,
|
|
178
|
-
args: ['class.k-actions-end']
|
|
179
|
-
}], stretchedClassName: [{
|
|
180
|
-
type: HostBinding,
|
|
181
|
-
args: ['class.k-actions-stretched']
|
|
182
|
-
}] } });
|
|
@@ -1,19 +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 { animations } from "./animations";
|
|
6
|
-
import { createPlayer } from "./create-animation-player";
|
|
7
|
-
/**
|
|
8
|
-
* @hidden
|
|
9
|
-
*/
|
|
10
|
-
export const animateContent = (animation, defAnimationConfig, animatedElement, builder) => {
|
|
11
|
-
let animationConfig = defAnimationConfig;
|
|
12
|
-
if (typeof animation !== 'boolean') {
|
|
13
|
-
animationConfig = animation;
|
|
14
|
-
animationConfig.duration = animationConfig.duration ? animationConfig.duration : defAnimationConfig.duration;
|
|
15
|
-
}
|
|
16
|
-
const animationSpecs = animations(animationConfig.duration, animationConfig.direction, animationConfig.type);
|
|
17
|
-
const player = createPlayer(builder, animationSpecs, animatedElement);
|
|
18
|
-
player.play();
|
|
19
|
-
};
|
|
@@ -1,69 +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 { animate, keyframes, style } from '@angular/animations';
|
|
6
|
-
/**
|
|
7
|
-
* @hidden
|
|
8
|
-
*/
|
|
9
|
-
export function animations(duration, direction, animationType) {
|
|
10
|
-
switch (animationType) {
|
|
11
|
-
case 'slide': {
|
|
12
|
-
const translate = direction === 'left' || direction === 'right' ? 'translateX' : 'translateY';
|
|
13
|
-
const start = direction === 'right' || direction === 'down' ? -100 : 100;
|
|
14
|
-
const end = 0;
|
|
15
|
-
return [
|
|
16
|
-
style({ transform: `${translate}(${start}%)` }),
|
|
17
|
-
animate(`${duration}ms ease-in`, style({ transform: `${translate}(${end}%)` }))
|
|
18
|
-
];
|
|
19
|
-
}
|
|
20
|
-
case 'expand': {
|
|
21
|
-
const scale = direction === 'up' || direction === 'down' ? 'scaleY' : 'scaleX';
|
|
22
|
-
const startScale = 0;
|
|
23
|
-
const endScale = 1;
|
|
24
|
-
let origin;
|
|
25
|
-
if (direction === 'down') {
|
|
26
|
-
origin = 'top';
|
|
27
|
-
}
|
|
28
|
-
else if (direction === 'left') {
|
|
29
|
-
origin = 'right';
|
|
30
|
-
}
|
|
31
|
-
else if (direction === 'right') {
|
|
32
|
-
origin = 'left';
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
origin = 'bottom';
|
|
36
|
-
}
|
|
37
|
-
return [
|
|
38
|
-
style({ transform: `${scale}(${startScale})`, transformOrigin: origin }),
|
|
39
|
-
animate(`${duration}ms ease-in`, style({ transform: `${scale}(${endScale})` }))
|
|
40
|
-
];
|
|
41
|
-
}
|
|
42
|
-
case 'zoom': {
|
|
43
|
-
const startZoom = 0;
|
|
44
|
-
const endZoom = 1;
|
|
45
|
-
return [
|
|
46
|
-
animate(duration, keyframes([
|
|
47
|
-
style({ transform: `scale(${startZoom})` }),
|
|
48
|
-
style({ transform: `scale(${endZoom})` })
|
|
49
|
-
]))
|
|
50
|
-
];
|
|
51
|
-
}
|
|
52
|
-
case 'fade': {
|
|
53
|
-
const startFade = 0;
|
|
54
|
-
const endFade = 1;
|
|
55
|
-
return [
|
|
56
|
-
animate(duration, keyframes([
|
|
57
|
-
style({ opacity: `${startFade}` }),
|
|
58
|
-
style({ opacity: `${endFade}` })
|
|
59
|
-
]))
|
|
60
|
-
];
|
|
61
|
-
}
|
|
62
|
-
// 'translate' is considered the default animation type
|
|
63
|
-
default:
|
|
64
|
-
return [
|
|
65
|
-
style({ transform: 'translate(0, -10%)' }),
|
|
66
|
-
animate(`${duration}ms cubic-bezier(.2, 1, .2, 1)`)
|
|
67
|
-
];
|
|
68
|
-
}
|
|
69
|
-
}
|
|
@@ -1,18 +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
|
-
/**
|
|
6
|
-
* @hidden
|
|
7
|
-
*/
|
|
8
|
-
export const createPlayer = (builder, animation, animatedElement) => {
|
|
9
|
-
const factory = builder.build(animation);
|
|
10
|
-
let player = factory.create(animatedElement);
|
|
11
|
-
player.onDone(() => {
|
|
12
|
-
if (player) {
|
|
13
|
-
player.destroy();
|
|
14
|
-
player = null;
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
return player;
|
|
18
|
-
};
|
|
@@ -1,31 +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 { Directive, ViewContainerRef } from '@angular/core';
|
|
6
|
-
import { DialogContainerService } from './dialog-container.service';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "./dialog-container.service";
|
|
9
|
-
/**
|
|
10
|
-
* Represents an insertion point for Dialogs created through the Dialog service.
|
|
11
|
-
* The created Dialogs mount after this element. ([See example.]({% slug api_dialog_dialogservice %}#toc-open))
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```html
|
|
15
|
-
* <div kendoDialogContainer></div>
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
export class DialogContainerDirective {
|
|
19
|
-
constructor(container, service) {
|
|
20
|
-
service.container = container;
|
|
21
|
-
}
|
|
22
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DialogContainerDirective, deps: [{ token: i0.ViewContainerRef }, { token: i1.DialogContainerService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
23
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: DialogContainerDirective, isStandalone: true, selector: "[kendoDialogContainer]", ngImport: i0 });
|
|
24
|
-
}
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DialogContainerDirective, decorators: [{
|
|
26
|
-
type: Directive,
|
|
27
|
-
args: [{
|
|
28
|
-
selector: '[kendoDialogContainer]',
|
|
29
|
-
standalone: true
|
|
30
|
-
}]
|
|
31
|
-
}], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i1.DialogContainerService }] });
|
|
@@ -1,26 +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 { Injectable } from '@angular/core';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
* @hidden
|
|
9
|
-
*/
|
|
10
|
-
export class DialogContainerService {
|
|
11
|
-
static container = null;
|
|
12
|
-
set container(container) {
|
|
13
|
-
DialogContainerService.container = container;
|
|
14
|
-
}
|
|
15
|
-
get container() {
|
|
16
|
-
return DialogContainerService.container;
|
|
17
|
-
}
|
|
18
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DialogContainerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
19
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DialogContainerService, providedIn: 'root' });
|
|
20
|
-
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DialogContainerService, decorators: [{
|
|
22
|
-
type: Injectable,
|
|
23
|
-
args: [{
|
|
24
|
-
providedIn: 'root'
|
|
25
|
-
}]
|
|
26
|
-
}] });
|
|
@@ -1,57 +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 { DialogRef } from './models/dialog-ref';
|
|
6
|
-
import { DialogActionsComponent } from './dialog-actions.component';
|
|
7
|
-
import { DialogTitleBarComponent } from './dialog-titlebar.component';
|
|
8
|
-
import { Directive, ViewChild } from '@angular/core';
|
|
9
|
-
import { filter } from 'rxjs/operators';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "./models/dialog-ref";
|
|
12
|
-
/**
|
|
13
|
-
* Serves as the base class for a component provided as Dialog content through the `content` property.
|
|
14
|
-
* ([See example.](slug:service_dialog#toc-single-component-rendering)).
|
|
15
|
-
*
|
|
16
|
-
*/
|
|
17
|
-
export class DialogContentBase {
|
|
18
|
-
dialog;
|
|
19
|
-
/**
|
|
20
|
-
* @hidden
|
|
21
|
-
*/
|
|
22
|
-
dialogTitleBar;
|
|
23
|
-
/**
|
|
24
|
-
* @hidden
|
|
25
|
-
*/
|
|
26
|
-
dialogActions;
|
|
27
|
-
constructor(dialog) {
|
|
28
|
-
this.dialog = dialog;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* @hidden
|
|
32
|
-
*/
|
|
33
|
-
ngAfterViewInit() {
|
|
34
|
-
if (this.dialogTitleBar) {
|
|
35
|
-
// when opening component inside dialog with service AND the component has defined its own titlebar
|
|
36
|
-
this.dialogTitleBar.close.pipe(filter((e) => !e.isDefaultPrevented())).subscribe(() => {
|
|
37
|
-
this.dialog.close();
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
if (this.dialogActions) {
|
|
41
|
-
if (this.dialogActions.actions) {
|
|
42
|
-
this.dialogActions.action.subscribe(action => this.dialog.dialog.instance.action.emit(action));
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DialogContentBase, deps: [{ token: i1.DialogRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
47
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: DialogContentBase, viewQueries: [{ propertyName: "dialogTitleBar", first: true, predicate: DialogTitleBarComponent, descendants: true }, { propertyName: "dialogActions", first: true, predicate: DialogActionsComponent, descendants: true }], ngImport: i0 });
|
|
48
|
-
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DialogContentBase, decorators: [{
|
|
50
|
-
type: Directive
|
|
51
|
-
}], ctorParameters: () => [{ type: i1.DialogRef }], propDecorators: { dialogTitleBar: [{
|
|
52
|
-
type: ViewChild,
|
|
53
|
-
args: [DialogTitleBarComponent, { static: false }]
|
|
54
|
-
}], dialogActions: [{
|
|
55
|
-
type: ViewChild,
|
|
56
|
-
args: [DialogActionsComponent, { static: false }]
|
|
57
|
-
}] } });
|