@syncfusion/ej2-splitbuttons 33.2.3 → 34.1.29

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 (778) hide show
  1. package/dist/ej2-splitbuttons.min.js +2 -2
  2. package/dist/ej2-splitbuttons.umd.min.js +2 -2
  3. package/dist/ej2-splitbuttons.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-splitbuttons.es2015.js +1 -1
  5. package/dist/es6/ej2-splitbuttons.es2015.js.map +1 -1
  6. package/dist/es6/ej2-splitbuttons.es5.js +1 -1
  7. package/dist/es6/ej2-splitbuttons.es5.js.map +1 -1
  8. package/dist/global/ej2-splitbuttons.min.js +2 -2
  9. package/dist/global/ej2-splitbuttons.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/package.json +3 -3
  12. package/src/common/common.d.ts +1 -0
  13. package/src/drop-down-button/drop-down-button.js +1 -1
  14. package/styles/bds-lite.css +144 -829
  15. package/styles/bds-lite.scss +4 -7
  16. package/styles/bds.css +165 -1192
  17. package/styles/bds.scss +8 -11
  18. package/styles/bootstrap-dark-lite.css +0 -41
  19. package/styles/bootstrap-dark-lite.scss +4 -7
  20. package/styles/bootstrap-dark.css +0 -41
  21. package/styles/bootstrap-dark.scss +8 -11
  22. package/styles/bootstrap-lite.css +0 -41
  23. package/styles/bootstrap-lite.scss +4 -7
  24. package/styles/bootstrap.css +0 -41
  25. package/styles/bootstrap.scss +8 -11
  26. package/styles/bootstrap4-lite.css +0 -41
  27. package/styles/bootstrap4-lite.scss +4 -7
  28. package/styles/bootstrap4.css +0 -41
  29. package/styles/bootstrap4.scss +8 -11
  30. package/styles/bootstrap5-dark-lite.css +0 -42
  31. package/styles/bootstrap5-dark-lite.scss +4 -7
  32. package/styles/bootstrap5-dark.css +0 -42
  33. package/styles/bootstrap5-dark.scss +8 -11
  34. package/styles/bootstrap5-lite.css +0 -42
  35. package/styles/bootstrap5-lite.scss +4 -8
  36. package/styles/bootstrap5.3-lite.css +80 -794
  37. package/styles/bootstrap5.3-lite.scss +4 -8
  38. package/styles/bootstrap5.3.css +78 -1128
  39. package/styles/bootstrap5.3.scss +8 -12
  40. package/styles/bootstrap5.css +0 -42
  41. package/styles/bootstrap5.scss +8 -12
  42. package/styles/button-group/_all.scss +2 -2
  43. package/styles/button-group/_bds-definition.scss +2 -4
  44. package/styles/button-group/_bigger.scss +2 -2
  45. package/styles/button-group/_bootstrap-dark-definition.scss +1 -4
  46. package/styles/button-group/_bootstrap-definition.scss +3 -4
  47. package/styles/button-group/_bootstrap4-definition.scss +3 -4
  48. package/styles/button-group/_bootstrap5-dark-definition.scss +2 -4
  49. package/styles/button-group/_bootstrap5-definition.scss +2 -4
  50. package/styles/button-group/_bootstrap5.3-definition.scss +2 -4
  51. package/styles/button-group/_fabric-dark-definition.scss +2 -4
  52. package/styles/button-group/_fabric-definition.scss +2 -4
  53. package/styles/button-group/_fluent-dark-definition.scss +2 -4
  54. package/styles/button-group/_fluent-definition.scss +2 -4
  55. package/styles/button-group/_fluent2-definition.scss +2 -4
  56. package/styles/button-group/_group-button-mixin.scss +7 -5
  57. package/styles/button-group/_highcontrast-definition.scss +2 -4
  58. package/styles/button-group/_highcontrast-light-definition.scss +1 -4
  59. package/styles/button-group/_layout.scss +6 -6
  60. package/styles/button-group/_material-dark-definition.scss +1 -4
  61. package/styles/button-group/_material-definition.scss +2 -4
  62. package/styles/button-group/_material3-dark-definition.scss +2 -4
  63. package/styles/button-group/_material3-definition.scss +2 -4
  64. package/styles/button-group/_tailwind-dark-definition.scss +2 -4
  65. package/styles/button-group/_tailwind-definition.scss +2 -4
  66. package/styles/button-group/_tailwind3-definition.scss +2 -4
  67. package/styles/button-group/_theme.scss +71 -68
  68. package/styles/button-group/_variables.scss +2 -0
  69. package/styles/button-group/bds.css +0 -189
  70. package/styles/button-group/bds.scss +2 -4
  71. package/styles/button-group/bootstrap-dark.scss +2 -4
  72. package/styles/button-group/bootstrap.scss +2 -4
  73. package/styles/button-group/bootstrap4.scss +2 -4
  74. package/styles/button-group/bootstrap5-dark.scss +2 -4
  75. package/styles/button-group/bootstrap5.3.css +8 -260
  76. package/styles/button-group/bootstrap5.3.scss +2 -4
  77. package/styles/button-group/bootstrap5.scss +2 -4
  78. package/styles/button-group/fabric-dark.scss +2 -4
  79. package/styles/button-group/fabric.scss +2 -4
  80. package/styles/button-group/fluent-dark.scss +2 -4
  81. package/styles/button-group/fluent.scss +2 -4
  82. package/styles/button-group/fluent2.css +0 -258
  83. package/styles/button-group/fluent2.scss +2 -4
  84. package/styles/button-group/highcontrast-light.scss +2 -4
  85. package/styles/button-group/highcontrast.scss +2 -4
  86. package/styles/button-group/material-dark.scss +2 -4
  87. package/styles/button-group/material.scss +2 -4
  88. package/styles/button-group/material3-dark.css +0 -246
  89. package/styles/button-group/material3-dark.scss +2 -4
  90. package/styles/button-group/material3.css +0 -252
  91. package/styles/button-group/material3.scss +2 -4
  92. package/styles/button-group/tailwind-dark.scss +2 -4
  93. package/styles/button-group/tailwind.scss +2 -4
  94. package/styles/button-group/tailwind3.css +0 -222
  95. package/styles/button-group/tailwind3.scss +2 -4
  96. package/styles/drop-down-button/_all.scss +2 -2
  97. package/styles/drop-down-button/_bds-definition.scss +1 -4
  98. package/styles/drop-down-button/_bigger.scss +4 -4
  99. package/styles/drop-down-button/_bootstrap-dark-definition.scss +2 -4
  100. package/styles/drop-down-button/_bootstrap-definition.scss +2 -4
  101. package/styles/drop-down-button/_bootstrap4-definition.scss +2 -4
  102. package/styles/drop-down-button/_bootstrap5-dark-definition.scss +2 -4
  103. package/styles/drop-down-button/_bootstrap5-definition.scss +2 -4
  104. package/styles/drop-down-button/_bootstrap5.3-definition.scss +2 -4
  105. package/styles/drop-down-button/_fabric-dark-definition.scss +2 -4
  106. package/styles/drop-down-button/_fabric-definition.scss +2 -4
  107. package/styles/drop-down-button/_fluent-dark-definition.scss +2 -4
  108. package/styles/drop-down-button/_fluent-definition.scss +2 -4
  109. package/styles/drop-down-button/_fluent2-definition.scss +2 -4
  110. package/styles/drop-down-button/_fusionnew-definition.scss +2 -4
  111. package/styles/drop-down-button/_highcontrast-definition.scss +2 -4
  112. package/styles/drop-down-button/_highcontrast-light-definition.scss +2 -4
  113. package/styles/drop-down-button/_layout.scss +5 -4
  114. package/styles/drop-down-button/_material-dark-definition.scss +2 -4
  115. package/styles/drop-down-button/_material-definition.scss +2 -4
  116. package/styles/drop-down-button/_material3-dark-definition.scss +2 -4
  117. package/styles/drop-down-button/_material3-definition.scss +2 -4
  118. package/styles/drop-down-button/_tailwind-dark-definition.scss +2 -4
  119. package/styles/drop-down-button/_tailwind-definition.scss +2 -4
  120. package/styles/drop-down-button/_tailwind3-definition.scss +2 -4
  121. package/styles/drop-down-button/_theme.scss +3 -2
  122. package/styles/drop-down-button/_variables.scss +2 -0
  123. package/styles/drop-down-button/bds.css +0 -325
  124. package/styles/drop-down-button/bds.scss +2 -5
  125. package/styles/drop-down-button/bootstrap-dark.scss +2 -5
  126. package/styles/drop-down-button/bootstrap.scss +2 -5
  127. package/styles/drop-down-button/bootstrap4.scss +2 -5
  128. package/styles/drop-down-button/bootstrap5-dark.css +0 -1
  129. package/styles/drop-down-button/bootstrap5-dark.scss +2 -5
  130. package/styles/drop-down-button/bootstrap5.3.css +0 -253
  131. package/styles/drop-down-button/bootstrap5.3.scss +2 -5
  132. package/styles/drop-down-button/bootstrap5.css +0 -1
  133. package/styles/drop-down-button/bootstrap5.scss +2 -5
  134. package/styles/drop-down-button/fabric-dark.scss +2 -5
  135. package/styles/drop-down-button/fabric.scss +2 -5
  136. package/styles/drop-down-button/fluent-dark.css +0 -1
  137. package/styles/drop-down-button/fluent-dark.scss +2 -5
  138. package/styles/drop-down-button/fluent.css +0 -1
  139. package/styles/drop-down-button/fluent.scss +2 -5
  140. package/styles/drop-down-button/fluent2.css +0 -259
  141. package/styles/drop-down-button/fluent2.scss +2 -5
  142. package/styles/drop-down-button/highcontrast-light.scss +2 -5
  143. package/styles/drop-down-button/highcontrast.scss +2 -5
  144. package/styles/drop-down-button/icons/_bds.scss +1 -1
  145. package/styles/drop-down-button/icons/_bootstrap-dark.scss +1 -1
  146. package/styles/drop-down-button/icons/_bootstrap.scss +1 -1
  147. package/styles/drop-down-button/icons/_bootstrap4.scss +1 -1
  148. package/styles/drop-down-button/icons/_bootstrap5.3.scss +1 -1
  149. package/styles/drop-down-button/icons/_bootstrap5.scss +1 -1
  150. package/styles/drop-down-button/icons/_fabric-dark.scss +1 -1
  151. package/styles/drop-down-button/icons/_fabric.scss +1 -1
  152. package/styles/drop-down-button/icons/_fluent.scss +1 -1
  153. package/styles/drop-down-button/icons/_fluent2.scss +1 -1
  154. package/styles/drop-down-button/icons/_fusionnew.scss +1 -1
  155. package/styles/drop-down-button/icons/_highcontrast-light.scss +1 -1
  156. package/styles/drop-down-button/icons/_highcontrast.scss +1 -1
  157. package/styles/drop-down-button/icons/_material-dark.scss +1 -1
  158. package/styles/drop-down-button/icons/_material.scss +1 -1
  159. package/styles/drop-down-button/icons/_material3.scss +1 -1
  160. package/styles/drop-down-button/icons/_tailwind-dark.scss +1 -1
  161. package/styles/drop-down-button/icons/_tailwind.scss +1 -1
  162. package/styles/drop-down-button/icons/_tailwind3.scss +1 -1
  163. package/styles/drop-down-button/material-dark.scss +2 -5
  164. package/styles/drop-down-button/material.scss +2 -5
  165. package/styles/drop-down-button/material3-dark.css +0 -247
  166. package/styles/drop-down-button/material3-dark.scss +2 -5
  167. package/styles/drop-down-button/material3.css +0 -253
  168. package/styles/drop-down-button/material3.scss +2 -5
  169. package/styles/drop-down-button/tailwind-dark.css +0 -1
  170. package/styles/drop-down-button/tailwind-dark.scss +2 -5
  171. package/styles/drop-down-button/tailwind.css +0 -1
  172. package/styles/drop-down-button/tailwind.scss +2 -5
  173. package/styles/drop-down-button/tailwind3.css +0 -223
  174. package/styles/drop-down-button/tailwind3.scss +2 -5
  175. package/styles/fabric-dark-lite.css +0 -41
  176. package/styles/fabric-dark-lite.scss +4 -8
  177. package/styles/fabric-dark.css +0 -41
  178. package/styles/fabric-dark.scss +8 -12
  179. package/styles/fabric-lite.css +0 -41
  180. package/styles/fabric-lite.scss +4 -8
  181. package/styles/fabric.css +0 -41
  182. package/styles/fabric.scss +8 -12
  183. package/styles/fluent-dark-lite.css +0 -42
  184. package/styles/fluent-dark-lite.scss +4 -8
  185. package/styles/fluent-dark.css +0 -42
  186. package/styles/fluent-dark.scss +8 -12
  187. package/styles/fluent-lite.css +0 -42
  188. package/styles/fluent-lite.scss +4 -8
  189. package/styles/fluent.css +0 -42
  190. package/styles/fluent.scss +8 -12
  191. package/styles/fluent2-lite.css +84 -814
  192. package/styles/fluent2-lite.scss +4 -8
  193. package/styles/fluent2.css +140 -1214
  194. package/styles/fluent2.scss +8 -12
  195. package/styles/highcontrast-light-lite.css +0 -41
  196. package/styles/highcontrast-light-lite.scss +4 -8
  197. package/styles/highcontrast-light.css +0 -41
  198. package/styles/highcontrast-light.scss +8 -12
  199. package/styles/highcontrast-lite.css +0 -41
  200. package/styles/highcontrast-lite.scss +4 -8
  201. package/styles/highcontrast.css +0 -41
  202. package/styles/highcontrast.scss +8 -12
  203. package/styles/material-dark-lite.css +0 -41
  204. package/styles/material-dark-lite.scss +4 -8
  205. package/styles/material-dark.css +0 -41
  206. package/styles/material-dark.scss +8 -12
  207. package/styles/material-lite.css +0 -41
  208. package/styles/material-lite.scss +4 -7
  209. package/styles/material.css +0 -41
  210. package/styles/material.scss +8 -11
  211. package/styles/material3-dark-lite.css +6 -704
  212. package/styles/material3-dark-lite.scss +4 -8
  213. package/styles/material3-dark.css +80 -1106
  214. package/styles/material3-dark.scss +8 -12
  215. package/styles/material3-lite.css +76 -790
  216. package/styles/material3-lite.scss +4 -8
  217. package/styles/material3.css +74 -1124
  218. package/styles/material3.scss +8 -12
  219. package/styles/progress-button/_all.scss +2 -2
  220. package/styles/progress-button/_bds-definition.scss +15 -11
  221. package/styles/progress-button/_bigger.scss +3 -3
  222. package/styles/progress-button/_bootstrap-dark-definition.scss +2 -4
  223. package/styles/progress-button/_bootstrap-definition.scss +2 -4
  224. package/styles/progress-button/_bootstrap4-definition.scss +2 -4
  225. package/styles/progress-button/_bootstrap5-dark-definition.scss +2 -4
  226. package/styles/progress-button/_bootstrap5-definition.scss +2 -4
  227. package/styles/progress-button/_bootstrap5.3-definition.scss +2 -4
  228. package/styles/progress-button/_fabric-dark-definition.scss +2 -4
  229. package/styles/progress-button/_fabric-definition.scss +2 -4
  230. package/styles/progress-button/_fluent-dark-definition.scss +2 -4
  231. package/styles/progress-button/_fluent-definition.scss +2 -4
  232. package/styles/progress-button/_fluent2-definition.scss +2 -4
  233. package/styles/progress-button/_highcontrast-definition.scss +2 -4
  234. package/styles/progress-button/_highcontrast-light-definition.scss +2 -4
  235. package/styles/progress-button/_layout.scss +2 -1
  236. package/styles/progress-button/_material-dark-definition.scss +2 -4
  237. package/styles/progress-button/_material-definition.scss +2 -4
  238. package/styles/progress-button/_material3-dark-definition.scss +2 -4
  239. package/styles/progress-button/_material3-definition.scss +2 -4
  240. package/styles/progress-button/_tailwind-dark-definition.scss +11 -4
  241. package/styles/progress-button/_tailwind-definition.scss +11 -4
  242. package/styles/progress-button/_tailwind3-definition.scss +2 -4
  243. package/styles/progress-button/_theme.scss +179 -142
  244. package/styles/progress-button/_variables.scss +2 -0
  245. package/styles/progress-button/bds.css +92 -281
  246. package/styles/progress-button/bds.scss +2 -5
  247. package/styles/progress-button/bootstrap-dark.css +0 -41
  248. package/styles/progress-button/bootstrap-dark.scss +2 -5
  249. package/styles/progress-button/bootstrap.css +0 -41
  250. package/styles/progress-button/bootstrap.scss +2 -5
  251. package/styles/progress-button/bootstrap4.css +0 -41
  252. package/styles/progress-button/bootstrap4.scss +2 -5
  253. package/styles/progress-button/bootstrap5-dark.css +0 -41
  254. package/styles/progress-button/bootstrap5-dark.scss +2 -5
  255. package/styles/progress-button/bootstrap5.3.css +0 -293
  256. package/styles/progress-button/bootstrap5.3.scss +2 -5
  257. package/styles/progress-button/bootstrap5.css +0 -41
  258. package/styles/progress-button/bootstrap5.scss +2 -5
  259. package/styles/progress-button/fabric-dark.css +0 -41
  260. package/styles/progress-button/fabric-dark.scss +2 -5
  261. package/styles/progress-button/fabric.css +0 -41
  262. package/styles/progress-button/fabric.scss +2 -5
  263. package/styles/progress-button/fluent-dark.css +0 -41
  264. package/styles/progress-button/fluent-dark.scss +2 -5
  265. package/styles/progress-button/fluent.css +0 -41
  266. package/styles/progress-button/fluent.scss +2 -5
  267. package/styles/progress-button/fluent2.css +0 -299
  268. package/styles/progress-button/fluent2.scss +2 -5
  269. package/styles/progress-button/highcontrast-light.css +0 -41
  270. package/styles/progress-button/highcontrast-light.scss +2 -5
  271. package/styles/progress-button/highcontrast.css +0 -41
  272. package/styles/progress-button/highcontrast.scss +2 -5
  273. package/styles/progress-button/material-dark.css +0 -41
  274. package/styles/progress-button/material-dark.scss +2 -5
  275. package/styles/progress-button/material.css +0 -41
  276. package/styles/progress-button/material.scss +2 -5
  277. package/styles/progress-button/material3-dark.css +0 -287
  278. package/styles/progress-button/material3-dark.scss +2 -5
  279. package/styles/progress-button/material3.css +0 -293
  280. package/styles/progress-button/material3.scss +2 -5
  281. package/styles/progress-button/tailwind-dark.css +0 -41
  282. package/styles/progress-button/tailwind-dark.scss +2 -5
  283. package/styles/progress-button/tailwind.css +0 -41
  284. package/styles/progress-button/tailwind.scss +2 -5
  285. package/styles/progress-button/tailwind3.css +0 -263
  286. package/styles/progress-button/tailwind3.scss +2 -5
  287. package/styles/split-button/_all.scss +2 -2
  288. package/styles/split-button/_bds-definition.scss +4 -3
  289. package/styles/split-button/_bigger.scss +4 -3
  290. package/styles/split-button/_bootstrap-dark-definition.scss +4 -3
  291. package/styles/split-button/_bootstrap-definition.scss +4 -3
  292. package/styles/split-button/_bootstrap4-definition.scss +5 -3
  293. package/styles/split-button/_bootstrap5-dark-definition.scss +4 -3
  294. package/styles/split-button/_bootstrap5-definition.scss +4 -3
  295. package/styles/split-button/_bootstrap5.3-definition.scss +4 -3
  296. package/styles/split-button/_fabric-dark-definition.scss +4 -3
  297. package/styles/split-button/_fabric-definition.scss +4 -3
  298. package/styles/split-button/_fluent-dark-definition.scss +4 -3
  299. package/styles/split-button/_fluent-definition.scss +4 -3
  300. package/styles/split-button/_fluent2-definition.scss +4 -3
  301. package/styles/split-button/_fusionnew-definition.scss +2 -0
  302. package/styles/split-button/_highcontrast-definition.scss +4 -3
  303. package/styles/split-button/_highcontrast-light-definition.scss +4 -3
  304. package/styles/split-button/_layout.scss +10 -9
  305. package/styles/split-button/_material-dark-definition.scss +4 -3
  306. package/styles/split-button/_material-definition.scss +4 -3
  307. package/styles/split-button/_material3-dark-definition.scss +3 -3
  308. package/styles/split-button/_material3-definition.scss +3 -3
  309. package/styles/split-button/_tailwind-dark-definition.scss +3 -3
  310. package/styles/split-button/_tailwind-definition.scss +3 -3
  311. package/styles/split-button/_tailwind3-definition.scss +4 -3
  312. package/styles/split-button/_theme.scss +9 -8
  313. package/styles/split-button/_variables.scss +2 -0
  314. package/styles/split-button/bds.css +0 -325
  315. package/styles/split-button/bds.scss +2 -6
  316. package/styles/split-button/bootstrap-dark.scss +2 -6
  317. package/styles/split-button/bootstrap.scss +2 -6
  318. package/styles/split-button/bootstrap4.scss +2 -6
  319. package/styles/split-button/bootstrap5-dark.css +0 -1
  320. package/styles/split-button/bootstrap5-dark.scss +2 -6
  321. package/styles/split-button/bootstrap5.3.css +0 -253
  322. package/styles/split-button/bootstrap5.3.scss +2 -6
  323. package/styles/split-button/bootstrap5.css +0 -1
  324. package/styles/split-button/bootstrap5.scss +2 -6
  325. package/styles/split-button/fabric-dark.scss +2 -6
  326. package/styles/split-button/fabric.scss +2 -6
  327. package/styles/split-button/fluent-dark.css +0 -1
  328. package/styles/split-button/fluent-dark.scss +2 -6
  329. package/styles/split-button/fluent.css +0 -1
  330. package/styles/split-button/fluent.scss +2 -6
  331. package/styles/split-button/fluent2.css +0 -259
  332. package/styles/split-button/fluent2.scss +2 -6
  333. package/styles/split-button/highcontrast-light.scss +2 -6
  334. package/styles/split-button/highcontrast.scss +2 -6
  335. package/styles/split-button/material-dark.scss +2 -6
  336. package/styles/split-button/material.scss +2 -6
  337. package/styles/split-button/material3-dark.css +0 -247
  338. package/styles/split-button/material3-dark.scss +2 -6
  339. package/styles/split-button/material3.css +0 -253
  340. package/styles/split-button/material3.scss +2 -6
  341. package/styles/split-button/tailwind-dark.css +0 -1
  342. package/styles/split-button/tailwind-dark.scss +2 -6
  343. package/styles/split-button/tailwind.css +0 -1
  344. package/styles/split-button/tailwind.scss +2 -6
  345. package/styles/split-button/tailwind3.css +0 -223
  346. package/styles/split-button/tailwind3.scss +2 -6
  347. package/styles/tailwind-dark-lite.css +0 -42
  348. package/styles/tailwind-dark-lite.scss +4 -8
  349. package/styles/tailwind-dark.css +0 -42
  350. package/styles/tailwind-dark.scss +8 -12
  351. package/styles/tailwind-lite.css +0 -42
  352. package/styles/tailwind-lite.scss +4 -8
  353. package/styles/tailwind.css +0 -42
  354. package/styles/tailwind.scss +8 -12
  355. package/styles/tailwind3-lite.css +22 -656
  356. package/styles/tailwind3-lite.scss +4 -8
  357. package/styles/tailwind3.css +34 -964
  358. package/styles/tailwind3.scss +8 -12
  359. package/styles/button-group/_all.bds.scss +0 -2
  360. package/styles/button-group/_all.bootstrap-dark.scss +0 -2
  361. package/styles/button-group/_all.bootstrap.scss +0 -2
  362. package/styles/button-group/_all.bootstrap4.scss +0 -2
  363. package/styles/button-group/_all.bootstrap5-dark.scss +0 -2
  364. package/styles/button-group/_all.bootstrap5.3.scss +0 -2
  365. package/styles/button-group/_all.bootstrap5.scss +0 -2
  366. package/styles/button-group/_all.fabric-dark.scss +0 -2
  367. package/styles/button-group/_all.fabric.scss +0 -2
  368. package/styles/button-group/_all.fluent-dark.scss +0 -2
  369. package/styles/button-group/_all.fluent.scss +0 -2
  370. package/styles/button-group/_all.fluent2.scss +0 -2
  371. package/styles/button-group/_all.highcontrast-light.scss +0 -2
  372. package/styles/button-group/_all.highcontrast.scss +0 -2
  373. package/styles/button-group/_all.material-dark.scss +0 -2
  374. package/styles/button-group/_all.material.scss +0 -2
  375. package/styles/button-group/_all.material3-dark.scss +0 -2
  376. package/styles/button-group/_all.material3.scss +0 -2
  377. package/styles/button-group/_all.tailwind-dark.scss +0 -2
  378. package/styles/button-group/_all.tailwind.scss +0 -2
  379. package/styles/button-group/_all.tailwind3.scss +0 -2
  380. package/styles/button-group/_bigger.bds.scss +0 -4
  381. package/styles/button-group/_bigger.bootstrap-dark.scss +0 -4
  382. package/styles/button-group/_bigger.bootstrap.scss +0 -4
  383. package/styles/button-group/_bigger.bootstrap4.scss +0 -4
  384. package/styles/button-group/_bigger.bootstrap5-dark.scss +0 -4
  385. package/styles/button-group/_bigger.bootstrap5.3.scss +0 -4
  386. package/styles/button-group/_bigger.bootstrap5.scss +0 -4
  387. package/styles/button-group/_bigger.fabric-dark.scss +0 -4
  388. package/styles/button-group/_bigger.fabric.scss +0 -4
  389. package/styles/button-group/_bigger.fluent-dark.scss +0 -4
  390. package/styles/button-group/_bigger.fluent.scss +0 -4
  391. package/styles/button-group/_bigger.fluent2.scss +0 -4
  392. package/styles/button-group/_bigger.highcontrast-light.scss +0 -4
  393. package/styles/button-group/_bigger.highcontrast.scss +0 -4
  394. package/styles/button-group/_bigger.material-dark.scss +0 -4
  395. package/styles/button-group/_bigger.material.scss +0 -4
  396. package/styles/button-group/_bigger.material3-dark.scss +0 -4
  397. package/styles/button-group/_bigger.material3.scss +0 -4
  398. package/styles/button-group/_bigger.tailwind-dark.scss +0 -4
  399. package/styles/button-group/_bigger.tailwind.scss +0 -4
  400. package/styles/button-group/_bigger.tailwind3.scss +0 -4
  401. package/styles/button-group/_layout.bds.scss +0 -4
  402. package/styles/button-group/_layout.bootstrap-dark.scss +0 -4
  403. package/styles/button-group/_layout.bootstrap.scss +0 -4
  404. package/styles/button-group/_layout.bootstrap4.scss +0 -4
  405. package/styles/button-group/_layout.bootstrap5-dark.scss +0 -4
  406. package/styles/button-group/_layout.bootstrap5.3.scss +0 -4
  407. package/styles/button-group/_layout.bootstrap5.scss +0 -4
  408. package/styles/button-group/_layout.fabric-dark.scss +0 -4
  409. package/styles/button-group/_layout.fabric.scss +0 -4
  410. package/styles/button-group/_layout.fluent-dark.scss +0 -4
  411. package/styles/button-group/_layout.fluent.scss +0 -4
  412. package/styles/button-group/_layout.fluent2.scss +0 -4
  413. package/styles/button-group/_layout.highcontrast-light.scss +0 -4
  414. package/styles/button-group/_layout.highcontrast.scss +0 -4
  415. package/styles/button-group/_layout.material-dark.scss +0 -4
  416. package/styles/button-group/_layout.material.scss +0 -4
  417. package/styles/button-group/_layout.material3-dark.scss +0 -4
  418. package/styles/button-group/_layout.material3.scss +0 -4
  419. package/styles/button-group/_layout.tailwind-dark.scss +0 -4
  420. package/styles/button-group/_layout.tailwind.scss +0 -4
  421. package/styles/button-group/_layout.tailwind3.scss +0 -4
  422. package/styles/button-group/_theme-variables.bds.scss +0 -1
  423. package/styles/button-group/_theme-variables.bootstrap-dark.scss +0 -1
  424. package/styles/button-group/_theme-variables.bootstrap.scss +0 -1
  425. package/styles/button-group/_theme-variables.bootstrap4.scss +0 -1
  426. package/styles/button-group/_theme-variables.bootstrap5-dark.scss +0 -1
  427. package/styles/button-group/_theme-variables.bootstrap5.3.scss +0 -1
  428. package/styles/button-group/_theme-variables.bootstrap5.scss +0 -1
  429. package/styles/button-group/_theme-variables.fabric-dark.scss +0 -1
  430. package/styles/button-group/_theme-variables.fabric.scss +0 -1
  431. package/styles/button-group/_theme-variables.fluent-dark.scss +0 -1
  432. package/styles/button-group/_theme-variables.fluent.scss +0 -1
  433. package/styles/button-group/_theme-variables.fluent2.scss +0 -1
  434. package/styles/button-group/_theme-variables.highcontrast-light.scss +0 -1
  435. package/styles/button-group/_theme-variables.highcontrast.scss +0 -1
  436. package/styles/button-group/_theme-variables.material-dark.scss +0 -1
  437. package/styles/button-group/_theme-variables.material.scss +0 -1
  438. package/styles/button-group/_theme-variables.material3-dark.scss +0 -1
  439. package/styles/button-group/_theme-variables.material3.scss +0 -1
  440. package/styles/button-group/_theme-variables.tailwind-dark.scss +0 -1
  441. package/styles/button-group/_theme-variables.tailwind.scss +0 -1
  442. package/styles/button-group/_theme-variables.tailwind3.scss +0 -1
  443. package/styles/button-group/_theme.bds.scss +0 -6
  444. package/styles/button-group/_theme.bootstrap-dark.scss +0 -6
  445. package/styles/button-group/_theme.bootstrap.scss +0 -6
  446. package/styles/button-group/_theme.bootstrap4.scss +0 -6
  447. package/styles/button-group/_theme.bootstrap5-dark.scss +0 -6
  448. package/styles/button-group/_theme.bootstrap5.3.scss +0 -6
  449. package/styles/button-group/_theme.bootstrap5.scss +0 -6
  450. package/styles/button-group/_theme.fabric-dark.scss +0 -6
  451. package/styles/button-group/_theme.fabric.scss +0 -6
  452. package/styles/button-group/_theme.fluent-dark.scss +0 -6
  453. package/styles/button-group/_theme.fluent.scss +0 -6
  454. package/styles/button-group/_theme.fluent2.scss +0 -6
  455. package/styles/button-group/_theme.highcontrast-light.scss +0 -6
  456. package/styles/button-group/_theme.highcontrast.scss +0 -6
  457. package/styles/button-group/_theme.material-dark.scss +0 -6
  458. package/styles/button-group/_theme.material.scss +0 -6
  459. package/styles/button-group/_theme.material3-dark.scss +0 -6
  460. package/styles/button-group/_theme.material3.scss +0 -6
  461. package/styles/button-group/_theme.tailwind-dark.scss +0 -6
  462. package/styles/button-group/_theme.tailwind.scss +0 -6
  463. package/styles/button-group/_theme.tailwind3.scss +0 -6
  464. package/styles/drop-down-button/_all.bds.scss +0 -2
  465. package/styles/drop-down-button/_all.bootstrap-dark.scss +0 -2
  466. package/styles/drop-down-button/_all.bootstrap.scss +0 -2
  467. package/styles/drop-down-button/_all.bootstrap4.scss +0 -2
  468. package/styles/drop-down-button/_all.bootstrap5-dark.scss +0 -2
  469. package/styles/drop-down-button/_all.bootstrap5.3.scss +0 -2
  470. package/styles/drop-down-button/_all.bootstrap5.scss +0 -2
  471. package/styles/drop-down-button/_all.fabric-dark.scss +0 -2
  472. package/styles/drop-down-button/_all.fabric.scss +0 -2
  473. package/styles/drop-down-button/_all.fluent-dark.scss +0 -2
  474. package/styles/drop-down-button/_all.fluent.scss +0 -2
  475. package/styles/drop-down-button/_all.fluent2.scss +0 -2
  476. package/styles/drop-down-button/_all.highcontrast-light.scss +0 -2
  477. package/styles/drop-down-button/_all.highcontrast.scss +0 -2
  478. package/styles/drop-down-button/_all.material-dark.scss +0 -2
  479. package/styles/drop-down-button/_all.material.scss +0 -2
  480. package/styles/drop-down-button/_all.material3-dark.scss +0 -2
  481. package/styles/drop-down-button/_all.material3.scss +0 -2
  482. package/styles/drop-down-button/_all.tailwind-dark.scss +0 -2
  483. package/styles/drop-down-button/_all.tailwind.scss +0 -2
  484. package/styles/drop-down-button/_all.tailwind3.scss +0 -2
  485. package/styles/drop-down-button/_bigger.bds.scss +0 -3
  486. package/styles/drop-down-button/_bigger.bootstrap-dark.scss +0 -3
  487. package/styles/drop-down-button/_bigger.bootstrap.scss +0 -3
  488. package/styles/drop-down-button/_bigger.bootstrap4.scss +0 -3
  489. package/styles/drop-down-button/_bigger.bootstrap5-dark.scss +0 -3
  490. package/styles/drop-down-button/_bigger.bootstrap5.3.scss +0 -3
  491. package/styles/drop-down-button/_bigger.bootstrap5.scss +0 -3
  492. package/styles/drop-down-button/_bigger.fabric-dark.scss +0 -3
  493. package/styles/drop-down-button/_bigger.fabric.scss +0 -3
  494. package/styles/drop-down-button/_bigger.fluent-dark.scss +0 -3
  495. package/styles/drop-down-button/_bigger.fluent.scss +0 -3
  496. package/styles/drop-down-button/_bigger.fluent2.scss +0 -3
  497. package/styles/drop-down-button/_bigger.highcontrast-light.scss +0 -3
  498. package/styles/drop-down-button/_bigger.highcontrast.scss +0 -3
  499. package/styles/drop-down-button/_bigger.material-dark.scss +0 -3
  500. package/styles/drop-down-button/_bigger.material.scss +0 -3
  501. package/styles/drop-down-button/_bigger.material3-dark.scss +0 -3
  502. package/styles/drop-down-button/_bigger.material3.scss +0 -3
  503. package/styles/drop-down-button/_bigger.tailwind-dark.scss +0 -3
  504. package/styles/drop-down-button/_bigger.tailwind.scss +0 -3
  505. package/styles/drop-down-button/_bigger.tailwind3.scss +0 -3
  506. package/styles/drop-down-button/_layout.bds.scss +0 -3
  507. package/styles/drop-down-button/_layout.bootstrap-dark.scss +0 -3
  508. package/styles/drop-down-button/_layout.bootstrap.scss +0 -3
  509. package/styles/drop-down-button/_layout.bootstrap4.scss +0 -3
  510. package/styles/drop-down-button/_layout.bootstrap5-dark.scss +0 -3
  511. package/styles/drop-down-button/_layout.bootstrap5.3.scss +0 -3
  512. package/styles/drop-down-button/_layout.bootstrap5.scss +0 -3
  513. package/styles/drop-down-button/_layout.fabric-dark.scss +0 -3
  514. package/styles/drop-down-button/_layout.fabric.scss +0 -3
  515. package/styles/drop-down-button/_layout.fluent-dark.scss +0 -3
  516. package/styles/drop-down-button/_layout.fluent.scss +0 -3
  517. package/styles/drop-down-button/_layout.fluent2.scss +0 -3
  518. package/styles/drop-down-button/_layout.highcontrast-light.scss +0 -3
  519. package/styles/drop-down-button/_layout.highcontrast.scss +0 -3
  520. package/styles/drop-down-button/_layout.material-dark.scss +0 -3
  521. package/styles/drop-down-button/_layout.material.scss +0 -3
  522. package/styles/drop-down-button/_layout.material3-dark.scss +0 -3
  523. package/styles/drop-down-button/_layout.material3.scss +0 -3
  524. package/styles/drop-down-button/_layout.tailwind-dark.scss +0 -3
  525. package/styles/drop-down-button/_layout.tailwind.scss +0 -3
  526. package/styles/drop-down-button/_layout.tailwind3.scss +0 -3
  527. package/styles/drop-down-button/_theme-variables.bds.scss +0 -1
  528. package/styles/drop-down-button/_theme-variables.bootstrap-dark.scss +0 -1
  529. package/styles/drop-down-button/_theme-variables.bootstrap.scss +0 -1
  530. package/styles/drop-down-button/_theme-variables.bootstrap4.scss +0 -1
  531. package/styles/drop-down-button/_theme-variables.bootstrap5-dark.scss +0 -1
  532. package/styles/drop-down-button/_theme-variables.bootstrap5.3.scss +0 -1
  533. package/styles/drop-down-button/_theme-variables.bootstrap5.scss +0 -1
  534. package/styles/drop-down-button/_theme-variables.fabric-dark.scss +0 -1
  535. package/styles/drop-down-button/_theme-variables.fabric.scss +0 -1
  536. package/styles/drop-down-button/_theme-variables.fluent-dark.scss +0 -1
  537. package/styles/drop-down-button/_theme-variables.fluent.scss +0 -1
  538. package/styles/drop-down-button/_theme-variables.fluent2.scss +0 -1
  539. package/styles/drop-down-button/_theme-variables.highcontrast-light.scss +0 -1
  540. package/styles/drop-down-button/_theme-variables.highcontrast.scss +0 -1
  541. package/styles/drop-down-button/_theme-variables.material-dark.scss +0 -1
  542. package/styles/drop-down-button/_theme-variables.material.scss +0 -1
  543. package/styles/drop-down-button/_theme-variables.material3-dark.scss +0 -1
  544. package/styles/drop-down-button/_theme-variables.material3.scss +0 -1
  545. package/styles/drop-down-button/_theme-variables.tailwind-dark.scss +0 -1
  546. package/styles/drop-down-button/_theme-variables.tailwind.scss +0 -1
  547. package/styles/drop-down-button/_theme-variables.tailwind3.scss +0 -1
  548. package/styles/drop-down-button/_theme.bds.scss +0 -4
  549. package/styles/drop-down-button/_theme.bootstrap-dark.scss +0 -4
  550. package/styles/drop-down-button/_theme.bootstrap.scss +0 -4
  551. package/styles/drop-down-button/_theme.bootstrap4.scss +0 -4
  552. package/styles/drop-down-button/_theme.bootstrap5-dark.scss +0 -4
  553. package/styles/drop-down-button/_theme.bootstrap5.3.scss +0 -4
  554. package/styles/drop-down-button/_theme.bootstrap5.scss +0 -4
  555. package/styles/drop-down-button/_theme.fabric-dark.scss +0 -4
  556. package/styles/drop-down-button/_theme.fabric.scss +0 -4
  557. package/styles/drop-down-button/_theme.fluent-dark.scss +0 -4
  558. package/styles/drop-down-button/_theme.fluent.scss +0 -4
  559. package/styles/drop-down-button/_theme.fluent2.scss +0 -4
  560. package/styles/drop-down-button/_theme.highcontrast-light.scss +0 -4
  561. package/styles/drop-down-button/_theme.highcontrast.scss +0 -4
  562. package/styles/drop-down-button/_theme.material-dark.scss +0 -4
  563. package/styles/drop-down-button/_theme.material.scss +0 -4
  564. package/styles/drop-down-button/_theme.material3-dark.scss +0 -4
  565. package/styles/drop-down-button/_theme.material3.scss +0 -4
  566. package/styles/drop-down-button/_theme.tailwind-dark.scss +0 -4
  567. package/styles/drop-down-button/_theme.tailwind.scss +0 -4
  568. package/styles/drop-down-button/_theme.tailwind3.scss +0 -4
  569. package/styles/progress-button/_all.bds.scss +0 -2
  570. package/styles/progress-button/_all.bootstrap-dark.scss +0 -2
  571. package/styles/progress-button/_all.bootstrap.scss +0 -2
  572. package/styles/progress-button/_all.bootstrap4.scss +0 -2
  573. package/styles/progress-button/_all.bootstrap5-dark.scss +0 -2
  574. package/styles/progress-button/_all.bootstrap5.3.scss +0 -2
  575. package/styles/progress-button/_all.bootstrap5.scss +0 -2
  576. package/styles/progress-button/_all.fabric-dark.scss +0 -2
  577. package/styles/progress-button/_all.fabric.scss +0 -2
  578. package/styles/progress-button/_all.fluent-dark.scss +0 -2
  579. package/styles/progress-button/_all.fluent.scss +0 -2
  580. package/styles/progress-button/_all.fluent2.scss +0 -2
  581. package/styles/progress-button/_all.highcontrast-light.scss +0 -2
  582. package/styles/progress-button/_all.highcontrast.scss +0 -2
  583. package/styles/progress-button/_all.material-dark.scss +0 -2
  584. package/styles/progress-button/_all.material.scss +0 -2
  585. package/styles/progress-button/_all.material3-dark.scss +0 -2
  586. package/styles/progress-button/_all.material3.scss +0 -2
  587. package/styles/progress-button/_all.tailwind-dark.scss +0 -2
  588. package/styles/progress-button/_all.tailwind.scss +0 -2
  589. package/styles/progress-button/_all.tailwind3.scss +0 -2
  590. package/styles/progress-button/_bigger.bds.scss +0 -3
  591. package/styles/progress-button/_bigger.bootstrap-dark.scss +0 -3
  592. package/styles/progress-button/_bigger.bootstrap.scss +0 -3
  593. package/styles/progress-button/_bigger.bootstrap4.scss +0 -3
  594. package/styles/progress-button/_bigger.bootstrap5-dark.scss +0 -3
  595. package/styles/progress-button/_bigger.bootstrap5.3.scss +0 -3
  596. package/styles/progress-button/_bigger.bootstrap5.scss +0 -3
  597. package/styles/progress-button/_bigger.fabric-dark.scss +0 -3
  598. package/styles/progress-button/_bigger.fabric.scss +0 -3
  599. package/styles/progress-button/_bigger.fluent-dark.scss +0 -3
  600. package/styles/progress-button/_bigger.fluent.scss +0 -3
  601. package/styles/progress-button/_bigger.fluent2.scss +0 -3
  602. package/styles/progress-button/_bigger.highcontrast-light.scss +0 -3
  603. package/styles/progress-button/_bigger.highcontrast.scss +0 -3
  604. package/styles/progress-button/_bigger.material-dark.scss +0 -3
  605. package/styles/progress-button/_bigger.material.scss +0 -3
  606. package/styles/progress-button/_bigger.material3-dark.scss +0 -3
  607. package/styles/progress-button/_bigger.material3.scss +0 -3
  608. package/styles/progress-button/_bigger.tailwind-dark.scss +0 -3
  609. package/styles/progress-button/_bigger.tailwind.scss +0 -3
  610. package/styles/progress-button/_bigger.tailwind3.scss +0 -3
  611. package/styles/progress-button/_layout.bds.scss +0 -3
  612. package/styles/progress-button/_layout.bootstrap-dark.scss +0 -3
  613. package/styles/progress-button/_layout.bootstrap.scss +0 -3
  614. package/styles/progress-button/_layout.bootstrap4.scss +0 -3
  615. package/styles/progress-button/_layout.bootstrap5-dark.scss +0 -3
  616. package/styles/progress-button/_layout.bootstrap5.3.scss +0 -3
  617. package/styles/progress-button/_layout.bootstrap5.scss +0 -3
  618. package/styles/progress-button/_layout.fabric-dark.scss +0 -3
  619. package/styles/progress-button/_layout.fabric.scss +0 -3
  620. package/styles/progress-button/_layout.fluent-dark.scss +0 -3
  621. package/styles/progress-button/_layout.fluent.scss +0 -3
  622. package/styles/progress-button/_layout.fluent2.scss +0 -3
  623. package/styles/progress-button/_layout.highcontrast-light.scss +0 -3
  624. package/styles/progress-button/_layout.highcontrast.scss +0 -3
  625. package/styles/progress-button/_layout.material-dark.scss +0 -3
  626. package/styles/progress-button/_layout.material.scss +0 -3
  627. package/styles/progress-button/_layout.material3-dark.scss +0 -3
  628. package/styles/progress-button/_layout.material3.scss +0 -3
  629. package/styles/progress-button/_layout.tailwind-dark.scss +0 -3
  630. package/styles/progress-button/_layout.tailwind.scss +0 -3
  631. package/styles/progress-button/_layout.tailwind3.scss +0 -3
  632. package/styles/progress-button/_theme-variables.bds.scss +0 -1
  633. package/styles/progress-button/_theme-variables.bootstrap-dark.scss +0 -1
  634. package/styles/progress-button/_theme-variables.bootstrap.scss +0 -1
  635. package/styles/progress-button/_theme-variables.bootstrap4.scss +0 -1
  636. package/styles/progress-button/_theme-variables.bootstrap5-dark.scss +0 -1
  637. package/styles/progress-button/_theme-variables.bootstrap5.3.scss +0 -1
  638. package/styles/progress-button/_theme-variables.bootstrap5.scss +0 -1
  639. package/styles/progress-button/_theme-variables.fabric-dark.scss +0 -1
  640. package/styles/progress-button/_theme-variables.fabric.scss +0 -1
  641. package/styles/progress-button/_theme-variables.fluent-dark.scss +0 -1
  642. package/styles/progress-button/_theme-variables.fluent.scss +0 -1
  643. package/styles/progress-button/_theme-variables.fluent2.scss +0 -1
  644. package/styles/progress-button/_theme-variables.highcontrast-light.scss +0 -1
  645. package/styles/progress-button/_theme-variables.highcontrast.scss +0 -1
  646. package/styles/progress-button/_theme-variables.material-dark.scss +0 -1
  647. package/styles/progress-button/_theme-variables.material.scss +0 -1
  648. package/styles/progress-button/_theme-variables.material3-dark.scss +0 -1
  649. package/styles/progress-button/_theme-variables.material3.scss +0 -1
  650. package/styles/progress-button/_theme-variables.tailwind-dark.scss +0 -1
  651. package/styles/progress-button/_theme-variables.tailwind.scss +0 -1
  652. package/styles/progress-button/_theme-variables.tailwind3.scss +0 -1
  653. package/styles/progress-button/_theme.bds.scss +0 -4
  654. package/styles/progress-button/_theme.bootstrap-dark.scss +0 -4
  655. package/styles/progress-button/_theme.bootstrap.scss +0 -4
  656. package/styles/progress-button/_theme.bootstrap4.scss +0 -4
  657. package/styles/progress-button/_theme.bootstrap5-dark.scss +0 -4
  658. package/styles/progress-button/_theme.bootstrap5.3.scss +0 -4
  659. package/styles/progress-button/_theme.bootstrap5.scss +0 -4
  660. package/styles/progress-button/_theme.fabric-dark.scss +0 -4
  661. package/styles/progress-button/_theme.fabric.scss +0 -4
  662. package/styles/progress-button/_theme.fluent-dark.scss +0 -4
  663. package/styles/progress-button/_theme.fluent.scss +0 -4
  664. package/styles/progress-button/_theme.fluent2.scss +0 -4
  665. package/styles/progress-button/_theme.highcontrast-light.scss +0 -4
  666. package/styles/progress-button/_theme.highcontrast.scss +0 -4
  667. package/styles/progress-button/_theme.material-dark.scss +0 -4
  668. package/styles/progress-button/_theme.material.scss +0 -4
  669. package/styles/progress-button/_theme.material3-dark.scss +0 -4
  670. package/styles/progress-button/_theme.material3.scss +0 -4
  671. package/styles/progress-button/_theme.tailwind-dark.scss +0 -4
  672. package/styles/progress-button/_theme.tailwind.scss +0 -4
  673. package/styles/progress-button/_theme.tailwind3.scss +0 -4
  674. package/styles/split-button/_all.bds.scss +0 -2
  675. package/styles/split-button/_all.bootstrap-dark.scss +0 -2
  676. package/styles/split-button/_all.bootstrap.scss +0 -2
  677. package/styles/split-button/_all.bootstrap4.scss +0 -2
  678. package/styles/split-button/_all.bootstrap5-dark.scss +0 -2
  679. package/styles/split-button/_all.bootstrap5.3.scss +0 -2
  680. package/styles/split-button/_all.bootstrap5.scss +0 -2
  681. package/styles/split-button/_all.fabric-dark.scss +0 -2
  682. package/styles/split-button/_all.fabric.scss +0 -2
  683. package/styles/split-button/_all.fluent-dark.scss +0 -2
  684. package/styles/split-button/_all.fluent.scss +0 -2
  685. package/styles/split-button/_all.fluent2.scss +0 -2
  686. package/styles/split-button/_all.highcontrast-light.scss +0 -2
  687. package/styles/split-button/_all.highcontrast.scss +0 -2
  688. package/styles/split-button/_all.material-dark.scss +0 -2
  689. package/styles/split-button/_all.material.scss +0 -2
  690. package/styles/split-button/_all.material3-dark.scss +0 -2
  691. package/styles/split-button/_all.material3.scss +0 -2
  692. package/styles/split-button/_all.tailwind-dark.scss +0 -2
  693. package/styles/split-button/_all.tailwind.scss +0 -2
  694. package/styles/split-button/_all.tailwind3.scss +0 -2
  695. package/styles/split-button/_bigger.bds.scss +0 -3
  696. package/styles/split-button/_bigger.bootstrap-dark.scss +0 -3
  697. package/styles/split-button/_bigger.bootstrap.scss +0 -3
  698. package/styles/split-button/_bigger.bootstrap4.scss +0 -3
  699. package/styles/split-button/_bigger.bootstrap5-dark.scss +0 -3
  700. package/styles/split-button/_bigger.bootstrap5.3.scss +0 -3
  701. package/styles/split-button/_bigger.bootstrap5.scss +0 -3
  702. package/styles/split-button/_bigger.fabric-dark.scss +0 -3
  703. package/styles/split-button/_bigger.fabric.scss +0 -3
  704. package/styles/split-button/_bigger.fluent-dark.scss +0 -3
  705. package/styles/split-button/_bigger.fluent.scss +0 -3
  706. package/styles/split-button/_bigger.fluent2.scss +0 -3
  707. package/styles/split-button/_bigger.highcontrast-light.scss +0 -3
  708. package/styles/split-button/_bigger.highcontrast.scss +0 -3
  709. package/styles/split-button/_bigger.material-dark.scss +0 -3
  710. package/styles/split-button/_bigger.material.scss +0 -3
  711. package/styles/split-button/_bigger.material3-dark.scss +0 -3
  712. package/styles/split-button/_bigger.material3.scss +0 -3
  713. package/styles/split-button/_bigger.tailwind-dark.scss +0 -3
  714. package/styles/split-button/_bigger.tailwind.scss +0 -3
  715. package/styles/split-button/_bigger.tailwind3.scss +0 -3
  716. package/styles/split-button/_layout.bds.scss +0 -3
  717. package/styles/split-button/_layout.bootstrap-dark.scss +0 -3
  718. package/styles/split-button/_layout.bootstrap.scss +0 -3
  719. package/styles/split-button/_layout.bootstrap4.scss +0 -3
  720. package/styles/split-button/_layout.bootstrap5-dark.scss +0 -3
  721. package/styles/split-button/_layout.bootstrap5.3.scss +0 -3
  722. package/styles/split-button/_layout.bootstrap5.scss +0 -3
  723. package/styles/split-button/_layout.fabric-dark.scss +0 -3
  724. package/styles/split-button/_layout.fabric.scss +0 -3
  725. package/styles/split-button/_layout.fluent-dark.scss +0 -3
  726. package/styles/split-button/_layout.fluent.scss +0 -3
  727. package/styles/split-button/_layout.fluent2.scss +0 -3
  728. package/styles/split-button/_layout.highcontrast-light.scss +0 -3
  729. package/styles/split-button/_layout.highcontrast.scss +0 -3
  730. package/styles/split-button/_layout.material-dark.scss +0 -3
  731. package/styles/split-button/_layout.material.scss +0 -3
  732. package/styles/split-button/_layout.material3-dark.scss +0 -3
  733. package/styles/split-button/_layout.material3.scss +0 -3
  734. package/styles/split-button/_layout.tailwind-dark.scss +0 -3
  735. package/styles/split-button/_layout.tailwind.scss +0 -3
  736. package/styles/split-button/_layout.tailwind3.scss +0 -3
  737. package/styles/split-button/_theme-variables.bds.scss +0 -1
  738. package/styles/split-button/_theme-variables.bootstrap-dark.scss +0 -1
  739. package/styles/split-button/_theme-variables.bootstrap.scss +0 -1
  740. package/styles/split-button/_theme-variables.bootstrap4.scss +0 -1
  741. package/styles/split-button/_theme-variables.bootstrap5-dark.scss +0 -1
  742. package/styles/split-button/_theme-variables.bootstrap5.3.scss +0 -1
  743. package/styles/split-button/_theme-variables.bootstrap5.scss +0 -1
  744. package/styles/split-button/_theme-variables.fabric-dark.scss +0 -1
  745. package/styles/split-button/_theme-variables.fabric.scss +0 -1
  746. package/styles/split-button/_theme-variables.fluent-dark.scss +0 -1
  747. package/styles/split-button/_theme-variables.fluent.scss +0 -1
  748. package/styles/split-button/_theme-variables.fluent2.scss +0 -1
  749. package/styles/split-button/_theme-variables.highcontrast-light.scss +0 -1
  750. package/styles/split-button/_theme-variables.highcontrast.scss +0 -1
  751. package/styles/split-button/_theme-variables.material-dark.scss +0 -1
  752. package/styles/split-button/_theme-variables.material.scss +0 -1
  753. package/styles/split-button/_theme-variables.material3-dark.scss +0 -1
  754. package/styles/split-button/_theme-variables.material3.scss +0 -1
  755. package/styles/split-button/_theme-variables.tailwind-dark.scss +0 -1
  756. package/styles/split-button/_theme-variables.tailwind.scss +0 -1
  757. package/styles/split-button/_theme-variables.tailwind3.scss +0 -1
  758. package/styles/split-button/_theme.bds.scss +0 -4
  759. package/styles/split-button/_theme.bootstrap-dark.scss +0 -4
  760. package/styles/split-button/_theme.bootstrap.scss +0 -4
  761. package/styles/split-button/_theme.bootstrap4.scss +0 -4
  762. package/styles/split-button/_theme.bootstrap5-dark.scss +0 -4
  763. package/styles/split-button/_theme.bootstrap5.3.scss +0 -4
  764. package/styles/split-button/_theme.bootstrap5.scss +0 -4
  765. package/styles/split-button/_theme.fabric-dark.scss +0 -4
  766. package/styles/split-button/_theme.fabric.scss +0 -4
  767. package/styles/split-button/_theme.fluent-dark.scss +0 -4
  768. package/styles/split-button/_theme.fluent.scss +0 -4
  769. package/styles/split-button/_theme.fluent2.scss +0 -4
  770. package/styles/split-button/_theme.highcontrast-light.scss +0 -4
  771. package/styles/split-button/_theme.highcontrast.scss +0 -4
  772. package/styles/split-button/_theme.material-dark.scss +0 -4
  773. package/styles/split-button/_theme.material.scss +0 -4
  774. package/styles/split-button/_theme.material3-dark.scss +0 -4
  775. package/styles/split-button/_theme.material3.scss +0 -4
  776. package/styles/split-button/_theme.tailwind-dark.scss +0 -4
  777. package/styles/split-button/_theme.tailwind.scss +0 -4
  778. package/styles/split-button/_theme.tailwind3.scss +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"ej2-splitbuttons.min.js","sources":["../../src/common/common.js","../../src/button-group/button-group.js","../../src/drop-down-button/drop-down-button.js","../../src/split-button/split-button.js","../../src/progress-button/progress-button.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, extend, deleteObject, Property, addClass, isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @param {Object} props - Specifies the properties\n * @param {string[]} model - Specifies the model\n * @returns {Object} Component Model\n */\nexport function getModel(props, model) {\n var obj = extend({}, props);\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var prop = _a[_i];\n if ((model).indexOf(prop) < 0) {\n deleteObject(obj, prop);\n }\n }\n return obj;\n}\n/** @hidden\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {number} keyCode - Specifies the keycode\n * @returns {void}\n */\nexport function upDownKeyHandler(ul, keyCode) {\n var defaultIdx = keyCode === 40 ? 0 : ul.childElementCount - 1;\n var liIdx = defaultIdx;\n var li;\n var selectedLi = ul.querySelector('.e-selected');\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n for (var i = 0, len = ul.children.length; i < len; i++) {\n if (ul.children[i].classList.contains('e-focused')) {\n li = ul.children[i];\n liIdx = i;\n li.classList.remove('e-focused');\n if (keyCode === 40) {\n liIdx++;\n }\n else {\n liIdx--;\n }\n if (liIdx === (keyCode === 40 ? ul.childElementCount : -1)) {\n liIdx = defaultIdx;\n }\n }\n }\n li = ul.children[liIdx];\n liIdx = isValidLI(ul, li, liIdx, keyCode);\n if (liIdx !== -1) {\n addClass([ul.children[liIdx]], 'e-focused');\n ul.children[liIdx].focus();\n }\n}\n/**\n * Get Valid LI element\n *\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {Element} li - Specifies the LI element\n * @param {number} index - Specifies the index\n * @param {number} keyCode - Specifies the keycode\n * @param {number} count - Specifies the count\n * @returns {number} - Index\n */\nfunction isValidLI(ul, li, index, keyCode, count) {\n if (count === void 0) { count = 0; }\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n if (index === (keyCode === 40 ? ul.childElementCount - 1 : 0)) {\n index = keyCode === 40 ? 0 : ul.childElementCount - 1;\n }\n else {\n if (keyCode === 40) {\n index++;\n }\n else {\n index--;\n }\n }\n }\n li = ul.children[index];\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n count++;\n if (count === ul.childElementCount) {\n return index = -1;\n }\n index = isValidLI(ul, li, index, keyCode, count);\n }\n return index;\n}\n/** @hidden\n * @param {HTMLElement} popup - Specifies the popup element.\n * @param {boolean} blankIcon - Specifies the blankIcon value.\n * @returns {void}\n */\nexport function setBlankIconStyle(popup, blankIcon) {\n var blankIconList = [].slice.call(popup.getElementsByClassName('e-blank-icon'));\n if (blankIcon) {\n var menuItem = [].slice.call(popup.getElementsByClassName('e-item'));\n menuItem.forEach(function (li) {\n if (li.style.paddingLeft || li.style.paddingRight) {\n li.removeAttribute('style');\n }\n });\n }\n if (!blankIconList.length) {\n return;\n }\n var iconLi = popup.querySelector('.e-item:not(.e-blank-icon):not(.e-separator)');\n if (isNullOrUndefined(iconLi)) {\n return;\n }\n if (iconLi.classList.contains('e-url')) {\n iconLi = iconLi.querySelector('.e-menu-url');\n }\n var icon = iconLi.querySelector('.e-menu-icon');\n var cssProp;\n var enableRtl = popup.classList.contains('e-rtl');\n if (enableRtl) {\n cssProp = { padding: 'paddingRight', margin: 'marginLeft' };\n }\n else {\n cssProp = { padding: 'paddingLeft', margin: 'marginRight' };\n }\n /* eslint-disable */\n var size = parseInt(getComputedStyle(icon).fontSize, 10) + parseInt((enableRtl ? getComputedStyle(icon)[cssProp.margin] : getComputedStyle(icon)[cssProp.margin]), 10)\n + parseInt(getComputedStyle(iconLi).paddingLeft, 10) + \"px\";\n blankIconList.forEach(function (li) {\n if (li.classList.contains('e-url') && li.querySelector('.e-menu-url')) {\n li.querySelector('.e-menu-url').style[cssProp.padding] = size;\n }\n else {\n li.style[cssProp.padding] = size;\n }\n });\n /* eslint-enable */\n}\n/**\n * Defines the items of Split Button/DropDownButton.\n */\nvar Item = /** @class */ (function (_super) {\n __extends(Item, _super);\n function Item() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Item.prototype, \"iconCss\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"id\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"separator\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"text\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"url\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"disabled\", void 0);\n return Item;\n}(ChildProperty));\nexport { Item };\n","import { addClass, createElement as internalCreateElement, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\n/**\n * Initialize ButtonGroup CSS component with specified properties.\n * ```html\n * <div id='buttongroup'>\n * <button></button>\n * <button></button>\n * <button></button>\n * </div>\n * ```\n * ```typescript\n * createButtonGroup('#buttongroup', {\n * cssClass: 'e-outline',\n * buttons: [\n * { content: 'Day' },\n * { content: 'Week' },\n * { content: 'Work Week'}\n * ]\n * });\n * ```\n *\n * @param {string} selector\n * @param {CreateButtonGroupModel} options\n * @returns HTMLElement\n */\n/**\n * Creates button group.\n *\n * @param {string} selector - Specifies the selector.\n * @param {CreateButtonGroupModel} options - Specifies the button group model.\n * @param {Function} createElement - Specifies the element.\n * @returns {HTMLElement} - Button group element.\n */\nexport function createButtonGroup(selector, options, createElement) {\n if (options === void 0) { options = {}; }\n var child;\n var btnElem;\n var nextChild;\n var btnModel;\n if (isNullOrUndefined(createElement)) {\n createElement = internalCreateElement;\n }\n var wrapper = document.querySelector(selector);\n addClass([wrapper], ['e-btn-group', 'e-css']);\n wrapper.setAttribute('role', 'group');\n var childs = wrapper.children;\n options.buttons = options.buttons || [];\n for (var i = 0, j = 0; j < childs.length; i++, j++) {\n child = childs[j];\n btnModel = options.buttons[i];\n if (btnModel !== null) {\n if (child.tagName === 'BUTTON') {\n btnElem = child;\n }\n else {\n btnElem = createElement('label');\n nextChild = childs[j + 1];\n if (nextChild) {\n wrapper.insertBefore(btnElem, nextChild);\n }\n else {\n wrapper.appendChild(btnElem);\n }\n if (child.id) {\n btnElem.setAttribute('for', child.id);\n }\n if (btnModel && btnModel.disabled) {\n child.disabled = true;\n }\n j++;\n }\n if (options.cssClass && btnModel && !btnModel.cssClass) {\n btnModel.cssClass = options.cssClass;\n }\n new Button(btnModel || {}, btnElem);\n }\n }\n return wrapper;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Collection, Event, NotifyPropertyChanges, detach, Property, EventHandler, isRippleEnabled, isNullOrUndefined, append, formatUnit, Animation } from '@syncfusion/ej2-base';\nimport { addClass, getUniqueID, rippleEffect, getComponent, ChildProperty, Complex } from '@syncfusion/ej2-base';\nimport { attributes, Component, closest, select, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { classList, removeClass, compile } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { upDownKeyHandler } from './../common/common';\nimport { getModel, Item, setBlankIconStyle } from './../common/common';\nvar classNames = {\n DISABLED: 'e-disabled',\n FOCUS: 'e-focused',\n ICON: 'e-menu-icon',\n ITEM: 'e-item',\n POPUP: 'e-dropdown-popup',\n RTL: 'e-rtl',\n SEPARATOR: 'e-separator',\n VERTICAL: 'e-vertical',\n POPUPWIDTH: 'e-dropdown-popup-width'\n};\n/**\n * Animation configuration settings.\n */\nvar DropDownMenuAnimationSettings = /** @class */ (function (_super) {\n __extends(DropDownMenuAnimationSettings, _super);\n function DropDownMenuAnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('SlideDown')\n ], DropDownMenuAnimationSettings.prototype, \"effect\", void 0);\n __decorate([\n Property(400)\n ], DropDownMenuAnimationSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('ease')\n ], DropDownMenuAnimationSettings.prototype, \"easing\", void 0);\n return DropDownMenuAnimationSettings;\n}(ChildProperty));\nexport { DropDownMenuAnimationSettings };\n/**\n * DropDownButton component is used to toggle contextual overlays for displaying list of action items.\n * It can contain both text and images.\n * ```html\n * <button id=\"element\">DropDownButton</button>\n * ```\n * ```typescript\n * <script>\n * var dropDownButtonObj = new DropDownButton({items: [{ text: 'Action1' }, { text: 'Action2' },{ text: 'Action3' }]);\n * dropDownButtonObj.appendTo(\"#element\");\n * </script>\n * ```\n */\nvar DropDownButton = /** @class */ (function (_super) {\n __extends(DropDownButton, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {DropDownButtonModel} options - Specifies dropdown button model\n * @param {string|HTMLButtonElement} element - Specifies element\n * @hidden\n */\n function DropDownButton(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isPopupCreated = true;\n return _this;\n }\n DropDownButton.prototype.preRender = function () {\n /** */\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist data\n */\n DropDownButton.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * To open/close DropDownButton popup based on current state of the DropDownButton.\n *\n * @returns {void}\n */\n DropDownButton.prototype.toggle = function () {\n if (this.canOpen()) {\n this.openPopUp();\n }\n else if (this.createPopupOnClick && !this.isPopupCreated) {\n this.createPopup();\n this.openPopUp();\n }\n else {\n this.closePopup();\n }\n };\n /**\n * Initialize the Component rendering\n *\n * @returns {void}\n * @private\n */\n DropDownButton.prototype.render = function () {\n this.initialize();\n if (!this.disabled) {\n this.wireEvents();\n }\n this.renderComplete();\n };\n /**\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\n * but you can insert based on the text parameter.\n *\n * @param { ItemModel[] } items - Specifies an array of JSON data.\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\n * @returns {void}.\n */\n DropDownButton.prototype.addItems = function (items, text) {\n var newItem;\n var idx = this.items.length;\n for (var j = 0, len = this.items.length; j < len; j++) {\n if (text === this.items[j].text) {\n idx = j;\n break;\n }\n }\n for (var i = items.length - 1; i >= 0; i--) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newItem = new Item(this, 'items', items[i], true);\n this.items.splice(idx, 0, newItem);\n }\n if (!this.canOpen()) {\n this.createItems();\n }\n };\n /**\n * Removes the items from the menu.\n *\n * @param { string[] } items - Specifies an array of string to remove the items.\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\n * @returns {void}.\n */\n DropDownButton.prototype.removeItems = function (items, isUniqueId) {\n var refresh = false;\n for (var i = 0, len = items.length; i < len; i++) {\n for (var j = 0, len_1 = this.items.length; j < len_1; j++) {\n if (items[i] === (isUniqueId ? this.items[j].id : this.items[j].text)) {\n this.items.splice(j, 1);\n refresh = true;\n break;\n }\n }\n }\n if (refresh && this.getULElement()) {\n this.createItems();\n }\n };\n DropDownButton.prototype.createPopup = function () {\n var _a;\n var div = this.createElement('div', {\n className: this.popupWidth !== 'auto' ? classNames.POPUP + \" \" + classNames.POPUPWIDTH : classNames.POPUP,\n id: this.element.id + '-popup'\n });\n var appendToElement = document.body;\n if (this.isAngular) {\n var cdkPane = this.element.closest('.cdk-overlay-pane');\n var popoverEl = this.element.closest('[popover]');\n if (cdkPane && popoverEl) {\n appendToElement = cdkPane;\n }\n }\n appendToElement.appendChild(div);\n this.dropDown = new Popup(div, {\n width: this.popupWidth,\n relateTo: this.element,\n collision: { X: 'fit', Y: 'flip' },\n position: { X: 'left', Y: 'bottom' },\n targetType: 'relative',\n content: this.target ? this.getTargetElement() : '',\n enableRtl: this.enableRtl\n });\n this.dropDown.element.setAttribute('role', 'dialog');\n this.dropDown.element.setAttribute('aria-label', 'dropdown menu');\n if (!isNullOrUndefined(this.popupContent)) {\n this.popupContent.style.display = '';\n }\n if (this.dropDown.element.style.position === 'fixed') {\n this.dropDown.refreshPosition(this.element);\n }\n this.dropDown.hide();\n attributes(this.element, (_a = {},\n _a['aria-haspopup'] = this.items.length || this.target ? 'true' : 'false',\n _a['aria-expanded'] = 'false',\n _a['type'] = 'button',\n _a));\n if (this.cssClass) {\n addClass([div], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n this.isPopupCreated = true;\n if (this.createPopupOnClick) {\n var splitButton = getComponent(this.activeElem[0], 'split-btn');\n if (splitButton) {\n splitButton.isPopupCreated = true;\n }\n }\n };\n DropDownButton.prototype.getTargetElement = function () {\n if (this.createPopupOnClick && !this.isColorPicker() && !isNullOrUndefined(this.popupContent)) {\n return this.popupContent;\n }\n return typeof (this.target) === 'string' ? select(this.target) : this.target;\n };\n DropDownButton.prototype.createItems = function (appendItems) {\n var _this = this;\n var items = this.items;\n var showIcon = this.hasIcon(this.items, 'iconCss');\n var span;\n var item;\n var li;\n var eventArgs;\n var ul = this.getULElement();\n if (ul) {\n ul.innerHTML = '';\n }\n else {\n ul = this.createElement('ul', {\n attrs: { 'role': 'menu', 'tabindex': '0' }\n });\n }\n if (this.itemTemplate) {\n var compiledTemplate_1 = this.compiletemplate(this.itemTemplate);\n items.forEach(function (item) {\n var li = _this.createElement('li', {\n className: item.separator ? classNames.ITEM + ' ' + classNames.SEPARATOR : classNames.ITEM,\n attrs: item.separator\n ? { 'role': 'separator', 'tabindex': '-1', 'aria-label': 'separator', 'aria-hidden': 'true' }\n : { 'role': 'menuitem', 'tabindex': '-1', 'aria-label': item.text },\n id: item.id ? item.id : getUniqueID('e-' + _this.getModuleName() + '-item')\n });\n var compiledElement = compiledTemplate_1(item, _this, 'template', null, false, null, li);\n if (compiledElement) {\n append(compiledElement, li);\n }\n if (item.disabled) {\n li.classList.add('e-disabled');\n }\n var eventArgs = { item: item, element: li };\n _this.trigger('beforeItemRender', eventArgs);\n if (eventArgs.item.disabled !== item.disabled) {\n li.classList[eventArgs.item.disabled ? 'add' : 'remove']('e-disabled');\n }\n ul.appendChild(li);\n });\n if (this.isReact) {\n this.renderReactTemplates();\n }\n }\n else {\n for (var i = 0; i < items.length; i++) {\n item = items[i];\n if (this.enableHtmlSanitizer) {\n item.text = SanitizeHtmlHelper.sanitize(item.text);\n }\n var tempItem = item.text;\n li = this.createElement('li', {\n innerHTML: item.url ? '' : tempItem,\n className: item.separator ? classNames.ITEM + ' ' + classNames.SEPARATOR : classNames.ITEM,\n attrs: item.separator ? { 'role': 'separator', 'tabindex': '-1', 'aria-label': 'separator', 'aria-hidden': 'true' } : { 'role': 'menuitem', 'tabindex': '-1', 'aria-label': tempItem },\n id: item.id ? item.id : getUniqueID('e-' + this.getModuleName() + '-item')\n });\n if (this.enableHtmlSanitizer) {\n li.textContent = item.url ? '' : tempItem;\n }\n else {\n li.innerHTML = item.url ? '' : tempItem;\n }\n if (item.url) {\n li.appendChild(this.createAnchor(item));\n li.classList.add('e-url');\n }\n if (item.iconCss) {\n span = this.createElement('span', { className: classNames.ICON + ' ' + item.iconCss });\n if (item.url) {\n li.childNodes[0].appendChild(span);\n }\n else {\n li.insertBefore(span, li.childNodes[0]);\n }\n }\n else {\n if (showIcon && !item.separator) {\n li.classList.add('e-blank-icon');\n }\n }\n var beforeDisabled = item.disabled;\n if (item.disabled) {\n li.classList.add('e-disabled');\n }\n eventArgs = { item: item, element: li };\n this.trigger('beforeItemRender', eventArgs);\n var afterDisabled = eventArgs.item.disabled;\n if (beforeDisabled !== afterDisabled) {\n if (eventArgs.item.disabled) {\n li.classList.add('e-disabled');\n }\n else {\n li.classList.remove('e-disabled');\n }\n }\n ul.appendChild(li);\n }\n }\n if (appendItems) {\n this.getPopUpElement().appendChild(ul);\n }\n if (showIcon) {\n setBlankIconStyle(this.getPopUpElement());\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n DropDownButton.prototype.compiletemplate = function (template) {\n if (!this.itemTemplate) {\n return undefined;\n }\n try {\n if (typeof this.itemTemplate !== 'function') {\n var templateElement = document.querySelector(this.itemTemplate);\n if (templateElement) {\n return compile(templateElement.innerHTML.trim());\n }\n }\n return compile(template);\n }\n catch (_a) {\n return compile(template);\n }\n };\n DropDownButton.prototype.hasIcon = function (items, field) {\n for (var i = 0, len = items.length; i < len; i++) {\n if (items[i][\"\" + field]) {\n return true;\n }\n }\n return false;\n };\n DropDownButton.prototype.createAnchor = function (item) {\n var tempItem = item.text;\n var anchor = this.createElement('a', { className: 'e-menu-text e-menu-url', attrs: { 'href': item.url } });\n if (this.enableHtmlSanitizer) {\n anchor.textContent = tempItem;\n }\n else {\n anchor.innerHTML = tempItem;\n }\n return anchor;\n };\n DropDownButton.prototype.initialize = function () {\n this.button = new Button({\n iconCss: this.iconCss, iconPosition: this.iconPosition, cssClass: this.cssClass, content: this.content,\n disabled: this.disabled, enableRtl: this.enableRtl, enablePersistence: this.enablePersistence\n });\n this.button.createElement = this.createElement;\n this.button.appendTo(this.element);\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n this.appendArrowSpan();\n this.setActiveElem([this.element]);\n this.element.setAttribute('tabindex', '0');\n this.element.setAttribute('aria-label', this.element.textContent ? this.element.textContent : 'dropdownbutton');\n if ((this.target && !this.isColorPicker() && !this.createPopupOnClick) || !this.createPopupOnClick) {\n this.createPopup();\n }\n else {\n this.isPopupCreated = false;\n if (this.target && !this.isColorPicker() && this.createPopupOnClick) {\n this.popupContent = this.getTargetElement();\n this.popupContent.style.display = 'none';\n }\n }\n };\n DropDownButton.prototype.isColorPicker = function () {\n if (!this.element) {\n return false;\n }\n var prevElem = this.element.previousSibling;\n if (prevElem && prevElem.classList && prevElem.classList.contains('e-split-colorpicker')) {\n return true;\n }\n return false;\n };\n DropDownButton.prototype.appendArrowSpan = function () {\n this.cssClass = isNullOrUndefined(this.cssClass) ? '' : this.cssClass;\n this.element.appendChild(this.createElement('span', {\n className: 'e-btn-icon e-icons ' + 'e-icon-' + (this.cssClass.indexOf(classNames.VERTICAL) > -1\n ? 'bottom' : 'right') + ' e-caret'\n }));\n };\n DropDownButton.prototype.setActiveElem = function (elem) {\n this.activeElem = elem;\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n DropDownButton.prototype.getModuleName = function () {\n return 'dropdown-btn';\n };\n DropDownButton.prototype.canOpen = function () {\n var val = false;\n if (this.isPopupCreated) {\n val = this.getPopUpElement().classList.contains('e-popup-close');\n }\n return val;\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n DropDownButton.prototype.destroy = function () {\n var _this = this;\n _super.prototype.destroy.call(this);\n if (this.getModuleName() === 'dropdown-btn') {\n var classList_1;\n if (this.element.querySelector('span.e-caret')) {\n detach(this.element.querySelector('span.e-caret'));\n }\n if (this.cssClass) {\n classList_1 = this.cssClass.split(' ');\n }\n this.button.destroy();\n if (classList_1) {\n removeClass([this.element], classList_1);\n }\n removeClass(this.activeElem, ['e-active']);\n var attrList = this.element.getAttribute('class') ? ['aria-haspopup', 'aria-expanded', 'aria-owns', 'type']\n : ['aria-haspopup', 'aria-expanded', 'aria-owns', 'type', 'class'];\n attrList.forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n this.popupUnWireEvents();\n this.destroyPopup();\n this.isPopupCreated = false;\n if (!this.disabled) {\n this.unWireEvents();\n }\n }\n };\n DropDownButton.prototype.destroyPopup = function () {\n if (this.isPopupCreated) {\n this.dropDown.destroy();\n if (this.getPopUpElement()) {\n var popupEle = document.getElementById(this.getPopUpElement().id);\n if (popupEle) {\n removeClass([popupEle], ['e-popup-open', 'e-popup-close']);\n detach(popupEle);\n }\n }\n EventHandler.remove(this.getPopUpElement(), 'click', this.clickHandler);\n EventHandler.remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler);\n if (this.isPopupCreated && this.dropDown) {\n this.dropDown.element = null;\n this.dropDown = undefined;\n }\n }\n this.isPopupCreated = false;\n var splitButton = getComponent(this.activeElem[0], 'split-btn');\n if (this.createPopupOnClick && splitButton) {\n var dropDownButton = getComponent(this.activeElem[1], 'dropdown-btn');\n if (dropDownButton) {\n dropDownButton.isPopupCreated = false;\n }\n }\n };\n DropDownButton.prototype.getPopUpElement = function () {\n var val = null;\n if (!this.dropDown && this.activeElem[0].classList.contains('e-split-btn')) {\n var dropDownBtn = getComponent(this.activeElem[1], 'dropdown-btn');\n if (dropDownBtn) {\n this.dropDown = dropDownBtn.dropDown;\n }\n }\n if (this.dropDown) {\n val = this.dropDown.element;\n }\n return val;\n };\n DropDownButton.prototype.getULElement = function () {\n var val = null;\n if (this.getPopUpElement()) {\n val = this.getPopUpElement().children[0];\n }\n return val;\n };\n DropDownButton.prototype.wireEvents = function () {\n this.delegateMousedownHandler = this.mousedownHandler.bind(this);\n if (!this.createPopupOnClick) {\n EventHandler.add(document, 'mousedown touchstart', this.delegateMousedownHandler, this);\n }\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n EventHandler.add(this.element, 'keydown', this.keyBoardHandler, this);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.windowResizeBound = this.windowResize.bind(this);\n window.addEventListener('resize', this.windowResizeBound);\n };\n DropDownButton.prototype.windowResize = function () {\n if (!this.canOpen() && this.dropDown) {\n this.dropDown.refreshPosition(this.element);\n }\n };\n DropDownButton.prototype.popupWireEvents = function () {\n if (!this.delegateMousedownHandler) {\n this.delegateMousedownHandler = this.mousedownHandler.bind(this);\n }\n var popupElement = this.getPopUpElement();\n if (this.createPopupOnClick) {\n EventHandler.add(document, 'mousedown touchstart', this.delegateMousedownHandler, this);\n }\n if (popupElement) {\n EventHandler.add(popupElement, 'click', this.clickHandler, this);\n EventHandler.add(popupElement, 'keydown', this.keyBoardHandler, this);\n if (this.closeActionEvents) {\n EventHandler.add(popupElement, this.closeActionEvents, this.focusoutHandler, this);\n }\n }\n this.rippleFn = rippleEffect(popupElement, { selector: '.' + classNames.ITEM });\n };\n DropDownButton.prototype.popupUnWireEvents = function () {\n var popupElement = this.getPopUpElement();\n if (this.createPopupOnClick) {\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\n }\n if (popupElement && popupElement.parentElement) {\n EventHandler.remove(popupElement, 'click', this.clickHandler);\n EventHandler.remove(popupElement, 'keydown', this.keyBoardHandler);\n if (this.closeActionEvents) {\n EventHandler.remove(popupElement, this.closeActionEvents, this.focusoutHandler);\n }\n }\n if (isRippleEnabled && this.rippleFn) {\n this.rippleFn();\n }\n };\n /**\n * Handles the keyboard interactions.\n *\n * @param {KeyboardEventArgs} e - Specifies keyboard event args.\n * @returns {void}\n * @hidden\n */\n DropDownButton.prototype.keyBoardHandler = function (e) {\n if (e.target === this.element && (e.keyCode === 9 || (!e.altKey && e.keyCode === 40) || e.keyCode === 38)) {\n return;\n }\n if (e.target && (e.target.classList.contains('e-item') || (e.target.parentElement && e.target.parentElement.classList.contains('e-split-btn-wrapper'))) && e.keyCode === 13) {\n e.preventDefault();\n }\n switch (e.keyCode) {\n case 38:\n case 40:\n if (e.altKey && (e.keyCode === 38 || e.keyCode === 40)) {\n this.keyEventHandler(e);\n }\n else {\n this.upDownKeyHandler(e);\n }\n break;\n case 9:\n case 13:\n case 27:\n case 32:\n this.keyEventHandler(e);\n break;\n }\n };\n DropDownButton.prototype.isSafari = function () {\n return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n };\n DropDownButton.prototype.upDownKeyHandler = function (e) {\n if (this.target && (e.keyCode === 38 || e.keyCode === 40)) {\n return;\n }\n e.preventDefault();\n upDownKeyHandler(this.getULElement(), e.keyCode);\n };\n DropDownButton.prototype.keyEventHandler = function (e) {\n if (this.target && (e.keyCode === 13 || e.keyCode === 9)) {\n return;\n }\n if (e.keyCode === 13 && this.activeElem[0].classList.contains('e-split-btn')) {\n this.triggerSelect(e);\n this.activeElem[0].focus();\n return;\n }\n if (e.target && e.target.className.indexOf('e-edit-template') > -1 && e.keyCode === 32) {\n return;\n }\n if (e.keyCode !== 9) {\n e.preventDefault();\n }\n if (e.keyCode === 27 || e.keyCode === 38 || e.keyCode === 9) {\n if (!this.canOpen()) {\n this.closePopup(e, this.element);\n }\n }\n else {\n this.clickHandler(e);\n }\n };\n DropDownButton.prototype.getLI = function (elem) {\n return elem.tagName === 'LI' ? elem : closest(elem, 'li');\n };\n DropDownButton.prototype.mousedownHandler = function (e) {\n var trgt = e.target;\n if (this.dropDown && !this.canOpen() && this.getPopUpElement() && !(closest(trgt, '[id=\"' + this.getPopUpElement().id + '\"]')\n || closest(trgt, '[id=\"' + this.element.id + '\"]'))) {\n this.closePopup(e);\n }\n };\n DropDownButton.prototype.focusoutHandler = function (e) {\n if (this.isPopupCreated && !this.canOpen()) {\n var liTarget = (e.relatedTarget || e.target);\n if (liTarget && liTarget.className.indexOf('e-item') > -1) {\n var li = this.getLI(liTarget);\n if (li) {\n var liIdx = Array.prototype.indexOf.call(this.getULElement().children, li);\n var item = this.items[liIdx];\n if (item) {\n var selectEventArgs = { element: li, item: item, event: e };\n this.trigger('select', selectEventArgs);\n }\n }\n }\n this.closePopup(e);\n }\n };\n DropDownButton.prototype.clickHandler = function (e) {\n var trgt = e.target;\n if (closest(trgt, '[id=\"' + this.element.id + '\"]')) {\n if (!this.createPopupOnClick || (this.target && this.target !== '' && !this.isColorPicker() && !this.createPopupOnClick)) {\n if (this.getPopUpElement().classList.contains('e-popup-close')) {\n this.openPopUp(e);\n }\n else {\n this.closePopup(e);\n }\n }\n else if (this.isPopupCreated) {\n this.closePopup(e, this.activeElem[0]);\n }\n else {\n this.createPopup();\n this.openPopUp(e);\n }\n }\n else {\n if (closest(trgt, '[id=\"' + this.getPopUpElement().id + '\"]')) {\n var li = this.getLI(e.target);\n if (li) {\n this.triggerSelect(e);\n this.closePopup(e, this.activeElem[0]);\n }\n }\n }\n };\n DropDownButton.prototype.triggerSelect = function (e) {\n var eventArgs;\n var liIdx;\n var item;\n var li = this.getLI(e.target);\n if (li) {\n liIdx = Array.prototype.indexOf.call(this.getULElement().children, li);\n item = this.items[liIdx];\n if (item) {\n eventArgs = { element: li, item: item, event: e };\n this.trigger('select', eventArgs);\n }\n }\n };\n DropDownButton.prototype.openPopUp = function (e) {\n var _this = this;\n if (e === void 0) { e = null; }\n var isReact = false;\n var popupElem = this.getPopUpElement();\n if (this.activeElem[0] && this.activeElem[0].classList.contains('e-dropdown-btn') && popupElem.style.width && popupElem.style.width !== 'auto') {\n this.setWidth(popupElem);\n }\n if (!this.target) {\n this.createItems(true);\n }\n else {\n if (this.activeElem.length > 1) {\n var splitButton = getComponent(this.activeElem[0], 'split-btn');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (splitButton.isReact && popupElem.childNodes.length < 1) {\n isReact = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (splitButton.appendReactElement) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n splitButton.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n }\n this.renderReactTemplates();\n }\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && popupElem.childNodes.length < 1) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isReact = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.appendReactElement) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n }\n this.renderReactTemplates();\n }\n }\n }\n var ul = this.getULElement();\n this.popupWireEvents();\n var beforeOpenArgs = { element: ul, items: this.items, event: e, cancel: false };\n this.trigger('beforeOpen', beforeOpenArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n var ul_1 = _this.getULElement();\n var animationOptions = _this.animationSettings.effect !== 'None' ? {\n name: _this.animationSettings.effect, duration: _this.animationSettings.duration,\n timingFunction: _this.animationSettings.easing\n } : null;\n if (animationOptions) {\n _this.animatePopup(animationOptions, ul_1);\n }\n _this.dropDown.show(null, _this.element);\n addClass([_this.element], 'e-active');\n _this.element.setAttribute('aria-expanded', 'true');\n _this.element.setAttribute('aria-owns', _this.getPopUpElement().id);\n if (ul_1 && !_this.isSafari()) {\n ul_1.focus();\n }\n if (_this.enableRtl && ul_1.parentElement.style.left !== '0px') {\n var wrapperWidth = void 0;\n if (_this.element.parentElement && _this.element.parentElement.classList.contains('e-split-btn-wrapper')) {\n wrapperWidth = _this.element.parentElement.offsetWidth;\n }\n else {\n wrapperWidth = _this.element.offsetWidth;\n }\n var popupRect = ul_1.parentElement.offsetWidth - wrapperWidth;\n var popupLeft = parseFloat(ul_1.parentElement.style.left) - popupRect;\n if (popupLeft < 0) {\n popupLeft = 0;\n }\n ul_1.parentElement.style.left = popupLeft + 'px';\n }\n var openArgs = { element: ul_1, items: _this.items };\n _this.trigger('open', openArgs);\n if (ul_1 && _this.isSafari()) {\n ul_1.focus();\n }\n }\n });\n };\n DropDownButton.prototype.animatePopup = function (animationOptions, element) {\n new Animation(animationOptions).animate(element, {\n begin: function (args) {\n args.element.parentElement.style.height = args.element.parentElement.offsetHeight + 'px';\n }\n });\n };\n DropDownButton.prototype.setWidth = function (popupElem) {\n var width = formatUnit(popupElem.style.width);\n if (width.indexOf('%') > -1) {\n var btnWidth = this.element.offsetWidth * parseFloat(width) / 100;\n popupElem.style.width = btnWidth + \"px\";\n }\n };\n DropDownButton.prototype.closePopup = function (e, focusEle) {\n var _this = this;\n if (e === void 0) { e = null; }\n var ul = this.getULElement();\n var beforeCloseArgs = { element: ul, items: this.items, event: e, cancel: false };\n this.trigger('beforeClose', beforeCloseArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n var popupElement = _this.getPopUpElement();\n if (popupElement) {\n EventHandler.remove(popupElement, 'keydown', _this.keyBoardHandler);\n }\n _this.popupUnWireEvents();\n var ul_2 = _this.getULElement();\n var selectedLi = void 0;\n if (ul_2) {\n selectedLi = ul_2.querySelector('.e-selected');\n }\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n if (_this.dropDown) {\n _this.dropDown.hide();\n }\n removeClass(_this.activeElem, 'e-active');\n _this.element.setAttribute('aria-expanded', 'false');\n _this.element.removeAttribute('aria-owns');\n if (focusEle) {\n if (!_this.isSafari()) {\n if (!(_this.isColorPicker() && e.keyCode === 27)) {\n focusEle.focus();\n }\n }\n else {\n focusEle.focus({ preventScroll: true });\n }\n }\n var closeArgs = { element: ul_2, items: _this.items };\n _this.trigger('close', closeArgs);\n if (!_this.target && ul_2) {\n detach(ul_2);\n }\n if (!_this.target || _this.isColorPicker() || (_this.target && !_this.isColorPicker())) {\n if (_this.createPopupOnClick) {\n _this.destroyPopup();\n }\n }\n }\n else {\n if (observedArgs.element) {\n ul.focus();\n }\n }\n });\n };\n DropDownButton.prototype.unWireEvents = function () {\n if (!this.createPopupOnClick) {\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\n }\n EventHandler.remove(this.element, 'click', this.clickHandler);\n EventHandler.remove(this.element, 'keydown', this.keyBoardHandler);\n if (this.isPopupCreated) {\n EventHandler.remove(this.getPopUpElement(), 'click', this.clickHandler);\n EventHandler.remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.windowResizeBound) {\n window.removeEventListener('resize', this.windowResizeBound);\n this.windowResizeBound = null;\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {DropDownButtonModel} newProp - Specifies new properties\n * @param {DropDownButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n DropDownButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var btnModel = ['content', 'cssClass', 'iconCss', 'iconPosition', 'disabled', 'enableRtl'];\n this.button.setProperties(getModel(newProp, btnModel));\n var popupElement;\n if (this.isPopupCreated) {\n popupElement = this.getPopUpElement();\n this.dropDown.setProperties(getModel(newProp, ['enableRtl']));\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n if (!this.element.querySelector('span.e-caret')) {\n this.appendArrowSpan();\n }\n break;\n case 'disabled':\n if (newProp.disabled) {\n this.unWireEvents();\n if (this.isPopupCreated && !this.canOpen()) {\n this.closePopup();\n }\n }\n else {\n this.wireEvents();\n }\n break;\n case 'cssClass':\n oldProp.cssClass = isNullOrUndefined(oldProp.cssClass) ? '' : oldProp.cssClass;\n if (newProp.cssClass.indexOf(classNames.VERTICAL) > -1 || oldProp.cssClass.indexOf(classNames.VERTICAL) > -1) {\n if (!this.element.querySelector('span.e-caret')) {\n this.appendArrowSpan();\n }\n var arrowSpan = this.element.querySelector('span.e-caret');\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n newProp.cssClass.indexOf(classNames.VERTICAL) > -1 ? classList(arrowSpan, ['e-icon-bottom'], ['e-icon-right'])\n : classList(arrowSpan, ['e-icon-right'], ['e-icon-bottom']);\n }\n if (this.isPopupCreated) {\n if (oldProp.cssClass) {\n removeClass([popupElement], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([popupElement], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n }\n break;\n case 'target':\n this.dropDown.content = this.getTargetElement();\n this.dropDown.dataBind();\n break;\n case 'items':\n if (this.isPopupCreated && this.getULElement()) {\n this.createItems();\n }\n break;\n case 'createPopupOnClick':\n if (newProp.createPopupOnClick) {\n this.destroyPopup();\n }\n else {\n this.createPopup();\n }\n break;\n }\n }\n };\n /**\n * Sets the focus to DropDownButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n DropDownButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property('Left')\n ], DropDownButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property(true)\n ], DropDownButton.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Collection([], Item)\n ], DropDownButton.prototype, \"items\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"closeActionEvents\", void 0);\n __decorate([\n Property(null)\n ], DropDownButton.prototype, \"itemTemplate\", void 0);\n __decorate([\n Property('auto')\n ], DropDownButton.prototype, \"popupWidth\", void 0);\n __decorate([\n Complex({ effect: 'None' }, DropDownMenuAnimationSettings)\n ], DropDownButton.prototype, \"animationSettings\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"created\", void 0);\n DropDownButton = __decorate([\n NotifyPropertyChanges\n ], DropDownButton);\n return DropDownButton;\n}(Component));\nexport { DropDownButton };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// <reference path='../drop-down-button/drop-down-button-model.d.ts'/>\nimport { Event, remove, addClass, removeClass, detach, getValue, setValue } from '@syncfusion/ej2-base';\nimport { EventHandler, Collection, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { attributes, getUniqueID, getInstance, KeyboardEvents } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { getModel, Item } from './../common/common';\nimport { DropDownButton } from '../drop-down-button/drop-down-button';\nvar RTL = 'e-rtl';\nvar TAGNAME = 'EJS-SPLITBUTTON';\n/**\n * SplitButton component has primary and secondary button. Primary button is used to select\n * default action and secondary button is used to toggle contextual overlays for displaying list of\n * action items. It can contain both text and images.\n * ```html\n * <button id=\"element\"></button>\n * ```\n * ```typescript\n * <script>\n * var splitBtnObj = new SplitButton({content: 'SplitButton'});\n * splitBtnObj.appendTo(\"#element\");\n * </script>\n * ```\n */\nvar SplitButton = /** @class */ (function (_super) {\n __extends(SplitButton, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {SplitButtonModel} options - Specifies the splitbutton model\n * @param {string|HTMLButtonElement} element - Specifies the element\n * @hidden\n */\n function SplitButton(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize Angular support.\n *\n * @private\n * @returns {void}\n */\n SplitButton.prototype.preRender = function () {\n var ele = this.element;\n if (ele.tagName === TAGNAME) {\n var ejInstance = getValue('ej2_instances', ele);\n var btn = this.createElement('button', { attrs: { 'type': 'button' } });\n var wrapper = this.createElement(TAGNAME, { className: 'e-' + this.getModuleName() + '-wrapper' });\n for (var idx = 0, len = ele.attributes.length; idx < len; idx++) {\n btn.setAttribute(ele.attributes[idx].nodeName, ele.attributes[idx].nodeValue);\n }\n ele.parentNode.insertBefore(wrapper, ele);\n detach(ele);\n ele = btn;\n wrapper.appendChild(ele);\n setValue('ej2_instances', ejInstance, ele);\n this.wrapper = wrapper;\n this.element = ele;\n }\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n };\n /**\n * Initialize the Component rendering.\n *\n * @returns {void}\n * @private\n */\n SplitButton.prototype.render = function () {\n this.initWrapper();\n this.createPrimaryButton();\n this.renderControl();\n };\n SplitButton.prototype.renderControl = function () {\n this.createSecondaryButton();\n this.setActiveElem([this.element, this.secondaryBtnObj.element]);\n this.setAria();\n this.wireEvents();\n this.renderComplete();\n };\n /**\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\n * but you can insert based on the text parameter.\n *\n * @param { ItemModel[] } items - Specifies an array of JSON data.\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\n * @returns {void}.\n */\n SplitButton.prototype.addItems = function (items, text) {\n _super.prototype.addItems.call(this, items, text);\n this.secondaryBtnObj.items = this.items;\n };\n /**\n * Removes the items from the menu.\n *\n * @param { string[] } items - Specifies an array of string to remove the items.\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\n * @returns {void}.\n */\n SplitButton.prototype.removeItems = function (items, isUniqueId) {\n _super.prototype.removeItems.call(this, items, isUniqueId);\n this.secondaryBtnObj.items = this.items;\n };\n SplitButton.prototype.initWrapper = function () {\n if (!this.wrapper) {\n this.wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' });\n this.element.parentNode.insertBefore(this.wrapper, this.element);\n }\n this.element.classList.remove('e-' + this.getModuleName());\n if (this.enableRtl) {\n this.wrapper.classList.add(RTL);\n }\n if (this.cssClass) {\n addClass([this.wrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n };\n SplitButton.prototype.createPrimaryButton = function () {\n var btnModel = {\n cssClass: this.cssClass,\n enableRtl: this.enableRtl,\n iconCss: this.iconCss,\n iconPosition: this.iconPosition,\n content: this.content,\n disabled: this.disabled\n };\n this.primaryBtnObj = new Button(btnModel);\n this.primaryBtnObj.createElement = this.createElement;\n this.primaryBtnObj.appendTo(this.element);\n this.element.classList.add('e-' + this.getModuleName());\n this.element.type = 'button';\n this.wrapper.appendChild(this.element);\n };\n SplitButton.prototype.createSecondaryButton = function () {\n var _this = this;\n var btnElem = this.createElement('button', {\n className: 'e-icon-btn',\n attrs: { 'tabindex': '-1' },\n id: this.element.id + '_dropdownbtn'\n });\n this.wrapper.appendChild(btnElem);\n var dropDownBtnModel = {\n cssClass: this.cssClass,\n disabled: this.disabled,\n enableRtl: this.enableRtl,\n items: this.items,\n target: this.target,\n createPopupOnClick: this.createPopupOnClick\n };\n dropDownBtnModel.beforeItemRender = function (args) {\n if (_this.createPopupOnClick) {\n _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper;\n _this.dropDown = _this.secondaryBtnObj.dropDown;\n }\n _this.trigger('beforeItemRender', args);\n };\n dropDownBtnModel.open = function (args) {\n _this.trigger('open', args);\n };\n dropDownBtnModel.close = function (args) {\n _this.trigger('close', args);\n };\n dropDownBtnModel.select = function (args) {\n _this.trigger('select', args);\n };\n dropDownBtnModel.beforeOpen = function (args) {\n if (_this.createPopupOnClick && _this.items.length === 0) {\n _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper;\n _this.dropDown = _this.secondaryBtnObj.dropDown;\n }\n var callBackPromise = new Deferred();\n _this.trigger('beforeOpen', args, function (observedArgs) {\n callBackPromise.resolve(observedArgs);\n });\n return callBackPromise;\n };\n dropDownBtnModel.beforeClose = function (args) {\n var callBackPromise = new Deferred();\n _this.trigger('beforeClose', args, function (observedArgs) {\n callBackPromise.resolve(observedArgs);\n });\n return callBackPromise;\n };\n this.secondaryBtnObj = new DropDownButton(dropDownBtnModel);\n this.secondaryBtnObj.createElement = this.createElement;\n if (this.isAngular) {\n this.secondaryBtnObj.isAngular = this.isAngular;\n }\n this.secondaryBtnObj.appendTo(btnElem);\n if (!this.createPopupOnClick) {\n this.secondaryBtnObj.dropDown.relateTo = this.wrapper;\n this.dropDown = this.secondaryBtnObj.dropDown;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.isPopupCreated = this.secondaryBtnObj.isPopupCreated;\n this.secondaryBtnObj.activeElem = [this.element, this.secondaryBtnObj.element];\n this.secondaryBtnObj.element.querySelector('.e-btn-icon').classList.remove('e-icon-right');\n if (this.disabled) {\n this.wrapper.classList.add('e-splitbtn-disabled');\n }\n };\n SplitButton.prototype.setAria = function () {\n attributes(this.element, {\n 'aria-expanded': 'false',\n 'aria-label': this.element.textContent ? this.element.textContent + ' splitbutton' : 'splitbutton', 'aria-owns': this.element.id + '_dropdownbtn-popup'\n });\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n SplitButton.prototype.getModuleName = function () {\n return 'split-btn';\n };\n /**\n * To open/close SplitButton popup based on current state of the SplitButton.\n *\n * @returns {void}\n */\n SplitButton.prototype.toggle = function () {\n this.secondaryBtnObj.toggle();\n };\n SplitButton.prototype.destroy = function () {\n var _this = this;\n var classList = [RTL];\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.split(' '));\n }\n if (this.element) {\n var element = document.getElementById(this.element.id);\n if (element && element.parentElement === this.wrapper) {\n if (this.wrapper.tagName === TAGNAME) {\n this.wrapper.innerHTML = '';\n removeClass([this.wrapper], ['e-rtl', 'e-' + this.getModuleName() + '-wrapper']);\n removeClass([this.wrapper], this.cssClass.split(' '));\n }\n else {\n removeClass([this.element], classList);\n ['aria-label', 'aria-expanded', 'aria-owns', 'type'].forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n this.wrapper.parentNode.insertBefore(this.element, this.wrapper);\n remove(this.wrapper);\n }\n this.unWireEvents();\n }\n else if (this.wrapper && this.wrapper.tagName === TAGNAME) {\n this.unWireEvents();\n }\n }\n this.primaryBtnObj.destroy();\n this.secondaryBtnObj.destroy();\n _super.prototype.destroy.call(this);\n if (this.element && !this.element.getAttribute('class')) {\n this.element.removeAttribute('class');\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.refreshing && this.isAngular) {\n this.element = this.wrapper;\n ['e-control', 'e-split-btn', 'e-lib'].forEach(function (key) {\n _this.element.classList.add(key);\n });\n setValue('ej2_instances', [this], this.element);\n }\n this.wrapper = null;\n };\n SplitButton.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.primaryBtnClickHandler, this);\n new KeyboardEvents(this.element, {\n keyAction: this.btnKeyBoardHandler.bind(this),\n keyConfigs: {\n altdownarrow: 'alt+downarrow',\n enter: 'enter'\n }\n });\n };\n SplitButton.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.primaryBtnClickHandler);\n getInstance(this.element, KeyboardEvents).destroy();\n };\n SplitButton.prototype.primaryBtnClickHandler = function () {\n this.trigger('click', { element: this.element });\n };\n SplitButton.prototype.btnKeyBoardHandler = function (e) {\n switch (e.action) {\n case 'altdownarrow':\n this.clickHandler(e);\n break;\n case 'enter':\n this.clickHandler(e);\n if (this.getPopUpElement() && !this.getPopUpElement().classList.contains('e-popup-close')) {\n this.element.classList.remove('e-active');\n this.secondaryBtnObj.element.classList.add('e-active');\n }\n else {\n this.secondaryBtnObj.element.classList.remove('e-active');\n }\n break;\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {SplitButtonModel} newProp - Specifies new properties\n * @param {SplitButtonModel} oldProp - Specifies old properties\n * @returns {void}\n */\n SplitButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var model = ['content', 'iconCss', 'iconPosition', 'cssClass', 'disabled', 'enableRtl'];\n this.primaryBtnObj.setProperties(getModel(newProp, model));\n model = ['beforeOpen', 'beforeItemRender', 'select', 'open',\n 'close', 'cssClass', 'disabled', 'enableRtl', 'createPopupOnClick'];\n if (Object.keys(newProp).indexOf('items') > -1) {\n this.secondaryBtnObj.items = newProp.items;\n this.secondaryBtnObj.dataBind();\n }\n this.secondaryBtnObj.setProperties(getModel(newProp, model));\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.wrapper], oldProp.cssClass.split(' '));\n }\n addClass([this.wrapper], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n addClass([this.wrapper], RTL);\n }\n else {\n removeClass([this.wrapper], RTL);\n }\n break;\n case 'disabled':\n if (newProp.disabled) {\n addClass([this.wrapper], 'e-splitbtn-disabled');\n }\n else {\n removeClass([this.wrapper], 'e-splitbtn-disabled');\n }\n }\n }\n };\n /**\n * Sets the focus to SplitButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n SplitButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('')\n ], SplitButton.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], SplitButton.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property('Left')\n ], SplitButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property(false)\n ], SplitButton.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Collection([], Item)\n ], SplitButton.prototype, \"items\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"target\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"click\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"created\", void 0);\n SplitButton = __decorate([\n NotifyPropertyChanges\n ], SplitButton);\n return SplitButton;\n}(DropDownButton));\nexport { SplitButton };\n/**\n * Deferred is used to handle asynchronous operation.\n */\nvar Deferred = /** @class */ (function () {\n function Deferred() {\n var _this = this;\n /**\n * Promise is an object that represents a value that may not be available yet, but will be resolved at some point in the future.\n */\n this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n /**\n * Defines the callback function triggers when the Deferred object is rejected.\n */\n this.catch = this.promise.catch.bind(this.promise);\n /**\n * Defines the callback function triggers when the Deferred object is resolved.\n */\n this.then = this.promise.then.bind(this.promise);\n }\n return Deferred;\n}());\nexport { Deferred };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { EventHandler, Property, NotifyPropertyChanges, Animation, attributes, animationMode } from '@syncfusion/ej2-base';\nimport { Event, remove, removeClass } from '@syncfusion/ej2-base';\nimport { Complex, ChildProperty, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nvar HIDESPINNER = 'e-hide-spinner';\nvar PROGRESS = 'e-progress';\nvar PROGRESSACTIVE = 'e-progress-active';\nvar CONTENTCLS = 'e-btn-content';\n/**\n * Defines the spin settings.\n */\nvar SpinSettings = /** @class */ (function (_super) {\n __extends(SpinSettings, _super);\n function SpinSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], SpinSettings.prototype, \"template\", void 0);\n __decorate([\n Property(16)\n ], SpinSettings.prototype, \"width\", void 0);\n __decorate([\n Property('Left')\n ], SpinSettings.prototype, \"position\", void 0);\n return SpinSettings;\n}(ChildProperty));\nexport { SpinSettings };\n/**\n * Defines the animation settings.\n */\nvar AnimationSettings = /** @class */ (function (_super) {\n __extends(AnimationSettings, _super);\n function AnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(400)\n ], AnimationSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('None')\n ], AnimationSettings.prototype, \"effect\", void 0);\n __decorate([\n Property('ease')\n ], AnimationSettings.prototype, \"easing\", void 0);\n return AnimationSettings;\n}(ChildProperty));\nexport { AnimationSettings };\n/**\n * The ProgressButton visualizes the progression of an operation to indicate the user\n * that a process is happening in the background with visual representation.\n * ```html\n * <button id=\"element\"></button>\n * ```\n * ```typescript\n * <script>\n * var progressButtonObj = new ProgressButton({ content: 'Progress Button' });\n * progressButtonObj.appendTo(\"#element\");\n * </script>\n * ```\n */\nvar ProgressButton = /** @class */ (function (_super) {\n __extends(ProgressButton, _super);\n /**\n * Constructor for creating the widget.\n *\n * @param {ProgressButtonModel} options - Specifies progress button model\n * @param {string|HTMLButtonElement} element - Specifies element\n */\n function ProgressButton(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.step = 1;\n return _this;\n }\n ProgressButton.prototype.preRender = function () {\n _super.prototype.preRender.call(this);\n };\n /**\n * Initialize the Component rendering\n *\n * @returns {void}\n * @private\n */\n ProgressButton.prototype.render = function () {\n _super.prototype.render.call(this);\n this.init();\n this.wireEvents();\n this.setAria();\n this.renderComplete();\n };\n /**\n * Starts the button progress at the specified percent.\n *\n * @param {number} percent - Starts the button progress at this percent.\n * @returns {void}\n */\n ProgressButton.prototype.start = function (percent) {\n this.isPaused = false;\n this.startProgress(percent ? percent : this.percent, this.progressTime);\n };\n /**\n * Stops the button progress.\n *\n * @returns {void}\n */\n ProgressButton.prototype.stop = function () {\n this.isPaused = true;\n cancelAnimationFrame(this.timerId);\n };\n /**\n * Complete the button progress.\n *\n * @returns {void}\n */\n ProgressButton.prototype.progressComplete = function () {\n this.isPaused = false;\n this.finishProgress();\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n ProgressButton.prototype.getModuleName = function () {\n return 'progress-btn';\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n ProgressButton.prototype.destroy = function () {\n var _this = this;\n var classList = [HIDESPINNER, PROGRESSACTIVE, 'e-round-corner', 'e-' + _super.prototype.getModuleName.call(this)];\n if (this.spinSettings.position) {\n classList.push('e-spin-' + this.spinSettings.position.toLowerCase());\n }\n _super.prototype.destroy.call(this);\n this.unWireEvents();\n this.element.innerHTML = '';\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.split(' '));\n }\n removeClass([this.element], classList);\n var css = this.element.getAttribute('class') ? ['aria-label', 'aria-valuemin', 'aria-valuemax', 'aria-valuenow']\n : ['aria-label', 'aria-valuemin', 'aria-valuemax', 'aria-valuenow', 'class'];\n css.forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n if (this.disabled) {\n this.element.removeAttribute('disabled');\n }\n };\n ProgressButton.prototype.init = function () {\n this.element.classList.add('e-' + _super.prototype.getModuleName.call(this));\n this.setContent();\n this.createSpinner();\n if (this.enableProgress) {\n this.createProgress();\n }\n };\n ProgressButton.prototype.createSpinner = function () {\n var spinner = this.createElement('span', { className: 'e-spinner' });\n this.setSpinPosition(spinner);\n createSpinner({\n target: spinner, width: this.spinSettings.width || 16, template: this.spinSettings.template\n }, this.createElement);\n };\n ProgressButton.prototype.getSpinner = function () {\n return this.element.getElementsByClassName('e-spinner')[0];\n };\n ProgressButton.prototype.getProgress = function () {\n return this.element.getElementsByClassName(PROGRESS)[0];\n };\n ProgressButton.prototype.setSpinPosition = function (ele) {\n var position = this.spinSettings.position || 'Left';\n if (position === 'Left' || position === 'Top') {\n this.element.insertBefore(ele, this.element.getElementsByClassName(CONTENTCLS)[0]);\n }\n else {\n this.element.appendChild(ele);\n }\n this.element.classList.add('e-spin-' + position.toLowerCase());\n };\n ProgressButton.prototype.createProgress = function () {\n this.element.appendChild(this.createElement('span', { className: PROGRESS }));\n };\n ProgressButton.prototype.setContent = function () {\n var cont;\n cont = this.element.innerHTML;\n if (this.enableHtmlSanitizer) {\n cont = SanitizeHtmlHelper.sanitize(this.element.innerHTML);\n }\n this.element.innerHTML = '';\n this.element.appendChild(this.createElement('span', { className: CONTENTCLS, innerHTML: cont }));\n };\n ProgressButton.prototype.clickHandler = function () {\n if (this.element.classList.contains(PROGRESSACTIVE)) {\n return;\n }\n this.startProgress();\n };\n ProgressButton.prototype.startProgress = function (percent, progressTime) {\n var clsList = this.element.classList;\n var isVertical = clsList.contains('e-vertical');\n clsList.add(PROGRESSACTIVE);\n if (!(clsList.contains(HIDESPINNER))) {\n showSpinner(this.element.querySelector('.e-spinner'));\n }\n this.startAnimate(Date.now(), progressTime ? progressTime : 0, progressTime ? Date.now() - (this.duration * 1 / 100) : Date.now(), percent ? percent : 0, 0, this.step, 0, isVertical);\n this.startContAnimate();\n };\n ProgressButton.prototype.startAnimate = function (timestamp, progressTime, prevTime, percent, prevPercent, step, prevProgressTime, isVertical) {\n var _this = this;\n try {\n var timeDiff = timestamp - prevTime;\n var stepTime = this.duration * step / 100;\n var timeDiffBuffer_1 = timeDiff ? (timeDiff < stepTime ? timeDiff - stepTime : timeDiff % stepTime) : 0;\n this.progressTime = progressTime = progressTime + timeDiff - timeDiffBuffer_1;\n prevTime = timestamp - timeDiffBuffer_1;\n percent = percent + (timeDiff - timeDiffBuffer_1) / this.duration * 100;\n prevPercent = ((progressTime - prevProgressTime) % stepTime === 0 || percent === 100) ? percent : prevPercent;\n var args = { percent: prevPercent, currentDuration: progressTime, step: step };\n this.eIsVertical = isVertical;\n if (percent === 0) {\n this.trigger('begin', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n else if (percent === 100 || progressTime === this.duration) {\n this.trigger('end', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n else {\n this.trigger('progress', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n }\n catch (e) {\n cancelAnimationFrame(this.timerId);\n this.trigger('fail', e);\n }\n };\n ProgressButton.prototype.successCallback = function (args, perc, pPerc, prgTim, pPrgTim, timDif, pTim) {\n var _this = this;\n var percent = perc;\n var prevPercent = pPerc;\n var timeDiffBuffer = timDif;\n var progressTime = prgTim;\n var prevProgressTime = pPrgTim;\n var prevTime = pTim;\n var isVertical = this.eIsVertical;\n if (percent !== args.percent && args.percent !== prevPercent) {\n percent = args.percent;\n }\n this.percent = percent;\n this.step = args.step;\n if ((progressTime - prevProgressTime) % (this.duration * args.step / 100) === 0 || percent === 100) {\n this.timerId = requestAnimationFrame(function () {\n if (_this.enableProgress && _this.getProgress()) {\n _this.getProgress().style[isVertical ? 'height' : 'width'] = percent + '%';\n }\n _this.element.setAttribute('aria-valuenow', percent.toString());\n });\n prevPercent = percent;\n prevProgressTime = progressTime;\n }\n if (!this.isPaused) {\n if (progressTime < this.duration && percent < 100) {\n this.interval = window.setTimeout(function () {\n _this.startAnimate(Date.now(), progressTime, prevTime, percent, prevPercent, args.step, prevProgressTime, isVertical);\n }, (this.duration / 100) - timeDiffBuffer);\n }\n else {\n this.interval = window.setTimeout(function () {\n _this.progressTime = _this.percent = 0;\n if (_this.enableProgress && _this.getProgress()) {\n _this.getProgress().style[isVertical ? 'height' : 'width'] = '0%';\n }\n _this.element.setAttribute('aria-valuenow', '0');\n _this.hideSpin();\n }, 100);\n }\n }\n };\n ProgressButton.prototype.startContAnimate = function () {\n var _this = this;\n var ele = this.element.getElementsByClassName(CONTENTCLS)[0];\n if (this.animationSettings.effect !== 'None') {\n (new Animation({})).animate(ele, {\n duration: (this.animationSettings.duration === 0 && animationMode === 'Enable') ? 400 : this.animationSettings.duration,\n name: 'Progress' + this.animationSettings.effect,\n timingFunction: this.animationSettings.easing,\n begin: function () {\n if (_this.spinSettings.position === 'Center') {\n _this.setSpinnerSize();\n }\n },\n end: function () {\n ele.classList.add('e-animate-end');\n }\n });\n }\n else if (this.spinSettings.position === 'Center') {\n this.setSpinnerSize();\n }\n };\n ProgressButton.prototype.finishProgress = function () {\n var clsList = this.element.classList;\n var isVertical = clsList.contains('e-vertical');\n clsList.add(PROGRESSACTIVE);\n var count = 100;\n for (var i = this.percent; i < count; i++) {\n i += 10;\n if (i > 100) {\n i = 100;\n }\n if (this.enableProgress && this.getProgress()) {\n this.getProgress().style[isVertical ? 'height' : 'width'] = (this.percent < 100) ? (i + '%') : '100%';\n }\n }\n this.element.setAttribute('aria-valuenow', '0');\n this.hideSpin();\n var args = { step: this.step, currentDuration: this.progressTime, percent: 100 };\n clearTimeout(this.interval);\n this.trigger('end', args);\n this.progressTime = this.percent = 0;\n };\n ProgressButton.prototype.setSpinnerSize = function () {\n var ele = this.element.getElementsByClassName(CONTENTCLS)[0];\n var spinner = this.getSpinner();\n spinner.style.width = Math.max(spinner.offsetWidth, ele.offsetWidth) + 'px';\n spinner.style.height = Math.max(spinner.offsetHeight, ele.offsetHeight) + 'px';\n ele.classList.add('e-cont-animate');\n };\n ProgressButton.prototype.hideSpin = function () {\n var cont = this.element.getElementsByClassName(CONTENTCLS)[0];\n if (!(this.element.classList.contains(HIDESPINNER))) {\n hideSpinner(this.element.querySelector('.e-spinner'));\n }\n this.element.classList.remove(PROGRESSACTIVE);\n if (this.animationSettings.effect !== 'None') {\n cont.classList.remove('e-animate-end');\n }\n if (this.spinSettings.position === 'Center') {\n var ele = this.getSpinner();\n cont.classList.remove('e-cont-animate');\n ele.style.width = 'auto';\n ele.style.height = 'auto';\n }\n };\n ProgressButton.prototype.setIconSpan = function () {\n var cont = this.element.getElementsByClassName(CONTENTCLS)[0];\n var iconSpan = this.element.getElementsByClassName('e-btn-icon')[0];\n if (cont.childNodes[0] && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\n cont.insertBefore(iconSpan, cont.childNodes[0]);\n }\n else {\n cont.appendChild(iconSpan);\n }\n };\n ProgressButton.prototype.setAria = function () {\n attributes(this.element, {\n 'aria-label': this.element.textContent + ' progress'\n });\n };\n ProgressButton.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n };\n ProgressButton.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.clickHandler);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {ProgressButtonModel} newProp - Specifies new properties\n * @param {ProgressButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n ProgressButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var ele = this.element;\n var isSpinning = false;\n var clsList = this.element.querySelector('.e-spinner-pane').classList;\n if (clsList.contains('e-spin-show')) {\n isSpinning = true;\n }\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n this.setContent();\n this.createSpinner();\n if (isSpinning) {\n showSpinner(this.element.querySelector('.e-spinner'));\n isSpinning = false;\n }\n if (this.enableProgress) {\n this.createProgress();\n }\n ele.setAttribute('aria-label', ele.textContent + ' progress');\n break;\n case 'iconCss':\n if (!oldProp.iconCss) {\n this.setIconSpan();\n }\n break;\n case 'iconPosition':\n this.setIconSpan();\n break;\n case 'enableProgress':\n if (newProp.enableProgress) {\n this.createProgress();\n }\n else {\n remove(this.getProgress());\n }\n break;\n case 'spinSettings':\n if (newProp.spinSettings.position) {\n ele.classList.remove('e-spin-' + oldProp.spinSettings.position.toLowerCase());\n this.setSpinPosition(this.getSpinner());\n }\n if (newProp.spinSettings.template || newProp.spinSettings.width) {\n ele.removeChild(this.getSpinner());\n this.createSpinner();\n }\n break;\n }\n }\n };\n /**\n * Sets the focus to ProgressButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n ProgressButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"enableProgress\", void 0);\n __decorate([\n Property(2000)\n ], ProgressButton.prototype, \"duration\", void 0);\n __decorate([\n Property('Left')\n ], ProgressButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"isPrimary\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"content\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"isToggle\", void 0);\n __decorate([\n Property(true)\n ], ProgressButton.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Complex({}, SpinSettings)\n ], ProgressButton.prototype, \"spinSettings\", void 0);\n __decorate([\n Complex({}, AnimationSettings)\n ], ProgressButton.prototype, \"animationSettings\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"begin\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"progress\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"end\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"fail\", void 0);\n ProgressButton = __decorate([\n NotifyPropertyChanges\n ], ProgressButton);\n return ProgressButton;\n}(Button));\nexport { ProgressButton };\n"],"names":["getModel","props","model","obj","extend","_i","_a","Object","keys","length","prop","indexOf","deleteObject","upDownKeyHandler","ul","keyCode","defaultIdx","childElementCount","liIdx","selectedLi","querySelector","classList","remove","i","len","children","contains","isValidLI","addClass","focus","li","index","count","setBlankIconStyle","popup","blankIcon","blankIconList","slice","call","getElementsByClassName","forEach","style","paddingLeft","paddingRight","removeAttribute","iconLi","isNullOrUndefined","cssProp","icon","enableRtl","padding","margin","size","parseInt","getComputedStyle","fontSize","createButtonGroup","selector","options","createElement","child","btnElem","nextChild","btnModel","internalCreateElement","wrapper","document","setAttribute","childs","buttons","j","tagName","insertBefore","appendChild","id","disabled","cssClass","Button","__extends","extendStatics","d","b","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","Item","_super","apply","Property","ChildProperty","classNames","DISABLED","FOCUS","ICON","ITEM","POPUP","RTL","SEPARATOR","VERTICAL","POPUPWIDTH","DropDownMenuAnimationSettings","DropDownButton","element","_this","isPopupCreated","preRender","getPersistData","addOnPersist","toggle","canOpen","openPopUp","createPopupOnClick","createPopup","closePopup","render","initialize","wireEvents","renderComplete","addItems","items","text","newItem","idx","splice","createItems","removeItems","isUniqueId","refresh","len_1","getULElement","div","className","popupWidth","appendToElement","body","isAngular","cdkPane","closest","popoverEl","dropDown","Popup","width","relateTo","collision","X","Y","position","targetType","content","getTargetElement","popupContent","display","refreshPosition","hide","attributes","replace","trim","split","splitButton","getComponent","activeElem","isColorPicker","select","appendItems","span","item","eventArgs","showIcon","hasIcon","innerHTML","attrs","role","tabindex","itemTemplate","compiledTemplate_1","compiletemplate","separator","aria-label","aria-hidden","getUniqueID","getModuleName","compiledElement","append","add","trigger","isReact","renderReactTemplates","enableHtmlSanitizer","SanitizeHtmlHelper","sanitize","tempItem","url","textContent","createAnchor","iconCss","childNodes","beforeDisabled","getPopUpElement","template","templateElement","compile","field","anchor","href","button","iconPosition","enablePersistence","appendTo","appendArrowSpan","setActiveElem","prevElem","previousSibling","elem","val","destroy","classList_1","detach","removeClass","getAttribute","popupUnWireEvents","destroyPopup","unWireEvents","popupEle","getElementById","EventHandler","clickHandler","keyBoardHandler","undefined","dropDownButton","dropDownBtn","delegateMousedownHandler","mousedownHandler","bind","windowResizeBound","windowResize","window","addEventListener","popupWireEvents","popupElement","closeActionEvents","focusoutHandler","rippleFn","rippleEffect","parentElement","isRippleEnabled","e","altKey","preventDefault","keyEventHandler","isSafari","test","navigator","userAgent","triggerSelect","getLI","trgt","liTarget","relatedTarget","selectEventArgs","event","popupElem","setWidth","appendReactElement","beforeOpenArgs","cancel","observedArgs","ul_1","animationOptions","animationSettings","effect","name","duration","timingFunction","easing","animatePopup","show","left","wrapperWidth","offsetWidth","popupRect","popupLeft","parseFloat","openArgs","Animation","animate","begin","args","height","offsetHeight","formatUnit","btnWidth","focusEle","beforeCloseArgs","ul_2","preventScroll","closeArgs","removeEventListener","onPropertyChanged","newProp","oldProp","setProperties","arrowSpan","dataBind","focusIn","Collection","Complex","Event","NotifyPropertyChanges","Component","TAGNAME","SplitButton","ele","ejInstance","getValue","btn","type","nodeName","nodeValue","parentNode","setValue","initWrapper","createPrimaryButton","renderControl","createSecondaryButton","secondaryBtnObj","setAria","primaryBtnObj","dropDownBtnModel","beforeItemRender","open","close","beforeOpen","callBackPromise","Deferred","resolve","beforeClose","aria-expanded","aria-owns","concat","refreshing","primaryBtnClickHandler","KeyboardEvents","keyAction","btnKeyBoardHandler","keyConfigs","altdownarrow","enter","getInstance","action","promise","Promise","reject","catch","then","CONTENTCLS","SpinSettings","AnimationSettings","ProgressButton","step","init","start","percent","isPaused","startProgress","progressTime","stop","cancelAnimationFrame","timerId","progressComplete","finishProgress","spinSettings","push","toLowerCase","setContent","createSpinner","enableProgress","createProgress","spinner","setSpinPosition","getSpinner","getProgress","cont","clsList","isVertical","showSpinner","startAnimate","Date","now","startContAnimate","timestamp","prevTime","prevPercent","prevProgressTime","timeDiff","stepTime","timeDiffBuffer_1","currentDuration","eIsVertical","successCallback","perc","pPerc","prgTim","pPrgTim","timDif","pTim","timeDiffBuffer","requestAnimationFrame","toString","interval","setTimeout","hideSpin","animationMode","setSpinnerSize","end","clearTimeout","Math","max","hideSpinner","setIconSpan","iconSpan","isSpinning","removeChild"],"mappings":"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"}
