@syncfusion/ej2-dropdowns 23.1.38 → 23.1.40-85814

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 (306) hide show
  1. package/CHANGELOG.md +2042 -2034
  2. package/{README.md → ReadMe.md} +217 -217
  3. package/dist/ej2-dropdowns.umd.min.js +1 -10
  4. package/dist/ej2-dropdowns.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-dropdowns.es2015.js +60 -57
  6. package/dist/es6/ej2-dropdowns.es2015.js.map +1 -1
  7. package/dist/es6/ej2-dropdowns.es5.js +202 -199
  8. package/dist/es6/ej2-dropdowns.es5.js.map +1 -1
  9. package/dist/global/ej2-dropdowns.min.js +1 -10
  10. package/dist/global/ej2-dropdowns.min.js.map +1 -1
  11. package/dist/global/index.d.ts +0 -9
  12. package/dist/ts/auto-complete/auto-complete.ts +615 -0
  13. package/dist/ts/combo-box/combo-box.ts +1028 -0
  14. package/dist/ts/common/highlight-search.ts +57 -0
  15. package/dist/ts/common/incremental-search.ts +131 -0
  16. package/dist/ts/common/interface.ts +72 -0
  17. package/dist/ts/common/virtual-scroll.ts +354 -0
  18. package/dist/ts/drop-down-base/drop-down-base.ts +1838 -0
  19. package/dist/ts/drop-down-list/drop-down-list.ts +3889 -0
  20. package/dist/ts/drop-down-tree/drop-down-tree.ts +3750 -0
  21. package/dist/ts/list-box/list-box.ts +2736 -0
  22. package/dist/ts/mention/mention.ts +1828 -0
  23. package/dist/ts/multi-select/checkbox-selection.ts +547 -0
  24. package/dist/ts/multi-select/float-label.ts +176 -0
  25. package/dist/ts/multi-select/interface.ts +70 -0
  26. package/dist/ts/multi-select/multi-select.ts +4874 -0
  27. package/helpers/e2e/autocomplete.js +13 -13
  28. package/helpers/e2e/combobox.js +13 -13
  29. package/helpers/e2e/dropdownlist.js +13 -13
  30. package/helpers/e2e/index.js +3 -3
  31. package/helpers/e2e/listboxHelper.js +13 -13
  32. package/helpers/e2e/multiselect.js +13 -13
  33. package/license +2 -2
  34. package/package.json +79 -79
  35. package/src/auto-complete/auto-complete-model.d.ts +188 -188
  36. package/src/auto-complete/auto-complete.d.ts +12 -12
  37. package/src/auto-complete/auto-complete.js +21 -21
  38. package/src/combo-box/combo-box-model.d.ts +224 -224
  39. package/src/combo-box/combo-box.d.ts +27 -27
  40. package/src/combo-box/combo-box.js +29 -29
  41. package/src/common/virtual-scroll.js +46 -46
  42. package/src/drop-down-base/drop-down-base-model.d.ts +200 -200
  43. package/src/drop-down-base/drop-down-base.d.ts +15 -15
  44. package/src/drop-down-base/drop-down-base.js +20 -20
  45. package/src/drop-down-list/drop-down-list-model.d.ts +202 -202
  46. package/src/drop-down-list/drop-down-list.d.ts +4 -4
  47. package/src/drop-down-list/drop-down-list.js +24 -21
  48. package/src/drop-down-tree/drop-down-tree-model.d.ts +468 -468
  49. package/src/drop-down-tree/drop-down-tree.js +19 -19
  50. package/src/list-box/list-box-model.d.ts +193 -193
  51. package/src/list-box/list-box.d.ts +2 -2
  52. package/src/list-box/list-box.js +19 -19
  53. package/src/mention/mention-model.d.ts +261 -261
  54. package/src/mention/mention.js +19 -19
  55. package/src/multi-select/multi-select-model.d.ts +512 -512
  56. package/src/multi-select/multi-select.js +19 -19
  57. package/styles/auto-complete/_all.scss +1 -1
  58. package/styles/auto-complete/_bootstrap-dark-definition.scss +3 -3
  59. package/styles/auto-complete/_bootstrap-definition.scss +2 -2
  60. package/styles/auto-complete/_bootstrap4-definition.scss +11 -11
  61. package/styles/auto-complete/_bootstrap5-definition.scss +2 -2
  62. package/styles/auto-complete/_fabric-dark-definition.scss +2 -2
  63. package/styles/auto-complete/_fabric-definition.scss +2 -2
  64. package/styles/auto-complete/_fluent-definition.scss +2 -2
  65. package/styles/auto-complete/_fusionnew-definition.scss +2 -2
  66. package/styles/auto-complete/_highcontrast-definition.scss +2 -2
  67. package/styles/auto-complete/_highcontrast-light-definition.scss +2 -2
  68. package/styles/auto-complete/_material-dark-definition.scss +2 -2
  69. package/styles/auto-complete/_material-definition.scss +2 -2
  70. package/styles/auto-complete/_material3-definition.scss +2 -2
  71. package/styles/auto-complete/_tailwind-definition.scss +2 -2
  72. package/styles/auto-complete/bootstrap4.css +13 -2
  73. package/styles/auto-complete/material3-dark.scss +1 -1
  74. package/styles/auto-complete/material3.scss +1 -1
  75. package/styles/bootstrap-dark.css +12 -1
  76. package/styles/bootstrap.css +12 -1
  77. package/styles/bootstrap4.css +44 -3
  78. package/styles/bootstrap5-dark.css +12 -1
  79. package/styles/bootstrap5.css +12 -1
  80. package/styles/combo-box/_all.scss +1 -1
  81. package/styles/combo-box/_bootstrap-dark-definition.scss +2 -2
  82. package/styles/combo-box/_bootstrap-definition.scss +2 -2
  83. package/styles/combo-box/_bootstrap4-definition.scss +11 -11
  84. package/styles/combo-box/_bootstrap5-definition.scss +2 -2
  85. package/styles/combo-box/_fabric-dark-definition.scss +2 -2
  86. package/styles/combo-box/_fabric-definition.scss +2 -2
  87. package/styles/combo-box/_fluent-definition.scss +2 -2
  88. package/styles/combo-box/_fusionnew-definition.scss +2 -2
  89. package/styles/combo-box/_highcontrast-definition.scss +2 -2
  90. package/styles/combo-box/_highcontrast-light-definition.scss +3 -3
  91. package/styles/combo-box/_material-dark-definition.scss +2 -2
  92. package/styles/combo-box/_material-definition.scss +2 -2
  93. package/styles/combo-box/_material3-definition.scss +2 -2
  94. package/styles/combo-box/_tailwind-definition.scss +2 -2
  95. package/styles/combo-box/bootstrap4.css +13 -2
  96. package/styles/combo-box/material3-dark.scss +1 -1
  97. package/styles/combo-box/material3.scss +1 -1
  98. package/styles/drop-down-base/_all.scss +2 -2
  99. package/styles/drop-down-base/_bootstrap-dark-definition.scss +83 -83
  100. package/styles/drop-down-base/_bootstrap-definition.scss +83 -83
  101. package/styles/drop-down-base/_bootstrap4-definition.scss +90 -90
  102. package/styles/drop-down-base/_bootstrap5-definition.scss +117 -117
  103. package/styles/drop-down-base/_definition.scss +23 -23
  104. package/styles/drop-down-base/_fabric-dark-definition.scss +86 -86
  105. package/styles/drop-down-base/_fabric-definition.scss +84 -84
  106. package/styles/drop-down-base/_fluent-definition.scss +121 -121
  107. package/styles/drop-down-base/_fusionnew-definition.scss +117 -117
  108. package/styles/drop-down-base/_highcontrast-definition.scss +105 -105
  109. package/styles/drop-down-base/_highcontrast-light-definition.scss +105 -105
  110. package/styles/drop-down-base/_layout.scss +195 -195
  111. package/styles/drop-down-base/_material-dark-definition.scss +86 -86
  112. package/styles/drop-down-base/_material-definition.scss +85 -85
  113. package/styles/drop-down-base/_material3-definition.scss +87 -87
  114. package/styles/drop-down-base/_tailwind-definition.scss +129 -129
  115. package/styles/drop-down-base/_theme.scss +391 -391
  116. package/styles/drop-down-base/material3-dark.scss +1 -1
  117. package/styles/drop-down-base/material3.scss +1 -1
  118. package/styles/drop-down-list/_all.scss +3 -3
  119. package/styles/drop-down-list/_bootstrap-dark-definition.scss +157 -157
  120. package/styles/drop-down-list/_bootstrap-definition.scss +156 -156
  121. package/styles/drop-down-list/_bootstrap4-definition.scss +202 -191
  122. package/styles/drop-down-list/_bootstrap5-definition.scss +201 -201
  123. package/styles/drop-down-list/_fabric-dark-definition.scss +128 -128
  124. package/styles/drop-down-list/_fabric-definition.scss +124 -124
  125. package/styles/drop-down-list/_fluent-definition.scss +185 -185
  126. package/styles/drop-down-list/_fusionnew-definition.scss +201 -201
  127. package/styles/drop-down-list/_highcontrast-definition.scss +142 -142
  128. package/styles/drop-down-list/_highcontrast-light-definition.scss +144 -144
  129. package/styles/drop-down-list/_layout.scss +310 -310
  130. package/styles/drop-down-list/_material-dark-definition.scss +143 -143
  131. package/styles/drop-down-list/_material-definition.scss +167 -167
  132. package/styles/drop-down-list/_material3-definition.scss +180 -180
  133. package/styles/drop-down-list/_tailwind-definition.scss +134 -134
  134. package/styles/drop-down-list/_theme.scss +10 -10
  135. package/styles/drop-down-list/bootstrap4.css +13 -2
  136. package/styles/drop-down-list/icons/_bootstrap-dark.scss +14 -14
  137. package/styles/drop-down-list/icons/_bootstrap.scss +14 -14
  138. package/styles/drop-down-list/icons/_bootstrap4.scss +14 -14
  139. package/styles/drop-down-list/icons/_bootstrap5.scss +14 -14
  140. package/styles/drop-down-list/icons/_fabric-dark.scss +14 -14
  141. package/styles/drop-down-list/icons/_fabric.scss +14 -14
  142. package/styles/drop-down-list/icons/_fluent.scss +14 -14
  143. package/styles/drop-down-list/icons/_fusionnew.scss +14 -14
  144. package/styles/drop-down-list/icons/_highcontrast-light.scss +14 -14
  145. package/styles/drop-down-list/icons/_highcontrast.scss +14 -14
  146. package/styles/drop-down-list/icons/_material-dark.scss +14 -14
  147. package/styles/drop-down-list/icons/_material.scss +14 -14
  148. package/styles/drop-down-list/icons/_material3.scss +14 -14
  149. package/styles/drop-down-list/icons/_tailwind.scss +14 -14
  150. package/styles/drop-down-list/material3-dark.scss +1 -1
  151. package/styles/drop-down-list/material3.scss +1 -1
  152. package/styles/drop-down-tree/_all.scss +2 -2
  153. package/styles/drop-down-tree/_bootstrap-dark-definition.scss +71 -71
  154. package/styles/drop-down-tree/_bootstrap-definition.scss +70 -70
  155. package/styles/drop-down-tree/_bootstrap4-definition.scss +71 -71
  156. package/styles/drop-down-tree/_bootstrap5-definition.scss +59 -59
  157. package/styles/drop-down-tree/_fabric-dark-definition.scss +71 -71
  158. package/styles/drop-down-tree/_fabric-definition.scss +71 -71
  159. package/styles/drop-down-tree/_fluent-definition.scss +65 -65
  160. package/styles/drop-down-tree/_fusionnew-definition.scss +59 -59
  161. package/styles/drop-down-tree/_highcontrast-definition.scss +71 -71
  162. package/styles/drop-down-tree/_highcontrast-light-definition.scss +71 -71
  163. package/styles/drop-down-tree/_layout.scss +1418 -1412
  164. package/styles/drop-down-tree/_material-dark-definition.scss +72 -72
  165. package/styles/drop-down-tree/_material-definition.scss +72 -72
  166. package/styles/drop-down-tree/_material3-definition.scss +76 -76
  167. package/styles/drop-down-tree/_tailwind-definition.scss +61 -61
  168. package/styles/drop-down-tree/_theme.scss +132 -132
  169. package/styles/drop-down-tree/fluent-dark.css +2 -0
  170. package/styles/drop-down-tree/fluent.css +2 -0
  171. package/styles/drop-down-tree/icons/_bootstrap-dark.scss +11 -11
  172. package/styles/drop-down-tree/icons/_bootstrap.scss +11 -11
  173. package/styles/drop-down-tree/icons/_bootstrap4.scss +11 -11
  174. package/styles/drop-down-tree/icons/_bootstrap5.scss +11 -11
  175. package/styles/drop-down-tree/icons/_fabric-dark.scss +11 -11
  176. package/styles/drop-down-tree/icons/_fabric.scss +11 -11
  177. package/styles/drop-down-tree/icons/_fluent.scss +11 -11
  178. package/styles/drop-down-tree/icons/_fusionnew.scss +11 -11
  179. package/styles/drop-down-tree/icons/_highcontrast-light.scss +11 -11
  180. package/styles/drop-down-tree/icons/_highcontrast.scss +11 -11
  181. package/styles/drop-down-tree/icons/_material-dark.scss +11 -11
  182. package/styles/drop-down-tree/icons/_material.scss +11 -11
  183. package/styles/drop-down-tree/icons/_material3.scss +11 -11
  184. package/styles/drop-down-tree/icons/_tailwind-dark.scss +11 -11
  185. package/styles/drop-down-tree/icons/_tailwind.scss +11 -11
  186. package/styles/drop-down-tree/material3-dark.scss +1 -1
  187. package/styles/drop-down-tree/material3.scss +1 -1
  188. package/styles/fabric-dark.css +13 -2
  189. package/styles/fabric.css +13 -2
  190. package/styles/fluent-dark.css +14 -1
  191. package/styles/fluent.css +14 -1
  192. package/styles/highcontrast-light.css +12 -1
  193. package/styles/highcontrast.css +12 -1
  194. package/styles/list-box/_all.scss +2 -2
  195. package/styles/list-box/_bootstrap-dark-definition.scss +126 -126
  196. package/styles/list-box/_bootstrap-definition.scss +119 -119
  197. package/styles/list-box/_bootstrap4-definition.scss +124 -124
  198. package/styles/list-box/_bootstrap5-definition.scss +120 -120
  199. package/styles/list-box/_fabric-dark-definition.scss +126 -126
  200. package/styles/list-box/_fabric-definition.scss +119 -119
  201. package/styles/list-box/_fluent-definition.scss +120 -120
  202. package/styles/list-box/_fusionnew-definition.scss +111 -111
  203. package/styles/list-box/_highcontrast-definition.scss +119 -119
  204. package/styles/list-box/_highcontrast-light-definition.scss +126 -126
  205. package/styles/list-box/_layout.scss +542 -542
  206. package/styles/list-box/_material-dark-definition.scss +126 -126
  207. package/styles/list-box/_material-definition.scss +119 -119
  208. package/styles/list-box/_material3-definition.scss +119 -119
  209. package/styles/list-box/_tailwind-definition.scss +119 -119
  210. package/styles/list-box/_theme.scss +382 -382
  211. package/styles/list-box/icons/_bootstrap-dark.scss +25 -25
  212. package/styles/list-box/icons/_bootstrap.scss +25 -25
  213. package/styles/list-box/icons/_bootstrap4.scss +25 -25
  214. package/styles/list-box/icons/_bootstrap5.scss +25 -25
  215. package/styles/list-box/icons/_fabric-dark.scss +25 -25
  216. package/styles/list-box/icons/_fabric.scss +25 -25
  217. package/styles/list-box/icons/_fluent.scss +25 -25
  218. package/styles/list-box/icons/_fusionnew.scss +25 -25
  219. package/styles/list-box/icons/_highcontrast-light.scss +25 -25
  220. package/styles/list-box/icons/_highcontrast.scss +25 -25
  221. package/styles/list-box/icons/_material-dark.scss +25 -25
  222. package/styles/list-box/icons/_material.scss +25 -25
  223. package/styles/list-box/icons/_material3.scss +25 -25
  224. package/styles/list-box/icons/_tailwind-dark.scss +25 -25
  225. package/styles/list-box/icons/_tailwind.scss +25 -25
  226. package/styles/list-box/material3-dark.scss +1 -1
  227. package/styles/list-box/material3.scss +1 -1
  228. package/styles/material-dark.css +12 -1
  229. package/styles/material.css +12 -1
  230. package/styles/material3-dark.css +10 -0
  231. package/styles/material3-dark.scss +1 -1
  232. package/styles/material3.css +10 -0
  233. package/styles/material3.scss +1 -1
  234. package/styles/mention/_all.scss +1 -1
  235. package/styles/mention/_bootstrap-dark-definition.scss +3 -3
  236. package/styles/mention/_bootstrap-definition.scss +3 -3
  237. package/styles/mention/_bootstrap4-definition.scss +3 -3
  238. package/styles/mention/_bootstrap5-definition.scss +1 -1
  239. package/styles/mention/_fabric-dark-definition.scss +2 -2
  240. package/styles/mention/_fabric-definition.scss +3 -3
  241. package/styles/mention/_fluent-definition.scss +1 -1
  242. package/styles/mention/_fusionnew-definition.scss +1 -1
  243. package/styles/mention/_highcontrast-definition.scss +3 -3
  244. package/styles/mention/_highcontrast-light-definition.scss +3 -3
  245. package/styles/mention/_layout.scss +6 -6
  246. package/styles/mention/_material-dark-definition.scss +3 -3
  247. package/styles/mention/_material-definition.scss +3 -3
  248. package/styles/mention/_material3-definition.scss +1 -1
  249. package/styles/mention/_tailwind-definition.scss +1 -1
  250. package/styles/mention/material3-dark.scss +1 -1
  251. package/styles/mention/material3.scss +1 -1
  252. package/styles/multi-select/_all.scss +2 -2
  253. package/styles/multi-select/_bootstrap-dark-definition.scss +198 -196
  254. package/styles/multi-select/_bootstrap-definition.scss +192 -190
  255. package/styles/multi-select/_bootstrap4-definition.scss +278 -257
  256. package/styles/multi-select/_bootstrap5-definition.scss +229 -227
  257. package/styles/multi-select/_fabric-dark-definition.scss +187 -185
  258. package/styles/multi-select/_fabric-definition.scss +183 -181
  259. package/styles/multi-select/_fluent-definition.scss +240 -238
  260. package/styles/multi-select/_fusionnew-definition.scss +227 -227
  261. package/styles/multi-select/_highcontrast-definition.scss +298 -296
  262. package/styles/multi-select/_highcontrast-light-definition.scss +297 -295
  263. package/styles/multi-select/_layout.scss +2199 -2188
  264. package/styles/multi-select/_material-dark-definition.scss +230 -228
  265. package/styles/multi-select/_material-definition.scss +223 -221
  266. package/styles/multi-select/_material3-definition.scss +246 -246
  267. package/styles/multi-select/_tailwind-definition.scss +234 -232
  268. package/styles/multi-select/_theme.scss +586 -586
  269. package/styles/multi-select/bootstrap-dark.css +12 -1
  270. package/styles/multi-select/bootstrap.css +12 -1
  271. package/styles/multi-select/bootstrap4.css +31 -1
  272. package/styles/multi-select/bootstrap5-dark.css +12 -1
  273. package/styles/multi-select/bootstrap5.css +12 -1
  274. package/styles/multi-select/fabric-dark.css +13 -2
  275. package/styles/multi-select/fabric.css +13 -2
  276. package/styles/multi-select/fluent-dark.css +12 -1
  277. package/styles/multi-select/fluent.css +12 -1
  278. package/styles/multi-select/highcontrast-light.css +12 -1
  279. package/styles/multi-select/highcontrast.css +12 -1
  280. package/styles/multi-select/icons/_bootstrap-dark.scss +26 -26
  281. package/styles/multi-select/icons/_bootstrap.scss +26 -26
  282. package/styles/multi-select/icons/_bootstrap4.scss +37 -37
  283. package/styles/multi-select/icons/_bootstrap5.scss +26 -26
  284. package/styles/multi-select/icons/_fabric-dark.scss +26 -26
  285. package/styles/multi-select/icons/_fabric.scss +26 -26
  286. package/styles/multi-select/icons/_fluent.scss +55 -55
  287. package/styles/multi-select/icons/_fusionnew.scss +26 -26
  288. package/styles/multi-select/icons/_highcontrast-light.scss +26 -26
  289. package/styles/multi-select/icons/_highcontrast.scss +26 -26
  290. package/styles/multi-select/icons/_material-dark.scss +693 -693
  291. package/styles/multi-select/icons/_material.scss +693 -693
  292. package/styles/multi-select/icons/_material3.scss +692 -692
  293. package/styles/multi-select/icons/_tailwind.scss +26 -26
  294. package/styles/multi-select/material-dark.css +12 -1
  295. package/styles/multi-select/material.css +12 -1
  296. package/styles/multi-select/material3-dark.css +10 -0
  297. package/styles/multi-select/material3-dark.scss +1 -1
  298. package/styles/multi-select/material3.css +10 -0
  299. package/styles/multi-select/material3.scss +1 -1
  300. package/styles/multi-select/tailwind-dark.css +12 -1
  301. package/styles/multi-select/tailwind.css +12 -1
  302. package/styles/tailwind-dark.css +12 -1
  303. package/styles/tailwind.css +12 -1
  304. package/.eslintrc.json +0 -260
  305. package/dist/ej2-dropdowns.min.js +0 -10
  306. package/tslint.json +0 -111
