@syncfusion/ej2-splitbuttons 26.2.10 → 27.1.48

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 (258) hide show
  1. package/README.md +6 -6
  2. package/dist/ej2-splitbuttons.min.js +2 -2
  3. package/dist/ej2-splitbuttons.umd.min.js +2 -2
  4. package/dist/ej2-splitbuttons.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-splitbuttons.es2015.js +22 -29
  6. package/dist/es6/ej2-splitbuttons.es2015.js.map +1 -1
  7. package/dist/es6/ej2-splitbuttons.es5.js +22 -29
  8. package/dist/es6/ej2-splitbuttons.es5.js.map +1 -1
  9. package/dist/global/ej2-splitbuttons.min.js +2 -2
  10. package/dist/global/ej2-splitbuttons.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +9 -8
  13. package/src/common/common.js +1 -0
  14. package/src/drop-down-button/drop-down-button.d.ts +1 -0
  15. package/src/drop-down-button/drop-down-button.js +17 -4
  16. package/src/progress-button/progress-button.d.ts +0 -1
  17. package/src/progress-button/progress-button.js +4 -25
  18. package/styles/bootstrap-dark-lite.css +1762 -0
  19. package/styles/bootstrap-dark-lite.scss +13 -0
  20. package/styles/bootstrap-dark.css +203 -204
  21. package/styles/bootstrap-dark.scss +5 -2
  22. package/styles/bootstrap-lite.css +1812 -0
  23. package/styles/bootstrap-lite.scss +13 -0
  24. package/styles/bootstrap.css +203 -204
  25. package/styles/bootstrap.scss +5 -2
  26. package/styles/bootstrap4-lite.css +1801 -0
  27. package/styles/bootstrap4-lite.scss +13 -0
  28. package/styles/bootstrap4.css +203 -203
  29. package/styles/bootstrap4.scss +5 -2
  30. package/styles/bootstrap5-dark-lite.css +1735 -0
  31. package/styles/bootstrap5-dark-lite.scss +13 -0
  32. package/styles/bootstrap5-dark.css +210 -210
  33. package/styles/bootstrap5-dark.scss +5 -2
  34. package/styles/bootstrap5-lite.css +1735 -0
  35. package/styles/bootstrap5-lite.scss +13 -0
  36. package/styles/bootstrap5.3-lite.css +1743 -0
  37. package/styles/bootstrap5.3-lite.scss +13 -0
  38. package/styles/bootstrap5.3.css +1953 -0
  39. package/styles/bootstrap5.3.scss +17 -0
  40. package/styles/bootstrap5.css +210 -210
  41. package/styles/bootstrap5.scss +5 -2
  42. package/styles/button-group/_bigger.scss +10 -0
  43. package/styles/button-group/_layout.scss +1 -10
  44. package/styles/button-group/_theme.scss +19 -13
  45. package/styles/button-group/bootstrap-dark.css +7 -8
  46. package/styles/button-group/bootstrap-dark.scss +1 -0
  47. package/styles/button-group/bootstrap.css +6 -8
  48. package/styles/button-group/bootstrap.scss +1 -0
  49. package/styles/button-group/bootstrap4.css +7 -7
  50. package/styles/button-group/bootstrap4.scss +1 -0
  51. package/styles/button-group/bootstrap5-dark.css +7 -7
  52. package/styles/button-group/bootstrap5-dark.scss +1 -0
  53. package/styles/button-group/bootstrap5.3.css +809 -0
  54. package/styles/button-group/bootstrap5.3.scss +5 -0
  55. package/styles/button-group/bootstrap5.css +7 -7
  56. package/styles/button-group/bootstrap5.scss +1 -0
  57. package/styles/button-group/fabric-dark.css +7 -8
  58. package/styles/button-group/fabric-dark.scss +1 -0
  59. package/styles/button-group/fabric.css +7 -8
  60. package/styles/button-group/fabric.scss +1 -0
  61. package/styles/button-group/fluent-dark.css +7 -9
  62. package/styles/button-group/fluent-dark.scss +1 -0
  63. package/styles/button-group/fluent.css +7 -9
  64. package/styles/button-group/fluent.scss +1 -0
  65. package/styles/button-group/fluent2.css +26 -18
  66. package/styles/button-group/fluent2.scss +1 -0
  67. package/styles/button-group/highcontrast-light.css +7 -8
  68. package/styles/button-group/highcontrast-light.scss +1 -0
  69. package/styles/button-group/highcontrast.css +7 -8
  70. package/styles/button-group/highcontrast.scss +1 -0
  71. package/styles/button-group/material-dark.css +7 -9
  72. package/styles/button-group/material-dark.scss +1 -0
  73. package/styles/button-group/material.css +7 -9
  74. package/styles/button-group/material.scss +1 -0
  75. package/styles/button-group/material3-dark.css +7 -7
  76. package/styles/button-group/material3-dark.scss +1 -0
  77. package/styles/button-group/material3.css +7 -7
  78. package/styles/button-group/material3.scss +1 -0
  79. package/styles/button-group/tailwind-dark.css +6 -7
  80. package/styles/button-group/tailwind-dark.scss +1 -0
  81. package/styles/button-group/tailwind.css +6 -7
  82. package/styles/button-group/tailwind.scss +1 -0
  83. package/styles/drop-down-button/_bigger.scss +79 -0
  84. package/styles/drop-down-button/_bootstrap5.3-definition.scss +1 -1
  85. package/styles/drop-down-button/_layout.scss +4 -82
  86. package/styles/drop-down-button/_theme.scss +6 -1
  87. package/styles/drop-down-button/bootstrap-dark.css +49 -49
  88. package/styles/drop-down-button/bootstrap-dark.scss +1 -0
  89. package/styles/drop-down-button/bootstrap.css +49 -49
  90. package/styles/drop-down-button/bootstrap.scss +1 -0
  91. package/styles/drop-down-button/bootstrap4.css +49 -49
  92. package/styles/drop-down-button/bootstrap4.scss +1 -0
  93. package/styles/drop-down-button/bootstrap5-dark.css +56 -56
  94. package/styles/drop-down-button/bootstrap5-dark.scss +1 -0
  95. package/styles/drop-down-button/bootstrap5.3.css +251 -0
  96. package/styles/drop-down-button/bootstrap5.3.scss +7 -0
  97. package/styles/drop-down-button/bootstrap5.css +56 -56
  98. package/styles/drop-down-button/bootstrap5.scss +1 -0
  99. package/styles/drop-down-button/fabric-dark.css +49 -49
  100. package/styles/drop-down-button/fabric-dark.scss +1 -0
  101. package/styles/drop-down-button/fabric.css +49 -49
  102. package/styles/drop-down-button/fabric.scss +1 -0
  103. package/styles/drop-down-button/fluent-dark.css +49 -49
  104. package/styles/drop-down-button/fluent-dark.scss +1 -0
  105. package/styles/drop-down-button/fluent.css +49 -49
  106. package/styles/drop-down-button/fluent.scss +1 -0
  107. package/styles/drop-down-button/fluent2.css +59 -55
  108. package/styles/drop-down-button/fluent2.scss +1 -0
  109. package/styles/drop-down-button/highcontrast-light.css +49 -49
  110. package/styles/drop-down-button/highcontrast-light.scss +1 -0
  111. package/styles/drop-down-button/highcontrast.css +49 -49
  112. package/styles/drop-down-button/highcontrast.scss +1 -0
  113. package/styles/drop-down-button/material-dark.css +49 -49
  114. package/styles/drop-down-button/material-dark.scss +1 -0
  115. package/styles/drop-down-button/material.css +49 -49
  116. package/styles/drop-down-button/material.scss +1 -0
  117. package/styles/drop-down-button/material3-dark.css +49 -49
  118. package/styles/drop-down-button/material3-dark.scss +1 -0
  119. package/styles/drop-down-button/material3.css +49 -49
  120. package/styles/drop-down-button/material3.scss +1 -0
  121. package/styles/drop-down-button/tailwind-dark.css +56 -56
  122. package/styles/drop-down-button/tailwind-dark.scss +1 -0
  123. package/styles/drop-down-button/tailwind.css +56 -56
  124. package/styles/drop-down-button/tailwind.scss +1 -0
  125. package/styles/fabric-dark-lite.css +1762 -0
  126. package/styles/fabric-dark-lite.scss +13 -0
  127. package/styles/fabric-dark.css +203 -204
  128. package/styles/fabric-dark.scss +5 -2
  129. package/styles/fabric-lite.css +1842 -0
  130. package/styles/fabric-lite.scss +13 -0
  131. package/styles/fabric.css +203 -204
  132. package/styles/fabric.scss +5 -2
  133. package/styles/fluent-dark-lite.css +1855 -0
  134. package/styles/fluent-dark-lite.scss +13 -0
  135. package/styles/fluent-dark.css +203 -205
  136. package/styles/fluent-dark.scss +5 -2
  137. package/styles/fluent-lite.css +1855 -0
  138. package/styles/fluent-lite.scss +13 -0
  139. package/styles/fluent.css +203 -205
  140. package/styles/fluent.scss +5 -2
  141. package/styles/fluent2-lite.css +1850 -0
  142. package/styles/fluent2-lite.scss +13 -0
  143. package/styles/fluent2.css +236 -220
  144. package/styles/fluent2.scss +5 -2
  145. package/styles/highcontrast-light-lite.css +1762 -0
  146. package/styles/highcontrast-light-lite.scss +13 -0
  147. package/styles/highcontrast-light.css +203 -204
  148. package/styles/highcontrast-light.scss +5 -2
  149. package/styles/highcontrast-lite.css +1814 -0
  150. package/styles/highcontrast-lite.scss +13 -0
  151. package/styles/highcontrast.css +203 -204
  152. package/styles/highcontrast.scss +5 -2
  153. package/styles/material-dark-lite.css +1768 -0
  154. package/styles/material-dark-lite.scss +13 -0
  155. package/styles/material-dark.css +203 -205
  156. package/styles/material-dark.scss +5 -2
  157. package/styles/material-lite.css +1847 -0
  158. package/styles/material-lite.scss +13 -0
  159. package/styles/material.css +203 -205
  160. package/styles/material.scss +5 -2
  161. package/styles/material3-dark-lite.css +1994 -0
  162. package/styles/material3-dark-lite.scss +13 -0
  163. package/styles/material3-dark.css +214 -214
  164. package/styles/material3-dark.scss +5 -2
  165. package/styles/material3-lite.css +1988 -0
  166. package/styles/material3-lite.scss +13 -0
  167. package/styles/material3.css +214 -214
  168. package/styles/material3.scss +5 -2
  169. package/styles/progress-button/_bigger.scss +96 -0
  170. package/styles/progress-button/_layout.scss +0 -95
  171. package/styles/progress-button/_theme.scss +6 -2
  172. package/styles/progress-button/bootstrap-dark.css +73 -73
  173. package/styles/progress-button/bootstrap-dark.scss +1 -0
  174. package/styles/progress-button/bootstrap.css +73 -73
  175. package/styles/progress-button/bootstrap.scss +1 -0
  176. package/styles/progress-button/bootstrap4.css +73 -73
  177. package/styles/progress-button/bootstrap4.scss +1 -0
  178. package/styles/progress-button/bootstrap5-dark.css +73 -73
  179. package/styles/progress-button/bootstrap5-dark.scss +1 -0
  180. package/styles/progress-button/bootstrap5.3.css +568 -0
  181. package/styles/progress-button/bootstrap5.3.scss +6 -0
  182. package/styles/progress-button/bootstrap5.css +73 -73
  183. package/styles/progress-button/bootstrap5.scss +1 -0
  184. package/styles/progress-button/fabric-dark.css +73 -73
  185. package/styles/progress-button/fabric-dark.scss +1 -0
  186. package/styles/progress-button/fabric.css +73 -73
  187. package/styles/progress-button/fabric.scss +1 -0
  188. package/styles/progress-button/fluent-dark.css +73 -73
  189. package/styles/progress-button/fluent-dark.scss +1 -0
  190. package/styles/progress-button/fluent.css +73 -73
  191. package/styles/progress-button/fluent.scss +1 -0
  192. package/styles/progress-button/fluent2.css +77 -73
  193. package/styles/progress-button/fluent2.scss +1 -0
  194. package/styles/progress-button/highcontrast-light.css +73 -73
  195. package/styles/progress-button/highcontrast-light.scss +1 -0
  196. package/styles/progress-button/highcontrast.css +73 -73
  197. package/styles/progress-button/highcontrast.scss +1 -0
  198. package/styles/progress-button/material-dark.css +73 -73
  199. package/styles/progress-button/material-dark.scss +1 -0
  200. package/styles/progress-button/material.css +73 -73
  201. package/styles/progress-button/material.scss +1 -0
  202. package/styles/progress-button/material3-dark.css +73 -73
  203. package/styles/progress-button/material3-dark.scss +1 -0
  204. package/styles/progress-button/material3.css +73 -73
  205. package/styles/progress-button/material3.scss +1 -0
  206. package/styles/progress-button/tailwind-dark.css +73 -73
  207. package/styles/progress-button/tailwind-dark.scss +1 -0
  208. package/styles/progress-button/tailwind.css +73 -73
  209. package/styles/progress-button/tailwind.scss +1 -0
  210. package/styles/split-button/_bigger.scss +149 -0
  211. package/styles/split-button/_layout.scss +8 -156
  212. package/styles/split-button/bootstrap-dark.css +74 -74
  213. package/styles/split-button/bootstrap-dark.scss +1 -0
  214. package/styles/split-button/bootstrap.css +74 -74
  215. package/styles/split-button/bootstrap.scss +1 -0
  216. package/styles/split-button/bootstrap4.css +74 -74
  217. package/styles/split-button/bootstrap4.scss +1 -0
  218. package/styles/split-button/bootstrap5-dark.css +74 -74
  219. package/styles/split-button/bootstrap5-dark.scss +1 -0
  220. package/styles/split-button/bootstrap5.3.css +335 -0
  221. package/styles/split-button/bootstrap5.3.scss +7 -0
  222. package/styles/split-button/bootstrap5.css +74 -74
  223. package/styles/split-button/bootstrap5.scss +1 -0
  224. package/styles/split-button/fabric-dark.css +74 -74
  225. package/styles/split-button/fabric-dark.scss +1 -0
  226. package/styles/split-button/fabric.css +74 -74
  227. package/styles/split-button/fabric.scss +1 -0
  228. package/styles/split-button/fluent-dark.css +74 -74
  229. package/styles/split-button/fluent-dark.scss +1 -0
  230. package/styles/split-button/fluent.css +74 -74
  231. package/styles/split-button/fluent.scss +1 -0
  232. package/styles/split-button/fluent2.css +74 -74
  233. package/styles/split-button/fluent2.scss +1 -0
  234. package/styles/split-button/highcontrast-light.css +74 -74
  235. package/styles/split-button/highcontrast-light.scss +1 -0
  236. package/styles/split-button/highcontrast.css +74 -74
  237. package/styles/split-button/highcontrast.scss +1 -0
  238. package/styles/split-button/material-dark.css +74 -74
  239. package/styles/split-button/material-dark.scss +1 -0
  240. package/styles/split-button/material.css +74 -74
  241. package/styles/split-button/material.scss +1 -0
  242. package/styles/split-button/material3-dark.css +85 -85
  243. package/styles/split-button/material3-dark.scss +1 -0
  244. package/styles/split-button/material3.css +85 -85
  245. package/styles/split-button/material3.scss +1 -0
  246. package/styles/split-button/tailwind-dark.css +76 -76
  247. package/styles/split-button/tailwind-dark.scss +1 -0
  248. package/styles/split-button/tailwind.css +76 -76
  249. package/styles/split-button/tailwind.scss +1 -0
  250. package/styles/tailwind-dark-lite.css +1859 -0
  251. package/styles/tailwind-dark-lite.scss +13 -0
  252. package/styles/tailwind-dark.css +212 -212
  253. package/styles/tailwind-dark.scss +5 -2
  254. package/styles/tailwind-lite.css +1859 -0
  255. package/styles/tailwind-lite.scss +13 -0
  256. package/styles/tailwind.css +212 -212
  257. package/styles/tailwind.scss +5 -2
  258. package/hotfix/26.1.35_Vol2.txt +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ej2-splitbuttons.umd.min.js","sources":["../src/common/common.js","../src/drop-down-button/drop-down-button.js","../src/split-button/split-button.js","../src/progress-button/progress-button.js","../src/button-group/button-group.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 * @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')) {\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","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 } from '@syncfusion/ej2-base';\nimport { addClass, getUniqueID, rippleEffect, getComponent } from '@syncfusion/ej2-base';\nimport { attributes, Component, closest, select, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { classList, removeClass } 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};\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: classNames.POPUP,\n id: this.element.id + '-popup'\n });\n document.body.appendChild(div);\n this.dropDown = new Popup(div, {\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 };\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 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 for (var i = 0; i < items.length; i++) {\n item = items[i];\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 if (appendItems) {\n this.getPopUpElement().appendChild(ul);\n }\n if (showIcon) {\n setBlankIconStyle(this.getPopUpElement());\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 = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(item.text) : item.text;\n return this.createElement('a', { className: 'e-menu-text e-menu-url', innerHTML: tempItem, attrs: { 'href': item.url } });\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 };\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 EventHandler.add(window, 'resize', this.windowResize, this);\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 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.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() && !(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;\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.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 splitButton.appendReactElement(this.getTargetElement(), this.getPopUpElement());\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 this.appendReactElement(this.getTargetElement(), this.getPopUpElement());\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 _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) {\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 }\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 _this.dropDown.hide();\n removeClass(_this.activeElem, 'e-active');\n _this.element.setAttribute('aria-expanded', 'false');\n _this.element.removeAttribute('aria-owns');\n if (focusEle) {\n focusEle.focus();\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 (ul) {\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 EventHandler.remove(window, 'resize', this.windowResize);\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 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 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 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', 'aria-haspopup': 'true',\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-haspopup', '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 }\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 'e-spin-' + this.spinSettings.position.toLowerCase()];\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.setContentIcon = function (content) {\n var contElem = this.createElement('span', { className: CONTENTCLS, innerHTML: content });\n if (this.iconCss) {\n var span = this.createElement('span', { className: 'e-btn-icon ' + this.iconCss });\n if (!this.element.textContent.trim()) {\n this.element.classList.add('e-icon-btn');\n }\n else {\n span.classList.add('e-icon-' + this.iconPosition.toLowerCase());\n if (this.iconPosition === 'Top' || this.iconPosition === 'Bottom') {\n this.element.classList.add('e-' + this.iconPosition.toLowerCase() + '-icon-btn');\n }\n }\n var node = contElem.childNodes[0];\n if (node && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\n contElem.insertBefore(span, node);\n }\n else {\n contElem.appendChild(span);\n }\n }\n this.element.appendChild(contElem);\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","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"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","getModel","props","model","obj","extend","_i","_a","keys","prop","indexOf","deleteObject","upDownKeyHandler","ul","keyCode","defaultIdx","childElementCount","liIdx","selectedLi","querySelector","classList","remove","len","children","contains","isValidLI","li","index","count","addClass","focus","setBlankIconStyle","popup","blankIcon","icon","cssProp","size","blankIconList","slice","call","getElementsByClassName","forEach","style","paddingLeft","paddingRight","removeAttribute","iconLi","isNullOrUndefined","enableRtl","padding","margin","parseInt","getComputedStyle","fontSize","_super","ChildProperty","Item","Property","apply","classNames","DropDownButton","Component","preRender","getPersistData","addOnPersist","toggle","canOpen","openPopUp","createPopupOnClick","isPopupCreated","createPopup","closePopup","render","initialize","disabled","wireEvents","renderComplete","addItems","items","text","newItem","idx","j","splice","createItems","removeItems","isUniqueId","refresh","len_1","id","getULElement","div","createElement","className","element","document","body","appendChild","dropDown","Popup","relateTo","collision","X","Y","position","targetType","content","getTargetElement","setAttribute","popupContent","display","refreshPosition","hide","attributes","cssClass","replace","trim","split","isColorPicker","select","appendItems","showIcon","hasIcon","innerHTML","attrs","role","tabindex","item","tempItem","url","separator","aria-label","aria-hidden","getUniqueID","getModuleName","beforeDisabled","enableHtmlSanitizer","textContent","createAnchor","add","iconCss","span","childNodes","insertBefore","trigger","eventArgs","getPopUpElement","field","SanitizeHtmlHelper","sanitize","href","button","Button","iconPosition","enablePersistence","appendTo","appendArrowSpan","setActiveElem","prevElem","previousSibling","elem","activeElem","val","destroy","classList_1","_this","detach","removeClass","getAttribute","popupUnWireEvents","destroyPopup","unWireEvents","popupEle","getElementById","EventHandler","clickHandler","keyBoardHandler","undefined","dropDownBtn","getComponent","delegateMousedownHandler","mousedownHandler","bind","window","windowResize","popupWireEvents","popupElement","closeActionEvents","focusoutHandler","rippleFn","rippleEffect","selector","parentElement","isRippleEnabled","e","altKey","keyEventHandler","preventDefault","triggerSelect","getLI","tagName","closest","trgt","liTarget","relatedTarget","event","popupElem","splitButton","isReact","appendReactElement","renderReactTemplates","beforeOpenArgs","cancel","observedArgs","openArgs","ul_1","show","left","wrapperWidth","offsetWidth","popupRect","popupLeft","parseFloat","focusEle","beforeCloseArgs","ul_2","closeArgs","onPropertyChanged","newProp","oldProp","setProperties","arrowSpan","dataBind","focusIn","Collection","Event","NotifyPropertyChanges","options","RTL","TAGNAME","SplitButton","ele","ejInstance","getValue","btn","type","wrapper","nodeName","nodeValue","parentNode","setValue","initWrapper","createPrimaryButton","renderControl","createSecondaryButton","secondaryBtnObj","setAria","btnModel","primaryBtnObj","btnElem","dropDownBtnModel","beforeItemRender","args","open","close","beforeOpen","callBackPromise","Deferred","resolve","beforeClose","aria-expanded","aria-haspopup","aria-owns","concat","refreshing","isAngular","primaryBtnClickHandler","KeyboardEvents","keyAction","btnKeyBoardHandler","keyConfigs","altdownarrow","enter","getInstance","action","promise","Promise","reject","catch","then","HIDESPINNER","PROGRESS","PROGRESSACTIVE","CONTENTCLS","SpinSettings","AnimationSettings","ProgressButton","init","start","percent","isPaused","startProgress","progressTime","stop","cancelAnimationFrame","timerId","progressComplete","finishProgress","spinSettings","toLowerCase","setContent","createSpinner","enableProgress","createProgress","spinner","setSpinPosition","width","template","getSpinner","getProgress","cont","setContentIcon","node","contElem","clsList","isVertical","showSpinner","startAnimate","Date","now","duration","step","startContAnimate","timestamp","prevTime","prevPercent","prevProgressTime","timeDiff","stepTime","timeDiffBuffer_1","currentDuration","eIsVertical","successCallback","perc","pPerc","prgTim","pPrgTim","timDif","pTim","timeDiffBuffer","requestAnimationFrame","toString","interval","setTimeout","hideSpin","animationSettings","effect","Animation","animate","animationMode","name","timingFunction","easing","begin","setSpinnerSize","end","clearTimeout","Math","max","height","offsetHeight","hideSpinner","setIconSpan","iconSpan","isSpinning","removeChild","Complex","internalCreateElement","child","nextChild","childs","buttons"],"mappings":"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"}
