@progress/kendo-vue-dialogs 5.3.0-dev.202410141143 → 5.3.0-develop.2

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 (109) hide show
  1. package/Dialog.js +8 -0
  2. package/Dialog.mjs +157 -0
  3. package/DialogActionsBar.js +8 -0
  4. package/DialogActionsBar.mjs +52 -0
  5. package/DialogTitleBar.js +8 -0
  6. package/DialogTitleBar.mjs +59 -0
  7. package/README.md +27 -36
  8. package/StageEnum.js +8 -0
  9. package/StageEnum.mjs +11 -0
  10. package/Window.js +8 -0
  11. package/Window.mjs +381 -0
  12. package/WindowResizeHandlers.js +8 -0
  13. package/WindowResizeHandlers.mjs +49 -0
  14. package/WindowTitlebar.js +8 -0
  15. package/WindowTitlebar.mjs +135 -0
  16. package/constants.js +8 -0
  17. package/constants.mjs +11 -0
  18. package/dist/cdn/js/kendo-vue-dialogs.js +8 -1
  19. package/index.d.mts +595 -0
  20. package/index.d.ts +595 -0
  21. package/index.js +8 -0
  22. package/index.mjs +15 -0
  23. package/messages/main.js +8 -0
  24. package/messages/main.mjs +20 -0
  25. package/package-metadata.js +8 -0
  26. package/package-metadata.mjs +18 -0
  27. package/package.json +22 -39
  28. package/dist/es/Dialog.d.ts +0 -109
  29. package/dist/es/Dialog.js +0 -225
  30. package/dist/es/DialogActionsBar.d.ts +0 -50
  31. package/dist/es/DialogActionsBar.js +0 -61
  32. package/dist/es/DialogTitleBar.d.ts +0 -46
  33. package/dist/es/DialogTitleBar.js +0 -85
  34. package/dist/es/StageEnum.d.ts +0 -5
  35. package/dist/es/StageEnum.js +0 -6
  36. package/dist/es/Window.d.ts +0 -75
  37. package/dist/es/Window.js +0 -663
  38. package/dist/es/WindowProps.d.ts +0 -138
  39. package/dist/es/WindowProps.js +0 -2
  40. package/dist/es/WindowResizeHandlers.d.ts +0 -30
  41. package/dist/es/WindowResizeHandlers.js +0 -89
  42. package/dist/es/WindowTitlebar.d.ts +0 -86
  43. package/dist/es/WindowTitlebar.js +0 -202
  44. package/dist/es/additionalTypes.ts +0 -21
  45. package/dist/es/constants.d.ts +0 -2
  46. package/dist/es/constants.js +0 -2
  47. package/dist/es/events.d.ts +0 -34
  48. package/dist/es/events.js +0 -2
  49. package/dist/es/main.d.ts +0 -6
  50. package/dist/es/main.js +0 -4
  51. package/dist/es/messages/main.d.ts +0 -25
  52. package/dist/es/messages/main.js +0 -26
  53. package/dist/es/package-metadata.d.ts +0 -5
  54. package/dist/es/package-metadata.js +0 -11
  55. package/dist/esm/Dialog.d.ts +0 -109
  56. package/dist/esm/Dialog.js +0 -225
  57. package/dist/esm/DialogActionsBar.d.ts +0 -50
  58. package/dist/esm/DialogActionsBar.js +0 -61
  59. package/dist/esm/DialogTitleBar.d.ts +0 -46
  60. package/dist/esm/DialogTitleBar.js +0 -85
  61. package/dist/esm/StageEnum.d.ts +0 -5
  62. package/dist/esm/StageEnum.js +0 -6
  63. package/dist/esm/Window.d.ts +0 -75
  64. package/dist/esm/Window.js +0 -663
  65. package/dist/esm/WindowProps.d.ts +0 -138
  66. package/dist/esm/WindowProps.js +0 -2
  67. package/dist/esm/WindowResizeHandlers.d.ts +0 -30
  68. package/dist/esm/WindowResizeHandlers.js +0 -89
  69. package/dist/esm/WindowTitlebar.d.ts +0 -86
  70. package/dist/esm/WindowTitlebar.js +0 -202
  71. package/dist/esm/additionalTypes.ts +0 -21
  72. package/dist/esm/constants.d.ts +0 -2
  73. package/dist/esm/constants.js +0 -2
  74. package/dist/esm/events.d.ts +0 -34
  75. package/dist/esm/events.js +0 -2
  76. package/dist/esm/main.d.ts +0 -6
  77. package/dist/esm/main.js +0 -4
  78. package/dist/esm/messages/main.d.ts +0 -25
  79. package/dist/esm/messages/main.js +0 -26
  80. package/dist/esm/package-metadata.d.ts +0 -5
  81. package/dist/esm/package-metadata.js +0 -11
  82. package/dist/esm/package.json +0 -3
  83. package/dist/npm/Dialog.d.ts +0 -109
  84. package/dist/npm/Dialog.js +0 -232
  85. package/dist/npm/DialogActionsBar.d.ts +0 -50
  86. package/dist/npm/DialogActionsBar.js +0 -68
  87. package/dist/npm/DialogTitleBar.d.ts +0 -46
  88. package/dist/npm/DialogTitleBar.js +0 -92
  89. package/dist/npm/StageEnum.d.ts +0 -5
  90. package/dist/npm/StageEnum.js +0 -9
  91. package/dist/npm/Window.d.ts +0 -75
  92. package/dist/npm/Window.js +0 -670
  93. package/dist/npm/WindowProps.d.ts +0 -138
  94. package/dist/npm/WindowProps.js +0 -6
  95. package/dist/npm/WindowResizeHandlers.d.ts +0 -30
  96. package/dist/npm/WindowResizeHandlers.js +0 -96
  97. package/dist/npm/WindowTitlebar.d.ts +0 -86
  98. package/dist/npm/WindowTitlebar.js +0 -209
  99. package/dist/npm/additionalTypes.ts +0 -21
  100. package/dist/npm/constants.d.ts +0 -2
  101. package/dist/npm/constants.js +0 -5
  102. package/dist/npm/events.d.ts +0 -34
  103. package/dist/npm/events.js +0 -3
  104. package/dist/npm/main.d.ts +0 -6
  105. package/dist/npm/main.js +0 -12
  106. package/dist/npm/messages/main.d.ts +0 -25
  107. package/dist/npm/messages/main.js +0 -29
  108. package/dist/npm/package-metadata.d.ts +0 -5
  109. package/dist/npm/package-metadata.js +0 -14