@@ -0,0 +1,176 @@
1
+ /**
2
+ * FloatLable Moduel
3
+ * Specifies whether to display the floating label above the input element.
4
+ */
5
+ import { removeClass, addClass, detach } from '@syncfusion/ej2-base';
6
+ import { attributes, isNullOrUndefined, createElement, getUniqueID } from '@syncfusion/ej2-base';
7
+ import { FloatLabelType } from '@syncfusion/ej2-inputs';
8
+
9
+ const FLOATLINE: string = 'e-float-line';
10
+ const FLOATTEXT: string = 'e-float-text';
11
+ const LABELTOP: string = 'e-label-top';
12
+ const LABELBOTTOM: string = 'e-label-bottom';
13
+
14
+ /* eslint-disable valid-jsdoc */
15
+
16
+ /**
17
+ * Function to create Float Label element.
18
+ *
19
+ * @param {HTMLDivElement} overAllWrapper - Overall wrapper of multiselect.
20
+ * @param {HTMLElement} searchWrapper - Search wrapper of multiselect.
21
+ * @param {HTMLElement} element - The given html element.
22
+ * @param {HTMLInputElement} inputElement - Specify the input wrapper.
23
+ * @param {number[] | string[] | boolean[]} value - Value of the MultiSelect.
24
+ * @param {FloatLabelType} floatLabelType - Specify the FloatLabel Type.
25
+ * @param {string} placeholder - Specify the PlaceHolder text.
26
+ */
27
+ export function createFloatLabel(
28
+ overAllWrapper: HTMLDivElement,
29
+ searchWrapper: HTMLElement, element: HTMLElement,
30
+ inputElement: HTMLInputElement, value: number[] | string[] | boolean[], floatLabelType: FloatLabelType,
31
+ placeholder: string): void {
32
+ const floatLinelement: HTMLElement = createElement('span', { className: FLOATLINE });
33
+ const floatLabelElement: HTMLElement = createElement('label', { className: FLOATTEXT });
34
+ const id: string = element.getAttribute('id') ? element.getAttribute('id') : getUniqueID('ej2_multiselect');
35
+ element.id = id;
36
+ if (!isNullOrUndefined(element.id) && element.id !== '') {
37
+ floatLabelElement.id = 'label_' + element.id.replace(/ /g, '_');
38
+ attributes(inputElement, { 'aria-labelledby': floatLabelElement.id });
39
+ }
40
+ if (!isNullOrUndefined(inputElement.placeholder) && inputElement.placeholder !== '') {
41
+ floatLabelElement.innerText = encodePlaceholder(inputElement.placeholder);
42
+ inputElement.removeAttribute('placeholder');
43
+ }
44
+ floatLabelElement.innerText = encodePlaceholder(placeholder);
45
+ searchWrapper.appendChild(floatLinelement);
46
+ searchWrapper.appendChild(floatLabelElement);
47
+ overAllWrapper.classList.add('e-float-input');
48
+ updateFloatLabelState(value, floatLabelElement);
49
+ if (floatLabelType === 'Always') {
50
+ if (floatLabelElement.classList.contains(LABELBOTTOM)) {
51
+ removeClass([floatLabelElement], LABELBOTTOM);
52
+ }
53
+ addClass([floatLabelElement], LABELTOP);
54
+ }
55
+ }
56
+
57
+ /**
58
+ * Function to update status of the Float Label element.
59
+ *
60
+ * @param {string[] | number[] | boolean[]} value - Value of the MultiSelect.
61
+ * @param {HTMLElement} label - Float label element.
62
+ */
63
+ export function updateFloatLabelState(value: string[] | number[] | boolean[], label: HTMLElement): void {
64
+ if (value && value.length > 0) {
65
+ addClass([label], LABELTOP);
66
+ removeClass([label], LABELBOTTOM);
67
+ } else {
68
+ removeClass([label], LABELTOP);
69
+ addClass([label], LABELBOTTOM);
70
+ }
71
+ }
72
+
73
+ /**
74
+ * Function to remove Float Label element.
75
+ *
76
+ * @param {HTMLDivElement} overAllWrapper - Overall wrapper of multiselect.
77
+ * @param {HTMLDivElement} componentWrapper - Wrapper element of multiselect.
78
+ * @param {HTMLElement} searchWrapper - Search wrapper of multiselect.
79
+ * @param {HTMLInputElement} inputElement - Specify the input wrapper.
80
+ * @param {number[] | string[] | boolean[]} value - Value of the MultiSelect.
81
+ * @param {FloatLabelType} floatLabelType - Specify the FloatLabel Type.
82
+ * @param {string} placeholder - Specify the PlaceHolder text.
83
+ */
84
+ export function removeFloating(
85
+ overAllWrapper: HTMLDivElement,
86
+ componentWrapper: HTMLDivElement,
87
+ searchWrapper: HTMLElement,
88
+ inputElement: HTMLInputElement,
89
+ value: number[] | string[] | boolean[],
90
+ floatLabelType: FloatLabelType,
91
+ placeholder: string): void {
92
+ const placeholderElement: HTMLElement = componentWrapper.querySelector('.' + FLOATTEXT) as HTMLElement;
93
+ const floatLine: HTMLElement = componentWrapper.querySelector('.' + FLOATLINE) as HTMLElement;
94
+ let placeholderText: string;
95
+ if (!isNullOrUndefined(placeholderElement)) {
96
+ placeholderText = placeholderElement.innerText;
97
+ detach(searchWrapper.querySelector('.' + FLOATTEXT));
98
+ setPlaceHolder(value, inputElement, placeholderText);
99
+ if (!isNullOrUndefined(floatLine)) {
100
+ detach(searchWrapper.querySelector('.' + FLOATLINE));
101
+ }
102
+ } else {
103
+ placeholderText = (placeholder !== null) ? placeholder : '';
104
+ setPlaceHolder(value, inputElement, placeholderText);
105
+ }
106
+ overAllWrapper.classList.remove('e-float-input');
107
+ }
108
+
109
+ /**
110
+ * Function to set the placeholder to the element.
111
+ *
112
+ * @param {number[] | string[] | boolean[]} value - Value of the MultiSelect.
113
+ * @param {HTMLInputElement} inputElement - Specify the input wrapper.
114
+ * @param {string} placeholder - Specify the PlaceHolder text.
115
+ */
116
+ export function setPlaceHolder(value: number[] | string[] | boolean[], inputElement: HTMLInputElement, placeholder: string): void {
117
+ if (value && value.length) {
118
+ inputElement.placeholder = '';
119
+ } else {
120
+ inputElement.placeholder = placeholder;
121
+ }
122
+ }
123
+
124
+ /**
125
+ * Function for focusing the Float Element.
126
+ *
127
+ * @param {HTMLDivElement} overAllWrapper - Overall wrapper of multiselect.
128
+ * @param {HTMLDivElement} componentWrapper - Wrapper element of multiselect.
129
+ */
130
+ export function floatLabelFocus(overAllWrapper: HTMLDivElement, componentWrapper: HTMLDivElement): void {
131
+ overAllWrapper.classList.add('e-input-focus');
132
+ const label: Element = componentWrapper.querySelector('.' + FLOATTEXT);
133
+ if (!isNullOrUndefined(label)) {
134
+ addClass([label], LABELTOP);
135
+ if (label.classList.contains(LABELBOTTOM)) {
136
+ removeClass([label], LABELBOTTOM);
137
+ }
138
+ }
139
+ }
140
+ /* eslint-disable @typescript-eslint/no-unused-vars */
141
+ /**
142
+ * Function to focus the Float Label element.
143
+ *
144
+ * @param {HTMLDivElement} overAllWrapper - Overall wrapper of multiselect.
145
+ * @param {HTMLDivElement} componentWrapper - Wrapper element of multiselect.
146
+ * @param {number[] | string[] | boolean[]} value - Value of the MultiSelect.
147
+ * @param {FloatLabelType} floatLabelType - Specify the FloatLabel Type.
148
+ * @param {string} placeholder - Specify the PlaceHolder text.
149
+ */
150
+ export function floatLabelBlur(
151
+ overAllWrapper: HTMLDivElement,
152
+ componentWrapper: HTMLDivElement,
153
+ value: number[] | string[] | boolean[],
154
+ floatLabelType: FloatLabelType,
155
+ placeholder: string): void {
156
+ /* eslint-enable @typescript-eslint/no-unused-vars */
157
+ overAllWrapper.classList.remove('e-input-focus');
158
+ const label: Element = componentWrapper.querySelector('.' + FLOATTEXT);
159
+ if (value && value.length <= 0 && floatLabelType === 'Auto' && !isNullOrUndefined(label)) {
160
+ if (label.classList.contains(LABELTOP)) {
161
+ removeClass([label], LABELTOP);
162
+ }
163
+ addClass([label], LABELBOTTOM);
164
+ }
165
+ }
166
+ export function encodePlaceholder(placeholder: string): string {
167
+ let result: string = '';
168
+ if (!isNullOrUndefined(placeholder) && placeholder !== '') {
169
+ const spanElement: HTMLElement = document.createElement('span');
170
+ spanElement.innerHTML = '<input placeholder="' + placeholder + '"/>';
171
+ const hiddenInput: HTMLInputElement = (spanElement.children[0]) as HTMLInputElement;
172
+ result = hiddenInput.placeholder;
173
+ }
174
+ return result;
175
+ }
176
+ /* eslint-enable valid-jsdoc */
@@ -0,0 +1,70 @@
1
+ import { Component, KeyboardEventArgs } from '@syncfusion/ej2-base';
2
+ import { Popup } from '@syncfusion/ej2-popups';
3
+ /**
4
+ * Specifies mulitselct interfaces.
5
+ *
6
+ * @hidden
7
+ */
8
+
9
+
10
+ export interface IMulitSelect extends Component<HTMLElement> {
11
+ listCurrentOptions?: { [key: string]: Object }
12
+ inputElement?: HTMLInputElement
13
+ popupWrapper?: HTMLDivElement
14
+ selectAll?(state?: boolean): void
15
+ selectAllHeight?: number
16
+ searchBoxHeight?: number
17
+ onInput?(): void
18
+ filterInput?: HTMLInputElement
19
+ keyUp?(e?: KeyboardEventArgs): void
20
+ onKeyDown?(e?: KeyboardEventArgs): void
21
+ mainList?: HTMLElement
22
+ list?: HTMLElement
23
+ listData?: { [key: string]: Object }[]
24
+ targetElement?(): string
25
+ targetInputElement?: HTMLInputElement | string
26
+ selectAllText?: string
27
+ unSelectAllText?: string
28
+ popupObj?: Popup
29
+ onDocumentFocus?: boolean
30
+ selectAllItems?(status: boolean, event?: MouseEvent): void
31
+ hidePopup?(): void
32
+ refreshPopup?(): void
33
+ refreshListItems?(data?: string): void
34
+ filterBarPlaceholder?: string
35
+ overAllWrapper?: HTMLDivElement
36
+ searchWrapper?: HTMLElement
37
+ componentWrapper?: HTMLDivElement
38
+ templateList?: { [key: string]: Object }
39
+ itemTemplate?: string
40
+ headerTemplate?: string
41
+ mobFilter?: boolean
42
+ header?: HTMLElement
43
+ updateDelimView?(): void
44
+ updateValueState?(event?: KeyboardEventArgs | MouseEvent, newVal?: [string | number], oldVal?: [string | number]): void
45
+ tempValues?: [number | string]
46
+ value?: [number | string]
47
+ refreshInputHight?(): void
48
+ refreshPlaceHolder?(): void
49
+ ulElement?: HTMLElement
50
+ hiddenElement?: HTMLSelectElement
51
+ dispatchEvent?(element?: HTMLElement, type?: string): void
52
+ inputFocus?: boolean
53
+ enableSelectionOrder?: boolean
54
+ focusAtFirstListItem(): void
55
+ isPopupOpen(): boolean
56
+ showSelectAll: boolean
57
+ scrollFocusStatus: boolean
58
+ focused: boolean
59
+ onBlurHandler(eve?: MouseEvent, isDocClickFromCheck?: boolean): void
60
+ keyAction?: boolean
61
+ removeFocus?(): void
62
+ getLocaleName?(): string
63
+ filterParent: HTMLElement
64
+ enableGroupCheckBox : boolean
65
+ pasteHandler?(e?: KeyboardEventArgs): void
66
+ cssClass: string
67
+ isDynamicDataChange?: boolean
68
+ search?(e: KeyboardEventArgs): void
69
+ allowFiltering?: boolean
70
+ }