1
+ {"version":3,"file":"ej2-splitbuttons.umd.min.js","sources":["../src/common/common.js","../src/drop-down-button/drop-down-button.js","../src/split-button/split-button.js","../src/progress-button/progress-button.js","../src/button-group/button-group.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// eslint-disable-next-line jsdoc/require-param, valid-jsdoc\n/** @hidden\n * @param {HTMLElement} popup - Specifies the popup element.\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')) {\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","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 } from '@syncfusion/ej2-base';\nimport { addClass, getUniqueID, rippleEffect, getComponent } from '@syncfusion/ej2-base';\nimport { attributes, Component, closest, select, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { classList, removeClass } 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};\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: classNames.POPUP,\n id: this.element.id + '-popup'\n });\n document.body.appendChild(div);\n this.dropDown = new Popup(div, {\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 };\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 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 for (var i = 0; i < items.length; i++) {\n item = items[i];\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 if (appendItems) {\n this.getPopUpElement().appendChild(ul);\n }\n if (showIcon) {\n setBlankIconStyle(this.getPopUpElement());\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 = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(item.text) : item.text;\n return this.createElement('a', { className: 'e-menu-text e-menu-url', innerHTML: tempItem, attrs: { 'href': item.url } });\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 };\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 EventHandler.add(window, 'resize', this.windowResize, this);\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 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() && !(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.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 _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.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 _this.dropDown.hide();\n removeClass(_this.activeElem, 'e-active');\n _this.element.setAttribute('aria-expanded', 'false');\n _this.element.removeAttribute('aria-owns');\n if (focusEle) {\n focusEle.focus();\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 (ul) {\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 EventHandler.remove(window, 'resize', this.windowResize);\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 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 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', 'aria-haspopup': 'true',\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-haspopup', '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 }\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","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"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","getModel","props","model","obj","extend","_i","_a","keys","prop","indexOf","deleteObject","upDownKeyHandler","ul","keyCode","defaultIdx","childElementCount","liIdx","selectedLi","querySelector","classList","remove","len","children","contains","isValidLI","li","index","count","addClass","focus","setBlankIconStyle","popup","blankIcon","icon","cssProp","size","blankIconList","slice","call","getElementsByClassName","forEach","style","paddingLeft","paddingRight","removeAttribute","iconLi","isNullOrUndefined","enableRtl","padding","margin","parseInt","getComputedStyle","fontSize","_super","ChildProperty","Item","Property","apply","classNames","DropDownButton","Component","preRender","getPersistData","addOnPersist","toggle","canOpen","openPopUp","createPopupOnClick","isPopupCreated","createPopup","closePopup","render","initialize","disabled","wireEvents","renderComplete","addItems","items","text","newItem","idx","j","splice","createItems","removeItems","isUniqueId","refresh","len_1","id","getULElement","div","createElement","className","element","document","body","appendChild","dropDown","Popup","relateTo","collision","X","Y","position","targetType","content","getTargetElement","setAttribute","popupContent","display","refreshPosition","hide","attributes","cssClass","replace","trim","split","isColorPicker","select","appendItems","showIcon","hasIcon","innerHTML","attrs","role","tabindex","item","tempItem","url","separator","aria-label","aria-hidden","getUniqueID","getModuleName","beforeDisabled","enableHtmlSanitizer","textContent","createAnchor","add","iconCss","span","childNodes","insertBefore","trigger","eventArgs","getPopUpElement","field","SanitizeHtmlHelper","sanitize","href","button","Button","iconPosition","enablePersistence","appendTo","appendArrowSpan","setActiveElem","prevElem","previousSibling","elem","activeElem","val","destroy","classList_1","_this","detach","removeClass","getAttribute","popupUnWireEvents","destroyPopup","unWireEvents","popupEle","getElementById","EventHandler","clickHandler","keyBoardHandler","undefined","dropDownBtn","getComponent","delegateMousedownHandler","mousedownHandler","bind","window","windowResize","popupWireEvents","popupElement","closeActionEvents","focusoutHandler","rippleFn","rippleEffect","selector","parentElement","isRippleEnabled","e","altKey","keyEventHandler","isSafari","test","navigator","userAgent","preventDefault","triggerSelect","getLI","tagName","closest","trgt","liTarget","relatedTarget","event","popupElem","splitButton","isReact","appendReactElement","renderReactTemplates","beforeOpenArgs","cancel","observedArgs","openArgs","ul_1","show","left","wrapperWidth","offsetWidth","popupRect","popupLeft","parseFloat","focusEle","beforeCloseArgs","ul_2","closeArgs","onPropertyChanged","newProp","oldProp","setProperties","arrowSpan","dataBind","focusIn","Collection","Event","NotifyPropertyChanges","options","RTL","TAGNAME","SplitButton","ele","ejInstance","getValue","btn","type","wrapper","nodeName","nodeValue","parentNode","setValue","initWrapper","createPrimaryButton","renderControl","createSecondaryButton","secondaryBtnObj","setAria","btnModel","primaryBtnObj","btnElem","dropDownBtnModel","beforeItemRender","args","open","close","beforeOpen","callBackPromise","Deferred","resolve","beforeClose","aria-expanded","aria-haspopup","aria-owns","concat","refreshing","isAngular","primaryBtnClickHandler","KeyboardEvents","keyAction","btnKeyBoardHandler","keyConfigs","altdownarrow","enter","getInstance","action","promise","Promise","reject","catch","then","HIDESPINNER","PROGRESS","PROGRESSACTIVE","CONTENTCLS","SpinSettings","AnimationSettings","ProgressButton","init","start","percent","isPaused","startProgress","progressTime","stop","cancelAnimationFrame","timerId","progressComplete","finishProgress","spinSettings","push","toLowerCase","setContent","createSpinner","enableProgress","createProgress","spinner","setSpinPosition","width","template","getSpinner","getProgress","cont","clsList","isVertical","showSpinner","startAnimate","Date","now","duration","step","startContAnimate","timestamp","prevTime","prevPercent","prevProgressTime","timeDiff","stepTime","timeDiffBuffer_1","currentDuration","eIsVertical","successCallback","perc","pPerc","prgTim","pPrgTim","timDif","pTim","timeDiffBuffer","requestAnimationFrame","toString","interval","setTimeout","hideSpin","animationSettings","effect","Animation","animate","animationMode","name","timingFunction","easing","begin","setSpinnerSize","end","clearTimeout","Math","max","height","offsetHeight","hideSpinner","setIconSpan","iconSpan","isSpinning","removeChild","Complex","internalCreateElement","child","nextChild","childs","buttons"],"mappings":"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"}