package/Dialog.js ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("vue"),k=require("./DialogTitleBar.js"),n=require("@progress/kendo-vue-common"),h=require("./package-metadata.js"),I=require("./constants.js"),y=o.defineComponent({name:"KendoDialog",emits:{close:null,overlayclick:null},props:{appendTo:String,title:String,titleRender:[String,Function],id:String,wrapperId:String,dir:String,closeIcon:{type:Boolean,default:!0},width:[String,Number],height:[String,Number],minWidth:[String,Number],dialogClass:String,themeColor:{type:String,validator:function(e){return["primary","dark","light"].includes(e)}},onClose:Function},provide(){return{kCurrentZIndex:I.DEFAULT_DIALOGS_ZINDEX}},data(){return{showLicenseWatermark:!1}},created(){n.validatePackage(h.packageMetadata),this.showLicenseWatermark=n.shouldShowValidationUI(h.packageMetadata),this.titleId=this.generateTitleId(),this.contentId=this.generateContentId()},computed:{dialogElementClass(){const{dialogClass:e,themeColor:i}=this.$props;return{"k-window":!0,"k-dialog":!0,[e]:e,[`k-window-${i}`]:i}}},mounted(){if(this.$props.appendTo){const e=document.querySelector(this.$props.appendTo);this.windowElement=this.$refs.wrapper,e.append(this.windowElement)}},beforeUnmount(){this.$props.appendTo&&this.windowElement.remove()},methods:{handleCloseDialog(e){e.preventDefault(),this.$emit("close",{event:e,target:this})},handleKeyDown(e){e.keyCode===n.Keys.esc&&n.hasListener.call(this,"close")&&(e.preventDefault(),this.handleCloseDialog(e))},transformDimesion(e){return typeof e=="string"&&(e.endsWith("px")||e.endsWith("%"))?e:e+"px"},getActionBarIndex(e){return e.findIndex(t=>t&&t.tag&&t.tag.toLowerCase().indexOf("dialogactionsbar")!==-1||t.componentOptions&&t.componentOptions.tag&&t.componentOptions.tag.toLowerCase().indexOf("actions-bar")!==-1||t.type&&t.type.name&&t.type.name.toLowerCase().indexOf("dialogactionsbar")!==-1)},generateTitleId(){return"dialog-title"+n.guid()},generateContentId(){return"dialog-content"+n.guid()},handleClick(e){this.$emit("overlayclick",e)}},render(){const e=this.$props.id!==void 0?this.$props.id:this.titleId;let{title:i,width:t,height:a,minWidth:s,dir:g,contentStyle:u,wrapperId:m}=this.$props;const d=this.$props.titleRender?n.templateRendering.call(this,this.$props.titleRender,n.getListeners.call(this)):null,r=n.getDefaultSlots(this)||[];t=this.transformDimesion(t),a=this.transformDimesion(a),s=this.transformDimesion(s);const w=this.showLicenseWatermark?o.createVNode(n.WatermarkOverlay,null,null):null,l=this.getActionBarIndex(r);let c;l!==-1&&(c=r[l],r.splice(l,1));const f=this.$props.closeIcon!==void 0?this.$props.closeIcon:!0,p=o.createVNode("div",{ref:"wrapper",class:"k-dialog-wrapper",onKeydown:this.handleKeyDown,tabindex:0,id:m,dir:g},[o.createVNode("div",{class:"k-overlay",onClick:this.handleClick},null),o.createVNode("div",{"aria-labelledby":i||d?e:void 0,"aria-describedby":this.contentId,"aria-modal":!0,class:this.dialogElementClass,role:"dialog",style:{width:t,height:a,minWidth:s}},[(i||d)&&o.createVNode(k.DialogTitleBar,{closeIcon:f,onClosebuttonclick:this.handleCloseDialog,id:e,title:i,titleRender:d},null),o.createVNode("div",{class:"k-window-content k-dialog-content",style:u,id:this.contentId},[r]),c,w])]);return this.$props.appendTo?o.createVNode("div",null,[p]):p}});exports.Dialog=y;
package/Dialog.mjs ADDED
@@ -0,0 +1,157 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { defineComponent as I, createVNode as o } from "vue";
9
+ import { DialogTitleBar as k } from "./DialogTitleBar.mjs";
10
+ import { validatePackage as y, shouldShowValidationUI as C, Keys as D, hasListener as S, guid as c, templateRendering as $, getListeners as x, getDefaultSlots as b, WatermarkOverlay as v } from "@progress/kendo-vue-common";
11
+ import { packageMetadata as h } from "./package-metadata.mjs";
12
+ import { DEFAULT_DIALOGS_ZINDEX as L } from "./constants.mjs";
13
+ const K = /* @__PURE__ */ I({
14
+ name: "KendoDialog",
15
+ emits: {
16
+ close: null,
17
+ overlayclick: null
18
+ },
19
+ props: {
20
+ appendTo: String,
21
+ title: String,
22
+ titleRender: [String, Function],
23
+ id: String,
24
+ wrapperId: String,
25
+ dir: String,
26
+ closeIcon: {
27
+ type: Boolean,
28
+ default: !0
29
+ },
30
+ width: [String, Number],
31
+ height: [String, Number],
32
+ minWidth: [String, Number],
33
+ dialogClass: String,
34
+ themeColor: {
35
+ type: String,
36
+ validator: function(e) {
37
+ return ["primary", "dark", "light"].includes(e);
38
+ }
39
+ },
40
+ onClose: Function
41
+ },
42
+ provide() {
43
+ return {
44
+ kCurrentZIndex: L
45
+ };
46
+ },
47
+ data() {
48
+ return {
49
+ showLicenseWatermark: !1
50
+ };
51
+ },
52
+ created() {
53
+ y(h), this.showLicenseWatermark = C(h), this.titleId = this.generateTitleId(), this.contentId = this.generateContentId();
54
+ },
55
+ computed: {
56
+ dialogElementClass() {
57
+ const {
58
+ dialogClass: e,
59
+ themeColor: n
60
+ } = this.$props;
61
+ return {
62
+ "k-window": !0,
63
+ "k-dialog": !0,
64
+ [e]: e,
65
+ [`k-window-${n}`]: n
66
+ };
67
+ }
68
+ },
69
+ mounted() {
70
+ if (this.$props.appendTo) {
71
+ const e = document.querySelector(this.$props.appendTo);
72
+ this.windowElement = this.$refs.wrapper, e.append(this.windowElement);
73
+ }
74
+ },
75
+ beforeUnmount() {
76
+ this.$props.appendTo && this.windowElement.remove();
77
+ },
78
+ methods: {
79
+ handleCloseDialog(e) {
80
+ e.preventDefault(), this.$emit("close", {
81
+ event: e,
82
+ target: this
83
+ });
84
+ },
85
+ handleKeyDown(e) {
86
+ e.keyCode === D.esc && S.call(this, "close") && (e.preventDefault(), this.handleCloseDialog(e));
87
+ },
88
+ transformDimesion(e) {
89
+ return typeof e == "string" && (e.endsWith("px") || e.endsWith("%")) ? e : e + "px";
90
+ },
91
+ getActionBarIndex(e) {
92
+ return e.findIndex((t) => t && t.tag && t.tag.toLowerCase().indexOf("dialogactionsbar") !== -1 || t.componentOptions && t.componentOptions.tag && t.componentOptions.tag.toLowerCase().indexOf("actions-bar") !== -1 || t.type && t.type.name && t.type.name.toLowerCase().indexOf("dialogactionsbar") !== -1);
93
+ },
94
+ generateTitleId() {
95
+ return "dialog-title" + c();
96
+ },
97
+ generateContentId() {
98
+ return "dialog-content" + c();
99
+ },
100
+ handleClick(e) {
101
+ this.$emit("overlayclick", e);
102
+ }
103
+ },
104
+ render() {
105
+ const e = this.$props.id !== void 0 ? this.$props.id : this.titleId;
106
+ let {
107
+ title: n,
108
+ width: t,
109
+ height: r,
110
+ minWidth: s,
111
+ dir: m,
112
+ contentStyle: g,
113
+ wrapperId: u
114
+ } = this.$props;
115
+ const a = this.$props.titleRender ? $.call(this, this.$props.titleRender, x.call(this)) : null, i = b(this) || [];
116
+ t = this.transformDimesion(t), r = this.transformDimesion(r), s = this.transformDimesion(s);
117
+ const f = this.showLicenseWatermark ? o(v, null, null) : null, l = this.getActionBarIndex(i);
118
+ let d;
119
+ l !== -1 && (d = i[l], i.splice(l, 1));
120
+ const w = this.$props.closeIcon !== void 0 ? this.$props.closeIcon : !0, p = o("div", {
121
+ ref: "wrapper",
122
+ class: "k-dialog-wrapper",
123
+ onKeydown: this.handleKeyDown,
124
+ tabindex: 0,
125
+ id: u,
126
+ dir: m
127
+ }, [o("div", {
128
+ class: "k-overlay",
129
+ onClick: this.handleClick
130
+ }, null), o("div", {
131
+ "aria-labelledby": n || a ? e : void 0,
132
+ "aria-describedby": this.contentId,
133
+ "aria-modal": !0,
134
+ class: this.dialogElementClass,
135
+ role: "dialog",
136
+ style: {
137
+ width: t,
138
+ height: r,
139
+ minWidth: s
140
+ }
141
+ }, [(n || a) && o(k, {
142
+ closeIcon: w,
143
+ onClosebuttonclick: this.handleCloseDialog,
144
+ id: e,
145
+ title: n,
146
+ titleRender: a
147
+ }, null), o("div", {
148
+ class: "k-window-content k-dialog-content",
149
+ style: g,
150
+ id: this.contentId
151
+ }, [i]), d, f])]);
152
+ return this.$props.appendTo ? o("div", null, [p]) : p;
153
+ }
154
+ });
155
+ export {
156
+ K as Dialog
157
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("vue"),r=require("@progress/kendo-vue-common"),n=o.defineComponent({name:"DialogActionsBar",props:{layout:{type:String,default:"stretched",validator:function(t){return["stretched","start","center","end"].includes(t)}},orientation:{type:String,default:"horizontal",validator:function(t){return["horizontal","vertical"].includes(t)}}},computed:{wrapperClasses(){const{layout:t,orientation:e}=this.$props;return{"k-actions":!0,"k-dialog-actions":!0,"k-window-actions":!0,[`k-actions-${e}`]:e,[`k-actions-${t}`]:t}}},render(){const t=r.getDefaultSlots(this);return o.createVNode("div",{class:this.wrapperClasses},[t])}});exports.DialogActionsBar=n;
@@ -0,0 +1,52 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { defineComponent as o, createVNode as r } from "vue";
9
+ import { getDefaultSlots as n } from "@progress/kendo-vue-common";
10
+ const s = /* @__PURE__ */ o({
11
+ name: "DialogActionsBar",
12
+ props: {
13
+ layout: {
14
+ type: String,
15
+ default: "stretched",
16
+ validator: function(t) {
17
+ return ["stretched", "start", "center", "end"].includes(t);
18
+ }
19
+ },
20
+ orientation: {
21
+ type: String,
22
+ default: "horizontal",
23
+ validator: function(t) {
24
+ return ["horizontal", "vertical"].includes(t);
25
+ }
26
+ }
27
+ },
28
+ computed: {
29
+ wrapperClasses() {
30
+ const {
31
+ layout: t,
32
+ orientation: e
33
+ } = this.$props;
34
+ return {
35
+ "k-actions": !0,
36
+ "k-dialog-actions": !0,
37
+ "k-window-actions": !0,
38
+ [`k-actions-${e}`]: e,
39
+ [`k-actions-${t}`]: t
40
+ };
41
+ }
42
+ },
43
+ render() {
44
+ const t = n(this);
45
+ return r("div", {
46
+ class: this.wrapperClasses
47
+ }, [t]);
48
+ }
49
+ });
50
+ export {
51
+ s as DialogActionsBar
52
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),a=require("@progress/kendo-vue-common"),c=require("@progress/kendo-vue-buttons"),r=require("@progress/kendo-svg-icons"),s=t.defineComponent({props:{id:String,closeIcon:{type:Boolean,default:!0},title:String,titleRender:[String,Function,Object],onClosebuttonclick:Function},methods:{onCloseButtonClick(e){this.$emit("closebuttonclick",e)}},render(){let{id:e,closeIcon:i,titleRender:l,title:n}=this.$props,o;return o=a.getTemplate.call(this,{h:t.h,template:l,defaultRendering:n}),t.createVNode("div",{class:"k-window-titlebar k-dialog-titlebar",id:e},[t.createVNode("span",{class:"k-window-title k-dialog-title"},[o]),t.createVNode("div",{class:"k-window-titlebar-actions k-dialog-titlebar-actions"},[i&&t.createVNode(c.Button,{type:"button",fillMode:"flat","aria-label":"Close",icon:"x",svgIcon:r.xIcon,onClick:this.onCloseButtonClick,class:"k-window-titlebar-action k-dialog-titlebar-action"},null)])])}});exports.DialogTitleBar=s;
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { defineComponent as a, h as r, createVNode as t } from "vue";
9
+ import { getTemplate as c } from "@progress/kendo-vue-common";
10
+ import { Button as s } from "@progress/kendo-vue-buttons";
11
+ import { xIcon as d } from "@progress/kendo-svg-icons";
12
+ const b = /* @__PURE__ */ a({
13
+ props: {
14
+ id: String,
15
+ closeIcon: {
16
+ type: Boolean,
17
+ default: !0
18
+ },
19
+ title: String,
20
+ titleRender: [String, Function, Object],
21
+ onClosebuttonclick: Function
22
+ },
23
+ methods: {
24
+ onCloseButtonClick(e) {
25
+ this.$emit("closebuttonclick", e);
26
+ }
27
+ },
28
+ render() {
29
+ let {
30
+ id: e,
31
+ closeIcon: o,
32
+ titleRender: l,
33
+ title: n
34
+ } = this.$props, i;
35
+ return i = c.call(this, {
36
+ h: r,
37
+ template: l,
38
+ defaultRendering: n
39
+ }), t("div", {
40
+ class: "k-window-titlebar k-dialog-titlebar",
41
+ id: e
42
+ }, [t("span", {
43
+ class: "k-window-title k-dialog-title"
44
+ }, [i]), t("div", {
45
+ class: "k-window-titlebar-actions k-dialog-titlebar-actions"
46
+ }, [o && t(s, {
47
+ type: "button",
48
+ fillMode: "flat",
49
+ "aria-label": "Close",
50
+ icon: "x",
51
+ svgIcon: d,
52
+ onClick: this.onCloseButtonClick,
53
+ class: "k-window-titlebar-action k-dialog-titlebar-action"
54
+ }, null)])]);
55
+ }
56
+ });
57
+ export {
58
+ b as DialogTitleBar
59
+ };
package/README.md CHANGED
@@ -1,55 +1,46 @@
1
- <a href="https://www.telerik.com/kendo-vue-ui/?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npm-dialogs&utm_content=banner" target="_blank">
1
+ <a href="https://www.telerik.com/kendo-vue-ui/?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npm-utils&utm_content=banner" target="_blank">
2
2
  <img src="https://www.telerik.com/kendo-vue-ui/npm-banner.svg" alt="Kendo UI for Vue NPM Banner">
3
3
  </a>
4
4
 
5
-
6
- ## Kendo UI for Vue Dialogs for Vue (Dialog and Window Component)
5
+ ## Kendo UI for Vue Dialogs Package for Vue
7
6
 
8
7
  > **Important**
9
- > * This package is а part of [Kendo UI for Vue](https://www.telerik.com/kendo-vue-ui/?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npm-dialogs)&mdash;a commercial UI library.
10
- > * You will need to install a license key when adding the package to your project. For more information, please refer to the [Kendo UI for Vue My License page](https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npm-dialogs).
11
- > * To receive a license key, you need to either [purchase a license](https://www.telerik.com/purchase/kendo-ui?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npm-dialogs) or register for a [free trial](https://www.telerik.com/download-login-v2-kendo-vue-ui?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npm-dialogs). Doing so indicates that you [accept the Kendo UI for Vue License Agreement](https://www.telerik.com/purchase/license-agreement/kendo-ui?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npm-dialogs).
12
- > * The 30-day free trial gives you access to all the Kendo UI for Vue components and their full functionality. Additionally, for the period of your license, you get access to our legendary technical support provided directly by the Kendo UI for Vue dev team!
13
8
  >
14
- > [Start using Kendo UI for Vue](https://www.telerik.com/download-login-v2-kendo-vue-ui?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npm-dialogs) and speed up your development process!
15
-
16
- The Kendo UI for Vue Dialogs are UI components for prompting user interaction. They provide modal and non-modal windows for showing additional information to the user, filling a form and many others.
17
- The Kendo UI for Vue Dialogs package includes the following components:
18
-
19
- * [Dialog component](https://www.telerik.com/kendo-vue-ui/components/dialogs/dialog/?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npm-dialogs)
20
- * [Window component](https://www.telerik.com/kendo-vue-ui/components/dialogs/window/?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npm-dialogs)
9
+ > - This package is а part of [Kendo UI for Vue](https://www.telerik.com/kendo-vue-ui/?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npmdialogs)&mdash;a commercial UI library.
10
+ > - You will need to install a license key when adding the package to your project. For more information, please refer to the [Kendo UI for Vue My License page](https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npmdialogs).
11
+ > - To receive a license key, you need to either [purchase a license](https://www.telerik.com/purchase/kendo-ui?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npmdialogs) or register for a [free trial](https://www.telerik.com/download-login-v2-kendo-vue-ui?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npmdialogs). Doing so indicates that you [accept the Kendo UI for Vue License Agreement](https://www.telerik.com/kendo-vue-ui-develop/my-license/?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npmdialogs).
12
+ > - The 30-day free trial gives you access to all the Kendo UI for Vue components and their full functionality. Additionally, for the period of your license, you get access to our legendary technical support provided directly by the Kendo UI for Vue dev team!
13
+ >
14
+ > [Start using Kendo UI for Vue](https://www.telerik.com/download-login-v2-kendo-vue-ui?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npmdialogs) and speed up your development process!
21
15
 
22
- ## Vue Dialogs
16
+ ## Vue Dialogs
23
17
 
24
18
  > Historically, all Kendo UI for Vue Native components support both **Vue 2** and **Vue 3**, however, Vue 2 is currently in its end-of-support phase till Nov 2024. After our last major release for 2024, Vue 2 will no longer be supported in the new versions of the Kendo UI for Vue components. Please check our [Vue 2 End of Support article](https://www.telerik.com/kendo-vue-ui/components/vue2-deprecation/) for more details.
25
19
 
26
20
  Among the many features which the Kendo UI for Vue Dialogs deliver are:
27
21
 
28
- * **Modal**&mdash;The dialogs can be shown as modal on the page to prevent the user from interacting with other elements on the page.
29
- * **Resizing**&mdash;You can resize the window to change its dimensions to better view a large content.
30
- * **Dragging**&mdash;The window can be dragged across the page, to position it at a specific part of the page.
31
- * **Keyboard navigation**&mdash;The Dialogs can be controlled by the keyboard.
32
- * **Title and content**&mdash;You have full control over what is rendered in the dialogs title and content.
33
- * [**Theme support**](https://www.telerik.com/kendo-vue-ui/components/styling/?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npm-dialogs)&mdash;The Kendo UI for Vue Dialogs, as well as all 80+ components in the Kendo UI for Vue suite, are styled in four polished themes (Bootstrap, Material, Default and Fluent) and can be further customized to match your specific design guidelines.
22
+ - TODO 1
23
+ - TODO 2
24
+ - TODO 3
34
25
 
35
- ## Support Options
26
+ ## Support Options
36
27
 
37
- For any issues you might encounter while working with the Kendo UI for Vue Dialogs, use any of the available support channels:
28
+ For any issues you might encounter while working with the Kendo UI for Vue Dialogs, use any of the available support channels:
38
29
 
39
- * Industry-leading technical support&mdash;Kendo UI for Vue paid license holders and users with an active (free) trial license can take advantage of our outstanding customer support. To submit a ticket, use [the dedicated Kendo UI for Vue support system](https://www.telerik.com/account/support-tickets?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npm-all).
40
- * Product forums&mdash;The [Kendo UI for Vue forums](https://www.telerik.com/forums/kendo-ui-vue?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npm-all) are part of the free support you can get from the community and from the Kendo UI for Vue team.
41
- * Feedback portal&mdash;The [Kendo UI for Vue feedback portal](https://feedback.telerik.com/kendo-vue-ui?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npm-all) is where you can request and vote for new features to be added.
30
+ - Industry-leading technical support&mdash;Kendo UI for Vue paid license holders and users with an active (free) trial license can take advantage of our outstanding customer support. To submit a ticket, use [the dedicated Kendo UI for Vue support system](https://www.telerik.com/account/support-tickets?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npmdialogs).
31
+ - Product forums&mdash;The [Kendo UI for Vue forums](https://www.telerik.com/forums/kendo-ui-vue?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npmdialogs) are part of the free support you can get from the community and from the Kendo UI for Vue team.
32
+ - Feedback portal&mdash;The [Kendo UI for Vue feedback portal](https://feedback.telerik.com/kendo-vue-ui?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npmdialogs) is where you can request and vote for new features to be added.
42
33
 
43
- ## Resources
34
+ ## Resources
44
35
 
45
- * [Getting Started with Kendo UI for Vue](https://www.telerik.com/kendo-vue-ui/getting-started/?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npm-dialogs)
46
- * [Getting Started with the Kendo UI for Vue Dialogs](https://www.telerik.com/kendo-vue-ui/components/dialogs/?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npm-dialogs)
47
- * [API Reference of the Kendo UI for Vue Dialogs](https://www.telerik.com/kendo-vue-ui/components/dialogs/api/?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npm-dialogs)
48
- * [Kendo UI for Vue Roadmap](https://www.telerik.com/kendo-vue-ui/roadmap/?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npm-dialogs)
49
- * [Blogs](https://www.telerik.com/blogs/tag/vue?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npm-dialogs)
50
- * [Demos, documentation, and component reference](https://www.telerik.com/kendo-vue-ui/components/?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npm-dialogs)
51
- * [Kendo UI for Vue pricing and licensing](https://www.telerik.com/purchase/kendo-ui?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npm-dialogs)
36
+ - [Getting Started with Kendo UI for Vue](https://www.telerik.com/kendo-vue-ui/getting-started/?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npmdialogs)
37
+ - [Getting Started with the Kendo UI for Vue Dialogs](https://www.telerik.com/kendo-vue-ui/components/dialogs/?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npmdialogs)
38
+ - [API Reference of the Kendo UI for Vue Dialogs](https://www.telerik.com/kendo-vue-ui/components/dialogs/api/?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npmdialogs)
39
+ - [Kendo UI for Vue Roadmap](https://www.telerik.com/kendo-vue-ui/roadmap/?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npmdialogs)
40
+ - [Blogs](https://www.telerik.com/blogs/tag/vue?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npmdialogs)
41
+ - [Demos, documentation, and component reference](https://www.telerik.com/kendo-vue-ui/components/?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npmdialogs)
42
+ - [Kendo UI for Vue pricing and licensing](https://www.telerik.com/purchase/kendo-ui?utm_medium=referral&utm_source=npm&utm_campaign=kendo-ui-vue-trial-npmdialogs)
52
43
 
53
- *Copyright © 2023 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.*
44
+ _Copyright © 2024 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved._
54
45
 
55
- *Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries.*
46
+ _Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries._
package/StageEnum.js ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var e=(E=>(E.DEFAULT="DEFAULT",E.FULLSCREEN="FULLSCREEN",E.MINIMIZED="MINIMIZED",E))(e||{});exports.windowStage=e;
package/StageEnum.mjs ADDED
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ var I = /* @__PURE__ */ ((E) => (E.DEFAULT = "DEFAULT", E.FULLSCREEN = "FULLSCREEN", E.MINIMIZED = "MINIMIZED", E))(I || {});
9
+ export {
10
+ I as windowStage
11
+ };
package/Window.js ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("vue"),$=require("./WindowTitlebar.js"),i=require("@progress/kendo-vue-common"),I=require("./WindowResizeHandlers.js"),e=require("./StageEnum.js"),S=require("./package-metadata.js"),C=require("./constants.js"),L=300,E=300,g=120,f=100,r=5,D=o.defineComponent({name:"KendoWindow",emits:{resize:null,move:null,close:null,stagechange:null,overlayclick:null},provide(){return{kCurrentZIndex:C.DEFAULT_DIALOGS_ZINDEX}},props:{id:String,appendTo:String,width:{type:[Number],default:void 0},height:{type:[Number],default:void 0},left:{type:[Number],default:void 0},windowStyle:Object,windowClass:String,top:{type:[Number],default:void 0},initialWidth:[Number],initialHeight:[Number],initialLeft:[Number],initialTop:[Number],minWidth:{type:[Number],default:g},minHeight:{type:[Number],default:f},resizable:{type:Boolean,default:!0},draggable:{type:Boolean,default:!0},modal:{type:Boolean,default:!1},doubleClickStageChange:{type:Boolean,default:!0},title:String,titleRender:[String,Function],closeButton:[String,Function],minimizeButton:[String,Function],maximizeButton:[String,Function],restoreButton:[String,Function],shouldUpdateOnDrag:Boolean,stage:{type:String,validator:function(t){return["DEFAULT","MINIMIZED","FULLSCREEN"].indexOf(t)!==-1}},themeColor:{type:String,validator:function(t){return[void 0,"primary","dark","light"].includes(t)}},dir:String},created(){i.validatePackage(S.packageMetadata),this.showLicenseWatermark=i.shouldShowValidationUI(S.packageMetadata),this.windowCoordinatesState={leftBeforeAction:this.getInitialLeft(),topBeforeAction:this.getInitialTop(),widthBeforeAction:this.getInitialWidth(),heightBeforeAction:this.getInitialHeight()},this.titleId=this.generateTitleId()},beforeUnmount(){this.$props.appendTo&&this.windowWrapper.remove()},data(){return{currentStage:this.$props.stage||e.windowStage.DEFAULT,isDragging:!1,currentTop:this.getInitialTop(),currentLeft:this.getInitialLeft(),currentWidth:this.getInitialWidth(),currentHeight:this.getInitialHeight(),titleId:void 0,showLicenseWatermark:!1}},mounted(){if(window&&(window.addEventListener("resize",this.handleBrowserWindowResize),this.$props.appendTo)){const t=document.querySelector(this.$props.appendTo);this.windowWrapper=this.$refs.wrapper,t.append(this.windowWrapper)}this.$el&&(this.windowElement=this.$refs.windowElement)},unmounted(){window&&window.removeEventListener("resize",this.handleBrowserWindowResize)},computed:{wrapperClass(){return{"k-dialog-wrapper":this.$props.modal}},windowElementClass(){const{windowClass:t,themeColor:n}=this.$props;return{"k-window":!0,[t]:t,[`k-window-${n}`]:n,"k-window-minimized":this.currentStage==="MINIMIZED"}},computedTop(){return this.windowStage!==e.windowStage.FULLSCREEN?Math.max(this.$props.top||this.currentTop,0):0},computedLeft(){return this.windowStage!==e.windowStage.FULLSCREEN?Math.max(this.$props.left||this.currentLeft,0):0},computedWidth(){let t=this.$props.width||this.currentWidth;return this.windowStage===e.windowStage.FULLSCREEN&&(t=window.innerWidth),t},computedHeight(){let t=this.$props.height||this.currentHeight;return this.windowStage===e.windowStage.FULLSCREEN?t=window.innerHeight:this.windowStage===e.windowStage.MINIMIZED&&(t=0),t},windowStage(){return this.$props.stage||this.currentStage}},methods:{onPress(t){const n=t;this.windowCoordinatesState.differenceLeft=n.pageX-this.computedLeft,this.windowCoordinatesState.differenceTop=n.pageY-this.computedTop},onDrag(t){const n=t;n.originalEvent.preventDefault(),this.windowStage!==e.windowStage.FULLSCREEN&&this.$props.draggable&&(this.currentTop=Math.max(n.pageY-this.windowCoordinatesState.differenceTop,0),this.currentLeft=n.pageX-this.windowCoordinatesState.differenceLeft,this.isDragging=!0,this.dispatchMoveEvent("move",n,!0,!1))},onRelease(t){const n=t;this.windowStage!==e.windowStage.FULLSCREEN&&this.$props.draggable&&this.dispatchMoveEvent("move",n,!0,!0),this.isDragging=!1},handleKeyDown(t){if(t.target!==t.currentTarget)return;const n=this.$props.minWidth||g,s=this.$props.minHeight||f;if(t.ctrlKey&&this.$props.resizable){switch(t.keyCode){case i.Keys.up:t.preventDefault(),s<=this.computedHeight-r&&(this.currentHeight=this.currentHeight-r);break;case i.Keys.down:t.preventDefault(),this.currentHeight=this.currentHeight+r;break;case i.Keys.left:n<=this.computedWidth-r&&(this.currentWidth=this.currentWidth-r);break;case i.Keys.right:this.currentWidth=this.currentWidth+r;break;default:return}this.dispatchMoveEvent("resize",t,!1,void 0);return}if(t.altKey){switch(t.keyCode){case i.Keys.up:this.windowStage===e.windowStage.MINIMIZED?(this.handleRestore(t),this.$emit("stagechange",t,this,{state:e.windowStage.DEFAULT})):this.windowStage===e.windowStage.DEFAULT&&(this.handleFullscreen(t),this.$emit("stagechange",t,this,{state:e.windowStage.FULLSCREEN}));break;case i.Keys.down:this.windowStage===e.windowStage.FULLSCREEN?(this.handleRestore(t),this.$emit("stagechange",t,this,{state:e.windowStage.DEFAULT})):this.windowStage===e.windowStage.DEFAULT&&(this.handleMinimize(t),this.$emit("stagechange",t,this,{state:e.windowStage.MINIMIZED}));break}return}if(!t.ctrlKey)switch(t.keyCode){case i.Keys.esc:this.handleCloseWindow(t);return;case i.Keys.up:t.preventDefault(),this.currentTop=this.currentTop-r;break;case i.Keys.down:t.preventDefault(),this.currentTop=this.currentTop+r;break;case i.Keys.left:t.preventDefault(),this.currentLeft=this.currentLeft-r;break;case i.Keys.right:t.preventDefault(),this.currentLeft=this.currentLeft+r;break;default:return}this.dispatchMoveEvent("move",t,!1,void 0)},getInitialTop(){if(this.$props.top!==void 0)return this.$props.top;if(this.$props.initialTop!==void 0)return this.$props.initialTop;let t=E;return this.$props.height!==void 0?t=this.$props.height:this.$props.initialHeight!==void 0&&(t=this.$props.initialHeight),window.innerHeight/2-t/2},getInitialLeft(){if(this.$props.left!==void 0)return this.$props.left;if(this.$props.initialLeft!==void 0)return this.$props.initialLeft;let t=L;return this.$props.width!==void 0?t=this.$props.width:this.$props.initialWidth!==void 0&&(t=this.$props.initialWidth),window.innerWidth/2-t/2},getInitialWidth(){let t=L;return this.$props.width!==void 0?t=this.$props.width:this.$props.initialWidth!==void 0&&(t=this.$props.initialWidth),t},getInitialHeight(){let t=E;return this.$props.height!==void 0?t=this.$props.height:this.$props.initialHeight!==void 0&&(t=this.$props.initialHeight),t},handleMinimize(t){t.preventDefault(),this.windowCoordinatesState.leftBeforeAction=this.computedLeft,this.windowCoordinatesState.topBeforeAction=this.computedTop,this.windowCoordinatesState.widthBeforeAction=this.computedWidth,this.windowCoordinatesState.heightBeforeAction=this.computedHeight,this.currentStage=e.windowStage.MINIMIZED,this.currentHeight=0,this.$emit("stagechange",t,this,{state:e.windowStage.MINIMIZED})},handleFullscreen(t){t.preventDefault(),this.windowCoordinatesState.leftBeforeAction=this.computedLeft,this.windowCoordinatesState.topBeforeAction=this.computedTop,this.windowCoordinatesState.widthBeforeAction=this.computedWidth,this.windowCoordinatesState.heightBeforeAction=this.computedHeight,this.currentLeft=0,this.currentTop=0,this.currentWidth=window.innerWidth,this.currentHeight=window.innerHeight,this.currentStage=e.windowStage.FULLSCREEN,this.$emit("stagechange",t,this,{state:e.windowStage.FULLSCREEN})},handleRestore(t){t.preventDefault(),this.windowStage===e.windowStage.FULLSCREEN?(this.currentStage=e.windowStage.DEFAULT,this.currentLeft=this.windowCoordinatesState.leftBeforeAction,this.currentTop=this.windowCoordinatesState.topBeforeAction,this.currentWidth=this.windowCoordinatesState.widthBeforeAction,this.currentHeight=this.windowCoordinatesState.heightBeforeAction):this.windowStage===e.windowStage.MINIMIZED&&(this.currentStage=e.windowStage.DEFAULT,this.currentHeight=this.windowCoordinatesState.heightBeforeAction),this.$emit("stagechange",t,this,{state:e.windowStage.DEFAULT})},handleCloseWindow(t){t.preventDefault(),this.$emit("close",t,this,{state:void 0})},handleDoubleClick(t){this.$props.doubleClickStageChange&&(this.windowStage===e.windowStage.FULLSCREEN||this.windowStage===e.windowStage.MINIMIZED?this.handleRestore(t):this.handleFullscreen(t))},handleResize(t,n){const s=this.computedWidth,a=this.computedHeight,p=this.$props.minWidth||g,l=this.$props.minHeight||f,h=this.computedTop-t.pageY,d=this.computedLeft-t.pageX,c=t.pageX-this.computedLeft,u=t.pageY-this.computedTop;this.isDragging=!n.end,n.direction.indexOf("n")>=0&&l-(a+h)<0&&(this.currentTop=t.pageY,this.currentHeight=a+h),n.direction.indexOf("s")>=0&&l-u<0&&(this.currentHeight=u),n.direction.indexOf("w")>=0&&p-(s+d)<0&&(this.currentLeft=t.pageX,this.currentWidth=s+d),n.direction.indexOf("e")>=0&&p-c<0&&(this.currentWidth=c),this.dispatchMoveEvent("resize",t,!0,n.end)},dispatchMoveEvent(t,n,s,a){this.$emit(t,{event:n.event,drag:s,end:a,target:this,left:this.currentLeft,top:this.currentTop,width:this.currentWidth,height:this.currentHeight})},handleBrowserWindowResize(){this.windowStage===e.windowStage.FULLSCREEN&&(this.currentWidth=window.innerWidth,this.currentHeight=window.innerHeight)},handleClick(t){this.$emit("overlayclick",t)},getActionBarIndex(t){return t.findIndex(s=>s&&s.tag&&s.tag.toLowerCase().indexOf("dialogactionsbar")!==-1||s.componentOptions&&s.componentOptions.tag&&s.componentOptions.tag.toLowerCase().indexOf("actions-bar")!==-1||s.type&&s.type.name&&s.type.name.toLowerCase().indexOf("dialogactionsbar")!==-1)},generateTitleId(){return"window-title-"+i.guid()}},render(){const t=i.templateRendering.call(this,this.$props.titleRender,i.getListeners.call(this)),n=i.templateRendering.call(this,this.$props.closeButton,i.getListeners.call(this)),s=i.templateRendering.call(this,this.$props.minimizeButton,i.getListeners.call(this)),a=i.templateRendering.call(this,this.$props.maximizeButton,i.getListeners.call(this)),p=i.templateRendering.call(this,this.$props.restoreButton,i.getListeners.call(this)),l=i.getDefaultSlots(this),h=l||[],d=this.getActionBarIndex(h);let c;d!==-1&&(c=h[d],h.splice(d,1));const u=this.showLicenseWatermark?o.createVNode(i.WatermarkOverlay,null,null):null,m=o.createVNode("div",{class:this.wrapperClass,ref:"wrapper",dir:this.$props.dir},[this.$props.modal&&o.createVNode("div",{class:"k-overlay",onClick:this.handleClick},null),o.createVNode("div",{tabindex:0,onFocus:w=>w.target.classList.add("k-focus"),onBlur:w=>w.target.classList.remove("k-focus"),onKeydown:this.handleKeyDown,ref:"windowElement",class:this.windowElementClass,role:"dialog","aria-modal":this.$props.modal?!0:void 0,"aria-labelledby":this.titleId,style:{top:this.computedTop+"px",left:this.computedLeft+"px",width:this.computedWidth+"px",height:this.computedHeight+"px"||"",...this.$props.windowStyle}},[o.createVNode(i.Draggable,{onPress:this.onPress,onDrag:this.onDrag,onRelease:this.onRelease,ref:"draggable"},{default:()=>[o.createVNode($.WindowTitleBar,{stage:this.windowStage,title:this.$props.title,titleId:this.titleId,titleRender:t,onDoubleclick:this.handleDoubleClick,onMinimizeclick:this.handleMinimize,onFullscreenclick:this.handleFullscreen,onRestoreclick:this.handleRestore,onCloseclick:this.handleCloseWindow,closeButton:n,minimizeButton:s,maximizeButton:a,restoreButton:p},null)]}),this.windowStage!==e.windowStage.MINIMIZED?[o.createVNode("div",{class:"k-window-content"},[l]),c]:null,this.windowStage===e.windowStage.DEFAULT&&this.$props.resizable?o.createVNode(I.ResizeHandlers,{onResize:this.handleResize},null):null,u])]);return this.$props.appendTo?o.createVNode("div",null,[m]):m}});exports.Window=D;