@progress/kendo-vue-dropdowns 5.3.0-dev.202409130647 → 5.3.0-develop.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/AutoComplete/AutoComplete.js +8 -0
  2. package/AutoComplete/AutoComplete.mjs +526 -0
  3. package/ComboBox/ComboBox.js +8 -0
  4. package/ComboBox/ComboBox.mjs +776 -0
  5. package/DropDownList/DropDownList.js +8 -0
  6. package/DropDownList/DropDownList.mjs +781 -0
  7. package/DropDownTree/DropDownTree.js +8 -0
  8. package/DropDownTree/DropDownTree.mjs +709 -0
  9. package/DropDownTree/ListNoData.js +8 -0
  10. package/DropDownTree/ListNoData.mjs +21 -0
  11. package/MultiSelect/MultiSelect.js +8 -0
  12. package/MultiSelect/MultiSelect.mjs +872 -0
  13. package/MultiSelect/TagList.js +8 -0
  14. package/MultiSelect/TagList.mjs +119 -0
  15. package/MultiSelectTree/MultiSelectTree.js +8 -0
  16. package/MultiSelectTree/MultiSelectTree.mjs +759 -0
  17. package/MultiSelectTree/utils.js +8 -0
  18. package/MultiSelectTree/utils.mjs +73 -0
  19. package/README.md +28 -43
  20. package/common/ClearButton.js +8 -0
  21. package/common/ClearButton.mjs +54 -0
  22. package/common/DropDownBase.js +8 -0
  23. package/common/DropDownBase.mjs +193 -0
  24. package/common/GroupStickyHeader.js +8 -0
  25. package/common/GroupStickyHeader.mjs +38 -0
  26. package/common/List.js +8 -0
  27. package/common/List.mjs +139 -0
  28. package/common/ListContainer.js +8 -0
  29. package/common/ListContainer.mjs +103 -0
  30. package/common/ListDefaultItem.js +8 -0
  31. package/common/ListDefaultItem.mjs +47 -0
  32. package/common/ListFilter.js +8 -0
  33. package/common/ListFilter.mjs +147 -0
  34. package/common/ListGroupItem.js +8 -0
  35. package/common/ListGroupItem.mjs +46 -0
  36. package/common/ListItem.js +8 -0
  37. package/common/ListItem.mjs +73 -0
  38. package/common/Navigation.js +8 -0
  39. package/common/Navigation.mjs +28 -0
  40. package/common/SearchBar.js +8 -0
  41. package/common/SearchBar.mjs +129 -0
  42. package/common/VirtualScroll.js +8 -0
  43. package/common/VirtualScroll.mjs +95 -0
  44. package/common/constants.js +8 -0
  45. package/common/constants.mjs +12 -0
  46. package/common/settings.js +8 -0
  47. package/common/settings.mjs +11 -0
  48. package/common/utils.js +8 -0
  49. package/common/utils.mjs +104 -0
  50. package/dist/cdn/js/kendo-vue-dropdowns.js +8 -1
  51. package/index.d.mts +4037 -0
  52. package/index.d.ts +4037 -0
  53. package/index.js +8 -0
  54. package/index.mjs +25 -0
  55. package/messages/main.js +8 -0
  56. package/messages/main.mjs +26 -0
  57. package/package-metadata.js +8 -0
  58. package/package-metadata.mjs +18 -0
  59. package/package.json +24 -58
  60. package/dist/es/AutoComplete/AutoComplete.d.ts +0 -107
  61. package/dist/es/AutoComplete/AutoComplete.js +0 -825
  62. package/dist/es/AutoComplete/AutoCompleteProps.d.ts +0 -234
  63. package/dist/es/AutoComplete/AutoCompleteProps.js +0 -2
  64. package/dist/es/ComboBox/ComboBox.d.ts +0 -99
  65. package/dist/es/ComboBox/ComboBox.js +0 -1315
  66. package/dist/es/ComboBox/ComboBoxProps.d.ts +0 -277
  67. package/dist/es/ComboBox/ComboBoxProps.js +0 -2
  68. package/dist/es/DropDownList/DropDownList.d.ts +0 -103
  69. package/dist/es/DropDownList/DropDownList.js +0 -1314
  70. package/dist/es/DropDownList/DropDownListProps.d.ts +0 -307
  71. package/dist/es/DropDownList/DropDownListProps.js +0 -2
  72. package/dist/es/DropDownTree/DropDownTree.d.ts +0 -49
  73. package/dist/es/DropDownTree/DropDownTree.js +0 -1090
  74. package/dist/es/DropDownTree/DropDownTreeProps.d.ts +0 -301
  75. package/dist/es/DropDownTree/DropDownTreeProps.js +0 -2
  76. package/dist/es/DropDownTree/ListNoData.d.ts +0 -42
  77. package/dist/es/DropDownTree/ListNoData.js +0 -32
  78. package/dist/es/MultiSelect/MultiSelect.d.ts +0 -115
  79. package/dist/es/MultiSelect/MultiSelect.js +0 -1515
  80. package/dist/es/MultiSelect/MultiSelectProps.d.ts +0 -290
  81. package/dist/es/MultiSelect/MultiSelectProps.js +0 -2
  82. package/dist/es/MultiSelect/TagList.d.ts +0 -54
  83. package/dist/es/MultiSelect/TagList.js +0 -176
  84. package/dist/es/MultiSelectTree/MultiSelectTree.d.ts +0 -48
  85. package/dist/es/MultiSelectTree/MultiSelectTree.js +0 -1220
  86. package/dist/es/MultiSelectTree/MultiSelectTreeProps.d.ts +0 -322
  87. package/dist/es/MultiSelectTree/MultiSelectTreeProps.js +0 -2
  88. package/dist/es/MultiSelectTree/utils.d.ts +0 -17
  89. package/dist/es/MultiSelectTree/utils.js +0 -109
  90. package/dist/es/additionalTypes.ts +0 -21
  91. package/dist/es/common/ClearButton.d.ts +0 -21
  92. package/dist/es/common/ClearButton.js +0 -73
  93. package/dist/es/common/DropDownBase.d.ts +0 -95
  94. package/dist/es/common/DropDownBase.js +0 -298
  95. package/dist/es/common/GroupStickyHeader.d.ts +0 -32
  96. package/dist/es/common/GroupStickyHeader.js +0 -60
  97. package/dist/es/common/List.d.ts +0 -60
  98. package/dist/es/common/List.js +0 -201
  99. package/dist/es/common/ListContainer.d.ts +0 -40
  100. package/dist/es/common/ListContainer.js +0 -161
  101. package/dist/es/common/ListDefaultItem.d.ts +0 -29
  102. package/dist/es/common/ListDefaultItem.js +0 -60
  103. package/dist/es/common/ListFilter.d.ts +0 -49
  104. package/dist/es/common/ListFilter.js +0 -175
  105. package/dist/es/common/ListGroupItem.d.ts +0 -41
  106. package/dist/es/common/ListGroupItem.js +0 -71
  107. package/dist/es/common/ListItem.d.ts +0 -71
  108. package/dist/es/common/ListItem.js +0 -101
  109. package/dist/es/common/Navigation.d.ts +0 -12
  110. package/dist/es/common/Navigation.js +0 -34
  111. package/dist/es/common/SearchBar.d.ts +0 -66
  112. package/dist/es/common/SearchBar.js +0 -177
  113. package/dist/es/common/VirtualScroll.d.ts +0 -42
  114. package/dist/es/common/VirtualScroll.js +0 -163
  115. package/dist/es/common/constants.d.ts +0 -4
  116. package/dist/es/common/constants.js +0 -4
  117. package/dist/es/common/events.d.ts +0 -63
  118. package/dist/es/common/events.js +0 -1
  119. package/dist/es/common/filterDescriptor.d.ts +0 -41
  120. package/dist/es/common/filterDescriptor.js +0 -2
  121. package/dist/es/common/settings.d.ts +0 -107
  122. package/dist/es/common/settings.js +0 -8
  123. package/dist/es/common/utils.d.ts +0 -70
  124. package/dist/es/common/utils.js +0 -202
  125. package/dist/es/main.d.ts +0 -18
  126. package/dist/es/main.js +0 -10
  127. package/dist/es/messages/main.d.ts +0 -40
  128. package/dist/es/messages/main.js +0 -41
  129. package/dist/es/package-metadata.d.ts +0 -5
  130. package/dist/es/package-metadata.js +0 -11
  131. package/dist/esm/AutoComplete/AutoComplete.d.ts +0 -107
  132. package/dist/esm/AutoComplete/AutoComplete.js +0 -825
  133. package/dist/esm/AutoComplete/AutoCompleteProps.d.ts +0 -234
  134. package/dist/esm/AutoComplete/AutoCompleteProps.js +0 -2
  135. package/dist/esm/ComboBox/ComboBox.d.ts +0 -99
  136. package/dist/esm/ComboBox/ComboBox.js +0 -1315
  137. package/dist/esm/ComboBox/ComboBoxProps.d.ts +0 -277
  138. package/dist/esm/ComboBox/ComboBoxProps.js +0 -2
  139. package/dist/esm/DropDownList/DropDownList.d.ts +0 -103
  140. package/dist/esm/DropDownList/DropDownList.js +0 -1314
  141. package/dist/esm/DropDownList/DropDownListProps.d.ts +0 -307
  142. package/dist/esm/DropDownList/DropDownListProps.js +0 -2
  143. package/dist/esm/DropDownTree/DropDownTree.d.ts +0 -49
  144. package/dist/esm/DropDownTree/DropDownTree.js +0 -1090
  145. package/dist/esm/DropDownTree/DropDownTreeProps.d.ts +0 -301
  146. package/dist/esm/DropDownTree/DropDownTreeProps.js +0 -2
  147. package/dist/esm/DropDownTree/ListNoData.d.ts +0 -42
  148. package/dist/esm/DropDownTree/ListNoData.js +0 -32
  149. package/dist/esm/MultiSelect/MultiSelect.d.ts +0 -115
  150. package/dist/esm/MultiSelect/MultiSelect.js +0 -1515
  151. package/dist/esm/MultiSelect/MultiSelectProps.d.ts +0 -290
  152. package/dist/esm/MultiSelect/MultiSelectProps.js +0 -2
  153. package/dist/esm/MultiSelect/TagList.d.ts +0 -54
  154. package/dist/esm/MultiSelect/TagList.js +0 -176
  155. package/dist/esm/MultiSelectTree/MultiSelectTree.d.ts +0 -48
  156. package/dist/esm/MultiSelectTree/MultiSelectTree.js +0 -1220
  157. package/dist/esm/MultiSelectTree/MultiSelectTreeProps.d.ts +0 -322
  158. package/dist/esm/MultiSelectTree/MultiSelectTreeProps.js +0 -2
  159. package/dist/esm/MultiSelectTree/utils.d.ts +0 -17
  160. package/dist/esm/MultiSelectTree/utils.js +0 -109
  161. package/dist/esm/additionalTypes.ts +0 -21
  162. package/dist/esm/common/ClearButton.d.ts +0 -21
  163. package/dist/esm/common/ClearButton.js +0 -73
  164. package/dist/esm/common/DropDownBase.d.ts +0 -95
  165. package/dist/esm/common/DropDownBase.js +0 -298
  166. package/dist/esm/common/GroupStickyHeader.d.ts +0 -32
  167. package/dist/esm/common/GroupStickyHeader.js +0 -60
  168. package/dist/esm/common/List.d.ts +0 -60
  169. package/dist/esm/common/List.js +0 -201
  170. package/dist/esm/common/ListContainer.d.ts +0 -40
  171. package/dist/esm/common/ListContainer.js +0 -161
  172. package/dist/esm/common/ListDefaultItem.d.ts +0 -29
  173. package/dist/esm/common/ListDefaultItem.js +0 -60
  174. package/dist/esm/common/ListFilter.d.ts +0 -49
  175. package/dist/esm/common/ListFilter.js +0 -175
  176. package/dist/esm/common/ListGroupItem.d.ts +0 -41
  177. package/dist/esm/common/ListGroupItem.js +0 -71
  178. package/dist/esm/common/ListItem.d.ts +0 -71
  179. package/dist/esm/common/ListItem.js +0 -101
  180. package/dist/esm/common/Navigation.d.ts +0 -12
  181. package/dist/esm/common/Navigation.js +0 -34
  182. package/dist/esm/common/SearchBar.d.ts +0 -66
  183. package/dist/esm/common/SearchBar.js +0 -177
  184. package/dist/esm/common/VirtualScroll.d.ts +0 -42
  185. package/dist/esm/common/VirtualScroll.js +0 -163
  186. package/dist/esm/common/constants.d.ts +0 -4
  187. package/dist/esm/common/constants.js +0 -4
  188. package/dist/esm/common/events.d.ts +0 -63
  189. package/dist/esm/common/events.js +0 -1
  190. package/dist/esm/common/filterDescriptor.d.ts +0 -41
  191. package/dist/esm/common/filterDescriptor.js +0 -2
  192. package/dist/esm/common/settings.d.ts +0 -107
  193. package/dist/esm/common/settings.js +0 -8
  194. package/dist/esm/common/utils.d.ts +0 -70
  195. package/dist/esm/common/utils.js +0 -202
  196. package/dist/esm/main.d.ts +0 -18
  197. package/dist/esm/main.js +0 -10
  198. package/dist/esm/messages/main.d.ts +0 -40
  199. package/dist/esm/messages/main.js +0 -41
  200. package/dist/esm/package-metadata.d.ts +0 -5
  201. package/dist/esm/package-metadata.js +0 -11
  202. package/dist/esm/package.json +0 -3
  203. package/dist/npm/AutoComplete/AutoComplete.d.ts +0 -107
  204. package/dist/npm/AutoComplete/AutoComplete.js +0 -832
  205. package/dist/npm/AutoComplete/AutoCompleteProps.d.ts +0 -234
  206. package/dist/npm/AutoComplete/AutoCompleteProps.js +0 -3
  207. package/dist/npm/ComboBox/ComboBox.d.ts +0 -99
  208. package/dist/npm/ComboBox/ComboBox.js +0 -1322
  209. package/dist/npm/ComboBox/ComboBoxProps.d.ts +0 -277
  210. package/dist/npm/ComboBox/ComboBoxProps.js +0 -3
  211. package/dist/npm/DropDownList/DropDownList.d.ts +0 -103
  212. package/dist/npm/DropDownList/DropDownList.js +0 -1321
  213. package/dist/npm/DropDownList/DropDownListProps.d.ts +0 -307
  214. package/dist/npm/DropDownList/DropDownListProps.js +0 -3
  215. package/dist/npm/DropDownTree/DropDownTree.d.ts +0 -49
  216. package/dist/npm/DropDownTree/DropDownTree.js +0 -1095
  217. package/dist/npm/DropDownTree/DropDownTreeProps.d.ts +0 -301
  218. package/dist/npm/DropDownTree/DropDownTreeProps.js +0 -3
  219. package/dist/npm/DropDownTree/ListNoData.d.ts +0 -42
  220. package/dist/npm/DropDownTree/ListNoData.js +0 -39
  221. package/dist/npm/MultiSelect/MultiSelect.d.ts +0 -115
  222. package/dist/npm/MultiSelect/MultiSelect.js +0 -1522
  223. package/dist/npm/MultiSelect/MultiSelectProps.d.ts +0 -290
  224. package/dist/npm/MultiSelect/MultiSelectProps.js +0 -3
  225. package/dist/npm/MultiSelect/TagList.d.ts +0 -54
  226. package/dist/npm/MultiSelect/TagList.js +0 -183
  227. package/dist/npm/MultiSelectTree/MultiSelectTree.d.ts +0 -48
  228. package/dist/npm/MultiSelectTree/MultiSelectTree.js +0 -1227
  229. package/dist/npm/MultiSelectTree/MultiSelectTreeProps.d.ts +0 -322
  230. package/dist/npm/MultiSelectTree/MultiSelectTreeProps.js +0 -3
  231. package/dist/npm/MultiSelectTree/utils.d.ts +0 -17
  232. package/dist/npm/MultiSelectTree/utils.js +0 -114
  233. package/dist/npm/additionalTypes.ts +0 -21
  234. package/dist/npm/common/ClearButton.d.ts +0 -21
  235. package/dist/npm/common/ClearButton.js +0 -80
  236. package/dist/npm/common/DropDownBase.d.ts +0 -95
  237. package/dist/npm/common/DropDownBase.js +0 -303
  238. package/dist/npm/common/GroupStickyHeader.d.ts +0 -32
  239. package/dist/npm/common/GroupStickyHeader.js +0 -67
  240. package/dist/npm/common/List.d.ts +0 -60
  241. package/dist/npm/common/List.js +0 -208
  242. package/dist/npm/common/ListContainer.d.ts +0 -40
  243. package/dist/npm/common/ListContainer.js +0 -168
  244. package/dist/npm/common/ListDefaultItem.d.ts +0 -29
  245. package/dist/npm/common/ListDefaultItem.js +0 -67
  246. package/dist/npm/common/ListFilter.d.ts +0 -49
  247. package/dist/npm/common/ListFilter.js +0 -182
  248. package/dist/npm/common/ListGroupItem.d.ts +0 -41
  249. package/dist/npm/common/ListGroupItem.js +0 -78
  250. package/dist/npm/common/ListItem.d.ts +0 -71
  251. package/dist/npm/common/ListItem.js +0 -108
  252. package/dist/npm/common/Navigation.d.ts +0 -12
  253. package/dist/npm/common/Navigation.js +0 -37
  254. package/dist/npm/common/SearchBar.d.ts +0 -66
  255. package/dist/npm/common/SearchBar.js +0 -184
  256. package/dist/npm/common/VirtualScroll.d.ts +0 -42
  257. package/dist/npm/common/VirtualScroll.js +0 -168
  258. package/dist/npm/common/constants.d.ts +0 -4
  259. package/dist/npm/common/constants.js +0 -10
  260. package/dist/npm/common/events.d.ts +0 -63
  261. package/dist/npm/common/events.js +0 -2
  262. package/dist/npm/common/filterDescriptor.d.ts +0 -41
  263. package/dist/npm/common/filterDescriptor.js +0 -3
  264. package/dist/npm/common/settings.d.ts +0 -107
  265. package/dist/npm/common/settings.js +0 -11
  266. package/dist/npm/common/utils.d.ts +0 -70
  267. package/dist/npm/common/utils.js +0 -221
  268. package/dist/npm/main.d.ts +0 -18
  269. package/dist/npm/main.js +0 -36
  270. package/dist/npm/messages/main.d.ts +0 -40
  271. package/dist/npm/messages/main.js +0 -44
  272. package/dist/npm/package-metadata.d.ts +0 -5
  273. package/dist/npm/package-metadata.js +0 -14
