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

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