1
+ {"version":3,"file":"ej2-splitbuttons.min.js","sources":["../../src/common/common.js","../../src/button-group/button-group.js","../../src/drop-down-button/drop-down-button.js","../../src/split-button/split-button.js","../../src/progress-button/progress-button.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, extend, deleteObject, Property, addClass, isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @param {Object} props - Specifies the properties\n * @param {string[]} model - Specifies the model\n * @returns {Object} Component Model\n */\nexport function getModel(props, model) {\n var obj = extend({}, props);\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var prop = _a[_i];\n if ((model).indexOf(prop) < 0) {\n deleteObject(obj, prop);\n }\n }\n return obj;\n}\n/** @hidden\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {number} keyCode - Specifies the keycode\n * @returns {void}\n */\nexport function upDownKeyHandler(ul, keyCode) {\n var defaultIdx = keyCode === 40 ? 0 : ul.childElementCount - 1;\n var liIdx = defaultIdx;\n var li;\n var selectedLi = ul.querySelector('.e-selected');\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n for (var i = 0, len = ul.children.length; i < len; i++) {\n if (ul.children[i].classList.contains('e-focused')) {\n li = ul.children[i];\n liIdx = i;\n li.classList.remove('e-focused');\n if (keyCode === 40) {\n liIdx++;\n }\n else {\n liIdx--;\n }\n if (liIdx === (keyCode === 40 ? ul.childElementCount : -1)) {\n liIdx = defaultIdx;\n }\n }\n }\n li = ul.children[liIdx];\n liIdx = isValidLI(ul, li, liIdx, keyCode);\n if (liIdx !== -1) {\n addClass([ul.children[liIdx]], 'e-focused');\n ul.children[liIdx].focus();\n }\n}\n/**\n * Get Valid LI element\n *\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {Element} li - Specifies the LI element\n * @param {number} index - Specifies the index\n * @param {number} keyCode - Specifies the keycode\n * @param {number} count - Specifies the count\n * @returns {number} - Index\n */\nfunction isValidLI(ul, li, index, keyCode, count) {\n if (count === void 0) { count = 0; }\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n if (index === (keyCode === 40 ? ul.childElementCount - 1 : 0)) {\n index = keyCode === 40 ? 0 : ul.childElementCount - 1;\n }\n else {\n if (keyCode === 40) {\n index++;\n }\n else {\n index--;\n }\n }\n }\n li = ul.children[index];\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n count++;\n if (count === ul.childElementCount) {\n return index = -1;\n }\n index = isValidLI(ul, li, index, keyCode, count);\n }\n return index;\n}\n/** @hidden\n * @param {HTMLElement} popup - Specifies the popup element.\n * @param {boolean} blankIcon - Specifies the blankIcon value.\n * @returns {void}\n */\nexport function setBlankIconStyle(popup, blankIcon) {\n var blankIconList = [].slice.call(popup.getElementsByClassName('e-blank-icon'));\n if (blankIcon) {\n var menuItem = [].slice.call(popup.getElementsByClassName('e-item'));\n menuItem.forEach(function (li) {\n if (li.style.paddingLeft || li.style.paddingRight) {\n li.removeAttribute('style');\n }\n });\n }\n if (!blankIconList.length) {\n return;\n }\n var iconLi = popup.querySelector('.e-item:not(.e-blank-icon):not(.e-separator)');\n if (isNullOrUndefined(iconLi)) {\n return;\n }\n if (iconLi.classList.contains('e-url')) {\n iconLi = iconLi.querySelector('.e-menu-url');\n }\n var icon = iconLi.querySelector('.e-menu-icon');\n var cssProp;\n var enableRtl = popup.classList.contains('e-rtl');\n if (enableRtl) {\n cssProp = { padding: 'paddingRight', margin: 'marginLeft' };\n }\n else {\n cssProp = { padding: 'paddingLeft', margin: 'marginRight' };\n }\n /* eslint-disable */\n var size = parseInt(getComputedStyle(icon).fontSize, 10) + parseInt((enableRtl ? getComputedStyle(icon)[cssProp.margin] : getComputedStyle(icon)[cssProp.margin]), 10)\n + parseInt(getComputedStyle(iconLi).paddingLeft, 10) + \"px\";\n blankIconList.forEach(function (li) {\n if (li.classList.contains('e-url') && li.querySelector('.e-menu-url')) {\n li.querySelector('.e-menu-url').style[cssProp.padding] = size;\n }\n else {\n li.style[cssProp.padding] = size;\n }\n });\n /* eslint-enable */\n}\n/**\n * Defines the items of Split Button/DropDownButton.\n */\nvar Item = /** @class */ (function (_super) {\n __extends(Item, _super);\n function Item() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Item.prototype, \"iconCss\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"id\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"separator\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"text\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"url\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"disabled\", void 0);\n return Item;\n}(ChildProperty));\nexport { Item };\n","import { addClass, createElement as internalCreateElement, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\n/**\n * Initialize ButtonGroup CSS component with specified properties.\n * ```html\n * <div id='buttongroup'>\n * <button></button>\n * <button></button>\n * <button></button>\n * </div>\n * ```\n * ```typescript\n * createButtonGroup('#buttongroup', {\n * cssClass: 'e-outline',\n * buttons: [\n * { content: 'Day' },\n * { content: 'Week' },\n * { content: 'Work Week'}\n * ]\n * });\n * ```\n *\n * @param {string} selector\n * @param {CreateButtonGroupModel} options\n * @returns HTMLElement\n */\n/**\n * Creates button group.\n *\n * @param {string} selector - Specifies the selector.\n * @param {CreateButtonGroupModel} options - Specifies the button group model.\n * @param {Function} createElement - Specifies the element.\n * @returns {HTMLElement} - Button group element.\n */\nexport function createButtonGroup(selector, options, createElement) {\n if (options === void 0) { options = {}; }\n var child;\n var btnElem;\n var nextChild;\n var btnModel;\n if (isNullOrUndefined(createElement)) {\n createElement = internalCreateElement;\n }\n var wrapper = document.querySelector(selector);\n addClass([wrapper], ['e-btn-group', 'e-css']);\n wrapper.setAttribute('role', 'group');\n var childs = wrapper.children;\n options.buttons = options.buttons || [];\n for (var i = 0, j = 0; j < childs.length; i++, j++) {\n child = childs[j];\n btnModel = options.buttons[i];\n if (btnModel !== null) {\n if (child.tagName === 'BUTTON') {\n btnElem = child;\n }\n else {\n btnElem = createElement('label');\n nextChild = childs[j + 1];\n if (nextChild) {\n wrapper.insertBefore(btnElem, nextChild);\n }\n else {\n wrapper.appendChild(btnElem);\n }\n if (child.id) {\n btnElem.setAttribute('for', child.id);\n }\n if (btnModel && btnModel.disabled) {\n child.disabled = true;\n }\n j++;\n }\n if (options.cssClass && btnModel && !btnModel.cssClass) {\n btnModel.cssClass = options.cssClass;\n }\n new Button(btnModel || {}, btnElem);\n }\n }\n return wrapper;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Collection, Event, NotifyPropertyChanges, detach, Property, EventHandler, isRippleEnabled, isNullOrUndefined, append, formatUnit, Animation } from '@syncfusion/ej2-base';\nimport { addClass, getUniqueID, rippleEffect, getComponent, ChildProperty, Complex } from '@syncfusion/ej2-base';\nimport { attributes, Component, closest, select, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { classList, removeClass, compile } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { upDownKeyHandler } from './../common/common';\nimport { getModel, Item, setBlankIconStyle } from './../common/common';\nvar classNames = {\n DISABLED: 'e-disabled',\n FOCUS: 'e-focused',\n ICON: 'e-menu-icon',\n ITEM: 'e-item',\n POPUP: 'e-dropdown-popup',\n RTL: 'e-rtl',\n SEPARATOR: 'e-separator',\n VERTICAL: 'e-vertical',\n POPUPWIDTH: 'e-dropdown-popup-width'\n};\n/**\n * Animation configuration settings.\n */\nvar DropDownMenuAnimationSettings = /** @class */ (function (_super) {\n __extends(DropDownMenuAnimationSettings, _super);\n function DropDownMenuAnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('SlideDown')\n ], DropDownMenuAnimationSettings.prototype, \"effect\", void 0);\n __decorate([\n Property(400)\n ], DropDownMenuAnimationSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('ease')\n ], DropDownMenuAnimationSettings.prototype, \"easing\", void 0);\n return DropDownMenuAnimationSettings;\n}(ChildProperty));\nexport { DropDownMenuAnimationSettings };\n/**\n * DropDownButton component is used to toggle contextual overlays for displaying list of action items.\n * It can contain both text and images.\n * ```html\n * <button id=\"element\">DropDownButton</button>\n * ```\n * ```typescript\n * <script>\n * var dropDownButtonObj = new DropDownButton({items: [{ text: 'Action1' }, { text: 'Action2' },{ text: 'Action3' }]);\n * dropDownButtonObj.appendTo(\"#element\");\n * </script>\n * ```\n */\nvar DropDownButton = /** @class */ (function (_super) {\n __extends(DropDownButton, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {DropDownButtonModel} options - Specifies dropdown button model\n * @param {string|HTMLButtonElement} element - Specifies element\n * @hidden\n */\n function DropDownButton(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isPopupCreated = true;\n return _this;\n }\n DropDownButton.prototype.preRender = function () {\n /** */\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist data\n */\n DropDownButton.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * To open/close DropDownButton popup based on current state of the DropDownButton.\n *\n * @returns {void}\n */\n DropDownButton.prototype.toggle = function () {\n if (this.canOpen()) {\n this.openPopUp();\n }\n else if (this.createPopupOnClick && !this.isPopupCreated) {\n this.createPopup();\n this.openPopUp();\n }\n else {\n this.closePopup();\n }\n };\n /**\n * Initialize the Component rendering\n *\n * @returns {void}\n * @private\n */\n DropDownButton.prototype.render = function () {\n this.initialize();\n if (!this.disabled) {\n this.wireEvents();\n }\n this.renderComplete();\n };\n /**\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\n * but you can insert based on the text parameter.\n *\n * @param { ItemModel[] } items - Specifies an array of JSON data.\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\n * @returns {void}.\n */\n DropDownButton.prototype.addItems = function (items, text) {\n var newItem;\n var idx = this.items.length;\n for (var j = 0, len = this.items.length; j < len; j++) {\n if (text === this.items[j].text) {\n idx = j;\n break;\n }\n }\n for (var i = items.length - 1; i >= 0; i--) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newItem = new Item(this, 'items', items[i], true);\n this.items.splice(idx, 0, newItem);\n }\n if (!this.canOpen()) {\n this.createItems();\n }\n };\n /**\n * Removes the items from the menu.\n *\n * @param { string[] } items - Specifies an array of string to remove the items.\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\n * @returns {void}.\n */\n DropDownButton.prototype.removeItems = function (items, isUniqueId) {\n var refresh = false;\n for (var i = 0, len = items.length; i < len; i++) {\n for (var j = 0, len_1 = this.items.length; j < len_1; j++) {\n if (items[i] === (isUniqueId ? this.items[j].id : this.items[j].text)) {\n this.items.splice(j, 1);\n refresh = true;\n break;\n }\n }\n }\n if (refresh && this.getULElement()) {\n this.createItems();\n }\n };\n DropDownButton.prototype.createPopup = function () {\n var _a;\n var div = this.createElement('div', {\n className: this.popupWidth !== 'auto' ? classNames.POPUP + \" \" + classNames.POPUPWIDTH : classNames.POPUP,\n id: this.element.id + '-popup'\n });\n var appendToElement = document.body;\n if (this.isAngular) {\n var cdkPane = this.element.closest('.cdk-overlay-pane');\n var popoverEl = this.element.closest('[popover]');\n if (cdkPane && popoverEl) {\n appendToElement = cdkPane;\n }\n }\n appendToElement.appendChild(div);\n this.dropDown = new Popup(div, {\n width: this.popupWidth,\n relateTo: this.element,\n collision: { X: 'fit', Y: 'flip' },\n position: { X: 'left', Y: 'bottom' },\n targetType: 'relative',\n content: this.target ? this.getTargetElement() : '',\n enableRtl: this.enableRtl\n });\n this.dropDown.element.setAttribute('role', 'dialog');\n this.dropDown.element.setAttribute('aria-label', 'dropdown menu');\n if (!isNullOrUndefined(this.popupContent)) {\n this.popupContent.style.display = '';\n }\n if (this.dropDown.element.style.position === 'fixed') {\n this.dropDown.refreshPosition(this.element);\n }\n this.dropDown.hide();\n attributes(this.element, (_a = {},\n _a['aria-haspopup'] = this.items.length || this.target ? 'true' : 'false',\n _a['aria-expanded'] = 'false',\n _a['type'] = 'button',\n _a));\n if (this.cssClass) {\n addClass([div], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n this.isPopupCreated = true;\n if (this.createPopupOnClick) {\n var splitButton = getComponent(this.activeElem[0], 'split-btn');\n if (splitButton) {\n splitButton.isPopupCreated = true;\n }\n }\n };\n DropDownButton.prototype.getTargetElement = function () {\n if (this.createPopupOnClick && !this.isColorPicker() && !isNullOrUndefined(this.popupContent)) {\n return this.popupContent;\n }\n return typeof (this.target) === 'string' ? select(this.target) : this.target;\n };\n DropDownButton.prototype.createItems = function (appendItems) {\n var _this = this;\n var items = this.items;\n var showIcon = this.hasIcon(this.items, 'iconCss');\n var span;\n var item;\n var li;\n var eventArgs;\n var ul = this.getULElement();\n if (ul) {\n ul.innerHTML = '';\n }\n else {\n ul = this.createElement('ul', {\n attrs: { 'role': 'menu', 'tabindex': '0' }\n });\n }\n if (this.itemTemplate) {\n var compiledTemplate_1 = this.compiletemplate(this.itemTemplate);\n items.forEach(function (item) {\n var li = _this.createElement('li', {\n className: item.separator ? classNames.ITEM + ' ' + classNames.SEPARATOR : classNames.ITEM,\n attrs: item.separator\n ? { 'role': 'separator', 'tabindex': '-1', 'aria-label': 'separator', 'aria-hidden': 'true' }\n : { 'role': 'menuitem', 'tabindex': '-1', 'aria-label': item.text },\n id: item.id ? item.id : getUniqueID('e-' + _this.getModuleName() + '-item')\n });\n var compiledElement = compiledTemplate_1(item, _this, 'template', null, false, null, li);\n if (compiledElement) {\n append(compiledElement, li);\n }\n if (item.disabled) {\n li.classList.add('e-disabled');\n }\n var eventArgs = { item: item, element: li };\n _this.trigger('beforeItemRender', eventArgs);\n if (eventArgs.item.disabled !== item.disabled) {\n li.classList[eventArgs.item.disabled ? 'add' : 'remove']('e-disabled');\n }\n ul.appendChild(li);\n });\n if (this.isReact) {\n this.renderReactTemplates();\n }\n }\n else {\n for (var i = 0; i < items.length; i++) {\n item = items[i];\n if (this.enableHtmlSanitizer) {\n item.text = SanitizeHtmlHelper.sanitize(item.text);\n }\n var tempItem = item.text;\n li = this.createElement('li', {\n innerHTML: item.url ? '' : tempItem,\n className: item.separator ? classNames.ITEM + ' ' + classNames.SEPARATOR : classNames.ITEM,\n attrs: item.separator ? { 'role': 'separator', 'tabindex': '-1', 'aria-label': 'separator', 'aria-hidden': 'true' } : { 'role': 'menuitem', 'tabindex': '-1', 'aria-label': tempItem },\n id: item.id ? item.id : getUniqueID('e-' + this.getModuleName() + '-item')\n });\n if (this.enableHtmlSanitizer) {\n li.textContent = item.url ? '' : tempItem;\n }\n else {\n li.innerHTML = item.url ? '' : tempItem;\n }\n if (item.url) {\n li.appendChild(this.createAnchor(item));\n li.classList.add('e-url');\n }\n if (item.iconCss) {\n span = this.createElement('span', { className: classNames.ICON + ' ' + item.iconCss });\n if (item.url) {\n li.childNodes[0].appendChild(span);\n }\n else {\n li.insertBefore(span, li.childNodes[0]);\n }\n }\n else {\n if (showIcon && !item.separator) {\n li.classList.add('e-blank-icon');\n }\n }\n var beforeDisabled = item.disabled;\n if (item.disabled) {\n li.classList.add('e-disabled');\n }\n eventArgs = { item: item, element: li };\n this.trigger('beforeItemRender', eventArgs);\n var afterDisabled = eventArgs.item.disabled;\n if (beforeDisabled !== afterDisabled) {\n if (eventArgs.item.disabled) {\n li.classList.add('e-disabled');\n }\n else {\n li.classList.remove('e-disabled');\n }\n }\n ul.appendChild(li);\n }\n }\n if (appendItems) {\n this.getPopUpElement().appendChild(ul);\n }\n if (showIcon) {\n setBlankIconStyle(this.getPopUpElement());\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n DropDownButton.prototype.compiletemplate = function (template) {\n if (!this.itemTemplate) {\n return undefined;\n }\n try {\n if (typeof this.itemTemplate !== 'function') {\n var templateElement = document.querySelector(this.itemTemplate);\n if (templateElement) {\n return compile(templateElement.innerHTML.trim());\n }\n }\n return compile(template);\n }\n catch (_a) {\n return compile(template);\n }\n };\n DropDownButton.prototype.hasIcon = function (items, field) {\n for (var i = 0, len = items.length; i < len; i++) {\n if (items[i][\"\" + field]) {\n return true;\n }\n }\n return false;\n };\n DropDownButton.prototype.createAnchor = function (item) {\n var tempItem = item.text;\n var anchor = this.createElement('a', { className: 'e-menu-text e-menu-url', attrs: { 'href': item.url } });\n if (this.enableHtmlSanitizer) {\n anchor.textContent = tempItem;\n }\n else {\n anchor.innerHTML = tempItem;\n }\n return anchor;\n };\n DropDownButton.prototype.initialize = function () {\n this.button = new Button({\n iconCss: this.iconCss, iconPosition: this.iconPosition, cssClass: this.cssClass, content: this.content,\n disabled: this.disabled, enableRtl: this.enableRtl, enablePersistence: this.enablePersistence\n });\n this.button.createElement = this.createElement;\n this.button.appendTo(this.element);\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n this.appendArrowSpan();\n this.setActiveElem([this.element]);\n this.element.setAttribute('tabindex', '0');\n this.element.setAttribute('aria-label', this.element.textContent ? this.element.textContent : 'dropdownbutton');\n if ((this.target && !this.isColorPicker() && !this.createPopupOnClick) || !this.createPopupOnClick) {\n this.createPopup();\n }\n else {\n this.isPopupCreated = false;\n if (this.target && !this.isColorPicker() && this.createPopupOnClick) {\n this.popupContent = this.getTargetElement();\n this.popupContent.style.display = 'none';\n }\n }\n };\n DropDownButton.prototype.isColorPicker = function () {\n if (!this.element) {\n return false;\n }\n var prevElem = this.element.previousSibling;\n if (prevElem && prevElem.classList && prevElem.classList.contains('e-split-colorpicker')) {\n return true;\n }\n return false;\n };\n DropDownButton.prototype.appendArrowSpan = function () {\n this.cssClass = isNullOrUndefined(this.cssClass) ? '' : this.cssClass;\n this.element.appendChild(this.createElement('span', {\n className: 'e-btn-icon e-icons ' + 'e-icon-' + (this.cssClass.indexOf(classNames.VERTICAL) > -1\n ? 'bottom' : 'right') + ' e-caret'\n }));\n };\n DropDownButton.prototype.setActiveElem = function (elem) {\n this.activeElem = elem;\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n DropDownButton.prototype.getModuleName = function () {\n return 'dropdown-btn';\n };\n DropDownButton.prototype.canOpen = function () {\n var val = false;\n if (this.isPopupCreated) {\n val = this.getPopUpElement().classList.contains('e-popup-close');\n }\n return val;\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n DropDownButton.prototype.destroy = function () {\n var _this = this;\n _super.prototype.destroy.call(this);\n if (this.getModuleName() === 'dropdown-btn') {\n var classList_1;\n if (this.element.querySelector('span.e-caret')) {\n detach(this.element.querySelector('span.e-caret'));\n }\n if (this.cssClass) {\n classList_1 = this.cssClass.split(' ');\n }\n this.button.destroy();\n if (classList_1) {\n removeClass([this.element], classList_1);\n }\n removeClass(this.activeElem, ['e-active']);\n var attrList = this.element.getAttribute('class') ? ['aria-haspopup', 'aria-expanded', 'aria-owns', 'type']\n : ['aria-haspopup', 'aria-expanded', 'aria-owns', 'type', 'class'];\n attrList.forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n this.popupUnWireEvents();\n this.destroyPopup();\n this.isPopupCreated = false;\n if (!this.disabled) {\n this.unWireEvents();\n }\n }\n };\n DropDownButton.prototype.destroyPopup = function () {\n if (this.isPopupCreated) {\n this.dropDown.destroy();\n if (this.getPopUpElement()) {\n var popupEle = document.getElementById(this.getPopUpElement().id);\n if (popupEle) {\n removeClass([popupEle], ['e-popup-open', 'e-popup-close']);\n detach(popupEle);\n }\n }\n EventHandler.remove(this.getPopUpElement(), 'click', this.clickHandler);\n EventHandler.remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler);\n if (this.isPopupCreated && this.dropDown) {\n this.dropDown.element = null;\n this.dropDown = undefined;\n }\n }\n this.isPopupCreated = false;\n var splitButton = getComponent(this.activeElem[0], 'split-btn');\n if (this.createPopupOnClick && splitButton) {\n var dropDownButton = getComponent(this.activeElem[1], 'dropdown-btn');\n if (dropDownButton) {\n dropDownButton.isPopupCreated = false;\n }\n }\n };\n DropDownButton.prototype.getPopUpElement = function () {\n var val = null;\n if (!this.dropDown && this.activeElem[0].classList.contains('e-split-btn')) {\n var dropDownBtn = getComponent(this.activeElem[1], 'dropdown-btn');\n if (dropDownBtn) {\n this.dropDown = dropDownBtn.dropDown;\n }\n }\n if (this.dropDown) {\n val = this.dropDown.element;\n }\n return val;\n };\n DropDownButton.prototype.getULElement = function () {\n var val = null;\n if (this.getPopUpElement()) {\n val = this.getPopUpElement().children[0];\n }\n return val;\n };\n DropDownButton.prototype.wireEvents = function () {\n this.delegateMousedownHandler = this.mousedownHandler.bind(this);\n if (!this.createPopupOnClick) {\n EventHandler.add(document, 'mousedown touchstart', this.delegateMousedownHandler, this);\n }\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n EventHandler.add(this.element, 'keydown', this.keyBoardHandler, this);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.windowResizeBound = this.windowResize.bind(this);\n window.addEventListener('resize', this.windowResizeBound);\n };\n DropDownButton.prototype.windowResize = function () {\n if (!this.canOpen() && this.dropDown) {\n this.dropDown.refreshPosition(this.element);\n }\n };\n DropDownButton.prototype.popupWireEvents = function () {\n if (!this.delegateMousedownHandler) {\n this.delegateMousedownHandler = this.mousedownHandler.bind(this);\n }\n var popupElement = this.getPopUpElement();\n if (this.createPopupOnClick) {\n EventHandler.add(document, 'mousedown touchstart', this.delegateMousedownHandler, this);\n }\n if (popupElement) {\n EventHandler.add(popupElement, 'click', this.clickHandler, this);\n EventHandler.add(popupElement, 'keydown', this.keyBoardHandler, this);\n if (this.closeActionEvents) {\n EventHandler.add(popupElement, this.closeActionEvents, this.focusoutHandler, this);\n }\n }\n this.rippleFn = rippleEffect(popupElement, { selector: '.' + classNames.ITEM });\n };\n DropDownButton.prototype.popupUnWireEvents = function () {\n var popupElement = this.getPopUpElement();\n if (this.createPopupOnClick) {\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\n }\n if (popupElement && popupElement.parentElement) {\n EventHandler.remove(popupElement, 'click', this.clickHandler);\n EventHandler.remove(popupElement, 'keydown', this.keyBoardHandler);\n if (this.closeActionEvents) {\n EventHandler.remove(popupElement, this.closeActionEvents, this.focusoutHandler);\n }\n }\n if (isRippleEnabled && this.rippleFn) {\n this.rippleFn();\n }\n };\n /**\n * Handles the keyboard interactions.\n *\n * @param {KeyboardEventArgs} e - Specifies keyboard event args.\n * @returns {void}\n * @hidden\n */\n DropDownButton.prototype.keyBoardHandler = function (e) {\n if (e.target === this.element && (e.keyCode === 9 || (!e.altKey && e.keyCode === 40) || e.keyCode === 38)) {\n return;\n }\n if (e.target && (e.target.classList.contains('e-item') || (e.target.parentElement && e.target.parentElement.classList.contains('e-split-btn-wrapper'))) && e.keyCode === 13) {\n e.preventDefault();\n }\n switch (e.keyCode) {\n case 38:\n case 40:\n if (e.altKey && (e.keyCode === 38 || e.keyCode === 40)) {\n this.keyEventHandler(e);\n }\n else {\n this.upDownKeyHandler(e);\n }\n break;\n case 9:\n case 13:\n case 27:\n case 32:\n this.keyEventHandler(e);\n break;\n }\n };\n DropDownButton.prototype.isSafari = function () {\n return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n };\n DropDownButton.prototype.upDownKeyHandler = function (e) {\n if (this.target && (e.keyCode === 38 || e.keyCode === 40)) {\n return;\n }\n e.preventDefault();\n upDownKeyHandler(this.getULElement(), e.keyCode);\n };\n DropDownButton.prototype.keyEventHandler = function (e) {\n if (this.target && (e.keyCode === 13 || e.keyCode === 9)) {\n return;\n }\n if (e.keyCode === 13 && this.activeElem[0].classList.contains('e-split-btn')) {\n this.triggerSelect(e);\n this.activeElem[0].focus();\n return;\n }\n if (e.target && e.target.className.indexOf('e-edit-template') > -1 && e.keyCode === 32) {\n return;\n }\n if (e.keyCode !== 9) {\n e.preventDefault();\n }\n if (e.keyCode === 27 || e.keyCode === 38 || e.keyCode === 9) {\n if (!this.canOpen()) {\n this.closePopup(e, this.element);\n }\n }\n else {\n this.clickHandler(e);\n }\n };\n DropDownButton.prototype.getLI = function (elem) {\n return elem.tagName === 'LI' ? elem : closest(elem, 'li');\n };\n DropDownButton.prototype.mousedownHandler = function (e) {\n var trgt = e.target;\n if (this.dropDown && !this.canOpen() && this.getPopUpElement() && !(closest(trgt, '[id=\"' + this.getPopUpElement().id + '\"]')\n || closest(trgt, '[id=\"' + this.element.id + '\"]'))) {\n this.closePopup(e);\n }\n };\n DropDownButton.prototype.focusoutHandler = function (e) {\n if (this.isPopupCreated && !this.canOpen()) {\n var liTarget = (e.relatedTarget || e.target);\n if (liTarget && liTarget.className.indexOf('e-item') > -1) {\n var li = this.getLI(liTarget);\n if (li) {\n var liIdx = Array.prototype.indexOf.call(this.getULElement().children, li);\n var item = this.items[liIdx];\n if (item) {\n var selectEventArgs = { element: li, item: item, event: e };\n this.trigger('select', selectEventArgs);\n }\n }\n }\n this.closePopup(e);\n }\n };\n DropDownButton.prototype.clickHandler = function (e) {\n var trgt = e.target;\n if (closest(trgt, '[id=\"' + this.element.id + '\"]')) {\n if (!this.createPopupOnClick || (this.target && this.target !== '' && !this.isColorPicker() && !this.createPopupOnClick)) {\n if (this.getPopUpElement().classList.contains('e-popup-close')) {\n this.openPopUp(e);\n }\n else {\n this.closePopup(e);\n }\n }\n else if (this.isPopupCreated) {\n this.closePopup(e, this.activeElem[0]);\n }\n else {\n this.createPopup();\n this.openPopUp(e);\n }\n }\n else {\n if (closest(trgt, '[id=\"' + this.getPopUpElement().id + '\"]')) {\n var li = this.getLI(e.target);\n if (li) {\n this.triggerSelect(e);\n this.closePopup(e, this.activeElem[0]);\n }\n }\n }\n };\n DropDownButton.prototype.triggerSelect = function (e) {\n var eventArgs;\n var liIdx;\n var item;\n var li = this.getLI(e.target);\n if (li) {\n liIdx = Array.prototype.indexOf.call(this.getULElement().children, li);\n item = this.items[liIdx];\n if (item) {\n eventArgs = { element: li, item: item, event: e };\n this.trigger('select', eventArgs);\n }\n }\n };\n DropDownButton.prototype.openPopUp = function (e) {\n var _this = this;\n if (e === void 0) { e = null; }\n var isReact = false;\n var popupElem = this.getPopUpElement();\n if (this.activeElem[0] && this.activeElem[0].classList.contains('e-dropdown-btn') && popupElem.style.width && popupElem.style.width !== 'auto') {\n this.setWidth(popupElem);\n }\n if (!this.target) {\n this.createItems(true);\n }\n else {\n if (this.activeElem.length > 1) {\n var splitButton = getComponent(this.activeElem[0], 'split-btn');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (splitButton.isReact && popupElem.childNodes.length < 1) {\n isReact = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (splitButton.appendReactElement) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n splitButton.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n }\n this.renderReactTemplates();\n }\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && popupElem.childNodes.length < 1) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isReact = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.appendReactElement) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n }\n this.renderReactTemplates();\n }\n }\n }\n var ul = this.getULElement();\n this.popupWireEvents();\n var beforeOpenArgs = { element: ul, items: this.items, event: e, cancel: false };\n this.trigger('beforeOpen', beforeOpenArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n var ul_1 = _this.getULElement();\n var animationOptions = _this.animationSettings.effect !== 'None' ? {\n name: _this.animationSettings.effect, duration: _this.animationSettings.duration,\n timingFunction: _this.animationSettings.easing\n } : null;\n if (animationOptions) {\n _this.animatePopup(animationOptions, ul_1);\n }\n _this.dropDown.show(null, _this.element);\n addClass([_this.element], 'e-active');\n _this.element.setAttribute('aria-expanded', 'true');\n _this.element.setAttribute('aria-owns', _this.getPopUpElement().id);\n if (ul_1 && !_this.isSafari()) {\n ul_1.focus({ preventScroll: observedArgs.preventScroll });\n }\n if (_this.enableRtl && ul_1.parentElement.style.left !== '0px') {\n var wrapperWidth = void 0;\n if (_this.element.parentElement && _this.element.parentElement.classList.contains('e-split-btn-wrapper')) {\n wrapperWidth = _this.element.parentElement.offsetWidth;\n }\n else {\n wrapperWidth = _this.element.offsetWidth;\n }\n var popupRect = ul_1.parentElement.offsetWidth - wrapperWidth;\n var popupLeft = parseFloat(ul_1.parentElement.style.left) - popupRect;\n if (popupLeft < 0) {\n popupLeft = 0;\n }\n ul_1.parentElement.style.left = popupLeft + 'px';\n }\n var openArgs = { element: ul_1, items: _this.items };\n _this.trigger('open', openArgs);\n if (ul_1 && _this.isSafari()) {\n ul_1.focus();\n }\n }\n });\n };\n DropDownButton.prototype.animatePopup = function (animationOptions, element) {\n new Animation(animationOptions).animate(element, {\n begin: function (args) {\n args.element.parentElement.style.height = args.element.parentElement.offsetHeight + 'px';\n }\n });\n };\n DropDownButton.prototype.setWidth = function (popupElem) {\n var width = formatUnit(popupElem.style.width);\n if (width.indexOf('%') > -1) {\n var btnWidth = this.element.offsetWidth * parseFloat(width) / 100;\n popupElem.style.width = btnWidth + \"px\";\n }\n };\n DropDownButton.prototype.closePopup = function (e, focusEle) {\n var _this = this;\n if (e === void 0) { e = null; }\n var ul = this.getULElement();\n var beforeCloseArgs = { element: ul, items: this.items, event: e, cancel: false };\n this.trigger('beforeClose', beforeCloseArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n var popupElement = _this.getPopUpElement();\n if (popupElement) {\n EventHandler.remove(popupElement, 'keydown', _this.keyBoardHandler);\n }\n _this.popupUnWireEvents();\n var ul_2 = _this.getULElement();\n var selectedLi = void 0;\n if (ul_2) {\n selectedLi = ul_2.querySelector('.e-selected');\n }\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n if (_this.dropDown) {\n _this.dropDown.hide();\n }\n removeClass(_this.activeElem, 'e-active');\n _this.element.setAttribute('aria-expanded', 'false');\n _this.element.removeAttribute('aria-owns');\n if (focusEle) {\n if (!_this.isSafari()) {\n if (!(_this.isColorPicker() && e.keyCode === 27)) {\n focusEle.focus();\n }\n }\n else {\n focusEle.focus({ preventScroll: true });\n }\n }\n var closeArgs = { element: ul_2, items: _this.items };\n _this.trigger('close', closeArgs);\n if (!_this.target && ul_2) {\n detach(ul_2);\n }\n if (!_this.target || _this.isColorPicker() || (_this.target && !_this.isColorPicker())) {\n if (_this.createPopupOnClick) {\n _this.destroyPopup();\n }\n }\n }\n else {\n if (observedArgs.element) {\n ul.focus();\n }\n }\n });\n };\n DropDownButton.prototype.unWireEvents = function () {\n if (!this.createPopupOnClick) {\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\n }\n EventHandler.remove(this.element, 'click', this.clickHandler);\n EventHandler.remove(this.element, 'keydown', this.keyBoardHandler);\n if (this.isPopupCreated) {\n EventHandler.remove(this.getPopUpElement(), 'click', this.clickHandler);\n EventHandler.remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.windowResizeBound) {\n window.removeEventListener('resize', this.windowResizeBound);\n this.windowResizeBound = null;\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {DropDownButtonModel} newProp - Specifies new properties\n * @param {DropDownButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n DropDownButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var btnModel = ['content', 'cssClass', 'iconCss', 'iconPosition', 'disabled', 'enableRtl'];\n this.button.setProperties(getModel(newProp, btnModel));\n var popupElement;\n if (this.isPopupCreated) {\n popupElement = this.getPopUpElement();\n this.dropDown.setProperties(getModel(newProp, ['enableRtl']));\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n if (!this.element.querySelector('span.e-caret')) {\n this.appendArrowSpan();\n }\n break;\n case 'disabled':\n if (newProp.disabled) {\n this.unWireEvents();\n if (this.isPopupCreated && !this.canOpen()) {\n this.closePopup();\n }\n }\n else {\n this.wireEvents();\n }\n break;\n case 'cssClass':\n oldProp.cssClass = isNullOrUndefined(oldProp.cssClass) ? '' : oldProp.cssClass;\n if (newProp.cssClass.indexOf(classNames.VERTICAL) > -1 || oldProp.cssClass.indexOf(classNames.VERTICAL) > -1) {\n if (!this.element.querySelector('span.e-caret')) {\n this.appendArrowSpan();\n }\n var arrowSpan = this.element.querySelector('span.e-caret');\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n newProp.cssClass.indexOf(classNames.VERTICAL) > -1 ? classList(arrowSpan, ['e-icon-bottom'], ['e-icon-right'])\n : classList(arrowSpan, ['e-icon-right'], ['e-icon-bottom']);\n }\n if (this.isPopupCreated) {\n if (oldProp.cssClass) {\n removeClass([popupElement], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([popupElement], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n }\n break;\n case 'target':\n this.dropDown.content = this.getTargetElement();\n this.dropDown.dataBind();\n break;\n case 'items':\n if (this.isPopupCreated && this.getULElement()) {\n this.createItems();\n }\n break;\n case 'createPopupOnClick':\n if (newProp.createPopupOnClick) {\n this.destroyPopup();\n }\n else {\n this.createPopup();\n }\n break;\n }\n }\n };\n /**\n * Sets the focus to DropDownButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n DropDownButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property('Left')\n ], DropDownButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property(true)\n ], DropDownButton.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Collection([], Item)\n ], DropDownButton.prototype, \"items\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"closeActionEvents\", void 0);\n __decorate([\n Property(null)\n ], DropDownButton.prototype, \"itemTemplate\", void 0);\n __decorate([\n Property('auto')\n ], DropDownButton.prototype, \"popupWidth\", void 0);\n __decorate([\n Complex({ effect: 'None' }, DropDownMenuAnimationSettings)\n ], DropDownButton.prototype, \"animationSettings\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"created\", void 0);\n DropDownButton = __decorate([\n NotifyPropertyChanges\n ], DropDownButton);\n return DropDownButton;\n}(Component));\nexport { DropDownButton };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// <reference path='../drop-down-button/drop-down-button-model.d.ts'/>\nimport { Event, remove, addClass, removeClass, detach, getValue, setValue } from '@syncfusion/ej2-base';\nimport { EventHandler, Collection, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { attributes, getUniqueID, getInstance, KeyboardEvents } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { getModel, Item } from './../common/common';\nimport { DropDownButton } from '../drop-down-button/drop-down-button';\nvar RTL = 'e-rtl';\nvar TAGNAME = 'EJS-SPLITBUTTON';\n/**\n * SplitButton component has primary and secondary button. Primary button is used to select\n * default action and secondary button is used to toggle contextual overlays for displaying list of\n * action items. It can contain both text and images.\n * ```html\n * <button id=\"element\"></button>\n * ```\n * ```typescript\n * <script>\n * var splitBtnObj = new SplitButton({content: 'SplitButton'});\n * splitBtnObj.appendTo(\"#element\");\n * </script>\n * ```\n */\nvar SplitButton = /** @class */ (function (_super) {\n __extends(SplitButton, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {SplitButtonModel} options - Specifies the splitbutton model\n * @param {string|HTMLButtonElement} element - Specifies the element\n * @hidden\n */\n function SplitButton(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize Angular support.\n *\n * @private\n * @returns {void}\n */\n SplitButton.prototype.preRender = function () {\n var ele = this.element;\n if (ele.tagName === TAGNAME) {\n var ejInstance = getValue('ej2_instances', ele);\n var btn = this.createElement('button', { attrs: { 'type': 'button' } });\n var wrapper = this.createElement(TAGNAME, { className: 'e-' + this.getModuleName() + '-wrapper' });\n for (var idx = 0, len = ele.attributes.length; idx < len; idx++) {\n btn.setAttribute(ele.attributes[idx].nodeName, ele.attributes[idx].nodeValue);\n }\n ele.parentNode.insertBefore(wrapper, ele);\n detach(ele);\n ele = btn;\n wrapper.appendChild(ele);\n setValue('ej2_instances', ejInstance, ele);\n this.wrapper = wrapper;\n this.element = ele;\n }\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n };\n /**\n * Initialize the Component rendering.\n *\n * @returns {void}\n * @private\n */\n SplitButton.prototype.render = function () {\n this.initWrapper();\n this.createPrimaryButton();\n this.renderControl();\n };\n SplitButton.prototype.renderControl = function () {\n this.createSecondaryButton();\n this.setActiveElem([this.element, this.secondaryBtnObj.element]);\n this.setAria();\n this.wireEvents();\n this.renderComplete();\n };\n /**\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\n * but you can insert based on the text parameter.\n *\n * @param { ItemModel[] } items - Specifies an array of JSON data.\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\n * @returns {void}.\n */\n SplitButton.prototype.addItems = function (items, text) {\n _super.prototype.addItems.call(this, items, text);\n this.secondaryBtnObj.items = this.items;\n };\n /**\n * Removes the items from the menu.\n *\n * @param { string[] } items - Specifies an array of string to remove the items.\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\n * @returns {void}.\n */\n SplitButton.prototype.removeItems = function (items, isUniqueId) {\n _super.prototype.removeItems.call(this, items, isUniqueId);\n this.secondaryBtnObj.items = this.items;\n };\n SplitButton.prototype.initWrapper = function () {\n if (!this.wrapper) {\n this.wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' });\n this.element.parentNode.insertBefore(this.wrapper, this.element);\n }\n this.element.classList.remove('e-' + this.getModuleName());\n if (this.enableRtl) {\n this.wrapper.classList.add(RTL);\n }\n if (this.cssClass) {\n addClass([this.wrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n };\n SplitButton.prototype.createPrimaryButton = function () {\n var btnModel = {\n cssClass: this.cssClass,\n enableRtl: this.enableRtl,\n iconCss: this.iconCss,\n iconPosition: this.iconPosition,\n content: this.content,\n disabled: this.disabled\n };\n this.primaryBtnObj = new Button(btnModel);\n this.primaryBtnObj.createElement = this.createElement;\n this.primaryBtnObj.appendTo(this.element);\n this.element.classList.add('e-' + this.getModuleName());\n this.element.type = 'button';\n this.wrapper.appendChild(this.element);\n };\n SplitButton.prototype.createSecondaryButton = function () {\n var _this = this;\n var btnElem = this.createElement('button', {\n className: 'e-icon-btn',\n attrs: { 'tabindex': '-1' },\n id: this.element.id + '_dropdownbtn'\n });\n this.wrapper.appendChild(btnElem);\n var dropDownBtnModel = {\n cssClass: this.cssClass,\n disabled: this.disabled,\n enableRtl: this.enableRtl,\n items: this.items,\n target: this.target,\n createPopupOnClick: this.createPopupOnClick\n };\n dropDownBtnModel.beforeItemRender = function (args) {\n if (_this.createPopupOnClick) {\n _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper;\n _this.dropDown = _this.secondaryBtnObj.dropDown;\n }\n _this.trigger('beforeItemRender', args);\n };\n dropDownBtnModel.open = function (args) {\n _this.trigger('open', args);\n };\n dropDownBtnModel.close = function (args) {\n _this.trigger('close', args);\n };\n dropDownBtnModel.select = function (args) {\n _this.trigger('select', args);\n };\n dropDownBtnModel.beforeOpen = function (args) {\n if (_this.createPopupOnClick && _this.items.length === 0) {\n _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper;\n _this.dropDown = _this.secondaryBtnObj.dropDown;\n }\n var callBackPromise = new Deferred();\n _this.trigger('beforeOpen', args, function (observedArgs) {\n callBackPromise.resolve(observedArgs);\n });\n return callBackPromise;\n };\n dropDownBtnModel.beforeClose = function (args) {\n var callBackPromise = new Deferred();\n _this.trigger('beforeClose', args, function (observedArgs) {\n callBackPromise.resolve(observedArgs);\n });\n return callBackPromise;\n };\n this.secondaryBtnObj = new DropDownButton(dropDownBtnModel);\n this.secondaryBtnObj.createElement = this.createElement;\n if (this.isAngular) {\n this.secondaryBtnObj.isAngular = this.isAngular;\n }\n this.secondaryBtnObj.appendTo(btnElem);\n if (!this.createPopupOnClick) {\n this.secondaryBtnObj.dropDown.relateTo = this.wrapper;\n this.dropDown = this.secondaryBtnObj.dropDown;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.isPopupCreated = this.secondaryBtnObj.isPopupCreated;\n this.secondaryBtnObj.activeElem = [this.element, this.secondaryBtnObj.element];\n this.secondaryBtnObj.element.querySelector('.e-btn-icon').classList.remove('e-icon-right');\n if (this.disabled) {\n this.wrapper.classList.add('e-splitbtn-disabled');\n }\n };\n SplitButton.prototype.setAria = function () {\n attributes(this.element, {\n 'aria-expanded': 'false',\n 'aria-label': this.element.textContent ? this.element.textContent + ' splitbutton' : 'splitbutton', 'aria-owns': this.element.id + '_dropdownbtn-popup'\n });\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n SplitButton.prototype.getModuleName = function () {\n return 'split-btn';\n };\n /**\n * To open/close SplitButton popup based on current state of the SplitButton.\n *\n * @returns {void}\n */\n SplitButton.prototype.toggle = function () {\n this.secondaryBtnObj.toggle();\n };\n SplitButton.prototype.destroy = function () {\n var _this = this;\n var classList = [RTL];\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.split(' '));\n }\n if (this.element) {\n var element = document.getElementById(this.element.id);\n if (element && element.parentElement === this.wrapper) {\n if (this.wrapper.tagName === TAGNAME) {\n this.wrapper.innerHTML = '';\n removeClass([this.wrapper], ['e-rtl', 'e-' + this.getModuleName() + '-wrapper']);\n removeClass([this.wrapper], this.cssClass.split(' '));\n }\n else {\n removeClass([this.element], classList);\n ['aria-label', 'aria-expanded', 'aria-owns', 'type'].forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n this.wrapper.parentNode.insertBefore(this.element, this.wrapper);\n remove(this.wrapper);\n }\n this.unWireEvents();\n }\n else if (this.wrapper && this.wrapper.tagName === TAGNAME) {\n this.unWireEvents();\n }\n }\n this.primaryBtnObj.destroy();\n this.secondaryBtnObj.destroy();\n _super.prototype.destroy.call(this);\n if (this.element && !this.element.getAttribute('class')) {\n this.element.removeAttribute('class');\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.refreshing && this.isAngular) {\n this.element = this.wrapper;\n ['e-control', 'e-split-btn', 'e-lib'].forEach(function (key) {\n _this.element.classList.add(key);\n });\n setValue('ej2_instances', [this], this.element);\n }\n this.wrapper = null;\n };\n SplitButton.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.primaryBtnClickHandler, this);\n new KeyboardEvents(this.element, {\n keyAction: this.btnKeyBoardHandler.bind(this),\n keyConfigs: {\n altdownarrow: 'alt+downarrow',\n enter: 'enter'\n }\n });\n };\n SplitButton.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.primaryBtnClickHandler);\n getInstance(this.element, KeyboardEvents).destroy();\n };\n SplitButton.prototype.primaryBtnClickHandler = function () {\n this.trigger('click', { element: this.element });\n };\n SplitButton.prototype.btnKeyBoardHandler = function (e) {\n switch (e.action) {\n case 'altdownarrow':\n this.clickHandler(e);\n break;\n case 'enter':\n this.clickHandler(e);\n if (this.getPopUpElement() && !this.getPopUpElement().classList.contains('e-popup-close')) {\n this.element.classList.remove('e-active');\n this.secondaryBtnObj.element.classList.add('e-active');\n }\n else {\n this.secondaryBtnObj.element.classList.remove('e-active');\n }\n break;\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {SplitButtonModel} newProp - Specifies new properties\n * @param {SplitButtonModel} oldProp - Specifies old properties\n * @returns {void}\n */\n SplitButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var model = ['content', 'iconCss', 'iconPosition', 'cssClass', 'disabled', 'enableRtl'];\n this.primaryBtnObj.setProperties(getModel(newProp, model));\n model = ['beforeOpen', 'beforeItemRender', 'select', 'open',\n 'close', 'cssClass', 'disabled', 'enableRtl', 'createPopupOnClick'];\n if (Object.keys(newProp).indexOf('items') > -1) {\n this.secondaryBtnObj.items = newProp.items;\n this.secondaryBtnObj.dataBind();\n }\n this.secondaryBtnObj.setProperties(getModel(newProp, model));\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.wrapper], oldProp.cssClass.split(' '));\n }\n addClass([this.wrapper], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n addClass([this.wrapper], RTL);\n }\n else {\n removeClass([this.wrapper], RTL);\n }\n break;\n case 'disabled':\n if (newProp.disabled) {\n addClass([this.wrapper], 'e-splitbtn-disabled');\n }\n else {\n removeClass([this.wrapper], 'e-splitbtn-disabled');\n }\n }\n }\n };\n /**\n * Sets the focus to SplitButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n SplitButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('')\n ], SplitButton.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], SplitButton.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property('Left')\n ], SplitButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property(false)\n ], SplitButton.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Collection([], Item)\n ], SplitButton.prototype, \"items\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"target\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"click\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"created\", void 0);\n SplitButton = __decorate([\n NotifyPropertyChanges\n ], SplitButton);\n return SplitButton;\n}(DropDownButton));\nexport { SplitButton };\n/**\n * Deferred is used to handle asynchronous operation.\n */\nvar Deferred = /** @class */ (function () {\n function Deferred() {\n var _this = this;\n /**\n * Promise is an object that represents a value that may not be available yet, but will be resolved at some point in the future.\n */\n this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n /**\n * Defines the callback function triggers when the Deferred object is rejected.\n */\n this.catch = this.promise.catch.bind(this.promise);\n /**\n * Defines the callback function triggers when the Deferred object is resolved.\n */\n this.then = this.promise.then.bind(this.promise);\n }\n return Deferred;\n}());\nexport { Deferred };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { EventHandler, Property, NotifyPropertyChanges, Animation, attributes, animationMode } from '@syncfusion/ej2-base';\nimport { Event, remove, removeClass } from '@syncfusion/ej2-base';\nimport { Complex, ChildProperty, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nvar HIDESPINNER = 'e-hide-spinner';\nvar PROGRESS = 'e-progress';\nvar PROGRESSACTIVE = 'e-progress-active';\nvar CONTENTCLS = 'e-btn-content';\n/**\n * Defines the spin settings.\n */\nvar SpinSettings = /** @class */ (function (_super) {\n __extends(SpinSettings, _super);\n function SpinSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], SpinSettings.prototype, \"template\", void 0);\n __decorate([\n Property(16)\n ], SpinSettings.prototype, \"width\", void 0);\n __decorate([\n Property('Left')\n ], SpinSettings.prototype, \"position\", void 0);\n return SpinSettings;\n}(ChildProperty));\nexport { SpinSettings };\n/**\n * Defines the animation settings.\n */\nvar AnimationSettings = /** @class */ (function (_super) {\n __extends(AnimationSettings, _super);\n function AnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(400)\n ], AnimationSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('None')\n ], AnimationSettings.prototype, \"effect\", void 0);\n __decorate([\n Property('ease')\n ], AnimationSettings.prototype, \"easing\", void 0);\n return AnimationSettings;\n}(ChildProperty));\nexport { AnimationSettings };\n/**\n * The ProgressButton visualizes the progression of an operation to indicate the user\n * that a process is happening in the background with visual representation.\n * ```html\n * <button id=\"element\"></button>\n * ```\n * ```typescript\n * <script>\n * var progressButtonObj = new ProgressButton({ content: 'Progress Button' });\n * progressButtonObj.appendTo(\"#element\");\n * </script>\n * ```\n */\nvar ProgressButton = /** @class */ (function (_super) {\n __extends(ProgressButton, _super);\n /**\n * Constructor for creating the widget.\n *\n * @param {ProgressButtonModel} options - Specifies progress button model\n * @param {string|HTMLButtonElement} element - Specifies element\n */\n function ProgressButton(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.step = 1;\n return _this;\n }\n ProgressButton.prototype.preRender = function () {\n _super.prototype.preRender.call(this);\n };\n /**\n * Initialize the Component rendering\n *\n * @returns {void}\n * @private\n */\n ProgressButton.prototype.render = function () {\n _super.prototype.render.call(this);\n this.init();\n this.wireEvents();\n this.setAria();\n this.renderComplete();\n };\n /**\n * Starts the button progress at the specified percent.\n *\n * @param {number} percent - Starts the button progress at this percent.\n * @returns {void}\n */\n ProgressButton.prototype.start = function (percent) {\n this.isPaused = false;\n this.startProgress(percent ? percent : this.percent, this.progressTime);\n };\n /**\n * Stops the button progress.\n *\n * @returns {void}\n */\n ProgressButton.prototype.stop = function () {\n this.isPaused = true;\n cancelAnimationFrame(this.timerId);\n };\n /**\n * Complete the button progress.\n *\n * @returns {void}\n */\n ProgressButton.prototype.progressComplete = function () {\n this.isPaused = false;\n this.finishProgress();\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n ProgressButton.prototype.getModuleName = function () {\n return 'progress-btn';\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n ProgressButton.prototype.destroy = function () {\n var _this = this;\n var classList = [HIDESPINNER, PROGRESSACTIVE, 'e-round-corner', 'e-' + _super.prototype.getModuleName.call(this)];\n if (this.spinSettings.position) {\n classList.push('e-spin-' + this.spinSettings.position.toLowerCase());\n }\n _super.prototype.destroy.call(this);\n this.unWireEvents();\n this.element.innerHTML = '';\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.split(' '));\n }\n removeClass([this.element], classList);\n var css = this.element.getAttribute('class') ? ['aria-label', 'aria-valuemin', 'aria-valuemax', 'aria-valuenow']\n : ['aria-label', 'aria-valuemin', 'aria-valuemax', 'aria-valuenow', 'class'];\n css.forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n if (this.disabled) {\n this.element.removeAttribute('disabled');\n }\n };\n ProgressButton.prototype.init = function () {\n this.element.classList.add('e-' + _super.prototype.getModuleName.call(this));\n this.setContent();\n this.createSpinner();\n if (this.enableProgress) {\n this.createProgress();\n }\n };\n ProgressButton.prototype.createSpinner = function () {\n var spinner = this.createElement('span', { className: 'e-spinner' });\n this.setSpinPosition(spinner);\n createSpinner({\n target: spinner, width: this.spinSettings.width || 16, template: this.spinSettings.template\n }, this.createElement);\n };\n ProgressButton.prototype.getSpinner = function () {\n return this.element.getElementsByClassName('e-spinner')[0];\n };\n ProgressButton.prototype.getProgress = function () {\n return this.element.getElementsByClassName(PROGRESS)[0];\n };\n ProgressButton.prototype.setSpinPosition = function (ele) {\n var position = this.spinSettings.position || 'Left';\n if (position === 'Left' || position === 'Top') {\n this.element.insertBefore(ele, this.element.getElementsByClassName(CONTENTCLS)[0]);\n }\n else {\n this.element.appendChild(ele);\n }\n this.element.classList.add('e-spin-' + position.toLowerCase());\n };\n ProgressButton.prototype.createProgress = function () {\n this.element.appendChild(this.createElement('span', { className: PROGRESS }));\n };\n ProgressButton.prototype.setContent = function () {\n var cont;\n cont = this.element.innerHTML;\n if (this.enableHtmlSanitizer) {\n cont = SanitizeHtmlHelper.sanitize(this.element.innerHTML);\n }\n this.element.innerHTML = '';\n this.element.appendChild(this.createElement('span', { className: CONTENTCLS, innerHTML: cont }));\n };\n ProgressButton.prototype.clickHandler = function () {\n if (this.element.classList.contains(PROGRESSACTIVE)) {\n return;\n }\n this.startProgress();\n };\n ProgressButton.prototype.startProgress = function (percent, progressTime) {\n var clsList = this.element.classList;\n var isVertical = clsList.contains('e-vertical');\n clsList.add(PROGRESSACTIVE);\n if (!(clsList.contains(HIDESPINNER))) {\n showSpinner(this.element.querySelector('.e-spinner'));\n }\n this.startAnimate(Date.now(), progressTime ? progressTime : 0, progressTime ? Date.now() - (this.duration * 1 / 100) : Date.now(), percent ? percent : 0, 0, this.step, 0, isVertical);\n this.startContAnimate();\n };\n ProgressButton.prototype.startAnimate = function (timestamp, progressTime, prevTime, percent, prevPercent, step, prevProgressTime, isVertical) {\n var _this = this;\n try {\n var timeDiff = timestamp - prevTime;\n var stepTime = this.duration * step / 100;\n var timeDiffBuffer_1 = timeDiff ? (timeDiff < stepTime ? timeDiff - stepTime : timeDiff % stepTime) : 0;\n this.progressTime = progressTime = progressTime + timeDiff - timeDiffBuffer_1;\n prevTime = timestamp - timeDiffBuffer_1;\n percent = percent + (timeDiff - timeDiffBuffer_1) / this.duration * 100;\n prevPercent = ((progressTime - prevProgressTime) % stepTime === 0 || percent === 100) ? percent : prevPercent;\n var args = { percent: prevPercent, currentDuration: progressTime, step: step };\n this.eIsVertical = isVertical;\n if (percent === 0) {\n this.trigger('begin', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n else if (percent === 100 || progressTime === this.duration) {\n this.trigger('end', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n else {\n this.trigger('progress', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n }\n catch (e) {\n cancelAnimationFrame(this.timerId);\n this.trigger('fail', e);\n }\n };\n ProgressButton.prototype.successCallback = function (args, perc, pPerc, prgTim, pPrgTim, timDif, pTim) {\n var _this = this;\n var percent = perc;\n var prevPercent = pPerc;\n var timeDiffBuffer = timDif;\n var progressTime = prgTim;\n var prevProgressTime = pPrgTim;\n var prevTime = pTim;\n var isVertical = this.eIsVertical;\n if (percent !== args.percent && args.percent !== prevPercent) {\n percent = args.percent;\n }\n this.percent = percent;\n this.step = args.step;\n if ((progressTime - prevProgressTime) % (this.duration * args.step / 100) === 0 || percent === 100) {\n this.timerId = requestAnimationFrame(function () {\n if (_this.enableProgress && _this.getProgress()) {\n _this.getProgress().style[isVertical ? 'height' : 'width'] = percent + '%';\n }\n _this.element.setAttribute('aria-valuenow', percent.toString());\n });\n prevPercent = percent;\n prevProgressTime = progressTime;\n }\n if (!this.isPaused) {\n if (progressTime < this.duration && percent < 100) {\n this.interval = window.setTimeout(function () {\n _this.startAnimate(Date.now(), progressTime, prevTime, percent, prevPercent, args.step, prevProgressTime, isVertical);\n }, (this.duration / 100) - timeDiffBuffer);\n }\n else {\n this.interval = window.setTimeout(function () {\n _this.progressTime = _this.percent = 0;\n if (_this.enableProgress && _this.getProgress()) {\n _this.getProgress().style[isVertical ? 'height' : 'width'] = '0%';\n }\n _this.element.setAttribute('aria-valuenow', '0');\n _this.hideSpin();\n }, 100);\n }\n }\n };\n ProgressButton.prototype.startContAnimate = function () {\n var _this = this;\n var ele = this.element.getElementsByClassName(CONTENTCLS)[0];\n if (this.animationSettings.effect !== 'None') {\n (new Animation({})).animate(ele, {\n duration: (this.animationSettings.duration === 0 && animationMode === 'Enable') ? 400 : this.animationSettings.duration,\n name: 'Progress' + this.animationSettings.effect,\n timingFunction: this.animationSettings.easing,\n begin: function () {\n if (_this.spinSettings.position === 'Center') {\n _this.setSpinnerSize();\n }\n },\n end: function () {\n ele.classList.add('e-animate-end');\n }\n });\n }\n else if (this.spinSettings.position === 'Center') {\n this.setSpinnerSize();\n }\n };\n ProgressButton.prototype.finishProgress = function () {\n var clsList = this.element.classList;\n var isVertical = clsList.contains('e-vertical');\n clsList.add(PROGRESSACTIVE);\n var count = 100;\n for (var i = this.percent; i < count; i++) {\n i += 10;\n if (i > 100) {\n i = 100;\n }\n if (this.enableProgress && this.getProgress()) {\n this.getProgress().style[isVertical ? 'height' : 'width'] = (this.percent < 100) ? (i + '%') : '100%';\n }\n }\n this.element.setAttribute('aria-valuenow', '0');\n this.hideSpin();\n var args = { step: this.step, currentDuration: this.progressTime, percent: 100 };\n clearTimeout(this.interval);\n this.trigger('end', args);\n this.progressTime = this.percent = 0;\n };\n ProgressButton.prototype.setSpinnerSize = function () {\n var ele = this.element.getElementsByClassName(CONTENTCLS)[0];\n var spinner = this.getSpinner();\n spinner.style.width = Math.max(spinner.offsetWidth, ele.offsetWidth) + 'px';\n spinner.style.height = Math.max(spinner.offsetHeight, ele.offsetHeight) + 'px';\n ele.classList.add('e-cont-animate');\n };\n ProgressButton.prototype.hideSpin = function () {\n var cont = this.element.getElementsByClassName(CONTENTCLS)[0];\n if (!(this.element.classList.contains(HIDESPINNER))) {\n hideSpinner(this.element.querySelector('.e-spinner'));\n }\n this.element.classList.remove(PROGRESSACTIVE);\n if (this.animationSettings.effect !== 'None') {\n cont.classList.remove('e-animate-end');\n }\n if (this.spinSettings.position === 'Center') {\n var ele = this.getSpinner();\n cont.classList.remove('e-cont-animate');\n ele.style.width = 'auto';\n ele.style.height = 'auto';\n }\n };\n ProgressButton.prototype.setIconSpan = function () {\n var cont = this.element.getElementsByClassName(CONTENTCLS)[0];\n var iconSpan = this.element.getElementsByClassName('e-btn-icon')[0];\n if (cont.childNodes[0] && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\n cont.insertBefore(iconSpan, cont.childNodes[0]);\n }\n else {\n cont.appendChild(iconSpan);\n }\n };\n ProgressButton.prototype.setAria = function () {\n attributes(this.element, {\n 'aria-label': this.element.textContent + ' progress'\n });\n };\n ProgressButton.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n };\n ProgressButton.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.clickHandler);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {ProgressButtonModel} newProp - Specifies new properties\n * @param {ProgressButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n ProgressButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var ele = this.element;\n var isSpinning = false;\n var clsList = this.element.querySelector('.e-spinner-pane').classList;\n if (clsList.contains('e-spin-show')) {\n isSpinning = true;\n }\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n this.setContent();\n this.createSpinner();\n if (isSpinning) {\n showSpinner(this.element.querySelector('.e-spinner'));\n isSpinning = false;\n }\n if (this.enableProgress) {\n this.createProgress();\n }\n ele.setAttribute('aria-label', ele.textContent + ' progress');\n break;\n case 'iconCss':\n if (!oldProp.iconCss) {\n this.setIconSpan();\n }\n break;\n case 'iconPosition':\n this.setIconSpan();\n break;\n case 'enableProgress':\n if (newProp.enableProgress) {\n this.createProgress();\n }\n else {\n remove(this.getProgress());\n }\n break;\n case 'spinSettings':\n if (newProp.spinSettings.position) {\n ele.classList.remove('e-spin-' + oldProp.spinSettings.position.toLowerCase());\n this.setSpinPosition(this.getSpinner());\n }\n if (newProp.spinSettings.template || newProp.spinSettings.width) {\n ele.removeChild(this.getSpinner());\n this.createSpinner();\n }\n break;\n }\n }\n };\n /**\n * Sets the focus to ProgressButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n ProgressButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"enableProgress\", void 0);\n __decorate([\n Property(2000)\n ], ProgressButton.prototype, \"duration\", void 0);\n __decorate([\n Property('Left')\n ], ProgressButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"isPrimary\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"content\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"isToggle\", void 0);\n __decorate([\n Property(true)\n ], ProgressButton.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Complex({}, SpinSettings)\n ], ProgressButton.prototype, \"spinSettings\", void 0);\n __decorate([\n Complex({}, AnimationSettings)\n ], ProgressButton.prototype, \"animationSettings\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"begin\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"progress\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"end\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"fail\", void 0);\n ProgressButton = __decorate([\n NotifyPropertyChanges\n ], ProgressButton);\n return ProgressButton;\n}(Button));\nexport { ProgressButton };\n"],"names":["getModel","props","model","obj","extend","_i","_a","Object","keys","length","prop","indexOf","deleteObject","upDownKeyHandler","ul","keyCode","defaultIdx","childElementCount","liIdx","selectedLi","querySelector","classList","remove","i","len","children","contains","isValidLI","addClass","focus","li","index","count","setBlankIconStyle","popup","blankIcon","blankIconList","slice","call","getElementsByClassName","forEach","style","paddingLeft","paddingRight","removeAttribute","iconLi","isNullOrUndefined","cssProp","icon","enableRtl","padding","margin","size","parseInt","getComputedStyle","fontSize","createButtonGroup","selector","options","createElement","child","btnElem","nextChild","btnModel","internalCreateElement","wrapper","document","setAttribute","childs","buttons","j","tagName","insertBefore","appendChild","id","disabled","cssClass","Button","__extends","extendStatics","d","b","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","Item","_super","apply","Property","ChildProperty","classNames","DISABLED","FOCUS","ICON","ITEM","POPUP","RTL","SEPARATOR","VERTICAL","POPUPWIDTH","DropDownMenuAnimationSettings","DropDownButton","element","_this","isPopupCreated","preRender","getPersistData","addOnPersist","toggle","canOpen","openPopUp","createPopupOnClick","createPopup","closePopup","render","initialize","wireEvents","renderComplete","addItems","items","text","newItem","idx","splice","createItems","removeItems","isUniqueId","refresh","len_1","getULElement","div","className","popupWidth","appendToElement","body","isAngular","cdkPane","closest","popoverEl","dropDown","Popup","width","relateTo","collision","X","Y","position","targetType","content","getTargetElement","popupContent","display","refreshPosition","hide","attributes","replace","trim","split","splitButton","getComponent","activeElem","isColorPicker","select","appendItems","span","item","eventArgs","showIcon","hasIcon","innerHTML","attrs","role","tabindex","itemTemplate","compiledTemplate_1","compiletemplate","separator","aria-label","aria-hidden","getUniqueID","getModuleName","compiledElement","append","add","trigger","isReact","renderReactTemplates","enableHtmlSanitizer","SanitizeHtmlHelper","sanitize","tempItem","url","textContent","createAnchor","iconCss","childNodes","beforeDisabled","getPopUpElement","template","templateElement","compile","field","anchor","href","button","iconPosition","enablePersistence","appendTo","appendArrowSpan","setActiveElem","prevElem","previousSibling","elem","val","destroy","classList_1","detach","removeClass","getAttribute","popupUnWireEvents","destroyPopup","unWireEvents","popupEle","getElementById","EventHandler","clickHandler","keyBoardHandler","undefined","dropDownButton","dropDownBtn","delegateMousedownHandler","mousedownHandler","bind","windowResizeBound","windowResize","window","addEventListener","popupWireEvents","popupElement","closeActionEvents","focusoutHandler","rippleFn","rippleEffect","parentElement","isRippleEnabled","e","altKey","preventDefault","keyEventHandler","isSafari","test","navigator","userAgent","triggerSelect","getLI","trgt","liTarget","relatedTarget","selectEventArgs","event","popupElem","setWidth","appendReactElement","beforeOpenArgs","cancel","observedArgs","ul_1","animationOptions","animationSettings","effect","name","duration","timingFunction","easing","animatePopup","show","preventScroll","left","wrapperWidth","offsetWidth","popupRect","popupLeft","parseFloat","openArgs","Animation","animate","begin","args","height","offsetHeight","formatUnit","btnWidth","focusEle","beforeCloseArgs","ul_2","closeArgs","removeEventListener","onPropertyChanged","newProp","oldProp","setProperties","arrowSpan","dataBind","focusIn","Collection","Complex","Event","NotifyPropertyChanges","Component","TAGNAME","SplitButton","ele","ejInstance","getValue","btn","type","nodeName","nodeValue","parentNode","setValue","initWrapper","createPrimaryButton","renderControl","createSecondaryButton","secondaryBtnObj","setAria","primaryBtnObj","dropDownBtnModel","beforeItemRender","open","close","beforeOpen","callBackPromise","Deferred","resolve","beforeClose","aria-expanded","aria-owns","concat","refreshing","primaryBtnClickHandler","KeyboardEvents","keyAction","btnKeyBoardHandler","keyConfigs","altdownarrow","enter","getInstance","action","promise","Promise","reject","catch","then","CONTENTCLS","SpinSettings","AnimationSettings","ProgressButton","step","init","start","percent","isPaused","startProgress","progressTime","stop","cancelAnimationFrame","timerId","progressComplete","finishProgress","spinSettings","push","toLowerCase","setContent","createSpinner","enableProgress","createProgress","spinner","setSpinPosition","getSpinner","getProgress","cont","clsList","isVertical","showSpinner","startAnimate","Date","now","startContAnimate","timestamp","prevTime","prevPercent","prevProgressTime","timeDiff","stepTime","timeDiffBuffer_1","currentDuration","eIsVertical","successCallback","perc","pPerc","prgTim","pPrgTim","timDif","pTim","timeDiffBuffer","requestAnimationFrame","toString","interval","setTimeout","hideSpin","animationMode","setSpinnerSize","end","clearTimeout","Math","max","hideSpinner","setIconSpan","iconSpan","isSpinning","removeChild"],"mappings":"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"}