@progress/kendo-vue-buttons 8.3.0-develop.1 → 8.3.0-develop.3
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/SegmentedControl/SegmentedControl.d.ts +67 -0
- package/SegmentedControl/SegmentedControl.js +8 -0
- package/SegmentedControl/SegmentedControl.mjs +204 -0
- package/SegmentedControl/interfaces/SegmentedControlTypes.d.ts +204 -0
- package/SegmentedControl/interfaces/index.d.ts +8 -0
- package/dist/cdn/js/kendo-vue-buttons.js +1 -1
- package/index.d.mts +1 -0
- package/index.d.ts +1 -0
- package/index.js +1 -1
- package/index.mjs +16 -14
- package/package-metadata.js +1 -1
- package/package-metadata.mjs +2 -2
- package/package.json +5 -5
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2026 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 { PropType } from 'vue';
|
|
9
|
+
import { SegmentedControlState, SegmentedItemProps } from './interfaces';
|
|
10
|
+
/**
|
|
11
|
+
* Represents the Kendo UI for Vue SegmentedControl component.
|
|
12
|
+
*
|
|
13
|
+
* The SegmentedControl displays a horizontal set of mutually exclusive button segments,
|
|
14
|
+
* allowing the user to select one option at a time.
|
|
15
|
+
* @hidden
|
|
16
|
+
*/
|
|
17
|
+
declare const SegmentedControl: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
18
|
+
items: {
|
|
19
|
+
type: PropType<SegmentedItemProps[]>;
|
|
20
|
+
default: () => any[];
|
|
21
|
+
};
|
|
22
|
+
size: PropType<"small" | "medium" | "large">;
|
|
23
|
+
layoutMode: {
|
|
24
|
+
type: PropType<"stretch" | "compact">;
|
|
25
|
+
default: string;
|
|
26
|
+
};
|
|
27
|
+
value: PropType<string>;
|
|
28
|
+
defaultValue: PropType<string>;
|
|
29
|
+
itemTemplate: PropType<string | ((itemData: SegmentedItemProps) => any)>;
|
|
30
|
+
}>, {}, {
|
|
31
|
+
interactionState: SegmentedControlState;
|
|
32
|
+
}, {
|
|
33
|
+
selectedItemValue(): string | undefined;
|
|
34
|
+
sizeClass(): string | undefined;
|
|
35
|
+
buttonClass(): (itemValue: string, disabled: boolean | undefined, isSelected: boolean) => string;
|
|
36
|
+
iconClass(): (iconClassName: string | undefined, isSelected: boolean) => string;
|
|
37
|
+
}, {
|
|
38
|
+
updateThumbPosition(): void;
|
|
39
|
+
updateState(state: Partial<SegmentedControlState>): void;
|
|
40
|
+
handleButtonClick(itemData: SegmentedItemProps, e: MouseEvent): void;
|
|
41
|
+
handleMouseEnter(itemValue: string, disabled: boolean | undefined, onMouseEnter: (e: MouseEvent) => void, e: MouseEvent): void;
|
|
42
|
+
handleMouseLeave(onMouseLeave: (e: MouseEvent) => void, e: MouseEvent): void;
|
|
43
|
+
handleFocus(itemValue: string, onFocus: (e: FocusEvent) => void, e: FocusEvent): void;
|
|
44
|
+
handleBlur(onBlur: (e: FocusEvent) => void, e: FocusEvent): void;
|
|
45
|
+
}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
46
|
+
change: (value: string) => true;
|
|
47
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
48
|
+
items: {
|
|
49
|
+
type: PropType<SegmentedItemProps[]>;
|
|
50
|
+
default: () => any[];
|
|
51
|
+
};
|
|
52
|
+
size: PropType<"small" | "medium" | "large">;
|
|
53
|
+
layoutMode: {
|
|
54
|
+
type: PropType<"stretch" | "compact">;
|
|
55
|
+
default: string;
|
|
56
|
+
};
|
|
57
|
+
value: PropType<string>;
|
|
58
|
+
defaultValue: PropType<string>;
|
|
59
|
+
itemTemplate: PropType<string | ((itemData: SegmentedItemProps) => any)>;
|
|
60
|
+
}>> & Readonly<{
|
|
61
|
+
onChange?: (value: string) => any;
|
|
62
|
+
}>, {
|
|
63
|
+
items: SegmentedItemProps[];
|
|
64
|
+
layoutMode: "stretch" | "compact";
|
|
65
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
66
|
+
export { SegmentedControl };
|
|
67
|
+
export type { SegmentedControlProps, SegmentedItemProps } from './interfaces';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2026 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 n=require("vue"),o=require("@progress/kendo-vue-common"),z=require("../package-metadata.js"),T=n.defineComponent({name:"KendoSegmentedControl",emits:{change:e=>!0},props:{items:{type:Array,default:()=>[]},size:String,layoutMode:{type:String,default:"compact"},value:String,defaultValue:String,itemTemplate:[String,Function]},data(){return{interactionState:{selectedValue:this.$props.defaultValue,hoveredValue:void 0,focusedValue:void 0}}},computed:{selectedItemValue(){var e;return(e=this.$props.value)!=null?e:this.interactionState.selectedValue},sizeClass(){const e=this.$props.size;return e?o.kendoThemeMaps.sizeMap[e]:void 0},buttonClass(){return(e,t,s)=>o.classNames("k-segmented-control-button",{"k-selected":s,"k-hover":this.interactionState.hoveredValue===e&&!t,"k-focus":this.interactionState.focusedValue===e&&!t,"k-disabled":t})},iconClass(){return(e,t)=>o.classNames("k-segmented-control-button-icon",{...e&&{[e]:t}})}},watch:{selectedItemValue(){n.nextTick(()=>{this.updateThumbPosition()})}},created(){o.validatePackage(z.packageMetadata),this._resizeObserver=null},mounted(){n.nextTick(()=>{this.updateThumbPosition()}),this._resizeObserver=new ResizeObserver(()=>{this.updateThumbPosition()});const e=this.$refs.element;e&&this._resizeObserver.observe(e)},beforeUnmount(){this._resizeObserver&&(this._resizeObserver.disconnect(),this._resizeObserver=null)},methods:{updateThumbPosition(){const e=this.$refs.element,t=this.$refs.thumb;if(!e||!t)return;const s=e.querySelector(".k-segmented-control-button.k-selected");if(!s)return;const i=e.offsetWidth,{offsetWidth:c,offsetLeft:d}=s,a=`${d}px`,r=`${i-d-c}px`;t.style.left!==a&&(t.style.left=a),t.style.right!==r&&(t.style.right=r)},updateState(e){this.interactionState={...this.interactionState,...e}},handleButtonClick(e,t){var s,i;if(!e.disabled){if(this.selectedItemValue===e.value){(s=e.onClick)==null||s.call(e,t);return}this.$props.value===void 0&&e&&this.updateState({selectedValue:e.value}),this.$emit("change",e.value),(i=e.onClick)==null||i.call(e,t)}},handleMouseEnter(e,t,s,i){t||this.updateState({hoveredValue:e}),s==null||s(i)},handleMouseLeave(e,t){this.updateState({hoveredValue:void 0}),e==null||e(t)},handleFocus(e,t,s){this.updateState({focusedValue:e}),t==null||t(s)},handleBlur(e,t){this.updateState({focusedValue:void 0}),e==null||e(t)}},render(){const{items:e,layoutMode:t,itemTemplate:s}=this.$props,i=this.sizeClass,c=this.selectedItemValue,d=s?o.templateRendering.call(this,s,{}):void 0;return n.createVNode("div",{ref:"element",role:"group",class:o.classNames("k-segmented-control",i&&`k-segmented-control-${i}`,{"k-segmented-control-stretched":t==="stretch"})},[n.createVNode("div",{class:"k-segmented-control-thumb",ref:"thumb","aria-hidden":"true"},null),(e||[]).map(a=>{const{value:r,disabled:u,text:p,svgIcon:f,iconClassName:m,type:b="button",onMouseEnter:g,onMouseLeave:v,onFocus:k,onBlur:V,title:S,dir:C,"aria-label":y}=a,h=c===r;return n.createVNode("button",{key:r,type:b,class:this.buttonClass(r,u,h),disabled:u,"aria-disabled":u||void 0,"aria-pressed":h,title:S,dir:C,"aria-label":y,onClick:l=>this.handleButtonClick(a,l),onMouseenter:l=>this.handleMouseEnter(r,u,g,l),onMouseleave:l=>this.handleMouseLeave(v,l),onFocus:l=>this.handleFocus(r,k,l),onBlur:l=>this.handleBlur(V,l)},[o.getTemplate.call(this,{h:n.h,template:d,defaultRendering:n.createVNode(n.Fragment,null,[f&&n.createVNode(o.Icon,{class:this.iconClass(m,h),icon:f},null),n.createVNode("span",{class:"k-segmented-control-button-text"},[p])]),additionalProps:{item:a}})])})])}});exports.SegmentedControl=T;
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2026 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 $, createVNode as o, h as T, Fragment as I, nextTick as p } from "vue";
|
|
9
|
+
import { templateRendering as O, classNames as h, getTemplate as x, Icon as P, validatePackage as _, kendoThemeMaps as M } from "@progress/kendo-vue-common";
|
|
10
|
+
import { packageMetadata as w } from "../package-metadata.mjs";
|
|
11
|
+
const B = /* @__PURE__ */ $({
|
|
12
|
+
name: "KendoSegmentedControl",
|
|
13
|
+
emits: {
|
|
14
|
+
change: (e) => !0
|
|
15
|
+
},
|
|
16
|
+
props: {
|
|
17
|
+
items: {
|
|
18
|
+
type: Array,
|
|
19
|
+
default: () => []
|
|
20
|
+
},
|
|
21
|
+
size: String,
|
|
22
|
+
layoutMode: {
|
|
23
|
+
type: String,
|
|
24
|
+
default: "compact"
|
|
25
|
+
},
|
|
26
|
+
value: String,
|
|
27
|
+
defaultValue: String,
|
|
28
|
+
itemTemplate: [String, Function]
|
|
29
|
+
},
|
|
30
|
+
data() {
|
|
31
|
+
return {
|
|
32
|
+
interactionState: {
|
|
33
|
+
selectedValue: this.$props.defaultValue,
|
|
34
|
+
hoveredValue: void 0,
|
|
35
|
+
focusedValue: void 0
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
},
|
|
39
|
+
computed: {
|
|
40
|
+
selectedItemValue() {
|
|
41
|
+
var e;
|
|
42
|
+
return (e = this.$props.value) != null ? e : this.interactionState.selectedValue;
|
|
43
|
+
},
|
|
44
|
+
sizeClass() {
|
|
45
|
+
const e = this.$props.size;
|
|
46
|
+
return e ? M.sizeMap[e] : void 0;
|
|
47
|
+
},
|
|
48
|
+
buttonClass() {
|
|
49
|
+
return (e, t, s) => h("k-segmented-control-button", {
|
|
50
|
+
"k-selected": s,
|
|
51
|
+
"k-hover": this.interactionState.hoveredValue === e && !t,
|
|
52
|
+
"k-focus": this.interactionState.focusedValue === e && !t,
|
|
53
|
+
"k-disabled": t
|
|
54
|
+
});
|
|
55
|
+
},
|
|
56
|
+
iconClass() {
|
|
57
|
+
return (e, t) => h("k-segmented-control-button-icon", {
|
|
58
|
+
...e && {
|
|
59
|
+
[e]: t
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
watch: {
|
|
65
|
+
selectedItemValue() {
|
|
66
|
+
p(() => {
|
|
67
|
+
this.updateThumbPosition();
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
created() {
|
|
72
|
+
_(w), this._resizeObserver = null;
|
|
73
|
+
},
|
|
74
|
+
mounted() {
|
|
75
|
+
p(() => {
|
|
76
|
+
this.updateThumbPosition();
|
|
77
|
+
}), this._resizeObserver = new ResizeObserver(() => {
|
|
78
|
+
this.updateThumbPosition();
|
|
79
|
+
});
|
|
80
|
+
const e = this.$refs.element;
|
|
81
|
+
e && this._resizeObserver.observe(e);
|
|
82
|
+
},
|
|
83
|
+
beforeUnmount() {
|
|
84
|
+
this._resizeObserver && (this._resizeObserver.disconnect(), this._resizeObserver = null);
|
|
85
|
+
},
|
|
86
|
+
methods: {
|
|
87
|
+
updateThumbPosition() {
|
|
88
|
+
const e = this.$refs.element, t = this.$refs.thumb;
|
|
89
|
+
if (!e || !t)
|
|
90
|
+
return;
|
|
91
|
+
const s = e.querySelector(".k-segmented-control-button.k-selected");
|
|
92
|
+
if (!s)
|
|
93
|
+
return;
|
|
94
|
+
const n = e.offsetWidth, {
|
|
95
|
+
offsetWidth: u,
|
|
96
|
+
offsetLeft: d
|
|
97
|
+
} = s, r = `${d}px`, l = `${n - d - u}px`;
|
|
98
|
+
t.style.left !== r && (t.style.left = r), t.style.right !== l && (t.style.right = l);
|
|
99
|
+
},
|
|
100
|
+
updateState(e) {
|
|
101
|
+
this.interactionState = {
|
|
102
|
+
...this.interactionState,
|
|
103
|
+
...e
|
|
104
|
+
};
|
|
105
|
+
},
|
|
106
|
+
handleButtonClick(e, t) {
|
|
107
|
+
var s, n;
|
|
108
|
+
if (!e.disabled) {
|
|
109
|
+
if (this.selectedItemValue === e.value) {
|
|
110
|
+
(s = e.onClick) == null || s.call(e, t);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
this.$props.value === void 0 && e && this.updateState({
|
|
114
|
+
selectedValue: e.value
|
|
115
|
+
}), this.$emit("change", e.value), (n = e.onClick) == null || n.call(e, t);
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
handleMouseEnter(e, t, s, n) {
|
|
119
|
+
t || this.updateState({
|
|
120
|
+
hoveredValue: e
|
|
121
|
+
}), s == null || s(n);
|
|
122
|
+
},
|
|
123
|
+
handleMouseLeave(e, t) {
|
|
124
|
+
this.updateState({
|
|
125
|
+
hoveredValue: void 0
|
|
126
|
+
}), e == null || e(t);
|
|
127
|
+
},
|
|
128
|
+
handleFocus(e, t, s) {
|
|
129
|
+
this.updateState({
|
|
130
|
+
focusedValue: e
|
|
131
|
+
}), t == null || t(s);
|
|
132
|
+
},
|
|
133
|
+
handleBlur(e, t) {
|
|
134
|
+
this.updateState({
|
|
135
|
+
focusedValue: void 0
|
|
136
|
+
}), e == null || e(t);
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
render() {
|
|
140
|
+
const {
|
|
141
|
+
items: e,
|
|
142
|
+
layoutMode: t,
|
|
143
|
+
itemTemplate: s
|
|
144
|
+
} = this.$props, n = this.sizeClass, u = this.selectedItemValue, d = s ? O.call(this, s, {}) : void 0;
|
|
145
|
+
return o("div", {
|
|
146
|
+
ref: "element",
|
|
147
|
+
role: "group",
|
|
148
|
+
class: h("k-segmented-control", n && `k-segmented-control-${n}`, {
|
|
149
|
+
"k-segmented-control-stretched": t === "stretch"
|
|
150
|
+
})
|
|
151
|
+
}, [o("div", {
|
|
152
|
+
class: "k-segmented-control-thumb",
|
|
153
|
+
ref: "thumb",
|
|
154
|
+
"aria-hidden": "true"
|
|
155
|
+
}, null), (e || []).map((r) => {
|
|
156
|
+
const {
|
|
157
|
+
value: l,
|
|
158
|
+
disabled: a,
|
|
159
|
+
text: m,
|
|
160
|
+
svgIcon: f,
|
|
161
|
+
iconClassName: b,
|
|
162
|
+
type: g = "button",
|
|
163
|
+
onMouseEnter: v,
|
|
164
|
+
onMouseLeave: k,
|
|
165
|
+
onFocus: S,
|
|
166
|
+
onBlur: V,
|
|
167
|
+
title: C,
|
|
168
|
+
dir: z,
|
|
169
|
+
"aria-label": y
|
|
170
|
+
} = r, c = u === l;
|
|
171
|
+
return o("button", {
|
|
172
|
+
key: l,
|
|
173
|
+
type: g,
|
|
174
|
+
class: this.buttonClass(l, a, c),
|
|
175
|
+
disabled: a,
|
|
176
|
+
"aria-disabled": a || void 0,
|
|
177
|
+
"aria-pressed": c,
|
|
178
|
+
title: C,
|
|
179
|
+
dir: z,
|
|
180
|
+
"aria-label": y,
|
|
181
|
+
onClick: (i) => this.handleButtonClick(r, i),
|
|
182
|
+
onMouseenter: (i) => this.handleMouseEnter(l, a, v, i),
|
|
183
|
+
onMouseleave: (i) => this.handleMouseLeave(k, i),
|
|
184
|
+
onFocus: (i) => this.handleFocus(l, S, i),
|
|
185
|
+
onBlur: (i) => this.handleBlur(V, i)
|
|
186
|
+
}, [x.call(this, {
|
|
187
|
+
h: T,
|
|
188
|
+
template: d,
|
|
189
|
+
defaultRendering: o(I, null, [f && o(P, {
|
|
190
|
+
class: this.iconClass(b, c),
|
|
191
|
+
icon: f
|
|
192
|
+
}, null), o("span", {
|
|
193
|
+
class: "k-segmented-control-button-text"
|
|
194
|
+
}, [m])]),
|
|
195
|
+
additionalProps: {
|
|
196
|
+
item: r
|
|
197
|
+
}
|
|
198
|
+
})]);
|
|
199
|
+
})]);
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
export {
|
|
203
|
+
B as SegmentedControl
|
|
204
|
+
};
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2026 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 { SVGIcon } from '@progress/kendo-vue-common';
|
|
9
|
+
import { ButtonProps } from '../../Button';
|
|
10
|
+
/**
|
|
11
|
+
* Represents the properties of a single item within the SegmentedControl component.
|
|
12
|
+
*/
|
|
13
|
+
export interface SegmentedItemProps {
|
|
14
|
+
/**
|
|
15
|
+
* The unique identifier for the SegmentedItem. Used to match against the SegmentedControl's `value` to determine selection.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```vue
|
|
19
|
+
* <SegmentedControl :items="[{ value: 'option1', text: 'Option 1' }]" />
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
value: string;
|
|
23
|
+
/**
|
|
24
|
+
* Sets an SVG icon to render inside the item using an `Icon` element.
|
|
25
|
+
* Only rendered when `itemTemplate` is not provided.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```vue
|
|
29
|
+
* <SegmentedControl :items="[{ value: 'opt1', text: 'Bold', svgIcon: boldIcon }]" />
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
svgIcon?: SVGIcon;
|
|
33
|
+
/**
|
|
34
|
+
* Specifies the text label of the SegmentedItem.
|
|
35
|
+
* Rendered inside a `<span>` element. Only rendered when `itemTemplate` is not provided.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```vue
|
|
39
|
+
* <SegmentedControl :items="[{ value: 'opt1', text: 'Option 1' }]" />
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
text?: string;
|
|
43
|
+
/**
|
|
44
|
+
* CSS class name applied to the icon element only when the item is selected.
|
|
45
|
+
* Has no effect when `itemTemplate` is provided.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```vue
|
|
49
|
+
* <SegmentedControl :items="[{ value: 'opt1', text: 'Bold', svgIcon: boldIcon, iconClassName: 'active-icon' }]" />
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
iconClassName?: string;
|
|
53
|
+
/**
|
|
54
|
+
* Sets the `title` HTML attribute of the item button.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```vue
|
|
58
|
+
* <SegmentedControl :items="[{ value: 'opt1', title: 'Option 1 tooltip' }]" />
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
title?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Represents the `dir` HTML attribute of the item button, controlling text directionality.
|
|
64
|
+
*/
|
|
65
|
+
dir?: string;
|
|
66
|
+
/**
|
|
67
|
+
* Specifies whether the item is disabled.
|
|
68
|
+
*/
|
|
69
|
+
disabled?: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Specifies the `type` HTML attribute of the item button.
|
|
72
|
+
*
|
|
73
|
+
* @default "button"
|
|
74
|
+
*/
|
|
75
|
+
type?: 'button' | 'submit' | 'reset';
|
|
76
|
+
/**
|
|
77
|
+
* The `aria-label` HTML attribute of the item button.
|
|
78
|
+
*/
|
|
79
|
+
'aria-label'?: string;
|
|
80
|
+
/**
|
|
81
|
+
* Event handler fired when the item button is clicked.
|
|
82
|
+
*/
|
|
83
|
+
onClick?: (e: MouseEvent) => void;
|
|
84
|
+
/**
|
|
85
|
+
* Event handler fired when the mouse pointer enters the item button.
|
|
86
|
+
*/
|
|
87
|
+
onMouseEnter?: (e: MouseEvent) => void;
|
|
88
|
+
/**
|
|
89
|
+
* Event handler fired when the mouse pointer leaves the item button.
|
|
90
|
+
*/
|
|
91
|
+
onMouseLeave?: (e: MouseEvent) => void;
|
|
92
|
+
/**
|
|
93
|
+
* Event handler fired when the item button receives focus.
|
|
94
|
+
*/
|
|
95
|
+
onFocus?: (e: FocusEvent) => void;
|
|
96
|
+
/**
|
|
97
|
+
* Event handler fired when the item button loses focus.
|
|
98
|
+
*/
|
|
99
|
+
onBlur?: (e: FocusEvent) => void;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Represents the properties of the SegmentedControl component.
|
|
103
|
+
*
|
|
104
|
+
* The SegmentedControl displays a horizontal set of mutually exclusive button segments,
|
|
105
|
+
* allowing the user to select one option at a time.
|
|
106
|
+
*/
|
|
107
|
+
export interface SegmentedControlProps {
|
|
108
|
+
/**
|
|
109
|
+
* Specifies the collection of items rendered as buttons inside the SegmentedControl.
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```vue
|
|
113
|
+
* <SegmentedControl :items="[{ value: 'opt1', text: 'Option 1' }, { value: 'opt2', text: 'Option 2' }]" />
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
116
|
+
items?: Array<SegmentedItemProps>;
|
|
117
|
+
/**
|
|
118
|
+
* Sets the size of the SegmentedControl items. The value is mapped through `kendoThemeMaps.sizeMap`
|
|
119
|
+
* to the corresponding CSS size class.
|
|
120
|
+
*
|
|
121
|
+
* The available options are:
|
|
122
|
+
* - `small`
|
|
123
|
+
* - `medium`
|
|
124
|
+
* - `large`
|
|
125
|
+
* - `null` — Does not set a size className.
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```vue
|
|
129
|
+
* <SegmentedControl :size="'large'" :items="items" />
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
size?: ButtonProps['size'];
|
|
133
|
+
/**
|
|
134
|
+
* Specifies the layout mode of the SegmentedControl.
|
|
135
|
+
*
|
|
136
|
+
* - `compact`: Items are sized based on their content (default).
|
|
137
|
+
* - `stretch`: Items stretch to fill the available horizontal space, applying the `k-segmented-control-stretched` CSS class.
|
|
138
|
+
*
|
|
139
|
+
* @default "compact"
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```vue
|
|
143
|
+
* <SegmentedControl :layout-mode="'stretch'" :items="items" />
|
|
144
|
+
* ```
|
|
145
|
+
*/
|
|
146
|
+
layoutMode?: 'compact' | 'stretch';
|
|
147
|
+
/**
|
|
148
|
+
* The currently selected item value.
|
|
149
|
+
* When provided, the component operates in controlled mode and the `change` event must be used to update this value.
|
|
150
|
+
* The item whose `value` matches this prop receives the `k-selected` CSS class.
|
|
151
|
+
*
|
|
152
|
+
* @example
|
|
153
|
+
* ```vue
|
|
154
|
+
* <SegmentedControl :value="selectedValue" @change="(val) => selectedValue = val" :items="items" />
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
value?: string;
|
|
158
|
+
/**
|
|
159
|
+
* Sets the initially selected item value when the component is in uncontrolled mode (i.e., `value` is not provided).
|
|
160
|
+
* Once set, subsequent changes to `defaultValue` are ignored.
|
|
161
|
+
*
|
|
162
|
+
* @example
|
|
163
|
+
* ```vue
|
|
164
|
+
* <SegmentedControl :default-value="'option2'" :items="items" />
|
|
165
|
+
* ```
|
|
166
|
+
*/
|
|
167
|
+
defaultValue?: string;
|
|
168
|
+
/**
|
|
169
|
+
* A custom template for the item content. When provided, it replaces the default rendering
|
|
170
|
+
* (SVG icon + text span) entirely.
|
|
171
|
+
*
|
|
172
|
+
* Accepts a string (slot name) or a render function. The slot receives `{ props: { item } }`
|
|
173
|
+
* where `item` is the full item configuration object.
|
|
174
|
+
*
|
|
175
|
+
* @example
|
|
176
|
+
* ```vue
|
|
177
|
+
* <SegmentedControl :items="items" :item-template="'myTemplate'">
|
|
178
|
+
* <template #myTemplate="{ props }">
|
|
179
|
+
* <span>{{ props.item.text }}</span>
|
|
180
|
+
* </template>
|
|
181
|
+
* </SegmentedControl>
|
|
182
|
+
* ```
|
|
183
|
+
*/
|
|
184
|
+
itemTemplate?: string | ((itemData: SegmentedItemProps) => any);
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Represents the internal interaction state of the SegmentedControl component.
|
|
188
|
+
*
|
|
189
|
+
* @hidden
|
|
190
|
+
*/
|
|
191
|
+
export interface SegmentedControlState {
|
|
192
|
+
/**
|
|
193
|
+
* The `value` of the currently selected item in uncontrolled mode.
|
|
194
|
+
*/
|
|
195
|
+
selectedValue?: string;
|
|
196
|
+
/**
|
|
197
|
+
* The `value` of the item currently being hovered over.
|
|
198
|
+
*/
|
|
199
|
+
hoveredValue?: string;
|
|
200
|
+
/**
|
|
201
|
+
* The `value` of the item that currently has keyboard focus.
|
|
202
|
+
*/
|
|
203
|
+
focusedValue?: string;
|
|
204
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
export * from './SegmentedControlTypes';
|
|
@@ -12,4 +12,4 @@
|
|
|
12
12
|
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
13
13
|
*-------------------------------------------------------------------------------------------
|
|
14
14
|
*/
|
|
15
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue"),require("@progress/kendo-vue-common"),require("@progress/kendo-svg-icons"),require("@progress/kendo-vue-popup"),require("@progress/kendo-vue-intl"),require("@progress/kendo-webspeech-common"),require("@progress/kendo-smartpaste-common")):"function"==typeof define&&define.amd?define(["exports","vue","@progress/kendo-vue-common","@progress/kendo-svg-icons","@progress/kendo-vue-popup","@progress/kendo-vue-intl","@progress/kendo-webspeech-common","@progress/kendo-smartpaste-common"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).KendoVueButtons={},e.Vue,e.KendoVueCommon,e.KendoSVGIcons,e.KendoVuePopup,e.KendoVueIntl,e.KendoWebspeechCommon,e.KendoSmartpasteCommon)}(this,function(e,t,o,i,s,n,r,l){"use strict";const a=["button:not(.k-dropdownlist button):not(.k-colorpicker button):not(.k-split-button .k-split-button-arrow)",".k-button-group > button",".k-dropdownlist",".k-colorpicker"],d={button:"k-button","state-disabled":"k-disabled","group-start":"k-group-start","group-end":"k-group-end","button-group":"k-button-group","button-group-stretched":"k-button-group-stretched"},c={name:"@progress/kendo-vue-buttons",productName:"Kendo UI for Vue",productCode:"KENDOUIVUE",productCodes:["KENDOUIVUE"],publishDate:1657089513,version:"8.3.0-develop.1",licensingDocsUrl:"https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning"},u=d,p=t.defineComponent({name:"KendoButton",emits:{click:e=>!0,mousedown:e=>!0,mouseup:e=>!0,pointerdown:e=>!0,pointerup:e=>!0,focus:e=>!0,blur:e=>!0,keypress:e=>!0,keydown:e=>!0,contextmenu:e=>!0},props:{ariaLabel:String,ariaPressed:Boolean,title:String,dir:String,selected:{type:Boolean,default:void 0},togglable:{type:Boolean,default:!1},icon:{type:String,default:function(){}},svgIcon:Object,iconSize:{type:String},iconClass:{type:String,default:function(){}},imageUrl:{type:String,default:function(){}},imageAlt:String,disabled:{type:Boolean,default:void 0},size:String,rounded:String,fillMode:String,themeColor:String,tabIndex:Number,accessKey:String,id:String,type:String,role:String},created(){o.validatePackage(c),this.currentActive=!0===this.$props.togglable&&!0===this.$props.selected,this._activeTemp=void 0},data:()=>({currentActive:null}),computed:{computedSelected(){return void 0!==this._activeTemp?this._activeTemp:void 0!==this.$props.selected?this.$props.selected:this.currentActive},buttonClasses(){const{disabled:e,icon:t,iconClass:i,imageUrl:s,dir:n,svgIcon:r,size:l,rounded:a,fillMode:d,themeColor:c}=this.$props,p=void 0!==r||void 0!==t||void 0!==i||void 0!==s,h=o.getDefaultSlots(this);return{[u.button]:!0,[`k-button-${o.kendoThemeMaps.sizeMap[l]||l}`]:l,[`k-rounded-${o.kendoThemeMaps.roundedMap[a]||a}`]:a,"k-icon-button":!h&&p,"k-disabled":e,"k-selected":this.computedSelected,"k-rtl":"rtl"===n,[`k-button-${d}`]:d,[`k-button-${c}`]:c}}},updated(){this.$props.togglable&&void 0!==this.$props.selected&&this.$props.selected!==this.currentActive&&(this.currentActive=this.$props.selected)},methods:{focus(e){this.$el.focus(e)},toggleIfApplicable(){if(!this.disabled&&this.$props.togglable&&void 0===this.$props.selected){const e=!this.currentActive;this._activeTemp=e,this.currentActive=e,this._activeTemp=void 0}},handleClick(e){this.toggleIfApplicable(),this.disabled||this.$emit("click",e)},handleMouseDown(e){this.disabled||this.$emit("mousedown",e)},handlePointerDown(e){this.disabled||this.$emit("pointerdown",e)},handleMouseUp(e){this.disabled||this.$emit("mouseup",e)},handlePointerUp(e){this.disabled||this.$emit("pointerup",e)},handleFocus(e){this.disabled||this.$emit("focus",{event:e})},handleBlur(e){this.disabled||this.$emit("blur",{event:e})},handleKeypress(e){this.disabled||this.$emit("keypress",e)},handleKeydown(e){this.disabled||this.$emit("keydown",e)},handleContextmenu(e){this.disabled||this.$emit("contextmenu",e)}},render(){const{togglable:e,icon:i,svgIcon:s,iconClass:n,imageUrl:r,imageAlt:l,accessKey:a,tabIndex:d,id:c,type:u,disabled:p,role:h,iconSize:m}=this.$props,f=o.getDefaultSlots(this);return t.createVNode("button",{class:this.buttonClasses,onClick:this.handleClick,onMousedown:this.handleMouseDown,onMouseup:this.handleMouseUp,onPointerdown:this.handlePointerDown,onPointerup:this.handlePointerUp,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeypress:this.handleKeypress,onKeydown:this.handleKeydown,onContextmenu:this.handleContextmenu,title:this.title,"aria-label":this.ariaLabel,"aria-disabled":p||void 0,"aria-pressed":e?!!this.currentActive:void 0,accesskey:a,tabindex:d,id:c,type:u,role:h},[function(){if(r)return t.createVNode("img",{role:"presentation",class:"k-image",alt:l,src:r},null);if(i||s){const e=o.classNames("k-button-icon",n);return t.createVNode(o.Icon,{name:i,icon:s,class:e,size:m},null)}return n?t.createVNode("span",{role:"presentation",class:n},null):null}.call(this),f&&t.createVNode("span",{class:"k-button-text"},[f])])}}),h=t.defineComponent({name:"KendoButtonWrap",render(){return o.getDefaultSlots(this)[0]}}),m=d,f=t.defineComponent({name:"KendoButtonGroup",props:{disabled:{type:Boolean,default:void 0},width:String,dir:{type:String,default:function(){}}},created(){o.validatePackage(c)},render(){const e=o.getDefaultSlots(this),i=function(e,i,s,n){const r=o.classNames({[m["state-disabled"]]:this.$props.disabled,[m["group-start"]]:n?s:0===i,[m["group-end"]]:n?0===i:s});return t.h(h,{class:r,"aria-disabled":this.$props.disabled},function(){return[e]})},s=o.classNames([m["button-group"]],{"k-disabled":this.$props.disabled,[m["button-group-stretched"]]:!!this.$props.width});return t.createVNode("div",{style:{width:this.width},dir:this.$props.dir,role:"group","aria-disabled":this.$props.disabled,class:s},[function(e){const t=e.length,o=void 0!==this.$props.dir?"rtl"===this.$props.dir:this.$el&&"rtl"===getComputedStyle(this.$el).direction||!1;return e.map((e,s)=>this.isValidButton(e)?i.call(this,e,s,s===t-1,o):e)}.call(this,e)])},methods:{isValidButton(e){var t,o;return e.tag&&-1!==e.tag.toLowerCase().indexOf("button")||e.componentOptions&&-1!==(null==(t=e.componentOptions.tag)?void 0:t.toLowerCase().indexOf("button"))||(null==(o=e.type)?void 0:o.name)&&-1!==e.type.name.toLowerCase().indexOf("kendobutton")}}});let g=function(e){return e.next="next",e.prev="prev",e.current="current",e.reset="reset",e}({});let b=function(e){return e.remove="remove",e.add="add",e.reorder="reorder",e}({});let v=function(e){return e.single="single",e.multiple="multiple",e.none="none",e}({}),k=function(e){return e.toggle="toggle",e.remove="remove",e}({});const y=t.defineComponent({name:"KendoVueChip",props:{id:String,text:String,avatar:{type:[String,Function,Object],default:function(){}},value:[String,Object],dir:{type:String,default:function(){return"ltr"}},removable:{type:Boolean,default:!1},removeIcon:{type:String,default:function(){return"x-circle"}},removeSvgIcon:{type:Object,default:function(){return i.xCircleIcon}},disabled:{type:Boolean,default:!1},icon:String,svgIcon:Object,selectedIcon:{type:String,default:function(){return"check"}},selectedSvgIcon:{type:Object,default:function(){return i.checkIcon}},size:String,rounded:String,fillMode:{type:String,validator:function(e){return["flat","outline","solid"].includes(e)}},themeColor:{type:String,validator:function(e){return["base","error","info","success","warning"].includes(e)}},dataItem:Object,selected:Boolean,ariaDescribedBy:String,role:{type:String,default:"button"},tabIndex:Number,onMousedown:Function},emits:{click:e=>!0,keydown:e=>!0,blur:e=>!0,focus:e=>!0,remove:e=>!0},inject:{kendoSelection:{default:{value:null}},kendoFocused:{default:{value:null}},kendoDataItems:{default:null},handleDispatchDataItems:{default:o.noop},handleDispatchSelection:{default:o.noop},handleDispatchFocus:{default:o.noop}},created(){this.currentDir=void 0,o.validatePackage(c)},mounted(){this.chip=o.getRef(this,"chip"),this.currentDir=void 0!==this.$props.dir?"rtl"===this.$props.dir:this.$el&&"rtl"===getComputedStyle(this.$el).direction||!1},updated(){this.kendoFocused.value===this.$props.value&&this.$el&&this.$el.focus()},computed:{currentSelected(){return this.$props.selected||(Array.isArray(this.kendoSelection.value)?this.kendoSelection.value.some(e=>e===this.$props.value):this.kendoSelection.value===this.$props.value)},chipLabelClass:()=>({"k-chip-label":!0})},methods:{computedFocused(){return this.kendoFocused.value===this.$props.value},handleMouseDown(e){this.$emit("mousedown",e)},handleClick(e){this.handleDispatchSelection&&this.handleDispatchSelection({type:k.toggle,payload:this.$props.value,event:e}),this.$emit("click",{target:this.target,event:e})},handleRemove(e){e.stopPropagation(),this.$props.removable&&(this.handleDispatchFocus&&(this.handleDispatchDataItems({type:b.remove,payload:this.$props.value,event:e}),this.handleDispatchFocus({type:g.reset,payload:this.$props.value,event:e}),this.handleDispatchSelection({type:k.remove,payload:this.$props.value,event:e})),this.$emit("remove",{target:this.target,event:e}))},handleKeyDown(e){switch(e.keyCode){case o.Keys.left:this.handleDispatchFocus&&this.handleDispatchFocus({type:g.prev,payload:this.$props.value,event:e});break;case o.Keys.right:this.handleDispatchFocus&&this.handleDispatchFocus({type:g.next,payload:this.$props.value,event:e});break;case o.Keys.enter:this.handleDispatchFocus&&this.handleDispatchSelection({type:k.toggle,payload:this.$props.value,event:e});break;case o.Keys.delete:this.handleRemove(e)}this.$emit("keydown",{target:this.target,event:e})},handleFocus(e){this.handleDispatchFocus&&this.handleDispatchFocus({payload:this.$props.value,type:g.current,event:e}),this.$emit("focus",{target:this.target,event:e})},handleBlur(e){this.$emit("blur",{target:this.target,event:e})}},setup:()=>({chipRef:t.ref(null)}),render(){const{size:e,rounded:i,themeColor:s,fillMode:n,look:r,avatar:l,icon:a,svgIcon:d,selectedIcon:c,selectedSvgIcon:u,removeIcon:p,removeSvgIcon:h}=this.$props,m=o.templateRendering.call(this,l,o.getListeners.call(this)),f=l?t.createVNode("div",{class:`k-chip-avatar k-avatar k-rounded-${l.rounded||"medium"} k-avatar-${o.kendoThemeMaps.sizeMap[e]||e} k-avatar-solid k-avatar-solid-primary`,style:l.style},[t.createVNode("span",{class:"k-avatar-image"},[t.createVNode("img",{src:l.imageUrl,alt:l.imageAlt},null)])]):null,g=o.getTemplate.call(this,{h:t.h,template:m});return t.createVNode("div",{role:this.$props.role,id:this.$props.value,ref:o.setRef(this,"chip"),dir:this.currentDir,tabindex:o.getTabIndex(this.$props.tabIndex,this.$props.disabled,void 0),class:o.classNames("k-chip",{"k-rtl":"rtl"===this.currentDir,"k-disabled":this.$props.disabled,"k-selected":this.currentSelected,"k-focus":this.computedFocused(),[`k-chip-${o.kendoThemeMaps.sizeMap[e]||e}`]:e,[`k-rounded-${o.kendoThemeMaps.roundedMap[i]||i}`]:i,[`k-chip-${n}`]:n,[`k-chip-${s}`]:s,"k-chip-outline":"outline"===r||"outlined"===r,"k-chip-solid":"solid"===r||"filled"===r||"solid"===n}),"aria-pressed":"button"===this.$props.role?this.currentSelected:void 0,"aria-selected":"option"===this.$props.role?this.currentSelected:void 0,"aria-disabled":this.$props.disabled,"aria-describedby":this.$props.ariaDescribedBy,onFocus:this.handleFocus,onBlur:this.handleBlur,onClick:this.handleClick,onKeydown:this.handleKeyDown,onMousedown:this.handleMouseDown},[this.currentSelected&&(c||u)&&t.createVNode(o.Icon,{name:o.getIconName(c),icon:u,size:"small"},null),(a||d)&&t.createVNode(o.Icon,{name:o.getIconName(a),icon:d,size:"small"},null),l?l.imageUrl?f:g:null,t.createVNode("span",{class:"k-chip-content"},[this.$props.text&&t.createVNode("span",{"aria-label":this.$props.text,class:this.chipLabelClass},[this.$props.text])]),this.$props.removable&&t.createVNode("span",{class:"k-chip-actions"},[t.createVNode("span",{class:"k-chip-action k-chip-remove-action"},[t.createVNode(o.Icon,{name:o.getIconName(p),icon:h,size:"small",onClick:this.handleRemove},null)])])])}}),$=t.defineComponent({name:"KendoVueChipList",inheritAttrs:!1,props:{id:String,tabIndex:Number,dataItems:Array,defaultDataItems:{type:Array,default:function(){return[]}},value:[Object,Array,String,Number],defaultValue:{type:[Object,Array,String,Number],default:function(){return null}},size:String,rounded:String,fillMode:{type:String,validator:function(e){return["flat","outline","solid"].includes(e)}},selection:{type:String,default:function(){return"none"}},textField:{type:String,default:function(){return"text"}},valueField:{type:String,default:function(){return"value"}},avatarField:{type:String,default:function(){return"avatar"}},disabled:{type:Boolean,default:!1},dir:{type:String,default:function(){return"ltr"}},chip:[String,Function,Object],ariaLabelledBy:String,ariaDescribedBy:String},emits:{change:e=>!0,datachange:e=>!0},provide(){return{kendoSelection:this.currentValue,kendoFocused:this.currentFocused,kendoDataItems:this.computedDataItems,handleDispatchDataItems:this.handleDispatchDataItems,handleDispatchSelection:this.handleDispatchSelection,handleDispatchFocus:this.handleDispatchFocus}},created(){o.validatePackage(c),this.currentDataItems=this.$props.dataItems||this.$props.defaultDataItems,this.currentValue.value=this.$props.value||this.$props.defaultValue},data:()=>({currentDataItems:[],currentDir:"ltr",isRtl:!1,currentFocused:{value:!1},currentValue:{value:null}}),mounted(){this.chipList=this.chipListRef,this.currentDir=void 0!==this.$props.dir?this.$props.dir:this.$el&&"rtl"===getComputedStyle(this.$el).direction||!1,this.isRtl="rtl"===this.currentDir},computed:{computedDataItems(){return this.$props.dataItems||this.currentDataItems},computedValue(){return this.$props.value||this.currentValue.value},items(){return this.computedDataItems.reduce(this.itemsReducer,[])}},methods:{handleDispatchSelection(e){const t=((e,t)=>{switch(t.selection){case v.single:switch(t.type){case k.toggle:if(!Array.isArray(e)||null===e)return t.payload===e?null:t.payload;throw new Error("State cannot be an array in single selection");case k.remove:return t.payload===e?null:e;default:return e}case v.multiple:switch(t.type){case k.toggle:if(Array.isArray(e))return e.some(e=>e===t.payload)?e.filter(e=>e!==t.payload):[...e,t.payload];if(null===e)return[t.payload];throw new Error("State cannot be non-array in multiple selection");case k.remove:return Array.isArray(e)?e.some(e=>e===t.payload)?e.filter(e=>e!==t.payload):[...e,t.payload]:e;default:return e}case v.none:return null;default:return e}})(this.computedValue,{...e,selection:this.$props.selection,state:this.computedValue});this.handleChange(t,e.event),this.currentValue.value=t},handleDispatchFocus(e){const t=((e,t)=>{const o=t.items.findIndex(t=>t===e);switch(t.type){case g.next:return o===t.items.length-1?e:t.items[o+1];case g.prev:return 0===o?e:t.items[o-1];case g.current:return t.payload;case g.reset:return null;default:return e}})(e.payload,{...e,items:this.items});this.currentFocused.value=t},handleDispatchDataItems(e){const t=((e,t)=>{switch(t.type){case b.add:break;case b.remove:return e.filter(e=>e[t.valueField]!==t.payload);case b.reorder:break;default:return e}})(this.computedDataItems,{...e,state:this.computedDataItems,valueField:this.$props.valueField});this.handleDataChange(t,e.event),this.currentDataItems=t},handleChange(e,t){this.$el&&this.$emit("change",{value:e,target:this.$el,event:t})},handleDataChange(e,t){this.$el&&this.$emit("datachange",{value:e,target:this.$el,event:t})},itemsReducer(e,t){return e.push(t[this.$props.valueField||this.$props.valueField]),e}},setup:()=>({chipListRef:t.ref(null)}),render(){const{size:e}=this.$props;return t.createVNode("div",{ref:o.setRef(this,"chipList"),role:"listbox",id:this.$props.id,dir:this.currentDir,style:this.$attrs.style,tabindex:o.getTabIndex(this.$props.tabIndex,this.$props.disabled,void 0),class:o.classNames("k-chip-list",{[`k-chip-list-${o.kendoThemeMaps.sizeMap[e]||e}`]:e,"k-rtl":"rtl"===this.currentDir,"k-selection-single":"single"===this.$props.selection,"k-selection-multiple":"multiple"===this.$props.selection,"k-disabled":this.$props.disabled}),"aria-labelledby":this.$props.ariaLabelledBy,"aria-describedby":this.$props.ariaDescribedBy,"aria-orientation":"horizontal","aria-multiselectable":"multiple"===this.$props.selection||void 0},[this.computedDataItems.map(function(e){const i=o.templateRendering.call(this,this.$props.chip,o.getListeners.call(this)),s=t.createVNode(y,{role:"option",dataItem:e,key:e[this.$props.valueField],text:e[this.$props.textField],value:e[this.$props.valueField],avatar:e[this.$props.avatarField],size:this.$props.size,rounded:this.$props.rounded,fillMode:this.$props.fillMode},null);return o.getTemplate.call(this,{h:t.h,template:i,defaultRendering:s,additionalProps:{dataItem:e,key:e[this.$props.valueField],text:e[this.$props.textField],value:e[this.$props.valueField],size:this.$props.size}})},this)])}}),S=t.defineComponent({name:"KendoVueFloatingActionButtonItem",props:{id:String,disabled:Boolean,focused:Boolean,index:Number,icon:String,item:[String,Function,Object],dataItem:Object,text:String,tabIndex:Number,customProp:[String,Function,Object],class:String},emits:{click:(e,t)=>!0,down:e=>!0},mounted(){this.element=o.getRef(this,"element")},computed:{itemClassNames(){return o.classNames("k-fab-item",{"k-focus":this.focused,"k-disabled":this.disabled})}},methods:{handleClick(e){void 0!==this.$props.index&&!this.$props.disabled&&this.$emit("click",e,this.$props.index)},focusElement(){this.$el&&this.$el.focus()},onMouseDown(e){this.$emit("down",e)}},setup:()=>({elementRef:t.ref(null)}),render(){const{disabled:e,id:i,tabIndex:s,dataItem:n}=this.$props,{text:r,icon:l,svgIcon:a}=n;let d;const c=t.createVNode("li",{ref:o.setRef(this,"element"),id:i,class:this.itemClassNames,role:"menuitem",tabindex:o.getTabIndex(s,e),"aria-disabled":e,"aria-label":`${r||""} floatingactionbutton item`,onClick:this.handleClick,onMousedown:this.onMouseDown,onPointerdown:this.onMouseDown},[r&&t.createVNode("span",{class:"k-fab-item-text"},[r]),(a||l)&&t.createVNode(o.Icon,{name:l,icon:a,class:"k-fab-item-icon"},null)]);return d=o.getTemplate.call(this,{h:t.h,template:this.$props.item,defaultRendering:c,additionalProps:this.$props,additionalListeners:{click:this.handleClick}}),d}}),I="16px",x=e=>"number"==typeof e?e+"px":e,C=(e,t)=>{const o={horizontal:t?"right":"left",vertical:"bottom"};return"end"===e.horizontal&&(o.horizontal=t?"left":"right"),o},w=(e,t)=>{const o={horizontal:t?"right":"left",vertical:"top"};return"end"===e.horizontal&&(o.horizontal=t?"left":"right"),o},D=(e,t)=>({rtl:{end:"k-text-left",start:"k-text-right"},ltr:{start:"k-text-left",end:"k-text-right"}}[e]["end"===t?"end":"start"]),O=(e,t,o,i)=>{const s=t.horizontal,n=t.vertical;if(e){const r=o&&void 0!==o.x?x(o.x):I,l=o&&void 0!==o.x?`calc(50% + ${x(o.x)})`:"50%",a=o&&void 0!==o.y?x(o.y):I,d=o&&void 0!==o.y?`calc(50% + ${x(o.y)})`:"50%";e.style.setProperty(B(t,i),"center"===s?l:r),e.style.setProperty(N(t),"middle"===n?d:a),i&&(("top"===n||"bottom"===n)&&"start"===s&&e.style.setProperty("left","unset"),"middle"===n&&"end"===s&&e.style.setProperty("right","unset"),"middle"===n&&"start"===s&&e.style.setProperty("left","unset"))}},B=(e,t)=>{const{horizontal:o}=e;return{end:t?"left":"right",center:"left",start:t?"right":"left"}[o||"end"]},N=e=>({top:"top",middle:"top",bottom:"bottom"}[e.vertical||"bottom"]),F=t.defineComponent({name:"KendoVueFloatingActionButton",props:{id:String,dir:String,tabIndex:Number,accessKey:String,disabled:{type:Boolean,default:!1},icon:String,svgIcon:Object,iconClass:String,items:[Object,Array],item:[String,Function,Object],text:String,alignOffset:Object,opened:{type:Boolean,default:void 0},align:{type:Object,default:function(){return{vertical:"bottom",horizontal:"end"}}},positionMode:{type:String,default:function(){return"fixed"}},popupSettings:{type:Object,default:function(){return{}}},rounded:String,fillMode:{type:String,validator:function(e){return["flat","link","outline","solid"].includes(e)}},size:String,themeColor:String},emits:{click:e=>!0,mousedown:e=>!0,mouseup:e=>!0,open:e=>!0,close:e=>!0,itemclick:e=>!0,focus:e=>!0,blur:e=>!0,keydown:e=>!0},data:()=>({currentOpened:!1,currentFocused:!1,focusedIndex:-1,currentDir:"ltr",isRtl:!1}),created(){o.validatePackage(c),this.element=void 0,this._anchor=o.guid(),this.listId=o.guid(),this.buttonId=o.guid()},mounted(){this.element=this.kendoAnchorRef,this.list=o.getRef(this,"list"),this.popup=o.getRef(this,"popup"),this.currentDir=void 0!==this.$props.dir?this.$props.dir:this.$el&&"rtl"===getComputedStyle(this.$el).direction||!1,this.isRtl="rtl"===this.currentDir,void 0!==this.opened&&O(this.$el,this.$props.align,this.$props.alignOffset,this.isRtl)},updated(){O(this.$el,this.$props.align,this.$props.alignOffset,this.isRtl),this.currentFocused&&this.element&&this.element.focus()},computed:{buttonClassNames(){const{size:e,themeColor:t,fillMode:i,rounded:s}=this.$props;return{"k-fab":!0,[`k-fab-${o.kendoThemeMaps.sizeMap[e]||e}`]:e,[`k-rounded-${o.kendoThemeMaps.roundedMap[s]||s}`]:s,[`k-fab-${i}`]:i,[`k-fab-${t}`]:t,"k-disabled":this.$props.disabled,"k-focus":this.currentFocused,[`k-${this.$props.align.vertical}-${this.$props.align.horizontal}`]:!0}},computedOpened(){return void 0===this.$props.opened?this.currentOpened:this.$props.opened},rootClassNames(){return o.classNames({"k-pos-absolute":"absolute"===this.$props.positionMode,"k-pos-fixed":"fixed"===this.$props.positionMode})}},methods:{dispatchPopupEvent(e,t){this.$props.items&&this.$emit(t?"open":"close",{event:e,isOpened:!t})},handleClick(e){if(e.target&&!this.$props.disabled)if(this.$props.items){const t=!this.computedOpened;this.currentOpened=t,this.currentFocused=!0,this.focusedIndex=t?0:-1,this.dispatchPopupEvent(e,!this.computedOpened)}else this.$emit("click",e,void 0)},handleFocus(e){this.currentFocused=!0,this.focusedIndex=this.computedOpened?0:-1,this.$emit("focus",{event:e})},handleBlur(e){this.currentFocused=!1,this.currentOpened=!1,this.focusedIndex=-1,this.$emit("blur",{event:e}),this.computedOpened&&this.dispatchPopupEvent(e,!1)},handleMouseDown(e){e.preventDefault(),this.$emit("mousedown",e)},handleMouseUp(e){this.$emit("mouseup",e)},dispatchItemClickEvent(e,t){this.$props.items&&(this.$props.items[t].disabled||this.$emit("itemclick",e,{itemProps:this.$props.items[t],itemIndex:t}))},handleItemClick(e,t){!e.target||!this.$props.items||(this.focusedIndex=t,this.currentOpened=!1,this.dispatchItemClickEvent(e,t),this.dispatchPopupEvent(e,!1))},handleItemDown(e){o.canUseDOM&&document.activeElement===this.element&&e.preventDefault()},handleKeyDown(e){const t=this.focusedIndex,i=this.$props.items?this.$props.items.length-1:-1,s="bottom"===this.$props.align.vertical;switch(e.keyCode){case o.Keys.enter:case o.Keys.space:t>=0&&this.dispatchItemClickEvent(e,t),e.preventDefault(),this.currentOpened=!this.currentOpened,this.focusedIndex=this.currentOpened?-1:0;break;case o.Keys.esc:e.preventDefault(),this.currentOpened=!1,this.focusedIndex=-1;break;case o.Keys.home:e.preventDefault(),this.focusedIndex=0;break;case o.Keys.end:e.preventDefault(),this.focusedIndex=i;break;case o.Keys.down:case o.Keys.right:e.preventDefault(),t<i&&!s&&(this.focusedIndex=t+1),t>0&&s&&(this.focusedIndex=t-1);break;case o.Keys.up:case o.Keys.left:e.preventDefault(),t>0&&!s&&(this.focusedIndex=t-1),t<i&&s&&(this.focusedIndex=t+1)}this.$emit("keydown",e,void 0)}},setup:()=>({chipRef:t.ref(null),kendoAnchorRef:t.ref(null)}),render(){const{align:e,disabled:i,icon:n,svgIcon:r,iconClass:l,id:a,items:d,text:c,tabIndex:u,accessKey:p,popupSettings:h}=this.$props,m=o.templateRendering.call(this,this.$props.item,o.getListeners.call(this)),f=function(){return d&&d.map(function(s,n){return t.createVNode(S,{key:n,index:n,id:`${this.listId}-${n}`,disabled:i||s.disabled,focused:this.focusedIndex===n,dataItem:s,item:m,class:o.classNames(s.className,D(this.currentDir||"ltr",e.horizontal)),onClick:this.handleItemClick,onDown:this.handleItemDown},null)},this)},g=n&&!c,b=(this.element?this.element.offsetWidth:0)/2-16;return t.createVNode("div",{class:this.rootClassNames},[t.createVNode("button",{ref:e=>{this.kendoAnchorRef=e},id:a||this.buttonId,role:d?"menubutton":"button",type:"button","aria-disabled":i,"aria-expanded":d?this.computedOpened:void 0,"aria-haspopup":!!d,"aria-label":`${c||""} floatingactionbutton`,"aria-owns":d?this.listId:void 0,"aria-activedescendant":this.focusedIndex>=0&&d?`${this.listId}-${this.focusedIndex}`:void 0,tabindex:o.getTabIndex(u,i),accesskey:p,dir:this.currentDir,disabled:i,class:this.buttonClassNames,onClick:this.handleClick,onMousedown:this.handleMouseDown,onMouseup:this.handleMouseUp,onFocusin:this.handleFocus,onBlur:this.handleBlur,onKeydown:this.handleKeyDown},[n||r?t.createVNode(o.Icon,{name:n,icon:r,class:"k-fab-icon"},null):l?t.createVNode(o.Icon,{class:l},null):null,c&&t.createVNode("span",{class:"k-fab-text"},[c])]),t.createVNode(s.Popup,{ref:o.setRef(this,"popup"),show:this.computedOpened,anchor:this._anchor,animate:h.animate,popupClass:o.classNames("k-popup-transparent k-fab-popup",h.popupClass),anchorAlign:h.anchorAlign||C(e,this.isRtl),popupAlign:h.popupAlign||w(e,this.isRtl),style:{boxShadow:"none"}},{default:()=>[t.createVNode("ul",{ref:o.setRef(this,"list"),role:"menu","aria-labelledby":a,id:this.listId,class:o.classNames("k-fab-items",{"k-fab-items-bottom":"bottom"!==e.vertical,"k-fab-items-top":"bottom"===e.vertical}),style:{paddingLeft:g?b+"px":void 0,paddingRight:g?b+"px":void 0}},[f.call(this)])]})])}}),R=t.defineComponent({name:"KendoButtonItem",emits:{click:(e,t)=>!0,down:(e,t)=>!0},props:{focused:Boolean,index:Number,item:Object,render:[String,Object,Function],dataItem:[String,Object],id:String,textField:String,role:String},computed:{wrapperClass(){return{"k-item":!0,"k-focus":this.$props.focused}},innerClass(){const{dataItem:e}=this.$props;return{"k-link k-menu-link":!0,"k-selected":e.selected,"k-disabled":e.disabled}}},methods:{onClick(e){this.$emit("click",e,this.$props.index)},onDown(e){this.$emit("down",e,this.$props.index)}},render(){const{dataItem:e,id:i,render:s}=this.$props;return t.createVNode("li",{id:i,class:this.wrapperClass,onClick:this.onClick,onMousedown:this.onDown,onPointerdown:this.onDown,role:"menuitem","aria-disabled":e.disabled||void 0},[function(){const{textField:i,index:n}=this.$props,r=void 0!==e.text?e.text:i?e[i]:e,l=t.createVNode("span",{tabindex:-1,class:this.innerClass,key:"icon"},[e.icon||e.svgIcon?t.createVNode(o.Icon,{name:e.icon,icon:e.svgIcon,class:e.iconClass},null):e.iconClass&&t.createVNode("span",{class:e.iconClass,role:"presentation"},null),e.imageUrl&&t.createVNode("img",{class:"k-icon",alt:"",src:e.imageUrl,role:"presentation",key:"image"},null),r&&t.createVNode("span",{class:"k-menu-link-text"},[r])]);return o.getTemplate.call(this,{h:t.h,template:this.$props.dataItem.render||s,defaultRendering:l,additionalProps:{item:e,itemIndex:n,innerClass:this.innerClass,focused:this.focused}})}.call(this)])}}),T=(e,t,i,s)=>{if(i)return e;switch(t){case o.Keys.enter:case o.Keys.space:case o.Keys.esc:return-1;case o.Keys.up:case o.Keys.left:return Math.max(0,e-1);case o.Keys.down:case o.Keys.right:return Math.min(s-1,e+1);default:return e}};function K(e){let t={horizontal:"left",vertical:"bottom"};return e&&(t.horizontal="right"),t}function M(e){let t={horizontal:"left",vertical:"top"};return e&&(t.horizontal="right"),t}const V=t.defineComponent({name:"KendoSplitButton",emits:{focus:e=>!0,blur:e=>!0,buttonclick:e=>!0,itemclick:e=>!0,open:e=>!0,close:e=>!0},props:{accessKey:String,ariaLabel:String,text:String,items:{type:Array,default:function(){return[]}},textField:String,tabIndex:Number,disabled:Boolean,icon:String,svgIcon:Object,size:String,rounded:String,fillMode:{type:String,validator:function(e){return["flat","link","outline","solid"].includes(e)}},themeColor:{type:String,validator:function(e){return["base","dark","error","info","inverse","light","primary","secondary","success","tertiary","warning"].includes(e)}},opened:{type:Boolean,default:void 0},iconClass:String,imageUrl:String,popupSettings:Object,itemRender:[String,Function,Object],item:[String,Function,Object],className:String,buttonClass:String,dir:String},data:()=>({focused:!1,focusedIndex:-1,currentOpened:!1}),created(){this._blurTimeout=null,this._anchor=o.guid(),this.mainButton=null,this.guid=o.guid(),this.buttonsData=[],o.validatePackage(c)},mounted(){this.mainButton=this.$refs[this._anchor],(void 0===this.$props.dir&&this.isRtl()||this.computedOpened)&&this.$forceUpdate()},updated(){this.focused&&this.element()&&(this.mainButton=this.$refs[this._anchor],this.mainButton.focus())},computed:{computedOpened(){return void 0===this.$props.opened?this.currentOpened:this.$props.opened},wrapperClass(){return{"k-split-button":!0,"k-button-group":!0,"k-focus":this.focused}}},setup:()=>({kendoAnchorRef:t.ref(null)}),render(){this.buttonsData=this.$props.items;const e=this.isRtl(),n=e?"rtl":void 0,{tabIndex:r,disabled:l}=this.$props,a=o.getDefaultSlots(this),d=function(){const{item:e,itemRender:i,textField:s}=this.$props;return this.buttonsData.length>0?this.buttonsData.map(function(n,r){const l="string"!=typeof n?{...n,render:o.templateRendering.call(this,n.render,o.getListeners.call(this))}:n;return t.createVNode(R,{class:"k-menu-item",role:"menuitem",dataItem:l,textField:s,focused:this.focusedIndex===r,onClick:this.onItemClick,onDown:this.onItemDown,render:o.templateRendering.call(this,i,o.getListeners.call(this)),item:e,key:r,index:r,id:`${this.guid}-${r}`},null)},this):null};return t.createVNode("div",{class:this.wrapperClass,onKeydown:this.onKeyDown,onFocusin:this.onFocus,onFocusout:this.onBlur,dir:n},[t.createVNode(p,{size:this.$props.size,rounded:this.$props.rounded,fillMode:this.$props.fillMode,themeColor:this.$props.themeColor,onClick:e=>this.onItemClick(e,-1),disabled:l||void 0,tabIndex:r,accessKey:this.$props.accessKey,class:this.$props.buttonClass,icon:this.$props.icon,svgIcon:this.$props.svgIcon,iconClass:this.$props.iconClass,imageUrl:this.$props.imageUrl,dir:n,id:this._anchor,ref:this._anchor,type:"button","aria-disabled":l,"aria-haspopup":"menu","aria-expanded":this.computedOpened,"aria-label":this.$props.ariaLabel||`${this.$props.text||""} splitbutton`,"aria-controls":this.guid,"aria-activedescendant":void 0!==this.focusedIndex&&this.focusedIndex>=0?`${this.guid}-${this.focusedIndex}`:void 0},{default:()=>[this.$props.text,a]}),t.createVNode(p,{svgIcon:i.caretAltDownIcon,size:this.$props.size,rounded:this.$props.rounded,fillMode:this.$props.fillMode,themeColor:this.$props.themeColor,icon:"caret-alt-down",disabled:l||void 0,tabIndex:-1,onClick:this.onSplitPartClick,onMousedown:this.onDownSplitPart,onPointerdown:this.onDownSplitPart,dir:n,"aria-label":"menu toggling button"},null),function(){const{popupSettings:i={},size:n}=this.$props;return t.createVNode(s.Popup,{anchor:this._anchor,show:this.computedOpened,animate:i.animate,popupClass:o.classNames("k-menu-popup",i.popupClass),anchorAlign:i.anchorAlign||K(e),popupAlign:i.popupAlign||M(e),style:e?{direction:"rtl"}:void 0},{default:()=>[t.createVNode("ul",{class:`k-group k-menu-group k-reset k-menu-group-${o.kendoThemeMaps.sizeMap[n]||n}`,role:"menu",id:this.guid,"aria-labelledby":this._anchor},[d.call(this)])]})}.call(this)])},methods:{element(){return this.mainButton},onKeyDown(e){if(e.altKey)return void(this.computedOpened||e.keyCode!==o.Keys.down?this.computedOpened&&e.keyCode===o.Keys.up&&(this.dispatchPopupEvent(e,!1),this.focusedIndex=-1,this.currentOpened=!1):(this.dispatchPopupEvent(e,!0),this.focusedIndex=0,this.currentOpened=!0));let t;if(e.keyCode===o.Keys.enter||e.keyCode===o.Keys.space?(e.preventDefault(),this.dispatchClickEvent(e,this.focusedIndex),void 0!==this.focusedIndex&&this.focusedIndex>=0&&(t={focusedIndex:this.computedOpened?-1:0,currentOpened:!this.computedOpened},this.dispatchPopupEvent(e,t.currentOpened))):this.computedOpened&&e.keyCode===o.Keys.esc&&(t={focusedIndex:-1,currentOpened:!1},this.dispatchPopupEvent(e,t.currentOpened)),this.computedOpened){const i=T(this.focusedIndex,e.keyCode,e.altKey,this.buttonsData.length);i!==this.focusedIndex&&(t=t||{},t.focusedIndex=i);const s=e.keyCode===o.Keys.up||e.keyCode===o.Keys.down||e.keyCode===o.Keys.left||e.keyCode===o.Keys.right;!e.altKey&&s&&e.preventDefault()}t&&(this.focusedIndex=t.focusedIndex,this.focused=t.focused,void 0!==t.currentOpened&&(this.currentOpened=t.currentOpened))},onFocus(e){this.focused||(this.$emit("focus",{event:e}),this.focused=!0),this.focusedIndex=-1,clearTimeout(this._blurTimeout)},onItemClick(e,t){const o=this.computedOpened;o&&(this.focusedIndex=0,this.currentOpened=!1),this.dispatchClickEvent(e,t),o&&this.dispatchPopupEvent(e,!1)},onBlur(e){clearTimeout(this._blurTimeout),this.createBlurTimeout(e)},createBlurTimeout(e){const t=this;this._blurTimeout=setTimeout(()=>{o.canUseDOM&&document.activeElement!==t.mainButton&&(t.focused=!1,t.focusedIndex=-1,t.$emit("blur",{event:e}),t.computedOpened&&(t.currentOpened=!1,t.dispatchPopupEvent(e,!1)))},200)},dispatchClickEvent(e,t){this.isItemDisabled(t)||(-1===t?this.$emit("buttonclick",{event:e}):this.$emit("itemclick",{event:e,component:this,item:this.buttonsData[t],itemIndex:t}))},onSplitPartClick(e){if(this.buttonsData.length){const t=!this.computedOpened;this.dispatchPopupEvent(e,t),this.focusedIndex=t?0:-1,this.currentOpened=t,this.focused=!0}},onDownSplitPart(e){e.preventDefault(),this.element()&&document.activeElement!==this.element()&&this.element().focus()},onItemDown(e){document.activeElement===this.element()&&e.preventDefault()},dispatchPopupEvent(e,t){const o={event:e};this.$emit(t?"open":"close",o)},isItemDisabled(e){return this.buttonsData[e]?this.buttonsData[e].disabled:this.$props.disabled},isRtl(){return void 0!==this.$props.dir?"rtl"===this.$props.dir:!!this.$el&&"rtl"===getComputedStyle(this.$el).direction}}}),P=t.defineComponent({name:"KendoDropDownButton",emits:{focus:e=>!0,blur:e=>!0,itemclick:e=>!0,open:e=>!0,close:e=>!0},props:{accessKey:String,items:{type:Array,default:function(){return[]}},ariaLabel:String,text:String,textField:String,tabIndex:Number,disabled:Boolean,icon:String,svgIcon:Object,iconClass:String,imageUrl:String,popupSettings:Object,itemRender:[String,Object,Function],item:Function,size:String,rounded:String,fillMode:{type:String,validator:function(e){return["flat","link","outline","solid"].includes(e)}},themeColor:{type:String,validator:function(e){return["base","dark","error","info","inverse","light","primary","secondary","success","tertiary","warning"].includes(e)}},opened:{type:Boolean,default:void 0},buttonClass:String,dir:String},created(){this._blurTimeout=null,this._anchor=o.guid(),this.wrapper=null,this.mainButton=null,this.guid=o.guid(),this.buttonsData=[],o.validatePackage(c)},mounted(){this.mainButton=this.$refs[this._anchor],(void 0===this.$props.dir&&this.isRtl()||this.computedOpened)&&this.$forceUpdate()},updated(){this.focused&&this.element()&&(this.mainButton=this.$refs[this._anchor],this.mainButton.focus())},data:()=>({currentOpened:!1,focused:!1,focusedIndex:-1}),computed:{computedOpened(){return void 0===this.$props.opened?this.currentOpened:this.$props.opened},wrapperClass(){return{"k-dropdown-button":!0,"k-focus":this.focused}}},setup:()=>({kendoAnchorRef:t.ref(null)}),render(){const e=this.isRtl(),i=e?"rtl":void 0,{tabIndex:n,disabled:r}=this.$props,l=o.getDefaultSlots(this);this.buttonsData=this.$props.items;const a=function(){const{item:e,itemRender:i,textField:s}=this.$props;return this.buttonsData.length>0?this.buttonsData.map(function(n,r){const l="string"!=typeof n?{...n,render:o.templateRendering.call(this,n.render,o.getListeners.call(this))}:n;return t.createVNode(R,{class:"k-menu-item",dataItem:l,textField:s,focused:this.focusedIndex===r,onClick:this.onItemClick,onDown:this.onItemDown,render:o.templateRendering.call(this,i,o.getListeners.call(this)),item:e,index:r,key:r,id:`${this.guid}-${r}`},null)},this):null};return t.createVNode("div",{class:this.wrapperClass,onKeydown:this.onKeyDown,onFocusin:this.onFocus,onFocusout:this.onBlur,dir:i},[t.createVNode(p,{size:this.$props.size,rounded:this.$props.rounded,fillMode:this.$props.fillMode,themeColor:this.$props.themeColor,onClick:this.onClickMainButton,onMousedown:this.mouseDown,disabled:r||void 0,tabIndex:n,accessKey:this.$props.accessKey,icon:this.$props.icon,svgIcon:this.$props.svgIcon,iconClass:this.$props.iconClass,class:this.$props.buttonClass,imageUrl:this.$props.imageUrl,dir:i,ref:this._anchor,type:"button","aria-disabled":r,"aria-haspopup":"menu","aria-expanded":this.computedOpened,"aria-label":this.$props.ariaLabel||`${this.$props.text||""} dropdownbutton`,"aria-controls":this.guid,"aria-activedescendant":void 0!==this.focusedIndex&&this.focusedIndex>=0?`${this.guid}-${this.focusedIndex}`:void 0},{default:()=>[this.$props.text,l]}),function(){const{popupSettings:i={},size:n}=this.$props;return t.createVNode(s.Popup,{anchor:this._anchor,show:this.computedOpened,animate:i.animate,popupClass:o.classNames("k-menu-popup",i.popupClass),anchorAlign:i.anchorAlign||K(e),popupAlign:i.popupAlign||M(e),style:e?{direction:"rtl"}:void 0},{default:()=>[t.createVNode("ul",{class:`k-group k-menu-group k-reset k-menu-group-${o.kendoThemeMaps.sizeMap[n]||n}`,role:"menu",id:this.guid},[a.call(this)])]})}.call(this)])},methods:{element(){return this.mainButton},onKeyDown(e){if(e.altKey)this.computedOpened||e.keyCode!==o.Keys.down?this.computedOpened&&e.keyCode===o.Keys.up&&(this.dispatchPopupEvent(e,!1),this.focusedIndex=-1,this.currentOpened=!1):(this.dispatchPopupEvent(e,!0),this.focusedIndex=0,this.currentOpened=!0);else if(e.keyCode===o.Keys.enter||e.keyCode===o.Keys.space?(void 0!==this.focusedIndex&&this.focusedIndex>=0&&this.dispatchClickEvent(e,this.focusedIndex),e.preventDefault(),this.focusedIndex=this.computedOpened?-1:0,this.currentOpened=!this.computedOpened,this.dispatchPopupEvent(e,this.currentOpened)):this.computedOpened&&e.keyCode===o.Keys.esc&&(this.focusedIndex=-1,this.currentOpened=!1,this.dispatchPopupEvent(e,this.currentOpened)),this.computedOpened){const t=T(this.focusedIndex,e.keyCode,e.altKey,this.buttonsData.length);this.focusedIndex=t;const i=e.keyCode===o.Keys.up||e.keyCode===o.Keys.down||e.keyCode===o.Keys.left||e.keyCode===o.Keys.right;!e.altKey&&i&&e.preventDefault()}},onFocus(e){this.focused||(this.focused=!0,this.$emit("focus",{event:e})),this.focusedIndex=this.computedOpened?0:-1,clearTimeout(this._blurTimeout)},onBlur(e){clearTimeout(this._blurTimeout),this.createBlurTimeout(e)},createBlurTimeout(e){const t=this;this._blurTimeout=setTimeout(()=>{o.canUseDOM&&document.activeElement!==t.$el&&(t.focused=!1,t.focusedIndex=-1,t.$emit("blur",{event:e}),t.computedOpened&&(t.currentOpened=!1,t.dispatchPopupEvent(e,!1)))},200)},onItemClick(e,t){this.focusedIndex=-1,this.currentOpened=!1,this.dispatchClickEvent(e,t),this.dispatchPopupEvent(e,!1)},onItemDown(e){document.activeElement===this.element()&&e.preventDefault()},mouseDown(e){e.preventDefault()},dispatchClickEvent(e,t){this.isItemDisabled(t)||this.$emit("itemclick",{event:e,item:this.buttonsData[t],itemIndex:t})},onClickMainButton(e){if(!this.buttonsData.length)return;const t=!this.computedOpened;this.currentOpened=t,this.focused=!0,this.focusedIndex=t?0:-1,this.dispatchPopupEvent(e,t)},dispatchPopupEvent(e,t){const o={event:e};this.$emit(t?"open":"close",o)},isItemDisabled(e){return this.buttonsData[e]?this.buttonsData[e].disabled:this.$props.disabled},isRtl(){return void 0!==this.$props.dir?"rtl"===this.$props.dir:!!this.$el&&"rtl"===getComputedStyle(this.$el).direction}}}),A=t.defineComponent({name:"KendoToolbarItem",render:()=>t.createVNode("div",{class:"k-toolbar-separator k-separator"},null)}),z="prevArrow.title",E="nextArrow.title",L="moreButtonTitle.title",j={[z]:"Previous scroll button",[E]:"Next scroll button",[L]:"More button"},U=t.defineComponent({name:"KendoToolbarScrollButton",props:{buttonScrollSpeed:Number,disabled:Boolean,scrollContentRef:Object,type:String,prevButton:Object,nextButton:Object,dir:String},inject:{kendoLocalizationService:{default:null}},emits:{contentscroll:e=>!0},methods:{getScrollButtonTitle(){const{dir:e,type:t}=this.$props;return"rtl"!==e?"prev"===t?n.provideLocalizationService(this).toLanguageString(z,j[z]):n.provideLocalizationService(this).toLanguageString(E,j[E]):"prev"===t?n.provideLocalizationService(this).toLanguageString(E,j[E]):n.provideLocalizationService(this).toLanguageString(z,j[z])}},render(){const{disabled:e,type:s,scrollContentRef:n,buttonScrollSpeed:r,prevButton:l,nextButton:a}=this.$props;return t.createVNode("span",{class:o.classNames("k-button","k-button-md","k-button-solid","k-button-solid-base","k-rounded-md","k-icon-button",`k-toolbar-${s}`,{"k-disabled":e}),title:this.getScrollButtonTitle(),"aria-hidden":!0,tabindex:e?-1:void 0,onClick:()=>{n&&r&&(n.scrollBy({left:"next"===s?r:-r,behavior:"smooth"}),this.$emit("contentscroll",s))}},[t.createVNode(o.SvgIcon,{icon:"prev"===s?i.caretAltLeftIcon:i.caretAltRightIcon,class:"k-button-icon"},null)])}}),W=t.defineComponent({name:"ToolbarScrollable",props:{scrollButtons:String,scrollButtonsPosition:String,isOverflowing:Boolean,buttonScrollSpeed:Number,dir:String,isScrollStartPosition:Boolean,isScrollEndPosition:Boolean,prevButton:Object,nextButton:Object,toolbarItems:Object},emits:{contentscroll:e=>!0},data:()=>({scrollContentRef:null}),mounted(){this.scrollContentRef=this.$refs.scrollContentRef},methods:{onContentScroll(e){this.$emit("contentscroll",e)}},render(){const{scrollButtons:e,buttonScrollSpeed:o,prevButton:i,nextButton:s,scrollButtonsPosition:n,dir:r,isScrollStartPosition:l,isScrollEndPosition:a,toolbarItems:d}=this.$props,c=(e,n)=>t.createVNode(U,{type:e,dir:r,disabled:n,scrollContentRef:this.scrollContentRef,buttonScrollSpeed:o,prevButton:i,nextButton:s,onContentscroll:this.onContentScroll},null),u="visible"===e||"auto"===e&&this.$props.isOverflowing;return t.createVNode(t.Fragment,null,[u&&"split"===n&&t.createVNode(t.Fragment,null,[c("rtl"!==r?"prev":"next",l),t.createVNode(A,{class:"k-toolbar-button-separator"},null)]),u&&"start"===n&&t.createVNode(t.Fragment,null,[c("rtl"!==r?"prev":"next",l),c("rtl"!==r?"next":"prev",a),t.createVNode(A,{class:"k-toolbar-button-separator"},null)]),t.createVNode("span",{class:"k-toolbar-items k-toolbar-items-scroll",ref:"scrollContentRef"},[d]),u&&"split"===n&&t.createVNode(t.Fragment,null,[t.createVNode(A,{class:"k-toolbar-button-separator"},null),c("rtl"!==r?"next":"prev",a)]),u&&"end"===n&&t.createVNode(t.Fragment,null,[t.createVNode(A,{class:"k-toolbar-button-separator"},null),c("rtl"!==r?"prev":"next",l),c("rtl"!==r?"next":"prev",a)])])}}),_=t.defineComponent({name:"ToolbarOverflowSection",props:{toolbarRef:Object,toolbarWidth:Number,fillMode:String,size:String,visibleTools:Array,overFlowTools:Array,opened:Boolean,allTools:Array},emits:{toggleoverflow:e=>!0},inject:{kendoLocalizationService:{default:null}},methods:{handleClick(){this.$emit("toggleoverflow",!this.$props.opened)}},render(){const{visibleTools:e,overFlowTools:r,allTools:l}=this.$props,{toolbarRef:a,toolbarWidth:d,fillMode:c,size:u}=this.$props;return t.createVNode(t.Fragment,null,[e&&[...l].splice(0,e.length),r.length>0&&t.createVNode(t.Fragment,null,[t.createVNode(A,{class:"k-toolbar-button-separator"},null),t.createVNode(p,{ref:"buttonRef",class:"k-toolbar-overflow-button",fillMode:"flat",svgIcon:i.moreHorizontalIcon,title:n.provideLocalizationService(this).toLanguageString(L,j[L]),onClick:this.handleClick},null),t.createVNode(s.Popup,{anchor:a,show:this.$props.opened,popupClass:"k-toolbar-popup",key:d,style:{width:d+"px"}},{default:()=>[t.createVNode("span",{class:`k-toolbar-items-list k-toolbar-items-list-${o.kendoThemeMaps.sizeMap[u]} k-toolbar-items-list-${c}`},[e&&[...l].splice(e.length,l.length)])]})])])}}),q=t.defineComponent({name:"KendoToolbar",props:{tabIndex:{type:Number,default:0},dir:{type:String,validator:function(e){return[null,"ltr","rtl"].includes(e)},default:"ltr"},keyboardNavigation:{type:Boolean,default:!0},buttons:{type:Array,default:function(){}},size:{type:String,validator:function(e){return["small","medium","large"].includes(e)}},fillMode:{type:String,validator:function(e){return["solid","flat","outline"].includes(e)}},ariaLabel:String,overflow:{type:String,default:"section",validator:function(e){return[null,"none","section","scroll"].includes(e)}},scrollButtons:{type:String,default:"auto",validator:function(e){return[null,"hidden","visible","auto"].includes(e)}},scrollButtonsPosition:{type:String,default:"split",validator:function(e){return[null,"start","end","split"].includes(e)}},buttonScrollSpeed:{type:Number,default:100}},emits:{resize:e=>!0},data:()=>({defaultSlot:null,offsetWidth:0,offsetHeight:0,currentButtons:[],focusedSelector:"",isScrollStartPosition:!0,isScrollEndPosition:!1,focusableButtons:[],isOverflowing:!1,scrollContentRef:null,lastToolbarWidthRef:0,overFlowToolsRef:[],overFlowOpened:!1,visibleToolsRef:void 0}),created(){this.focusedSelector=this.selectors.map(e=>e+":focus").join(","),o.validatePackage(c)},computed:{selectors(){return this.$props.buttons||a},wrapperClass(){const{size:e,fillMode:t,overflow:i,scrollButtons:s}=this.$props;return{"k-toolbar":!0,[`k-toolbar-${t}`]:t,[`k-toolbar-${o.kendoThemeMaps.sizeMap[e]||e}`]:e,"k-toolbar-scrollable":"scroll"===i,"k-toolbar-scrollable-overlay":"scroll"===i&&("hidden"===s||void 0===s),"k-toolbar-scrollable-start":"scroll"===i&&"hidden"===s&&this.isScrollStartPosition,"k-toolbar-scrollable-end":"scroll"===i&&"hidden"===s&&this.isScrollEndPosition,"k-toolbar-section":i&&"section"===i}}},mounted(){o.canUseDOM&&window.ResizeObserver&&(this.observerResize=new window.ResizeObserver(this.onWindowResize),this.observerResize.observe(this.$el));const e=this.$el;e&&(this.offsetWidth=e.offsetWidth,this.offsetHeight=e.offsetHeight,!1!==this.$props.keyboardNavigation&&(this.currentButtons=this.getCurrentButtons(),this.setTabIndex(0))),this.scrollContentRef=this.$refs.toolbarScrollable&&this.$refs.toolbarScrollable.scrollContentRef,this.defaultSlot&&(this.visibleToolsRef=this.defaultSlot.filter(e=>e&&e.type).map((e,o)=>t.cloneVNode(e,{key:e.key||o})),this.$nextTick(()=>{this.checkOverflow(),this.initOverflow(this.$refs.toolbar)}))},updated(){!this.$el||!1===this.$props.keyboardNavigation||(this.currentButtons=this.getCurrentButtons(),this.setTabIndex(this.focusedIndex()))},unmounted(){o.canUseDOM&&this.observerResize&&this.observerResize.disconnect(),this.currentButtons.length=0},render(){const{overflow:e,scrollButtons:i,scrollButtonsPosition:s,prevButton:n,nextButton:r,buttonScrollSpeed:l,dir:a,fillMode:d,size:c}=this.$props;return this.defaultSlot=o.getDefaultSlots(this),t.createVNode("div",{ref:"toolbar",class:this.wrapperClass,role:"toolbar",dir:a,"aria-label":this.$props.ariaLabel,onKeydown:this.onKeyDown},["scroll"===e&&t.createVNode(t.Fragment,null,[t.createVNode(W,{ref:"toolbarScrollable",scrollButtons:i,scrollButtonsPosition:s,prevButton:n,nextButton:r,isOverflowing:this.isOverflowing,buttonScrollSpeed:l,dir:a,isScrollStartPosition:this.isScrollStartPosition,isScrollEndPosition:this.isScrollEndPosition,toolbarItems:this.defaultSlot,onContentscroll:this.onContentScroll},null)]),"section"===e&&t.createVNode(_,{opened:this.overFlowOpened,toolbarRef:this.$refs.toolbar,toolbarWidth:this.offsetWidth,fillMode:d,size:c,visibleTools:this.visibleToolsRef,overFlowTools:this.overFlowToolsRef,onToggleoverflow:this.onToggleoverflow,allTools:this.defaultSlot},null),"none"===e&&this.defaultSlot])},methods:{getCurrentButtons(){return this.$el&&this.$el.querySelectorAll?Array.from(this.$el.querySelectorAll(this.selectors.join(","))):[]},getInternalButtons(){return this.$el&&this.$el.querySelectorAll?Array.from(this.$el.querySelectorAll(".k-dropdownlist > .k-button,.k-colorpicker > .k-button")):[]},focusedIndex(){const e=this.$el&&this.$el.querySelector&&this.$el.querySelector(this.focusedSelector);return Math.max(0,this.currentButtons.findIndex(t=>t===e))},setTabIndex(e){const{tabIndex:t}=this.$props;this.currentButtons.forEach((o,i)=>{o.tabIndex=i===e?t:-1}),this.getInternalButtons().forEach(e=>{e.tabIndex=-1})},onKeyDown(e){if(!1===this.$props.keyboardNavigation)return;const t=e.target;if(e.keyCode!==o.Keys.left&&e.keyCode!==o.Keys.right||e.defaultPrevented||-1===this.currentButtons.findIndex(e=>e===t))return;const i=this.focusedIndex();e.keyCode===o.Keys.left?this.focusButton(i,i-1):this.focusButton(i,i+1)},focusButton(e,t){const{tabIndex:o}=this.$props,i=this.currentButtons[t];if(i){i.tabIndex=o,i.focus();const t=this.currentButtons[e];t&&(t.tabIndex=-1)}},initOverflow(e,t){let o=200;const i=[],s=[];Array.from(e.children).forEach((e,t)=>{o+=Math.ceil(e.clientWidth),o<=this.$refs.toolbar.offsetWidth-50?i.push(this.visibleToolsRef[t]):s.push(this.visibleToolsRef[t])}),this.visibleToolsRef=i,this.overFlowToolsRef=s},checkOverflow(){if("scroll"===this.$props.overflow){const e=this.scrollContentRef;e&&(this.isOverflowing=e.scrollWidth>e.clientWidth||e.scrollHeight>e.clientHeight,this.isOverflowing?this.onContentScroll():(this.isScrollStartPosition=!0,this.isScrollEndPosition=!0))}else if("section"===this.$props.overflow||void 0===this.$props.overflow){const e=this.$refs.toolbar;let t=0;if(e){const o=e.offsetWidth,i=parseInt(window.getComputedStyle(e).gap||"0",10),s=Array.from(e.children).reduce((e,t)=>e+=Math.ceil(t.clientWidth),0),n=Array.from(e.children).length,r=2*i;if(t=36+Number(s)+n*i+r,t>o){const e=[...this.visibleToolsRef],t=e.pop();this.visibleToolsRef=e,t&&(this.overFlowToolsRef=[t,...this.overFlowToolsRef]),this.lastToolbarWidthRef=o}else if(o>this.lastToolbarWidthRef+i*n/2.75){const e=[...this.overFlowToolsRef],t=e.shift();t&&this.lastToolbarWidthRef+i*n>30&&(this.overFlowToolsRef=e,this.visibleToolsRef=[...this.visibleToolsRef,t]),this.lastToolbarWidthRef=o}else this.$forceUpdate()}}},onWindowResize(e){window.requestAnimationFrame(()=>{const t=this.$el;if(this.overFlowOpened=!1,!t)return;const o=t.offsetWidth,i=t.offsetHeight;if(this.offsetWidth!==o||this.offsetHeight!==i){this.offsetWidth=o,this.offsetHeight=i;const t={offsetWidth:this.offsetWidth,offsetHeight:this.offsetHeight};this.$emit("resize",{target:this,...t,nativeEvent:e})}this.checkOverflow()})},onContentScroll(e){const t=this.scrollContentRef;if(e&&t){let o,i;o="next"!==e&&(t.scrollLeft<=this.$props.buttonScrollSpeed||0===t.scrollLeft),i="prev"!==e&&(t.scrollLeft+t.clientWidth+this.$props.buttonScrollSpeed>=t.scrollWidth||t.scrollLeft+t.clientWidth===t.scrollWidth),this.isScrollStartPosition=!!o,this.isScrollEndPosition=!!i}else this.isScrollStartPosition=!0,this.isScrollEndPosition=!1},onToggleoverflow(e){this.overFlowOpened=e}}}),H=t.defineComponent({name:"KendoToolbarItem",methods:{element(){return this.$el}},render(){const e=o.getDefaultSlots(this);return t.createVNode("div",{class:"k-toolbar-item"},[e])}}),G=t.defineComponent({name:"KendoToolbarItem",render:()=>t.createVNode("span",{class:"k-spacer"},null)});let J=function(e){return e.WebSpeech="WebSpeech",e.None="None",e}({});const Q=t.defineComponent({name:"KendoSpeechToTextButton",props:{lang:{type:String,default:"en-US"},continuous:{type:Boolean,default:!1},interimResults:{type:Boolean,default:!1},maxAlternatives:{type:Number,default:1},integrationMode:{type:String,default:J.WebSpeech},onStart:{type:Function},onResult:{type:Function},onEnd:{type:Function},onError:{type:Function},svgIcon:{type:Object,default:i.microphoneOutlineIcon},iconSize:{type:String},disabled:{type:Boolean,default:void 0},size:String,rounded:String,fillMode:String,themeColor:String,title:{type:String,default:"Speech to Text Button"},ariaLabel:{type:String,default:"Start speech recognition"}},setup(e,{emit:o,expose:i}){const s=t.ref(null),n=t.ref(!1),l=()=>e.integrationMode!==J.None,a="undefined"==typeof window||"webkitSpeechRecognition"in window||"SpeechRecognition"in window||(e.onError&&e.onError({errorMessage:"Speech Recognition API is not supported in this browser."}),!1),d=()=>{var e;n.value||(l()&&(null==(e=s.value)||e.start()),n.value=!0)},c=()=>{var e;n.value&&(l()&&(null==(e=s.value)||e.stop()),n.value=!1)},u=async()=>{n.value||(e.onStart&&await e.onStart(),d())},p=t=>{const i=t.results,s=i[i.length-1],n=Array.from(s).map(e=>({transcript:e.transcript,confidence:e.confidence})),r={isFinal:s.isFinal,alternatives:n};e.onResult&&e.onResult(r),o("result",r)},h=async()=>{n.value&&(e.onEnd&&await e.onEnd(),c())},m=t=>{n.value=!1;const i={errorMessage:t.error||t.errorMessage||"Unknown error"};e.onError&&e.onError(i),o("error",i)},f=()=>{var t;a&&e.integrationMode===J.WebSpeech&&(null!=(t=s.value)&&t.isActive()&&c(),s.value=function(e){return new r.KendoSpeechRecognition(e)}({lang:e.lang,continuous:e.continuous,interimResults:e.interimResults,integrationMode:e.integrationMode,maxAlternatives:e.maxAlternatives,events:{start:u,result:p,end:h,error:m}}))};return t.watch(()=>({lang:e.lang,continuous:e.continuous,interimResults:e.interimResults,integrationMode:e.integrationMode,maxAlternatives:e.maxAlternatives}),()=>{f()},{deep:!0}),t.onMounted(()=>{f()}),t.onUnmounted(()=>{var e;null!=(e=s.value)&&e.isInActiveState&&c()}),i({start:d,stop:c,abort:()=>{var e;n.value&&l()&&(null==(e=s.value)||e.abort(),n.value=!1)},isActive:()=>{var e;return null==(e=s.value)?void 0:e.isActive()}}),{clickHandler:()=>{a&&(n.value?h():u())},isInActiveState:n}},render(){const{ariaLabel:e,svgIcon:o,fillMode:s,rounded:n,size:r,disabled:l,themeColor:a,iconSize:d,title:c}=this.$props,{className:u,style:h,id:m}=this.$attrs,f=t.computed(()=>["k-speech-to-text-button",u,{"k-listening":this.isInActiveState}]),g=t.computed(()=>this.isInActiveState?i.stopSmIcon:o||i.microphoneOutlineIcon);return t.createVNode(p,{id:m,style:h,class:f.value,onClick:this.clickHandler,svgIcon:g.value,iconSize:d,fillMode:s,rounded:n,size:r,themeColor:a,"aria-label":e,disabled:l,title:c},null)}});const X=[".k-input",".k-picker",".k-checkbox",".k-radio",".k-switch",".k-rating",".k-slider"],Y=(e,t)=>{const o=e.element,i=o instanceof HTMLInputElement||o instanceof HTMLSelectElement||o instanceof HTMLTextAreaElement?o:o.querySelector("input, select, textarea");if(i){if(i instanceof HTMLSelectElement){const e=Array.from(i.querySelectorAll("option")),o=e.find(e=>e.textContent===t)||e.find(e=>{var o;return null==(o=e.textContent)?void 0:o.includes(t)});o&&(i.selectedIndex=e.indexOf(o))}else if(i instanceof HTMLInputElement&&"date"===i.type){const e=new Date(t);i.value=isNaN(e.getTime())?t:e.toISOString().split("T")[0]}else i.value=t;i.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:{fromSmartComponents:!0}})),i.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{fromSmartComponents:!0}}))}},Z=t.defineComponent({name:"KendoSmartPasteButton",emits:{click:e=>!0},props:{disabled:{type:Boolean,default:void 0},fillMode:{type:String,default:"solid"},rounded:{type:String,default:"medium"},size:{type:String,default:"medium"},svgIcon:{type:Object,default:()=>i.pasteSparkleIcon},themeColor:String,formFields:Array,togglable:{type:Boolean,default:!1},selected:{type:Boolean,default:void 0},icon:String,iconClass:String,imageUrl:String,imageAlt:String,tabIndex:Number,id:String,type:{type:String,default:"button"},role:String,ariaLabel:String,ariaPressed:Boolean,title:String,dir:String,iconSize:String},created(){o.validatePackage(c),this.smartPasteInstance=null},methods:{getSmartPasteInstance(){return this.getButtonElement()?(this.smartPasteInstance||(this.smartPasteInstance=new l.KendoSmartPaste({getElement:()=>this.getButtonElement(),customInputs:X.map(e=>({identifier:e})),getSmartPasteField:e=>{const t=(e=>{const t=e.querySelector("input, select, textarea");return(null==t?void 0:t.getAttribute("name"))||(null==t?void 0:t.getAttribute("id"))||e.getAttribute("id")||null})(e.element);return t?{...e,field:t}:e},setKendoInputValue:Y})),this.smartPasteInstance):null},getButtonElement(){var e;const t=this.$refs.buttonRef;return null!=(e=null==t?void 0:t.$el)?e:null},extractFormConfig(){const e=this.getSmartPasteInstance();if(!e)return this.$props.formFields;const t=e.extractFormConfig().reduce((e,t)=>e.some(e=>e.field===t.field)?e:[...e,t],[]);return this.$props.formFields?this.$props.formFields.map(e=>{const o=t.find(t=>t.field===e.field);if(o){const t={...o,...e,element:o.element};return"kendo-input"===o.type&&(t.type="kendo-input"),t}return e}):t},async extractClipboard(){try{return await navigator.clipboard.readText()}catch{return""}},populateFormFieldsInternal(e,t){if(!e||!t)return;const i=Object.entries(e).reduce((e,[t,o])=>(null!=o&&(e[t]=o),e),{}),s=this.getButtonElement();if(s){const e=o.getKendoPasteEventTarget(s);o.dispatchKendoPasteEvent(e,i)}const n=this.getSmartPasteInstance();n&&n.populateFormFields({fieldValues:i},t)},async handleClick(e){if(this.$props.disabled)return;const t=await this.extractClipboard(),o=this.extractFormConfig(),i=null==o?void 0:o.map(e=>{var t,o,i;const{element:s,...n}=e,r=null==(t=this.$props.formFields)?void 0:t.find(e=>e.field===n.field);return{...n,type:null!=(o=null==r?void 0:r.type)?o:n.type,field:n.field||"",allowedValues:null!=(i=n.allowedValues)?i:[]}}),s={event:e,requestData:{content:t,formFields:i},setResponse:e=>{null!=e&&e.fieldValues&&this.populateFormFieldsInternal(e.fieldValues,o)}};this.$emit("click",s)}},render(){const e=o.getDefaultSlots(this),{disabled:i,fillMode:s,rounded:n,size:r,svgIcon:l,themeColor:a,togglable:d,selected:c,icon:u,iconClass:h,imageUrl:m,imageAlt:f,tabIndex:g,id:b,type:v,role:k,ariaLabel:y,ariaPressed:$,title:S,dir:I,iconSize:x}=this.$props,C={ref:"buttonRef",disabled:i,fillMode:s,rounded:n,size:r,svgIcon:l,themeColor:a,togglable:d,selected:c,icon:u,iconClass:h,imageUrl:m,imageAlt:f,tabIndex:g,id:b,type:v,role:k,ariaLabel:y,ariaPressed:$,title:S,dir:I,iconSize:x,onClick:this.handleClick};return e?t.createVNode(p,C,function(e){return"function"==typeof e||"[object Object]"===Object.prototype.toString.call(e)&&!t.isVNode(e)}(e)?e:{default:()=>[e]}):t.createVNode(p,C,null)}});e.Button=p,e.ButtonGroup=f,e.ButtonItem=R,e.Chip=y,e.ChipList=$,e.DropDownButton=P,e.FloatingActionButton=F,e.FloatingActionButtonItem=S,e.SmartPasteButton=Z,e.SpeechToTextButton=Q,e.SpeechToTextButtonMode=J,e.SplitButton=V,e.Toolbar=q,e.ToolbarItem=H,e.ToolbarSeparator=A,e.ToolbarSpacer=G});
|
|
15
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue"),require("@progress/kendo-vue-common"),require("@progress/kendo-svg-icons"),require("@progress/kendo-vue-popup"),require("@progress/kendo-vue-intl"),require("@progress/kendo-webspeech-common"),require("@progress/kendo-smartpaste-common")):"function"==typeof define&&define.amd?define(["exports","vue","@progress/kendo-vue-common","@progress/kendo-svg-icons","@progress/kendo-vue-popup","@progress/kendo-vue-intl","@progress/kendo-webspeech-common","@progress/kendo-smartpaste-common"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).KendoVueButtons={},e.Vue,e.KendoVueCommon,e.KendoSVGIcons,e.KendoVuePopup,e.KendoVueIntl,e.KendoWebspeechCommon,e.KendoSmartpasteCommon)}(this,function(e,t,o,s,i,n,r,l){"use strict";const a=["button:not(.k-dropdownlist button):not(.k-colorpicker button):not(.k-split-button .k-split-button-arrow)",".k-button-group > button",".k-dropdownlist",".k-colorpicker"],d={button:"k-button","state-disabled":"k-disabled","group-start":"k-group-start","group-end":"k-group-end","button-group":"k-button-group","button-group-stretched":"k-button-group-stretched"},c={name:"@progress/kendo-vue-buttons",productName:"Kendo UI for Vue",productCode:"KENDOUIVUE",productCodes:["KENDOUIVUE"],publishDate:1657089513,version:"8.3.0-develop.3",licensingDocsUrl:"https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning"},u=d,p=t.defineComponent({name:"KendoButton",emits:{click:e=>!0,mousedown:e=>!0,mouseup:e=>!0,pointerdown:e=>!0,pointerup:e=>!0,focus:e=>!0,blur:e=>!0,keypress:e=>!0,keydown:e=>!0,contextmenu:e=>!0},props:{ariaLabel:String,ariaPressed:Boolean,title:String,dir:String,selected:{type:Boolean,default:void 0},togglable:{type:Boolean,default:!1},icon:{type:String,default:function(){}},svgIcon:Object,iconSize:{type:String},iconClass:{type:String,default:function(){}},imageUrl:{type:String,default:function(){}},imageAlt:String,disabled:{type:Boolean,default:void 0},size:String,rounded:String,fillMode:String,themeColor:String,tabIndex:Number,accessKey:String,id:String,type:String,role:String},created(){o.validatePackage(c),this.currentActive=!0===this.$props.togglable&&!0===this.$props.selected,this._activeTemp=void 0},data:()=>({currentActive:null}),computed:{computedSelected(){return void 0!==this._activeTemp?this._activeTemp:void 0!==this.$props.selected?this.$props.selected:this.currentActive},buttonClasses(){const{disabled:e,icon:t,iconClass:s,imageUrl:i,dir:n,svgIcon:r,size:l,rounded:a,fillMode:d,themeColor:c}=this.$props,p=void 0!==r||void 0!==t||void 0!==s||void 0!==i,h=o.getDefaultSlots(this);return{[u.button]:!0,[`k-button-${o.kendoThemeMaps.sizeMap[l]||l}`]:l,[`k-rounded-${o.kendoThemeMaps.roundedMap[a]||a}`]:a,"k-icon-button":!h&&p,"k-disabled":e,"k-selected":this.computedSelected,"k-rtl":"rtl"===n,[`k-button-${d}`]:d,[`k-button-${c}`]:c}}},updated(){this.$props.togglable&&void 0!==this.$props.selected&&this.$props.selected!==this.currentActive&&(this.currentActive=this.$props.selected)},methods:{focus(e){this.$el.focus(e)},toggleIfApplicable(){if(!this.disabled&&this.$props.togglable&&void 0===this.$props.selected){const e=!this.currentActive;this._activeTemp=e,this.currentActive=e,this._activeTemp=void 0}},handleClick(e){this.toggleIfApplicable(),this.disabled||this.$emit("click",e)},handleMouseDown(e){this.disabled||this.$emit("mousedown",e)},handlePointerDown(e){this.disabled||this.$emit("pointerdown",e)},handleMouseUp(e){this.disabled||this.$emit("mouseup",e)},handlePointerUp(e){this.disabled||this.$emit("pointerup",e)},handleFocus(e){this.disabled||this.$emit("focus",{event:e})},handleBlur(e){this.disabled||this.$emit("blur",{event:e})},handleKeypress(e){this.disabled||this.$emit("keypress",e)},handleKeydown(e){this.disabled||this.$emit("keydown",e)},handleContextmenu(e){this.disabled||this.$emit("contextmenu",e)}},render(){const{togglable:e,icon:s,svgIcon:i,iconClass:n,imageUrl:r,imageAlt:l,accessKey:a,tabIndex:d,id:c,type:u,disabled:p,role:h,iconSize:m}=this.$props,f=o.getDefaultSlots(this);return t.createVNode("button",{class:this.buttonClasses,onClick:this.handleClick,onMousedown:this.handleMouseDown,onMouseup:this.handleMouseUp,onPointerdown:this.handlePointerDown,onPointerup:this.handlePointerUp,onFocus:this.handleFocus,onBlur:this.handleBlur,onKeypress:this.handleKeypress,onKeydown:this.handleKeydown,onContextmenu:this.handleContextmenu,title:this.title,"aria-label":this.ariaLabel,"aria-disabled":p||void 0,"aria-pressed":e?!!this.currentActive:void 0,accesskey:a,tabindex:d,id:c,type:u,role:h},[function(){if(r)return t.createVNode("img",{role:"presentation",class:"k-image",alt:l,src:r},null);if(s||i){const e=o.classNames("k-button-icon",n);return t.createVNode(o.Icon,{name:s,icon:i,class:e,size:m},null)}return n?t.createVNode("span",{role:"presentation",class:n},null):null}.call(this),f&&t.createVNode("span",{class:"k-button-text"},[f])])}}),h=t.defineComponent({name:"KendoButtonWrap",render(){return o.getDefaultSlots(this)[0]}}),m=d,f=t.defineComponent({name:"KendoButtonGroup",props:{disabled:{type:Boolean,default:void 0},width:String,dir:{type:String,default:function(){}}},created(){o.validatePackage(c)},render(){const e=o.getDefaultSlots(this),s=function(e,s,i,n){const r=o.classNames({[m["state-disabled"]]:this.$props.disabled,[m["group-start"]]:n?i:0===s,[m["group-end"]]:n?0===s:i});return t.h(h,{class:r,"aria-disabled":this.$props.disabled},function(){return[e]})},i=o.classNames([m["button-group"]],{"k-disabled":this.$props.disabled,[m["button-group-stretched"]]:!!this.$props.width});return t.createVNode("div",{style:{width:this.width},dir:this.$props.dir,role:"group","aria-disabled":this.$props.disabled,class:i},[function(e){const t=e.length,o=void 0!==this.$props.dir?"rtl"===this.$props.dir:this.$el&&"rtl"===getComputedStyle(this.$el).direction||!1;return e.map((e,i)=>this.isValidButton(e)?s.call(this,e,i,i===t-1,o):e)}.call(this,e)])},methods:{isValidButton(e){var t,o;return e.tag&&-1!==e.tag.toLowerCase().indexOf("button")||e.componentOptions&&-1!==(null==(t=e.componentOptions.tag)?void 0:t.toLowerCase().indexOf("button"))||(null==(o=e.type)?void 0:o.name)&&-1!==e.type.name.toLowerCase().indexOf("kendobutton")}}});let g=function(e){return e.next="next",e.prev="prev",e.current="current",e.reset="reset",e}({});let b=function(e){return e.remove="remove",e.add="add",e.reorder="reorder",e}({});let v=function(e){return e.single="single",e.multiple="multiple",e.none="none",e}({}),k=function(e){return e.toggle="toggle",e.remove="remove",e}({});const y=t.defineComponent({name:"KendoVueChip",props:{id:String,text:String,avatar:{type:[String,Function,Object],default:function(){}},value:[String,Object],dir:{type:String,default:function(){return"ltr"}},removable:{type:Boolean,default:!1},removeIcon:{type:String,default:function(){return"x-circle"}},removeSvgIcon:{type:Object,default:function(){return s.xCircleIcon}},disabled:{type:Boolean,default:!1},icon:String,svgIcon:Object,selectedIcon:{type:String,default:function(){return"check"}},selectedSvgIcon:{type:Object,default:function(){return s.checkIcon}},size:String,rounded:String,fillMode:{type:String,validator:function(e){return["flat","outline","solid"].includes(e)}},themeColor:{type:String,validator:function(e){return["base","error","info","success","warning"].includes(e)}},dataItem:Object,selected:Boolean,ariaDescribedBy:String,role:{type:String,default:"button"},tabIndex:Number,onMousedown:Function},emits:{click:e=>!0,keydown:e=>!0,blur:e=>!0,focus:e=>!0,remove:e=>!0},inject:{kendoSelection:{default:{value:null}},kendoFocused:{default:{value:null}},kendoDataItems:{default:null},handleDispatchDataItems:{default:o.noop},handleDispatchSelection:{default:o.noop},handleDispatchFocus:{default:o.noop}},created(){this.currentDir=void 0,o.validatePackage(c)},mounted(){this.chip=o.getRef(this,"chip"),this.currentDir=void 0!==this.$props.dir?"rtl"===this.$props.dir:this.$el&&"rtl"===getComputedStyle(this.$el).direction||!1},updated(){this.kendoFocused.value===this.$props.value&&this.$el&&this.$el.focus()},computed:{currentSelected(){return this.$props.selected||(Array.isArray(this.kendoSelection.value)?this.kendoSelection.value.some(e=>e===this.$props.value):this.kendoSelection.value===this.$props.value)},chipLabelClass:()=>({"k-chip-label":!0})},methods:{computedFocused(){return this.kendoFocused.value===this.$props.value},handleMouseDown(e){this.$emit("mousedown",e)},handleClick(e){this.handleDispatchSelection&&this.handleDispatchSelection({type:k.toggle,payload:this.$props.value,event:e}),this.$emit("click",{target:this.target,event:e})},handleRemove(e){e.stopPropagation(),this.$props.removable&&(this.handleDispatchFocus&&(this.handleDispatchDataItems({type:b.remove,payload:this.$props.value,event:e}),this.handleDispatchFocus({type:g.reset,payload:this.$props.value,event:e}),this.handleDispatchSelection({type:k.remove,payload:this.$props.value,event:e})),this.$emit("remove",{target:this.target,event:e}))},handleKeyDown(e){switch(e.keyCode){case o.Keys.left:this.handleDispatchFocus&&this.handleDispatchFocus({type:g.prev,payload:this.$props.value,event:e});break;case o.Keys.right:this.handleDispatchFocus&&this.handleDispatchFocus({type:g.next,payload:this.$props.value,event:e});break;case o.Keys.enter:this.handleDispatchFocus&&this.handleDispatchSelection({type:k.toggle,payload:this.$props.value,event:e});break;case o.Keys.delete:this.handleRemove(e)}this.$emit("keydown",{target:this.target,event:e})},handleFocus(e){this.handleDispatchFocus&&this.handleDispatchFocus({payload:this.$props.value,type:g.current,event:e}),this.$emit("focus",{target:this.target,event:e})},handleBlur(e){this.$emit("blur",{target:this.target,event:e})}},setup:()=>({chipRef:t.ref(null)}),render(){const{size:e,rounded:s,themeColor:i,fillMode:n,look:r,avatar:l,icon:a,svgIcon:d,selectedIcon:c,selectedSvgIcon:u,removeIcon:p,removeSvgIcon:h}=this.$props,m=o.templateRendering.call(this,l,o.getListeners.call(this)),f=l?t.createVNode("div",{class:`k-chip-avatar k-avatar k-rounded-${l.rounded||"medium"} k-avatar-${o.kendoThemeMaps.sizeMap[e]||e} k-avatar-solid k-avatar-solid-primary`,style:l.style},[t.createVNode("span",{class:"k-avatar-image"},[t.createVNode("img",{src:l.imageUrl,alt:l.imageAlt},null)])]):null,g=o.getTemplate.call(this,{h:t.h,template:m});return t.createVNode("div",{role:this.$props.role,id:this.$props.value,ref:o.setRef(this,"chip"),dir:this.currentDir,tabindex:o.getTabIndex(this.$props.tabIndex,this.$props.disabled,void 0),class:o.classNames("k-chip",{"k-rtl":"rtl"===this.currentDir,"k-disabled":this.$props.disabled,"k-selected":this.currentSelected,"k-focus":this.computedFocused(),[`k-chip-${o.kendoThemeMaps.sizeMap[e]||e}`]:e,[`k-rounded-${o.kendoThemeMaps.roundedMap[s]||s}`]:s,[`k-chip-${n}`]:n,[`k-chip-${i}`]:i,"k-chip-outline":"outline"===r||"outlined"===r,"k-chip-solid":"solid"===r||"filled"===r||"solid"===n}),"aria-pressed":"button"===this.$props.role?this.currentSelected:void 0,"aria-selected":"option"===this.$props.role?this.currentSelected:void 0,"aria-disabled":this.$props.disabled,"aria-describedby":this.$props.ariaDescribedBy,onFocus:this.handleFocus,onBlur:this.handleBlur,onClick:this.handleClick,onKeydown:this.handleKeyDown,onMousedown:this.handleMouseDown},[this.currentSelected&&(c||u)&&t.createVNode(o.Icon,{name:o.getIconName(c),icon:u,size:"small"},null),(a||d)&&t.createVNode(o.Icon,{name:o.getIconName(a),icon:d,size:"small"},null),l?l.imageUrl?f:g:null,t.createVNode("span",{class:"k-chip-content"},[this.$props.text&&t.createVNode("span",{"aria-label":this.$props.text,class:this.chipLabelClass},[this.$props.text])]),this.$props.removable&&t.createVNode("span",{class:"k-chip-actions"},[t.createVNode("span",{class:"k-chip-action k-chip-remove-action"},[t.createVNode(o.Icon,{name:o.getIconName(p),icon:h,size:"small",onClick:this.handleRemove},null)])])])}}),$=t.defineComponent({name:"KendoVueChipList",inheritAttrs:!1,props:{id:String,tabIndex:Number,dataItems:Array,defaultDataItems:{type:Array,default:function(){return[]}},value:[Object,Array,String,Number],defaultValue:{type:[Object,Array,String,Number],default:function(){return null}},size:String,rounded:String,fillMode:{type:String,validator:function(e){return["flat","outline","solid"].includes(e)}},selection:{type:String,default:function(){return"none"}},textField:{type:String,default:function(){return"text"}},valueField:{type:String,default:function(){return"value"}},avatarField:{type:String,default:function(){return"avatar"}},disabled:{type:Boolean,default:!1},dir:{type:String,default:function(){return"ltr"}},chip:[String,Function,Object],ariaLabelledBy:String,ariaDescribedBy:String},emits:{change:e=>!0,datachange:e=>!0},provide(){return{kendoSelection:this.currentValue,kendoFocused:this.currentFocused,kendoDataItems:this.computedDataItems,handleDispatchDataItems:this.handleDispatchDataItems,handleDispatchSelection:this.handleDispatchSelection,handleDispatchFocus:this.handleDispatchFocus}},created(){o.validatePackage(c),this.currentDataItems=this.$props.dataItems||this.$props.defaultDataItems,this.currentValue.value=this.$props.value||this.$props.defaultValue},data:()=>({currentDataItems:[],currentDir:"ltr",isRtl:!1,currentFocused:{value:!1},currentValue:{value:null}}),mounted(){this.chipList=this.chipListRef,this.currentDir=void 0!==this.$props.dir?this.$props.dir:this.$el&&"rtl"===getComputedStyle(this.$el).direction||!1,this.isRtl="rtl"===this.currentDir},computed:{computedDataItems(){return this.$props.dataItems||this.currentDataItems},computedValue(){return this.$props.value||this.currentValue.value},items(){return this.computedDataItems.reduce(this.itemsReducer,[])}},methods:{handleDispatchSelection(e){const t=((e,t)=>{switch(t.selection){case v.single:switch(t.type){case k.toggle:if(!Array.isArray(e)||null===e)return t.payload===e?null:t.payload;throw new Error("State cannot be an array in single selection");case k.remove:return t.payload===e?null:e;default:return e}case v.multiple:switch(t.type){case k.toggle:if(Array.isArray(e))return e.some(e=>e===t.payload)?e.filter(e=>e!==t.payload):[...e,t.payload];if(null===e)return[t.payload];throw new Error("State cannot be non-array in multiple selection");case k.remove:return Array.isArray(e)?e.some(e=>e===t.payload)?e.filter(e=>e!==t.payload):[...e,t.payload]:e;default:return e}case v.none:return null;default:return e}})(this.computedValue,{...e,selection:this.$props.selection,state:this.computedValue});this.handleChange(t,e.event),this.currentValue.value=t},handleDispatchFocus(e){const t=((e,t)=>{const o=t.items.findIndex(t=>t===e);switch(t.type){case g.next:return o===t.items.length-1?e:t.items[o+1];case g.prev:return 0===o?e:t.items[o-1];case g.current:return t.payload;case g.reset:return null;default:return e}})(e.payload,{...e,items:this.items});this.currentFocused.value=t},handleDispatchDataItems(e){const t=((e,t)=>{switch(t.type){case b.add:break;case b.remove:return e.filter(e=>e[t.valueField]!==t.payload);case b.reorder:break;default:return e}})(this.computedDataItems,{...e,state:this.computedDataItems,valueField:this.$props.valueField});this.handleDataChange(t,e.event),this.currentDataItems=t},handleChange(e,t){this.$el&&this.$emit("change",{value:e,target:this.$el,event:t})},handleDataChange(e,t){this.$el&&this.$emit("datachange",{value:e,target:this.$el,event:t})},itemsReducer(e,t){return e.push(t[this.$props.valueField||this.$props.valueField]),e}},setup:()=>({chipListRef:t.ref(null)}),render(){const{size:e}=this.$props;return t.createVNode("div",{ref:o.setRef(this,"chipList"),role:"listbox",id:this.$props.id,dir:this.currentDir,style:this.$attrs.style,tabindex:o.getTabIndex(this.$props.tabIndex,this.$props.disabled,void 0),class:o.classNames("k-chip-list",{[`k-chip-list-${o.kendoThemeMaps.sizeMap[e]||e}`]:e,"k-rtl":"rtl"===this.currentDir,"k-selection-single":"single"===this.$props.selection,"k-selection-multiple":"multiple"===this.$props.selection,"k-disabled":this.$props.disabled}),"aria-labelledby":this.$props.ariaLabelledBy,"aria-describedby":this.$props.ariaDescribedBy,"aria-orientation":"horizontal","aria-multiselectable":"multiple"===this.$props.selection||void 0},[this.computedDataItems.map(function(e){const s=o.templateRendering.call(this,this.$props.chip,o.getListeners.call(this)),i=t.createVNode(y,{role:"option",dataItem:e,key:e[this.$props.valueField],text:e[this.$props.textField],value:e[this.$props.valueField],avatar:e[this.$props.avatarField],size:this.$props.size,rounded:this.$props.rounded,fillMode:this.$props.fillMode},null);return o.getTemplate.call(this,{h:t.h,template:s,defaultRendering:i,additionalProps:{dataItem:e,key:e[this.$props.valueField],text:e[this.$props.textField],value:e[this.$props.valueField],size:this.$props.size}})},this)])}}),S=t.defineComponent({name:"KendoVueFloatingActionButtonItem",props:{id:String,disabled:Boolean,focused:Boolean,index:Number,icon:String,item:[String,Function,Object],dataItem:Object,text:String,tabIndex:Number,customProp:[String,Function,Object],class:String},emits:{click:(e,t)=>!0,down:e=>!0},mounted(){this.element=o.getRef(this,"element")},computed:{itemClassNames(){return o.classNames("k-fab-item",{"k-focus":this.focused,"k-disabled":this.disabled})}},methods:{handleClick(e){void 0!==this.$props.index&&!this.$props.disabled&&this.$emit("click",e,this.$props.index)},focusElement(){this.$el&&this.$el.focus()},onMouseDown(e){this.$emit("down",e)}},setup:()=>({elementRef:t.ref(null)}),render(){const{disabled:e,id:s,tabIndex:i,dataItem:n}=this.$props,{text:r,icon:l,svgIcon:a}=n;let d;const c=t.createVNode("li",{ref:o.setRef(this,"element"),id:s,class:this.itemClassNames,role:"menuitem",tabindex:o.getTabIndex(i,e),"aria-disabled":e,"aria-label":`${r||""} floatingactionbutton item`,onClick:this.handleClick,onMousedown:this.onMouseDown,onPointerdown:this.onMouseDown},[r&&t.createVNode("span",{class:"k-fab-item-text"},[r]),(a||l)&&t.createVNode(o.Icon,{name:l,icon:a,class:"k-fab-item-icon"},null)]);return d=o.getTemplate.call(this,{h:t.h,template:this.$props.item,defaultRendering:c,additionalProps:this.$props,additionalListeners:{click:this.handleClick}}),d}}),I="16px",C=e=>"number"==typeof e?e+"px":e,x=(e,t)=>{const o={horizontal:t?"right":"left",vertical:"bottom"};return"end"===e.horizontal&&(o.horizontal=t?"left":"right"),o},w=(e,t)=>{const o={horizontal:t?"right":"left",vertical:"top"};return"end"===e.horizontal&&(o.horizontal=t?"left":"right"),o},D=(e,t)=>({rtl:{end:"k-text-left",start:"k-text-right"},ltr:{start:"k-text-left",end:"k-text-right"}}[e]["end"===t?"end":"start"]),O=(e,t,o,s)=>{const i=t.horizontal,n=t.vertical;if(e){const r=o&&void 0!==o.x?C(o.x):I,l=o&&void 0!==o.x?`calc(50% + ${C(o.x)})`:"50%",a=o&&void 0!==o.y?C(o.y):I,d=o&&void 0!==o.y?`calc(50% + ${C(o.y)})`:"50%";e.style.setProperty(B(t,s),"center"===i?l:r),e.style.setProperty(N(t),"middle"===n?d:a),s&&(("top"===n||"bottom"===n)&&"start"===i&&e.style.setProperty("left","unset"),"middle"===n&&"end"===i&&e.style.setProperty("right","unset"),"middle"===n&&"start"===i&&e.style.setProperty("left","unset"))}},B=(e,t)=>{const{horizontal:o}=e;return{end:t?"left":"right",center:"left",start:t?"right":"left"}[o||"end"]},N=e=>({top:"top",middle:"top",bottom:"bottom"}[e.vertical||"bottom"]),F=t.defineComponent({name:"KendoVueFloatingActionButton",props:{id:String,dir:String,tabIndex:Number,accessKey:String,disabled:{type:Boolean,default:!1},icon:String,svgIcon:Object,iconClass:String,items:[Object,Array],item:[String,Function,Object],text:String,alignOffset:Object,opened:{type:Boolean,default:void 0},align:{type:Object,default:function(){return{vertical:"bottom",horizontal:"end"}}},positionMode:{type:String,default:function(){return"fixed"}},popupSettings:{type:Object,default:function(){return{}}},rounded:String,fillMode:{type:String,validator:function(e){return["flat","link","outline","solid"].includes(e)}},size:String,themeColor:String},emits:{click:e=>!0,mousedown:e=>!0,mouseup:e=>!0,open:e=>!0,close:e=>!0,itemclick:e=>!0,focus:e=>!0,blur:e=>!0,keydown:e=>!0},data:()=>({currentOpened:!1,currentFocused:!1,focusedIndex:-1,currentDir:"ltr",isRtl:!1}),created(){o.validatePackage(c),this.element=void 0,this._anchor=o.guid(),this.listId=o.guid(),this.buttonId=o.guid()},mounted(){this.element=this.kendoAnchorRef,this.list=o.getRef(this,"list"),this.popup=o.getRef(this,"popup"),this.currentDir=void 0!==this.$props.dir?this.$props.dir:this.$el&&"rtl"===getComputedStyle(this.$el).direction||!1,this.isRtl="rtl"===this.currentDir,void 0!==this.opened&&O(this.$el,this.$props.align,this.$props.alignOffset,this.isRtl)},updated(){O(this.$el,this.$props.align,this.$props.alignOffset,this.isRtl),this.currentFocused&&this.element&&this.element.focus()},computed:{buttonClassNames(){const{size:e,themeColor:t,fillMode:s,rounded:i}=this.$props;return{"k-fab":!0,[`k-fab-${o.kendoThemeMaps.sizeMap[e]||e}`]:e,[`k-rounded-${o.kendoThemeMaps.roundedMap[i]||i}`]:i,[`k-fab-${s}`]:s,[`k-fab-${t}`]:t,"k-disabled":this.$props.disabled,"k-focus":this.currentFocused,[`k-${this.$props.align.vertical}-${this.$props.align.horizontal}`]:!0}},computedOpened(){return void 0===this.$props.opened?this.currentOpened:this.$props.opened},rootClassNames(){return o.classNames({"k-pos-absolute":"absolute"===this.$props.positionMode,"k-pos-fixed":"fixed"===this.$props.positionMode})}},methods:{dispatchPopupEvent(e,t){this.$props.items&&this.$emit(t?"open":"close",{event:e,isOpened:!t})},handleClick(e){if(e.target&&!this.$props.disabled)if(this.$props.items){const t=!this.computedOpened;this.currentOpened=t,this.currentFocused=!0,this.focusedIndex=t?0:-1,this.dispatchPopupEvent(e,!this.computedOpened)}else this.$emit("click",e,void 0)},handleFocus(e){this.currentFocused=!0,this.focusedIndex=this.computedOpened?0:-1,this.$emit("focus",{event:e})},handleBlur(e){this.currentFocused=!1,this.currentOpened=!1,this.focusedIndex=-1,this.$emit("blur",{event:e}),this.computedOpened&&this.dispatchPopupEvent(e,!1)},handleMouseDown(e){e.preventDefault(),this.$emit("mousedown",e)},handleMouseUp(e){this.$emit("mouseup",e)},dispatchItemClickEvent(e,t){this.$props.items&&(this.$props.items[t].disabled||this.$emit("itemclick",e,{itemProps:this.$props.items[t],itemIndex:t}))},handleItemClick(e,t){!e.target||!this.$props.items||(this.focusedIndex=t,this.currentOpened=!1,this.dispatchItemClickEvent(e,t),this.dispatchPopupEvent(e,!1))},handleItemDown(e){o.canUseDOM&&document.activeElement===this.element&&e.preventDefault()},handleKeyDown(e){const t=this.focusedIndex,s=this.$props.items?this.$props.items.length-1:-1,i="bottom"===this.$props.align.vertical;switch(e.keyCode){case o.Keys.enter:case o.Keys.space:t>=0&&this.dispatchItemClickEvent(e,t),e.preventDefault(),this.currentOpened=!this.currentOpened,this.focusedIndex=this.currentOpened?-1:0;break;case o.Keys.esc:e.preventDefault(),this.currentOpened=!1,this.focusedIndex=-1;break;case o.Keys.home:e.preventDefault(),this.focusedIndex=0;break;case o.Keys.end:e.preventDefault(),this.focusedIndex=s;break;case o.Keys.down:case o.Keys.right:e.preventDefault(),t<s&&!i&&(this.focusedIndex=t+1),t>0&&i&&(this.focusedIndex=t-1);break;case o.Keys.up:case o.Keys.left:e.preventDefault(),t>0&&!i&&(this.focusedIndex=t-1),t<s&&i&&(this.focusedIndex=t+1)}this.$emit("keydown",e,void 0)}},setup:()=>({chipRef:t.ref(null),kendoAnchorRef:t.ref(null)}),render(){const{align:e,disabled:s,icon:n,svgIcon:r,iconClass:l,id:a,items:d,text:c,tabIndex:u,accessKey:p,popupSettings:h}=this.$props,m=o.templateRendering.call(this,this.$props.item,o.getListeners.call(this)),f=function(){return d&&d.map(function(i,n){return t.createVNode(S,{key:n,index:n,id:`${this.listId}-${n}`,disabled:s||i.disabled,focused:this.focusedIndex===n,dataItem:i,item:m,class:o.classNames(i.className,D(this.currentDir||"ltr",e.horizontal)),onClick:this.handleItemClick,onDown:this.handleItemDown},null)},this)},g=n&&!c,b=(this.element?this.element.offsetWidth:0)/2-16;return t.createVNode("div",{class:this.rootClassNames},[t.createVNode("button",{ref:e=>{this.kendoAnchorRef=e},id:a||this.buttonId,role:d?"menubutton":"button",type:"button","aria-disabled":s,"aria-expanded":d?this.computedOpened:void 0,"aria-haspopup":!!d,"aria-label":`${c||""} floatingactionbutton`,"aria-owns":d?this.listId:void 0,"aria-activedescendant":this.focusedIndex>=0&&d?`${this.listId}-${this.focusedIndex}`:void 0,tabindex:o.getTabIndex(u,s),accesskey:p,dir:this.currentDir,disabled:s,class:this.buttonClassNames,onClick:this.handleClick,onMousedown:this.handleMouseDown,onMouseup:this.handleMouseUp,onFocusin:this.handleFocus,onBlur:this.handleBlur,onKeydown:this.handleKeyDown},[n||r?t.createVNode(o.Icon,{name:n,icon:r,class:"k-fab-icon"},null):l?t.createVNode(o.Icon,{class:l},null):null,c&&t.createVNode("span",{class:"k-fab-text"},[c])]),t.createVNode(i.Popup,{ref:o.setRef(this,"popup"),show:this.computedOpened,anchor:this._anchor,animate:h.animate,popupClass:o.classNames("k-popup-transparent k-fab-popup",h.popupClass),anchorAlign:h.anchorAlign||x(e,this.isRtl),popupAlign:h.popupAlign||w(e,this.isRtl),style:{boxShadow:"none"}},{default:()=>[t.createVNode("ul",{ref:o.setRef(this,"list"),role:"menu","aria-labelledby":a,id:this.listId,class:o.classNames("k-fab-items",{"k-fab-items-bottom":"bottom"!==e.vertical,"k-fab-items-top":"bottom"===e.vertical}),style:{paddingLeft:g?b+"px":void 0,paddingRight:g?b+"px":void 0}},[f.call(this)])]})])}}),V=t.defineComponent({name:"KendoButtonItem",emits:{click:(e,t)=>!0,down:(e,t)=>!0},props:{focused:Boolean,index:Number,item:Object,render:[String,Object,Function],dataItem:[String,Object],id:String,textField:String,role:String},computed:{wrapperClass(){return{"k-item":!0,"k-focus":this.$props.focused}},innerClass(){const{dataItem:e}=this.$props;return{"k-link k-menu-link":!0,"k-selected":e.selected,"k-disabled":e.disabled}}},methods:{onClick(e){this.$emit("click",e,this.$props.index)},onDown(e){this.$emit("down",e,this.$props.index)}},render(){const{dataItem:e,id:s,render:i}=this.$props;return t.createVNode("li",{id:s,class:this.wrapperClass,onClick:this.onClick,onMousedown:this.onDown,onPointerdown:this.onDown,role:"menuitem","aria-disabled":e.disabled||void 0},[function(){const{textField:s,index:n}=this.$props,r=void 0!==e.text?e.text:s?e[s]:e,l=t.createVNode("span",{tabindex:-1,class:this.innerClass,key:"icon"},[e.icon||e.svgIcon?t.createVNode(o.Icon,{name:e.icon,icon:e.svgIcon,class:e.iconClass},null):e.iconClass&&t.createVNode("span",{class:e.iconClass,role:"presentation"},null),e.imageUrl&&t.createVNode("img",{class:"k-icon",alt:"",src:e.imageUrl,role:"presentation",key:"image"},null),r&&t.createVNode("span",{class:"k-menu-link-text"},[r])]);return o.getTemplate.call(this,{h:t.h,template:this.$props.dataItem.render||i,defaultRendering:l,additionalProps:{item:e,itemIndex:n,innerClass:this.innerClass,focused:this.focused}})}.call(this)])}}),T=(e,t,s,i)=>{if(s)return e;switch(t){case o.Keys.enter:case o.Keys.space:case o.Keys.esc:return-1;case o.Keys.up:case o.Keys.left:return Math.max(0,e-1);case o.Keys.down:case o.Keys.right:return Math.min(i-1,e+1);default:return e}};function M(e){let t={horizontal:"left",vertical:"bottom"};return e&&(t.horizontal="right"),t}function R(e){let t={horizontal:"left",vertical:"top"};return e&&(t.horizontal="right"),t}const K=t.defineComponent({name:"KendoSplitButton",emits:{focus:e=>!0,blur:e=>!0,buttonclick:e=>!0,itemclick:e=>!0,open:e=>!0,close:e=>!0},props:{accessKey:String,ariaLabel:String,text:String,items:{type:Array,default:function(){return[]}},textField:String,tabIndex:Number,disabled:Boolean,icon:String,svgIcon:Object,size:String,rounded:String,fillMode:{type:String,validator:function(e){return["flat","link","outline","solid"].includes(e)}},themeColor:{type:String,validator:function(e){return["base","dark","error","info","inverse","light","primary","secondary","success","tertiary","warning"].includes(e)}},opened:{type:Boolean,default:void 0},iconClass:String,imageUrl:String,popupSettings:Object,itemRender:[String,Function,Object],item:[String,Function,Object],className:String,buttonClass:String,dir:String},data:()=>({focused:!1,focusedIndex:-1,currentOpened:!1}),created(){this._blurTimeout=null,this._anchor=o.guid(),this.mainButton=null,this.guid=o.guid(),this.buttonsData=[],o.validatePackage(c)},mounted(){this.mainButton=this.$refs[this._anchor],(void 0===this.$props.dir&&this.isRtl()||this.computedOpened)&&this.$forceUpdate()},updated(){this.focused&&this.element()&&(this.mainButton=this.$refs[this._anchor],this.mainButton.focus())},computed:{computedOpened(){return void 0===this.$props.opened?this.currentOpened:this.$props.opened},wrapperClass(){return{"k-split-button":!0,"k-button-group":!0,"k-focus":this.focused}}},setup:()=>({kendoAnchorRef:t.ref(null)}),render(){this.buttonsData=this.$props.items;const e=this.isRtl(),n=e?"rtl":void 0,{tabIndex:r,disabled:l}=this.$props,a=o.getDefaultSlots(this),d=function(){const{item:e,itemRender:s,textField:i}=this.$props;return this.buttonsData.length>0?this.buttonsData.map(function(n,r){const l="string"!=typeof n?{...n,render:o.templateRendering.call(this,n.render,o.getListeners.call(this))}:n;return t.createVNode(V,{class:"k-menu-item",role:"menuitem",dataItem:l,textField:i,focused:this.focusedIndex===r,onClick:this.onItemClick,onDown:this.onItemDown,render:o.templateRendering.call(this,s,o.getListeners.call(this)),item:e,key:r,index:r,id:`${this.guid}-${r}`},null)},this):null};return t.createVNode("div",{class:this.wrapperClass,onKeydown:this.onKeyDown,onFocusin:this.onFocus,onFocusout:this.onBlur,dir:n},[t.createVNode(p,{size:this.$props.size,rounded:this.$props.rounded,fillMode:this.$props.fillMode,themeColor:this.$props.themeColor,onClick:e=>this.onItemClick(e,-1),disabled:l||void 0,tabIndex:r,accessKey:this.$props.accessKey,class:this.$props.buttonClass,icon:this.$props.icon,svgIcon:this.$props.svgIcon,iconClass:this.$props.iconClass,imageUrl:this.$props.imageUrl,dir:n,id:this._anchor,ref:this._anchor,type:"button","aria-disabled":l,"aria-haspopup":"menu","aria-expanded":this.computedOpened,"aria-label":this.$props.ariaLabel||`${this.$props.text||""} splitbutton`,"aria-controls":this.guid,"aria-activedescendant":void 0!==this.focusedIndex&&this.focusedIndex>=0?`${this.guid}-${this.focusedIndex}`:void 0},{default:()=>[this.$props.text,a]}),t.createVNode(p,{svgIcon:s.caretAltDownIcon,size:this.$props.size,rounded:this.$props.rounded,fillMode:this.$props.fillMode,themeColor:this.$props.themeColor,icon:"caret-alt-down",disabled:l||void 0,tabIndex:-1,onClick:this.onSplitPartClick,onMousedown:this.onDownSplitPart,onPointerdown:this.onDownSplitPart,dir:n,"aria-label":"menu toggling button"},null),function(){const{popupSettings:s={},size:n}=this.$props;return t.createVNode(i.Popup,{anchor:this._anchor,show:this.computedOpened,animate:s.animate,popupClass:o.classNames("k-menu-popup",s.popupClass),anchorAlign:s.anchorAlign||M(e),popupAlign:s.popupAlign||R(e),style:e?{direction:"rtl"}:void 0},{default:()=>[t.createVNode("ul",{class:`k-group k-menu-group k-reset k-menu-group-${o.kendoThemeMaps.sizeMap[n]||n}`,role:"menu",id:this.guid,"aria-labelledby":this._anchor},[d.call(this)])]})}.call(this)])},methods:{element(){return this.mainButton},onKeyDown(e){if(e.altKey)return void(this.computedOpened||e.keyCode!==o.Keys.down?this.computedOpened&&e.keyCode===o.Keys.up&&(this.dispatchPopupEvent(e,!1),this.focusedIndex=-1,this.currentOpened=!1):(this.dispatchPopupEvent(e,!0),this.focusedIndex=0,this.currentOpened=!0));let t;if(e.keyCode===o.Keys.enter||e.keyCode===o.Keys.space?(e.preventDefault(),this.dispatchClickEvent(e,this.focusedIndex),void 0!==this.focusedIndex&&this.focusedIndex>=0&&(t={focusedIndex:this.computedOpened?-1:0,currentOpened:!this.computedOpened},this.dispatchPopupEvent(e,t.currentOpened))):this.computedOpened&&e.keyCode===o.Keys.esc&&(t={focusedIndex:-1,currentOpened:!1},this.dispatchPopupEvent(e,t.currentOpened)),this.computedOpened){const s=T(this.focusedIndex,e.keyCode,e.altKey,this.buttonsData.length);s!==this.focusedIndex&&(t=t||{},t.focusedIndex=s);const i=e.keyCode===o.Keys.up||e.keyCode===o.Keys.down||e.keyCode===o.Keys.left||e.keyCode===o.Keys.right;!e.altKey&&i&&e.preventDefault()}t&&(this.focusedIndex=t.focusedIndex,this.focused=t.focused,void 0!==t.currentOpened&&(this.currentOpened=t.currentOpened))},onFocus(e){this.focused||(this.$emit("focus",{event:e}),this.focused=!0),this.focusedIndex=-1,clearTimeout(this._blurTimeout)},onItemClick(e,t){const o=this.computedOpened;o&&(this.focusedIndex=0,this.currentOpened=!1),this.dispatchClickEvent(e,t),o&&this.dispatchPopupEvent(e,!1)},onBlur(e){clearTimeout(this._blurTimeout),this.createBlurTimeout(e)},createBlurTimeout(e){const t=this;this._blurTimeout=setTimeout(()=>{o.canUseDOM&&document.activeElement!==t.mainButton&&(t.focused=!1,t.focusedIndex=-1,t.$emit("blur",{event:e}),t.computedOpened&&(t.currentOpened=!1,t.dispatchPopupEvent(e,!1)))},200)},dispatchClickEvent(e,t){this.isItemDisabled(t)||(-1===t?this.$emit("buttonclick",{event:e}):this.$emit("itemclick",{event:e,component:this,item:this.buttonsData[t],itemIndex:t}))},onSplitPartClick(e){if(this.buttonsData.length){const t=!this.computedOpened;this.dispatchPopupEvent(e,t),this.focusedIndex=t?0:-1,this.currentOpened=t,this.focused=!0}},onDownSplitPart(e){e.preventDefault(),this.element()&&document.activeElement!==this.element()&&this.element().focus()},onItemDown(e){document.activeElement===this.element()&&e.preventDefault()},dispatchPopupEvent(e,t){const o={event:e};this.$emit(t?"open":"close",o)},isItemDisabled(e){return this.buttonsData[e]?this.buttonsData[e].disabled:this.$props.disabled},isRtl(){return void 0!==this.$props.dir?"rtl"===this.$props.dir:!!this.$el&&"rtl"===getComputedStyle(this.$el).direction}}}),P=t.defineComponent({name:"KendoDropDownButton",emits:{focus:e=>!0,blur:e=>!0,itemclick:e=>!0,open:e=>!0,close:e=>!0},props:{accessKey:String,items:{type:Array,default:function(){return[]}},ariaLabel:String,text:String,textField:String,tabIndex:Number,disabled:Boolean,icon:String,svgIcon:Object,iconClass:String,imageUrl:String,popupSettings:Object,itemRender:[String,Object,Function],item:Function,size:String,rounded:String,fillMode:{type:String,validator:function(e){return["flat","link","outline","solid"].includes(e)}},themeColor:{type:String,validator:function(e){return["base","dark","error","info","inverse","light","primary","secondary","success","tertiary","warning"].includes(e)}},opened:{type:Boolean,default:void 0},buttonClass:String,dir:String},created(){this._blurTimeout=null,this._anchor=o.guid(),this.wrapper=null,this.mainButton=null,this.guid=o.guid(),this.buttonsData=[],o.validatePackage(c)},mounted(){this.mainButton=this.$refs[this._anchor],(void 0===this.$props.dir&&this.isRtl()||this.computedOpened)&&this.$forceUpdate()},updated(){this.focused&&this.element()&&(this.mainButton=this.$refs[this._anchor],this.mainButton.focus())},data:()=>({currentOpened:!1,focused:!1,focusedIndex:-1}),computed:{computedOpened(){return void 0===this.$props.opened?this.currentOpened:this.$props.opened},wrapperClass(){return{"k-dropdown-button":!0,"k-focus":this.focused}}},setup:()=>({kendoAnchorRef:t.ref(null)}),render(){const e=this.isRtl(),s=e?"rtl":void 0,{tabIndex:n,disabled:r}=this.$props,l=o.getDefaultSlots(this);this.buttonsData=this.$props.items;const a=function(){const{item:e,itemRender:s,textField:i}=this.$props;return this.buttonsData.length>0?this.buttonsData.map(function(n,r){const l="string"!=typeof n?{...n,render:o.templateRendering.call(this,n.render,o.getListeners.call(this))}:n;return t.createVNode(V,{class:"k-menu-item",dataItem:l,textField:i,focused:this.focusedIndex===r,onClick:this.onItemClick,onDown:this.onItemDown,render:o.templateRendering.call(this,s,o.getListeners.call(this)),item:e,index:r,key:r,id:`${this.guid}-${r}`},null)},this):null};return t.createVNode("div",{class:this.wrapperClass,onKeydown:this.onKeyDown,onFocusin:this.onFocus,onFocusout:this.onBlur,dir:s},[t.createVNode(p,{size:this.$props.size,rounded:this.$props.rounded,fillMode:this.$props.fillMode,themeColor:this.$props.themeColor,onClick:this.onClickMainButton,onMousedown:this.mouseDown,disabled:r||void 0,tabIndex:n,accessKey:this.$props.accessKey,icon:this.$props.icon,svgIcon:this.$props.svgIcon,iconClass:this.$props.iconClass,class:this.$props.buttonClass,imageUrl:this.$props.imageUrl,dir:s,ref:this._anchor,type:"button","aria-disabled":r,"aria-haspopup":"menu","aria-expanded":this.computedOpened,"aria-label":this.$props.ariaLabel||`${this.$props.text||""} dropdownbutton`,"aria-controls":this.guid,"aria-activedescendant":void 0!==this.focusedIndex&&this.focusedIndex>=0?`${this.guid}-${this.focusedIndex}`:void 0},{default:()=>[this.$props.text,l]}),function(){const{popupSettings:s={},size:n}=this.$props;return t.createVNode(i.Popup,{anchor:this._anchor,show:this.computedOpened,animate:s.animate,popupClass:o.classNames("k-menu-popup",s.popupClass),anchorAlign:s.anchorAlign||M(e),popupAlign:s.popupAlign||R(e),style:e?{direction:"rtl"}:void 0},{default:()=>[t.createVNode("ul",{class:`k-group k-menu-group k-reset k-menu-group-${o.kendoThemeMaps.sizeMap[n]||n}`,role:"menu",id:this.guid},[a.call(this)])]})}.call(this)])},methods:{element(){return this.mainButton},onKeyDown(e){if(e.altKey)this.computedOpened||e.keyCode!==o.Keys.down?this.computedOpened&&e.keyCode===o.Keys.up&&(this.dispatchPopupEvent(e,!1),this.focusedIndex=-1,this.currentOpened=!1):(this.dispatchPopupEvent(e,!0),this.focusedIndex=0,this.currentOpened=!0);else if(e.keyCode===o.Keys.enter||e.keyCode===o.Keys.space?(void 0!==this.focusedIndex&&this.focusedIndex>=0&&this.dispatchClickEvent(e,this.focusedIndex),e.preventDefault(),this.focusedIndex=this.computedOpened?-1:0,this.currentOpened=!this.computedOpened,this.dispatchPopupEvent(e,this.currentOpened)):this.computedOpened&&e.keyCode===o.Keys.esc&&(this.focusedIndex=-1,this.currentOpened=!1,this.dispatchPopupEvent(e,this.currentOpened)),this.computedOpened){const t=T(this.focusedIndex,e.keyCode,e.altKey,this.buttonsData.length);this.focusedIndex=t;const s=e.keyCode===o.Keys.up||e.keyCode===o.Keys.down||e.keyCode===o.Keys.left||e.keyCode===o.Keys.right;!e.altKey&&s&&e.preventDefault()}},onFocus(e){this.focused||(this.focused=!0,this.$emit("focus",{event:e})),this.focusedIndex=this.computedOpened?0:-1,clearTimeout(this._blurTimeout)},onBlur(e){clearTimeout(this._blurTimeout),this.createBlurTimeout(e)},createBlurTimeout(e){const t=this;this._blurTimeout=setTimeout(()=>{o.canUseDOM&&document.activeElement!==t.$el&&(t.focused=!1,t.focusedIndex=-1,t.$emit("blur",{event:e}),t.computedOpened&&(t.currentOpened=!1,t.dispatchPopupEvent(e,!1)))},200)},onItemClick(e,t){this.focusedIndex=-1,this.currentOpened=!1,this.dispatchClickEvent(e,t),this.dispatchPopupEvent(e,!1)},onItemDown(e){document.activeElement===this.element()&&e.preventDefault()},mouseDown(e){e.preventDefault()},dispatchClickEvent(e,t){this.isItemDisabled(t)||this.$emit("itemclick",{event:e,item:this.buttonsData[t],itemIndex:t})},onClickMainButton(e){if(!this.buttonsData.length)return;const t=!this.computedOpened;this.currentOpened=t,this.focused=!0,this.focusedIndex=t?0:-1,this.dispatchPopupEvent(e,t)},dispatchPopupEvent(e,t){const o={event:e};this.$emit(t?"open":"close",o)},isItemDisabled(e){return this.buttonsData[e]?this.buttonsData[e].disabled:this.$props.disabled},isRtl(){return void 0!==this.$props.dir?"rtl"===this.$props.dir:!!this.$el&&"rtl"===getComputedStyle(this.$el).direction}}}),z=t.defineComponent({name:"KendoToolbarItem",render:()=>t.createVNode("div",{class:"k-toolbar-separator k-separator"},null)}),A="prevArrow.title",E="nextArrow.title",L="moreButtonTitle.title",j={[A]:"Previous scroll button",[E]:"Next scroll button",[L]:"More button"},U=t.defineComponent({name:"KendoToolbarScrollButton",props:{buttonScrollSpeed:Number,disabled:Boolean,scrollContentRef:Object,type:String,prevButton:Object,nextButton:Object,dir:String},inject:{kendoLocalizationService:{default:null}},emits:{contentscroll:e=>!0},methods:{getScrollButtonTitle(){const{dir:e,type:t}=this.$props;return"rtl"!==e?"prev"===t?n.provideLocalizationService(this).toLanguageString(A,j[A]):n.provideLocalizationService(this).toLanguageString(E,j[E]):"prev"===t?n.provideLocalizationService(this).toLanguageString(E,j[E]):n.provideLocalizationService(this).toLanguageString(A,j[A])}},render(){const{disabled:e,type:i,scrollContentRef:n,buttonScrollSpeed:r,prevButton:l,nextButton:a}=this.$props;return t.createVNode("span",{class:o.classNames("k-button","k-button-md","k-button-solid","k-button-solid-base","k-rounded-md","k-icon-button",`k-toolbar-${i}`,{"k-disabled":e}),title:this.getScrollButtonTitle(),"aria-hidden":!0,tabindex:e?-1:void 0,onClick:()=>{n&&r&&(n.scrollBy({left:"next"===i?r:-r,behavior:"smooth"}),this.$emit("contentscroll",i))}},[t.createVNode(o.SvgIcon,{icon:"prev"===i?s.caretAltLeftIcon:s.caretAltRightIcon,class:"k-button-icon"},null)])}}),W=t.defineComponent({name:"ToolbarScrollable",props:{scrollButtons:String,scrollButtonsPosition:String,isOverflowing:Boolean,buttonScrollSpeed:Number,dir:String,isScrollStartPosition:Boolean,isScrollEndPosition:Boolean,prevButton:Object,nextButton:Object,toolbarItems:Object},emits:{contentscroll:e=>!0},data:()=>({scrollContentRef:null}),mounted(){this.scrollContentRef=this.$refs.scrollContentRef},methods:{onContentScroll(e){this.$emit("contentscroll",e)}},render(){const{scrollButtons:e,buttonScrollSpeed:o,prevButton:s,nextButton:i,scrollButtonsPosition:n,dir:r,isScrollStartPosition:l,isScrollEndPosition:a,toolbarItems:d}=this.$props,c=(e,n)=>t.createVNode(U,{type:e,dir:r,disabled:n,scrollContentRef:this.scrollContentRef,buttonScrollSpeed:o,prevButton:s,nextButton:i,onContentscroll:this.onContentScroll},null),u="visible"===e||"auto"===e&&this.$props.isOverflowing;return t.createVNode(t.Fragment,null,[u&&"split"===n&&t.createVNode(t.Fragment,null,[c("rtl"!==r?"prev":"next",l),t.createVNode(z,{class:"k-toolbar-button-separator"},null)]),u&&"start"===n&&t.createVNode(t.Fragment,null,[c("rtl"!==r?"prev":"next",l),c("rtl"!==r?"next":"prev",a),t.createVNode(z,{class:"k-toolbar-button-separator"},null)]),t.createVNode("span",{class:"k-toolbar-items k-toolbar-items-scroll",ref:"scrollContentRef"},[d]),u&&"split"===n&&t.createVNode(t.Fragment,null,[t.createVNode(z,{class:"k-toolbar-button-separator"},null),c("rtl"!==r?"next":"prev",a)]),u&&"end"===n&&t.createVNode(t.Fragment,null,[t.createVNode(z,{class:"k-toolbar-button-separator"},null),c("rtl"!==r?"prev":"next",l),c("rtl"!==r?"next":"prev",a)])])}}),_=t.defineComponent({name:"ToolbarOverflowSection",props:{toolbarRef:Object,toolbarWidth:Number,fillMode:String,size:String,visibleTools:Array,overFlowTools:Array,opened:Boolean,allTools:Array},emits:{toggleoverflow:e=>!0},inject:{kendoLocalizationService:{default:null}},methods:{handleClick(){this.$emit("toggleoverflow",!this.$props.opened)}},render(){const{visibleTools:e,overFlowTools:r,allTools:l}=this.$props,{toolbarRef:a,toolbarWidth:d,fillMode:c,size:u}=this.$props;return t.createVNode(t.Fragment,null,[e&&[...l].splice(0,e.length),r.length>0&&t.createVNode(t.Fragment,null,[t.createVNode(z,{class:"k-toolbar-button-separator"},null),t.createVNode(p,{ref:"buttonRef",class:"k-toolbar-overflow-button",fillMode:"flat",svgIcon:s.moreHorizontalIcon,title:n.provideLocalizationService(this).toLanguageString(L,j[L]),onClick:this.handleClick},null),t.createVNode(i.Popup,{anchor:a,show:this.$props.opened,popupClass:"k-toolbar-popup",key:d,style:{width:d+"px"}},{default:()=>[t.createVNode("span",{class:`k-toolbar-items-list k-toolbar-items-list-${o.kendoThemeMaps.sizeMap[u]} k-toolbar-items-list-${c}`},[e&&[...l].splice(e.length,l.length)])]})])])}}),q=t.defineComponent({name:"KendoToolbar",props:{tabIndex:{type:Number,default:0},dir:{type:String,validator:function(e){return[null,"ltr","rtl"].includes(e)},default:"ltr"},keyboardNavigation:{type:Boolean,default:!0},buttons:{type:Array,default:function(){}},size:{type:String,validator:function(e){return["small","medium","large"].includes(e)}},fillMode:{type:String,validator:function(e){return["solid","flat","outline"].includes(e)}},ariaLabel:String,overflow:{type:String,default:"section",validator:function(e){return[null,"none","section","scroll"].includes(e)}},scrollButtons:{type:String,default:"auto",validator:function(e){return[null,"hidden","visible","auto"].includes(e)}},scrollButtonsPosition:{type:String,default:"split",validator:function(e){return[null,"start","end","split"].includes(e)}},buttonScrollSpeed:{type:Number,default:100}},emits:{resize:e=>!0},data:()=>({defaultSlot:null,offsetWidth:0,offsetHeight:0,currentButtons:[],focusedSelector:"",isScrollStartPosition:!0,isScrollEndPosition:!1,focusableButtons:[],isOverflowing:!1,scrollContentRef:null,lastToolbarWidthRef:0,overFlowToolsRef:[],overFlowOpened:!1,visibleToolsRef:void 0}),created(){this.focusedSelector=this.selectors.map(e=>e+":focus").join(","),o.validatePackage(c)},computed:{selectors(){return this.$props.buttons||a},wrapperClass(){const{size:e,fillMode:t,overflow:s,scrollButtons:i}=this.$props;return{"k-toolbar":!0,[`k-toolbar-${t}`]:t,[`k-toolbar-${o.kendoThemeMaps.sizeMap[e]||e}`]:e,"k-toolbar-scrollable":"scroll"===s,"k-toolbar-scrollable-overlay":"scroll"===s&&("hidden"===i||void 0===i),"k-toolbar-scrollable-start":"scroll"===s&&"hidden"===i&&this.isScrollStartPosition,"k-toolbar-scrollable-end":"scroll"===s&&"hidden"===i&&this.isScrollEndPosition,"k-toolbar-section":s&&"section"===s}}},mounted(){o.canUseDOM&&window.ResizeObserver&&(this.observerResize=new window.ResizeObserver(this.onWindowResize),this.observerResize.observe(this.$el));const e=this.$el;e&&(this.offsetWidth=e.offsetWidth,this.offsetHeight=e.offsetHeight,!1!==this.$props.keyboardNavigation&&(this.currentButtons=this.getCurrentButtons(),this.setTabIndex(0))),this.scrollContentRef=this.$refs.toolbarScrollable&&this.$refs.toolbarScrollable.scrollContentRef,this.defaultSlot&&(this.visibleToolsRef=this.defaultSlot.filter(e=>e&&e.type).map((e,o)=>t.cloneVNode(e,{key:e.key||o})),this.$nextTick(()=>{this.checkOverflow(),this.initOverflow(this.$refs.toolbar)}))},updated(){!this.$el||!1===this.$props.keyboardNavigation||(this.currentButtons=this.getCurrentButtons(),this.setTabIndex(this.focusedIndex()))},unmounted(){o.canUseDOM&&this.observerResize&&this.observerResize.disconnect(),this.currentButtons.length=0},render(){const{overflow:e,scrollButtons:s,scrollButtonsPosition:i,prevButton:n,nextButton:r,buttonScrollSpeed:l,dir:a,fillMode:d,size:c}=this.$props;return this.defaultSlot=o.getDefaultSlots(this),t.createVNode("div",{ref:"toolbar",class:this.wrapperClass,role:"toolbar",dir:a,"aria-label":this.$props.ariaLabel,onKeydown:this.onKeyDown},["scroll"===e&&t.createVNode(t.Fragment,null,[t.createVNode(W,{ref:"toolbarScrollable",scrollButtons:s,scrollButtonsPosition:i,prevButton:n,nextButton:r,isOverflowing:this.isOverflowing,buttonScrollSpeed:l,dir:a,isScrollStartPosition:this.isScrollStartPosition,isScrollEndPosition:this.isScrollEndPosition,toolbarItems:this.defaultSlot,onContentscroll:this.onContentScroll},null)]),"section"===e&&t.createVNode(_,{opened:this.overFlowOpened,toolbarRef:this.$refs.toolbar,toolbarWidth:this.offsetWidth,fillMode:d,size:c,visibleTools:this.visibleToolsRef,overFlowTools:this.overFlowToolsRef,onToggleoverflow:this.onToggleoverflow,allTools:this.defaultSlot},null),"none"===e&&this.defaultSlot])},methods:{getCurrentButtons(){return this.$el&&this.$el.querySelectorAll?Array.from(this.$el.querySelectorAll(this.selectors.join(","))):[]},getInternalButtons(){return this.$el&&this.$el.querySelectorAll?Array.from(this.$el.querySelectorAll(".k-dropdownlist > .k-button,.k-colorpicker > .k-button")):[]},focusedIndex(){const e=this.$el&&this.$el.querySelector&&this.$el.querySelector(this.focusedSelector);return Math.max(0,this.currentButtons.findIndex(t=>t===e))},setTabIndex(e){const{tabIndex:t}=this.$props;this.currentButtons.forEach((o,s)=>{o.tabIndex=s===e?t:-1}),this.getInternalButtons().forEach(e=>{e.tabIndex=-1})},onKeyDown(e){if(!1===this.$props.keyboardNavigation)return;const t=e.target;if(e.keyCode!==o.Keys.left&&e.keyCode!==o.Keys.right||e.defaultPrevented||-1===this.currentButtons.findIndex(e=>e===t))return;const s=this.focusedIndex();e.keyCode===o.Keys.left?this.focusButton(s,s-1):this.focusButton(s,s+1)},focusButton(e,t){const{tabIndex:o}=this.$props,s=this.currentButtons[t];if(s){s.tabIndex=o,s.focus();const t=this.currentButtons[e];t&&(t.tabIndex=-1)}},initOverflow(e,t){let o=200;const s=[],i=[];Array.from(e.children).forEach((e,t)=>{o+=Math.ceil(e.clientWidth),o<=this.$refs.toolbar.offsetWidth-50?s.push(this.visibleToolsRef[t]):i.push(this.visibleToolsRef[t])}),this.visibleToolsRef=s,this.overFlowToolsRef=i},checkOverflow(){if("scroll"===this.$props.overflow){const e=this.scrollContentRef;e&&(this.isOverflowing=e.scrollWidth>e.clientWidth||e.scrollHeight>e.clientHeight,this.isOverflowing?this.onContentScroll():(this.isScrollStartPosition=!0,this.isScrollEndPosition=!0))}else if("section"===this.$props.overflow||void 0===this.$props.overflow){const e=this.$refs.toolbar;let t=0;if(e){const o=e.offsetWidth,s=parseInt(window.getComputedStyle(e).gap||"0",10),i=Array.from(e.children).reduce((e,t)=>e+=Math.ceil(t.clientWidth),0),n=Array.from(e.children).length,r=2*s;if(t=36+Number(i)+n*s+r,t>o){const e=[...this.visibleToolsRef],t=e.pop();this.visibleToolsRef=e,t&&(this.overFlowToolsRef=[t,...this.overFlowToolsRef]),this.lastToolbarWidthRef=o}else if(o>this.lastToolbarWidthRef+s*n/2.75){const e=[...this.overFlowToolsRef],t=e.shift();t&&this.lastToolbarWidthRef+s*n>30&&(this.overFlowToolsRef=e,this.visibleToolsRef=[...this.visibleToolsRef,t]),this.lastToolbarWidthRef=o}else this.$forceUpdate()}}},onWindowResize(e){window.requestAnimationFrame(()=>{const t=this.$el;if(this.overFlowOpened=!1,!t)return;const o=t.offsetWidth,s=t.offsetHeight;if(this.offsetWidth!==o||this.offsetHeight!==s){this.offsetWidth=o,this.offsetHeight=s;const t={offsetWidth:this.offsetWidth,offsetHeight:this.offsetHeight};this.$emit("resize",{target:this,...t,nativeEvent:e})}this.checkOverflow()})},onContentScroll(e){const t=this.scrollContentRef;if(e&&t){let o,s;o="next"!==e&&(t.scrollLeft<=this.$props.buttonScrollSpeed||0===t.scrollLeft),s="prev"!==e&&(t.scrollLeft+t.clientWidth+this.$props.buttonScrollSpeed>=t.scrollWidth||t.scrollLeft+t.clientWidth===t.scrollWidth),this.isScrollStartPosition=!!o,this.isScrollEndPosition=!!s}else this.isScrollStartPosition=!0,this.isScrollEndPosition=!1},onToggleoverflow(e){this.overFlowOpened=e}}}),H=t.defineComponent({name:"KendoToolbarItem",methods:{element(){return this.$el}},render(){const e=o.getDefaultSlots(this);return t.createVNode("div",{class:"k-toolbar-item"},[e])}}),G=t.defineComponent({name:"KendoToolbarItem",render:()=>t.createVNode("span",{class:"k-spacer"},null)});let J=function(e){return e.WebSpeech="WebSpeech",e.None="None",e}({});const Q=t.defineComponent({name:"KendoSpeechToTextButton",props:{lang:{type:String,default:"en-US"},continuous:{type:Boolean,default:!1},interimResults:{type:Boolean,default:!1},maxAlternatives:{type:Number,default:1},integrationMode:{type:String,default:J.WebSpeech},onStart:{type:Function},onResult:{type:Function},onEnd:{type:Function},onError:{type:Function},svgIcon:{type:Object,default:s.microphoneOutlineIcon},iconSize:{type:String},disabled:{type:Boolean,default:void 0},size:String,rounded:String,fillMode:String,themeColor:String,title:{type:String,default:"Speech to Text Button"},ariaLabel:{type:String,default:"Start speech recognition"}},setup(e,{emit:o,expose:s}){const i=t.ref(null),n=t.ref(!1),l=()=>e.integrationMode!==J.None,a="undefined"==typeof window||"webkitSpeechRecognition"in window||"SpeechRecognition"in window||(e.onError&&e.onError({errorMessage:"Speech Recognition API is not supported in this browser."}),!1),d=()=>{var e;n.value||(l()&&(null==(e=i.value)||e.start()),n.value=!0)},c=()=>{var e;n.value&&(l()&&(null==(e=i.value)||e.stop()),n.value=!1)},u=async()=>{n.value||(e.onStart&&await e.onStart(),d())},p=t=>{const s=t.results,i=s[s.length-1],n=Array.from(i).map(e=>({transcript:e.transcript,confidence:e.confidence})),r={isFinal:i.isFinal,alternatives:n};e.onResult&&e.onResult(r),o("result",r)},h=async()=>{n.value&&(e.onEnd&&await e.onEnd(),c())},m=t=>{n.value=!1;const s={errorMessage:t.error||t.errorMessage||"Unknown error"};e.onError&&e.onError(s),o("error",s)},f=()=>{var t;a&&e.integrationMode===J.WebSpeech&&(null!=(t=i.value)&&t.isActive()&&c(),i.value=function(e){return new r.KendoSpeechRecognition(e)}({lang:e.lang,continuous:e.continuous,interimResults:e.interimResults,integrationMode:e.integrationMode,maxAlternatives:e.maxAlternatives,events:{start:u,result:p,end:h,error:m}}))};return t.watch(()=>({lang:e.lang,continuous:e.continuous,interimResults:e.interimResults,integrationMode:e.integrationMode,maxAlternatives:e.maxAlternatives}),()=>{f()},{deep:!0}),t.onMounted(()=>{f()}),t.onUnmounted(()=>{var e;null!=(e=i.value)&&e.isInActiveState&&c()}),s({start:d,stop:c,abort:()=>{var e;n.value&&l()&&(null==(e=i.value)||e.abort(),n.value=!1)},isActive:()=>{var e;return null==(e=i.value)?void 0:e.isActive()}}),{clickHandler:()=>{a&&(n.value?h():u())},isInActiveState:n}},render(){const{ariaLabel:e,svgIcon:o,fillMode:i,rounded:n,size:r,disabled:l,themeColor:a,iconSize:d,title:c}=this.$props,{className:u,style:h,id:m}=this.$attrs,f=t.computed(()=>["k-speech-to-text-button",u,{"k-listening":this.isInActiveState}]),g=t.computed(()=>this.isInActiveState?s.stopSmIcon:o||s.microphoneOutlineIcon);return t.createVNode(p,{id:m,style:h,class:f.value,onClick:this.clickHandler,svgIcon:g.value,iconSize:d,fillMode:i,rounded:n,size:r,themeColor:a,"aria-label":e,disabled:l,title:c},null)}}),X=t.defineComponent({name:"KendoSegmentedControl",emits:{change:e=>!0},props:{items:{type:Array,default:()=>[]},size:String,layoutMode:{type:String,default:"compact"},value:String,defaultValue:String,itemTemplate:[String,Function]},data(){return{interactionState:{selectedValue:this.$props.defaultValue,hoveredValue:void 0,focusedValue:void 0}}},computed:{selectedItemValue(){var e;return null!=(e=this.$props.value)?e:this.interactionState.selectedValue},sizeClass(){const e=this.$props.size;return e?o.kendoThemeMaps.sizeMap[e]:void 0},buttonClass(){return(e,t,s)=>o.classNames("k-segmented-control-button",{"k-selected":s,"k-hover":this.interactionState.hoveredValue===e&&!t,"k-focus":this.interactionState.focusedValue===e&&!t,"k-disabled":t})},iconClass:()=>(e,t)=>o.classNames("k-segmented-control-button-icon",{...e&&{[e]:t}})},watch:{selectedItemValue(){t.nextTick(()=>{this.updateThumbPosition()})}},created(){o.validatePackage(c),this._resizeObserver=null},mounted(){t.nextTick(()=>{this.updateThumbPosition()}),this._resizeObserver=new ResizeObserver(()=>{this.updateThumbPosition()});const e=this.$refs.element;e&&this._resizeObserver.observe(e)},beforeUnmount(){this._resizeObserver&&(this._resizeObserver.disconnect(),this._resizeObserver=null)},methods:{updateThumbPosition(){const e=this.$refs.element,t=this.$refs.thumb;if(!e||!t)return;const o=e.querySelector(".k-segmented-control-button.k-selected");if(!o)return;const s=e.offsetWidth,{offsetWidth:i,offsetLeft:n}=o,r=`${n}px`,l=s-n-i+"px";t.style.left!==r&&(t.style.left=r),t.style.right!==l&&(t.style.right=l)},updateState(e){this.interactionState={...this.interactionState,...e}},handleButtonClick(e,t){var o,s;if(!e.disabled){if(this.selectedItemValue===e.value)return void(null==(o=e.onClick)||o.call(e,t));void 0===this.$props.value&&e&&this.updateState({selectedValue:e.value}),this.$emit("change",e.value),null==(s=e.onClick)||s.call(e,t)}},handleMouseEnter(e,t,o,s){t||this.updateState({hoveredValue:e}),null==o||o(s)},handleMouseLeave(e,t){this.updateState({hoveredValue:void 0}),null==e||e(t)},handleFocus(e,t,o){this.updateState({focusedValue:e}),null==t||t(o)},handleBlur(e,t){this.updateState({focusedValue:void 0}),null==e||e(t)}},render(){const{items:e,layoutMode:s,itemTemplate:i}=this.$props,n=this.sizeClass,r=this.selectedItemValue,l=i?o.templateRendering.call(this,i,{}):void 0;return t.createVNode("div",{ref:"element",role:"group",class:o.classNames("k-segmented-control",n&&`k-segmented-control-${n}`,{"k-segmented-control-stretched":"stretch"===s})},[t.createVNode("div",{class:"k-segmented-control-thumb",ref:"thumb","aria-hidden":"true"},null),(e||[]).map(e=>{const{value:s,disabled:i,text:n,svgIcon:a,iconClassName:d,type:c="button",onMouseEnter:u,onMouseLeave:p,onFocus:h,onBlur:m,title:f,dir:g,"aria-label":b}=e,v=r===s;return t.createVNode("button",{key:s,type:c,class:this.buttonClass(s,i,v),disabled:i,"aria-disabled":i||void 0,"aria-pressed":v,title:f,dir:g,"aria-label":b,onClick:t=>this.handleButtonClick(e,t),onMouseenter:e=>this.handleMouseEnter(s,i,u,e),onMouseleave:e=>this.handleMouseLeave(p,e),onFocus:e=>this.handleFocus(s,h,e),onBlur:e=>this.handleBlur(m,e)},[o.getTemplate.call(this,{h:t.h,template:l,defaultRendering:t.createVNode(t.Fragment,null,[a&&t.createVNode(o.Icon,{class:this.iconClass(d,v),icon:a},null),t.createVNode("span",{class:"k-segmented-control-button-text"},[n])]),additionalProps:{item:e}})])})])}});const Y=[".k-input",".k-picker",".k-checkbox",".k-radio",".k-switch",".k-rating",".k-slider"],Z=(e,t)=>{const o=e.element,s=o instanceof HTMLInputElement||o instanceof HTMLSelectElement||o instanceof HTMLTextAreaElement?o:o.querySelector("input, select, textarea");if(s){if(s instanceof HTMLSelectElement){const e=Array.from(s.querySelectorAll("option")),o=e.find(e=>e.textContent===t)||e.find(e=>{var o;return null==(o=e.textContent)?void 0:o.includes(t)});o&&(s.selectedIndex=e.indexOf(o))}else if(s instanceof HTMLInputElement&&"date"===s.type){const e=new Date(t);s.value=isNaN(e.getTime())?t:e.toISOString().split("T")[0]}else s.value=t;s.dispatchEvent(new CustomEvent("input",{bubbles:!0,detail:{fromSmartComponents:!0}})),s.dispatchEvent(new CustomEvent("change",{bubbles:!0,detail:{fromSmartComponents:!0}}))}},ee=t.defineComponent({name:"KendoSmartPasteButton",emits:{click:e=>!0},props:{disabled:{type:Boolean,default:void 0},fillMode:{type:String,default:"solid"},rounded:{type:String,default:"medium"},size:{type:String,default:"medium"},svgIcon:{type:Object,default:()=>s.pasteSparkleIcon},themeColor:String,formFields:Array,togglable:{type:Boolean,default:!1},selected:{type:Boolean,default:void 0},icon:String,iconClass:String,imageUrl:String,imageAlt:String,tabIndex:Number,id:String,type:{type:String,default:"button"},role:String,ariaLabel:String,ariaPressed:Boolean,title:String,dir:String,iconSize:String},created(){o.validatePackage(c),this.smartPasteInstance=null},methods:{getSmartPasteInstance(){return this.getButtonElement()?(this.smartPasteInstance||(this.smartPasteInstance=new l.KendoSmartPaste({getElement:()=>this.getButtonElement(),customInputs:Y.map(e=>({identifier:e})),getSmartPasteField:e=>{const t=(e=>{const t=e.querySelector("input, select, textarea");return(null==t?void 0:t.getAttribute("name"))||(null==t?void 0:t.getAttribute("id"))||e.getAttribute("id")||null})(e.element);return t?{...e,field:t}:e},setKendoInputValue:Z})),this.smartPasteInstance):null},getButtonElement(){var e;const t=this.$refs.buttonRef;return null!=(e=null==t?void 0:t.$el)?e:null},extractFormConfig(){const e=this.getSmartPasteInstance();if(!e)return this.$props.formFields;const t=e.extractFormConfig().reduce((e,t)=>e.some(e=>e.field===t.field)?e:[...e,t],[]);return this.$props.formFields?this.$props.formFields.map(e=>{const o=t.find(t=>t.field===e.field);if(o){const t={...o,...e,element:o.element};return"kendo-input"===o.type&&(t.type="kendo-input"),t}return e}):t},async extractClipboard(){try{return await navigator.clipboard.readText()}catch{return""}},populateFormFieldsInternal(e,t){if(!e||!t)return;const s=Object.entries(e).reduce((e,[t,o])=>(null!=o&&(e[t]=o),e),{}),i=this.getButtonElement();if(i){const e=o.getKendoPasteEventTarget(i);o.dispatchKendoPasteEvent(e,s)}const n=this.getSmartPasteInstance();n&&n.populateFormFields({fieldValues:s},t)},async handleClick(e){if(this.$props.disabled)return;const t=await this.extractClipboard(),o=this.extractFormConfig(),s=null==o?void 0:o.map(e=>{var t,o,s;const{element:i,...n}=e,r=null==(t=this.$props.formFields)?void 0:t.find(e=>e.field===n.field);return{...n,type:null!=(o=null==r?void 0:r.type)?o:n.type,field:n.field||"",allowedValues:null!=(s=n.allowedValues)?s:[]}}),i={event:e,requestData:{content:t,formFields:s},setResponse:e=>{null!=e&&e.fieldValues&&this.populateFormFieldsInternal(e.fieldValues,o)}};this.$emit("click",i)}},render(){const e=o.getDefaultSlots(this),{disabled:s,fillMode:i,rounded:n,size:r,svgIcon:l,themeColor:a,togglable:d,selected:c,icon:u,iconClass:h,imageUrl:m,imageAlt:f,tabIndex:g,id:b,type:v,role:k,ariaLabel:y,ariaPressed:$,title:S,dir:I,iconSize:C}=this.$props,x={ref:"buttonRef",disabled:s,fillMode:i,rounded:n,size:r,svgIcon:l,themeColor:a,togglable:d,selected:c,icon:u,iconClass:h,imageUrl:m,imageAlt:f,tabIndex:g,id:b,type:v,role:k,ariaLabel:y,ariaPressed:$,title:S,dir:I,iconSize:C,onClick:this.handleClick};return e?t.createVNode(p,x,function(e){return"function"==typeof e||"[object Object]"===Object.prototype.toString.call(e)&&!t.isVNode(e)}(e)?e:{default:()=>[e]}):t.createVNode(p,x,null)}});e.Button=p,e.ButtonGroup=f,e.ButtonItem=V,e.Chip=y,e.ChipList=$,e.DropDownButton=P,e.FloatingActionButton=F,e.FloatingActionButtonItem=S,e.SegmentedControl=X,e.SmartPasteButton=ee,e.SpeechToTextButton=Q,e.SpeechToTextButtonMode=J,e.SplitButton=K,e.Toolbar=q,e.ToolbarItem=H,e.ToolbarSeparator=z,e.ToolbarSpacer=G});
|
package/index.d.mts
CHANGED
|
@@ -35,5 +35,6 @@ import { ToolbarSpacer } from './toolbar/tools/ToolbarSpacer.js';
|
|
|
35
35
|
export * from './FloatingActionButton/models/events.js';
|
|
36
36
|
export * from './SpeechToText/SpeechToTextButton.js';
|
|
37
37
|
export * from './SmartPasteButton/index.js';
|
|
38
|
+
export { SegmentedControl, type SegmentedControlProps, type SegmentedItemProps } from './SegmentedControl/SegmentedControl.js';
|
|
38
39
|
export type { ButtonData, ButtonComputed, ButtonMethods } from './Button.js';
|
|
39
40
|
export { Toolbar, type ToolbarProps, ToolbarItem, ToolbarSeparator, type ToolbarResizeEvent, ToolbarSpacer, Button, type ButtonProps, ButtonGroup, type ButtonGroupProps, type ButtonFocusEvent, type ButtonBlurEvent, SplitButton, DropDownButton, type DropDownButtonProps, type ButtonItemInterface, ButtonItem, type ButtonItemProps, type SplitButtonFocusEvent, type SplitButtonBlurEvent, type SplitButtonClickEvent, type SplitButtonOpenEvent, type SplitButtonCloseEvent, type SplitButtonItemClickEvent, type DropDownButtonFocusEvent, type DropDownButtonBlurEvent, type DropDownButtonOpenEvent, type DropDownButtonCloseEvent, type DropDownButtonItemClickEvent, type ButtonsPopupSettings, Chip, type ChipProps, type ChipHandle, type ChipRemoveEvent, type ChipMouseEvent, type ChipKeyboardEvent, type ChipFocusEvent, ChipList, type ChipListProps, type ChipListHandle, type ChipListDataChangeEvent, type ChipListChangeEvent, FloatingActionButton, type FloatingActionButtonProps, type FloatingActionButtonHandle, FloatingActionButtonItem, type FloatingActionButtonItemHandle, type FloatingActionButtonItemProps, type FloatingActionButtonPopupSettings, type FloatingActionButtonAlign, type FloatingActionButtonAlignOffset, type FloatingActionButtonPositionMode, type FloatingActionButtonSize, type FloatingActionButtonThemeColor };
|
package/index.d.ts
CHANGED
|
@@ -35,5 +35,6 @@ import { ToolbarSpacer } from './toolbar/tools/ToolbarSpacer';
|
|
|
35
35
|
export * from './FloatingActionButton/models/events';
|
|
36
36
|
export * from './SpeechToText/SpeechToTextButton';
|
|
37
37
|
export * from './SmartPasteButton';
|
|
38
|
+
export { SegmentedControl, type SegmentedControlProps, type SegmentedItemProps } from './SegmentedControl/SegmentedControl';
|
|
38
39
|
export type { ButtonData, ButtonComputed, ButtonMethods } from './Button';
|
|
39
40
|
export { Toolbar, type ToolbarProps, ToolbarItem, ToolbarSeparator, type ToolbarResizeEvent, ToolbarSpacer, Button, type ButtonProps, ButtonGroup, type ButtonGroupProps, type ButtonFocusEvent, type ButtonBlurEvent, SplitButton, DropDownButton, type DropDownButtonProps, type ButtonItemInterface, ButtonItem, type ButtonItemProps, type SplitButtonFocusEvent, type SplitButtonBlurEvent, type SplitButtonClickEvent, type SplitButtonOpenEvent, type SplitButtonCloseEvent, type SplitButtonItemClickEvent, type DropDownButtonFocusEvent, type DropDownButtonBlurEvent, type DropDownButtonOpenEvent, type DropDownButtonCloseEvent, type DropDownButtonItemClickEvent, type ButtonsPopupSettings, Chip, type ChipProps, type ChipHandle, type ChipRemoveEvent, type ChipMouseEvent, type ChipKeyboardEvent, type ChipFocusEvent, ChipList, type ChipListProps, type ChipListHandle, type ChipListDataChangeEvent, type ChipListChangeEvent, FloatingActionButton, type FloatingActionButtonProps, type FloatingActionButtonHandle, FloatingActionButtonItem, type FloatingActionButtonItemHandle, type FloatingActionButtonItemProps, type FloatingActionButtonPopupSettings, type FloatingActionButtonAlign, type FloatingActionButtonAlignOffset, type FloatingActionButtonPositionMode, type FloatingActionButtonSize, type FloatingActionButtonThemeColor };
|
package/index.js
CHANGED
|
@@ -5,4 +5,4 @@
|
|
|
5
5
|
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
6
|
*-------------------------------------------------------------------------------------------
|
|
7
7
|
*/
|
|
8
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./Button.js"),e=require("./ButtonGroup.js"),r=require("./Chip/Chip.js"),n=require("./Chip/ChipList.js"),u=require("./FloatingActionButton/FloatingActionButton.js"),i=require("./FloatingActionButton/FloatingActionButtonItem.js"),a=require("./ListButton/SplitButton.js"),c=require("./ListButton/DropDownButton.js"),B=require("./ListButton/ButtonItem.js"),
|
|
8
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./Button.js"),e=require("./ButtonGroup.js"),r=require("./Chip/Chip.js"),n=require("./Chip/ChipList.js"),u=require("./FloatingActionButton/FloatingActionButton.js"),i=require("./FloatingActionButton/FloatingActionButtonItem.js"),a=require("./ListButton/SplitButton.js"),c=require("./ListButton/DropDownButton.js"),B=require("./ListButton/ButtonItem.js"),l=require("./toolbar/Toolbar.js"),p=require("./toolbar/tools/ToolbarItem.js"),s=require("./toolbar/tools/ToolbarSeparator.js"),T=require("./toolbar/tools/ToolbarSpacer.js"),t=require("./SpeechToText/SpeechToTextButton.js"),S=require("./SegmentedControl/SegmentedControl.js"),m=require("./SmartPasteButton/SmartPasteButton.js");exports.Button=o.Button;exports.ButtonGroup=e.ButtonGroup;exports.Chip=r.Chip;exports.ChipList=n.ChipList;exports.FloatingActionButton=u.FloatingActionButton;exports.FloatingActionButtonItem=i.FloatingActionButtonItem;exports.SplitButton=a.SplitButton;exports.DropDownButton=c.DropDownButton;exports.ButtonItem=B.ButtonItem;exports.Toolbar=l.Toolbar;exports.ToolbarItem=p.ToolbarItem;exports.ToolbarSeparator=s.ToolbarSeparator;exports.ToolbarSpacer=T.ToolbarSpacer;exports.SpeechToTextButton=t.SpeechToTextButton;exports.SpeechToTextButtonMode=t.SpeechToTextButtonMode;exports.SegmentedControl=S.SegmentedControl;exports.SmartPasteButton=m.SmartPasteButton;
|
package/index.mjs
CHANGED
|
@@ -8,33 +8,35 @@
|
|
|
8
8
|
import { Button as r } from "./Button.mjs";
|
|
9
9
|
import { ButtonGroup as p } from "./ButtonGroup.mjs";
|
|
10
10
|
import { Chip as x } from "./Chip/Chip.mjs";
|
|
11
|
-
import { ChipList as
|
|
11
|
+
import { ChipList as f } from "./Chip/ChipList.mjs";
|
|
12
12
|
import { FloatingActionButton as u } from "./FloatingActionButton/FloatingActionButton.mjs";
|
|
13
13
|
import { FloatingActionButtonItem as i } from "./FloatingActionButton/FloatingActionButtonItem.mjs";
|
|
14
|
-
import { SplitButton as
|
|
14
|
+
import { SplitButton as T } from "./ListButton/SplitButton.mjs";
|
|
15
15
|
import { DropDownButton as c } from "./ListButton/DropDownButton.mjs";
|
|
16
16
|
import { ButtonItem as h } from "./ListButton/ButtonItem.mjs";
|
|
17
|
-
import { Toolbar as
|
|
18
|
-
import { ToolbarItem as
|
|
19
|
-
import { ToolbarSeparator as
|
|
20
|
-
import { ToolbarSpacer as
|
|
17
|
+
import { Toolbar as C } from "./toolbar/Toolbar.mjs";
|
|
18
|
+
import { ToolbarItem as d } from "./toolbar/tools/ToolbarItem.mjs";
|
|
19
|
+
import { ToolbarSeparator as A } from "./toolbar/tools/ToolbarSeparator.mjs";
|
|
20
|
+
import { ToolbarSpacer as F } from "./toolbar/tools/ToolbarSpacer.mjs";
|
|
21
21
|
import { SpeechToTextButton as G, SpeechToTextButtonMode as L } from "./SpeechToText/SpeechToTextButton.mjs";
|
|
22
|
-
import {
|
|
22
|
+
import { SegmentedControl as P } from "./SegmentedControl/SegmentedControl.mjs";
|
|
23
|
+
import { SmartPasteButton as k } from "./SmartPasteButton/SmartPasteButton.mjs";
|
|
23
24
|
export {
|
|
24
25
|
r as Button,
|
|
25
26
|
p as ButtonGroup,
|
|
26
27
|
h as ButtonItem,
|
|
27
28
|
x as Chip,
|
|
28
|
-
|
|
29
|
+
f as ChipList,
|
|
29
30
|
c as DropDownButton,
|
|
30
31
|
u as FloatingActionButton,
|
|
31
32
|
i as FloatingActionButtonItem,
|
|
32
|
-
P as
|
|
33
|
+
P as SegmentedControl,
|
|
34
|
+
k as SmartPasteButton,
|
|
33
35
|
G as SpeechToTextButton,
|
|
34
36
|
L as SpeechToTextButtonMode,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
T as SplitButton,
|
|
38
|
+
C as Toolbar,
|
|
39
|
+
d as ToolbarItem,
|
|
40
|
+
A as ToolbarSeparator,
|
|
41
|
+
F as ToolbarSpacer
|
|
40
42
|
};
|
package/package-metadata.js
CHANGED
|
@@ -5,4 +5,4 @@
|
|
|
5
5
|
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
6
|
*-------------------------------------------------------------------------------------------
|
|
7
7
|
*/
|
|
8
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e={name:"@progress/kendo-vue-buttons",productName:"Kendo UI for Vue",productCode:"KENDOUIVUE",productCodes:["KENDOUIVUE"],publishDate:
|
|
8
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e={name:"@progress/kendo-vue-buttons",productName:"Kendo UI for Vue",productCode:"KENDOUIVUE",productCodes:["KENDOUIVUE"],publishDate: 1776959757,version:"8.3.0-develop.3",licensingDocsUrl:"https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning"};exports.packageMetadata=e;
|
package/package-metadata.mjs
CHANGED
|
@@ -10,8 +10,8 @@ const e = {
|
|
|
10
10
|
productName: "Kendo UI for Vue",
|
|
11
11
|
productCode: "KENDOUIVUE",
|
|
12
12
|
productCodes: ["KENDOUIVUE"],
|
|
13
|
-
publishDate:
|
|
14
|
-
version: "8.3.0-develop.
|
|
13
|
+
publishDate: 1776959757,
|
|
14
|
+
version: "8.3.0-develop.3",
|
|
15
15
|
licensingDocsUrl: "https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning"
|
|
16
16
|
};
|
|
17
17
|
export {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-vue-buttons",
|
|
3
|
-
"version": "8.3.0-develop.
|
|
3
|
+
"version": "8.3.0-develop.3",
|
|
4
4
|
"description": "TODO",
|
|
5
5
|
"author": "Progress",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
"peerDependencies": {
|
|
27
27
|
"@progress/kendo-licensing": "^1.7.2",
|
|
28
28
|
"@progress/kendo-smartpaste-common": "^1.0.0",
|
|
29
|
-
"@progress/kendo-vue-common": "8.3.0-develop.
|
|
30
|
-
"@progress/kendo-vue-intl": "8.3.0-develop.
|
|
31
|
-
"@progress/kendo-vue-popup": "8.3.0-develop.
|
|
29
|
+
"@progress/kendo-vue-common": "8.3.0-develop.3",
|
|
30
|
+
"@progress/kendo-vue-intl": "8.3.0-develop.3",
|
|
31
|
+
"@progress/kendo-vue-popup": "8.3.0-develop.3",
|
|
32
32
|
"@progress/kendo-webspeech-common": "^1.0.1",
|
|
33
33
|
"@progress/kendo-svg-icons": "^4.4.0",
|
|
34
34
|
"vue": "^3.0.2"
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"package": {
|
|
51
51
|
"productName": "Kendo UI for Vue",
|
|
52
52
|
"productCode": "KENDOUIVUE",
|
|
53
|
-
"publishDate":
|
|
53
|
+
"publishDate": 1776959757,
|
|
54
54
|
"licensingDocsUrl": "https://www.telerik.com/kendo-vue-ui/my-license/?utm_medium=product&utm_source=kendovue&utm_campaign=kendo-ui-vue-purchase-license-keys-warning"
|
|
55
55
|
}
|
|
56
56
|
},
|