@@ -1,1315 +0,0 @@
1
- var __assign = this && this.__assign || function () {
2
- __assign = Object.assign || function (t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) {
6
- if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
7
- }
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- // @ts-ignore
14
- import * as Vue from 'vue';
15
- var allVue = Vue;
16
- var gh = allVue.h;
17
- var isV3 = allVue.version && allVue.version[0] === '3';
18
- var ref = allVue.ref;
19
- var inject = allVue.inject;
20
- import DropDownBase from '../common/DropDownBase';
21
- import { GroupStickyHeader } from '../common/GroupStickyHeader';
22
- import { guid, classNames, Keys, templateRendering, getListeners, kendoThemeMaps, getRef, setRef, Icon, canUseDOM } from '@progress/kendo-vue-common';
23
- import { Button as KButton } from '@progress/kendo-vue-buttons';
24
- var sizeMap = kendoThemeMaps.sizeMap,
25
- roundedMap = kendoThemeMaps.roundedMap;
26
- import { areSame, itemIndexStartsWith, getItemIndexByText, getItemValue, isPresent, suggestValue as _suggestValue } from '../common/utils';
27
- import { SearchBar } from '../common/SearchBar';
28
- import { ListContainer } from '../common/ListContainer';
29
- import { List } from '../common/List';
30
- import { ClearButton } from '../common/ClearButton';
31
- import { provideLocalizationService } from '@progress/kendo-vue-intl';
32
- import { expandButton, messages } from '../messages/main';
33
- import { caretAltDownIcon, xIcon } from '@progress/kendo-svg-icons';
34
- import { MOBILE_SMALL_DEVICE, MOBILE_MEDIUM_DEVICE } from '../common/constants';
35
- import { ActionSheet } from '@progress/kendo-vue-layout';
36
- import { ListFilter } from '../common/ListFilter';
37
- var VALIDATION_MESSAGE = 'Please enter a valid value!';
38
- /**
39
- * @hidden
40
- */
41
- var ComboBoxVue2 = {
42
- name: 'KendoComboBox',
43
- model: {
44
- event: 'changemodel'
45
- },
46
- // @ts-ignore
47
- emits: {
48
- 'changemodel': null,
49
- 'update:modelValue': null,
50
- 'filterchange': null,
51
- pagechange: null,
52
- change: null,
53
- focus: null,
54
- blur: null,
55
- open: null,
56
- close: null,
57
- scroll: null
58
- },
59
- props: {
60
- id: String,
61
- dataItemKey: {
62
- type: [Object, String]
63
- },
64
- defaultValue: {
65
- type: [String, Object, Number, Boolean],
66
- default: undefined
67
- },
68
- name: String,
69
- modelValue: {
70
- type: [String, Object, Number, Boolean],
71
- default: undefined
72
- },
73
- value: {
74
- type: [String, Object, Number, Boolean],
75
- default: undefined
76
- },
77
- label: {
78
- type: String
79
- },
80
- placeholder: String,
81
- required: {
82
- type: Boolean,
83
- default: false
84
- },
85
- valid: {
86
- type: Boolean,
87
- default: undefined
88
- },
89
- validationMessage: {
90
- type: String,
91
- default: undefined
92
- },
93
- validityStyles: {
94
- type: Boolean,
95
- default: true
96
- },
97
- iconClassName: String,
98
- opened: {
99
- type: Boolean,
100
- default: undefined
101
- },
102
- disabled: Boolean,
103
- dir: {
104
- type: String,
105
- default: undefined
106
- },
107
- tabIndex: {
108
- type: Number,
109
- default: 0
110
- },
111
- accessKey: String,
112
- dataItems: Array,
113
- textField: String,
114
- className: String,
115
- loading: Boolean,
116
- popupSettings: {
117
- type: Object,
118
- default: function _default() {
119
- return {
120
- animate: true,
121
- height: '200px',
122
- anchor: ''
123
- };
124
- }
125
- },
126
- itemRender: [String, Function, Object],
127
- groupHeaderItemRender: [String, Function, Object],
128
- groupStickyHeaderItemRender: [String, Function, Object],
129
- listNoDataRender: [String, Function, Object],
130
- focusedItemIndex: Function,
131
- header: [String, Function, Object],
132
- footer: [String, Function, Object],
133
- filterable: Boolean,
134
- filter: {
135
- type: String,
136
- default: undefined
137
- },
138
- virtual: {
139
- type: Object,
140
- default: undefined
141
- },
142
- suggest: {
143
- type: Boolean,
144
- default: false
145
- },
146
- allowCustom: {
147
- type: Boolean,
148
- default: false
149
- },
150
- clearButton: {
151
- type: Boolean,
152
- default: true
153
- },
154
- ariaLabel: {
155
- type: String,
156
- default: undefined
157
- },
158
- ariaLabelledBy: String,
159
- ariaDescribedBy: String,
160
- valueField: String,
161
- valuePrimitive: Boolean,
162
- rounded: {
163
- type: String,
164
- default: 'medium',
165
- validator: function validator(value) {
166
- return ['small', 'medium', 'large', 'full'].includes(value);
167
- }
168
- },
169
- fillMode: {
170
- type: String,
171
- default: 'solid',
172
- validator: function validator(value) {
173
- return ['solid', 'flat', 'outline'].includes(value);
174
- }
175
- },
176
- size: {
177
- type: String,
178
- default: 'medium',
179
- validator: function validator(value) {
180
- return ['small', 'medium', 'large'].includes(value);
181
- }
182
- },
183
- groupField: {
184
- type: String
185
- },
186
- adaptive: {
187
- type: Boolean,
188
- default: undefined
189
- },
190
- adaptiveTitle: {
191
- type: String,
192
- default: undefined
193
- }
194
- },
195
- inject: {
196
- kendoLocalizationService: {
197
- default: null
198
- }
199
- },
200
- data: function data() {
201
- return {
202
- hasMounted: false,
203
- currentText: '',
204
- currentValue: '',
205
- currentFocused: false,
206
- currentOpened: false,
207
- searchState: {
208
- word: '',
209
- last: ''
210
- },
211
- _skipFocusEvent: false,
212
- valueDuringOnChange: {},
213
- _navigated: false,
214
- suggested: '',
215
- group: undefined,
216
- isScrolling: false,
217
- itemHeight: 0,
218
- state: undefined,
219
- popupWidth: undefined,
220
- windowWidth: 0
221
- };
222
- },
223
- created: function created() {
224
- this.observer = null;
225
- this.valueDuringOnChange = undefined;
226
- this.currentText = undefined;
227
- this.currentValue = undefined;
228
- this.currentFocused = undefined;
229
- this.currentOpened = undefined;
230
- this.prevCurrentValue = this.computedValue();
231
- this.base = new DropDownBase(this);
232
- this.anchor = guid();
233
- this.inputId = guid();
234
- },
235
- // @ts-ignore
236
- setup: !isV3 ? undefined : function () {
237
- var v3 = !!isV3;
238
- var inputRef = ref(null);
239
- var elementRef = ref(null);
240
- var kendoAnchorRef = ref(null);
241
- var kendoLocalizationService = inject('kendoLocalizationService', {});
242
- return {
243
- v3: v3,
244
- inputRef: inputRef,
245
- elementRef: elementRef,
246
- kendoAnchorRef: kendoAnchorRef,
247
- kendoLocalizationService: kendoLocalizationService
248
- };
249
- },
250
- mounted: function mounted() {
251
- this.observer = canUseDOM && new ResizeObserver(this.calculateMedia);
252
- if ((document === null || document === void 0 ? void 0 : document.body) && this.observer) {
253
- this.observer.observe(document.body);
254
- }
255
- this.hasMounted = true;
256
- // @ts-ignore
257
- this.input = this.v3 ? this.inputRef.input : this.$refs.input.input;
258
- this.base.wrapper = getRef(this, 'kendoAnchor', this.anchor);
259
- this.element = getRef(this, 'kendoAnchor', this.anchor);
260
- this.base.didMount();
261
- this.setValidity();
262
- },
263
- destroyed: !!isV3 ? undefined : function () {
264
- if (this.observer) {
265
- this.observer.disconnect();
266
- }
267
- },
268
- updated: function updated() {
269
- var _a;
270
- var _b = this.$props,
271
- _c = _b.dataItems,
272
- dataItems = _c === void 0 ? [] : _c,
273
- dataItemKey = _b.dataItemKey,
274
- virtual = _b.virtual,
275
- groupField = _b.groupField,
276
- textField = _b.textField;
277
- var opened = this.isOpen;
278
- var prevOpened = this.prevOpened !== undefined ? this.prevOpened : this.prevCurrentOpened;
279
- var opening = !prevOpened && opened;
280
- var closing = prevOpened && !opened;
281
- var list = this.$refs.list;
282
- var scrollElement = this.$refs.scrollElement;
283
- var selectedItem = this.computedValue();
284
- this.valueOnDidUpdate = selectedItem;
285
- if (list) {
286
- // @ts-ignore
287
- this.base.vs.list = list.list;
288
- // @ts-ignore
289
- this.base.list = list.list;
290
- }
291
- if (scrollElement) {
292
- this.base.vs.scrollElement = scrollElement;
293
- }
294
- if (list && dataItems.length) {
295
- // @ts-ignore
296
- this.base.vs.scrollerRef(list.$el);
297
- }
298
- // @ts-ignore
299
- if (virtual && this.virtualTotalHasChanged) {
300
- this.base.vs.calcScrollElementHeight();
301
- this.base.vs.reset();
302
- this.virtualTotalHasChanged = false;
303
- } else {
304
- var prevSelectedItem = this.prevCurrentValue;
305
- var selectedItemIndex = dataItems.findIndex(function (i) {
306
- return areSame(i, selectedItem, dataItemKey);
307
- });
308
- // Needed to calculate the proper item index when in grouping mode
309
- if (groupField) {
310
- selectedItemIndex = (_a = this.base.getGroupedDataModernMode(dataItems, groupField)) === null || _a === void 0 ? void 0 : _a.indexOf(selectedItem);
311
- }
312
- var selectedItemChanged = !areSame(prevSelectedItem, selectedItem, dataItemKey);
313
- if (opening && virtual) {
314
- this.base.scrollToVirtualItem(virtual, selectedItemIndex);
315
- this.prevCurrentOpened = true;
316
- } else if (opening && !virtual) {
317
- // Resets the sticky header group value for scenarios with open/close of component's popup
318
- if (dataItems && dataItems.length !== 0) {
319
- this.base.resetGroupStickyHeader(dataItems[0][groupField], this);
320
- }
321
- this.base.scrollToItem(selectedItemIndex);
322
- this.prevCurrentOpened = true;
323
- } else if (opened && prevOpened && selectedItem && selectedItemChanged) {
324
- this.base.scrollToItem(selectedItemIndex);
325
- } else if (opened && !selectedItem && !this.isScrolling) {
326
- var groupHeadersBeforeFocus = 0;
327
- // Handle the items' focusing when working with grouped data
328
- if (groupField && this.getFocusedIndex() !== -1 && dataItems.length > 0) {
329
- var focusedElemBeforeGrouping_1 = dataItems[this.getFocusedIndex()][textField];
330
- var gropedDataItems = this.base.getGroupedDataModernMode(dataItems, groupField);
331
- var groupedDataIdex = gropedDataItems.findIndex(function (el) {
332
- return el[textField] === focusedElemBeforeGrouping_1;
333
- });
334
- groupHeadersBeforeFocus = gropedDataItems.slice(0, groupedDataIdex).filter(function (el) {
335
- return Object.keys(el).length === 1;
336
- }).length;
337
- }
338
- this.base.scrollToItem(this.getFocusedIndex() + groupHeadersBeforeFocus);
339
- }
340
- }
341
- if (opening && this.input) {
342
- this.input.focus();
343
- }
344
- this.prevCurrentValue = this.computedValue();
345
- this.setValidity();
346
- },
347
- watch: {
348
- currentOpened: function currentOpened(_, oldValue) {
349
- this.prevCurrentOpened = oldValue;
350
- },
351
- opened: function opened(_, oldValue) {
352
- this.prevOpened = oldValue;
353
- },
354
- virtual: function virtual(newValue, oldValue) {
355
- if (newValue && oldValue && newValue.total !== oldValue.total) {
356
- this.virtualTotalHasChanged = true;
357
- }
358
- this.virtualHasChanged = true;
359
- },
360
- isOpen: function isOpen() {
361
- var _this = this;
362
- setTimeout(function () {
363
- var listItem = document.querySelector('.k-list-item');
364
- _this.itemHeight = _this.base.getListItemHeight(listItem);
365
- }, 100);
366
- }
367
- },
368
- computed: {
369
- index: {
370
- get: function get() {
371
- var _a = this.$props,
372
- _b = _a.dataItems,
373
- dataItems = _b === void 0 ? [] : _b,
374
- dataItemKey = _a.dataItemKey;
375
- var value = this.computedValue();
376
- // TO DO: deprecate it!
377
- return dataItems.findIndex(function (i) {
378
- return areSame(i, value, dataItemKey);
379
- });
380
- }
381
- },
382
- spanClassNames: {
383
- get: function get() {
384
- var isValid = !this.hasMounted || !this.$props.validityStyles || this.validity().valid;
385
- return {
386
- 'k-floating-label-container': true,
387
- 'k-focus': this.currentFocused,
388
- 'k-empty': !this.computedValue(),
389
- 'k-invalid': !isValid && isValid !== undefined,
390
- 'k-rtl': this.$props.dir === 'rtl'
391
- };
392
- }
393
- },
394
- isOpen: {
395
- get: function get() {
396
- return this.$props.opened !== undefined ? this.$props.opened : this.currentOpened;
397
- }
398
- },
399
- animationStyles: {
400
- get: function get() {
401
- return this.windowWidth <= MOBILE_SMALL_DEVICE ? {
402
- top: 0,
403
- width: '100%',
404
- height: '100%'
405
- } : undefined;
406
- }
407
- },
408
- classNameAdaptive: {
409
- get: function get() {
410
- return this.windowWidth <= MOBILE_SMALL_DEVICE ? 'k-adaptive-actionsheet k-actionsheet-fullscreen' : 'k-adaptive-actionsheet k-actionsheet-bottom';
411
- }
412
- },
413
- adaptiveState: {
414
- get: function get() {
415
- return this.windowWidth <= MOBILE_MEDIUM_DEVICE && this.$props.adaptive;
416
- }
417
- }
418
- },
419
- methods: {
420
- focus: function focus() {
421
- if (this.input) {
422
- this.input.focus();
423
- }
424
- },
425
- computedValue: function computedValue() {
426
- var value;
427
- if (this.valueDuringOnChange !== undefined) {
428
- value = this.valueDuringOnChange;
429
- } else if (this.$props.value !== undefined) {
430
- value = this.$props.value;
431
- } else if (this.$props.modelValue !== undefined) {
432
- value = this.$props.modelValue;
433
- } else if (this.currentValue !== undefined) {
434
- value = this.currentValue;
435
- } else if (this.$props.defaultValue !== undefined) {
436
- value = this.$props.defaultValue;
437
- }
438
- return this.valuePrimitive ? this.findByFieldValue(this.valueField, value) || value : value;
439
- },
440
- findByFieldValue: function findByFieldValue(field, value) {
441
- var index = this.dataItems.findIndex(function (i) {
442
- return getItemValue(i, field) === value;
443
- });
444
- return this.dataItems[index];
445
- },
446
- primitiveValue: function primitiveValue() {
447
- var value = this.computedValue();
448
- return this.valuePrimitive ? getItemValue(value, this.valueField) : value;
449
- },
450
- validity: function validity() {
451
- var customError = this.$props.validationMessage !== undefined;
452
- var isValid = !this.$props.required || this.computedValue() !== null && this.computedValue() !== '' && this.computedValue() !== undefined;
453
- var valid = this.$props.valid !== undefined ? this.$props.valid : isValid;
454
- return {
455
- customError: customError,
456
- valid: valid,
457
- valueMissing: this.computedValue() === null
458
- };
459
- },
460
- handleItemSelect: function handleItemSelect(index, state) {
461
- var _a = this.$props,
462
- _b = _a.dataItems,
463
- dataItems = _b === void 0 ? [] : _b,
464
- virtual = _a.virtual,
465
- dataItemKey = _a.dataItemKey;
466
- var skip = virtual ? virtual.skip : 0;
467
- var item = dataItems[index - skip];
468
- var newSelected = !areSame(item, this.computedValue(), dataItemKey);
469
- this.triggerOnChange(item, state);
470
- if (this.currentText !== undefined) {
471
- // @ts-ignore
472
- state.data.currentText = undefined;
473
- }
474
- if (newSelected) {
475
- this.base.triggerPageChangeCornerItems(item, state);
476
- }
477
- },
478
- onNavigate: function onNavigate(state, keyCode) {
479
- var _a = this.$props,
480
- _b = _a.dataItems,
481
- dataItems = _b === void 0 ? [] : _b,
482
- _c = _a.virtual,
483
- virtual = _c === void 0 ? {
484
- skip: 0
485
- } : _c;
486
- var text = this.$props.filter ? this.$props.filter : this.currentText;
487
- var focusedIndex = this.getFocusedIndex();
488
- var vs = this.base.vs;
489
- var value = this.computedValue();
490
- this.suggested = '';
491
- if (focusedIndex !== -1 && !isPresent(value)) {
492
- this.handleItemSelect(focusedIndex, state);
493
- } else if (text === '') {
494
- this.handleItemSelect(0, state);
495
- } else {
496
- var currentIndex = virtual.skip + focusedIndex;
497
- var newIndex = this.base.navigation.navigate({
498
- keyCode: keyCode,
499
- current: currentIndex,
500
- max: (vs.enabled ? vs.total : dataItems.length) - 1,
501
- min: 0
502
- });
503
- if (newIndex !== undefined) {
504
- this.handleItemSelect(newIndex, state);
505
- }
506
- }
507
- },
508
- toggleBtnClick: function toggleBtnClick(event) {
509
- var state = this.base.initState();
510
- var opened = this.isOpen;
511
- var renderAdaptive = this.adaptiveState;
512
- state.event = event;
513
- this.base.togglePopup(state);
514
- if (!opened && renderAdaptive) {
515
- this.base.filterChanged('', state);
516
- }
517
- this.applyState(state);
518
- },
519
- applyValueOnEnter: function applyValueOnEnter(value, state) {
520
- var _a;
521
- var _b = this.$props,
522
- _c = _b.dataItems,
523
- dataItems = _c === void 0 ? [] : _c,
524
- textField = _b.textField,
525
- allowCustom = _b.allowCustom;
526
- var opened = this.isOpen;
527
- var currentValueText = getItemValue(this.computedValue(), textField);
528
- var valueIndex = currentValueText === value ? this.index : getItemIndexByText(dataItems, value, textField);
529
- var itemSelected = valueIndex !== -1;
530
- var newSelected = undefined;
531
- this.suggested = '';
532
- if (itemSelected) {
533
- // typed text match item from list
534
- newSelected = dataItems[valueIndex];
535
- } else {
536
- if (allowCustom) {
537
- // any custom text not in list
538
- newSelected = textField !== undefined ? (_a = {}, _a[textField] = value, _a) : value;
539
- } else {
540
- return this.selectFocusedItem(value, state);
541
- }
542
- }
543
- this.triggerOnChange(newSelected, state);
544
- if (opened) {
545
- this.base.togglePopup(state);
546
- }
547
- if (this.$props.filter === undefined && this.currentText !== undefined) {
548
- // @ts-ignore
549
- state.data.currentText = undefined;
550
- }
551
- this.applyState(state);
552
- },
553
- applyValueOnRejectSuggestions: function applyValueOnRejectSuggestions(text, state) {
554
- var _a;
555
- var _b = this.$props,
556
- _c = _b.dataItems,
557
- dataItems = _c === void 0 ? [] : _c,
558
- textField = _b.textField,
559
- allowCustom = _b.allowCustom;
560
- var opened = this.isOpen;
561
- var valueItemText = getItemValue(this.computedValue(), textField);
562
- this.suggested = '';
563
- if (text === valueItemText || text === '' && !isPresent(valueItemText)) {
564
- if (opened && !this.adaptiveState) {
565
- this.base.togglePopup(state);
566
- }
567
- return this.applyState(state);
568
- }
569
- var valueIndex = getItemIndexByText(dataItems, text, textField, true);
570
- var itemSelected = valueIndex !== -1;
571
- var newSelected = null;
572
- if (itemSelected) {
573
- newSelected = dataItems[valueIndex];
574
- } else if (allowCustom) {
575
- newSelected = text ? textField ? (_a = {}, _a[textField] = text, _a) : text : null;
576
- }
577
- this.triggerOnChange(newSelected, state);
578
- if (this.currentText !== undefined) {
579
- // @ts-ignore
580
- state.data.currentText = undefined;
581
- this.base.filterChanged('', state);
582
- }
583
- if (opened && !this.adaptiveState) {
584
- this.base.togglePopup(state);
585
- }
586
- this.applyState(state);
587
- },
588
- selectFocusedItem: function selectFocusedItem(text, state) {
589
- var opened = this.isOpen;
590
- var _a = this.$props,
591
- _b = _a.dataItems,
592
- dataItems = _b === void 0 ? [] : _b,
593
- textField = _a.textField,
594
- _c = _a.virtual,
595
- virtual = _c === void 0 ? {
596
- skip: 0
597
- } : _c,
598
- _d = _a.focusedItemIndex,
599
- focusedItemIndex = _d === void 0 ? itemIndexStartsWith : _d;
600
- var skip = virtual.skip;
601
- var focusedIndex = text === '' && skip === 0 ? 0 : focusedItemIndex(dataItems, text, textField);
602
- if (focusedIndex !== -1) {
603
- this.handleItemSelect(focusedIndex + skip, state);
604
- } else {
605
- this.triggerOnChange(null, state);
606
- if (this.currentText !== undefined) {
607
- // @ts-ignore
608
- state.data.currentText = undefined;
609
- }
610
- }
611
- if (opened) {
612
- this.base.togglePopup(state);
613
- }
614
- return this.applyState(state);
615
- },
616
- handleItemClick: function handleItemClick(index, event) {
617
- this.base.handleItemClick(index, event);
618
- this.valueDuringOnChange = undefined;
619
- },
620
- handleFocus: function handleFocus(event) {
621
- this.$emit('focus', event);
622
- },
623
- handleBlur: function handleBlur(event) {
624
- if (this.currentFocused) {
625
- var state = this.base.initState();
626
- state.data.currentFocused = false;
627
- state.events.push({
628
- type: 'blur'
629
- });
630
- state.event = event;
631
- this.applyValueOnRejectSuggestions(event.currentTarget.value, state);
632
- }
633
- },
634
- onInputKeyDown: function onInputKeyDown(event) {
635
- var _this = this;
636
- if (this.isScrolling) {
637
- this.isScrolling = false;
638
- }
639
- var keyCode = event.keyCode;
640
- var opened = this.isOpen;
641
- var state = this.base.initState();
642
- state.event = event;
643
- if (!event.altKey && (keyCode === Keys.up || keyCode === Keys.down)) {
644
- event.preventDefault();
645
- this.onNavigate(state, keyCode);
646
- this.applyState(state);
647
- return;
648
- }
649
- var togglePopup = function togglePopup() {
650
- event.preventDefault();
651
- _this.base.togglePopup(state);
652
- _this.applyState(state);
653
- };
654
- if (opened) {
655
- if (event.altKey && keyCode === Keys.up) {
656
- togglePopup();
657
- } else if (keyCode === Keys.enter) {
658
- event.preventDefault();
659
- this.applyValueOnEnter(event.currentTarget.value, state);
660
- } else if (keyCode === Keys.esc) {
661
- if (this.adaptiveState) {
662
- this.toggleBtnClick(event); // Handle the closing on "Esc" key press in adaptive mode
663
- }
664
-
665
- togglePopup();
666
- }
667
- } else {
668
- if (event.altKey && keyCode === Keys.down) {
669
- togglePopup();
670
- } else if (keyCode === Keys.esc) {
671
- this.applyValueOnRejectSuggestions(event.currentTarget.value, state);
672
- }
673
- }
674
- },
675
- inputOnChange: function inputOnChange(event) {
676
- var state = this.base.initState();
677
- state.event = event;
678
- var opened = this.isOpen;
679
- var input = event.currentTarget;
680
- var value = input.value;
681
- if (this.$props.suggest) {
682
- var selectionAtEnd = input.selectionEnd === value.length;
683
- var prevText = this.$props.filter !== undefined ? this.$props.filter : this.currentText;
684
- if (!isPresent(prevText)) {
685
- prevText = getItemValue(this.computedValue(), this.$props.textField) || '';
686
- }
687
- var deletedSuggestion = prevText && prevText === value;
688
- var deleting = prevText && prevText.length > value.length;
689
- if (deletedSuggestion || deleting || !selectionAtEnd) {
690
- this.suggested = '';
691
- } else {
692
- this.suggestValue(value);
693
- }
694
- }
695
- if (this.$props.filter === undefined) {
696
- // @ts-ignore
697
- state.data.currentText = value;
698
- }
699
- if (this.currentFocusedItem !== undefined) {
700
- // @ts-ignore
701
- state.data.focusedItem = undefined;
702
- }
703
- if (!opened) {
704
- this.base.togglePopup(state);
705
- }
706
- this.base.filterChanged(value, state);
707
- // Resets the value of the StickyHeader when filtering the data or just entering symbols in the input
708
- if (this.$props.filterable) {
709
- state.data.group = undefined;
710
- }
711
- this.applyState(state);
712
- },
713
- clearButtonClick: function clearButtonClick(event) {
714
- var state = this.base.initState();
715
- state.event = event;
716
- event.stopPropagation();
717
- this.suggested = '';
718
- this.base.filterChanged('', state);
719
- if (this.$props.filter === undefined && this.currentText !== undefined) {
720
- // @ts-ignore
721
- state.data.currentText = undefined;
722
- }
723
- this.triggerOnChange(null, state);
724
- var opened = this.isOpen;
725
- if (opened) {
726
- this.base.togglePopup(state);
727
- }
728
- this.applyState(state);
729
- },
730
- getFocusedIndex: function getFocusedIndex() {
731
- var value = this.computedValue();
732
- var _a = this.$props,
733
- _b = _a.dataItems,
734
- dataItems = _b === void 0 ? [] : _b,
735
- textField = _a.textField,
736
- dataItemKey = _a.dataItemKey,
737
- _c = _a.virtual,
738
- virtual = _c === void 0 ? {
739
- skip: 0
740
- } : _c,
741
- _d = _a.focusedItemIndex,
742
- focusedItemIndex = _d === void 0 ? itemIndexStartsWith : _d;
743
- var text = this.$props.filter ? this.$props.filter : this.currentText;
744
- if (isPresent(value) && text === undefined) {
745
- return dataItems.findIndex(function (i) {
746
- return areSame(i, value, dataItemKey);
747
- });
748
- } else if (text) {
749
- return focusedItemIndex(dataItems, text, textField);
750
- } else {
751
- return virtual.skip === 0 ? 0 : -1;
752
- }
753
- },
754
- suggestValue: function suggestValue(value) {
755
- var _a = this.$props,
756
- dataItems = _a.dataItems,
757
- textField = _a.textField;
758
- this.suggested = _suggestValue(value, dataItems, textField);
759
- },
760
- setValidity: function setValidity() {
761
- if (this.input && this.input.setCustomValidity) {
762
- this.input.setCustomValidity(this.validity().valid ? '' : this.$props.validationMessage || VALIDATION_MESSAGE);
763
- }
764
- },
765
- triggerOnChange: function triggerOnChange(item, state) {
766
- var value = this.computedValue();
767
- if (!isPresent(value) && !isPresent(item) || areSame(value, item, this.$props.dataItemKey)) {
768
- return;
769
- }
770
- if (this.$props.value === undefined) {
771
- this.currentValue = item;
772
- }
773
- this.valueDuringOnChange = item;
774
- state.events.push({
775
- type: 'change'
776
- });
777
- },
778
- applyState: function applyState(state) {
779
- this.base.applyState(state);
780
- this.valueDuringOnChange = undefined;
781
- },
782
- calculateMedia: function calculateMedia(entries) {
783
- for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {
784
- var entry = entries_1[_i];
785
- this.windowWidth = entry.target.clientWidth;
786
- }
787
- },
788
- repositionPopup: function repositionPopup() {
789
- this.base.repositionPopup();
790
- },
791
- onScroll: function onScroll(event) {
792
- this.isScrolling = true;
793
- var _a = this.base,
794
- vs = _a.vs,
795
- list = _a.list;
796
- vs.scrollHandler(event);
797
- var state = this.base.initState();
798
- var groupField = this.$props.groupField;
799
- var _b = this.$props.dataItems,
800
- dataItems = _b === void 0 ? [] : _b;
801
- var group;
802
- if (!groupField || !dataItems.length) {
803
- return;
804
- }
805
- var itemHeight = this.itemHeight = this.itemHeight || (vs.enabled ? vs.itemHeight : list ? list.children[0].offsetHeight : 0);
806
- var target = event.target;
807
- var scrollTop = target.scrollTop - vs.skip * itemHeight;
808
- if (groupField) {
809
- dataItems = this.base.getGroupedDataModernMode(dataItems, groupField);
810
- group = dataItems[0][groupField];
811
- }
812
- for (var i = 1; i < dataItems.length; i++) {
813
- if (itemHeight * i > scrollTop) {
814
- break;
815
- }
816
- if (dataItems[i] && dataItems[i][groupField]) {
817
- group = dataItems[i][groupField];
818
- }
819
- }
820
- if (group !== this.group) {
821
- state.data.group = group;
822
- this.applyState(state);
823
- }
824
- }
825
- },
826
- render: function render(createElement) {
827
- var _this = this;
828
- var h = gh || createElement;
829
- var _a = this.$props,
830
- dir = _a.dir,
831
- disabled = _a.disabled,
832
- clearButton = _a.clearButton,
833
- label = _a.label,
834
- textField = _a.textField,
835
- className = _a.className,
836
- style = _a.style,
837
- loading = _a.loading,
838
- icon = _a.icon,
839
- svgIcon = _a.svgIcon,
840
- iconClassName = _a.iconClassName,
841
- virtual = _a.virtual,
842
- size = _a.size,
843
- fillMode = _a.fillMode,
844
- rounded = _a.rounded,
845
- adaptiveTitle = _a.adaptiveTitle,
846
- header = _a.header,
847
- footer = _a.footer,
848
- groupStickyHeaderItemRender = _a.groupStickyHeaderItemRender,
849
- placeholder = _a.placeholder;
850
- var focused = this.currentFocused;
851
- var isValid = !this.$props.validityStyles || this.validity().valid;
852
- var text = this.$props.filter !== undefined ? this.$props.filter : this.currentText;
853
- var selectedItemText = getItemValue(this.computedValue(), textField);
854
- var inputText = isPresent(text) ? text : selectedItemText;
855
- var renderClearButton = clearButton && (!!inputText || isPresent(this.computedValue()));
856
- var base = this.base;
857
- var vs = base.vs;
858
- var id = this.$props.id || this.inputId;
859
- var popupSettings = Object.assign({}, {
860
- animate: true,
861
- height: '200px'
862
- }, this.$props.popupSettings);
863
- var ariaLabelExpandButton = provideLocalizationService(this).toLanguageString(expandButton, messages[expandButton]);
864
- var opened = this.isOpen;
865
- var renderAdaptive = this.adaptiveState;
866
- vs.enabled = virtual !== undefined;
867
- if (virtual !== undefined) {
868
- vs.skip = virtual.skip;
869
- vs.total = virtual.total;
870
- vs.pageSize = virtual.pageSize;
871
- }
872
- if (this.group === undefined && this.$props.groupField !== undefined) {
873
- this.group = getItemValue(this.$props.dataItems[0], this.$props.groupField);
874
- }
875
- var handleMobileFilterChange = function handleMobileFilterChange(event) {
876
- var state = _this.base.initState();
877
- state.event = event;
878
- var eventTargetValue = event.event.target.value;
879
- state.data.text = eventTargetValue;
880
- _this.base.filterChanged(eventTargetValue, state);
881
- _this.applyState(state);
882
- };
883
- var adaptiveActionSheetHeaderTemplateDef = function adaptiveActionSheetHeaderTemplateDef() {
884
- return [h("div", {
885
- "class": "k-actionsheet-titlebar-group k-hbox"
886
- }, [h("div", {
887
- "class": "k-actionsheet-title"
888
- }, [h("div", {
889
- "class": "k-text-center"
890
- }, [adaptiveTitle]), placeholder && h("div", {
891
- "class": "k-actionsheet-subtitle k-text-center"
892
- }, [placeholder])]), h("div", {
893
- "class": "k-actionsheet-actions"
894
- }, [h(KButton, {
895
- tabindex: 5,
896
- attrs: this.v3 ? undefined : {
897
- tabindex: 5,
898
- "aria-label": "Cancel",
899
- "aria-disabled": "false",
900
- type: "button",
901
- fillMode: "flat",
902
- icon: "x",
903
- svgIcon: xIcon
904
- },
905
- "aria-label": "Cancel",
906
- "aria-disabled": "false",
907
- type: "button",
908
- fillMode: "flat",
909
- onClick: _this.toggleBtnClick,
910
- on: this.v3 ? undefined : {
911
- "click": _this.toggleBtnClick
912
- },
913
- icon: "x",
914
- svgIcon: xIcon
915
- })])]), h("div", {
916
- "class": "k-actionsheet-titlebar-group k-actionsheet-filter"
917
- }, [renderMobileListFilter.call(_this)])];
918
- };
919
- var adaptiveActionSheetHeaderTemplate = templateRendering.call(this, adaptiveActionSheetHeaderTemplateDef, getListeners.call(this));
920
- var adaptiveActionSheetContentTemplateDef = function adaptiveActionSheetContentTemplateDef() {
921
- var _a;
922
- var headerToRender = base.getTemplateDef.call(_this, header, h);
923
- var footerToRender = base.getTemplateDef.call(_this, footer, h);
924
- var groupStickyHeaderTemplate = templateRendering.call(_this, groupStickyHeaderItemRender, getListeners.call(_this));
925
- var dataItems = _this.$props.dataItems || [];
926
- return h("div", {
927
- "class": "k-list-container"
928
- }, [headerToRender && h("div", {
929
- "class": "k-list-header"
930
- }, [headerToRender]), h("div", {
931
- "class": classNames('k-list', (_a = {}, _a["k-list-".concat(sizeMap[size] || size)] = !renderAdaptive ? size : false, _a['k-list-lg'] = renderAdaptive ? true : false, _a['k-virtual-list'] = vs.enabled, _a))
932
- }, [header && h("div", {
933
- "class": "k-list-header"
934
- }, [header]), _this.group && dataItems.length !== 0 && h(GroupStickyHeader, {
935
- group: _this.group,
936
- attrs: this.v3 ? undefined : {
937
- group: _this.group,
938
- render: groupStickyHeaderTemplate
939
- },
940
- render: groupStickyHeaderTemplate
941
- }), renderList.call(_this), footerToRender && h("div", {
942
- className: "k-list-footer",
943
- attrs: this.v3 ? undefined : {
944
- className: "k-list-footer"
945
- }
946
- }, [footerToRender])])]);
947
- };
948
- var adaptiveActionSheetContentTemplate = templateRendering.call(this, adaptiveActionSheetContentTemplateDef, getListeners.call(this));
949
- var renderAdaptiveListContainer = function renderAdaptiveListContainer() {
950
- return h(ActionSheet, {
951
- expand: opened,
952
- attrs: this.v3 ? undefined : {
953
- expand: opened,
954
- animation: true,
955
- animationStyles: this.animationStyles,
956
- className: this.classNameAdaptive,
957
- contentClassName: '!k-overflow-hidden',
958
- header: adaptiveActionSheetHeaderTemplate,
959
- content: adaptiveActionSheetContentTemplate,
960
- navigatableElements: ['input.k-input-inner', '.k-actionsheet-actions > button']
961
- },
962
- animation: true,
963
- animationStyles: this.animationStyles,
964
- className: this.classNameAdaptive,
965
- contentClassName: '!k-overflow-hidden',
966
- header: adaptiveActionSheetHeaderTemplate,
967
- content: adaptiveActionSheetContentTemplate,
968
- onClose: this.toggleBtnClick,
969
- on: this.v3 ? undefined : {
970
- "close": this.toggleBtnClick
971
- },
972
- navigatableElements: ['input.k-input-inner', '.k-actionsheet-actions > button']
973
- });
974
- };
975
- var renderMobileListFilter = function renderMobileListFilter() {
976
- var state = this.base.initState();
977
- var mobileText = state.data.text;
978
- return h(ListFilter, {
979
- adaptiveMode: true,
980
- attrs: this.v3 ? undefined : {
981
- adaptiveMode: true,
982
- value: mobileText,
983
- size: this.$props.size,
984
- rounded: this.$props.rounded,
985
- fillMode: this.$props.fillMode
986
- },
987
- value: mobileText,
988
- ref: 'filterInput',
989
- onChange: function onChange(ev) {
990
- return handleMobileFilterChange(ev);
991
- },
992
- on: this.v3 ? undefined : {
993
- "change": function onChange(ev) {
994
- return handleMobileFilterChange(ev);
995
- },
996
- "keydown": this.onInputKeyDown
997
- },
998
- onKeydown: this.onInputKeyDown,
999
- size: this.$props.size,
1000
- rounded: this.$props.rounded,
1001
- fillMode: this.$props.fillMode
1002
- });
1003
- };
1004
- var renderList = function renderList() {
1005
- var _this2 = this;
1006
- var _a;
1007
- var _b = this.$props,
1008
- dataItemKey = _b.dataItemKey,
1009
- groupField = _b.groupField;
1010
- var dataItems = this.$props.dataItems || [];
1011
- var itemRender = templateRendering.call(this, this.$props.itemRender, getListeners.call(this));
1012
- var groupHeaderItemRender = templateRendering.call(this, this.$props.groupHeaderItemRender, getListeners.call(this));
1013
- var listNoDataRender = templateRendering.call(this, this.$props.listNoDataRender, getListeners.call(this));
1014
- if (!virtual) {
1015
- virtual = {
1016
- skip: 0
1017
- };
1018
- }
1019
- var skip = virtual.skip;
1020
- var translate = "translateY(".concat(vs.translate, "px)");
1021
- var focusedIndex = opened ? this.getFocusedIndex() : undefined;
1022
- var value = isPresent(text) && text !== selectedItemText ? null : this.computedValue();
1023
- if (groupField) {
1024
- dataItems = this.base.getGroupedDataModernMode(dataItems, groupField);
1025
- }
1026
- return (
1027
- // @ts-ignore function children
1028
- h(List, {
1029
- id: base.listBoxId,
1030
- attrs: this.v3 ? undefined : {
1031
- id: base.listBoxId,
1032
- show: opened,
1033
- dataItems: dataItems,
1034
- focusedIndex: focusedIndex,
1035
- value: value,
1036
- textField: textField,
1037
- valueField: dataItemKey,
1038
- optionsGuid: base.guid,
1039
- wrapperStyle: {
1040
- maxHeight: !renderAdaptive ? popupSettings.height : undefined
1041
- },
1042
- wrapperCssClass: classNames('k-list-content', (_a = {}, _a['k-list-scroller'] = !this.$props.virtual, _a)),
1043
- listStyle: vs.enabled ? {
1044
- transform: translate
1045
- } : undefined,
1046
- skip: skip,
1047
- itemRender: itemRender,
1048
- groupHeaderItemRender: groupHeaderItemRender,
1049
- noDataRender: listNoDataRender,
1050
- groupField: groupField
1051
- },
1052
- show: opened,
1053
- dataItems: dataItems,
1054
- focusedIndex: focusedIndex,
1055
- value: value,
1056
- textField: textField,
1057
- valueField: dataItemKey,
1058
- optionsGuid: base.guid,
1059
- ref: 'list',
1060
- wrapperStyle: {
1061
- maxHeight: !renderAdaptive ? popupSettings.height : undefined
1062
- },
1063
- wrapperCssClass: classNames('k-list-content', (_a = {}, _a['k-list-scroller'] = !this.$props.virtual, _a)),
1064
- listStyle: vs.enabled ? {
1065
- transform: translate
1066
- } : undefined,
1067
- key: "listkey",
1068
- skip: skip,
1069
- onListclick: this.handleItemClick,
1070
- on: this.v3 ? undefined : {
1071
- "listclick": this.handleItemClick,
1072
- "scroll": this.onScroll
1073
- },
1074
- itemRender: itemRender,
1075
- groupHeaderItemRender: groupHeaderItemRender,
1076
- noDataRender: listNoDataRender,
1077
- groupField: groupField,
1078
- onScroll: this.onScroll
1079
- }, this.v3 ? function () {
1080
- return [renderScrollElement.call(_this2)];
1081
- } : [renderScrollElement.call(_this2)])
1082
- );
1083
- };
1084
- var renderScrollElement = function renderScrollElement() {
1085
- return vs.enabled && h("div", {
1086
- ref: 'scrollElement',
1087
- key: 'scrollElementKey'
1088
- });
1089
- };
1090
- var renderListContainer = function renderListContainer() {
1091
- var _this3 = this;
1092
- var _a;
1093
- var groupStickyHeaderTemplate = templateRendering.call(this, this.$props.groupStickyHeaderItemRender, getListeners.call(this));
1094
- var headerListContainer = base.getTemplateDef.call(this, header);
1095
- var footerListContainer = base.getTemplateDef.call(this, footer);
1096
- var dataItems = this.$props.dataItems || [];
1097
- if (this.group === undefined && this.$props.groupField !== undefined) {
1098
- this.group = getItemValue(dataItems[0], this.$props.groupField);
1099
- }
1100
- return (
1101
- // @ts-ignore function children
1102
- h(ListContainer, {
1103
- ref: 'container',
1104
- onMousedown: function onMousedown(e) {
1105
- return e.preventDefault();
1106
- },
1107
- on: this.v3 ? undefined : {
1108
- "mousedown": function onMousedown(e) {
1109
- return e.preventDefault();
1110
- }
1111
- },
1112
- width: this.popupWidth,
1113
- attrs: this.v3 ? undefined : {
1114
- width: this.popupWidth,
1115
- popupSettings: __assign(__assign({}, popupSettings), {
1116
- anchor: this.anchor,
1117
- show: opened,
1118
- popupClass: classNames(popupSettings.popupClass, 'k-list', (_a = {}, _a["k-list-".concat(sizeMap[size] || size)] = size, _a['k-virtual-list'] = this.base.vs.enabled, _a)),
1119
- className: classNames('k-list-container', popupSettings.className)
1120
- }),
1121
- dir: dir !== undefined ? dir : this.base.dirCalculated
1122
- },
1123
- popupSettings: __assign(__assign({}, popupSettings), {
1124
- anchor: this.anchor,
1125
- show: opened,
1126
- popupClass: classNames(popupSettings.popupClass, 'k-list', (_a = {}, _a["k-list-".concat(sizeMap[size] || size)] = size, _a['k-virtual-list'] = this.base.vs.enabled, _a)),
1127
- className: classNames('k-list-container', popupSettings.className)
1128
- }),
1129
- dir: dir !== undefined ? dir : this.base.dirCalculated
1130
- }, this.v3 ? function () {
1131
- return [headerListContainer && h("div", {
1132
- "class": "k-list-header"
1133
- }, [headerListContainer]), _this3.group && dataItems.length !== 0 && h(GroupStickyHeader, {
1134
- group: _this3.group,
1135
- attrs: _this3.v3 ? undefined : {
1136
- group: _this3.group,
1137
- render: groupStickyHeaderTemplate
1138
- },
1139
- render: groupStickyHeaderTemplate
1140
- }), renderList.call(_this3), footerListContainer && h("div", {
1141
- "class": "k-list-footer"
1142
- }, [footerListContainer])];
1143
- } : [headerListContainer && h("div", {
1144
- "class": "k-list-header"
1145
- }, [headerListContainer]), _this3.group && dataItems.length !== 0 && h(GroupStickyHeader, {
1146
- group: _this3.group,
1147
- attrs: _this3.v3 ? undefined : {
1148
- group: _this3.group,
1149
- render: groupStickyHeaderTemplate
1150
- },
1151
- render: groupStickyHeaderTemplate
1152
- }), renderList.call(_this3), footerListContainer && h("div", {
1153
- "class": "k-list-footer"
1154
- }, [footerListContainer])])
1155
- );
1156
- };
1157
- var renderSearchBar = function renderSearchBar(searchText, searchId) {
1158
- var _this = this;
1159
- var _a = this.$props,
1160
- tabIndex = _a.tabIndex,
1161
- _b = _a.dataItems,
1162
- dataItems = _b === void 0 ? [] : _b,
1163
- dataItemKey = _a.dataItemKey;
1164
- if (!virtual) {
1165
- virtual = {
1166
- skip: 0
1167
- };
1168
- }
1169
- var value = this.computedValue();
1170
- var selectedIndex = Math.max(0, dataItems.findIndex(function (i) {
1171
- return areSame(i, value, dataItemKey);
1172
- }));
1173
- if (this.suggested && !areSame(this.valueOnDidUpdate, value, dataItemKey)) {
1174
- this.suggested = '';
1175
- }
1176
- return (
1177
- // @ts-ignore function children
1178
- h(SearchBar, {
1179
- id: searchId,
1180
- attrs: this.v3 ? undefined : {
1181
- id: searchId,
1182
- placeholder: placeholder,
1183
- tabIndex: tabIndex || undefined,
1184
- accessKey: this.$props.accessKey,
1185
- value: searchText + this.suggested,
1186
- suggestedText: this.suggested,
1187
- disabled: disabled,
1188
- expanded: opened,
1189
- owns: this.base.listBoxId,
1190
- activedescendant: this.base.guid + '-' + (selectedIndex + virtual.skip),
1191
- ariaLabelledBy: this.$props.ariaLabelledBy,
1192
- ariaDescribedBy: this.$props.ariaDescribedBy,
1193
- ariaLabel: this.$props.ariaLabel
1194
- },
1195
- placeholder: placeholder,
1196
- tabIndex: tabIndex || undefined,
1197
- accessKey: this.$props.accessKey,
1198
- value: searchText + this.suggested,
1199
- suggestedText: this.suggested,
1200
- ref: this.v3 ? function (el) {
1201
- _this.inputRef = el;
1202
- } : 'input',
1203
- onKeydown: this.onInputKeyDown,
1204
- on: this.v3 ? undefined : {
1205
- "keydown": this.onInputKeyDown,
1206
- "change": this.inputOnChange,
1207
- "focus": this.base.handleFocus,
1208
- "blur": this.handleBlur
1209
- },
1210
- onChange: this.inputOnChange,
1211
- onFocus: this.base.handleFocus,
1212
- onBlur: this.handleBlur,
1213
- disabled: disabled,
1214
- expanded: opened,
1215
- owns: this.base.listBoxId,
1216
- activedescendant: this.base.guid + '-' + (selectedIndex + virtual.skip),
1217
- ariaLabelledBy: this.$props.ariaLabelledBy,
1218
- ariaDescribedBy: this.$props.ariaDescribedBy,
1219
- ariaLabel: this.$props.ariaLabel
1220
- })
1221
- );
1222
- };
1223
- var comboboxDefault = function comboboxDefault() {
1224
- var _a;
1225
- return h("span", {
1226
- "class": classNames('k-combobox k-input', (_a = {}, _a["k-input-".concat(sizeMap[size] || size)] = size, _a["k-rounded-".concat(roundedMap[rounded] || rounded)] = rounded, _a["k-input-".concat(fillMode)] = fillMode, _a['k-invalid'] = !isValid, _a['k-loading'] = loading, _a['k-required'] = this.required, _a['k-disabled'] = disabled, _a['k-focus'] = focused && !disabled, _a), className),
1227
- ref: setRef(this, 'kendoAnchor', this.anchor),
1228
- style: !label ? style : __assign(__assign({}, style), {
1229
- width: undefined
1230
- }),
1231
- dir: dir,
1232
- attrs: this.v3 ? undefined : {
1233
- dir: dir
1234
- }
1235
- }, [renderSearchBar.call(this, inputText || '', id), renderClearButton && !loading &&
1236
- // @ts-ignore function children
1237
- h(ClearButton, {
1238
- onClearclick: this.clearButtonClick,
1239
- on: this.v3 ? undefined : {
1240
- "clearclick": this.clearButtonClick
1241
- },
1242
- key: "clearbutton"
1243
- }), loading && h(Icon, {
1244
- name: 'loading',
1245
- attrs: this.v3 ? undefined : {
1246
- name: 'loading'
1247
- },
1248
- "class": "k-input-loading-icon",
1249
- key: "loading"
1250
- }),
1251
- // @ts-ignore
1252
- h(KButton, {
1253
- type: "button",
1254
- attrs: this.v3 ? undefined : {
1255
- type: "button",
1256
- tabIndex: -1,
1257
- "aria-label": ariaLabelExpandButton,
1258
- size: size,
1259
- fillMode: fillMode,
1260
- rounded: null,
1261
- icon: icon || 'caret-alt-down',
1262
- svgIcon: svgIcon || caretAltDownIcon,
1263
- iconClass: iconClassName
1264
- },
1265
- tabIndex: -1,
1266
- "aria-label": ariaLabelExpandButton,
1267
- size: size,
1268
- fillMode: fillMode,
1269
- rounded: null,
1270
- "class": 'k-input-button',
1271
- icon: icon || 'caret-alt-down',
1272
- svgIcon: svgIcon || caretAltDownIcon,
1273
- iconClass: iconClassName,
1274
- onClick: this.toggleBtnClick,
1275
- on: this.v3 ? undefined : {
1276
- "click": this.toggleBtnClick,
1277
- "mousedown": function mousedown(e) {
1278
- return e.preventDefault();
1279
- }
1280
- },
1281
- onMousedown: function mousedown(e) {
1282
- return e.preventDefault();
1283
- }
1284
- }), !renderAdaptive && renderListContainer.call(this)]);
1285
- };
1286
- // The following one combines the default rendering of the Combobox and the Adaptive rendering.
1287
- // This is needed because of Vue 2 specifics
1288
- var combobox = [isV3 ? h(comboboxDefault.call(this), __assign({}, this.$attrs)) : comboboxDefault.call(this), renderAdaptive && renderAdaptiveListContainer.call(this)];
1289
- var comboboxToRender = isV3 ? combobox : renderAdaptive ? h("div", [combobox]) : comboboxDefault.call(this);
1290
- return label ? h("span", {
1291
- "class": this.spanClassNames,
1292
- onFocusin: this.handleFocus,
1293
- on: this.v3 ? undefined : {
1294
- "focusin": this.handleFocus
1295
- },
1296
- dir: this.$props.dir,
1297
- attrs: this.v3 ? undefined : {
1298
- dir: this.$props.dir
1299
- }
1300
- }, [comboboxToRender, this.$props.label ? id ? h("label", {
1301
- "for": id,
1302
- attrs: this.v3 ? undefined : {
1303
- "for": id
1304
- },
1305
- "class": "k-floating-label"
1306
- }, [this.$props.label]) : h("span", {
1307
- "class": "k-label"
1308
- }, [this.$props.label]) : null]) : comboboxToRender;
1309
- }
1310
- };
1311
- /**
1312
- * @hidden
1313
- */
1314
- var ComboBox = ComboBoxVue2;
1315
- export { ComboBox, ComboBoxVue2 };